mirror of https://github.com/pret/pokecrystal.git
1128 lines
19 KiB
NASM
1128 lines
19 KiB
NASM
; Replaces the functionality of sgb.asm to work with CGB hardware.
|
|
|
|
CheckCGB: ; 8d55
|
|
ld a, [hCGB]
|
|
and a
|
|
ret
|
|
; 8d59
|
|
|
|
Predef_LoadSGBLayoutCGB: ; 8d59
|
|
ld a, b
|
|
cp SCGB_RAM
|
|
jr nz, .not_ram
|
|
ld a, [SGBPredef]
|
|
.not_ram
|
|
cp SCGB_PARTY_MENU_HP_PALS
|
|
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
|
|
; 8d79
|
|
|
|
.ReturnFromJumpTable: ; 8d79
|
|
ret
|
|
; 8d7a
|
|
|
|
.dw ; 8d7a
|
|
dw _CGB_BattleGrayscale
|
|
dw _CGB_BattleColors
|
|
dw _CGB_PokegearPals
|
|
dw _CGB_StatsScreenHPPals
|
|
dw _CGB_Pokedex
|
|
dw _CGB_SlotMachine
|
|
dw _CGB06
|
|
dw _CGB07
|
|
dw _CGB_Diploma
|
|
dw _CGB_MapPals
|
|
dw _CGB_PartyMenu
|
|
dw _CGB_Evolution
|
|
dw _CGB0c
|
|
dw _CGB0d
|
|
dw _CGB_MoveList
|
|
dw _CGB0f
|
|
dw _CGB_PokedexSearchOption
|
|
dw _CGB11
|
|
dw _CGB_Pokepic
|
|
dw _CGB13
|
|
dw _CGB_PackPals
|
|
dw _CGB_TrainerCard
|
|
dw _CGB_PokedexUnownMode
|
|
dw _CGB_BillsPC
|
|
dw _CGB_UnownPuzzle
|
|
dw _CGB_GamefreakLogo ; called before copyright
|
|
dw _CGB_PlayerOrMonFrontpicPals
|
|
dw _CGB_TradeTube
|
|
dw _CGB_TrainerOrMonFrontpicPals
|
|
dw _CGB_MysteryGift
|
|
dw _CGB1e
|
|
; 8db8
|
|
|
|
_CGB_BattleGrayscale: ; 8db8
|
|
ld hl, PalPacket_9c66 + 1
|
|
ld de, UnknBGPals
|
|
ld c, 4
|
|
call CopyPalettes
|
|
ld hl, PalPacket_9c66 + 1
|
|
ld de, UnknBGPals palette PAL_BATTLE_BG_EXP
|
|
ld c, 4
|
|
call CopyPalettes
|
|
ld hl, PalPacket_9c66 + 1
|
|
ld de, UnknOBPals
|
|
ld c, 2
|
|
call CopyPalettes
|
|
jr _CGB_FinishBattleScreenLayout
|
|
|
|
_CGB_BattleColors: ; 8ddb
|
|
ld de, UnknBGPals
|
|
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, [EnemyHPPal]
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, Palettes_a8be
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
|
|
ld a, [PlayerHPPal]
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, Palettes_a8be
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
|
|
ld hl, Palettes_a8ca
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
|
|
ld de, UnknOBPals
|
|
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 [SGBPredef], a
|
|
call ApplyPals
|
|
_CGB_FinishBattleScreenLayout: ; 8e23
|
|
call InitPartyMenuBGPal7
|
|
hlcoord 0, 0, AttrMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, PAL_BATTLE_BG_ENEMY_HP
|
|
call ByteFill
|
|
hlcoord 0, 4, AttrMap
|
|
lb bc, 8, 10
|
|
ld a, PAL_BATTLE_BG_PLAYER
|
|
call FillBoxCGB
|
|
hlcoord 10, 0, AttrMap
|
|
lb bc, 7, 10
|
|
ld a, PAL_BATTLE_BG_ENEMY
|
|
call FillBoxCGB
|
|
hlcoord 0, 0, AttrMap
|
|
lb bc, 4, 10
|
|
ld a, PAL_BATTLE_BG_ENEMY_HP
|
|
call FillBoxCGB
|
|
hlcoord 10, 7, AttrMap
|
|
lb bc, 5, 10
|
|
ld a, PAL_BATTLE_BG_PLAYER_HP
|
|
call FillBoxCGB
|
|
hlcoord 10, 11, AttrMap
|
|
lb bc, 1, 9
|
|
ld a, PAL_BATTLE_BG_EXP
|
|
call FillBoxCGB
|
|
hlcoord 0, 12, AttrMap
|
|
ld bc, 6 * SCREEN_WIDTH
|
|
ld a, PAL_BATTLE_BG_TEXT
|
|
call ByteFill
|
|
ld hl, Palettes_979c
|
|
ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY
|
|
ld bc, 6 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call ApplyAttrMap
|
|
ret
|
|
; 8e85
|
|
|
|
|
|
InitPartyMenuBGPal7: ; 8e85
|
|
callba Function100dc0
|
|
Mobile_InitPartyMenuBGPal7: ; 8e8b
|
|
ld hl, Palette_b311
|
|
jr nc, .not_mobile
|
|
ld hl, Palette_b309
|
|
.not_mobile
|
|
ld de, UnknBGPals palette 7
|
|
ld bc, 1 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ret
|
|
; 8e9f
|
|
|
|
InitPartyMenuBGPal0: ; 8e9f
|
|
callba Function100dc0
|
|
ld hl, Palette_b311
|
|
jr nc, .not_mobile
|
|
ld hl, Palette_b309
|
|
.not_mobile
|
|
ld de, UnknBGPals palette 0
|
|
ld bc, 1 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ret
|
|
; 8eb9
|
|
|
|
_CGB_PokegearPals: ; 8eb9
|
|
ld a, [PlayerGender]
|
|
bit 0, a
|
|
jr z, .male
|
|
ld hl, FemalePokegearPals
|
|
jr .got_pals
|
|
|
|
.male
|
|
ld hl, MalePokegearPals
|
|
.got_pals
|
|
ld de, UnknBGPals
|
|
ld bc, 6 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 8edb
|
|
|
|
_CGB_StatsScreenHPPals: ; 8edb
|
|
ld de, UnknBGPals
|
|
ld a, [wCurHPPal]
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, Palettes_a8be
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; hp palette
|
|
ld a, [CurPartySpecies]
|
|
ld bc, TempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black ; mon palette
|
|
ld hl, Palettes_a8ca
|
|
call LoadPalette_White_Col1_Col2_Black ; exp palette
|
|
ld hl, StatsScreenPagePals
|
|
ld de, UnknBGPals palette 3
|
|
ld bc, 3 palettes ; pink, green, and blue page palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call WipeAttrMap
|
|
|
|
hlcoord 0, 0, AttrMap
|
|
lb bc, 8, SCREEN_WIDTH
|
|
ld a, $1 ; mon palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 10, 16, AttrMap
|
|
ld bc, 10
|
|
ld a, $2 ; exp palette
|
|
call ByteFill
|
|
|
|
hlcoord 13, 5, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $3 ; pink page palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 15, 5, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $4 ; green page palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 17, 5, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $5 ; blue page palette
|
|
call FillBoxCGB
|
|
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 8f52
|
|
|
|
StatsScreenPagePals: ; 8f52
|
|
; pink
|
|
RGB 31, 31, 31
|
|
RGB 31, 19, 31
|
|
RGB 31, 15, 31
|
|
RGB 00, 00, 00
|
|
; green
|
|
RGB 31, 31, 31
|
|
RGB 21, 31, 14
|
|
RGB 17, 31, 00
|
|
RGB 00, 00, 00
|
|
; blue
|
|
RGB 31, 31, 31
|
|
RGB 17, 31, 31
|
|
RGB 17, 31, 31
|
|
RGB 00, 00, 00
|
|
; 8f6a
|
|
|
|
StatsScreenPals: ; 8f6a
|
|
; pink
|
|
RGB 31, 19, 31
|
|
; green
|
|
RGB 21, 31, 14
|
|
; blue
|
|
RGB 17, 31, 31
|
|
; 8f70
|
|
|
|
_CGB_Pokedex: ; 8f70
|
|
ld de, UnknBGPals
|
|
ld a, $1d
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE ; dex interface palette
|
|
ld a, [CurPartySpecies]
|
|
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, AttrMap
|
|
lb bc, 7, 7
|
|
ld a, $1 ; green question mark palette
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
ld hl, .PokedexCursorPalette
|
|
ld de, UnknOBPals palette 7 ; green cursor palette
|
|
ld bc, 1 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 8fba
|
|
|
|
.PokedexQuestionMarkPalette: ; 8fba
|
|
RGB 11, 23, 00
|
|
RGB 07, 17, 00
|
|
RGB 06, 16, 03
|
|
RGB 05, 12, 01
|
|
|
|
.PokedexCursorPalette: ; 8fc2
|
|
RGB 00, 00, 00
|
|
RGB 11, 23, 00
|
|
RGB 07, 17, 00
|
|
RGB 00, 00, 00
|
|
; 8fca
|
|
|
|
_CGB_BillsPC: ; 8fca
|
|
ld de, UnknBGPals
|
|
ld a, $1d
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [CurPartySpecies]
|
|
cp $ff
|
|
jr nz, .GetMonPalette
|
|
ld hl, .BillsPCOrangePalette
|
|
call LoadHLPaletteIntoDE
|
|
jr .Resume
|
|
|
|
.GetMonPalette:
|
|
ld bc, TempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
.Resume:
|
|
call WipeAttrMap
|
|
hlcoord 1, 4, AttrMap
|
|
lb bc, 7, 7
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9009
|
|
|
|
.Function9009: ; 9009
|
|
ld hl, .BillsPCOrangePalette
|
|
call LoadHLPaletteIntoDE
|
|
jr .asm_901a
|
|
|
|
.unused
|
|
ld bc, TempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
.asm_901a
|
|
call WipeAttrMap
|
|
hlcoord 1, 1, AttrMap
|
|
lb bc, 7, 7
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9036
|
|
|
|
.BillsPCOrangePalette: ; 9036
|
|
RGB 31, 15, 00
|
|
RGB 23, 12, 00
|
|
RGB 15, 07, 00
|
|
RGB 00, 00, 00
|
|
; 903e
|
|
|
|
_CGB_PokedexUnownMode: ; 903e
|
|
ld de, UnknBGPals
|
|
ld a, $1d
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [CurPartySpecies]
|
|
call GetMonPalettePointer_
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrMap
|
|
hlcoord 7, 5, AttrMap
|
|
lb bc, 7, 7
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 906e
|
|
|
|
_CGB_SlotMachine: ; 906e
|
|
ld hl, SlotMachinePals
|
|
ld de, UnknBGPals
|
|
ld bc, 16 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call WipeAttrMap
|
|
hlcoord 0, 2, AttrMap
|
|
lb bc, 10, 3
|
|
ld a, $2
|
|
call FillBoxCGB
|
|
hlcoord 17, 2, AttrMap
|
|
lb bc, 10, 3
|
|
ld a, $2
|
|
call FillBoxCGB
|
|
hlcoord 0, 4, AttrMap
|
|
lb bc, 6, 3
|
|
ld a, $3
|
|
call FillBoxCGB
|
|
hlcoord 17, 4, AttrMap
|
|
lb bc, 6, 3
|
|
ld a, $3
|
|
call FillBoxCGB
|
|
hlcoord 0, 6, AttrMap
|
|
lb bc, 2, 3
|
|
ld a, $4
|
|
call FillBoxCGB
|
|
hlcoord 17, 6, AttrMap
|
|
lb bc, 2, 3
|
|
ld a, $4
|
|
call FillBoxCGB
|
|
hlcoord 4, 2, AttrMap
|
|
lb bc, 2, 12
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 3, 2, AttrMap
|
|
lb bc, 10, 1
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 16, 2, AttrMap
|
|
lb bc, 10, 1
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 0, 12, AttrMap
|
|
ld bc, $78
|
|
ld a, $7
|
|
call ByteFill
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 90f8
|
|
|
|
_CGB06: ; 90f8
|
|
ld hl, PalPacket_9ca6 + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrMap
|
|
ld de, UnknOBPals
|
|
ld a, $3c
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
hlcoord 0, 6, AttrMap
|
|
lb bc, 12, SCREEN_WIDTH
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9122
|
|
|
|
_CGB07: ; 9122
|
|
ld b, 0
|
|
ld hl, .Jumptable
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; 912d
|
|
|
|
.Jumptable: ; 912d
|
|
dw .Function9133
|
|
dw .Function9166
|
|
dw .Function9180
|
|
; 9133
|
|
|
|
.Function9133: ; 9133
|
|
ld hl, .Palette_914e
|
|
ld de, UnknBGPals
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .Palette_9156
|
|
ld de, UnknOBPals
|
|
ld bc, 2 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call WipeAttrMap
|
|
ret
|
|
; 914e
|
|
|
|
.Palette_914e: ; 914e
|
|
RGB 19, 31, 19
|
|
RGB 18, 23, 31
|
|
RGB 11, 21, 28
|
|
RGB 04, 16, 24
|
|
|
|
.Palette_9156: ; 9156
|
|
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
|
|
; 9166
|
|
|
|
.Function9166: ; 9166
|
|
ld de, UnknBGPals
|
|
ld a, $38
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
|
|
ld de, UnknOBPals
|
|
ld a, $39
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrMap
|
|
ret
|
|
; 9180
|
|
|
|
.Function9180: ; 9180
|
|
ld hl, PalPacket_9c36 + 1
|
|
call CopyFourPalettes
|
|
ld de, UnknOBPals
|
|
ld a, $3a
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrMap
|
|
ret
|
|
; 9195
|
|
|
|
_CGB11: ; 9195
|
|
ld hl, Palettes_b789
|
|
ld de, UnknBGPals
|
|
ld bc, 5 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
ret
|
|
; 91ad
|
|
|
|
_CGB_Diploma: ; 91ad
|
|
ld hl, DiplomaPalettes
|
|
ld de, UnknBGPals
|
|
ld bc, 16 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
|
|
ld hl, PalPacket_9cb6 + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
ret
|
|
; 91c8
|
|
|
|
_CGB_MapPals: ; 91c8
|
|
call LoadMapPals
|
|
ld a, SCGB_MAPPALS
|
|
ld [SGBPredef], a
|
|
ret
|
|
; 91d1
|
|
|
|
_CGB_PartyMenu: ; 91d1
|
|
ld hl, PalPacket_9c56 + 1
|
|
call CopyFourPalettes
|
|
call InitPartyMenuBGPal0
|
|
call InitPartyMenuBGPal7
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrMap
|
|
ret
|
|
; 91e4
|
|
|
|
_CGB_Evolution: ; 91e4
|
|
ld de, UnknBGPals
|
|
ld a, c
|
|
and a
|
|
jr z, .pokemon
|
|
ld a, $1a
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
jr .got_palette
|
|
|
|
.pokemon
|
|
ld hl, PartyMon1DVs
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
ld a, [CurPartyMon]
|
|
call AddNTimes
|
|
ld c, l
|
|
ld b, h
|
|
ld a, [PlayerHPPal]
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld hl, Palettes_979c
|
|
ld de, UnknOBPals palette 2
|
|
ld bc, 6 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
|
|
.got_palette
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9228
|
|
|
|
_CGB0c: ; 9228
|
|
ld hl, Palettes_b6f1
|
|
ld de, UnknBGPals
|
|
ld bc, 5 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ld hl, Palettes_b719
|
|
ld de, UnknOBPals
|
|
ld bc, 2 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ld a, SCGB_DIPLOMA
|
|
ld [SGBPredef], a
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9251
|
|
|
|
_CGB0d: ; 9251
|
|
ld hl, PalPacket_9cb6 + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
ret
|
|
; 925e
|
|
|
|
_CGB_UnownPuzzle: ; 925e
|
|
ld hl, PalPacket_9bc6 + 1
|
|
call CopyFourPalettes
|
|
ld de, UnknOBPals
|
|
ld a, $4c
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, UnknOBPals
|
|
ld a, $1f
|
|
ld [hli], a
|
|
ld a, $0
|
|
ld [hl], a
|
|
pop af
|
|
ld [rSVBK], a
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
ret
|
|
; 9289
|
|
|
|
_CGB_TrainerCard: ; 9289
|
|
ld de, UnknBGPals
|
|
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, $24
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
|
|
; fill screen with opposite-gender palette for the card border
|
|
hlcoord 0, 0, AttrMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, [PlayerGender]
|
|
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, AttrMap
|
|
lb bc, 7, 5
|
|
ld a, [PlayerGender]
|
|
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, AttrMap
|
|
ld [hl], $1
|
|
hlcoord 2, 11, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $1 ; falkner
|
|
call FillBoxCGB
|
|
hlcoord 6, 11, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $2 ; bugsy
|
|
call FillBoxCGB
|
|
hlcoord 10, 11, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $3 ; whitney
|
|
call FillBoxCGB
|
|
hlcoord 14, 11, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $4 ; morty
|
|
call FillBoxCGB
|
|
hlcoord 2, 14, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $5 ; chuck
|
|
call FillBoxCGB
|
|
hlcoord 6, 14, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $6 ; jasmine
|
|
call FillBoxCGB
|
|
hlcoord 10, 14, AttrMap
|
|
lb bc, 2, 4
|
|
ld a, $7 ; pryce
|
|
call FillBoxCGB
|
|
; clair uses kris's palette
|
|
ld a, [PlayerGender]
|
|
and a
|
|
push af
|
|
jr z, .got_gender3
|
|
hlcoord 14, 14, AttrMap
|
|
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, AttrMap
|
|
ld [hl], a
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9373
|
|
|
|
_CGB_MoveList: ; 9373
|
|
ld de, UnknBGPals
|
|
ld a, $10
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [PlayerHPPal]
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, Palettes_a8be
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrMap
|
|
hlcoord 11, 1, AttrMap
|
|
lb bc, 2, 9
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 93a6
|
|
|
|
_CGB0f: ; 93a6
|
|
ld hl, PalPacket_9c46 + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 93ba
|
|
|
|
_CGB_PokedexSearchOption: ; 93ba
|
|
ld de, UnknBGPals
|
|
ld a, $1d
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 93d3
|
|
|
|
_CGB_PackPals: ; 93d3
|
|
; pack pals
|
|
ld a, [BattleType]
|
|
cp BATTLETYPE_TUTORIAL
|
|
jr z, .tutorial_male
|
|
|
|
ld a, [PlayerGender]
|
|
bit 0, a
|
|
jr z, .tutorial_male
|
|
|
|
ld hl, .KrisPackPals
|
|
jr .got_gender
|
|
|
|
.tutorial_male
|
|
ld hl, .ChrisPackPals
|
|
|
|
.got_gender
|
|
ld de, UnknBGPals
|
|
ld bc, 8 palettes ; 6 palettes?
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call WipeAttrMap
|
|
hlcoord 0, 0, AttrMap
|
|
lb bc, 1, 10
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 10, 0, AttrMap
|
|
lb bc, 1, 10
|
|
ld a, $2
|
|
call FillBoxCGB
|
|
hlcoord 7, 2, AttrMap
|
|
lb bc, 9, 1
|
|
ld a, $3
|
|
call FillBoxCGB
|
|
hlcoord 0, 7, AttrMap
|
|
lb bc, 3, 5
|
|
ld a, $4
|
|
call FillBoxCGB
|
|
hlcoord 0, 3, AttrMap
|
|
lb bc, 3, 5
|
|
ld a, $5
|
|
call FillBoxCGB
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 9439
|
|
|
|
.ChrisPackPals: ; 9439
|
|
RGB 31, 31, 31
|
|
RGB 15, 15, 31
|
|
RGB 00, 00, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 15, 15, 31
|
|
RGB 00, 00, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 11, 31
|
|
RGB 15, 15, 31
|
|
RGB 00, 00, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 15, 15, 31
|
|
RGB 00, 00, 31
|
|
RGB 31, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 15, 15, 31
|
|
RGB 31, 00, 00
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 07, 19, 07
|
|
RGB 07, 19, 07
|
|
RGB 00, 00, 00
|
|
; 9469
|
|
|
|
.KrisPackPals: ; 9469
|
|
RGB 31, 31, 31
|
|
RGB 31, 14, 31
|
|
RGB 31, 07, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 14, 31
|
|
RGB 31, 07, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 15, 15, 31
|
|
RGB 31, 14, 31
|
|
RGB 31, 07, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 14, 31
|
|
RGB 31, 07, 31
|
|
RGB 31, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 14, 31
|
|
RGB 31, 00, 00
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 07, 19, 07
|
|
RGB 07, 19, 07
|
|
RGB 00, 00, 00
|
|
; 9499
|
|
|
|
_CGB_Pokepic: ; 9499
|
|
call _CGB_MapPals
|
|
ld de, SCREEN_WIDTH
|
|
hlcoord 0, 0, AttrMap
|
|
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
|
|
; 94d0
|
|
|
|
_CGB13: ; 94d0
|
|
ld hl, PalPacket_9ba6 + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrMap
|
|
hlcoord 0, 4, AttrMap
|
|
lb bc, 10, SCREEN_WIDTH
|
|
ld a, $2
|
|
call FillBoxCGB
|
|
hlcoord 0, 6, AttrMap
|
|
lb bc, 6, SCREEN_WIDTH
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 94fa
|
|
|
|
_CGB_GamefreakLogo: ; 94fa
|
|
ld de, UnknBGPals
|
|
ld a, $4e
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .Palette
|
|
ld de, UnknOBPals
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .Palette
|
|
ld de, UnknOBPals palette 1
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ret
|
|
; 9521
|
|
|
|
.Palette: ; 9521
|
|
RGB 31, 31, 31
|
|
RGB 13, 11, 00
|
|
RGB 23, 12, 28
|
|
RGB 00, 00, 00
|
|
; 9529
|
|
|
|
_CGB_PlayerOrMonFrontpicPals: ; 9529
|
|
ld de, UnknBGPals
|
|
ld a, [CurPartySpecies]
|
|
ld bc, TempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ret
|
|
; 9542
|
|
|
|
_CGB1e: ; 9542
|
|
ld de, UnknBGPals
|
|
ld a, [CurPartySpecies]
|
|
call GetMonPalettePointer_
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
ret
|
|
; 9555
|
|
|
|
_CGB_TradeTube: ; 9555
|
|
ld hl, PalPacket_9cc6 + 1
|
|
call CopyFourPalettes
|
|
ld hl, Palettes_b681
|
|
ld de, UnknOBPals
|
|
ld bc, 1 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ld de, UnknOBPals palette 7
|
|
ld a, $1c
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrMap
|
|
ret
|
|
; 9578
|
|
|
|
_CGB_TrainerOrMonFrontpicPals: ; 9578
|
|
ld de, UnknBGPals
|
|
ld a, [CurPartySpecies]
|
|
ld bc, TempMonDVs
|
|
call GetFrontpicPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrMap
|
|
call ApplyAttrMap
|
|
call ApplyPals
|
|
ret
|
|
; 9591
|
|
|
|
_CGB_MysteryGift: ; 9591
|
|
ld hl, .Palettes
|
|
ld de, UnknBGPals
|
|
ld bc, 2 palettes
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
call WipeAttrMap
|
|
hlcoord 3, 7, AttrMap
|
|
lb bc, 8, 14
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 1, 5, AttrMap
|
|
lb bc, 1, 18
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 1, 16, AttrMap
|
|
lb bc, 1, 18
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 0, 0, AttrMap
|
|
lb bc, 17, 2
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 18, 5, AttrMap
|
|
lb bc, 12, 1
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrMap
|
|
ret
|
|
; 95e0
|
|
|
|
.Palettes: ; 95e0
|
|
RGB 31, 31, 31
|
|
RGB 16, 31, 14
|
|
RGB 05, 14, 21
|
|
RGB 05, 13, 10
|
|
|
|
RGB 31, 31, 31
|
|
RGB 11, 21, 25
|
|
RGB 05, 14, 21
|
|
RGB 00, 03, 19
|
|
; 95f0
|