pokecrystal-board/engine/gfx/cgb_layouts.asm

1017 lines
19 KiB
NASM
Raw Permalink Normal View History

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