2014-05-31 08:22:15 +00:00
|
|
|
VBlank::
|
|
|
|
|
|
|
|
push af
|
|
|
|
push bc
|
|
|
|
push de
|
|
|
|
push hl
|
|
|
|
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hLoadedROMBank]
|
2015-07-25 03:27:59 +00:00
|
|
|
ld [wVBlankSavedROMBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hSCX]
|
|
|
|
ldh [rSCX], a
|
|
|
|
ldh a, [hSCY]
|
|
|
|
ldh [rSCY], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2015-07-12 23:24:03 +00:00
|
|
|
ld a, [wDisableVBlankWYUpdate]
|
2014-05-31 08:22:15 +00:00
|
|
|
and a
|
|
|
|
jr nz, .ok
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hWY]
|
|
|
|
ldh [rWY], a
|
2014-05-31 08:22:15 +00:00
|
|
|
.ok
|
|
|
|
|
|
|
|
call AutoBgMapTransfer
|
|
|
|
call VBlankCopyBgMap
|
2015-08-14 09:46:12 +00:00
|
|
|
call RedrawRowOrColumn
|
2014-05-31 08:22:15 +00:00
|
|
|
call VBlankCopy
|
|
|
|
call VBlankCopyDouble
|
|
|
|
call UpdateMovingBgTiles
|
2020-07-04 02:11:35 +00:00
|
|
|
call hDMARoutine
|
2016-06-12 18:35:21 +00:00
|
|
|
ld a, BANK(PrepareOAMData)
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
call PrepareOAMData
|
|
|
|
|
|
|
|
; VBlank-sensitive operations end.
|
|
|
|
|
|
|
|
call Random
|
|
|
|
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hVBlankOccurred]
|
2014-05-31 08:22:15 +00:00
|
|
|
and a
|
2015-08-09 05:32:44 +00:00
|
|
|
jr z, .skipZeroing
|
2014-05-31 08:22:15 +00:00
|
|
|
xor a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hVBlankOccurred], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2015-08-09 05:32:44 +00:00
|
|
|
.skipZeroing
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hFrameCounter]
|
2014-05-31 08:22:15 +00:00
|
|
|
and a
|
2015-08-09 05:32:44 +00:00
|
|
|
jr z, .skipDec
|
2014-05-31 08:22:15 +00:00
|
|
|
dec a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hFrameCounter], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2015-08-09 05:32:44 +00:00
|
|
|
.skipDec
|
|
|
|
call FadeOutAudio
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2015-08-09 05:32:44 +00:00
|
|
|
ld a, [wAudioROMBank] ; music ROM bank
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2015-07-22 15:22:46 +00:00
|
|
|
cp BANK(Audio1_UpdateMusic)
|
|
|
|
jr nz, .checkForAudio2
|
|
|
|
.audio1
|
|
|
|
call Audio1_UpdateMusic
|
2014-05-31 08:22:15 +00:00
|
|
|
jr .afterMusic
|
2015-07-22 15:22:46 +00:00
|
|
|
.checkForAudio2
|
|
|
|
cp BANK(Audio2_UpdateMusic)
|
|
|
|
jr nz, .audio3
|
|
|
|
.audio2
|
2015-03-12 14:49:35 +00:00
|
|
|
call Music_DoLowHealthAlarm
|
2015-07-22 15:22:46 +00:00
|
|
|
call Audio2_UpdateMusic
|
2014-05-31 08:22:15 +00:00
|
|
|
jr .afterMusic
|
2015-07-22 15:22:46 +00:00
|
|
|
.audio3
|
|
|
|
call Audio3_UpdateMusic
|
2014-05-31 08:22:15 +00:00
|
|
|
.afterMusic
|
|
|
|
|
2020-07-07 01:18:22 +00:00
|
|
|
farcall TrackPlayTime ; keep track of time played
|
2014-05-31 08:22:15 +00:00
|
|
|
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hDisableJoypadPolling]
|
2014-05-31 08:22:15 +00:00
|
|
|
and a
|
|
|
|
call z, ReadJoypad
|
|
|
|
|
2015-07-25 03:27:59 +00:00
|
|
|
ld a, [wVBlankSavedROMBank]
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
|
|
|
pop hl
|
|
|
|
pop de
|
|
|
|
pop bc
|
|
|
|
pop af
|
|
|
|
reti
|
|
|
|
|
|
|
|
|
|
|
|
DelayFrame::
|
|
|
|
; Wait for the next vblank interrupt.
|
|
|
|
; As a bonus, this saves battery.
|
|
|
|
|
2022-06-06 21:25:31 +00:00
|
|
|
DEF NOT_VBLANKED EQU 1
|
2014-05-31 08:22:15 +00:00
|
|
|
|
|
|
|
ld a, NOT_VBLANKED
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hVBlankOccurred], a
|
2014-05-31 08:22:15 +00:00
|
|
|
.halt
|
|
|
|
halt
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hVBlankOccurred]
|
2014-05-31 08:22:15 +00:00
|
|
|
and a
|
|
|
|
jr nz, .halt
|
|
|
|
ret
|