rewrote main loop, cleaned up stuff, B button to step one frame

This commit is contained in:
2019-01-09 00:19:55 +01:00
parent 25d999968e
commit 3cd2f3d126
7 changed files with 175 additions and 194 deletions

View File

@@ -115,9 +115,26 @@ LCDStatInterruptHandler:
; return from v-blank or lcd interrupt
reti
EXPORT InitRender
SECTION "Init render", ROM0
InitRender:
ld a, $9C
ldh [Video + 1], a
xor a
ldh [Video], a
ret
EXPORT StartRender
SECTION "StartRender", ROM0
StartRender:
StartRender:
; set rendered pointer to old buffer
ldh a, [Progress]
ld l, a
ld [Rendered], a
ldh a, [Old]
ld h, a
ld [Rendered + 1], a
; start rendering
ld a, 20
ldh [TilesLeft], a
@@ -152,4 +169,19 @@ IF RENDER_IN_HBL != 0
HaltAndClearInterrupts
ENDC
; swap video pointer
ldh a, [Video + 1]
dec a
dec a
xor a, %100
ldh [Video + 1], a
xor a
ldh [Video], a
; swap displayed BG
ldh a, [rLCDC]
xor a, LCDCF_BG9C00
or a, LCDCF_ON | LCDCF_BGON
ldh [rLCDC], a
ret