; Replaces the functionality of sgb.asm to work with CGB hardware. LoadCGBLayout: ld a, b cp CGB_DEFAULT jr nz, .not_default ld a, [wDefaultCGBLayout] .not_default cp CGB_PARTY_MENU_HP_BARS jp z, CGB_ApplyPartyMenuHPPals call ResetBGPals ld l, a ld h, 0 add hl, hl ld de, CGBLayoutJumptable add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .done push de jp hl .done: ret CGBLayoutJumptable: ; entries correspond to CGB_* constants (see constants/cgb_pal_constants.asm) table_width 2, CGBLayoutJumptable dw _CGB_BattleGrayscale dw _CGB_BattleColors dw _CGB_PokegearPals dw _CGB_StatsScreenHPPals dw _CGB_Pokedex dw _CGB_SlotMachine dw _CGB_BetaTitleScreen dw _CGB_GSIntro dw _CGB_Diploma dw _CGB_MapPals dw _CGB_PartyMenu dw _CGB_Evolution dw _CGB_GSTitleScreen dw _CGB_LevelSelectionMenu dw _CGB_MoveList dw _CGB_BetaPikachuMinigame dw _CGB_PokedexSearchOption dw _CGB_BetaPoker dw _CGB_Pokepic dw _CGB_MagnetTrain dw _CGB_PackPals dw _CGB_TrainerCard dw _CGB_PokedexUnownMode dw _CGB_BillsPC dw _CGB_UnownPuzzle dw _CGB_GamefreakLogo dw _CGB_PlayerOrMonFrontpicPals dw _CGB_TradeTube dw _CGB_TrainerOrMonFrontpicPals dw _CGB_LevelSelectionMenuToDChange assert_table_length NUM_CGB_LAYOUTS _CGB_BattleGrayscale: ld hl, FourPals_BattleGrayscale ld de, wBGPals1 ld c, 4 call CopyPalettes ld hl, FourPals_BattleGrayscale ld de, wBGPals1 palette PAL_BATTLE_BG_EXP ld c, 4 call CopyPalettes ld hl, FourPals_BattleGrayscale ld de, wOBPals1 ld c, 2 call CopyPalettes jr _CGB_FinishBattleScreenLayout _CGB_BattleColors: ld de, wBGPals1 call GetBattlemonBackpicPalettePointer push hl call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER call GetEnemyFrontpicPalettePointer push hl call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY ld a, [wEnemyHPPal] ld l, a ld h, 0 add hl, hl add hl, hl ld bc, HPBarPals add hl, bc call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP ld a, [wPlayerHPPal] ld l, a ld h, 0 add hl, hl add hl, hl ld bc, HPBarPals add hl, bc call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP ld hl, ExpBarPalette call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP ld de, wOBPals1 pop hl call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY pop hl call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER ld a, CGB_BATTLE_COLORS ld [wDefaultCGBLayout], a call ApplyPals _CGB_FinishBattleScreenLayout: call InitPartyMenuBGPal7 hlcoord 0, 0, wAttrmap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, PAL_BATTLE_BG_ENEMY_HP call ByteFill hlcoord 0, 4, wAttrmap lb bc, 8, 10 ld a, PAL_BATTLE_BG_PLAYER call FillBoxCGB hlcoord 10, 0, wAttrmap lb bc, 7, 10 ld a, PAL_BATTLE_BG_ENEMY call FillBoxCGB hlcoord 0, 0, wAttrmap lb bc, 4, 10 ld a, PAL_BATTLE_BG_ENEMY_HP call FillBoxCGB hlcoord 10, 7, wAttrmap lb bc, 5, 10 ld a, PAL_BATTLE_BG_PLAYER_HP call FillBoxCGB hlcoord 10, 11, wAttrmap lb bc, 1, 9 ld a, PAL_BATTLE_BG_EXP call FillBoxCGB hlcoord 0, 12, wAttrmap ld bc, 6 * SCREEN_WIDTH ld a, PAL_BATTLE_BG_TEXT call ByteFill ld hl, BattleObjectPals ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY ld bc, 6 palettes ld a, BANK(wOBPals1) call FarCopyWRAM call ApplyAttrmap ret InitPartyMenuBGPal7: ld hl, PartyMenuBGPalette ld de, wBGPals1 palette 7 ld bc, 1 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ret InitPartyMenuBGPal0: ld hl, PartyMenuBGPalette ld de, wBGPals1 palette 0 ld bc, 1 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ret _CGB_PokegearPals: ld a, [wPlayerCharacter] bit PLAYERGENDER_FEMALE_F, a jr z, .male ld hl, FemalePokegearPals jr .got_pals .male ld hl, MalePokegearPals .got_pals ld de, wBGPals1 ld bc, 6 palettes ld a, BANK(wBGPals1) call FarCopyWRAM call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_StatsScreenHPPals: ld de, wBGPals1 ld a, [wCurHPPal] ld l, a ld h, 0 add hl, hl add hl, hl ld bc, HPBarPals add hl, bc call LoadPalette_White_Col1_Col2_Black ; hp palette ld a, [wCurPartySpecies] ld bc, wTempMonDVs call GetPlayerOrMonPalettePointer call LoadPalette_White_Col1_Col2_Black ; mon palette ld hl, ExpBarPalette call LoadPalette_White_Col1_Col2_Black ; exp palette ld hl, StatsScreenPagePals ld de, wBGPals1 palette 3 ld bc, 3 palettes ; pink, green, and blue page palettes ld a, BANK(wBGPals1) call FarCopyWRAM call WipeAttrmap hlcoord 0, 0, wAttrmap lb bc, 8, SCREEN_WIDTH ld a, $1 ; mon palette call FillBoxCGB hlcoord 10, 16, wAttrmap ld bc, 10 ld a, $2 ; exp palette call ByteFill hlcoord 13, 5, wAttrmap lb bc, 2, 2 ld a, $3 ; pink page palette call FillBoxCGB hlcoord 15, 5, wAttrmap lb bc, 2, 2 ld a, $4 ; green page palette call FillBoxCGB hlcoord 17, 5, wAttrmap lb bc, 2, 2 ld a, $5 ; blue page palette call FillBoxCGB call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret StatsScreenPagePals: INCLUDE "gfx/stats/pages.pal" StatsScreenPals: INCLUDE "gfx/stats/stats.pal" _CGB_Pokedex: ld de, wBGPals1 ld a, PREDEFPAL_POKEDEX call GetPredefPal call LoadHLPaletteIntoDE ; dex interface palette ld a, [wCurPartySpecies] cp $ff jr nz, .is_pokemon ld hl, PokedexQuestionMarkPalette call LoadHLPaletteIntoDE ; green question mark palette jr .got_palette .is_pokemon call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black ; mon palette .got_palette call WipeAttrmap hlcoord 1, 1, wAttrmap lb bc, 7, 7 ld a, $1 ; green question mark palette call FillBoxCGB call InitPartyMenuOBPals ld hl, PokedexCursorPalette ld de, wOBPals1 palette 7 ; green cursor palette ld bc, 1 palettes ld a, BANK(wOBPals1) call FarCopyWRAM call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret PokedexQuestionMarkPalette: INCLUDE "gfx/pokedex/question_mark.pal" PokedexCursorPalette: INCLUDE "gfx/pokedex/cursor.pal" _CGB_BillsPC: ld de, wBGPals1 ld a, PREDEFPAL_POKEDEX call GetPredefPal call LoadHLPaletteIntoDE ld a, [wCurPartySpecies] cp $ff jr nz, .GetMonPalette ld hl, BillsPCOrangePalette call LoadHLPaletteIntoDE jr .GotPalette .GetMonPalette: ld bc, wTempMonDVs call GetPlayerOrMonPalettePointer call LoadPalette_White_Col1_Col2_Black .GotPalette: call WipeAttrmap hlcoord 1, 4, wAttrmap lb bc, 7, 7 ld a, $1 ; mon palette call FillBoxCGB call InitPartyMenuOBPals call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret BillsPCOrangePalette: INCLUDE "gfx/pc/orange.pal" _CGB_PokedexUnownMode: ld de, wBGPals1 ld a, PREDEFPAL_POKEDEX call GetPredefPal call LoadHLPaletteIntoDE ld a, [wCurPartySpecies] call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrmap hlcoord 7, 5, wAttrmap lb bc, 7, 7 ld a, $1 ; mon palette call FillBoxCGB call InitPartyMenuOBPals call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_SlotMachine: ld hl, SlotMachinePals ld de, wBGPals1 ld bc, 16 palettes ld a, BANK(wBGPals1) call FarCopyWRAM call WipeAttrmap hlcoord 0, 2, wAttrmap lb bc, 10, 3 ld a, $2 ; "3" palette call FillBoxCGB hlcoord 17, 2, wAttrmap lb bc, 10, 3 ld a, $2 ; "3" palette call FillBoxCGB hlcoord 0, 4, wAttrmap lb bc, 6, 3 ld a, $3 ; "2" palette call FillBoxCGB hlcoord 17, 4, wAttrmap lb bc, 6, 3 ld a, $3 ; "2" palette call FillBoxCGB hlcoord 0, 6, wAttrmap lb bc, 2, 3 ld a, $4 ; "1" palette call FillBoxCGB hlcoord 17, 6, wAttrmap lb bc, 2, 3 ld a, $4 ; "1" palette call FillBoxCGB hlcoord 4, 2, wAttrmap lb bc, 2, 12 ld a, $1 ; Vileplume palette call FillBoxCGB hlcoord 3, 2, wAttrmap lb bc, 10, 1 ld a, $1 ; lights palette call FillBoxCGB hlcoord 16, 2, wAttrmap lb bc, 10, 1 ld a, $1 ; lights palette call FillBoxCGB hlcoord 0, 12, wAttrmap ld bc, 6 * SCREEN_WIDTH ld a, $7 ; text palette call ByteFill call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_BetaTitleScreen: ld hl, FourPals_BetaTitleScreen call CopyFourPalettes call WipeAttrmap ld de, wOBPals1 ld a, PREDEFPAL_PACK call GetPredefPal call LoadHLPaletteIntoDE hlcoord 0, 6, wAttrmap lb bc, 12, SCREEN_WIDTH ld a, $1 call FillBoxCGB call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_GSIntro: ld b, 0 ld hl, .Jumptable add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a jp hl .Jumptable: dw .ShellderLaprasScene dw .JigglypuffPikachuScene dw .StartersCharizardScene .ShellderLaprasScene: ld hl, .ShellderLaprasBGPalette ld de, wBGPals1 call LoadHLPaletteIntoDE ld hl, .ShellderLaprasOBPals ld de, wOBPals1 ld bc, 2 palettes ld a, BANK(wOBPals1) call FarCopyWRAM call WipeAttrmap ret .ShellderLaprasBGPalette: INCLUDE "gfx/intro/gs_shellder_lapras_bg.pal" .ShellderLaprasOBPals: INCLUDE "gfx/intro/gs_shellder_lapras_ob.pal" .JigglypuffPikachuScene: ld de, wBGPals1 ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG call GetPredefPal call LoadHLPaletteIntoDE ld de, wOBPals1 ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB call GetPredefPal call LoadHLPaletteIntoDE call WipeAttrmap ret .StartersCharizardScene: ld hl, FourPals_Pack call CopyFourPalettes ld de, wOBPals1 ld a, PREDEFPAL_GS_INTRO_STARTERS_TRANSITION call GetPredefPal call LoadHLPaletteIntoDE call WipeAttrmap ret _CGB_BetaPoker: ld hl, BetaPokerPals ld de, wBGPals1 ld bc, 5 palettes ld a, BANK(wBGPals1) call FarCopyWRAM call ApplyPals call WipeAttrmap call ApplyAttrmap ret _CGB_Diploma: ld hl, DiplomaPalettes ld de, wBGPals1 ld bc, 16 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ld hl, FourPals_Diploma call CopyFourPalettes call WipeAttrmap call ApplyAttrmap ret _CGB_MapPals: call LoadMapPals ld a, CGB_MAPPALS ld [wDefaultCGBLayout], a ret _CGB_PartyMenu: ld hl, FourPals_PartyMenu call CopyFourPalettes call InitPartyMenuBGPal0 call InitPartyMenuBGPal7 call InitPartyMenuOBPals call ApplyAttrmap ret _CGB_Evolution: ld de, wBGPals1 ld a, c and a jr z, .pokemon ld a, PREDEFPAL_BLACKOUT call GetPredefPal call LoadHLPaletteIntoDE jr .got_palette .pokemon ld hl, wPartyMon1DVs ld bc, PARTYMON_STRUCT_LENGTH ld a, [wCurPartyMon] call AddNTimes ld c, l ld b, h ld a, [wPlayerHPPal] call GetPlayerOrMonPalettePointer call LoadPalette_White_Col1_Col2_Black ld hl, BattleObjectPals ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY ld bc, 6 palettes ld a, BANK(wOBPals1) call FarCopyWRAM .got_palette call WipeAttrmap call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_GSTitleScreen: ld hl, UnusedGSTitleBGPals ld de, wBGPals1 ld bc, 5 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ld hl, UnusedGSTitleOBPals ld de, wOBPals1 ld bc, 2 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ld a, CGB_DIPLOMA ld [wDefaultCGBLayout], a call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_LevelSelectionMenu: ; load daytime-based player sprite pal (male or female) ld a, [wTimeOfDay] maskbits NUM_DAYTIMES ld bc, 8 palettes ld hl, MapObjectPals call AddNTimes ld a, [wPlayerCharacter] ld e, PLAYERDATA_OW_PAL push hl call GetPlayerField pop hl ld bc, 1 palettes call AddNTimes ld de, wOBPals1 ld bc, 1 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ; load daytime-based ToD symbol pals (pal1) ld a, [wTimeOfDay] maskbits NUM_DAYTIMES ld bc, 1 palettes ld hl, LevelSelectionMenuTimeOfDaySymbolsPals call AddNTimes ld bc, 1 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ; load stage trophy pals (pal2 to pal5) ld hl, LevelSelectionMenuStageTrophiesPals ld bc, 4 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ; load daytime background pals ld hl, LevelSelectionMenuPals ld a, [wTimeOfDay] maskbits NUM_DAYTIMES ld bc, 6 palettes call AddNTimes ld de, wBGPals1 ld bc, 6 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ; apply and commit pals call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_LevelSelectionMenuToDChange: ; load daytime-based ToD symbol pals (pal1) ld a, [wTimeOfDay] maskbits NUM_DAYTIMES ld bc, 1 palettes ld hl, LevelSelectionMenuTimeOfDaySymbolsPals call AddNTimes ld de, wOBPals1 + 1 palettes ld bc, 1 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ; load fading background pals ld hl, .PalsOffsets ld a, [wLevelSelectionMenuStartingToD] maskbits NUM_DAYTIMES ld d, a ld a, [wLevelSelectionMenuToDFadeStep] ld e, a .loop ld a, [hli] cp d jr nz, .next1 inc a ; cp $ff jr z, .done ld a, [hli] cp e jr z, .match jr .next2 .next1 inc hl .next2 inc hl jr .loop .match ld a, [hl] ld hl, LevelSelectionMenuPals ld bc, 6 palettes call AddNTimes ld de, wBGPals1 ld bc, 6 palettes ld a, BANK(wBGPals1) call FarCopyWRAM .done ; apply and commit pals call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret .PalsOffsets: ; wLevelSelectionMenuStartingToD, wLevelSelectionMenuToDFadeStep, offset from LevelSelectionMenu*Pals db MORN_F, 0, 0 db DAY_F, 0, 1 db NITE_F, 0, 2 db EVE_F, 0, 3 db MORN_F, 1, 4 db MORN_F, 2, 5 db MORN_F, 3, 1 db DAY_F, 1, 6 db DAY_F, 2, 7 db DAY_F, 3, 3 db EVE_F, 1, 8 db EVE_F, 2, 9 db EVE_F, 3, 2 db NITE_F, 1, 10 db NITE_F, 2, 11 db NITE_F, 3, 0 db $ff _CGB_UnownPuzzle: ld hl, FourPals_UnownPuzzle call CopyFourPalettes ld de, wOBPals1 ld a, PREDEFPAL_UNOWN_PUZZLE call GetPredefPal call LoadHLPaletteIntoDE ldh a, [rSVBK] push af ld a, BANK(wOBPals1) ldh [rSVBK], a ld hl, wOBPals1 ld a, LOW(palred 31 + palgreen 0 + palblue 0) ld [hli], a ld a, HIGH(palred 31 + palgreen 0 + palblue 0) ld [hl], a pop af ldh [rSVBK], a call WipeAttrmap call ApplyAttrmap ret _CGB_TrainerCard: ld de, wBGPals1 xor a ; CHRIS call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, FALKNER ; KRIS call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, BUGSY call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, WHITNEY call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, MORTY call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, CHUCK call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, JASMINE call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, PRYCE call GetTrainerPalettePointer call LoadPalette_White_Col1_Col2_Black ld a, PREDEFPAL_CGB_BADGE call GetPredefPal call LoadHLPaletteIntoDE ; fill screen with opposite-gender palette for the card border hlcoord 0, 0, wAttrmap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, [wPlayerCharacter] and a ld a, $1 ; kris jr z, .got_gender ld a, $0 ; chris .got_gender call ByteFill ; fill trainer sprite area with same-gender palette hlcoord 14, 1, wAttrmap lb bc, 7, 5 ld a, [wPlayerCharacter] and a ld a, $0 ; chris jr z, .got_gender2 ld a, $1 ; kris .got_gender2 call FillBoxCGB ; top-right corner still uses the border's palette hlcoord 18, 1, wAttrmap ld [hl], $1 hlcoord 2, 11, wAttrmap lb bc, 2, 4 ld a, $1 ; falkner call FillBoxCGB hlcoord 6, 11, wAttrmap lb bc, 2, 4 ld a, $2 ; bugsy call FillBoxCGB hlcoord 10, 11, wAttrmap lb bc, 2, 4 ld a, $3 ; whitney call FillBoxCGB hlcoord 14, 11, wAttrmap lb bc, 2, 4 ld a, $4 ; morty call FillBoxCGB hlcoord 2, 14, wAttrmap lb bc, 2, 4 ld a, $5 ; chuck call FillBoxCGB hlcoord 6, 14, wAttrmap lb bc, 2, 4 ld a, $6 ; jasmine call FillBoxCGB hlcoord 10, 14, wAttrmap lb bc, 2, 4 ld a, $7 ; pryce call FillBoxCGB ; clair uses kris's palette ld a, [wPlayerCharacter] and a push af jr z, .got_gender3 hlcoord 14, 14, wAttrmap lb bc, 2, 4 ld a, $1 call FillBoxCGB .got_gender3 pop af ld c, $0 jr nz, .got_gender4 inc c .got_gender4 ld a, c hlcoord 18, 1, wAttrmap ld [hl], a call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_MoveList: ld de, wBGPals1 ld a, PREDEFPAL_GOLDENROD call GetPredefPal call LoadHLPaletteIntoDE ld a, [wPlayerHPPal] ld l, a ld h, 0 add hl, hl add hl, hl ld bc, HPBarPals add hl, bc call LoadPalette_White_Col1_Col2_Black call WipeAttrmap hlcoord 11, 1, wAttrmap lb bc, 2, 9 ld a, $1 call FillBoxCGB call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_BetaPikachuMinigame: ld hl, FourPals_BetaPikachuMinigame call CopyFourPalettes call WipeAttrmap call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_PokedexSearchOption: ld de, wBGPals1 ld a, PREDEFPAL_POKEDEX call GetPredefPal call LoadHLPaletteIntoDE call WipeAttrmap call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_PackPals: ; pack pals ld a, [wBattleType] cp BATTLETYPE_TUTORIAL jr z, .tutorial_male ld a, [wPlayerCharacter] bit PLAYERGENDER_FEMALE_F, a jr z, .tutorial_male ld hl, .KrisPackPals jr .got_gender .tutorial_male ld hl, .ChrisPackPals .got_gender ld de, wBGPals1 ld bc, 8 palettes ; 6 palettes? ld a, BANK(wBGPals1) call FarCopyWRAM call WipeAttrmap hlcoord 0, 0, wAttrmap lb bc, 1, 10 ld a, $1 call FillBoxCGB hlcoord 10, 0, wAttrmap lb bc, 1, 10 ld a, $2 call FillBoxCGB hlcoord 7, 2, wAttrmap lb bc, 9, 1 ld a, $3 call FillBoxCGB hlcoord 0, 7, wAttrmap lb bc, 3, 5 ld a, $4 call FillBoxCGB hlcoord 0, 3, wAttrmap lb bc, 3, 5 ld a, $5 call FillBoxCGB call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret .ChrisPackPals: INCLUDE "gfx/pack/pack.pal" .KrisPackPals: INCLUDE "gfx/pack/pack_f.pal" _CGB_Pokepic: call _CGB_MapPals ld de, SCREEN_WIDTH hlcoord 0, 0, wAttrmap ld a, [wMenuBorderTopCoord] .loop and a jr z, .found_top dec a add hl, de jr .loop .found_top ld a, [wMenuBorderLeftCoord] ld e, a ld d, 0 add hl, de ld a, [wMenuBorderTopCoord] ld b, a ld a, [wMenuBorderBottomCoord] inc a sub b ld b, a ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderRightCoord] sub c inc a ld c, a ld a, PAL_BG_GRAY call FillBoxCGB call ApplyAttrmap ret _CGB_MagnetTrain: ; unused ld hl, FourPals_MagnetTrain call CopyFourPalettes call WipeAttrmap hlcoord 0, 4, wAttrmap lb bc, 10, SCREEN_WIDTH ld a, PAL_BG_GREEN call FillBoxCGB hlcoord 0, 6, wAttrmap lb bc, 6, SCREEN_WIDTH ld a, PAL_BG_RED call FillBoxCGB call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_GamefreakLogo: ld de, wBGPals1 ld a, PREDEFPAL_GAMEFREAK_LOGO_BG call GetPredefPal call LoadHLPaletteIntoDE ld hl, .GamefreakDittoPalette ld de, wOBPals1 call LoadHLPaletteIntoDE ld hl, .GamefreakDittoPalette ld de, wOBPals1 palette 1 call LoadHLPaletteIntoDE call WipeAttrmap call ApplyAttrmap call ApplyPals ret .GamefreakDittoPalette: INCLUDE "gfx/splash/ditto.pal" _CGB_PlayerOrMonFrontpicPals: ld de, wBGPals1 ld a, [wCurPartySpecies] ld bc, wTempMonDVs call GetPlayerOrMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrmap call ApplyAttrmap call ApplyPals ret _CGB_Unused1D: ld de, wBGPals1 ld a, [wCurPartySpecies] call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrmap call ApplyAttrmap ret _CGB_TradeTube: ld hl, FourPals_TradeTube call CopyFourPalettes ld hl, PartyMenuOBPals ld de, wOBPals1 ld bc, 1 palettes ld a, BANK(wOBPals1) call FarCopyWRAM ld de, wOBPals1 palette 7 ld a, PREDEFPAL_TRADE_TUBE call GetPredefPal call LoadHLPaletteIntoDE call WipeAttrmap ret _CGB_TrainerOrMonFrontpicPals: ld de, wBGPals1 ld a, [wCurPartySpecies] ld bc, wTempMonDVs call GetFrontpicPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrmap call ApplyAttrmap call ApplyPals ret