diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/gfx/cgb_layouts.asm | 977 | ||||
-rwxr-xr-x | engine/gfx/color.asm | 1677 | ||||
-rwxr-xr-x | engine/gfx/sgb_layouts.asm | 636 | ||||
-rw-r--r-- | engine/menus/naming_screen.asm | 18 | ||||
-rw-r--r-- | engine/movie/title.asm | 10 |
5 files changed, 1331 insertions, 1987 deletions
diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm index 297f27b2..34cb2350 100755 --- a/engine/gfx/cgb_layouts.asm +++ b/engine/gfx/cgb_layouts.asm @@ -1,443 +1,425 @@ +; Replaces the functionality of sgb.asm to work with CGB hardware. + CheckCGB: ldh a, [hCGB] and a ret -Predef_LoadSGBLayoutCGB: +LoadSGBLayoutCGB: ld a, b cp SCGB_RAM - jr nz, .asm_931d - ld a, [wColorLayoutPredefID] -.asm_931d + jr nz, .not_ram + ld a, [wSGBPredef] +.not_ram cp SCGB_PARTY_MENU_HP_PALS - jp z, Function9b75 - call Function9b01 + jp z, CGB_ApplyPartyMenuHPPals + call ResetBGPals ld l, a - ld h, $0 + ld h, 0 add hl, hl - ld de, .Jumptable + ld de, .dw add hl, de ld a, [hli] ld h, [hl] ld l, a - ld de, .return + ld de, .ReturnFromJumpTable push de jp hl -.return - ret - -.Jumptable - dw Function9376 - dw Function9399 - dw Function944a - dw Function945e - dw Function94f1 - dw Function9605 - dw Function968d - dw Function96b7 - dw Function973e - dw Function9757 - dw Function9760 - dw Function976d - dw Function97af - dw Function97d4 - dw Function98be - dw Function98f1 - dw Function9905 - dw Function9728 - dw Function999f - dw Function99d9 - dw Function991e - dw Function9802 - dw Function95d5 - dw Function9561 - dw Function97e1 - dw Function9a03 - dw Function9a2e - dw Function9a5a - dw Function9a7b +.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 _CGB0d + 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 Function9a94 - dw Function9a47 - dw Function9502 + dw _CGB1e + dw _CGB_Pokedex_5_5 -Function9376: ; 9376 (2:5376) - ld hl, PalPacket_a0d5 + 1 +_CGB_BattleGrayscale: + ld hl, PalPacket_BattleGrayscale + 1 ld de, wBGPals1 - ld c, $4 - call Function9ab7 - ld hl, PalPacket_a0d5 + 1 - ld de, wBGPals1 palette 4 - ld c, $4 - call Function9ab7 - ld hl, PalPacket_a0d5 + 1 + 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 Function9ab7 - jr asm_93e1 + ld c, 2 + call CopyPalettes + jr _CGB_FinishBattleScreenLayout -Function9399: ; 9399 (2:5399) +_CGB_BattleColors: ld de, wBGPals1 - call Function9ba9 + call GetBattlemonBackpicPalettePointer push hl - call Function9adb - call Function9bba + call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER + call GetEnemyFrontpicPalettePointer push hl - call Function9adb + 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, Palettes_ad2d + ld bc, HPBarPals add hl, bc - call Function9adb + 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, Palettes_ad2d + ld bc, HPBarPals add hl, bc - call Function9adb - ld hl, Palettes_ad39 - call Function9adb + 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 Function9adb + call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY pop hl - call Function9adb - ld a, $1 - ld [wColorLayoutPredefID], a - call Function9b28 -asm_93e1: + call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER + ld a, SCGB_BATTLE_COLORS + ld [wSGBPredef], a + call ApplyPals +_CGB_FinishBattleScreenLayout: ld hl, TilesetBGPalette + 7 * 8 ld de, wBGPals1 palette 7 ld bc, $8 call CopyBytes hlcoord 0, 0, wAttrmap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, $2 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, PAL_BATTLE_BG_ENEMY_HP call ByteFill hlcoord 0, 4, wAttrmap - lb bc, $8, $a - ld a, $0 + lb bc, 8, 10 + ld a, PAL_BATTLE_BG_PLAYER call FillBoxCGB hlcoord 10, 0, wAttrmap - lb bc, $7, $a - ld a, $1 + lb bc, 7, 10 + ld a, PAL_BATTLE_BG_ENEMY call FillBoxCGB hlcoord 0, 0, wAttrmap - lb bc, $4, $a - ld a, $2 + lb bc, 4, 10 + ld a, PAL_BATTLE_BG_ENEMY_HP call FillBoxCGB hlcoord 10, 7, wAttrmap - lb bc, $5, $a - ld a, $3 + lb bc, 5, 10 + ld a, PAL_BATTLE_BG_PLAYER_HP call FillBoxCGB hlcoord 10, 11, wAttrmap - lb bc, $1, $9 - ld a, $4 + lb bc, 1, 9 + ld a, PAL_BATTLE_BG_EXP call FillBoxCGB hlcoord 0, 12, wAttrmap - ld bc, $78 - ld a, $7 + ld bc, 6 * SCREEN_WIDTH + ld a, PAL_BATTLE_BG_TEXT call ByteFill - ld hl, Palettes_9c09 - ld de, wOBPals1 palette 2 - ld bc, $30 + ld hl, BattleObjectPals + ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY + ld bc, 6 palettes call CopyBytes - call Function9b35 + call ApplyAttrmap ret -Function944a: ; 944a (2:544a) - ld hl, Palettes_bb6e +_CGB_PokegearPals: + ld hl, PokegearPals ld de, wBGPals1 - ld bc, $30 + ld bc, 6 palettes call CopyBytes - call Function9b28 + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function945e: ; 945e (2:545e) +_CGB_StatsScreenHPPals: ld de, wBGPals1 - ld a, [wcca1] + ld a, [wCurHPPal] ld l, a ld h, $0 add hl, hl add hl, hl - ld bc, Palettes_ad2d + ld bc, HPBarPals add hl, bc - call Function9adb + call LoadPalette_White_Col1_Col2_Black ; hp palette ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bcb - call Function9adb - ld hl, Palettes_ad39 - call Function9adb - ld hl, Palettes_94d3 + 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, $18 + ld bc, 3 palettes ; pink, green, and blue page palettes call CopyBytes - call Function9b1d + call WipeAttrmap + hlcoord 0, 0, wAttrmap - lb bc, $8, $14 - ld a, $1 + lb bc, 8, SCREEN_WIDTH + ld a, $1 ; mon palette call FillBoxCGB + hlcoord 10, 16, wAttrmap - ld bc, $a - ld a, $2 + ld bc, 10 + ld a, $2 ; exp palette call ByteFill + hlcoord 13, 5, wAttrmap - lb bc, $2, $2 - ld a, $3 + lb bc, 2, 2 + ld a, $3 ; pink page palette call FillBoxCGB + hlcoord 15, 5, wAttrmap - lb bc, $2, $2 - ld a, $4 + lb bc, 2, 2 + ld a, $4 ; green page palette call FillBoxCGB + hlcoord 17, 5, wAttrmap - lb bc, $2, $2 - ld a, $5 + lb bc, 2, 2 + ld a, $5 ; blue page palette call FillBoxCGB - call Function9b35 - call Function9b28 + + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Palettes_94d3: - RGB 31, 31, 31 - RGB 31, 19, 31 - RGB 31, 15, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 21, 31, 14 - RGB 17, 31, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 31, 31 - RGB 17, 31, 31 - RGB 00, 00, 00 +StatsScreenPagePals: +INCLUDE "gfx/stats/pages.pal" StatsScreenPals: - RGB 31, 19, 31 - - RGB 21, 31, 14 +INCLUDE "gfx/stats/stats.pal" - RGB 17, 31, 31 - -Function94f1: ; 94f1 (2:54f1) - call Function9513 +_CGB_Pokedex: + call _CGB_Pokedex_Init hlcoord 1, 1, wAttrmap lb bc, 7, 7 ld a, $1 call FillBoxCGB - jp Function9537 + jp _CGB_Pokedex_Resume -Function9502: ; 9502 (2:5502) - call Function9513 +_CGB_Pokedex_5_5: + call _CGB_Pokedex_Init hlcoord 1, 1, wAttrmap lb bc, 5, 5 ld a, $1 call FillBoxCGB - jp Function9537 + jp _CGB_Pokedex_Resume -Function9513: ; 9513 (2:5513) +_CGB_Pokedex_Init: ld de, wBGPals1 - ld a, $1d - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_POKEDEX + call GetPredefPal + call LoadHLPaletteIntoDE ; dex interface palette ld a, [wCurPartySpecies] cp $ff - jr nz, .asm_952d - ld hl, Palettes_9559 - call Function9ad2 - jr .asm_9533 - -.asm_952d - call Function9be4 - call Function9adb -.asm_9533 - call Function9b1d - ret - -Function9537: ; 9537 (2:5537) - call Function9b9c - ld hl, Palettes_9551 - ld de, wOBPals1 palette 7 - ld bc, $8 + 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 + ret + +_CGB_Pokedex_Resume: + call InitPartyMenuOBPals + ld hl, PokedexCursorPalette + ld de, wOBPals1 palette 7 ; green cursor palette + ld bc, 1 palettes call CopyBytes - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Palettes_9551: - RGB 0, 0, 0 - RGB 11, 23, 0 - RGB 7, 17, 0 - RGB 0, 0, 0 +PokedexCursorPalette: +INCLUDE "gfx/pokedex/cursor.pal" -Palettes_9559: - RGB 11, 23, 0 - RGB 7, 17, 0 - RGB 6, 16, 3 - RGB 5, 12, 1 +PokedexQuestionMarkPalette: +INCLUDE "gfx/pokedex/question_mark.pal" -Function9561: ; 9561 (2:5561) +_CGB_BillsPC: ld de, wBGPals1 - ld a, $1d - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_POKEDEX + call GetPredefPal + call LoadHLPaletteIntoDE ld a, [wCurPartySpecies] cp $ff - jr nz, .asm_957b - ld hl, Palettes_95cd - call Function9ad2 - jr .asm_9584 + jr nz, .GetMonPalette + ld hl, .BillsPCOrangePalette + call LoadHLPaletteIntoDE + jr .Resume -.asm_957b +.GetMonPalette: ld bc, wTempMonDVs - call Function9bcb - call Function9adb -.asm_9584 - call Function9b1d + call GetPlayerOrMonPalettePointer + call LoadPalette_White_Col1_Col2_Black +.Resume: + call WipeAttrmap hlcoord 1, 4, wAttrmap lb bc, 7, 7 ld a, $1 call FillBoxCGB - call Function9b9c - call Function9b35 - call Function9b28 + call InitPartyMenuOBPals + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function95a0: - ld hl, Palettes_95cd - call Function9ad2 - jr asm_95b1 +.Function9009: + ld hl, .BillsPCOrangePalette + call LoadHLPaletteIntoDE + jr .asm_95b1 -Function95a8: +.unused ld bc, wTempMonDVs - call Function9bcb - call Function9adb -asm_95b1: - call Function9b1d + call GetPlayerOrMonPalettePointer + call LoadPalette_White_Col1_Col2_Black +.asm_95b1 + call WipeAttrmap hlcoord 1, 1, wAttrmap lb bc, 7, 7 ld a, $1 call FillBoxCGB - call Function9b9c - call Function9b35 - call Function9b28 + call InitPartyMenuOBPals + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Palettes_95cd: - RGB 31, 15, 0 - RGB 23, 12, 0 - RGB 15, 7, 0 - RGB 0, 0, 0 +.BillsPCOrangePalette: +INCLUDE "gfx/pc/orange.pal" -Function95d5: ; 95d5 (2:55d5) +_CGB_PokedexUnownMode: ld de, wBGPals1 - ld a, $1d - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_POKEDEX + call GetPredefPal + call LoadHLPaletteIntoDE ld a, [wCurPartySpecies] - call Function9be4 - call Function9adb - call Function9b1d + call GetMonPalettePointer + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap hlcoord 7, 5, wAttrmap lb bc, 7, 7 ld a, $1 call FillBoxCGB - call Function9b9c - call Function9b35 - call Function9b28 + call InitPartyMenuOBPals + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function9605: ; 9605 (2:5605) - ld hl, Palettes_bbbe +_CGB_SlotMachine: + ld hl, SlotMachinePals ld de, wBGPals1 - ld bc, $80 + ld bc, 16 palettes call CopyBytes - call Function9b1d + call WipeAttrmap hlcoord 0, 2, wAttrmap - lb bc, $a, $3 + lb bc, 10, 3 ld a, $2 call FillBoxCGB hlcoord 17, 2, wAttrmap - lb bc, $a, $3 + lb bc, 10, 3 ld a, $2 call FillBoxCGB hlcoord 0, 4, wAttrmap - lb bc, $6, $3 + lb bc, 6, 3 ld a, $3 call FillBoxCGB hlcoord 17, 4, wAttrmap - lb bc, $6, $3 + lb bc, 6, 3 ld a, $3 call FillBoxCGB hlcoord 0, 6, wAttrmap - lb bc, $2, $3 + lb bc, 2, 3 ld a, $4 call FillBoxCGB hlcoord 17, 6, wAttrmap - lb bc, $2, $3 + lb bc, 2, 3 ld a, $4 call FillBoxCGB hlcoord 4, 2, wAttrmap - lb bc, $2, $c + lb bc, 2, 12 ld a, $1 call FillBoxCGB hlcoord 3, 2, wAttrmap - lb bc, $a, $1 + lb bc, 10, 1 ld a, $1 call FillBoxCGB hlcoord 16, 2, wAttrmap - lb bc, $a, $1 + lb bc, 10, 1 ld a, $1 call FillBoxCGB hlcoord 0, 12, wAttrmap ld bc, $78 ld a, $7 call ByteFill - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function968d: ; 968d (2:568d) - ld hl, PalPacket_a115 + 1 - call Function9ab2 - call Function9b1d +_CGB_BetaTitleScreen: + ld hl, PalPacket_BetaTitleScreen + 1 + call CopyFourPalettes + call WipeAttrmap ld de, wOBPals1 - ld a, $3c - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_PACK + call GetPredefPal + call LoadHLPaletteIntoDE hlcoord 0, 6, wAttrmap - lb bc, $c, $14 + lb bc, 12, SCREEN_WIDTH ld a, $1 call FillBoxCGB - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function96b7: ; 96b7 (2:56b7) - ld b, $0 +_CGB_GSIntro: + ld b, 0 ld hl, .Jumptable add hl, bc add hl, bc @@ -447,362 +429,339 @@ Function96b7: ; 96b7 (2:56b7) jp hl .Jumptable: - dw Function96c8 - dw Function96f9 - dw Function9713 + dw .ShellderLaprasScene + dw .JigglypuffPikachuScene + dw .StartersCharizardScene -Function96c8: - ld hl, Palettes_96e1 +.ShellderLaprasScene: + ld hl, .ShellderLaprasBGPalette ld de, wBGPals1 - call Function9ad2 - ld hl, Palettes_96e9 + call LoadHLPaletteIntoDE + ld hl, .ShellderLaprasOBPals ld de, wOBPals1 - ld bc, $10 + ld bc, 2 palettes call CopyBytes - call Function9b1d + call WipeAttrmap ret -Palettes_96e1: +.ShellderLaprasBGPalette: RGB 19, 31, 19 RGB 18, 23, 31 RGB 11, 21, 28 - RGB 4, 16, 24 + RGB 04, 16, 24 -Palettes_96e9: +.ShellderLaprasOBPals: RGB 29, 29, 29 RGB 20, 19, 20 - RGB 19, 6, 4 - RGB 3, 4, 6 + RGB 19, 06, 04 + RGB 03, 04, 06 RGB 31, 31, 31 RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 3, 4, 6 + RGB 31, 00, 00 + RGB 03, 04, 06 -Function96f9: +.JigglypuffPikachuScene: ld de, wBGPals1 - ld a, $38 - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG + call GetPredefPal + call LoadHLPaletteIntoDE + ld de, wOBPals1 - ld a, $39 - call Function9ac7 -.asm_970b - call Function9ad2 - call Function9b1d + ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB + call GetPredefPal + call LoadHLPaletteIntoDE + call WipeAttrmap ret -Function9713: - ld hl, PalPacket_a0a5 + 1 - call Function9ab2 +.StartersCharizardScene: + ld hl, PalPacket_Pack + 1 + call CopyFourPalettes ld de, wOBPals1 - ld a, $3a - call Function9ac7 - call Function9ad2 - call Function9b1d + ld a, PREDEFPAL_GS_INTRO_STARTERS_TRANSITION + call GetPredefPal + call LoadHLPaletteIntoDE + call WipeAttrmap ret -Function9728: ; 9728 (2:5728) - ld hl, Palettes_bb9e +_CGB_BetaPoker: + ld hl, BetaPokerPals ld de, wBGPals1 - ld bc, $28 + ld bc, 5 palettes call CopyBytes - call Function9b28 - call Function9b1d - call Function9b35 + call ApplyPals + call WipeAttrmap + call ApplyAttrmap ret -Function973e: ; 973e (2:573e) - ld hl, Palettes_ba86 +_CGB_Diploma: + ld hl, DiplomaPalettes ld de, wBGPals1 - ld bc, $80 + ld bc, 16 palettes call CopyBytes - ld hl, PalPacket_a125 + 1 - call Function9ab2 - call Function9b1d - call Function9b35 + + ld hl, PalPacket_Diploma + 1 + call CopyFourPalettes + call WipeAttrmap + call ApplyAttrmap ret -Function9757: ; 9757 (2:5757) - call Functionb649 - ld a, $9 - ld [wColorLayoutPredefID], a +_CGB_MapPals: + call LoadMapPals + ld a, SCGB_MAPPALS + ld [wSGBPredef], a ret -Function9760: ; 9760 (2:5760) - ld hl, PalPacket_a0c5 + 1 - call Function9ab2 - call Function9b9c - call Function9b35 +_CGB_PartyMenu: + ld hl, PalPacket_PartyMenu + 1 + call CopyFourPalettes + call InitPartyMenuOBPals + call ApplyAttrmap ret -Function976d: ; 976d (2:576d) +_CGB_Evolution: ld de, wBGPals1 ld a, c and a - jr z, .asm_977e - ld a, $1a - call Function9ac7 - call Function9ad2 - jr .asm_97a1 + jr z, .pokemon + ld a, PREDEFPAL_BLACKOUT + call GetPredefPal + call LoadHLPaletteIntoDE + jr .got_palette -.asm_977e +.pokemon ld hl, wPartyMon1DVs - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [wCurPartyMon] call AddNTimes ld c, l ld b, h ld a, [wPlayerHPPal] - call Function9bcb - call Function9adb - ld hl, Palettes_9c09 - ld de, wOBPals1 palette 2 - ld bc, $30 + call GetPlayerOrMonPalettePointer + call LoadPalette_White_Col1_Col2_Black + ld hl, BattleObjectPals + ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY + ld bc, 6 palettes call CopyBytes -.asm_97a1 - call Function9b1d - call Function9b35 - call Function9b28 + +.got_palette + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function97af: ; 97af (2:57af) - ld hl, Palettes_bb36 +_CGB_GSTitleScreen: + ld hl, GSTitleBGPals ld de, wBGPals1 - ld bc, $28 + ld bc, 5 palettes call CopyBytes - ld hl, Palettes_bb5e + ld hl, GSTitleOBPals ld de, wOBPals1 - ld bc, $10 + ld bc, 2 palettes call CopyBytes - ld a, $8 - ld [wColorLayoutPredefID], a - call Function9b28 + ld a, SCGB_DIPLOMA + ld [wSGBPredef], a + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function97d4: ; 97d4 (2:57d4) - ld hl, PalPacket_a125 + 1 - call Function9ab2 - call Function9b1d - call Function9b35 +_CGB0d: + ld hl, PalPacket_Diploma + 1 + call CopyFourPalettes + call WipeAttrmap + call ApplyAttrmap ret -Function97e1: ; 97e1 (2:57e1) - ld hl, PalPacket_a035 + 1 - call Function9ab2 +_CGB_UnownPuzzle: + ld hl, PalPacket_UnownPuzzle + 1 + call CopyFourPalettes ld de, wOBPals1 - ld a, $4c - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_UNOWN_PUZZLE + call GetPredefPal + call LoadHLPaletteIntoDE ld hl, wOBPals1 - ld a, $1f + ld a, LOW(palred 31 + palgreen 0 + palblue 0) ld [hli], a - ld a, $0 + ld a, HIGH(palred 31 + palgreen 0 + palblue 0) ld [hl], a - call Function9b1d - call Function9b35 + call WipeAttrmap + call ApplyAttrmap ret -Function9802: ; 9802 (2:5802) +_CGB_TrainerCard: ld de, wBGPals1 - xor a - call Function9bda - call Function9adb - ld a, $1 - call Function9bda - call Function9adb - ld a, $3 - call Function9bda - call Function9adb - ld a, $2 - call Function9bda - call Function9adb - ld a, $4 - call Function9bda - call Function9adb - ld a, $7 - call Function9bda - call Function9adb - ld a, $6 - call Function9bda - call Function9adb - ld a, $5 - call Function9bda - call Function9adb - ld a, $24 - call Function9ac7 - call Function9ad2 + xor a ; CHRIS + call GetTrainerPalettePointer + call LoadPalette_White_Col1_Col2_Black + ld a, FALKNER + 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 + + ; card border hlcoord 0, 0, wAttrmap - ld bc, $168 - ld a, $1 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $1 ; FALKNER call ByteFill hlcoord 14, 1, wAttrmap - lb bc, $7, $5 - xor a + lb bc, 7, 5 + xor a ; CHRIS 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 + lb bc, 2, 4 + ld a, $1 ; falkner call FillBoxCGB hlcoord 6, 11, wAttrmap - lb bc, $2, $4 - ld a, $2 + lb bc, 2, 4 + ld a, $2 ; bugsy call FillBoxCGB hlcoord 10, 11, wAttrmap - lb bc, $2, $4 - ld a, $3 + lb bc, 2, 4 + ld a, $3 ; whitney call FillBoxCGB hlcoord 14, 11, wAttrmap - lb bc, $2, $4 - ld a, $4 + lb bc, 2, 4 + ld a, $4 ; morty call FillBoxCGB hlcoord 2, 14, wAttrmap - lb bc, $2, $4 - ld a, $5 + lb bc, 2, 4 + ld a, $5 ; chuck call FillBoxCGB hlcoord 6, 14, wAttrmap - lb bc, $2, $4 - ld a, $6 + lb bc, 2, 4 + ld a, $6 ; jasmine call FillBoxCGB hlcoord 10, 14, wAttrmap - lb bc, $2, $4 - ld a, $7 + lb bc, 2, 4 + ld a, $7 ; pryce call FillBoxCGB - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function98be: ; 98be (2:58be) +_CGB_MoveList: ld de, wBGPals1 - ld a, $10 - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_GOLDENROD + call GetPredefPal + call LoadHLPaletteIntoDE ld a, [wPlayerHPPal] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl - ld bc, Palettes_ad2d + ld bc, HPBarPals add hl, bc - call Function9adb - call Function9b1d + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap hlcoord 11, 1, wAttrmap - lb bc, $2, $9 + lb bc, 2, 9 ld a, $1 call FillBoxCGB - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function98f1: ; 98f1 (2:58f1) - ld hl, PalPacket_a0b5 + 1 - call Function9ab2 - call Function9b1d - call Function9b35 - call Function9b28 +_CGB_BetaPikachuMinigame: + ld hl, PalPacket_BetaPikachuMinigame + 1 + call CopyFourPalettes + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function9905: ; 9905 (2:5905) +_CGB_PokedexSearchOption: ld de, wBGPals1 - ld a, $1d - call Function9ac7 - call Function9ad2 - call Function9b1d - call Function9b35 - call Function9b28 + ld a, PREDEFPAL_POKEDEX + call GetPredefPal + call LoadHLPaletteIntoDE + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function991e: ; 991e (2:591e) +_CGB_PackPals: ld de, wBGPals1 - ld hl, Palettes_996f - ld bc, $40 + ld hl, .PackPals + ld bc, 8 palettes ; 6 palettes? call CopyBytes - call Function9b1d + call WipeAttrmap hlcoord 0, 0, wAttrmap - lb bc, $1, $a + lb bc, 1, 10 ld a, $1 call FillBoxCGB hlcoord 10, 0, wAttrmap - lb bc, $1, $a + lb bc, 1, 10 ld a, $2 call FillBoxCGB hlcoord 7, 2, wAttrmap - lb bc, $9, $1 + lb bc, 9, 1 ld a, $3 call FillBoxCGB hlcoord 0, 7, wAttrmap - lb bc, $3, $5 + lb bc, 3, 5 ld a, $4 call FillBoxCGB hlcoord 0, 3, wAttrmap - lb bc, $3, $5 + lb bc, 3, 5 ld a, $5 call FillBoxCGB - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Palettes_996f: - RGB 31, 31, 31 - RGB 15, 15, 31 - RGB 0, 0, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 15, 15, 31 - RGB 0, 0, 31 - RGB 0, 0, 0 - - RGB 31, 11, 31 - RGB 15, 15, 31 - RGB 0, 0, 31 - RGB 0, 0, 0 +.PackPals: +INCLUDE "gfx/pack/pack.pal" - RGB 31, 31, 31 - RGB 15, 15, 31 - RGB 0, 0, 31 - RGB 31, 0, 0 - - RGB 31, 31, 31 - RGB 15, 15, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 7, 19, 7 - RGB 7, 19, 7 - RGB 0, 0, 0 - -Function999f: ; 999f (2:599f) - call Function9757 +_CGB_Pokepic: + call _CGB_MapPals call SwapTextboxPalettes - ld de, $14 + ld de, SCREEN_WIDTH hlcoord 0, 0, wAttrmap ld a, [wMenuBorderTopCoord] -.asm_99ae +.loop and a - jr z, .asm_99b5 + jr z, .found_top dec a add hl, de - jr .asm_99ae + jr .loop -.asm_99b5 +.found_top ld a, [wMenuBorderLeftCoord] ld e, a ld d, $0 @@ -821,86 +780,86 @@ Function999f: ; 999f (2:599f) ld c, a ld a, $0 call FillBoxCGB - call Function9b35 + call ApplyAttrmap ret -Function99d9: ; 99d9 (2:59d9) - ld hl, PalPacket_a015 + 1 - call Function9ab2 - call Function9b1d +_CGB_MagnetTrain: + ld hl, PalPacket_MagnetTrain + 1 + call CopyFourPalettes + call WipeAttrmap hlcoord 0, 4, wAttrmap - lb bc, $a, $14 + lb bc, 10, SCREEN_WIDTH ld a, $2 call FillBoxCGB hlcoord 0, 6, wAttrmap - lb bc, $6, $14 + lb bc, 6, SCREEN_WIDTH ld a, $1 call FillBoxCGB - call Function9b35 - call Function9b28 + call ApplyAttrmap + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret -Function9a03: ; 9a03 (2:5a03) +_CGB_GamefreakLogo: ld de, wBGPals1 - ld a, $4e - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_GAMEFREAK_LOGO_BG + call GetPredefPal + call LoadHLPaletteIntoDE ld de, wOBPals1 - ld a, $4d - call Function9ac7 - call Function9ad2 + ld a, PREDEFPAL_GAMEFREAK_LOGO_OB + call GetPredefPal + call LoadHLPaletteIntoDE ld de, wOBPals1 palette 1 - ld a, $4d - call Function9ac7 - call Function9ad2 - call Function9b1d - call Function9b35 - call Function9b28 + ld a, PREDEFPAL_GAMEFREAK_LOGO_OB + call GetPredefPal + call LoadHLPaletteIntoDE + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ret -Function9a2e: ; 9a2e (2:5a2e) +_CGB_PlayerOrMonFrontpicPals: ld de, wBGPals1 ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bcb - call Function9adb - call Function9b1d - call Function9b35 - call Function9b28 + call GetPlayerOrMonPalettePointer + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ret -Function9a47: ; 9a47 (2:5a47) +_CGB1e: ld de, wBGPals1 ld a, [wCurPartySpecies] - call Function9be4 - call Function9adb - call Function9b1d - call Function9b35 + call GetMonPalettePointer + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap + call ApplyAttrmap ret -Function9a5a: ; 9a5a (2:5a5a) - ld hl, PalPacket_a135 + 1 - call Function9ab2 - ld hl, Palettes_bac6 +_CGB_TradeTube: + ld hl, PalPacket_TradeTube + 1 + call CopyFourPalettes + ld hl, PartyMenuOBPals ld de, wOBPals1 - ld bc, $8 + ld bc, 1 palettes call CopyBytes ld de, wOBPals1 palette 7 - ld a, $1c - call Function9ac7 - call Function9ad2 - call Function9b1d + ld a, PREDEFPAL_TRADE_TUBE + call GetPredefPal + call LoadHLPaletteIntoDE + call WipeAttrmap ret -Function9a7b: ; 9a7b (2:5a7b) +_CGB_TrainerOrMonFrontpicPals: ld de, wBGPals1 ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bd3 - call Function9adb - call Function9b1d - call Function9b35 - call Function9b28 + call GetFrontpicPalettePointer + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ret diff --git a/engine/gfx/color.asm b/engine/gfx/color.asm index bb7b7ac0..2bc553f2 100755 --- a/engine/gfx/color.asm +++ b/engine/gfx/color.asm @@ -1,4 +1,3 @@ -PALPACKET_LENGTH EQU $10 INCLUDE "engine/gfx/sgb_layouts.asm" SHINY_ATK_BIT EQU 5 @@ -7,49 +6,73 @@ SHINY_SPD_VAL EQU 10 SHINY_SPC_VAL EQU 10 CheckShininess: +; Check if a mon is shiny by DVs at bc. +; Return carry if shiny. + ld l, c ld h, b + +; Attack ld a, [hl] - and $20 - jr z, .asm_9070 + and 1 << SHINY_ATK_BIT + jr z, .NotShiny + +; Defense ld a, [hli] and $f - cp $a - jr nz, .asm_9070 + cp SHINY_DEF_VAL + jr nz, .NotShiny + +; Speed ld a, [hl] and $f0 - cp $a0 - jr nz, .asm_9070 + cp SHINY_SPD_VAL << 4 + jr nz, .NotShiny + +; Special ld a, [hl] and $f - cp $a - jr nz, .asm_9070 + cp SHINY_SPC_VAL + jr nz, .NotShiny + +.Shiny: scf ret -.asm_9070 +.NotShiny: and a ret -Unused_CheckShininess: ; 9072 (2:5072) +Unused_CheckShininess: +; Return carry if the DVs at hl are all 10 or higher. + +; Attack ld a, [hl] - cp $a0 - jr c, .asm_908c + cp 10 << 4 + jr c, .NotShiny + +; Defense ld a, [hli] and $f - cp $a - jr c, .asm_908c + cp 10 + jr c, .NotShiny + +; Speed ld a, [hl] - cp $a0 - jr c, .asm_908c + cp 10 << 4 + jr c, .NotShiny + +; Special ld a, [hl] and $f - cp $a - jr c, .asm_908c + cp 10 + jr c, .NotShiny + +.Shiny: scf ret -.asm_908c +.NotShiny: and a ret @@ -57,43 +80,44 @@ Function908e: push de push bc ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes pop bc pop de ld a, c - ld [wccac], a + ld [wSGBPals + 3], a ld a, b - ld [wccad], a + ld [wSGBPals + 4], a ld a, e - ld [wccae], a + ld [wSGBPals + 5], a ld a, d - ld [wccaf], a - ld hl, wcca9 - call PushSGBPals_ + ld [wSGBPals + 6], a + ld hl, wSGBPals + call PushSGBPals ld hl, BlkPacket_9ee5 - call PushSGBPals_ + call PushSGBPals ret InitPartyMenuPalettes: call CheckCGB - jr nz, .asm_90cc + jr nz, .cgb ld hl, BlkPacket_9fa5 - ld de, wccaa - ld bc, $30 + ld de, wSGBPals + 1 + ld bc, 6 palettes jp CopyBytes -.asm_90cc - ld hl, PalPacket_a0c5 + 1 - call Function9ab2 - call Function9b9c - call Function9b1d +.cgb + ld hl, PalPacket_PartyMenu + 1 + call CopyFourPalettes + call InitPartyMenuOBPals + call WipeAttrmap ret +; SGB layout for SCGB_PARTY_MENU_HP_PALS SGB_ApplyPartyMenuHPPals: - ld hl, wcc9b - ld a, [wcca9] + ld hl, wHPPals + ld a, [wSGBPals] ld e, a ld d, $0 add hl, de @@ -102,33 +126,36 @@ SGB_ApplyPartyMenuHPPals: ld a, [de] and a ld e, $5 - jr z, .asm_90f2 + jr z, .okay dec a ld e, $a - jr z, .asm_90f2 + jr z, .okay ld e, $f -.asm_90f2 +.okay push de - ld hl, wccb3 + ld hl, wSGBPals + 10 ld bc, $6 - ld a, [wcca9] + ld a, [wSGBPals] call AddNTimes pop de ld [hl], e ret -Function9102: +Unreferenced_Function9102: call CheckCGB ret z +; CGB only ld hl, .BGPal ld de, wBGPals1 - ld bc, $8 + ld bc, 1 palettes call CopyBytes + ld hl, .OBPal ld de, wOBPals1 - ld bc, $8 + ld bc, 1 palettes call CopyBytes - call Function9b28 + + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret @@ -145,171 +172,173 @@ Function9102: RGB 08, 16, 28 RGB 00, 00, 00 -Function9136: +Unreferenced_Function9136: call CheckCGB ret nz ldh a, [hSGB] and a ret z ld hl, BlkPacket_9ee5 - jp PushSGBPals_ + jp PushSGBPals -Function9144: +Unreferenced_Function9144: call CheckCGB - jr nz, .asm_9153 + jr nz, .cgb ldh a, [hSGB] and a ret z - ld hl, PalPacket_a095 - jp PushSGBPals_ + ld hl, PalPacket_BetaIntroVenusaur + jp PushSGBPals -.asm_9153 +.cgb ld de, wOBPals1 - ld a, $3b - call Function9ac7 - jp Function9ad2 + ld a, PREDEFPAL_BETA_INTRO_VENUSAUR + call GetPredefPal + jp LoadHLPaletteIntoDE -Function915e: +Unreferenced_Function915e: call CheckCGB - jr nz, .asm_916d + jr nz, .cgb ldh a, [hSGB] and a ret z - ld hl, PalPacket_a0a5 - jp PushSGBPals_ + ld hl, PalPacket_Pack + jp PushSGBPals -.asm_916d +.cgb ld de, wOBPals1 - ld a, $3c - call Function9ac7 - jp Function9ad2 + ld a, PREDEFPAL_PACK + call GetPredefPal + jp LoadHLPaletteIntoDE -Function9178: +Unreferenced_Function9178: call CheckCGB - jr nz, .asm_91a9 + jr nz, .cgb ldh a, [hSGB] and a ret z ld a, c push af ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes pop af - call Function9be4 + call GetMonPalettePointer ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a - ld hl, wcca9 - jp PushSGBPals_ + ld [wSGBPals + 6], a + ld hl, wSGBPals + jp PushSGBPals -.asm_91a9 +.cgb ld de, wOBPals1 ld a, c - call Function9be4 - call Function9adb + call GetMonPalettePointer + call LoadPalette_White_Col1_Col2_Black ret -Function91b4: +Unreferenced_Function91b4: ldh a, [hCGB] and a - jr nz, .asm_91bf + jr nz, .cgb ld hl, wc602 - jp PushSGBPals_ + jp PushSGBPals -.asm_91bf - ld a, [wc606] +.cgb + ld a, [wc606] ; col ld c, a - ld a, [wc607] - ld hl, wAttrmap - ld de, $14 -.asm_91cc + ld a, [wc607] ; row + hlcoord 0, 0, wAttrmap + ld de, SCREEN_WIDTH +.loop and a - jr z, .asm_91d3 + jr z, .done add hl, de dec a - jr .asm_91cc + jr .loop -.asm_91d3 +.done ld b, $0 add hl, bc lb bc, 6, 4 - ld a, [wc605] + ld a, [wc605] ; value and $3 call FillBoxCGB call CopyTilemapAtOnce ret -ApplyMonOrTrainerPals: ; 91e5 (2:51e5) +ApplyMonOrTrainerPals: call CheckCGB ret z ld a, e and a - jr z, .asm_91f5 + jr z, .get_trainer ld a, [wCurPartySpecies] - call Function9be4 - jr .asm_91fb + call GetMonPalettePointer + jr .load_palettes -.asm_91f5 +.get_trainer ld a, [wTrainerClass] - call Function9bda -.asm_91fb + call GetTrainerPalettePointer + +.load_palettes ld de, wBGPals1 - call Function9adb - call Function9b1d - call Function9b35 - call Function9b28 + call LoadPalette_White_Col1_Col2_Black + call WipeAttrmap + call ApplyAttrmap + call ApplyPals ret ApplyHPBarPals: ld a, [wWhichHPBar] and a - jr z, .asm_921a + jr z, .Enemy cp $1 - jr z, .asm_921f + jr z, .Player cp $2 - jr z, .asm_9236 + jr z, .PartyMenu ret -.asm_921a - ld de, $c292 - jr .asm_9222 +.Enemy: + ld de, wBGPals2 palette PAL_BATTLE_BG_ENEMY_HP color 1 + jr .okay + +.Player: + ld de, wBGPals2 palette PAL_BATTLE_BG_PLAYER_HP color 1 -.asm_921f - ld de, $c29a -.asm_9222 +.okay ld l, c ld h, $0 add hl, hl add hl, hl - ld bc, $6d2d + ld bc, HPBarPals add hl, bc - ld bc, $4 + ld bc, 4 call CopyBytes ld a, $1 ldh [hCGBPalUpdate], a ret -.asm_9236 +.PartyMenu: ld e, c inc e hlcoord 11, 1, wAttrmap ld bc, 2 * SCREEN_WIDTH ld a, [wCurPartyMon] -.asm_9241 +.loop and a - jr z, .asm_9248 + jr z, .done add hl, bc dec a - jr .asm_9241 + jr .loop -.asm_9248 +.done lb bc, 2, 8 ld a, e call FillBoxCGB @@ -318,61 +347,61 @@ ApplyHPBarPals: LoadStatsScreenPals: call CheckCGB ret z - ld hl, StatsScreenPals ; $54eb - ld b, $0 + ld hl, StatsScreenPals + ld b, 0 dec c add hl, bc add hl, bc ld a, [hli] - ld [wBGPals1], a - ld [wBGPals1 + $10], a + ld [wBGPals1 palette 0], a + ld [wBGPals1 palette 2], a ld a, [hl] - ld [wBGPals1 + 1], a - ld [wBGPals1 + $11], a - call Function9b28 + ld [wBGPals1 palette 0 + 1], a + ld [wBGPals1 palette 2 + 1], a + call ApplyPals ld a, $1 ldh [hCGBPalUpdate], a ret LoadMailPalettes: ld l, e - ld h, $0 + ld h, 0 add hl, hl add hl, hl add hl, hl ld de, .MailPals add hl, de call CheckCGB - jr nz, .asm_92ae + jr nz, .cgb push hl ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes pop hl inc hl inc hl ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hli] - ld [wccaf], a - ld hl, wcca9 - call PushSGBPals_ + ld [wSGBPals + 6], a + ld hl, wSGBPals + call PushSGBPals ld hl, BlkPacket_9ee5 - call PushSGBPals_ + call PushSGBPals ret -.asm_92ae +.cgb ld de, wBGPals1 - ld bc, $8 + ld bc, 1 palettes call CopyBytes - call Function9b28 - call Function9b1d - call Function9b35 + call ApplyPals + call WipeAttrmap + call ApplyAttrmap ret .MailPals: @@ -380,72 +409,76 @@ INCLUDE "gfx/mail/mail.pal" INCLUDE "engine/gfx/cgb_layouts.asm" -Function9a94: ; 9a94 (2:5a94) - ld hl, Palettes_9aaa +Function9a94: + ld hl, .Palette ld de, wBGPals1 - ld bc, $8 + ld bc, 1 palettes call CopyBytes - call Function9b28 - call Function9b1d - call Function9b35 + call ApplyPals + call WipeAttrmap + call ApplyAttrmap ret -Palettes_9aaa: +.Palette: RGB 31, 31, 31 - RGB 9, 31, 31 + RGB 09, 31, 31 RGB 10, 12, 31 - RGB 0, 3, 19 + RGB 00, 03, 19 -Function9ab2: ; 9ab2 (2:5ab2) +CopyFourPalettes: ld de, wBGPals1 - ld c, $4 -Function9ab7: ; 9ab7 (2:5ab7) + ld c, 4 + +CopyPalettes: +.loop push bc ld a, [hli] push hl - call Function9ac7 - call Function9ad2 + call GetPredefPal + call LoadHLPaletteIntoDE pop hl inc hl pop bc dec c - jr nz, Function9ab7 + jr nz, .loop ret -Function9ac7: ; 9ac7 (2:5ac7) +GetPredefPal: ld l, a ld h, $0 add hl, hl add hl, hl add hl, hl - ld bc, Palettes_a265 + ld bc, PredefPals add hl, bc ret -Function9ad2: ; 9ad2 (2:5ad2) - ld c, $8 -.asm_9ad4 +LoadHLPaletteIntoDE: + ld c, 1 palettes +.loop ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_9ad4 + jr nz, .loop ret -Function9adb: ; 9adb (2:5adb) - ld a, $ff +LoadPalette_White_Col1_Col2_Black: + ld a, LOW(PALRGB_WHITE) ld [de], a inc de - ld a, $7f + ld a, HIGH(PALRGB_WHITE) ld [de], a inc de - ld c, $4 -.asm_9ae5 + + ld c, 2 * PAL_COLOR_SIZE +.loop ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_9ae5 + jr nz, .loop + xor a ld [de], a inc de @@ -453,29 +486,30 @@ Function9adb: ; 9adb (2:5adb) inc de ret -FillBoxCGB: ; 9af1 (2:5af1) +FillBoxCGB: +.row push bc push hl -.asm_9af3 +.col ld [hli], a dec c - jr nz, .asm_9af3 + jr nz, .col pop hl - ld bc, $14 + ld bc, SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, FillBoxCGB + jr nz, .row ret -Function9b01: ; 9b01 (2:5b01) +ResetBGPals: push af push bc push de push hl ld hl, wBGPals1 - ld c, $8 -.asm_9b0a + ld c, 1 palettes +.loop ld a, $ff ld [hli], a ld [hli], a @@ -487,31 +521,31 @@ Function9b01: ; 9b01 (2:5b01) ld [hli], a ld [hli], a dec c - jr nz, .asm_9b0a + jr nz, .loop pop hl pop de pop bc pop af ret -Function9b1d: ; 9b1d (2:5b1d) +WipeAttrmap: hlcoord 0, 0, wAttrmap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT xor a call ByteFill ret -Function9b28: ; 9b28 (2:5b28) +ApplyPals: ld hl, wBGPals1 ld de, wBGPals2 - ld bc, $80 + ld bc, 16 palettes call CopyBytes ret -Function9b35: ; 9b35 (2:5b35) +ApplyAttrmap: ldh a, [rLCDC] - bit 7, a - jr z, .asm_9b52 + bit rLCDC_ENABLE, a + jr z, .UpdateVBank1 ldh a, [hBGMapMode] push af ld a, $2 @@ -524,35 +558,36 @@ Function9b35: ; 9b35 (2:5b35) ldh [hBGMapMode], a ret -.asm_9b52 +.UpdateVBank1: hlcoord 0, 0, wAttrmap - ld de, $9800 - ld b, $12 + debgcoord 0, 0 + ld b, SCREEN_HEIGHT ld a, $1 ldh [rVBK], a -.asm_9b5e - ld c, $14 -.asm_9b60 +.row + ld c, SCREEN_WIDTH +.col ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_9b60 - ld a, $c + jr nz, .col + ld a, BG_MAP_WIDTH - SCREEN_WIDTH add e - jr nc, .asm_9b6c + jr nc, .okay inc d -.asm_9b6c +.okay ld e, a dec b - jr nz, .asm_9b5e + jr nz, .row ld a, $0 ldh [rVBK], a ret -Function9b75: ; 9b75 (2:5b75) - ld hl, wcc9b - ld a, [wcca9] +; CGB layout for SCGB_PARTY_MENU_HP_PALS +CGB_ApplyPartyMenuHPPals: + ld hl, wHPPals + ld a, [wSGBPals] ld e, a ld d, $0 add hl, de @@ -562,146 +597,116 @@ Function9b75: ; 9b75 (2:5b75) inc a ld e, a hlcoord 11, 2, wAttrmap - ld bc, $28 - ld a, [wcca9] -.asm_9b8d + ld bc, 2 * SCREEN_WIDTH + ld a, [wSGBPals] +.loop and a - jr z, .asm_9b94 + jr z, .done add hl, bc dec a - jr .asm_9b8d - -.asm_9b94 + jr .loop +.done lb bc, 2, 8 ld a, e call FillBoxCGB ret -Function9b9c: ; 9b9c (2:5b9c) - ld hl, Palettes_bac6 +InitPartyMenuOBPals: + ld hl, PartyMenuOBPals ld de, wOBPals1 - ld bc, $10 + ld bc, 2 palettes call CopyBytes ret -Function9ba9: ; 9ba9 (2:5ba9) +GetBattlemonBackpicPalettePointer: push de farcall GetPartyMonDVs ld c, l ld b, h ld a, [wTempBattleMonSpecies] - call Function9bcb + call GetPlayerOrMonPalettePointer pop de ret -Function9bba: ; 9bba (2:5bba) +GetEnemyFrontpicPalettePointer: push de farcall GetEnemyMonDVs ld c, l ld b, h ld a, [wTempEnemyMonSpecies] - call Function9bd3 + call GetFrontpicPalettePointer pop de ret -Function9bcb: ; 9bcb (2:5bcb) +GetPlayerOrMonPalettePointer: and a - jp nz, Function9c66 - ld hl, TrainerPalettes + jp nz, GetMonNormalOrShinyPalettePointer + ld hl, PlayerPalette ret -Function9bd3: ; 9bd3 (2:5bd3) +GetFrontpicPalettePointer: and a - jp nz, Function9c66 + jp nz, GetMonNormalOrShinyPalettePointer ld a, [wTrainerClass] -Function9bda: ; 9bda (2:5bda) + +GetTrainerPalettePointer: ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl ld bc, TrainerPalettes add hl, bc ret -Function9be4: ; 9be4 (2:5be4) - call Function9c5b +GetMonPalettePointer: + call _GetMonPalettePointer ret -Function9be8: +Unreferenced_Function9be8: ret - -Function9be9: call CheckCGB ret z - ld hl, Palettes_9c09 + ld hl, BattleObjectPals ld a, $90 ldh [rOBPI], a - ld c, $30 -.asm_9bf6 + ld c, 6 palettes +.loop ld a, [hli] ldh [rOBPD], a dec c - jr nz, .asm_9bf6 - ld hl, Palettes_9c09 + jr nz, .loop + ld hl, BattleObjectPals ld de, wOBPals1 palette 2 - ld bc, $10 + ld bc, 2 palettes call CopyBytes ret -Palettes_9c09: - RGB 31, 31, 31 - RGB 25, 25, 25 - RGB 13, 13, 13 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 31, 7 - RGB 31, 16, 1 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 19, 24 - RGB 30, 10, 6 - RGB 0, 0, 0 +BattleObjectPals: +INCLUDE "gfx/battle_anims/battle_anims.pal" - RGB 31, 31, 31 - RGB 12, 25, 1 - RGB 5, 14, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 8, 12, 31 - RGB 1, 4, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 24, 18, 7 - RGB 20, 15, 3 - RGB 0, 0, 0 - -Function9c39: +Unreferenced_Function9c39: call CheckCGB ret z ld a, $90 ldh [rOBPI], a - ld a, $1c - call Function9ac7 - call Function9c52 - ld a, $21 - call Function9ac7 - call Function9c52 + ld a, PREDEFPAL_TRADE_TUBE + call GetPredefPal + call .PushPalette + ld a, PREDEFPAL_RB_GREENMON + call GetPredefPal + call .PushPalette ret -Function9c52: ; 9c52 (2:5c52) - ld c, $8 -.asm_9c54 +.PushPalette: + ld c, 1 palettes +.loop ld a, [hli] ldh [rOBPD], a dec c - jr nz, .asm_9c54 + jr nz, .loop ret -Function9c5b: ; 9c5b (2:5c5b) +_GetMonPalettePointer: ld l, a ld h, $0 add hl, hl @@ -711,73 +716,73 @@ Function9c5b: ; 9c5b (2:5c5b) add hl, bc ret -Function9c66: ; 9c66 (2:5c66) +GetMonNormalOrShinyPalettePointer: push bc - call Function9c5b + call _GetMonPalettePointer pop bc push hl call CheckShininess pop hl ret nc +rept 4 inc hl - inc hl - inc hl - inc hl +endr ret -PushSGBPals_: ; 9c76 (2:5c76) +PushSGBPals: ld a, [wd8ba] push af set 7, a ld [wd8ba], a - call Function9c87 + call _PushSGBPals pop af ld [wd8ba], a ret -Function9c87: ; 9c87 (2:5c87) +_PushSGBPals: ld a, [hl] and $7 ret z ld b, a -.asm_9c8c +.loop push bc xor a ldh [rJOYP], a ld a, $30 ldh [rJOYP], a ld b, $10 -.asm_9c96 +.loop2 ld e, $8 ld a, [hli] ld d, a -.asm_9c9a +.loop3 bit 0, d ld a, $10 - jr nz, .asm_9ca2 + jr nz, .okay ld a, $20 -.asm_9ca2 +.okay ldh [rJOYP], a ld a, $30 ldh [rJOYP], a rr d dec e - jr nz, .asm_9c9a + jr nz, .loop3 dec b - jr nz, .asm_9c96 + jr nz, .loop2 ld a, $20 ldh [rJOYP], a ld a, $30 ldh [rJOYP], a - call Function9ed9 + call SGBDelayCycles pop bc dec b - jr nz, .asm_9c8c + jr nz, .loop ret -InitSGBBorder: ; 9cc0 (2:5cc0) +InitSGBBorder: call CheckCGB ret nz +; SGB/DMG only di ld a, [wd8ba] push af @@ -786,1070 +791,462 @@ InitSGBBorder: ; 9cc0 (2:5cc0) xor a ldh [rJOYP], a ldh [hSGB], a - call Function9da9 - jr nc, .asm_9cf7 + call PushSGBBorderPalsAndWait + jr nc, .skip ld a, $1 ldh [hSGB], a - call Function9d4a - call Function9e13 - call Function9ed9 - call Function9d9e - call Function9d8b - call Function9ed9 - call Function9d9e - ld hl, PalPacket_a1d5 - call Function9c87 -.asm_9cf7 + call _InitSGBBorderPals + call SGBBorder_PushBGPals + call SGBDelayCycles + call SGB_ClearVRAM + call PushSGBBorder + call SGBDelayCycles + call SGB_ClearVRAM + ld hl, MaskEnCancelPacket + call _PushSGBPals + +.skip pop af ld [wd8ba], a ei ret -InitCGBPals:: ; 9cfd (2:5cfd) +InitCGBPals:: call CheckCGB ret z - ld a, $1 +; CGB only + ld a, BANK(vTiles3) ldh [rVBK], a - ld hl, $8000 - ld bc, $2000 + ld hl, vTiles3 + ld bc, $200 tiles xor a call ByteFill - ld a, $0 + ld a, BANK(vTiles0) ldh [rVBK], a - ld a, $80 + ld a, 1 << rBGPI_AUTO_INCREMENT ldh [rBGPI], a - ld c, $20 -.asm_9d19 - ld a, $ff + ld c, 4 * 8 +.bgpals_loop + ld a, LOW(PALRGB_WHITE) ldh [rBGPD], a - ld a, $7f + ld a, HIGH(PALRGB_WHITE) ldh [rBGPD], a dec c - jr nz, .asm_9d19 - ld a, $80 + jr nz, .bgpals_loop + ld a, 1 << rOBPI_AUTO_INCREMENT ldh [rOBPI], a - ld c, $20 -.asm_9d2a - ld a, $ff + ld c, 4 * 8 +.obpals_loop + ld a, LOW(PALRGB_WHITE) ldh [rOBPD], a - ld a, $7f + ld a, HIGH(PALRGB_WHITE) ldh [rOBPD], a dec c - jr nz, .asm_9d2a + jr nz, .obpals_loop ld hl, wBGPals1 - call Function9d3e + call .LoadWhitePals ld hl, wBGPals2 -Function9d3e: ; 9d3e (2:5d3e) - ld c, $40 -.asm_9d40 - ld a, $ff +.LoadWhitePals: + ld c, 4 * 16 +.loop + ld a, LOW(PALRGB_WHITE) ld [hli], a - ld a, $7f + ld a, HIGH(PALRGB_WHITE) ld [hli], a dec c - jr nz, .asm_9d40 + jr nz, .loop ret -Function9d4a: ; 9d4a (2:5d4a) - ld hl, .Pointers - ld c, $9 -.asm_9d4f +_InitSGBBorderPals: + ld hl, .PacketPointerTable + ld c, 9 +.loop push bc ld a, [hli] push hl ld h, [hl] ld l, a - call Function9c87 + call _PushSGBPals pop hl inc hl pop bc dec c - jr nz, .asm_9d4f + jr nz, .loop ret -.Pointers: - dw PalPacket_a1c5 - dw PalPacket_a1e5 - dw PalPacket_a1f5 - dw PalPacket_a205 - dw PalPacket_a215 - dw PalPacket_a225 - dw PalPacket_a235 - dw PalPacket_a245 - dw PalPacket_a255 - -Function9d70: +.PacketPointerTable: + dw MaskEnFreezePacket + dw DataSndPacket1 + dw DataSndPacket2 + dw DataSndPacket3 + dw DataSndPacket4 + dw DataSndPacket5 + dw DataSndPacket6 + dw DataSndPacket7 + dw DataSndPacket8 + +Unreferenced_Function9d70: di xor a ldh [rJOYP], a - ld hl, PalPacket_a1c5 - call Function9c87 - call Function9d8b - call Function9ed9 - call Function9d9e - ld hl, PalPacket_a1d5 - call Function9c87 + ld hl, MaskEnFreezePacket + call _PushSGBPals + call PushSGBBorder + call SGBDelayCycles + call SGB_ClearVRAM + ld hl, MaskEnCancelPacket + call _PushSGBPals ei ret -Function9d8b: ; 9d8b (2:5d8b) - call Function9d97 +PushSGBBorder: + call .LoadSGBBorderPointers push de - call Function9e83 + call SGBBorder_YetMorePalPushing pop hl - call Function9e37 + call SGBBorder_MorePalPushing ret -Function9d97: ; 9d97 (2:5d97) +.LoadSGBBorderPointers: ld hl, SGBBorder ld de, SGBBorderMap ret -Function9d9e: ; 9d9e (2:5d9e) - ld hl, $8000 - ld bc, $2000 +SGB_ClearVRAM: + ld hl, VRAM_Begin + ld bc, VRAM_End - VRAM_Begin xor a call ByteFill ret -Function9da9: ; 9da9 (2:5da9) - ld hl, PalPacket_a195 - call Function9c87 - call Function9ed9 +PushSGBBorderPalsAndWait: + ld hl, MltReq2Packet + call _PushSGBPals + call SGBDelayCycles ldh a, [rJOYP] and $3 cp $3 - jr nz, .asm_9e05 + jr nz, .carry ld a, $20 ldh [rJOYP], a ldh a, [rJOYP] ldh a, [rJOYP] - call Function9ed9 - call Function9ed9 + call SGBDelayCycles + call SGBDelayCycles ld a, $30 ldh [rJOYP], a - call Function9ed9 - call Function9ed9 + call SGBDelayCycles + call SGBDelayCycles ld a, $10 ldh [rJOYP], a +rept 6 ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - call Function9ed9 - call Function9ed9 +endr + call SGBDelayCycles + call SGBDelayCycles ld a, $30 ldh [rJOYP], a ldh a, [rJOYP] ldh a, [rJOYP] ldh a, [rJOYP] - call Function9ed9 - call Function9ed9 + call SGBDelayCycles + call SGBDelayCycles ldh a, [rJOYP] and $3 cp $3 - jr nz, .asm_9e05 - call Function9e0a + jr nz, .carry + call .FinalPush and a ret -.asm_9e05 - call Function9e0a +.carry + call .FinalPush scf ret -Function9e0a: ; 9e0a (2:5e0a) - ld hl, PalPacket_a185 - call Function9c87 - jp Function9ed9 +.FinalPush: + ld hl, MltReq1Packet + call _PushSGBPals + jp SGBDelayCycles -Function9e13: ; 9e13 (2:5e13) +SGBBorder_PushBGPals: call DisableLCD - ld a, $e4 + ld a, %11100100 ldh [rBGP], a - ld hl, Palettes_a265 - ld de, $8800 - ld bc, $1000 - call Function9eb1 - call Function9ec3 - ld a, $e3 + ld hl, PredefPals + ld de, vTiles1 + ld bc, $100 tiles + call CopyData + call DrawDefaultTiles + ld a, LCDC_DEFAULT ldh [rLCDC], a - ld hl, PalPacket_a175 - call Function9c87 + ld hl, PalTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function9e37: ; 9e37 (2:5e37) +SGBBorder_MorePalPushing: call DisableLCD ld a, $e4 ldh [rBGP], a - ld de, $8800 - ld bc, $140 - call Function9eb1 - ld b, $12 -.asm_9e49 + ld de, vTiles1 + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld b, SCREEN_HEIGHT +.loop push bc - ld bc, $c - call Function9eb1 - ld bc, $28 - call Function9eba - ld bc, $c - call Function9eb1 + ld bc, 6 * 2 + call CopyData + ld bc, SCREEN_WIDTH * 2 + call ClearBytes + ld bc, 6 * 2 + call CopyData pop bc dec b - jr nz, .asm_9e49 - ld bc, $140 - call Function9eb1 + jr nz, .loop + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData ld bc, $100 - call Function9eba - ld bc, $80 - call Function9eb1 - call Function9ec3 - ld a, $e3 + call ClearBytes + ld bc, 16 palettes + call CopyData + call DrawDefaultTiles + ld a, LCDC_DEFAULT ldh [rLCDC], a - ld hl, PalPacket_a1b5 - call Function9c87 + ld hl, PctTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function9e83: ; 9e83 (2:5e83) +SGBBorder_YetMorePalPushing: call DisableLCD - ld a, $e4 + ld a, %11100100 ldh [rBGP], a - ld de, $8800 + ld de, vTiles1 ld b, $80 -.asm_9e8f +.loop push bc - ld bc, $10 - call Function9eb1 - ld bc, $10 - call Function9eba + ld bc, 1 tiles + call CopyData + ld bc, 1 tiles + call ClearBytes pop bc dec b - jr nz, .asm_9e8f - call Function9ec3 - ld a, $e3 + jr nz, .loop + call DrawDefaultTiles + ld a, LCDC_DEFAULT ldh [rLCDC], a - ld hl, PalPacket_a1a5 - call Function9c87 + ld hl, ChrTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function9eb1: ; 9eb1 (2:5eb1) +CopyData: +; copy bc bytes of data from hl to de +.loop ld a, [hli] ld [de], a inc de dec bc ld a, c or b - jr nz, Function9eb1 + jr nz, .loop ret -Function9eba: ; 9eba (2:5eba) +ClearBytes: +; clear bc bytes of data starting from de +.loop xor a ld [de], a inc de dec bc ld a, c or b - jr nz, Function9eba + jr nz, .loop ret -Function9ec3: ; 9ec3 (2:5ec3) - ld hl, $9800 - ld de, $c - ld a, $80 - ld c, $d -.asm_9ecd - ld b, $14 -.asm_9ecf +DrawDefaultTiles: +; Draw 240 tiles (2/3 of the screen) from tiles in VRAM + hlbgcoord 0, 0 ; BG Map 0 + ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld a, $80 ; starting tile + ld c, 12 + 1 +.line + ld b, 20 +.tile ld [hli], a inc a dec b - jr nz, .asm_9ecf + jr nz, .tile +; next line add hl, de dec c - jr nz, .asm_9ecd + jr nz, .line ret -Function9ed9: ; 9ed9 (2:5ed9) +SGBDelayCycles: ld de, 7000 -.asm_9edc +.wait nop nop nop dec de ld a, d or e - jr nz, .asm_9edc + jr nz, .wait ret -BlkPacket_9ee5: db $21, $01, $03, $00, $00, $00, $13, $11, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9ef5: db $21, $01, $07, $05, $00, $0a, $13, $0d, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f05: db $22, $05, $07, $0a, $00, $0c, $13, $11, $03, $05, $01, $00, $0a, $03, $03, $00 -BlkPacket_9f15: db $0a, $08, $13, $0a, $03, $0a, $00, $04, $08, $0b, $03, $0f, $0b, $00, $13, $07 -BlkPacket_9f25: db $21, $01, $07, $05, $00, $00, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f35: db $21, $01, $06, $05, $0b, $01, $13, $02, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f45: db $21, $01, $07, $05, $00, $01, $07, $07, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f55: db $21, $01, $07, $05, $01, $04, $07, $0a, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f65: db $21, $01, $07, $05, $01, $01, $05, $05, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f75: db $21, $01, $07, $05, $07, $05, $0d, $0b, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9f85: db $22, $05, $03, $05, $00, $00, $13, $0b, $03, $0a, $00, $04, $13, $09, $02, $0f -BlkPacket_9f95: db $00, $06, $13, $07, $03, $00, $04, $04, $0f, $09, $03, $00, $00, $0c, $13, $11 -BlkPacket_9fa5: db $23, $07, $07, $10, $00, $00, $02, $0c, $02, $00, $0c, $01, $12, $02, $02, $00 -BlkPacket_9fb5: db $0c, $03, $12, $04, $02, $00, $0c, $05, $12, $06, $02, $00, $0c, $07, $12, $08 -BlkPacket_9fc5: db $02, $00, $0c, $09, $12, $0a, $02, $00, $0c, $0b, $12, $0c, $00, $00, $00, $00 -BlkPacket_9fd5: db $21, $02, $07, $30, $00, $00, $13, $06, $02, $04, $05, $06, $0e, $06, $00, $00 -BlkPacket_9fe5: db $21, $01, $07, $10, $00, $00, $13, $05, $00, $00, $00, $00, $00, $00, $00, $00 -BlkPacket_9ff5: db $21, $02, $07, $0a, $00, $04, $13, $0d, $03, $05, $00, $06, $13, $0b, $00, $00 - -PalPacket_a005: - db $51 - RGB 8, 2, 0 - RGB 9, 2, 0 - RGB 10, 2, 0 - RGB 11, 2, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a015: - db $51 - RGB 11, 1, 0 - RGB 4, 1, 0 - RGB 0, 1, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a025: - db $51 - RGB 1, 2, 0 - RGB 2, 2, 0 - RGB 3, 2, 0 - RGB 4, 2, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a035: - db $51 - RGB 12, 2, 0 - RGB 12, 2, 0 - RGB 12, 2, 0 - RGB 12, 2, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a045: - db $51 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a055: - db $51 - RGB 22, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a065: - db $51 - RGB 23, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a075: - db $51 - RGB 24, 1, 0 - RGB 25, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a085: - db $51 - RGB 26, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a095: - db $51 - RGB 27, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0a5: - db $51 - RGB 28, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0b5: - db $51 - RGB 25, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0c5: - db $51 - RGB 14, 1, 0 - RGB 15, 1, 0 - RGB 16, 1, 0 - RGB 17, 1, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0d5: - db $51 - RGB 26, 0, 0 - RGB 26, 0, 0 - RGB 26, 0, 0 - RGB 26, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0e5: - db $51 - RGB 18, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a0f5: - db $51 - RGB 28, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a105: - db $51 - RGB 29, 1, 0 - RGB 30, 1, 0 - RGB 31, 1, 0 - RGB 0, 2, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a115: - db $51 - RGB 19, 1, 0 - RGB 20, 1, 0 - RGB 27, 0, 0 - RGB 31, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a125: - db $51 - RGB 27, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a135: - db $51 - RGB 28, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a145: - db $51 - RGB 21, 1, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - db $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a155: db $01, $ff, $7f, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a165: db $09, $ff, $7f, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a175: db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a185: db $89, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a195: db $89, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a1a5: db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a1b5: db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_a1c5: db $b9, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a1d5: db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a1e5: db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00 -PalPacket_a1f5: db $79, $52, $08, $00, $0b, $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 -PalPacket_a205: db $79, $47, $08, $00, $0b, $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28 -PalPacket_a215: db $79, $3c, $08, $00, $0b, $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 -PalPacket_a225: db $79, $31, $08, $00, $0b, $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e -PalPacket_a235: db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 -PalPacket_a245: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 -PalPacket_a255: db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea +INCLUDE "gfx/sgb/blk_packets.asm" +INCLUDE "gfx/sgb/pal_packets.asm" +INCLUDE "data/sgb_ctrl_packets.asm" -IF DEF(_GOLD) -Palettes_a265: INCLUDE "gfx/pals/gold_a265.pal" -ENDC -IF DEF(_SILVER) -Palettes_a265: INCLUDE "gfx/pals/silver_a265.pal" -ENDC +PredefPals: +INCLUDE "gfx/sgb/predef.pal" IF DEF(_GOLD) -SGBBorderMap: INCBIN "gfx/sgb/gold_border.sgb.tilemap" -SGBBorderPalettes: INCLUDE "gfx/sgb/gold_border.pal" -SGBBorder: INCBIN "gfx/sgb/gold_border.2bpp" +SGBBorderMap: +INCBIN "gfx/sgb/gold_border.sgb.tilemap" +SGBBorderPalettes: +INCLUDE "gfx/sgb/gold_border.pal" +SGBBorder: +INCBIN "gfx/sgb/gold_border.2bpp" + +ELIF DEF(_SILVER) +SGBBorderMap: +INCBIN "gfx/sgb/silver_border.sgb.tilemap" +SGBBorderPalettes: +INCLUDE "gfx/sgb/silver_border.pal" +SGBBorder: +INCBIN "gfx/sgb/silver_border.2bpp" ENDC -IF DEF(_SILVER) -SGBBorderMap: INCBIN "gfx/sgb/silver_border.sgb.tilemap" -SGBBorderPalettes: INCLUDE "gfx/sgb/silver_border.pal" -SGBBorder: INCBIN "gfx/sgb/silver_border.2bpp" -ENDC - -Palettes_ad2d: - RGB 30, 26, 15 - RGB 00, 23, 00 - - RGB 30, 26, 15 - RGB 31, 21, 00 - - RGB 30, 26, 15 - RGB 31, 00, 00 +HPBarPals: +INCLUDE "gfx/battle/hp_bar.pal" -Palettes_ad39: - RGB 30, 26, 15 - RGB 04, 17, 31 +ExpBarPalette: +INCLUDE "gfx/battle/exp_bar.pal" INCLUDE "data/pokemon/palettes.asm" + INCLUDE "data/trainers/palettes.asm" -Functionb649: ; b649 (2:7649) +LoadMapPals: + ; Which palette group is based on whether we're outside or inside ld a, [wEnvironment] - and $7 + and 7 ld e, a - ld d, $0 - ld hl, Pointers_b6ce + ld d, 0 + ld hl, EnvironmentColorsPointers add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a + ; Futher refine by time of day ld a, [wTimeOfDayPal] - and $3 + maskbits NUM_DAYTIMES add a add a add a ld e, a - ld d, $0 + ld d, 0 add hl, de ld e, l ld d, h ld hl, wBGPals1 - ld b, $8 -.asm_b66c - ld a, [de] + ld b, 8 +.outer_loop + ld a, [de] ; lookup index for TilesetBGPalette push de push hl ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl add hl, hl - ld de, $775e + ld de, TilesetBGPalette add hl, de ld e, l ld d, h pop hl - ld c, $8 -.asm_b67e + ld c, 1 palettes +.inner_loop ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_b67e + jr nz, .inner_loop pop de inc de dec b - jr nz, .asm_b66c + jr nz, .outer_loop ld a, [wTimeOfDayPal] - and $3 - ld bc, $40 + maskbits NUM_DAYTIMES + ld bc, 8 palettes ld hl, MapObjectPals call AddNTimes ld de, wOBPals1 - ld bc, $40 + ld bc, 8 palettes call CopyBytes + ld a, [wEnvironment] - cp $1 - jr z, .asm_b6aa - cp $2 + cp TOWN + jr z, .outside + cp ROUTE ret nz -.asm_b6aa +.outside ld a, [wMapGroup] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl add hl, hl ld de, RoofPals add hl, de ld a, [wTimeOfDayPal] - and $3 - cp $2 - jr c, .asm_b6c4 - inc hl + maskbits NUM_DAYTIMES + cp NITE_F + jr c, .morn_day +rept 4 inc hl - inc hl - inc hl -.asm_b6c4 +endr +.morn_day ld de, wBGPals1 palette PAL_BG_ROOF color 1 - ld bc, $4 + ld bc, 4 call CopyBytes ret -Pointers_b6ce: - dw .OutdoorColors ; unused - dw .OutdoorColors ; TOWN - dw .OutdoorColors ; ROUTE - dw .IndoorColors ; INDOOR - dw .DungeonColors ; CAVE - dw .Perm5Colors ; ENVIRONMENT_5 - dw .IndoorColors ; GATE - dw .DungeonColors ; DUNGEON - -; Valid indices: $00 - $29 -.OutdoorColors: - db $00, $01, $02, $28, $04, $05, $06, $07 ; morn - db $08, $09, $0a, $28, $0c, $0d, $0e, $0f ; day - db $10, $11, $12, $29, $14, $15, $16, $17 ; nite - db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark - -.IndoorColors: - db $20, $21, $22, $23, $24, $25, $26, $07 ; morn - db $20, $21, $22, $23, $24, $25, $26, $07 ; day - db $10, $11, $12, $13, $14, $15, $16, $07 ; nite - db $18, $19, $1a, $1b, $1c, $1d, $1e, $07 ; dark - -.DungeonColors: - db $00, $01, $02, $03, $04, $05, $06, $07 ; morn - db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f ; day - db $10, $11, $12, $13, $14, $15, $16, $17 ; nite - db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark - -.Perm5Colors: - db $00, $01, $02, $03, $04, $05, $06, $07 ; morn - db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f ; day - db $10, $11, $12, $13, $14, $15, $16, $17 ; nite - db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark - -TilesetBGPalette: ; b75e -INCLUDE "gfx/tilesets/bg.pal" - -MapObjectPals:: ; b8ae -INCLUDE "gfx/tilesets/ob.pal" - -RoofPals: ; b9ae -INCLUDE "gfx/tilesets/roof.pal" - -Palettes_ba86: - RGB 27, 31, 27 - RGB 21, 21, 21 - RGB 13, 13, 13 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 31, 07, 06 - RGB 20, 02, 03 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 10, 31, 09 - RGB 04, 14, 01 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 08, 12, 31 - RGB 01, 04, 31 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 31, 31, 07 - RGB 31, 16, 01 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 22, 16, 08 - RGB 13, 07, 01 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 15, 31, 31 - RGB 05, 17, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 11, 11, 19 - RGB 07, 07, 12 - RGB 00, 00, 00 - -Palettes_bac6: - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 10, 14, 20 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 - - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 +INCLUDE "data/maps/environment_colors.asm" - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 +TilesetBGPalette: +INCLUDE "gfx/tilesets/bg_tiles.pal" - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 +MapObjectPals:: +INCLUDE "gfx/overworld/npc_sprites.pal" - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 +RoofPals: +INCLUDE "gfx/tilesets/roofs.pal" - RGB 27, 31, 27 - RGB 31, 19, 10 - RGB 31, 07, 04 - RGB 00, 00, 00 +DiplomaPalettes: +INCLUDE "gfx/diploma/diploma.pal" - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 13, 13 - RGB 07, 07, 07 +PartyMenuOBPals: +INCLUDE "gfx/stats/party_menu_ob.pal" - RGB 31, 31, 31 - RGB 31, 31, 07 - RGB 31, 16, 01 - RGB 07, 07, 07 +GSTitleBGPals: +INCLUDE "gfx/title/title_bg.pal" - RGB 31, 31, 31 - RGB 31, 19, 24 - RGB 30, 10, 06 - RGB 07, 07, 07 +GSTitleOBPals: +INCLUDE "gfx/title/title_fg.pal" - RGB 31, 31, 31 - RGB 12, 25, 01 - RGB 05, 14, 00 - RGB 07, 07, 07 +PokegearPals: +INCLUDE "gfx/pokegear/pokegear.pal" - RGB 31, 31, 31 - RGB 08, 12, 31 - RGB 01, 04, 31 - RGB 07, 07, 07 - - RGB 31, 31, 31 - RGB 24, 18, 07 - RGB 20, 15, 03 - RGB 07, 07, 07 - -Palettes_bb36: -IF DEF(_GOLD) - RGB 31, 31, 31 - RGB 18, 23, 31 - RGB 15, 20, 31 - RGB 0, 0, 0 - - RGB 31, 21, 0 - RGB 12, 14, 12 - RGB 15, 20, 31 - RGB 0, 0, 17 - - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 15, 20, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 29, 25, 0 - RGB 15, 20, 31 - RGB 17, 10, 1 +BetaPokerPals: +INCLUDE "gfx/beta_poker/beta_poker.pal" - RGB 31, 31, 31 - RGB 23, 26, 31 - RGB 18, 23, 31 - RGB 0, 0, 0 -ENDC - -IF DEF(_SILVER) - RGB 31, 31, 31 - RGB 0, 12, 15 - RGB 4, 8, 21 - RGB 0, 0, 0 - - RGB 31, 21, 0 - RGB 15, 17, 15 - RGB 4, 8, 21 - RGB 0, 0, 17 - - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 4, 8, 21 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 24, 23, 25 - RGB 4, 8, 21 - RGB 8, 8, 9 - - RGB 31, 31, 31 - RGB 5, 10, 11 - RGB 0, 12, 15 - RGB 0, 0, 0 -ENDC - -Palettes_bb5e: - RGB 31, 31, 31 - RGB 07, 06, 03 - RGB 07, 06, 03 - RGB 07, 06, 03 - - RGB 31, 31, 31 - RGB 31, 31, 00 - RGB 26, 22, 00 - RGB 00, 00, 00 - -Palettes_bb6e: - RGB 28, 31, 20 - RGB 21, 21, 21 - RGB 13, 13, 13 - RGB 00, 00, 00 - - RGB 28, 31, 20 - RGB 00, 31, 00 - RGB 00, 00, 31 - RGB 00, 00, 00 - - RGB 28, 31, 20 - RGB 00, 31, 00 - RGB 15, 07, 00 - RGB 00, 00, 00 - - RGB 28, 31, 20 - RGB 31, 15, 00 - RGB 15, 07, 00 - RGB 00, 00, 00 - - RGB 28, 31, 20 - RGB 00, 31, 00 - RGB 00, 00, 31 - RGB 31, 00, 00 - - RGB 28, 31, 20 - RGB 00, 31, 00 - RGB 15, 07, 00 - RGB 31, 00, 00 - -Palettes_bb9e: - RGB 31, 31, 31 - RGB 30, 22, 24 - RGB 18, 18, 18 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 10, 11, 31 - RGB 18, 18, 18 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 12, 31, 11 - RGB 18, 18, 18 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 29, 26, 05 - RGB 18, 18, 18 - RGB 00, 00, 00 - -Palettes_bbbe: -IF DEF(_GOLD) - RGB 31, 31, 31 - RGB 24, 25, 28 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 30, 10, 06 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 15, 31, 00 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 15, 31 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 15, 21, 31 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 11 - RGB 31, 31, 06 - RGB 24, 24, 09 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 19, 29 - RGB 25, 22, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 13, 13 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 30, 10, 06 - RGB 31, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 12, 25, 01 - RGB 05, 14, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 12, 25, 01 - RGB 30, 10, 06 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 06 - RGB 20, 15, 03 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 06 - RGB 15, 21, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 06 - RGB 20, 15, 03 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 24, 21 - RGB 31, 13, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 -ENDC - -IF DEF(_SILVER) - RGB 31, 31, 31 - RGB 25, 26, 14 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 30, 10, 6 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 15, 31, 0 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 15, 31 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 15, 21, 31 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 11 - RGB 31, 31, 6 - RGB 20, 17, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 16, 19, 29 - RGB 25, 22, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 13, 13 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 30, 10, 6 - RGB 31, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 12, 25, 1 - RGB 5, 14, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 12, 25, 1 - RGB 30, 10, 6 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 31, 6 - RGB 20, 15, 3 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 31, 6 - RGB 15, 21, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 31, 6 - RGB 20, 15, 3 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 24, 21 - RGB 31, 13, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 -ENDC +SlotMachinePals: +INCLUDE "gfx/slots/slots.pal" diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index b26db675..f50835fa 100755 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -1,299 +1,311 @@ -LoadSGBLayout: ; 8c2d (2:4c2d) +LoadSGBLayout: call CheckCGB - jp nz, Predef_LoadSGBLayoutCGB + jp nz, LoadSGBLayoutCGB + ld a, b cp SCGB_RAM - jr nz, .asm_8c3b - ld a, [wColorLayoutPredefID] -.asm_8c3b + jr nz, .not_ram + ld a, [wSGBPredef] +.not_ram cp SCGB_PARTY_MENU_HP_PALS jp z, SGB_ApplyPartyMenuHPPals ld l, a - ld h, $0 + ld h, 0 add hl, hl ld de, .Jumptable add hl, de ld a, [hli] ld h, [hl] ld l, a - ld de, FinishSGBPredefFunction + ld de, _LoadSGBLayout_ReturnFromJumpTable push de jp hl -.Jumptable - dw Function8c90 - dw Function8c97 - dw Function8d3f - dw Function8d46 - dw Function8d95 - dw Function8e3c - dw Function8e43 - dw Function8e51 - dw Function8e4a - dw Function8e9b - dw Function8d8e - dw Function8eb7 - dw Function8e6e - dw Function8f04 - dw Function8d1f - dw Function8e81 - dw Function8e14 - dw Function8e88 - dw Function8f12 - dw Function8e7a - dw Function8e35 - dw Function8f04 - dw Function8e0d - dw Function8dd3 - dw Function8f0b - dw Function8f90 - dw Function8f97 - dw Function8fc3 - dw Function8fca - dw Function8e4a - dw Function8f53 - dw Function8dcc - -Function8c90: ; 8c90 (2:4c90) - ld hl, PalPacket_a0d5 - ld de, BlkPacket_9f05 - ret - -Function8c97: ; 8c97 (2:4c97) - ld hl, BlkPacket_9f05 - call PushSGBPals_ +.Jumptable: + dw .SGB_BattleGrayscale + dw .SGB_BattleColors + dw .SGB_PokegearPals + dw .SGB_StatsScreenHPPals + dw .SGB_Pokedex + dw .SGB_SlotMachine + dw .SGB_BetaTitleScreen + dw .SGB_GSIntro + dw .SGB_Diploma + dw .SGB_MapPals + dw .SGB_PartyMenu + dw .SGB_Evolution + dw .SGB_GSTitleScreen + dw .SGB0d + dw .SGB_MoveList + dw .SGB_BetaPikachuMinigame + dw .SGB_PokedexSearchOption + dw .SGB_BetaPoker + dw .SGB_Pokepic + dw .SGB_MagnetTrain + dw .SGB_PackPals + dw .SGB_TrainerCard + dw .SGB_PokedexUnownMode + dw .SGB_BillsPC + dw .SGB_UnownPuzzle + dw .SGB_GamefreakLogo + dw .SGB_PlayerOrMonFrontpicPals + dw .SGB_TradeTube + dw .SGB_TrainerOrMonFrontpicPals + dw .SGB_MysteryGift + dw .SGB1e + dw .SGB1f + +.SGB_BattleGrayscale: + ld hl, PalPacket_BattleGrayscale + ld de, BlkPacket_Battle + ret + +.SGB_BattleColors: + ld hl, BlkPacket_Battle + call PushSGBPals + ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes + ld a, [wPlayerHPPal] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl - ld de, Palettes_ad2d + ld de, HPBarPals add hl, de + ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a + ld [wSGBPals + 6], a + ld a, [wEnemyHPPal] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl - ld de, Palettes_ad2d + + ld de, HPBarPals add hl, de ld a, [hli] - ld [wccb2], a + ld [wSGBPals + 9], a ld a, [hli] - ld [wccb3], a + ld [wSGBPals + 10], a ld a, [hli] - ld [wccb4], a + ld [wSGBPals + 11], a ld a, [hl] - ld [wccb5], a + ld [wSGBPals + 12], a + ld hl, PalPacket_a165 - ld de, wccb9 - ld bc, $10 + ld de, wSGBPals + PALPACKET_LENGTH + ld bc, PALPACKET_LENGTH call CopyBytes - call Function9ba9 + + call GetBattlemonBackpicPalettePointer + ld a, [hli] - ld [wccbc], a + ld [wSGBPals + 19], a ld a, [hli] - ld [wccbd], a + ld [wSGBPals + 20], a ld a, [hli] - ld [wccbe], a + ld [wSGBPals + 21], a ld a, [hl] - ld [wccbf], a - call Function9bba + ld [wSGBPals + 22], a + call GetEnemyFrontpicPalettePointer ld a, [hli] - ld [wccc2], a + ld [wSGBPals + 25], a ld a, [hli] - ld [wccc3], a + ld [wSGBPals + 26], a ld a, [hli] - ld [wccc4], a + ld [wSGBPals + 27], a ld a, [hl] - ld [wccc5], a - ld hl, wcca9 - ld de, wccb9 - ld a, $1 - ld [wColorLayoutPredefID], a + ld [wSGBPals + 28], a + + ld hl, wSGBPals + ld de, wSGBPals + PALPACKET_LENGTH + ld a, SCGB_BATTLE_COLORS + ld [wSGBPredef], a ret -Function8d1f: ; 8d1f (2:4d1f) +.SGB_MoveList: ld hl, PalPacket_a045 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, wccaa + + ld hl, wSGBPals + 1 ld [hl], $10 inc hl inc hl + ld a, [wPlayerHPPal] - add $2f + add PREDEFPAL_HP_GREEN ld [hl], a - ld hl, wcca9 - ld de, BlkPacket_9f35 + ld hl, wSGBPals + ld de, BlkPacket_MoveList ret -Function8d3f: ; 8d3f (2:4d3f) - ld hl, PalPacket_a0e5 +.SGB_PokegearPals: + ld hl, PalPacket_Pokegear ld de, BlkPacket_9ee5 ret -Function8d46: ; 8d46 (2:4d46) +.SGB_StatsScreenHPPals: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - ld a, [wcca1] + ld a, [wCurHPPal] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl - ld de, Palettes_ad2d + ld de, HPBarPals add hl, de ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a + ld [wSGBPals + 6], a ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bcb + call GetPlayerOrMonPalettePointer ld a, [hli] - ld [wccb2], a + ld [wSGBPals + 9], a ld a, [hli] - ld [wccb3], a + ld [wSGBPals + 10], a ld a, [hli] - ld [wccb4], a + ld [wSGBPals + 11], a ld a, [hl] - ld [wccb5], a - ld hl, wcca9 - ld de, BlkPacket_9f25 + ld [wSGBPals + 12], a + ld hl, wSGBPals + ld de, BlkPacket_StatsScreen ret -Function8d8e: ; 8d8e (2:4d8e) - ld hl, PalPacket_a0c5 - ld de, wccaa +.SGB_PartyMenu: + ld hl, PalPacket_PartyMenu + ld de, wSGBPals + 1 ret -Function8d95: ; 8d95 (2:4d95) +.SGB_Pokedex: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, wccac - ld [hl], $9f + ld hl, wSGBPals + 3 + ld [hl], LOW(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $2a + ld [hl], HIGH(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $5a + ld [hl], LOW(palred 26 + palgreen 10 + palblue 6) inc hl - ld [hl], $19 + ld [hl], HIGH(palred 26 + palgreen 10 + palblue 6) ld a, [wCurPartySpecies] - call Function9be4 + call GetMonPalettePointer ld a, [hli] - ld [wccb2], a + ld [wSGBPals + 9], a ld a, [hli] - ld [wccb3], a + ld [wSGBPals + 10], a ld a, [hli] - ld [wccb4], a + ld [wSGBPals + 11], a ld a, [hl] - ld [wccb5], a - ld hl, wcca9 - ld de, BlkPacket_9f45 + ld [wSGBPals + 12], a + ld hl, wSGBPals + ld de, BlkPacket_Pokedex_PC ret -Function8dcc: ; 8dcc (2:4dcc) - call Function8d95 +.SGB1f: + call .SGB_Pokedex ld de, BlkPacket_9f65 ret -Function8dd3: ; 8dd3 (2:4dd3) +.SGB_BillsPC: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, wccac - ld [hl], $9f + ld hl, wSGBPals + 3 + ld [hl], LOW(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $2a + ld [hl], HIGH(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $5a + ld [hl], LOW(palred 26 + palgreen 10 + palblue 6) inc hl - ld [hl], $19 + ld [hl], HIGH(palred 26 + palgreen 10 + palblue 6) ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bcb + call GetPlayerOrMonPalettePointer ld a, [hli] - ld [wccb2], a + ld [wSGBPals + 9], a ld a, [hli] - ld [wccb3], a + ld [wSGBPals + 10], a ld a, [hli] - ld [wccb4], a + ld [wSGBPals + 11], a ld a, [hl] - ld [wccb5], a - ld hl, wcca9 + ld [wSGBPals + 12], a + ld hl, wSGBPals ld de, BlkPacket_9f55 ret -Function8e0d: ; 8e0d (2:4e0d) - call Function8d95 - ld de, BlkPacket_9f75 +.SGB_PokedexUnownMode: + call .SGB_Pokedex + ld de, BlkPacket_PokedexUnownMode ret -Function8e14: ; 8e14 (2:4e14) +.SGB_PokedexSearchOption: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, wccac - ld [hl], $9f + ld hl, wSGBPals + 3 + ld [hl], LOW(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $2a + ld [hl], HIGH(palred 31 + palgreen 20 + palblue 10) inc hl - ld [hl], $5a + ld [hl], LOW(palred 26 + palgreen 10 + palblue 6) inc hl - ld [hl], $19 - ld hl, wcca9 + ld [hl], HIGH(palred 26 + palgreen 10 + palblue 6) + ld hl, wSGBPals ld de, BlkPacket_9ee5 ret -Function8e35: ; 8e35 (2:4e35) - ld hl, PalPacket_a0a5 +.SGB_PackPals: + ld hl, PalPacket_Pack ld de, BlkPacket_9ee5 ret -Function8e3c: ; 8e3c (2:4e3c) - ld hl, PalPacket_a105 - ld de, BlkPacket_9f85 +.SGB_SlotMachine: + ld hl, PalPacket_SlotMachine + ld de, BlkPacket_SlotMachine ret -Function8e43: ; 8e43 (2:4e43) - ld hl, PalPacket_a115 - ld de, BlkPacket_9fe5 +.SGB_BetaTitleScreen: + ld hl, PalPacket_BetaTitleScreen + ld de, BlkPacket_BetaTitleScreen ret -Function8e4a: ; 8e4a (2:4e4a) - ld hl, PalPacket_a125 +.SGB_Diploma: +.SGB_MysteryGift: + ld hl, PalPacket_Diploma ld de, BlkPacket_9ee5 ret -Function8e51: ; 8e51 (2:4e51) - ld b, $0 - ld hl, .Table - add hl, bc - add hl, bc - add hl, bc +.SGB_GSIntro: + ld b, 0 + ld hl, .BlkPacketTable_GSIntro +rept 4 add hl, bc +endr ld e, [hl] inc hl ld d, [hl] @@ -303,118 +315,121 @@ Function8e51: ; 8e51 (2:4e51) ld l, a ret -.Table - dw BlkPacket_9ee5, PalPacket_a055 - dw BlkPacket_9ef5, PalPacket_a075 - dw BlkPacket_9ee5, PalPacket_a085 +.BlkPacketTable_GSIntro: + dw BlkPacket_9ee5, PalPacket_GSIntroShellderLapras + dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu + dw BlkPacket_9ee5, PalPacket_GSIntroStartersTransition -Function8e6e: ; 8e6e (2:4e6e) - ld hl, PalPacket_a005 - ld de, BlkPacket_9fd5 - ld a, $8 - ld [wColorLayoutPredefID], a +.SGB_GSTitleScreen: + ld hl, PalPacket_GSTitleScreen + ld de, BlkPacket_GSTitleScreen + ld a, SCGB_DIPLOMA + ld [wSGBPredef], a ret -Function8e7a: ; 8e7a (2:4e7a) - ld hl, PalPacket_a015 - ld de, BlkPacket_9ff5 +.SGB_MagnetTrain: + ld hl, PalPacket_MagnetTrain + ld de, BlkPacket_MagnetTrain ret -Function8e81: ; 8e81 (2:4e81) - ld hl, PalPacket_a0b5 +.SGB_BetaPikachuMinigame: + ld hl, PalPacket_BetaPikachuMinigame ld de, BlkPacket_9ee5 ret -Function8e88: ; 8e88 (2:4e88) +.SGB_BetaPoker: ld hl, BlkPacket_9ee5 ld de, wc602 - ld bc, $10 + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, PalPacket_a025 + ld hl, PalPacket_BetaPoker ld de, BlkPacket_9ee5 ret -Function8e9b: ; 8e9b (2:4e9b) +.SGB_MapPals: ld hl, PalPacket_a045 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes - call Function8ff6 - ld hl, wccaa + call .GetMapPalsIndex + ld hl, wSGBPals + 1 ld [hld], a ld de, BlkPacket_9ee5 - ld a, $9 - ld [wColorLayoutPredefID], a + ld a, SCGB_MAPPALS + ld [wSGBPredef], a ret -Function8eb7: ; 8eb7 (2:4eb7) +.SGB_Evolution: push bc ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes pop bc ld a, c and a - jr z, .asm_8ed9 - ld hl, wccac - ld [hl], $e7 + jr z, .partymon + ; Egg + ld hl, wSGBPals + 3 + ld [hl], LOW(palred 7 + palgreen 7 + palblue 7) inc hl - ld [hl], $1c + ld [hl], HIGH(palred 7 + palgreen 7 + palblue 7) inc hl - ld [hl], $62 + ld [hl], LOW(palred 2 + palgreen 3 + palblue 3) inc hl - ld [hl], $c - jr .asm_8efd + ld [hl], HIGH(palred 2 + palgreen 3 + palblue 3) + jr .done -.asm_8ed9 +.partymon ld hl, wPartyMon1DVs - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [wCurPartyMon] call AddNTimes ld c, l ld b, h ld a, [wPlayerHPPal] - call Function9bcb + call GetPlayerOrMonPalettePointer ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a -.asm_8efd - ld hl, wcca9 + ld [wSGBPals + 6], a + +.done + ld hl, wSGBPals ld de, BlkPacket_9ee5 ret -Function8f04: ; 8f04 (2:4f04) - ld hl, PalPacket_a125 +.SGB0d: +.SGB_TrainerCard: + ld hl, PalPacket_Diploma ld de, BlkPacket_9ee5 ret -Function8f0b: ; 8f0b (2:4f0b) - ld hl, PalPacket_a035 +.SGB_UnownPuzzle: + ld hl, PalPacket_UnownPuzzle ld de, BlkPacket_9ee5 ret -Function8f12: ; 8f12 (2:4f12) +.SGB_Pokepic: ld hl, PalPacket_a045 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes ld hl, BlkPacket_9ee5 - ld de, wccb9 - ld bc, $10 + ld de, wSGBPals + PALPACKET_LENGTH + ld bc, PALPACKET_LENGTH call CopyBytes - call Function8ff6 - ld hl, wccaa + call .GetMapPalsIndex + ld hl, wSGBPals + 1 ld [hl], a - ld hl, wccac + ld hl, wSGBPals + 3 ld [hl], $2e - ld hl, wccbc - ld a, $5 + ld hl, wSGBPals + $13 + ld a, 5 ld [hli], a ld a, [wMenuBorderLeftCoord] ld [hli], a @@ -424,166 +439,139 @@ Function8f12: ; 8f12 (2:4f12) ld [hli], a ld a, [wMenuBorderBottomCoord] ld [hl], a - ld hl, wcca9 - ld de, wccb9 + ld hl, wSGBPals + ld de, wSGBPals + PALPACKET_LENGTH ret -Function8f53: ; 8f53 (2:4f53) +.SGB1e: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes ld a, [wCurPartySpecies] ld l, a - ld h, $0 + ld h, 0 add hl, hl add hl, hl add hl, hl ld de, PokemonPalettes add hl, de ld a, [wce65] - and $3 + and 3 sla a sla a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a - ld hl, wcca9 + ld [wSGBPals + 6], a + ld hl, wSGBPals ld de, BlkPacket_9ee5 ret -Function8f90: ; 8f90 (2:4f90) - ld hl, PalPacket_a145 +.SGB_GamefreakLogo: + ld hl, PalPacket_GamefreakLogo ld de, BlkPacket_9ee5 ret -Function8f97: ; 8f97 (2:4f97) +.SGB_PlayerOrMonFrontpicPals: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bcb + call GetPlayerOrMonPalettePointer ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a - ld hl, wcca9 + ld [wSGBPals + 6], a + ld hl, wSGBPals ld de, BlkPacket_9ee5 ret -Function8fc3: ; 8fc3 (2:4fc3) - ld hl, PalPacket_a135 +.SGB_TradeTube: + ld hl, PalPacket_TradeTube ld de, BlkPacket_9ee5 ret -Function8fca: ; 8fca (2:4fca) +.SGB_TrainerOrMonFrontpicPals: ld hl, PalPacket_a155 - ld de, wcca9 - ld bc, $10 + ld de, wSGBPals + ld bc, PALPACKET_LENGTH call CopyBytes ld a, [wCurPartySpecies] ld bc, wTempMonDVs - call Function9bd3 + call GetFrontpicPalettePointer ld a, [hli] - ld [wccac], a + ld [wSGBPals + 3], a ld a, [hli] - ld [wccad], a + ld [wSGBPals + 4], a ld a, [hli] - ld [wccae], a + ld [wSGBPals + 5], a ld a, [hl] - ld [wccaf], a - ld hl, wcca9 + ld [wSGBPals + 6], a + ld hl, wSGBPals ld de, BlkPacket_9ee5 ret -Function8ff6: ; 8ff6 (2:4ff6) +.GetMapPalsIndex: ld a, [wTimeOfDayPal] - cp $2 - jr c, .asm_9000 - ld a, $19 + cp NITE_F + jr c, .morn_day + ld a, PREDEFPAL_NITE ret -.asm_9000 +.morn_day ld a, [wEnvironment] - cp $2 - jr z, .asm_9023 - cp $4 - jr z, .asm_9026 - cp $7 - jr z, .asm_9026 - cp $5 - jr z, .asm_9029 - cp $6 - jr z, .asm_902c + cp ROUTE + jr z, .route + cp CAVE + jr z, .cave + cp DUNGEON + jr z, .cave + cp ENVIRONMENT_5 + jr z, .env5 + cp GATE + jr z, .gate ld a, [wMapGroup] ld e, a - ld d, $0 - ld hl, .SGBRoofPalInds + ld d, 0 + ld hl, MapGroupRoofSGBPalInds add hl, de ld a, [hl] ret -.asm_9023 - ld a, $0 - ret - -.asm_9026 - ld a, $18 - ret - -.asm_9029 - ld a, $6 - ret - -.asm_902c - ld a, $3 - ret - -.SGBRoofPalInds: - db $00 ; Unused - db $12 ; Olivine - db $14 ; Mahogany - db $18 ; Various Dungeons - db $11 ; Ecruteak - db $15 ; Blackthorn - db $09 ; Cinnabar - db $04 ; Cerulean - db $0f ; Azalea - db $16 ; Lake Of Rage - db $0e ; Violet - db $10 ; Goldenrod - db $06 ; Vermilion - db $01 ; Palette - db $03 ; Pewter - db $06 ; Fast Ship - db $0b ; Indigo Plateau - db $08 ; Fuchsia - db $05 ; Lavender - db $17 ; Silver Cave Outside - db $08 ; Pokemon Center 2F - db $07 ; Celadon - db $13 ; Cianwood - db $02 ; Viridian - db $0c ; New Bark - db $0a ; Saffron - db $0d ; Cherrygrove - -FinishSGBPredefFunction: ; 904a (2:504a) +.route + ld a, PREDEFPAL_ROUTES + ret + +.cave + ld a, PREDEFPAL_DUNGEONS + ret + +.env5 + ld a, PREDEFPAL_VERMILION + ret + +.gate + ld a, PREDEFPAL_PEWTER + ret + +INCLUDE "data/maps/sgb_roof_pal_inds.asm" + +_LoadSGBLayout_ReturnFromJumpTable: push de - call PushSGBPals_ + call PushSGBPals pop hl - jp PushSGBPals_ + jp PushSGBPals diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm index 88241187..f23aa929 100644 --- a/engine/menus/naming_screen.asm +++ b/engine/menus/naming_screen.asm @@ -286,7 +286,7 @@ Function11c89: Function11cd4: call JoyTextDelay - ld a, [wce63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_11cef call Function11d27 @@ -329,7 +329,7 @@ Function11cff: ret Function11d27: - ld a, [wce63] + ld a, [wJumptableIndex] ld e, a ld d, $0 ld hl, $5d36 @@ -362,7 +362,7 @@ Function11d3a: ld hl, $e add hl, bc ld [hl], a - ld hl, wce63 + ld hl, wJumptableIndex inc [hl] ret @@ -415,7 +415,7 @@ Function11d60: .asm_11daa call Function11fc4 - ld hl, wce63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -833,7 +833,7 @@ Function1201e: ld [wGlobalAnimYOffset], a ldh [hSCX], a ld [wGlobalAnimXOffset], a - ld [wce63], a + ld [wJumptableIndex], a ld [wce64], a ldh [hBGMapMode], a ld [wNamingScreenCurNameLength], a @@ -959,7 +959,7 @@ Function12376: Function1238d: call JoyTextDelay - ld a, [wce63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_123a8 call Function123d5 @@ -995,7 +995,7 @@ Function123b8: ret Function123d5: - ld a, [wce63] + ld a, [wJumptableIndex] ld e, a ld d, $0 ld hl, .Jumptable @@ -1024,7 +1024,7 @@ Function123e8: ld hl, $e add hl, bc ld [hl], a - ld hl, wce63 + ld hl, wJumptableIndex inc [hl] ret @@ -1094,7 +1094,7 @@ Function12407: .asm_1246e call Function11fc4 - ld hl, wce63 + ld hl, wJumptableIndex set 7, [hl] ret diff --git a/engine/movie/title.asm b/engine/movie/title.asm index d35cb703..ece0a6eb 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -13,7 +13,7 @@ TitleScreen: ldh [hSCY], a ldh [hSCX], a - ld hl, $8000 + ld hl, vTiles0 ld bc, $2000 xor a call ByteFill @@ -50,13 +50,13 @@ TitleScreen: set 2, [hl] call EnableLCD xor a - ld hl, wce63 + ld hl, wJumptableIndex ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld de, $6058 - ld a, $2c ; HO-OH + ld a, SPRITE_ANIM_INDEX_GS_INTRO_HO_OH call InitSpriteAnimStruct ld hl, wSpriteAnim1 ld de, wSpriteAnim10 @@ -65,14 +65,14 @@ TitleScreen: ld hl, wSpriteAnim1 ld [hl], $0 ld hl, wLYOverrides - ld bc, $90 + ld bc, wLYOverridesEnd - wLYOverrides xor a call ByteFill ; Let LCD Stat know we're messing around with SCX ld a, LOW(rSCX) ldh [hLCDCPointer], a - ld b, $c + ld b, SCGB_0C call GetSGBLayout call Function6341 ld de, MUSIC_TITLE |