Use constants for VBlank handlers

This commit is contained in:
Rangi42
2024-05-22 11:45:53 -04:00
committed by Sylvie
parent 4432df05cb
commit b81e339f33
11 changed files with 54 additions and 36 deletions

View File

@@ -13,11 +13,11 @@ VBlank::
push hl
ldh a, [hVBlank]
and 7
maskbits NUM_VBLANK_HANDLERS
ld e, a
ld d, 0
ld hl, .VBlanks
ld hl, VBlankHandlers
add hl, de
add hl, de
ld a, [hli]
@@ -34,17 +34,20 @@ VBlank::
pop af
reti
.VBlanks:
dw VBlank0
dw VBlank1
dw VBlank2
dw VBlank3
dw VBlank4
dw VBlank5
dw VBlank6
dw VBlank0 ; just in case
VBlankHandlers:
; entries correspond to VBLANK_* constants (see constants/wram_constants.asm)
table_width 2, VBlankHandlers
dw VBlank_Normal
dw VBlank_Cutscene
dw VBlank_SoundOnly
dw VBlank_CutsceneCGB
dw VBlank_Serial
dw VBlank_Credits
dw VBlank_DMATransfer
dw VBlank_Normal ; unused
assert_table_length NUM_VBLANK_HANDLERS
VBlank0::
VBlank_Normal::
; normal operation
; rng
@@ -144,7 +147,7 @@ VBlank0::
ret
VBlank2::
VBlank_SoundOnly::
; sound only
ldh a, [hROMBank]
@@ -161,7 +164,7 @@ VBlank2::
ld [wVBlankOccurred], a
ret
VBlank1::
VBlank_Cutscene::
; scx, scy
; palettes
; bg map
@@ -245,7 +248,7 @@ UpdatePals::
and a
ret
VBlank3::
VBlank_CutsceneCGB::
; scx, scy
; palettes
; bg map
@@ -309,7 +312,7 @@ VBlank3::
ldh [rIF], a
ret
VBlank4::
VBlank_Serial::
; bg map
; tiles
; oam
@@ -340,13 +343,12 @@ VBlank4::
rst Bankswitch
ret
VBlank5::
VBlank_Credits::
; scx
; palettes
; bg map
; tiles
; joypad
;
ldh a, [hROMBank]
ldh [hROMBankBackup], a
@@ -388,7 +390,7 @@ VBlank5::
ldh [rIE], a
ret
VBlank6::
VBlank_DMATransfer::
; palettes
; tiles
; dma transfer