pokecrystal/engine/gfx/cgb_layouts.asm

999 lines
18 KiB
NASM

; 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, .dw
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld de, .ReturnFromJumpTable
push de
jp hl
.ReturnFromJumpTable:
ret
.dw
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
_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:
RGB 19, 31, 19
RGB 18, 23, 31
RGB 11, 21, 28
RGB 04, 16, 24
.ShellderLaprasOBPals:
RGB 29, 29, 29
RGB 20, 19, 20
RGB 19, 06, 04
RGB 03, 04, 06
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 00, 00
RGB 03, 04, 06
.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:
RGB 31, 31, 31
RGB 09, 31, 31
RGB 10, 12, 31
RGB 00, 03, 19