pokecrystal/engine/sgb_layouts.asm

606 lines
8.9 KiB
NASM
Raw Normal View History

Predef_LoadSGBLayout: ; 864c
2013-09-09 18:33:04 +00:00
call CheckCGB
2018-01-02 14:05:14 +00:00
jp nz, LoadSGBLayoutCGB
2013-09-09 18:33:04 +00:00
ld a, b
2015-11-20 20:15:32 +00:00
cp SCGB_RAM
jr nz, .not_ram
2013-09-09 18:33:04 +00:00
ld a, [SGBPredef]
2015-11-20 20:15:32 +00:00
.not_ram
2015-12-23 03:19:33 +00:00
cp SCGB_PARTY_MENU_HP_PALS
jp z, SGB_ApplyPartyMenuHPPals
2013-09-09 18:33:04 +00:00
ld l, a
ld h, 0
add hl, hl
ld de, .Jumptable
2013-09-09 18:33:04 +00:00
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
2018-01-11 06:45:27 +00:00
ld de, _LoadSGBLayout_ReturnFromJumpTable
2013-09-09 18:33:04 +00:00
push de
jp hl
2013-09-09 18:33:04 +00:00
; 866f
.Jumptable: ; 866f
2015-12-28 15:57:04 +00:00
dw .SGB_BattleGrayscale
dw .SGB_BattleColors
dw .SGB_PokegearPals
dw .SGB_StatsScreenHPPals
2016-01-10 01:51:14 +00:00
dw .SGB_Pokedex
2015-12-28 15:57:04 +00:00
dw .SGB_SlotMachine
dw .SGB06
dw .SGB07
2016-06-06 22:23:00 +00:00
dw .SGB_Diploma
2015-12-28 15:57:04 +00:00
dw .SGB_MapPals
2016-06-06 22:23:00 +00:00
dw .SGB_PartyMenu
dw .SGB_Evolution
dw .SGB0c
2015-11-13 05:49:27 +00:00
dw .SGB0d
2016-06-06 22:23:00 +00:00
dw .SGB_MoveList
dw .SGB0f
2016-01-10 03:56:37 +00:00
dw .SGB_PokedexSearchOption
dw .SGB11
dw .SGB12
dw .SGB13
2015-12-28 15:57:04 +00:00
dw .SGB_PackPals
dw .SGB_TrainerCard
2016-01-10 03:56:37 +00:00
dw .SGB_PokedexUnownMode
2016-06-06 22:23:00 +00:00
dw .SGB_BillsPC
dw .SGB_UnownPuzzle
dw .SGB19
dw .SGB_PlayerOrMonFrontpicPals
dw .SGB_TradeTube
dw .SGB_TrainerOrMonFrontpicPals
2016-06-06 22:23:00 +00:00
dw .SGB_MysteryGift
dw .SGB1e
2013-09-09 18:33:04 +00:00
; 86ad
2015-12-28 15:57:04 +00:00
.SGB_BattleGrayscale: ; 86ad
ld hl, PalPacket_9c66
ld de, BlkPacket_9aa6
2013-09-09 18:33:04 +00:00
ret
; 86b4
2015-12-28 15:57:04 +00:00
.SGB_BattleColors: ; 86b4
ld hl, BlkPacket_9aa6
call PushSGBPals_
2015-11-13 05:49:27 +00:00
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
2015-11-13 05:49:27 +00:00
2013-09-09 18:33:04 +00:00
ld a, [PlayerHPPal]
ld l, a
ld h, 0
2013-09-09 18:33:04 +00:00
add hl, hl
add hl, hl
2017-12-16 03:36:33 +00:00
ld de, HPBarPals
2013-09-09 18:33:04 +00:00
add hl, de
2015-11-13 05:49:27 +00:00
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
2015-11-13 05:49:27 +00:00
2013-09-09 18:33:04 +00:00
ld a, [EnemyHPPal]
ld l, a
ld h, 0
2013-09-09 18:33:04 +00:00
add hl, hl
add hl, hl
2015-11-13 05:49:27 +00:00
2017-12-16 03:36:33 +00:00
ld de, HPBarPals
2013-09-09 18:33:04 +00:00
add hl, de
ld a, [hli]
ld [wSGBPals + 9], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 10], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 11], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 12], a
2015-11-13 05:49:27 +00:00
ld hl, PalPacket_9cf6
ld de, wSGBPals + $10
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
2015-11-13 05:49:27 +00:00
2015-12-17 02:57:42 +00:00
call GetBattlemonBackpicPalettePointer
2015-11-13 05:49:27 +00:00
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $13], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $14], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $15], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + $16], a
2015-12-17 02:57:42 +00:00
call GetEnemyFrontpicPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $19], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $1a], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + $1b], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + $1c], a
2015-11-13 05:49:27 +00:00
ld hl, wSGBPals
ld de, wSGBPals + $10
2015-12-28 15:57:04 +00:00
ld a, SCGB_BATTLE_COLORS
2013-09-09 18:33:04 +00:00
ld [SGBPredef], a
ret
; 873c
2016-06-06 22:23:00 +00:00
.SGB_MoveList: ; 873c
ld hl, PalPacket_9bd6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
2015-11-13 05:49:27 +00:00
ld hl, wSGBPals + 1
2013-09-09 18:33:04 +00:00
ld [hl], $10
inc hl
inc hl
2015-11-13 05:49:27 +00:00
2013-09-09 18:33:04 +00:00
ld a, [PlayerHPPal]
add $2f
ld [hl], a
ld hl, wSGBPals
ld de, BlkPacket_9ad6
2013-09-09 18:33:04 +00:00
ret
; 875c
2015-12-28 15:57:04 +00:00
.SGB_PokegearPals: ; 875c
ld hl, PalPacket_9c76
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8763
2015-12-28 15:57:04 +00:00
.SGB_StatsScreenHPPals: ; 8763
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
2017-12-10 00:41:03 +00:00
ld a, [wCurHPPal]
2013-09-09 18:33:04 +00:00
ld l, a
ld h, 0
2013-09-09 18:33:04 +00:00
add hl, hl
add hl, hl
2017-12-16 03:36:33 +00:00
ld de, HPBarPals
2013-09-09 18:33:04 +00:00
add hl, de
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
2013-09-09 18:33:04 +00:00
ld a, [CurPartySpecies]
ld bc, TempMonDVs
2015-12-17 02:57:42 +00:00
call GetPlayerOrMonPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 9], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 10], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 11], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 12], a
ld hl, wSGBPals
ld de, BlkPacket_9ac6
2013-09-09 18:33:04 +00:00
ret
; 87ab
2016-06-06 22:23:00 +00:00
.SGB_PartyMenu: ; 87ab
ld hl, PalPacket_9c56
ld de, wSGBPals + 1
2013-09-09 18:33:04 +00:00
ret
; 87b2
2016-01-10 01:51:14 +00:00
.SGB_Pokedex: ; 87b2
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld hl, wSGBPals + 3
2013-09-09 18:33:04 +00:00
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld a, [CurPartySpecies]
2015-12-17 02:57:42 +00:00
call GetMonPalettePointer_
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 9], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 10], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 11], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 12], a
ld hl, wSGBPals
ld de, BlkPacket_9ae6
2013-09-09 18:33:04 +00:00
ret
; 87e9
2016-06-06 22:23:00 +00:00
.SGB_BillsPC: ; 87e9
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld hl, wSGBPals + 3
2013-09-09 18:33:04 +00:00
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld a, [CurPartySpecies]
ld bc, TempMonDVs
2015-12-17 02:57:42 +00:00
call GetPlayerOrMonPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 9], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 10], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 11], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 12], a
ld hl, wSGBPals
ld de, BlkPacket_9ae6
2013-09-09 18:33:04 +00:00
ret
; 8823
2016-01-10 03:56:37 +00:00
.SGB_PokedexUnownMode: ; 8823
2016-01-10 01:51:14 +00:00
call .SGB_Pokedex
ld de, BlkPacket_9af6
2013-09-09 18:33:04 +00:00
ret
; 882a
2016-01-10 03:56:37 +00:00
.SGB_PokedexSearchOption: ; 882a
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld hl, wSGBPals + 3
2013-09-09 18:33:04 +00:00
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld hl, wSGBPals
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 884b
2015-12-28 15:57:04 +00:00
.SGB_PackPals: ; 884b
ld hl, PalPacket_9c36
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8852
2015-12-28 15:57:04 +00:00
.SGB_SlotMachine: ; 8852
ld hl, PalPacket_9c96
ld de, BlkPacket_9b06
2013-09-09 18:33:04 +00:00
ret
; 8859
.SGB06: ; 8859
ld hl, PalPacket_9ca6
ld de, BlkPacket_9b76
2013-09-09 18:33:04 +00:00
ret
; 8860
2016-06-06 22:23:00 +00:00
.SGB_Diploma:
.SGB_MysteryGift: ; 8860
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8867
.SGB07: ; 8867
ld b, 0
ld hl, .BlkPacketTable_SGB07
2015-07-21 02:18:18 +00:00
rept 4
2013-09-09 18:33:04 +00:00
add hl, bc
2015-07-21 02:18:18 +00:00
endr
2013-09-09 18:33:04 +00:00
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
ret
; 8878
.BlkPacketTable_SGB07: ; 8878
dw BlkPacket_9a86, PalPacket_9be6
dw BlkPacket_9a96, PalPacket_9c06
dw BlkPacket_9a86, PalPacket_9c16
; 8884
2013-09-09 18:33:04 +00:00
.SGB0c: ; 8884
ld hl, PalPacket_9b96
ld de, BlkPacket_9b56
2016-06-06 22:23:00 +00:00
ld a, SCGB_DIPLOMA
2013-09-09 18:33:04 +00:00
ld [SGBPredef], a
ret
; 8890
.SGB13: ; 8890
ld hl, PalPacket_9ba6
ld de, BlkPacket_9b86
2013-09-09 18:33:04 +00:00
ret
; 8897
.SGB0f: ; 8897
ld hl, PalPacket_9c46
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 889e
.SGB11: ; 889e
ld hl, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ld de, PlayerLightScreenCount
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld hl, PalPacket_9bb6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 88b1
2015-12-28 15:57:04 +00:00
.SGB_MapPals: ; 88b1
ld hl, PalPacket_9bd6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
call .GetMapPalsIndex
ld hl, wSGBPals + 1
2013-09-09 18:33:04 +00:00
ld [hld], a
ld de, BlkPacket_9a86
ld a, SCGB_MAPPALS
2013-09-09 18:33:04 +00:00
ld [SGBPredef], a
ret
; 88cd
2016-06-06 22:23:00 +00:00
.SGB_Evolution: ; 88cd
2013-09-09 18:33:04 +00:00
push bc
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
pop bc
ld a, c
and a
2015-12-23 03:19:33 +00:00
jr z, .partymon
2016-06-06 22:23:00 +00:00
; Egg
ld hl, wSGBPals + 3
2018-01-11 06:45:27 +00:00
ld [hl], LOW(palred 7 + palgreen 7 + palblue 7)
2013-09-09 18:33:04 +00:00
inc hl
2018-01-11 06:45:27 +00:00
ld [hl], HIGH(palred 7 + palgreen 7 + palblue 7)
2013-09-09 18:33:04 +00:00
inc hl
2018-01-11 06:45:27 +00:00
ld [hl], LOW(palred 2 + palgreen 3 + palblue 3)
2013-09-09 18:33:04 +00:00
inc hl
2018-01-11 06:45:27 +00:00
ld [hl], HIGH(palred 2 + palgreen 3 + palblue 3)
2015-12-23 03:19:33 +00:00
jr .done
2013-09-09 18:33:04 +00:00
2015-12-23 03:19:33 +00:00
.partymon
2013-09-09 18:33:04 +00:00
ld hl, PartyMon1DVs
2015-12-23 03:19:33 +00:00
ld bc, PARTYMON_STRUCT_LENGTH
2013-09-09 18:33:04 +00:00
ld a, [CurPartyMon]
call AddNTimes
ld c, l
ld b, h
ld a, [PlayerHPPal]
2015-12-17 02:57:42 +00:00
call GetPlayerOrMonPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
2013-09-09 18:33:04 +00:00
2015-12-23 03:19:33 +00:00
.done
ld hl, wSGBPals
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 891a
2015-11-13 05:49:27 +00:00
.SGB0d:
2015-12-28 15:57:04 +00:00
.SGB_TrainerCard: ; 891a
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8921
2016-06-06 22:23:00 +00:00
.SGB_UnownPuzzle: ; 8921
ld hl, PalPacket_9bc6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8928
.SGB12: ; 8928
ld hl, PalPacket_9bd6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld hl, BlkPacket_9a86
ld de, wSGBPals + $10
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
call .GetMapPalsIndex
ld hl, wSGBPals + 1
2013-09-09 18:33:04 +00:00
ld [hl], a
ld hl, wSGBPals + 3
2013-09-09 18:33:04 +00:00
ld [hl], $2e
ld hl, wSGBPals + $13
ld a, 5
2013-09-09 18:33:04 +00:00
ld [hli], a
2015-10-24 14:34:19 +00:00
ld a, [wMenuBorderLeftCoord]
2013-09-09 18:33:04 +00:00
ld [hli], a
2015-10-24 14:34:19 +00:00
ld a, [wMenuBorderTopCoord]
2013-09-09 18:33:04 +00:00
ld [hli], a
2015-10-24 14:34:19 +00:00
ld a, [wMenuBorderRightCoord]
2013-09-09 18:33:04 +00:00
ld [hli], a
2015-10-24 14:34:19 +00:00
ld a, [wMenuBorderBottomCoord]
2013-09-09 18:33:04 +00:00
ld [hl], a
ld hl, wSGBPals
ld de, wSGBPals + $10
2013-09-09 18:33:04 +00:00
ret
; 8969
.SGB1e: ; 8969
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld a, [CurPartySpecies]
ld l, a
ld h, 0
2013-09-09 18:33:04 +00:00
add hl, hl
add hl, hl
add hl, hl
ld de, PokemonPalettes
2013-09-09 18:33:04 +00:00
add hl, de
ld a, [wcf65]
and 3
2013-09-09 18:33:04 +00:00
sla a
sla a
ld c, a
ld b, 0
2013-09-09 18:33:04 +00:00
add hl, bc
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
ld hl, wSGBPals
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 89a6
.SGB19: ; 89a6
ld hl, PalPacket_9cd6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 89ad
.SGB_PlayerOrMonFrontpicPals: ; 89ad
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld a, [CurPartySpecies]
ld bc, TempMonDVs
2015-12-17 02:57:42 +00:00
call GetPlayerOrMonPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
ld hl, wSGBPals
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 89d9
.SGB_TradeTube: ; 89d9
ld hl, PalPacket_9cc6
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 89e0
.SGB_TrainerOrMonFrontpicPals: ; 89e0
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, $10
2013-09-09 18:33:04 +00:00
call CopyBytes
ld a, [CurPartySpecies]
ld bc, TempMonDVs
2015-12-17 02:57:42 +00:00
call GetFrontpicPalettePointer
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 3], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 4], a
2013-09-09 18:33:04 +00:00
ld a, [hli]
ld [wSGBPals + 5], a
2013-09-09 18:33:04 +00:00
ld a, [hl]
ld [wSGBPals + 6], a
ld hl, wSGBPals
ld de, BlkPacket_9a86
2013-09-09 18:33:04 +00:00
ret
; 8a0c
.GetMapPalsIndex: ; 8a0c
2013-09-09 18:33:04 +00:00
ld a, [TimeOfDayPal]
cp NITE_F
jr c, .morn_day
2013-09-09 18:33:04 +00:00
ld a, $19
ret
.morn_day
ld a, [wEnvironment]
cp ROUTE
jr z, .route
cp CAVE
jr z, .cave
cp DUNGEON
jr z, .cave
cp ENVIRONMENT_5
jr z, .perm5
cp GATE
jr z, .gate
2013-09-09 18:33:04 +00:00
ld a, [MapGroup]
ld e, a
ld d, 0
2018-01-11 06:45:27 +00:00
ld hl, MapGroupRoofSGBPalInds
2013-09-09 18:33:04 +00:00
add hl, de
ld a, [hl]
ret
.route
ld a, $00
2013-09-09 18:33:04 +00:00
ret
.cave
2013-09-09 18:33:04 +00:00
ld a, $18
ret
.perm5
ld a, $06
2013-09-09 18:33:04 +00:00
ret
.gate
ld a, $03
2013-09-09 18:33:04 +00:00
ret
; 8a45
2018-01-12 08:07:48 +00:00
INCLUDE "gfx/sgb/roof_pal_inds.asm"
2018-01-11 06:45:27 +00:00
_LoadSGBLayout_ReturnFromJumpTable: ; 8a60
2013-09-09 18:33:04 +00:00
push de
call PushSGBPals_
2013-09-09 18:33:04 +00:00
pop hl
jp PushSGBPals_
2013-09-09 18:33:04 +00:00
; 8a68