diff --git a/engine/delay.asm b/engine/delay.asm new file mode 100644 index 000000000..4e8b2147c --- /dev/null +++ b/engine/delay.asm @@ -0,0 +1,23 @@ +DelayFrame: ; 45a +; Wait for one frame + ld a, 1 + ld [VBlankOccurred], a + +; Wait for the next VBlank, halting to conserve battery +.halt + halt ; rgbasm adds a nop after this instruction by default + ld a, [VBlankOccurred] + and a + jr nz, .halt + ret +; 468 + + +DelayFrames: ; 468 +; Wait c frames + call DelayFrame + dec c + jr nz, DelayFrames + ret +; 46f + diff --git a/main.asm b/main.asm index 1ac24e469..942b5a80e 100644 --- a/main.asm +++ b/main.asm @@ -62,28 +62,7 @@ INCLUDE "engine/init.asm" INCLUDE "engine/vblank.asm" -DelayFrame: ; 45a -; Wait for one frame - ld a, 1 - ld [VBlankOccurred], a - -; Wait for the next VBlank, halting to conserve battery -.halt - halt ; rgbasm adds a nop after this instruction by default - ld a, [VBlankOccurred] - and a - jr nz, .halt - ret -; 468 - - -DelayFrames: ; 468 -; Wait c frames - call DelayFrame - dec c - jr nz, DelayFrames - ret -; 46f +INCLUDE "engine/delay.asm" RTC: ; 46f