mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-01-06 17:19:50 +13:00
Comment some more bank 0 functions.
This commit is contained in:
parent
955b53047c
commit
8f8281fe6e
|
|
@ -1,5 +1,7 @@
|
||||||
; From http://nocash.emubase.de/pandocs.htm.
|
; From http://nocash.emubase.de/pandocs.htm.
|
||||||
|
|
||||||
|
GBC EQU $11
|
||||||
|
|
||||||
; MBC3
|
; MBC3
|
||||||
MBC3SRamEnable EQU $0000
|
MBC3SRamEnable EQU $0000
|
||||||
MBC3RomBank EQU $2000
|
MBC3RomBank EQU $2000
|
||||||
|
|
@ -28,6 +30,8 @@ TIMER EQU 2
|
||||||
SERIAL EQU 3
|
SERIAL EQU 3
|
||||||
JOYPAD EQU 4
|
JOYPAD EQU 4
|
||||||
|
|
||||||
|
LY_VBLANK EQU 145
|
||||||
|
|
||||||
; OAM attribute flags
|
; OAM attribute flags
|
||||||
OAM_PALETTE EQU %111
|
OAM_PALETTE EQU %111
|
||||||
OAM_TILE_BANK EQU 3
|
OAM_TILE_BANK EQU 3
|
||||||
|
|
@ -76,6 +80,8 @@ rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
||||||
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
||||||
rNR52 EQU $ff26 ; Sound on/off
|
rNR52 EQU $ff26 ; Sound on/off
|
||||||
rLCDC EQU $ff40 ; LCD Control (R/W)
|
rLCDC EQU $ff40 ; LCD Control (R/W)
|
||||||
|
rLCDC_ENABLE EQU 7
|
||||||
|
rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
|
||||||
rSTAT EQU $ff41 ; LCDC Status (R/W)
|
rSTAT EQU $ff41 ; LCDC Status (R/W)
|
||||||
rSCY EQU $ff42 ; Scroll Y (R/W)
|
rSCY EQU $ff42 ; Scroll Y (R/W)
|
||||||
rSCX EQU $ff43 ; Scroll X (R/W)
|
rSCX EQU $ff43 ; Scroll X (R/W)
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ Func_708ca: ; 708ca (1c:48ca)
|
||||||
sla a
|
sla a
|
||||||
ld [rOBP1], a ; $ff49
|
ld [rOBP1], a ; $ff49
|
||||||
jr nz, .asm_708f6
|
jr nz, .asm_708f6
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call Func_7092a
|
call Func_7092a
|
||||||
ld b, $e4
|
ld b, $e4
|
||||||
.asm_7090d
|
.asm_7090d
|
||||||
|
|
@ -42,7 +42,7 @@ Func_708ca: ; 708ca (1c:48ca)
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
call Delay3
|
call Delay3
|
||||||
jp CleanLCD_OAM
|
jp ClearSprites
|
||||||
|
|
||||||
Func_7092a: ; 7092a (1c:492a)
|
Func_7092a: ; 7092a (1c:492a)
|
||||||
ld de, $9000
|
ld de, $9000
|
||||||
|
|
|
||||||
|
|
@ -616,7 +616,7 @@ AnimationCleanOAM: ; 78ec8 (1e:4ec8)
|
||||||
push bc
|
push bc
|
||||||
push af
|
push af
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
pop af
|
pop af
|
||||||
pop bc
|
pop bc
|
||||||
pop de
|
pop de
|
||||||
|
|
@ -2616,7 +2616,7 @@ AnimationPetalsFalling: ; 79c8a (1e:5c8a)
|
||||||
ld a, $14
|
ld a, $14
|
||||||
ld [W_SUBANIMTRANSFORM], a
|
ld [W_SUBANIMTRANSFORM], a
|
||||||
call Func_79c97
|
call Func_79c97
|
||||||
jp CleanLCD_OAM
|
jp ClearSprites
|
||||||
|
|
||||||
Func_79c97: ; 79c97 (1e:5c97)
|
Func_79c97: ; 79c97 (1e:5c97)
|
||||||
ld c, a
|
ld c, a
|
||||||
|
|
@ -2773,7 +2773,7 @@ AnimationShakeEnemyHUD: ; 79d77 (1e:5d77)
|
||||||
ld de, $0208
|
ld de, $0208
|
||||||
call Func_79de9
|
call Func_79de9
|
||||||
call AnimationShowMonPic
|
call AnimationShowMonPic
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, $90
|
ld a, $90
|
||||||
ld [$ffb0], a
|
ld [$ffb0], a
|
||||||
ld hl, $9c00
|
ld hl, $9c00
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,7 @@ Func_3c04c: ; 3c04c (f:404c)
|
||||||
call Delay3
|
call Delay3
|
||||||
ld b, $1
|
ld b, $1
|
||||||
call GoPAL_SET
|
call GoPAL_SET
|
||||||
call ResetLCD_OAM
|
call HideSprites
|
||||||
ld hl, PrintBeginningBattleText
|
ld hl, PrintBeginningBattleText
|
||||||
ld b, BANK(PrintBeginningBattleText)
|
ld b, BANK(PrintBeginningBattleText)
|
||||||
jp Bankswitch
|
jp Bankswitch
|
||||||
|
|
@ -1146,7 +1146,7 @@ Func_3c7d8: ; 3c7d8 (f:47d8)
|
||||||
.asm_3c7fa
|
.asm_3c7fa
|
||||||
xor a
|
xor a
|
||||||
ld [$cd6a], a
|
ld [$cd6a], a
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, [wWhichPokemon] ; $cf92
|
ld a, [wWhichPokemon] ; $cf92
|
||||||
ld [wPlayerMonNumber], a ; $cc2f
|
ld [wPlayerMonNumber], a ; $cc2f
|
||||||
ld c, a
|
ld c, a
|
||||||
|
|
@ -1449,7 +1449,7 @@ Func_3c92a: ; 3c92a (f:492a)
|
||||||
call Func_3ee5b
|
call Func_3ee5b
|
||||||
call LoadScreenTilesFromBuffer1
|
call LoadScreenTilesFromBuffer1
|
||||||
.next4
|
.next4
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld hl,wTileMap
|
ld hl,wTileMap
|
||||||
ld bc,$040B
|
ld bc,$040B
|
||||||
call ClearScreenArea
|
call ClearScreenArea
|
||||||
|
|
@ -2271,7 +2271,7 @@ asm_3d05f: ; 3d05f (f:505f)
|
||||||
ld [$d152], a
|
ld [$d152], a
|
||||||
call UseItem
|
call UseItem
|
||||||
call Func_3ee5b
|
call Func_3ee5b
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
xor a
|
xor a
|
||||||
ld [wCurrentMenuItem], a ; $cc26
|
ld [wCurrentMenuItem], a ; $cc26
|
||||||
ld a, [W_BATTLETYPE] ; $d05a
|
ld a, [W_BATTLETYPE] ; $d05a
|
||||||
|
|
@ -2335,7 +2335,7 @@ Func_3d0e0: ; 3d0e0 (f:50e0)
|
||||||
asm_3d0ed: ; 3d0ed (f:50ed)
|
asm_3d0ed: ; 3d0ed (f:50ed)
|
||||||
jp nc, Func_3d119
|
jp nc, Func_3d119
|
||||||
asm_3d0f0: ; 3d0f0 (f:50f0)
|
asm_3d0f0: ; 3d0f0 (f:50f0)
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call GBPalWhiteOut
|
call GBPalWhiteOut
|
||||||
call Func_3ee5b
|
call Func_3ee5b
|
||||||
call LoadScreenTilesFromBuffer2
|
call LoadScreenTilesFromBuffer2
|
||||||
|
|
@ -2383,7 +2383,7 @@ Func_3d119: ; 3d119 (f:5119)
|
||||||
xor a
|
xor a
|
||||||
ld [$cc49], a
|
ld [$cc49], a
|
||||||
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
|
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, $36
|
ld a, $36
|
||||||
call Predef ; indirect jump to StatusScreen (12953 (4:6953))
|
call Predef ; indirect jump to StatusScreen (12953 (4:6953))
|
||||||
ld a, $37
|
ld a, $37
|
||||||
|
|
@ -2423,7 +2423,7 @@ Func_3d119: ; 3d119 (f:5119)
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [$cd6a], a
|
ld [$cd6a], a
|
||||||
call GBPalWhiteOut
|
call GBPalWhiteOut
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call Func_3ee5b
|
call Func_3ee5b
|
||||||
call LoadScreenTilesFromBuffer1
|
call LoadScreenTilesFromBuffer1
|
||||||
call GoPAL_SET_CF1C
|
call GoPAL_SET_CF1C
|
||||||
|
|
@ -6219,7 +6219,7 @@ Func_3ec32: ; 3ec32 (f:6c32)
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
xor a
|
xor a
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
|
|
@ -6787,7 +6787,7 @@ Func_3efeb: ; 3efeb (f:6feb)
|
||||||
ld hl, Coord
|
ld hl, Coord
|
||||||
ld bc, $40a
|
ld bc, $40a
|
||||||
call ClearScreenArea
|
call ClearScreenArea
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, [W_ISINBATTLE] ; $d057
|
ld a, [W_ISINBATTLE] ; $d057
|
||||||
dec a
|
dec a
|
||||||
call z, Func_3cdec
|
call z, Func_3cdec
|
||||||
|
|
|
||||||
|
|
@ -887,7 +887,7 @@ Func_5a5f: ; 5a5f (1:5a5f)
|
||||||
ret nz
|
ret nz
|
||||||
ld a, $4d
|
ld a, $4d
|
||||||
call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf))
|
call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf))
|
||||||
jp InitGame
|
jp Init
|
||||||
.asm_5a75
|
.asm_5a75
|
||||||
call Func_5317
|
call Func_5317
|
||||||
ld hl, Club_GFX
|
ld hl, Club_GFX
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ Func_1c98a: ; 1c98a (7:498a)
|
||||||
call DisplayTextBoxID
|
call DisplayTextBoxID
|
||||||
ld a, [wCurrentMenuItem] ; $cc26
|
ld a, [wCurrentMenuItem] ; $cc26
|
||||||
and a
|
and a
|
||||||
jp z, InitGame
|
jp z, Init
|
||||||
callba Func_73b6a
|
callba Func_73b6a
|
||||||
jp InitGame
|
jp Init
|
||||||
|
|
||||||
ClearSaveDataText: ; 1c9c1 (7:49c1)
|
ClearSaveDataText: ; 1c9c1 (7:49c1)
|
||||||
TX_FAR _ClearSaveDataText
|
TX_FAR _ClearSaveDataText
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
callab Func_7bde9
|
callab Func_7bde9
|
||||||
jp c, Func_3af2e
|
jp c, Func_3af2e
|
||||||
ld hl, EvolvedText
|
ld hl, EvolvedText
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ PlayIntro: ; 41682 (10:5682)
|
||||||
xor a
|
xor a
|
||||||
ld [$ffae], a
|
ld [$ffae], a
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a
|
ld [H_AUTOBGTRANSFERENABLED], a
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
@ -329,7 +329,7 @@ PlayShootingStar: ; 4188a (10:588a)
|
||||||
ld [$c0ee], a
|
ld [$c0ee], a
|
||||||
call PlaySound
|
call PlaySound
|
||||||
call Func_417f8
|
call Func_417f8
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
jp Delay3
|
jp Delay3
|
||||||
|
|
||||||
Func_418e9: ; 418e9 (10:58e9)
|
Func_418e9: ; 418e9 (10:58e9)
|
||||||
|
|
|
||||||
|
|
@ -419,7 +419,7 @@ ItemUseBall: ; d687 (3:5687)
|
||||||
jr nz,.checkParty
|
jr nz,.checkParty
|
||||||
ld hl,ItemUseBallText06
|
ld hl,ItemUseBallText06
|
||||||
call PrintText
|
call PrintText
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a,[$cfe5] ;caught mon_ID
|
ld a,[$cfe5] ;caught mon_ID
|
||||||
ld [$d11e],a
|
ld [$d11e],a
|
||||||
ld a,$3d
|
ld a,$3d
|
||||||
|
|
@ -430,11 +430,11 @@ ItemUseBall: ; d687 (3:5687)
|
||||||
jr z,.sendToBox
|
jr z,.sendToBox
|
||||||
xor a
|
xor a
|
||||||
ld [$cc49],a
|
ld [$cc49],a
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call AddPokemonToParty ;add mon to Party
|
call AddPokemonToParty ;add mon to Party
|
||||||
jr .End
|
jr .End
|
||||||
.sendToBox ;$5907
|
.sendToBox ;$5907
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call Func_e7a4
|
call Func_e7a4
|
||||||
ld hl,ItemUseBallText07
|
ld hl,ItemUseBallText07
|
||||||
ld a,[$d7f1]
|
ld a,[$d7f1]
|
||||||
|
|
@ -448,7 +448,7 @@ ItemUseBall: ; d687 (3:5687)
|
||||||
ld hl,ItemUseBallText05
|
ld hl,ItemUseBallText05
|
||||||
.printText0 ;$5922
|
.printText0 ;$5922
|
||||||
call PrintText
|
call PrintText
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
.End ;$5928
|
.End ;$5928
|
||||||
ld a,[W_BATTLETYPE]
|
ld a,[W_BATTLETYPE]
|
||||||
and a
|
and a
|
||||||
|
|
@ -2148,7 +2148,7 @@ ItemUseTMHM: ; e479 (3:6479)
|
||||||
pop af
|
pop af
|
||||||
pop af
|
pop af
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call GoPAL_SET_CF1C
|
call GoPAL_SET_CF1C
|
||||||
jp LoadScreenTilesFromBuffer1 ; restore saved screen
|
jp LoadScreenTilesFromBuffer1 ; restore saved screen
|
||||||
.checkIfAbleToLearnMove
|
.checkIfAbleToLearnMove
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ DisplayNamingScreen: ; 6596 (1:6596)
|
||||||
call CopyData
|
call CopyData
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call GoPAL_SET_CF1C
|
call GoPAL_SET_CF1C
|
||||||
call GBPalNormal
|
call GBPalNormal
|
||||||
xor a
|
xor a
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
|
||||||
call GoBackToPartyMenu
|
call GoBackToPartyMenu
|
||||||
jp .checkIfPokemonChosen
|
jp .checkIfPokemonChosen
|
||||||
.choseStats
|
.choseStats
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
xor a
|
xor a
|
||||||
ld [$cc49],a
|
ld [$cc49],a
|
||||||
ld a,$36
|
ld a,$36
|
||||||
|
|
@ -710,7 +710,7 @@ TrainerInfo_DrawVerticalLine: ; 135d8 (4:75d8)
|
||||||
StartMenu_SaveReset: ; 135e3 (4:75e3)
|
StartMenu_SaveReset: ; 135e3 (4:75e3)
|
||||||
ld a,[$d72e]
|
ld a,[$d72e]
|
||||||
bit 6,a ; is the player using the link feature?
|
bit 6,a ; is the player using the link feature?
|
||||||
jp nz,InitGame
|
jp nz,Init
|
||||||
ld a,$3f
|
ld a,$3f
|
||||||
call Predef ; save the game
|
call Predef ; save the game
|
||||||
call LoadScreenTilesFromBuffer2 ; restore saved screen
|
call LoadScreenTilesFromBuffer2 ; restore saved screen
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ asm_ef82: ; ef82 (3:6f82)
|
||||||
ld hl, $d730
|
ld hl, $d730
|
||||||
set 6, [hl]
|
set 6, [hl]
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call Func_3dbe
|
call Func_3dbe
|
||||||
ld a, $90
|
ld a, $90
|
||||||
ld [$ffb0], a
|
ld [$ffb0], a
|
||||||
|
|
|
||||||
|
|
@ -409,7 +409,7 @@ LoadSGBBorderAndPalettes: ; 7202b (1c:602b)
|
||||||
ld de, PalPacket_724d8
|
ld de, PalPacket_724d8
|
||||||
ld hl, SuperPalettes
|
ld hl, SuperPalettes
|
||||||
call Func_7210b
|
call Func_7210b
|
||||||
call ZeroVram
|
call ClearVram
|
||||||
ld hl, PalPacket_72538
|
ld hl, PalPacket_72538
|
||||||
jp SendSGBPacket
|
jp SendSGBPacket
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ ENDC
|
||||||
call PlayCry
|
call PlayCry
|
||||||
call WaitForSoundToFinish
|
call WaitForSoundToFinish
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
xor a
|
xor a
|
||||||
ld [$ffb0], a
|
ld [$ffb0], a
|
||||||
inc a
|
inc a
|
||||||
|
|
@ -306,7 +306,7 @@ Func_44dd: ; 44dd (1:44dd)
|
||||||
ld bc, $230
|
ld bc, $230
|
||||||
ld a, BANK(PlayerCharacterTitleGraphics)
|
ld a, BANK(PlayerCharacterTitleGraphics)
|
||||||
call FarCopyData2
|
call FarCopyData2
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
xor a
|
xor a
|
||||||
ld [wWhichTrade], a ; $cd3d
|
ld [wWhichTrade], a ; $cd3d
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ MonsNestText: ; 70f89 (1c:4f89)
|
||||||
db "'s NEST@"
|
db "'s NEST@"
|
||||||
|
|
||||||
LoadTownMap_Fly: ; 70f90 (1c:4f90)
|
LoadTownMap_Fly: ; 70f90 (1c:4f90)
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call LoadTownMap
|
call LoadTownMap
|
||||||
call LoadPlayerSpriteGraphics
|
call LoadPlayerSpriteGraphics
|
||||||
call LoadFontTilePatterns
|
call LoadFontTilePatterns
|
||||||
|
|
@ -343,7 +343,7 @@ Func_711ab: ; 711ab (1c:51ab)
|
||||||
ld [$d09b], a
|
ld [$d09b], a
|
||||||
call GBPalWhiteOut
|
call GBPalWhiteOut
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call LoadPlayerSpriteGraphics
|
call LoadPlayerSpriteGraphics
|
||||||
call LoadFontTilePatterns
|
call LoadFontTilePatterns
|
||||||
call UpdateSprites
|
call UpdateSprites
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
|
||||||
ld bc, $800
|
ld bc, $800
|
||||||
ld a, $7f
|
ld a, $7f
|
||||||
call FillMemory
|
call FillMemory
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
ld hl, $d730
|
ld hl, $d730
|
||||||
|
|
@ -281,7 +281,7 @@ Func_412d2: ; 412d2 (10:52d2)
|
||||||
call PlaySound
|
call PlaySound
|
||||||
jr .asm_412e7
|
jr .asm_412e7
|
||||||
.asm_41318
|
.asm_41318
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
|
|
@ -355,7 +355,7 @@ Func_41376: ; 41376 (10:5376)
|
||||||
xor a
|
xor a
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
call Func_41525
|
call Func_41525
|
||||||
jp CleanLCD_OAM
|
jp ClearSprites
|
||||||
|
|
||||||
Func_413c6: ; 413c6 (10:53c6)
|
Func_413c6: ; 413c6 (10:53c6)
|
||||||
call Func_41411
|
call Func_41411
|
||||||
|
|
@ -386,7 +386,7 @@ Func_413c6: ; 413c6 (10:53c6)
|
||||||
call Func_414c5
|
call Func_414c5
|
||||||
xor a
|
xor a
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||||
jp CleanLCD_OAM
|
jp ClearSprites
|
||||||
|
|
||||||
Func_41411: ; 41411 (10:5411)
|
Func_41411: ; 41411 (10:5411)
|
||||||
ld a, $1
|
ld a, $1
|
||||||
|
|
|
||||||
12
macros.asm
12
macros.asm
|
|
@ -11,6 +11,18 @@ page EQUS "db $49," ; Start a new Pokedex page.
|
||||||
dex EQUS "db $5f, $50" ; End a Pokedex entry.
|
dex EQUS "db $5f, $50" ; End a Pokedex entry.
|
||||||
|
|
||||||
|
|
||||||
|
homecall: MACRO
|
||||||
|
ld a, [H_LOADEDROMBANK]
|
||||||
|
push af
|
||||||
|
ld a, BANK(\1)
|
||||||
|
ld [H_LOADEDROMBANK], a
|
||||||
|
ld [MBC3RomBank], a
|
||||||
|
call \1
|
||||||
|
pop af
|
||||||
|
ld [H_LOADEDROMBANK], a
|
||||||
|
ld [MBC3RomBank], a
|
||||||
|
ENDM
|
||||||
|
|
||||||
callba: MACRO
|
callba: MACRO
|
||||||
ld b, BANK(\1)
|
ld b, BANK(\1)
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
|
|
|
||||||
583
main.asm
583
main.asm
|
|
@ -22,7 +22,7 @@ SECTION "rst38",ROM0[$38]
|
||||||
SECTION "vblank", ROM0[$40]
|
SECTION "vblank", ROM0[$40]
|
||||||
jp VBlank
|
jp VBlank
|
||||||
SECTION "lcdc", ROM0[$48]
|
SECTION "lcdc", ROM0[$48]
|
||||||
db $FF
|
rst $38
|
||||||
SECTION "timer", ROM0[$50]
|
SECTION "timer", ROM0[$50]
|
||||||
jp Timer
|
jp Timer
|
||||||
SECTION "serial", ROM0[$58]
|
SECTION "serial", ROM0[$58]
|
||||||
|
|
@ -30,47 +30,50 @@ SECTION "serial",ROM0[$58]
|
||||||
SECTION "joypad", ROM0[$60]
|
SECTION "joypad", ROM0[$60]
|
||||||
reti
|
reti
|
||||||
|
|
||||||
|
|
||||||
SECTION "bank0",ROM0[$61]
|
SECTION "bank0",ROM0[$61]
|
||||||
|
|
||||||
DisableLCD:: ; 0061 (0:0061)
|
DisableLCD::
|
||||||
xor a
|
xor a
|
||||||
ld [$ff0f],a
|
ld [rIF], a
|
||||||
ld a,[$ffff]
|
ld a, [rIE]
|
||||||
ld b, a
|
ld b, a
|
||||||
res 0, a
|
res 0, a
|
||||||
ld [$ffff],a
|
ld [rIE], a
|
||||||
.waitVBlank
|
|
||||||
ld a,[$ff44]
|
.wait
|
||||||
cp a,$91
|
ld a, [rLY]
|
||||||
jr nz,.waitVBlank
|
cp LY_VBLANK
|
||||||
ld a,[$ff40]
|
jr nz, .wait
|
||||||
and a,$7f ; res 7,a
|
|
||||||
ld [$ff40],a
|
ld a, [rLCDC]
|
||||||
|
and $ff ^ rLCDC_ENABLE_MASK
|
||||||
|
ld [rLCDC], a
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [$ffff],a
|
ld [rIE], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
EnableLCD:: ; 007b (0:007b)
|
EnableLCD::
|
||||||
ld a,[$ff40]
|
ld a, [rLCDC]
|
||||||
set 7,a
|
set rLCDC_ENABLE, a
|
||||||
ld [$ff40],a
|
ld [rLCDC], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
CleanLCD_OAM:: ; 0082 (0:0082)
|
ClearSprites::
|
||||||
xor a
|
xor a
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld b,$a0
|
ld b, 40 * 4
|
||||||
.loop
|
.loop
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ResetLCD_OAM:: ; 008d (0:008d)
|
HideSprites::
|
||||||
ld a,$a0
|
ld a, 160
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld de,$0004
|
ld de, 4
|
||||||
ld b,$28
|
ld b, 40
|
||||||
.loop
|
.loop
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
add hl, de
|
add hl, de
|
||||||
|
|
@ -78,21 +81,22 @@ ResetLCD_OAM:: ; 008d (0:008d)
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
FarCopyData:: ; 009d (0:009d)
|
FarCopyData::
|
||||||
; copy bc bytes of data from a:hl to de
|
; Copy bc bytes from a:hl to de.
|
||||||
ld [$CEE9],a ; save future bank # for later
|
ld [wBuffer], a
|
||||||
ld a,[H_LOADEDROMBANK] ; get current bank #
|
ld a, [H_LOADEDROMBANK]
|
||||||
push af
|
push af
|
||||||
ld a,[$CEE9] ; get future bank #, switch
|
ld a, [wBuffer]
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
call CopyData
|
call CopyData
|
||||||
pop af ; okay, done, time to switch back
|
pop af
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
ret
|
ret
|
||||||
CopyData:: ; 00b5 (0:00b5)
|
|
||||||
; copy bc bytes of data from hl to de
|
CopyData::
|
||||||
|
; Copy bc bytes from hl to de.
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
|
|
@ -102,106 +106,86 @@ CopyData:: ; 00b5 (0:00b5)
|
||||||
jr nz, CopyData
|
jr nz, CopyData
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION "romheader",ROM0[$100]
|
|
||||||
|
SECTION "Entry", ROM0[$100]
|
||||||
nop
|
nop
|
||||||
jp Start
|
jp Start
|
||||||
|
|
||||||
SECTION "start",ROM0[$150]
|
|
||||||
Start:: ; 0150 (0:0150)
|
SECTION "Start", ROM0[$150]
|
||||||
cp $11 ; value that indicates Gameboy Color
|
|
||||||
jr z,.gbcDetected
|
Start::
|
||||||
|
cp GBC
|
||||||
|
jr z, .gbc
|
||||||
xor a
|
xor a
|
||||||
jr .storeValue
|
jr .ok
|
||||||
.gbcDetected
|
.gbc
|
||||||
ld a,$00
|
ld a, 0
|
||||||
.storeValue
|
.ok
|
||||||
ld [$cf1a],a ; same value ($00) either way
|
ld [wGBC], a
|
||||||
jp InitGame
|
jp Init
|
||||||
|
|
||||||
|
|
||||||
|
ReadJoypad::
|
||||||
|
; Poll joypad input.
|
||||||
|
; Unlike the hardware register, button
|
||||||
|
; presses are indicated by a set bit.
|
||||||
|
|
||||||
|
ld a, 1 << 5 ; select direction keys
|
||||||
|
ld c, 0
|
||||||
|
|
||||||
; this function directly reads the joypad I/O register
|
|
||||||
; it reads many times in order to give the joypad a chance to stabilize
|
|
||||||
; it saves a result in [$fff8] in the following format
|
|
||||||
; (set bit indicates pressed button)
|
|
||||||
; bit 0 - A button
|
|
||||||
; bit 1 - B button
|
|
||||||
; bit 2 - Select button
|
|
||||||
; bit 3 - Start button
|
|
||||||
; bit 4 - Right
|
|
||||||
; bit 5 - Left
|
|
||||||
; bit 6 - Up
|
|
||||||
; bit 7 - Down
|
|
||||||
ReadJoypadRegister:: ; 015f (0:015f)
|
|
||||||
ld a,%00100000 ; select direction keys
|
|
||||||
ld c,$00
|
|
||||||
ld [rJOYP], a
|
ld [rJOYP], a
|
||||||
|
rept 6
|
||||||
ld a, [rJOYP]
|
ld a, [rJOYP]
|
||||||
ld a,[rJOYP]
|
endr
|
||||||
ld a,[rJOYP]
|
cpl
|
||||||
ld a,[rJOYP]
|
and %1111
|
||||||
ld a,[rJOYP]
|
swap a
|
||||||
ld a,[rJOYP]
|
|
||||||
cpl ; complement the result so that a set bit indicates a pressed key
|
|
||||||
and a,%00001111
|
|
||||||
swap a ; put direction keys in upper nibble
|
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a,%00010000 ; select button keys
|
|
||||||
|
ld a, 1 << 4 ; select button keys
|
||||||
ld [rJOYP], a
|
ld [rJOYP], a
|
||||||
|
rept 10
|
||||||
ld a, [rJOYP]
|
ld a, [rJOYP]
|
||||||
ld a,[rJOYP]
|
endr
|
||||||
ld a,[rJOYP]
|
cpl
|
||||||
ld a,[rJOYP]
|
and %1111
|
||||||
ld a,[rJOYP]
|
or b
|
||||||
ld a,[rJOYP]
|
|
||||||
ld a,[rJOYP]
|
ld [H_JOYPADSTATE], a
|
||||||
ld a,[rJOYP]
|
|
||||||
ld a,[rJOYP]
|
ld a, 1 << 4 + 1 << 5 ; deselect keys
|
||||||
ld a,[rJOYP]
|
|
||||||
cpl ; complement the result so that a set bit indicates a pressed key
|
|
||||||
and a,%00001111
|
|
||||||
or b ; put button keys in lower nibble
|
|
||||||
ld [H_JOYPADSTATE],a ; save joypad state
|
|
||||||
ld a,%00110000 ; unselect all keys
|
|
||||||
ld [rJOYP], a
|
ld [rJOYP], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; function to update the joypad state variables
|
GetJoypadState::
|
||||||
; output:
|
; Update the joypad state variables:
|
||||||
; [H_NEWLYRELEASEDBUTTONS] = keys released since last time
|
; [H_NEWLYRELEASEDBUTTONS] keys released since last time
|
||||||
; [H_NEWLYPRESSEDBUTTONS] = keys pressed since last time
|
; [H_NEWLYPRESSEDBUTTONS] keys pressed since last time
|
||||||
; [H_CURRENTPRESSEDBUTTONS] = currently pressed keys
|
; [H_CURRENTPRESSEDBUTTONS] currently pressed keys
|
||||||
GetJoypadState:: ; 019a (0:019a)
|
homecall _GetJoypadState
|
||||||
ld a, [H_LOADEDROMBANK]
|
|
||||||
push af
|
|
||||||
ld a,Bank(_GetJoypadState)
|
|
||||||
ld [H_LOADEDROMBANK],a
|
|
||||||
ld [$2000],a
|
|
||||||
call _GetJoypadState
|
|
||||||
pop af
|
|
||||||
ld [H_LOADEDROMBANK],a
|
|
||||||
ld [$2000],a
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
INCLUDE "data/map_header_pointers.asm"
|
INCLUDE "data/map_header_pointers.asm"
|
||||||
|
|
||||||
; this function calls a function that takes necessary actions
|
HandleMidJump::
|
||||||
; at the beginning of each overworld loop iteration as the player jumps
|
; Handle the player jumping down
|
||||||
; down a ledge
|
; a ledge in the overworld.
|
||||||
; it also ends the jump when it's completed
|
|
||||||
HandleMidJump:: ; 039e (0:039e)
|
|
||||||
ld b, BANK(_HandleMidJump)
|
ld b, BANK(_HandleMidJump)
|
||||||
ld hl, _HandleMidJump
|
ld hl, _HandleMidJump
|
||||||
jp Bankswitch
|
jp Bankswitch
|
||||||
|
|
||||||
; this is jumped to immediately after loading a save / starting a new game / loading a new map
|
EnterMap::
|
||||||
EnterMap:: ; 03a6 (0:03a6)
|
; Load a new map.
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [wJoypadForbiddenButtonsMask], a
|
ld [wJoypadForbiddenButtonsMask], a
|
||||||
call LoadMapData ; load map data
|
call LoadMapData
|
||||||
callba Func_c335 ; initialize some variables
|
callba Func_c335 ; initialize map variables
|
||||||
ld hl, $d72c
|
ld hl, $d72c
|
||||||
bit 0, [hl]
|
bit 0, [hl]
|
||||||
jr z, .doNotCountSteps
|
jr z, .doNotCountSteps
|
||||||
ld a,$03
|
ld a, 3
|
||||||
ld [$d13c], a ; some kind of step counter (counts up to 3 steps?)
|
ld [$d13c], a ; some kind of step counter (counts up to 3 steps?)
|
||||||
.doNotCountSteps
|
.doNotCountSteps
|
||||||
ld hl, $d72e
|
ld hl, $d72e
|
||||||
|
|
@ -211,25 +195,25 @@ EnterMap:: ; 03a6 (0:03a6)
|
||||||
call nz, MapEntryAfterBattle
|
call nz, MapEntryAfterBattle
|
||||||
ld hl, $d732
|
ld hl, $d732
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
and a,$18
|
and 1 << 4 | 1 << 3
|
||||||
jr z, .didNotFlyOrTeleportIn
|
jr z, .didNotFlyOrTeleportIn
|
||||||
res 3, [hl]
|
res 3, [hl]
|
||||||
callba Func_70510 ; display fly/teleport in graphical effect
|
callba Func_70510 ; display fly/teleport in graphical effect
|
||||||
call UpdateSprites ; move sprites
|
call UpdateSprites
|
||||||
.didNotFlyOrTeleportIn
|
.didNotFlyOrTeleportIn
|
||||||
callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
|
callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
|
||||||
ld hl, $d72d
|
ld hl, $d72d
|
||||||
res 5, [hl]
|
res 5, [hl]
|
||||||
call UpdateSprites ; move sprites
|
call UpdateSprites
|
||||||
ld hl, $d126
|
ld hl, $d126
|
||||||
set 5, [hl]
|
set 5, [hl]
|
||||||
set 6, [hl]
|
set 6, [hl]
|
||||||
xor a
|
xor a
|
||||||
ld [wJoypadForbiddenButtonsMask], a
|
ld [wJoypadForbiddenButtonsMask], a
|
||||||
|
|
||||||
OverworldLoop:: ; 03ff (0:03ff)
|
OverworldLoop::
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
OverworldLoopLessDelay:: ; 0402 (0:0402)
|
OverworldLoopLessDelay::
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
call LoadGBPal
|
call LoadGBPal
|
||||||
ld a,[$d736]
|
ld a,[$d736]
|
||||||
|
|
@ -2826,7 +2810,7 @@ DisplayPartyMenu:: ; 13fc (0:13fc)
|
||||||
xor a
|
xor a
|
||||||
ld [$ffd7],a
|
ld [$ffd7],a
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
call PartyMenuInit
|
call PartyMenuInit
|
||||||
call DrawPartyMenu
|
call DrawPartyMenu
|
||||||
jp HandlePartyMenuInput
|
jp HandlePartyMenuInput
|
||||||
|
|
@ -4646,34 +4630,43 @@ VBlankCopyBgMap:: ; 1de1 (0:1de1)
|
||||||
ld [H_VBCOPYBGSRC],a ; disable transfer so it doesn't continue next V-blank
|
ld [H_VBCOPYBGSRC],a ; disable transfer so it doesn't continue next V-blank
|
||||||
jr TransferBgRows
|
jr TransferBgRows
|
||||||
|
|
||||||
; This function copies ([H_VBCOPYDOUBLESIZE] * 8) source bytes
|
|
||||||
|
VBlankCopyDouble::
|
||||||
|
; Copy [H_VBCOPYDOUBLESIZE] 1bpp tiles
|
||||||
; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST.
|
; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST.
|
||||||
; It copies each source byte to the destination twice (next to each other).
|
|
||||||
; The function updates the source and destination addresses, so the transfer
|
; While we're here, convert to 2bpp.
|
||||||
; can be continued easily by repeatingly calling this function.
|
; The process is straightforward:
|
||||||
VBlankCopyDouble:: ; 1e02 (0:1e02)
|
; copy each byte twice.
|
||||||
|
|
||||||
ld a, [H_VBCOPYDOUBLESIZE]
|
ld a, [H_VBCOPYDOUBLESIZE]
|
||||||
and a ; are there any bytes to copy?
|
and a
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
ld hl, [sp + 0]
|
ld hl, [sp + 0]
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_SPTEMP], a
|
ld [H_SPTEMP], a
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_SPTEMP + 1],a ; save stack pointer
|
ld [H_SPTEMP + 1], a
|
||||||
|
|
||||||
ld a, [H_VBCOPYDOUBLESRC]
|
ld a, [H_VBCOPYDOUBLESRC]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [H_VBCOPYDOUBLESRC + 1]
|
ld a, [H_VBCOPYDOUBLESRC + 1]
|
||||||
ld h, a
|
ld h, a
|
||||||
ld sp, hl
|
ld sp, hl
|
||||||
|
|
||||||
ld a, [H_VBCOPYDOUBLEDEST]
|
ld a, [H_VBCOPYDOUBLEDEST]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [H_VBCOPYDOUBLEDEST + 1]
|
ld a, [H_VBCOPYDOUBLEDEST + 1]
|
||||||
ld h, a
|
ld h, a
|
||||||
|
|
||||||
ld a, [H_VBCOPYDOUBLESIZE]
|
ld a, [H_VBCOPYDOUBLESIZE]
|
||||||
ld b, a
|
ld b, a
|
||||||
xor a
|
xor a ; transferred
|
||||||
ld [H_VBCOPYDOUBLESIZE],a ; disable transfer so it doesn't continue next V-blank
|
ld [H_VBCOPYDOUBLESIZE], a
|
||||||
|
|
||||||
.loop
|
.loop
|
||||||
|
rept 3
|
||||||
pop de
|
pop de
|
||||||
ld [hl], e
|
ld [hl], e
|
||||||
inc l
|
inc l
|
||||||
|
|
@ -4683,24 +4676,8 @@ VBlankCopyDouble:: ; 1e02 (0:1e02)
|
||||||
inc l
|
inc l
|
||||||
ld [hl], d
|
ld [hl], d
|
||||||
inc l
|
inc l
|
||||||
pop de
|
endr
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
pop de
|
||||||
ld [hl], e
|
ld [hl], e
|
||||||
inc l
|
inc l
|
||||||
|
|
@ -4712,83 +4689,70 @@ VBlankCopyDouble:: ; 1e02 (0:1e02)
|
||||||
inc hl
|
inc hl
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
|
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_VBCOPYDOUBLEDEST], a
|
ld [H_VBCOPYDOUBLEDEST], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_VBCOPYDOUBLEDEST + 1],a ; update destination address
|
ld [H_VBCOPYDOUBLEDEST + 1], a
|
||||||
|
|
||||||
ld hl, [sp + 0]
|
ld hl, [sp + 0]
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_VBCOPYDOUBLESRC], a
|
ld [H_VBCOPYDOUBLESRC], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_VBCOPYDOUBLESRC + 1],a ; update source address
|
ld [H_VBCOPYDOUBLESRC + 1], a
|
||||||
|
|
||||||
ld a, [H_SPTEMP]
|
ld a, [H_SPTEMP]
|
||||||
ld h, a
|
ld h, a
|
||||||
ld a, [H_SPTEMP + 1]
|
ld a, [H_SPTEMP + 1]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld sp,hl ; restore stack pointer
|
ld sp, hl
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; Copies ([H_VBCOPYSIZE] * 16) bytes from H_VBCOPYSRC to H_VBCOPYDEST.
|
|
||||||
; The function updates the source and destination addresses, so the transfer
|
VBlankCopy::
|
||||||
; can be continued easily by repeatingly calling this function.
|
; Copy [H_VBCOPYSIZE] 2bpp tiles
|
||||||
VBlankCopy:: ; 1e5e (0:1e5e)
|
; from H_VBCOPYSRC to H_VBCOPYDEST.
|
||||||
|
|
||||||
|
; Source and destination addresses
|
||||||
|
; are updated, so transfer can
|
||||||
|
; continue in subsequent calls.
|
||||||
|
|
||||||
ld a, [H_VBCOPYSIZE]
|
ld a, [H_VBCOPYSIZE]
|
||||||
and a ; are there any bytes to copy?
|
and a
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
ld hl, [sp + 0]
|
ld hl, [sp + 0]
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_SPTEMP], a
|
ld [H_SPTEMP], a
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_SPTEMP + 1],a ; save stack pointer
|
ld [H_SPTEMP + 1], a
|
||||||
|
|
||||||
ld a, [H_VBCOPYSRC]
|
ld a, [H_VBCOPYSRC]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [H_VBCOPYSRC + 1]
|
ld a, [H_VBCOPYSRC + 1]
|
||||||
ld h, a
|
ld h, a
|
||||||
ld sp, hl
|
ld sp, hl
|
||||||
|
|
||||||
ld a, [H_VBCOPYDEST]
|
ld a, [H_VBCOPYDEST]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [H_VBCOPYDEST + 1]
|
ld a, [H_VBCOPYDEST + 1]
|
||||||
ld h, a
|
ld h, a
|
||||||
|
|
||||||
ld a, [H_VBCOPYSIZE]
|
ld a, [H_VBCOPYSIZE]
|
||||||
ld b, a
|
ld b, a
|
||||||
xor a
|
xor a ; transferred
|
||||||
ld [H_VBCOPYSIZE],a ; disable transfer so it doesn't continue next V-blank
|
ld [H_VBCOPYSIZE], a
|
||||||
|
|
||||||
.loop
|
.loop
|
||||||
|
rept 7
|
||||||
pop de
|
pop de
|
||||||
ld [hl], e
|
ld [hl], e
|
||||||
inc l
|
inc l
|
||||||
ld [hl], d
|
ld [hl], d
|
||||||
inc l
|
inc l
|
||||||
pop de
|
endr
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
|
||||||
ld [hl],e
|
|
||||||
inc l
|
|
||||||
ld [hl],d
|
|
||||||
inc l
|
|
||||||
pop de
|
pop de
|
||||||
ld [hl], e
|
ld [hl], e
|
||||||
inc l
|
inc l
|
||||||
|
|
@ -4796,55 +4760,66 @@ VBlankCopy:: ; 1e5e (0:1e5e)
|
||||||
inc hl
|
inc hl
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
|
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_VBCOPYDEST], a
|
ld [H_VBCOPYDEST], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_VBCOPYDEST + 1], a
|
ld [H_VBCOPYDEST + 1], a
|
||||||
|
|
||||||
ld hl, [sp + 0]
|
ld hl, [sp + 0]
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [H_VBCOPYSRC], a
|
ld [H_VBCOPYSRC], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [H_VBCOPYSRC + 1], a
|
ld [H_VBCOPYSRC + 1], a
|
||||||
|
|
||||||
ld a, [H_SPTEMP]
|
ld a, [H_SPTEMP]
|
||||||
ld h, a
|
ld h, a
|
||||||
ld a, [H_SPTEMP + 1]
|
ld a, [H_SPTEMP + 1]
|
||||||
ld l, a
|
ld l, a
|
||||||
ld sp,hl ; restore stack pointer
|
ld sp, hl
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; This function updates the moving water and flower background tiles.
|
|
||||||
UpdateMovingBgTiles:: ; 1ebe (0:1ebe)
|
UpdateMovingBgTiles::
|
||||||
|
; Animate water and flower
|
||||||
|
; tiles in the overworld.
|
||||||
|
|
||||||
ld a, [$ffd7]
|
ld a, [$ffd7]
|
||||||
and a
|
and a
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
ld a, [$ffd8]
|
ld a, [$ffd8]
|
||||||
inc a
|
inc a
|
||||||
ld [$ffd8], a
|
ld [$ffd8], a
|
||||||
cp a,20
|
cp 20
|
||||||
ret c
|
ret c
|
||||||
cp a,21
|
cp 21
|
||||||
jr z,.updateFlowerTile
|
jr z, .flower
|
||||||
ld hl,$9140 ; water tile pattern VRAM location
|
|
||||||
ld c,16 ; number of bytes in a tile pattern
|
ld hl, $9140
|
||||||
|
ld c, $10
|
||||||
|
|
||||||
ld a, [$d085]
|
ld a, [$d085]
|
||||||
inc a
|
inc a
|
||||||
and a,$07
|
and 7
|
||||||
ld [$d085], a
|
ld [$d085], a
|
||||||
and a,$04
|
|
||||||
jr nz,.rotateWaterLeftLoop
|
and 4
|
||||||
.rotateWaterRightloop
|
jr nz, .left
|
||||||
|
.right
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
rrca
|
rrca
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec c
|
dec c
|
||||||
jr nz,.rotateWaterRightloop
|
jr nz, .right
|
||||||
jr .done
|
jr .done
|
||||||
.rotateWaterLeftLoop
|
.left
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
rlca
|
rlca
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec c
|
dec c
|
||||||
jr nz,.rotateWaterLeftLoop
|
jr nz, .left
|
||||||
.done
|
.done
|
||||||
ld a, [$ffd7]
|
ld a, [$ffd7]
|
||||||
rrca
|
rrca
|
||||||
|
|
@ -4852,46 +4827,46 @@ UpdateMovingBgTiles:: ; 1ebe (0:1ebe)
|
||||||
xor a
|
xor a
|
||||||
ld [$ffd8], a
|
ld [$ffd8], a
|
||||||
ret
|
ret
|
||||||
.updateFlowerTile
|
|
||||||
|
.flower
|
||||||
xor a
|
xor a
|
||||||
ld [$ffd8], a
|
ld [$ffd8], a
|
||||||
|
|
||||||
ld a, [$d085]
|
ld a, [$d085]
|
||||||
and a,$03
|
and 3
|
||||||
cp a,2
|
cp 2
|
||||||
ld hl,FlowerTilePattern1
|
ld hl, FlowerTile1
|
||||||
jr c,.writeTilePatternToVram
|
jr c, .copy
|
||||||
ld hl,FlowerTilePattern2
|
ld hl, FlowerTile2
|
||||||
jr z,.writeTilePatternToVram
|
jr z, .copy
|
||||||
ld hl,FlowerTilePattern3
|
ld hl, FlowerTile3
|
||||||
.writeTilePatternToVram
|
.copy
|
||||||
ld de,$9030 ; flower tile pattern VRAM location
|
ld de, $9030
|
||||||
ld c,16 ; number of bytes in a tile pattern
|
ld c, $10
|
||||||
.flowerTileLoop
|
.loop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
dec c
|
dec c
|
||||||
jr nz,.flowerTileLoop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
FlowerTilePattern1:: ; 1f19 (0:1f19)
|
FlowerTile1: INCBIN "gfx/tilesets/flower/flower1.2bpp"
|
||||||
INCBIN "gfx/tilesets/flower/flower1.2bpp"
|
FlowerTile2: INCBIN "gfx/tilesets/flower/flower2.2bpp"
|
||||||
|
FlowerTile3: INCBIN "gfx/tilesets/flower/flower3.2bpp"
|
||||||
|
|
||||||
FlowerTilePattern2:: ; 1f29 (0:1f29)
|
|
||||||
INCBIN "gfx/tilesets/flower/flower2.2bpp"
|
|
||||||
|
|
||||||
FlowerTilePattern3:: ; 1f39 (0:1f39)
|
SoftReset::
|
||||||
INCBIN "gfx/tilesets/flower/flower3.2bpp"
|
|
||||||
|
|
||||||
SoftReset:: ; 1f49 (0:1f49)
|
|
||||||
call StopAllSounds
|
call StopAllSounds
|
||||||
call GBPalWhiteOut
|
call GBPalWhiteOut
|
||||||
ld c, $20
|
ld c, $20
|
||||||
call DelayFrames
|
call DelayFrames
|
||||||
; fallthrough
|
; fallthrough
|
||||||
|
|
||||||
; initialization code
|
Init::
|
||||||
; explanation for %11100011 (value stored in rLCDC)
|
; Program init.
|
||||||
|
|
||||||
|
rLCDC_DEFAULT EQU %11100011
|
||||||
; * LCD enabled
|
; * LCD enabled
|
||||||
; * Window tile map at $9C00
|
; * Window tile map at $9C00
|
||||||
; * Window display enabled
|
; * Window display enabled
|
||||||
|
|
@ -4900,12 +4875,12 @@ SoftReset:: ; 1f49 (0:1f49)
|
||||||
; * 8x8 OBJ size
|
; * 8x8 OBJ size
|
||||||
; * OBJ display enabled
|
; * OBJ display enabled
|
||||||
; * BG display enabled
|
; * BG display enabled
|
||||||
InitGame:: ; 1f54 (0:1f54)
|
|
||||||
di
|
di
|
||||||
; zero I/O registers
|
|
||||||
xor a
|
xor a
|
||||||
ld [$ff0f],a
|
ld [rIF], a
|
||||||
ld [$ffff],a
|
ld [rIE], a
|
||||||
ld [$ff43], a
|
ld [$ff43], a
|
||||||
ld [$ff42], a
|
ld [$ff42], a
|
||||||
ld [$ff01], a
|
ld [$ff01], a
|
||||||
|
|
@ -4917,55 +4892,70 @@ InitGame:: ; 1f54 (0:1f54)
|
||||||
ld [$ff47], a
|
ld [$ff47], a
|
||||||
ld [$ff48], a
|
ld [$ff48], a
|
||||||
ld [$ff49], a
|
ld [$ff49], a
|
||||||
ld a,%10000000 ; enable LCD
|
|
||||||
|
ld a, rLCDC_ENABLE_MASK
|
||||||
ld [rLCDC], a
|
ld [rLCDC], a
|
||||||
call DisableLCD ; why enable then disable?
|
call DisableLCD
|
||||||
ld sp,$dfff ; initialize stack pointer
|
|
||||||
|
ld sp, wStack
|
||||||
|
|
||||||
ld hl, $c000 ; start of WRAM
|
ld hl, $c000 ; start of WRAM
|
||||||
ld bc, $2000 ; size of WRAM
|
ld bc, $2000 ; size of WRAM
|
||||||
.zeroWramLoop
|
.loop
|
||||||
ld [hl], 0
|
ld [hl], 0
|
||||||
inc hl
|
inc hl
|
||||||
dec bc
|
dec bc
|
||||||
ld a, b
|
ld a, b
|
||||||
or c
|
or c
|
||||||
jr nz,.zeroWramLoop
|
jr nz, .loop
|
||||||
call ZeroVram
|
|
||||||
|
call ClearVram
|
||||||
|
|
||||||
ld hl, $ff80
|
ld hl, $ff80
|
||||||
ld bc,$007f
|
ld bc, $ffff - $ff80
|
||||||
call FillMemory ; zero HRAM
|
call FillMemory
|
||||||
call CleanLCD_OAM ; this is unnecessary since it was already cleared above
|
|
||||||
|
call ClearSprites
|
||||||
|
|
||||||
ld a, Bank(WriteDMACodeToHRAM)
|
ld a, Bank(WriteDMACodeToHRAM)
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
call WriteDMACodeToHRAM ; copy DMA code to HRAM
|
call WriteDMACodeToHRAM
|
||||||
|
|
||||||
xor a
|
xor a
|
||||||
ld [$ffd7], a
|
ld [$ffd7], a
|
||||||
ld [$ff41], a
|
ld [$ff41], a
|
||||||
ld [$ffae], a
|
ld [$ffae], a
|
||||||
ld [$ffaf], a
|
ld [$ffaf], a
|
||||||
ld [$ff0f], a
|
ld [$ff0f], a
|
||||||
ld a,%00001101 ; enable V-blank, timer, and serial interrupts
|
ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
|
||||||
ld [rIE], a
|
ld [rIE], a
|
||||||
ld a,$90 ; put the window off the screen
|
|
||||||
|
ld a, 144 ; move the window off-screen
|
||||||
ld [$ffb0], a
|
ld [$ffb0], a
|
||||||
ld [rWY], a
|
ld [rWY], a
|
||||||
ld a,$07
|
ld a, 7
|
||||||
ld [rWX], a
|
ld [rWX], a
|
||||||
|
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [$ffaa], a
|
ld [$ffaa], a
|
||||||
ld h,$98
|
|
||||||
call ClearBgMap ; fill $9800-$9BFF (BG tile map) with $7F tiles
|
ld h, $9800 / $100 ; bg map 0
|
||||||
ld h,$9c
|
call ClearBgMap
|
||||||
call ClearBgMap ; fill $9C00-$9FFF (Window tile map) with $7F tiles
|
ld h, $9c00 / $100 ; bg map 1
|
||||||
ld a,%11100011
|
call ClearBgMap
|
||||||
ld [rLCDC],a ; enabled LCD
|
|
||||||
|
ld a, rLCDC_DEFAULT
|
||||||
|
ld [rLCDC], a
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [H_SOFTRESETCOUNTER], a
|
ld [H_SOFTRESETCOUNTER], a
|
||||||
call StopAllSounds
|
call StopAllSounds
|
||||||
|
|
||||||
ei
|
ei
|
||||||
ld a,$40
|
|
||||||
call Predef ; SGB border
|
ld a, $40 ; PREDEF_SGB_BORDER
|
||||||
|
call Predef
|
||||||
|
|
||||||
ld a, $1f
|
ld a, $1f
|
||||||
ld [$c0ef], a
|
ld [$c0ef], a
|
||||||
ld [$c0f0], a
|
ld [$c0f0], a
|
||||||
|
|
@ -4975,25 +4965,27 @@ InitGame:: ; 1f54 (0:1f54)
|
||||||
ld [$ffbc], a
|
ld [$ffbc], a
|
||||||
dec a
|
dec a
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
ld a,$32
|
|
||||||
call Predef ; display the copyrights, GameFreak logo, and battle animation
|
ld a, $32 ; PREDEF_INTRO
|
||||||
|
call Predef
|
||||||
|
|
||||||
call DisableLCD
|
call DisableLCD
|
||||||
call ZeroVram
|
call ClearVram
|
||||||
call GBPalNormal
|
call GBPalNormal
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a,%11100011
|
ld a, rLCDC_DEFAULT
|
||||||
ld [rLCDC],a ; enable LCD
|
ld [rLCDC], a
|
||||||
|
|
||||||
jp SetDefaultNamesBeforeTitlescreen
|
jp SetDefaultNamesBeforeTitlescreen
|
||||||
|
|
||||||
; zeroes all VRAM
|
ClearVram:
|
||||||
ZeroVram:: ; 2004 (0:2004)
|
|
||||||
ld hl, $8000
|
ld hl, $8000
|
||||||
ld bc, $2000
|
ld bc, $2000
|
||||||
xor a
|
xor a
|
||||||
jp FillMemory
|
jp FillMemory
|
||||||
|
|
||||||
; immediately stops all sounds
|
|
||||||
StopAllSounds:: ; 200e (0:200e)
|
StopAllSounds::
|
||||||
ld a, Bank(Func_9876)
|
ld a, Bank(Func_9876)
|
||||||
ld [$c0ef], a
|
ld [$c0ef], a
|
||||||
ld [$c0f0], a
|
ld [$c0f0], a
|
||||||
|
|
@ -5004,92 +4996,117 @@ StopAllSounds:: ; 200e (0:200e)
|
||||||
dec a
|
dec a
|
||||||
jp PlaySound
|
jp PlaySound
|
||||||
|
|
||||||
VBlank:: ; 2024 (0:2024)
|
|
||||||
|
VBlank::
|
||||||
|
|
||||||
push af
|
push af
|
||||||
push bc
|
push bc
|
||||||
push de
|
push de
|
||||||
push hl
|
push hl
|
||||||
ld a,[H_LOADEDROMBANK] ; current ROM bank
|
|
||||||
|
ld a, [H_LOADEDROMBANK]
|
||||||
ld [$d122], a
|
ld [$d122], a
|
||||||
|
|
||||||
ld a, [$ffae]
|
ld a, [$ffae]
|
||||||
ld [rSCX], a
|
ld [rSCX], a
|
||||||
ld a, [$ffaf]
|
ld a, [$ffaf]
|
||||||
ld [rSCY], a
|
ld [rSCY], a
|
||||||
|
|
||||||
ld a, [$d0a0]
|
ld a, [$d0a0]
|
||||||
and a
|
and a
|
||||||
jr nz,.doVramTransfers
|
jr nz, .ok
|
||||||
ld a, [$ffb0]
|
ld a, [$ffb0]
|
||||||
ld [rWY], a
|
ld [rWY], a
|
||||||
.doVramTransfers
|
.ok
|
||||||
|
|
||||||
call AutoBgMapTransfer
|
call AutoBgMapTransfer
|
||||||
call VBlankCopyBgMap
|
call VBlankCopyBgMap
|
||||||
call RedrawExposedScreenEdge
|
call RedrawExposedScreenEdge
|
||||||
call VBlankCopy
|
call VBlankCopy
|
||||||
call VBlankCopyDouble
|
call VBlankCopyDouble
|
||||||
call UpdateMovingBgTiles
|
call UpdateMovingBgTiles
|
||||||
call $ff80 ; OAM DMA
|
call $ff80 ; hOAMDMA
|
||||||
ld a, Bank(PrepareOAMData)
|
ld a, Bank(PrepareOAMData)
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
call PrepareOAMData ; update OAM buffer with current sprite data
|
call PrepareOAMData
|
||||||
|
|
||||||
|
; VBlank-sensitive operations end.
|
||||||
|
|
||||||
call GenRandom
|
call GenRandom
|
||||||
|
|
||||||
ld a, [H_VBLANKOCCURRED]
|
ld a, [H_VBLANKOCCURRED]
|
||||||
and a
|
and a
|
||||||
jr z,.next
|
jr z, .vblanked
|
||||||
xor a
|
xor a
|
||||||
ld [H_VBLANKOCCURRED], a
|
ld [H_VBLANKOCCURRED], a
|
||||||
.next
|
.vblanked
|
||||||
|
|
||||||
ld a, [H_FRAMECOUNTER]
|
ld a, [H_FRAMECOUNTER]
|
||||||
and a
|
and a
|
||||||
jr z,.handleMusic
|
jr z, .decced
|
||||||
dec a
|
dec a
|
||||||
ld [H_FRAMECOUNTER], a
|
ld [H_FRAMECOUNTER], a
|
||||||
.handleMusic
|
.decced
|
||||||
|
|
||||||
call Func_28cb
|
call Func_28cb
|
||||||
|
|
||||||
ld a, [$c0ef] ; music ROM bank
|
ld a, [$c0ef] ; music ROM bank
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
cp a,$02
|
|
||||||
jr nz,.checkIfBank08
|
cp BANK(Func_9103)
|
||||||
.bank02
|
jr nz, .notbank2
|
||||||
|
.bank2
|
||||||
call Func_9103
|
call Func_9103
|
||||||
jr .afterMusic
|
jr .afterMusic
|
||||||
.checkIfBank08
|
.notbank2
|
||||||
cp a,$08
|
cp 8
|
||||||
jr nz, .bank1F
|
jr nz, .bank1F
|
||||||
.bank08
|
.bank8
|
||||||
call Func_2136e
|
call Func_2136e
|
||||||
call Func_21879
|
call Func_21879
|
||||||
jr .afterMusic
|
jr .afterMusic
|
||||||
.bank1F
|
.bank1F
|
||||||
call Func_7d177
|
call Func_7d177
|
||||||
.afterMusic
|
.afterMusic
|
||||||
|
|
||||||
callba Func_18dee ; keep track of time played
|
callba Func_18dee ; keep track of time played
|
||||||
|
|
||||||
ld a, [$fff9]
|
ld a, [$fff9]
|
||||||
and a
|
and a
|
||||||
call z,ReadJoypadRegister
|
call z, ReadJoypad
|
||||||
|
|
||||||
ld a, [$d122]
|
ld a, [$d122]
|
||||||
ld [H_LOADEDROMBANK], a
|
ld [H_LOADEDROMBANK], a
|
||||||
ld [$2000],a
|
ld [MBC3RomBank], a
|
||||||
|
|
||||||
pop hl
|
pop hl
|
||||||
pop de
|
pop de
|
||||||
pop bc
|
pop bc
|
||||||
pop af
|
pop af
|
||||||
reti
|
reti
|
||||||
|
|
||||||
DelayFrame:: ; 20af (0:20af)
|
|
||||||
; delay for one frame
|
|
||||||
ld a,1
|
|
||||||
ld [H_VBLANKOCCURRED],a
|
|
||||||
|
|
||||||
; wait for the next Vblank, halting to conserve battery
|
DelayFrame::
|
||||||
|
; Wait for the next vblank interrupt.
|
||||||
|
; As a bonus, this saves battery.
|
||||||
|
|
||||||
|
NOT_VBLANKED EQU 1
|
||||||
|
|
||||||
|
ld a, NOT_VBLANKED
|
||||||
|
ld [H_VBLANKOCCURRED], a
|
||||||
.halt
|
.halt
|
||||||
db $76 ; XXX this is a hack--rgbasm adds a nop after this instr even when ints are enabled
|
; XXX this is a hack--rgbasm adds
|
||||||
|
; a nop after halts by default.
|
||||||
|
db $76 ; halt
|
||||||
|
|
||||||
ld a, [H_VBLANKOCCURRED]
|
ld a, [H_VBLANKOCCURRED]
|
||||||
and a
|
and a
|
||||||
jr nz, .halt
|
jr nz, .halt
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
; These routines manage gradual fading
|
; These routines manage gradual fading
|
||||||
; (e.g., entering a doorway)
|
; (e.g., entering a doorway)
|
||||||
LoadGBPal:: ; 20ba (0:20ba)
|
LoadGBPal:: ; 20ba (0:20ba)
|
||||||
|
|
@ -9845,7 +9862,7 @@ IsInRestOfArray::
|
||||||
|
|
||||||
|
|
||||||
Func_3dbe:: ; 3dbe (0:3dbe)
|
Func_3dbe:: ; 3dbe (0:3dbe)
|
||||||
call CleanLCD_OAM
|
call ClearSprites
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
call Func_3e08
|
call Func_3e08
|
||||||
|
|
@ -10352,7 +10369,7 @@ PrepareOAMData: ; 4b0f (1:4b0f)
|
||||||
cp $ff
|
cp $ff
|
||||||
ret nz
|
ret nz
|
||||||
ld [$cfcb], a
|
ld [$cfcb], a
|
||||||
jp ResetLCD_OAM
|
jp HideSprites
|
||||||
.asm_4b1e
|
.asm_4b1e
|
||||||
xor a
|
xor a
|
||||||
ld [$ff90], a
|
ld [$ff90], a
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ HallofFameRoomScript2: ; 5a4bb (16:64bb)
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_5a4ff ; 0x5a505 $f8
|
jr nz, .asm_5a4ff ; 0x5a505 $f8
|
||||||
call WaitForTextScrollButtonPress
|
call WaitForTextScrollButtonPress
|
||||||
jp InitGame
|
jp Init
|
||||||
|
|
||||||
HallofFameRoomScript0: ; 5a50d (16:650d)
|
HallofFameRoomScript0: ; 5a50d (16:650d)
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
|
|
|
||||||
17
wram.asm
17
wram.asm
|
|
@ -271,8 +271,7 @@ wTileMapBackup2:: ; cd81
|
||||||
ds 20 * 18
|
ds 20 * 18
|
||||||
|
|
||||||
wBuffer:: ; cee9
|
wBuffer:: ; cee9
|
||||||
; used for temporary things
|
; Temporary storage area of 30 bytes.
|
||||||
|
|
||||||
wHPBarMaxHP:: ; cee9
|
wHPBarMaxHP:: ; cee9
|
||||||
ds 2
|
ds 2
|
||||||
wHPBarOldHP:: ; ceeb
|
wHPBarOldHP:: ; ceeb
|
||||||
|
|
@ -281,12 +280,9 @@ wHPBarNewHP:: ; ceed
|
||||||
ds 2
|
ds 2
|
||||||
wHPBarDelta:: ; ceef
|
wHPBarDelta:: ; ceef
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
ds 13
|
ds 13
|
||||||
|
|
||||||
wHPBarHPDifference:: ; cefd
|
wHPBarHPDifference:: ; cefd
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
ds 9
|
ds 9
|
||||||
|
|
||||||
wAnimSoundID:: ; cf07
|
wAnimSoundID:: ; cf07
|
||||||
|
|
@ -304,7 +300,12 @@ wCurSpriteMovement2:: ; cf14
|
||||||
; movement byte 2 of current sprite
|
; movement byte 2 of current sprite
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
ds 74
|
ds 5
|
||||||
|
|
||||||
|
wGBC:: ; cf1a
|
||||||
|
ds 1
|
||||||
|
|
||||||
|
ds 68
|
||||||
|
|
||||||
wGymCityName:: ; cf5f
|
wGymCityName:: ; cf5f
|
||||||
wStringBuffer1:: ; cf5f
|
wStringBuffer1:: ; cf5f
|
||||||
|
|
@ -1473,3 +1474,7 @@ W_BOXMON2NAME:: ; de11
|
||||||
ds 11 * 19
|
ds 11 * 19
|
||||||
|
|
||||||
; dee2
|
; dee2
|
||||||
|
|
||||||
|
SECTION "Stack", WRAMX[$dfff]
|
||||||
|
wStack:: ; dfff
|
||||||
|
ds -$100
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue