mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-09-17 02:30:50 +12:00

- Gave the Debug Room its own name and placement on the map, simply being '?????' and up in the top-left corner of Nihon. - Added a feature where the shiny palette of a Pokemon can be seen by pressing Select on the Pokedex screen. - Added preliminary sprites for Belledam, Bipulla, Burgela, Coinpur, Jungela, Pupperon, Stromen, and Tricules. - Added preliminary shiny palettes for Bipulla, Bellignan, Burgela, Coinpur, Jungela and Tricules - Changed Debug Room's layout again slightly - Added another NPC to the Debug Room that gives you a bunch of useful items when spoken to, mainly all of the HMs and Apriballs, plus some Master Balls, Rare Candies and more.
1020 lines
19 KiB
NASM
1020 lines
19 KiB
NASM
; Replaces the functionality of sgb.asm to work with CGB hardware.
|
|
|
|
CheckCGB:
|
|
ldh a, [hCGB]
|
|
and a
|
|
ret
|
|
|
|
LoadSGBLayoutCGB:
|
|
ld a, b
|
|
cp SCGB_DEFAULT
|
|
jr nz, .not_default
|
|
ld a, [wDefaultSGBLayout]
|
|
.not_default
|
|
cp SCGB_PARTY_MENU_HP_BARS
|
|
jp z, CGB_ApplyPartyMenuHPPals
|
|
call ResetBGPals
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
ld de, CGBLayoutJumptable
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, .done
|
|
push de
|
|
jp hl
|
|
.done:
|
|
ret
|
|
|
|
CGBLayoutJumptable:
|
|
table_width 2, CGBLayoutJumptable
|
|
dw _CGB_BattleGrayscale
|
|
dw _CGB_BattleColors
|
|
dw _CGB_PokegearPals
|
|
dw _CGB_StatsScreenHPPals
|
|
dw _CGB_Pokedex
|
|
dw _CGB_SlotMachine
|
|
dw _CGB_BetaTitleScreen
|
|
dw _CGB_GSIntro
|
|
dw _CGB_Diploma
|
|
dw _CGB_MapPals
|
|
dw _CGB_PartyMenu
|
|
dw _CGB_Evolution
|
|
dw _CGB_GSTitleScreen
|
|
dw _CGB_Unused0D
|
|
dw _CGB_MoveList
|
|
dw _CGB_BetaPikachuMinigame
|
|
dw _CGB_PokedexSearchOption
|
|
dw _CGB_BetaPoker
|
|
dw _CGB_Pokepic
|
|
dw _CGB_MagnetTrain
|
|
dw _CGB_PackPals
|
|
dw _CGB_TrainerCard
|
|
dw _CGB_PokedexUnownMode
|
|
dw _CGB_BillsPC
|
|
dw _CGB_UnownPuzzle
|
|
dw _CGB_GamefreakLogo
|
|
dw _CGB_PlayerOrMonFrontpicPals
|
|
dw _CGB_TradeTube
|
|
dw _CGB_TrainerOrMonFrontpicPals
|
|
dw _CGB_MysteryGift
|
|
dw _CGB_Unused1E
|
|
assert_table_length NUM_SCGB_LAYOUTS
|
|
|
|
_CGB_BattleGrayscale:
|
|
ld hl, PalPacket_BattleGrayscale + 1
|
|
ld de, wBGPals1
|
|
ld c, 4
|
|
call CopyPalettes
|
|
ld hl, PalPacket_BattleGrayscale + 1
|
|
ld de, wBGPals1 palette PAL_BATTLE_BG_EXP
|
|
ld c, 4
|
|
call CopyPalettes
|
|
ld hl, PalPacket_BattleGrayscale + 1
|
|
ld de, wOBPals1
|
|
ld c, 2
|
|
call CopyPalettes
|
|
jr _CGB_FinishBattleScreenLayout
|
|
|
|
_CGB_BattleColors:
|
|
ld de, wBGPals1
|
|
call GetBattlemonBackpicPalettePointer
|
|
push hl
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER
|
|
call GetEnemyFrontpicPalettePointer
|
|
push hl
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY
|
|
ld a, [wEnemyHPPal]
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, HPBarPals
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
|
|
ld a, [wPlayerHPPal]
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, HPBarPals
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
|
|
ld hl, ExpBarPalette
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
|
|
ld de, wOBPals1
|
|
pop hl
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY
|
|
pop hl
|
|
call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER
|
|
ld a, SCGB_BATTLE_COLORS
|
|
ld [wDefaultSGBLayout], a
|
|
call ApplyPals
|
|
_CGB_FinishBattleScreenLayout:
|
|
call InitPartyMenuBGPal7
|
|
hlcoord 0, 0, wAttrmap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, PAL_BATTLE_BG_ENEMY_HP
|
|
call ByteFill
|
|
hlcoord 0, 4, wAttrmap
|
|
lb bc, 8, 10
|
|
ld a, PAL_BATTLE_BG_PLAYER
|
|
call FillBoxCGB
|
|
hlcoord 10, 0, wAttrmap
|
|
lb bc, 7, 10
|
|
ld a, PAL_BATTLE_BG_ENEMY
|
|
call FillBoxCGB
|
|
hlcoord 0, 0, wAttrmap
|
|
lb bc, 4, 10
|
|
ld a, PAL_BATTLE_BG_ENEMY_HP
|
|
call FillBoxCGB
|
|
hlcoord 10, 7, wAttrmap
|
|
lb bc, 5, 10
|
|
ld a, PAL_BATTLE_BG_PLAYER_HP
|
|
call FillBoxCGB
|
|
hlcoord 10, 11, wAttrmap
|
|
lb bc, 1, 9
|
|
ld a, PAL_BATTLE_BG_EXP
|
|
call FillBoxCGB
|
|
hlcoord 0, 12, wAttrmap
|
|
ld bc, 6 * SCREEN_WIDTH
|
|
ld a, PAL_BATTLE_BG_TEXT
|
|
call ByteFill
|
|
ld hl, BattleObjectPals
|
|
ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY
|
|
ld bc, 6 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
InitPartyMenuBGPal7:
|
|
farcall Function100dc0
|
|
Mobile_InitPartyMenuBGPal7:
|
|
ld hl, PartyMenuBGPalette
|
|
jr nc, .not_mobile
|
|
ld hl, PartyMenuBGMobilePalette
|
|
.not_mobile
|
|
ld de, wBGPals1 palette 7
|
|
ld bc, 1 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
ret
|
|
|
|
InitPartyMenuBGPal0:
|
|
farcall Function100dc0
|
|
ld hl, PartyMenuBGPalette
|
|
jr nc, .not_mobile
|
|
ld hl, PartyMenuBGMobilePalette
|
|
.not_mobile
|
|
ld de, wBGPals1 palette 0
|
|
ld bc, 1 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
ret
|
|
|
|
_CGB_PokegearPals:
|
|
ld a, [wPlayerGender]
|
|
and a ; MALE
|
|
jr z, .male
|
|
ld hl, FemalePokegearPals
|
|
dec a ; FEMALE
|
|
jr z, .got_pals
|
|
ld hl, EnbyPokegearPals
|
|
jr .got_pals
|
|
|
|
.male
|
|
ld hl, MalePokegearPals
|
|
.got_pals
|
|
ld de, wBGPals1
|
|
ld bc, 6 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_StatsScreenHPPals:
|
|
ld de, wBGPals1
|
|
ld a, [wCurHPPal]
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, HPBarPals
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black ; hp palette
|
|
ld a, [wCurPartySpecies]
|
|
ld bc, wTempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black ; mon palette
|
|
ld hl, ExpBarPalette
|
|
call LoadPalette_White_Col1_Col2_Black ; exp palette
|
|
ld hl, StatsScreenPagePals
|
|
ld de, wBGPals1 palette 3
|
|
ld bc, 3 palettes ; pink, green, and blue page palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call WipeAttrmap
|
|
|
|
hlcoord 0, 0, wAttrmap
|
|
lb bc, 8, SCREEN_WIDTH
|
|
ld a, $1 ; mon palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 10, 16, wAttrmap
|
|
ld bc, 10
|
|
ld a, $2 ; exp palette
|
|
call ByteFill
|
|
|
|
hlcoord 13, 5, wAttrmap
|
|
lb bc, 2, 2
|
|
ld a, $3 ; pink page palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 15, 5, wAttrmap
|
|
lb bc, 2, 2
|
|
ld a, $4 ; green page palette
|
|
call FillBoxCGB
|
|
|
|
hlcoord 17, 5, wAttrmap
|
|
lb bc, 2, 2
|
|
ld a, $5 ; blue page palette
|
|
call FillBoxCGB
|
|
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
StatsScreenPagePals:
|
|
INCLUDE "gfx/stats/pages.pal"
|
|
|
|
StatsScreenPals:
|
|
INCLUDE "gfx/stats/stats.pal"
|
|
|
|
_CGB_Pokedex:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_POKEDEX
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE ; dex interface palette
|
|
ld a, [wCurPartySpecies]
|
|
cp $ff
|
|
jr nz, .is_pokemon
|
|
ld hl, PokedexQuestionMarkPalette
|
|
call LoadHLPaletteIntoDE ; green question mark palette
|
|
jr .got_palette
|
|
|
|
.is_pokemon
|
|
call GetMonPalettePointer
|
|
ld a, [wPokedexShinyToggle]
|
|
and a
|
|
jr z, .not_shiny
|
|
; Get shiny palette pointer
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
.not_shiny
|
|
call LoadPalette_White_Col1_Col2_Black ; mon palette
|
|
.got_palette
|
|
call WipeAttrmap
|
|
hlcoord 1, 1, wAttrmap
|
|
lb bc, 7, 7
|
|
ld a, $1 ; green question mark palette
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
ld hl, PokedexCursorPalette
|
|
ld de, wOBPals1 palette 7 ; green cursor palette
|
|
ld bc, 1 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
PokedexQuestionMarkPalette:
|
|
INCLUDE "gfx/pokedex/question_mark.pal"
|
|
|
|
PokedexCursorPalette:
|
|
INCLUDE "gfx/pokedex/cursor.pal"
|
|
|
|
_CGB_BillsPC:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_POKEDEX
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [wCurPartySpecies]
|
|
cp $ff
|
|
jr nz, .GetMonPalette
|
|
ld hl, BillsPCOrangePalette
|
|
call LoadHLPaletteIntoDE
|
|
jr .GotPalette
|
|
|
|
.GetMonPalette:
|
|
ld bc, wTempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
.GotPalette:
|
|
call WipeAttrmap
|
|
hlcoord 1, 4, wAttrmap
|
|
lb bc, 7, 7
|
|
ld a, $1 ; mon palette
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_Unknown: ; unreferenced
|
|
ld hl, BillsPCOrangePalette
|
|
call LoadHLPaletteIntoDE
|
|
jr .GotPalette
|
|
|
|
.GetMonPalette: ; unreferenced
|
|
ld bc, wTempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
.GotPalette:
|
|
call WipeAttrmap
|
|
hlcoord 1, 1, wAttrmap
|
|
lb bc, 7, 7
|
|
ld a, $1 ; mon palette
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
BillsPCOrangePalette:
|
|
INCLUDE "gfx/pc/orange.pal"
|
|
|
|
_CGB_PokedexUnownMode:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_POKEDEX
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [wCurPartySpecies]
|
|
call GetMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrmap
|
|
hlcoord 7, 5, wAttrmap
|
|
lb bc, 7, 7
|
|
ld a, $1 ; mon palette
|
|
call FillBoxCGB
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_SlotMachine:
|
|
ld hl, SlotMachinePals
|
|
ld de, wBGPals1
|
|
ld bc, 16 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call WipeAttrmap
|
|
hlcoord 0, 2, wAttrmap
|
|
lb bc, 10, 3
|
|
ld a, $2 ; "3" palette
|
|
call FillBoxCGB
|
|
hlcoord 17, 2, wAttrmap
|
|
lb bc, 10, 3
|
|
ld a, $2 ; "3" palette
|
|
call FillBoxCGB
|
|
hlcoord 0, 4, wAttrmap
|
|
lb bc, 6, 3
|
|
ld a, $3 ; "2" palette
|
|
call FillBoxCGB
|
|
hlcoord 17, 4, wAttrmap
|
|
lb bc, 6, 3
|
|
ld a, $3 ; "2" palette
|
|
call FillBoxCGB
|
|
hlcoord 0, 6, wAttrmap
|
|
lb bc, 2, 3
|
|
ld a, $4 ; "1" palette
|
|
call FillBoxCGB
|
|
hlcoord 17, 6, wAttrmap
|
|
lb bc, 2, 3
|
|
ld a, $4 ; "1" palette
|
|
call FillBoxCGB
|
|
hlcoord 4, 2, wAttrmap
|
|
lb bc, 2, 12
|
|
ld a, $1 ; Vileplume palette
|
|
call FillBoxCGB
|
|
hlcoord 3, 2, wAttrmap
|
|
lb bc, 10, 1
|
|
ld a, $1 ; lights palette
|
|
call FillBoxCGB
|
|
hlcoord 16, 2, wAttrmap
|
|
lb bc, 10, 1
|
|
ld a, $1 ; lights palette
|
|
call FillBoxCGB
|
|
hlcoord 0, 12, wAttrmap
|
|
ld bc, 6 * SCREEN_WIDTH
|
|
ld a, $7 ; text palette
|
|
call ByteFill
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_BetaTitleScreen:
|
|
ld hl, PalPacket_BetaTitleScreen + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrmap
|
|
ld de, wOBPals1
|
|
ld a, PREDEFPAL_PACK
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
hlcoord 0, 6, wAttrmap
|
|
lb bc, 12, SCREEN_WIDTH
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_GSIntro:
|
|
ld b, 0
|
|
ld hl, .Jumptable
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
|
|
.Jumptable:
|
|
dw .ShellderLaprasScene
|
|
dw .JigglypuffPikachuScene
|
|
dw .StartersCharizardScene
|
|
|
|
.ShellderLaprasScene:
|
|
ld hl, .ShellderLaprasBGPalette
|
|
ld de, wBGPals1
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .ShellderLaprasOBPals
|
|
ld de, wOBPals1
|
|
ld bc, 2 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
call WipeAttrmap
|
|
ret
|
|
|
|
.ShellderLaprasBGPalette:
|
|
INCLUDE "gfx/intro/gs_shellder_lapras_bg.pal"
|
|
|
|
.ShellderLaprasOBPals:
|
|
INCLUDE "gfx/intro/gs_shellder_lapras_ob.pal"
|
|
|
|
.JigglypuffPikachuScene:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
|
|
ld de, wOBPals1
|
|
ld a, PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrmap
|
|
ret
|
|
|
|
.StartersCharizardScene:
|
|
ld hl, PalPacket_Pack + 1
|
|
call CopyFourPalettes
|
|
ld de, wOBPals1
|
|
ld a, PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrmap
|
|
ret
|
|
|
|
_CGB_BetaPoker:
|
|
ld hl, BetaPokerPals
|
|
ld de, wBGPals1
|
|
ld bc, 5 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_Diploma:
|
|
ld hl, DiplomaPalettes
|
|
ld de, wBGPals1
|
|
ld bc, 16 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
|
|
ld hl, PalPacket_Diploma + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_MapPals:
|
|
call LoadMapPals
|
|
ld a, SCGB_MAPPALS
|
|
ld [wDefaultSGBLayout], a
|
|
ret
|
|
|
|
_CGB_PartyMenu:
|
|
ld hl, PalPacket_PartyMenu + 1
|
|
call CopyFourPalettes
|
|
call InitPartyMenuBGPal0
|
|
call InitPartyMenuBGPal7
|
|
call InitPartyMenuOBPals
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_Evolution:
|
|
ld de, wBGPals1
|
|
ld a, c
|
|
and a
|
|
jr z, .pokemon
|
|
ld a, PREDEFPAL_BLACKOUT
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
jr .got_palette
|
|
|
|
.pokemon
|
|
ld hl, wPartyMon1DVs
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
ld a, [wCurPartyMon]
|
|
call AddNTimes
|
|
ld c, l
|
|
ld b, h
|
|
ld a, [wPlayerHPPal]
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld hl, BattleObjectPals
|
|
ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY
|
|
ld bc, 6 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
|
|
.got_palette
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_GSTitleScreen:
|
|
ld hl, UnusedGSTitleBGPals
|
|
ld de, wBGPals1
|
|
ld bc, 5 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
ld hl, UnusedGSTitleOBPals
|
|
ld de, wOBPals1
|
|
ld bc, 2 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
ld a, SCGB_DIPLOMA
|
|
ld [wDefaultSGBLayout], a
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_Unused0D:
|
|
ld hl, PalPacket_Diploma + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_UnownPuzzle:
|
|
ld hl, PalPacket_UnownPuzzle + 1
|
|
call CopyFourPalettes
|
|
ld de, wOBPals1
|
|
ld a, PREDEFPAL_UNOWN_PUZZLE
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ldh a, [rSVBK]
|
|
push af
|
|
ld a, BANK(wOBPals1)
|
|
ldh [rSVBK], a
|
|
ld hl, wOBPals1
|
|
ld a, LOW(palred 31 + palgreen 0 + palblue 0)
|
|
ld [hli], a
|
|
ld a, HIGH(palred 31 + palgreen 0 + palblue 0)
|
|
ld [hl], a
|
|
pop af
|
|
ldh [rSVBK], a
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_TrainerCard:
|
|
ld de, wBGPals1
|
|
xor a ; CHRIS
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, FALKNER ; KRIS
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, BUGSY
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, WHITNEY
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, TOPAZ ;MORTY
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, CHUCK
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, JASMINE
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, PRYCE
|
|
call GetTrainerPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
ld a, PREDEFPAL_CGB_BADGE
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
|
|
; fill screen with gender-based palette for the card border
|
|
hlcoord 0, 0, wAttrmap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, [wPlayerGender]
|
|
and a
|
|
jr z, .male
|
|
dec a
|
|
jr z, .female
|
|
ld a, $6 ; dark magenta for enby
|
|
jr .got_gender
|
|
.male
|
|
ld a, $1 ; blue for chris
|
|
jr .got_gender
|
|
.female
|
|
ld a, $0 ; red for kris
|
|
.got_gender
|
|
call ByteFill
|
|
; fill trainer sprite area with same-gender palette
|
|
hlcoord 14, 1, wAttrmap
|
|
lb bc, 7, 5
|
|
ld a, [wPlayerGender]
|
|
and a
|
|
jr z, .male2
|
|
dec a
|
|
jr z, .female2
|
|
ld a, $4 ; enby
|
|
jr .got_gender2
|
|
.male2
|
|
ld a, $0 ; chris
|
|
jr .got_gender2
|
|
.female2
|
|
ld a, $1 ; kris
|
|
.got_gender2
|
|
call FillBoxCGB
|
|
hlcoord 2, 11, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $1 ; falkner
|
|
call FillBoxCGB
|
|
hlcoord 6, 11, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $2 ; bugsy
|
|
call FillBoxCGB
|
|
hlcoord 10, 11, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $3 ; whitney
|
|
call FillBoxCGB
|
|
hlcoord 14, 11, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $4 ; morty
|
|
call FillBoxCGB
|
|
hlcoord 2, 14, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $5 ; chuck
|
|
call FillBoxCGB
|
|
hlcoord 6, 14, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $6 ; jasmine
|
|
call FillBoxCGB
|
|
hlcoord 10, 14, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $7 ; pryce
|
|
call FillBoxCGB
|
|
hlcoord 14, 14, wAttrmap
|
|
lb bc, 2, 4
|
|
ld a, $1 ; clair
|
|
call FillBoxCGB
|
|
; top-right corner still uses the border's palette
|
|
ld a, [wPlayerGender]
|
|
and a
|
|
jr z, .male3
|
|
dec a
|
|
jr z, .female3
|
|
ld a, $6 ; dark magenta for enby
|
|
jr .got_gender3
|
|
.male3
|
|
ld a, $1 ; blue for chris
|
|
jr .got_gender3
|
|
.female3
|
|
ld a, $0 ; red for kris
|
|
.got_gender3
|
|
hlcoord 18, 1, wAttrmap
|
|
ld [hl], a
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_MoveList:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_GOLDENROD
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld a, [wPlayerHPPal]
|
|
ld l, a
|
|
ld h, 0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, HPBarPals
|
|
add hl, bc
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrmap
|
|
hlcoord 11, 1, wAttrmap
|
|
lb bc, 2, 9
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_BetaPikachuMinigame:
|
|
ld hl, PalPacket_BetaPikachuMinigame + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_PokedexSearchOption:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_POKEDEX
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_PackPals:
|
|
; pack pals
|
|
ld a, [wBattleType]
|
|
cp BATTLETYPE_TUTORIAL
|
|
jr z, .tutorial_male
|
|
|
|
ld a, [wPlayerGender]
|
|
and a ; MALE
|
|
jr z, .tutorial_male
|
|
dec a ; FEMALE
|
|
jr z, .tutorial_female
|
|
|
|
ld hl, .EnbyPackPals
|
|
jr .got_gender
|
|
|
|
.tutorial_female
|
|
ld hl, .KrisPackPals
|
|
jr .got_gender
|
|
|
|
.tutorial_male
|
|
ld hl, .ChrisPackPals
|
|
|
|
.got_gender
|
|
ld de, wBGPals1
|
|
ld bc, 8 palettes ; 6 palettes?
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call WipeAttrmap
|
|
hlcoord 0, 0, wAttrmap
|
|
lb bc, 1, 10
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 10, 0, wAttrmap
|
|
lb bc, 1, 10
|
|
ld a, $2
|
|
call FillBoxCGB
|
|
hlcoord 7, 2, wAttrmap
|
|
lb bc, 9, 1
|
|
ld a, $3
|
|
call FillBoxCGB
|
|
hlcoord 0, 7, wAttrmap
|
|
lb bc, 3, 5
|
|
ld a, $4
|
|
call FillBoxCGB
|
|
hlcoord 0, 3, wAttrmap
|
|
lb bc, 3, 5
|
|
ld a, $5
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
.ChrisPackPals:
|
|
INCLUDE "gfx/pack/pack.pal"
|
|
|
|
.KrisPackPals:
|
|
INCLUDE "gfx/pack/pack_f.pal"
|
|
|
|
.EnbyPackPals:
|
|
INCLUDE "gfx/pack/pack_nb.pal"
|
|
|
|
_CGB_Pokepic:
|
|
call _CGB_MapPals
|
|
ld de, SCREEN_WIDTH
|
|
hlcoord 0, 0, wAttrmap
|
|
ld a, [wMenuBorderTopCoord]
|
|
.loop
|
|
and a
|
|
jr z, .found_top
|
|
dec a
|
|
add hl, de
|
|
jr .loop
|
|
|
|
.found_top
|
|
ld a, [wMenuBorderLeftCoord]
|
|
ld e, a
|
|
ld d, 0
|
|
add hl, de
|
|
ld a, [wMenuBorderTopCoord]
|
|
ld b, a
|
|
ld a, [wMenuBorderBottomCoord]
|
|
inc a
|
|
sub b
|
|
ld b, a
|
|
ld a, [wMenuBorderLeftCoord]
|
|
ld c, a
|
|
ld a, [wMenuBorderRightCoord]
|
|
sub c
|
|
inc a
|
|
ld c, a
|
|
ld a, PAL_BG_GRAY
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_MagnetTrain: ; unused
|
|
ld hl, PalPacket_MagnetTrain + 1
|
|
call CopyFourPalettes
|
|
call WipeAttrmap
|
|
hlcoord 0, 4, wAttrmap
|
|
lb bc, 10, SCREEN_WIDTH
|
|
ld a, PAL_BG_GREEN
|
|
call FillBoxCGB
|
|
hlcoord 0, 6, wAttrmap
|
|
lb bc, 6, SCREEN_WIDTH
|
|
ld a, PAL_BG_RED
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ld a, TRUE
|
|
ldh [hCGBPalUpdate], a
|
|
ret
|
|
|
|
_CGB_GamefreakLogo:
|
|
ld de, wBGPals1
|
|
ld a, PREDEFPAL_GAMEFREAK_LOGO_BG
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .GamefreakDittoPalette
|
|
ld de, wOBPals1
|
|
call LoadHLPaletteIntoDE
|
|
ld hl, .GamefreakDittoPalette
|
|
ld de, wOBPals1 palette 1
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ret
|
|
|
|
.GamefreakDittoPalette:
|
|
INCLUDE "gfx/splash/ditto.pal"
|
|
|
|
_CGB_PlayerOrMonFrontpicPals:
|
|
ld de, wBGPals1
|
|
ld a, [wCurPartySpecies]
|
|
ld bc, wTempMonDVs
|
|
call GetPlayerOrMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ret
|
|
|
|
_CGB_Unused1E:
|
|
ld de, wBGPals1
|
|
ld a, [wCurPartySpecies]
|
|
call GetMonPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
_CGB_TradeTube:
|
|
ld hl, PalPacket_TradeTube + 1
|
|
call CopyFourPalettes
|
|
ld hl, PartyMenuOBPals
|
|
ld de, wOBPals1
|
|
ld bc, 1 palettes
|
|
ld a, BANK(wOBPals1)
|
|
call FarCopyWRAM
|
|
ld de, wOBPals1 palette 7
|
|
ld a, PREDEFPAL_TRADE_TUBE
|
|
call GetPredefPal
|
|
call LoadHLPaletteIntoDE
|
|
call WipeAttrmap
|
|
ret
|
|
|
|
_CGB_TrainerOrMonFrontpicPals:
|
|
ld de, wBGPals1
|
|
ld a, [wCurPartySpecies]
|
|
ld bc, wTempMonDVs
|
|
call GetFrontpicPalettePointer
|
|
call LoadPalette_White_Col1_Col2_Black
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
call ApplyPals
|
|
ret
|
|
|
|
_CGB_MysteryGift:
|
|
ld hl, .MysteryGiftPalettes
|
|
ld de, wBGPals1
|
|
ld bc, 2 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
call WipeAttrmap
|
|
hlcoord 3, 7, wAttrmap
|
|
lb bc, 8, 14
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 1, 5, wAttrmap
|
|
lb bc, 1, 18
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 1, 16, wAttrmap
|
|
lb bc, 1, 18
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 0, 0, wAttrmap
|
|
lb bc, 17, 2
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
hlcoord 18, 5, wAttrmap
|
|
lb bc, 12, 1
|
|
ld a, $1
|
|
call FillBoxCGB
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
.MysteryGiftPalettes:
|
|
INCLUDE "gfx/mystery_gift/mystery_gift.pal"
|
|
|
|
GS_CGB_MysteryGift: ; unreferenced
|
|
ld hl, .MysteryGiftPalette
|
|
ld de, wBGPals1
|
|
ld bc, 1 palettes
|
|
ld a, BANK(wBGPals1)
|
|
call FarCopyWRAM
|
|
call ApplyPals
|
|
call WipeAttrmap
|
|
call ApplyAttrmap
|
|
ret
|
|
|
|
.MysteryGiftPalette:
|
|
INCLUDE "gfx/mystery_gift/gs_mystery_gift.pal"
|