Use LCD STAT interrupt more efficiently (#2)

This commit is contained in:
xCrystal
2024-03-19 19:49:36 +01:00
parent 5f0cdcaa85
commit 0d8fb09612
14 changed files with 41 additions and 16 deletions

View File

@@ -104,7 +104,7 @@ endc
xor a
ldh [rIF], a
ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << VBLANK)
ldh [rIE], a
call Link_CopyRandomNumbers
@@ -280,7 +280,7 @@ endc
xor a
ldh [rIF], a
ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << VBLANK)
ldh [rIE], a
ld de, MUSIC_NONE
call PlayMusic

View File

@@ -1,6 +1,7 @@
ClearedLevelScreen:
xor a
ldh [hMapAnims], a
ldh [hLCDStatIntRequired], a
ldh [hSCY], a
ld a, -$4
ldh [hSCX], a

View File

@@ -14,6 +14,7 @@ GameMenu:
GameMenu_KeepMusic:
xor a
ldh [hMapAnims], a
ldh [hLCDStatIntRequired], a
call ClearTilemap
call LoadFrame
call LoadStandardFont

View File

@@ -4,6 +4,7 @@ LevelSelectionMenu::
ldh [hMapAnims], a
ldh [hSCY], a
ldh [hSCX], a
ldh [hLCDStatIntRequired], a
ld a, 1 << DONT_CLEAR_SHADOW_OAM_IN_SPRITE_ANIMS_F
ld [wStateFlags], a

View File

@@ -14,6 +14,7 @@ MainMenu:
.loop
xor a
ldh [hMapAnims], a
ldh [hLCDStatIntRequired], a
call ClearTilemap
call LoadFrame
call LoadStandardFont

View File

@@ -13,6 +13,8 @@ IntroSequence:
; fallthrough
StartTitleScreen:
ld a, TRUE
ldh [hLCDStatIntRequired], a
ldh a, [rSVBK]
push af
ld a, BANK(wLYOverrides)

View File

@@ -8,6 +8,9 @@ Credits::
.okay
ld [wJumptableIndex], a
ld a, TRUE
ldh [hLCDStatIntRequired], a
ldh a, [rSVBK]
push af
ld a, BANK(wGBCPalettes)

View File

@@ -1,4 +1,6 @@
CrystalIntro:
ld a, TRUE
ldh [hLCDStatIntRequired], a
ldh a, [rSVBK]
push af
ld a, BANK(wGBCPalettes)

View File

@@ -3,6 +3,8 @@ SECTION "Events", ROMX
OverworldLoop::
xor a ; MAPSTATUS_START
ld [wMapStatus], a
ld a, TRUE
ld [hLCDStatIntRequired], a
.loop
ld a, [wMapStatus]
ld hl, .Jumptable