ref: 35219230960f0dc85c0cb6a5723877b247609e46
dir: /engine/gfx/cgb_layouts.asm/
; Replaces the functionality of sgb.asm to work with CGB hardware. CheckCGB: ldh a, [hCGB] and a ret LoadSGBLayoutCGB: ld a, b cp SCGB_DEFAULT jr nz, .not_default ld a, [wDefaultSGBLayout] .not_default cp SCGB_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: 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_Unused0D 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_MysteryGift dw _CGB_Unused1E assert_table_length NUM_SCGB_LAYOUTS _CGB_BattleGrayscale: ld hl, PalPacket_BattleGrayscale + 1 ld de, wBGPals1 ld c, 4 call CopyPalettes ld hl, PalPacket_BattleGrayscale + 1 ld de, wBGPals1 palette PAL_BATTLE_BG_EXP ld c, 4 call CopyPalettes ld hl, PalPacket_BattleGrayscale + 1 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, SCGB_BATTLE_COLORS ld [wDefaultSGBLayout], 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: farcall Function100dc0 Mobile_InitPartyMenuBGPal7: ld hl, PartyMenuBGPalette jr nc, .not_mobile ld hl, PartyMenuBGMobilePalette .not_mobile ld de, wBGPals1 palette 7 ld bc, 1 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ret InitPartyMenuBGPal0: farcall Function100dc0 ld hl, PartyMenuBGPalette jr nc, .not_mobile ld hl, PartyMenuBGMobilePalette .not_mobile ld de, wBGPals1 palette 0 ld bc, 1 palettes ld a, BANK(wBGPals1) call FarCopyWRAM ret _CGB_PokegearPals: ld a, [wPlayerGender] 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 call FillBoxCGB call InitPartyMenuOBPals call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_Unknown: ; unreferenced ld hl, BillsPCOrangePalette call LoadHLPaletteIntoDE jr .GotPalette .GetMonPalette: ; unreferenced ld bc, wTempMonDVs call GetPlayerOrMonPalettePointer call LoadPalette_White_Col1_Col2_Black .GotPalette: call WipeAttrmap hlcoord 1, 1, wAttrmap lb bc, 7, 7 ld a, $1 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 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 call FillBoxCGB hlcoord 17, 2, wAttrmap lb bc, 10, 3 ld a, $2 call FillBoxCGB hlcoord 0, 4, wAttrmap lb bc, 6, 3 ld a, $3 call FillBoxCGB hlcoord 17, 4, wAttrmap lb bc, 6, 3 ld a, $3 call FillBoxCGB hlcoord 0, 6, wAttrmap lb bc, 2, 3 ld a, $4 call FillBoxCGB hlcoord 17, 6, wAttrmap lb bc, 2, 3 ld a, $4 call FillBoxCGB hlcoord 4, 2, wAttrmap lb bc, 2, 12 ld a, $1 call FillBoxCGB hlcoord 3, 2, wAttrmap lb bc, 10, 1 ld a, $1 call FillBoxCGB hlcoord 16, 2, wAttrmap lb bc, 10, 1 ld a, $1 call FillBoxCGB hlcoord 0, 12, wAttrmap ld bc, $78 ld a, $7 call ByteFill call ApplyAttrmap call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_BetaTitleScreen: ld hl, PalPacket_BetaTitleScreen + 1 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, PalPacket_Pack + 1 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, PalPacket_Diploma + 1 call CopyFourPalettes call WipeAttrmap call ApplyAttrmap ret _CGB_MapPals: call LoadMapPals ld a, SCGB_MAPPALS ld [wDefaultSGBLayout], a ret _CGB_PartyMenu: ld hl, PalPacket_PartyMenu + 1 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, SCGB_DIPLOMA ld [wDefaultSGBLayout], a call ApplyPals ld a, TRUE ldh [hCGBPalUpdate], a ret _CGB_Unused0D: ld hl, PalPacket_Diploma + 1 call CopyFourPalettes call WipeAttrmap call ApplyAttrmap ret _CGB_UnownPuzzle: ld hl, PalPacket_UnownPuzzle + 1 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, [wPlayerGender] 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, [wPlayerGender] 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, [wPlayerGender] 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, PalPacket_BetaPikachuMinigame + 1 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, [wPlayerGender] 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, $0 call FillBoxCGB call ApplyAttrmap ret _CGB_MagnetTrain: ld hl, PalPacket_MagnetTrain + 1 call CopyFourPalettes call WipeAttrmap hlcoord 0, 4, wAttrmap lb bc, 10, SCREEN_WIDTH ld a, $2 call FillBoxCGB hlcoord 0, 6, wAttrmap lb bc, 6, SCREEN_WIDTH ld a, $1 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_Unused1E: ld de, wBGPals1 ld a, [wCurPartySpecies] call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrmap call ApplyAttrmap ret _CGB_TradeTube: ld hl, PalPacket_TradeTube + 1 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 _CGB_MysteryGift: ld hl, .MysteryGiftPalettes ld de, wBGPals1 ld bc, 2 palettes ld a, BANK(wBGPals1) call FarCopyWRAM call ApplyPals call WipeAttrmap hlcoord 3, 7, wAttrmap lb bc, 8, 14 ld a, $1 call FillBoxCGB hlcoord 1, 5, wAttrmap lb bc, 1, 18 ld a, $1 call FillBoxCGB hlcoord 1, 16, wAttrmap lb bc, 1, 18 ld a, $1 call FillBoxCGB hlcoord 0, 0, wAttrmap lb bc, 17, 2 ld a, $1 call FillBoxCGB hlcoord 18, 5, wAttrmap lb bc, 12, 1 ld a, $1 call FillBoxCGB call ApplyAttrmap ret .MysteryGiftPalettes: INCLUDE "gfx/mystery_gift/mystery_gift.pal" GS_CGB_MysteryGift: ; unreferenced ld hl, .MysteryGiftPalette ld de, wBGPals1 ld bc, 1 palettes ld a, BANK(wBGPals1) call FarCopyWRAM call ApplyPals call WipeAttrmap call ApplyAttrmap ret .MysteryGiftPalette: INCLUDE "gfx/mystery_gift/gs_mystery_gift.pal"