swapped HL and DE in render routine so that we can 'inc e' since the video pointer low byte never overflows

This commit is contained in:
2019-01-03 10:08:17 +01:00
parent fef4452f4a
commit fa38bc45e9

View File

@@ -456,13 +456,13 @@ LCDStatInterruptHandler:
.render
; load buffer pointer into DE
ld hl, Rendered
ld hl, Video
ld a, [hl+]
ld d, [hl]
ld e, a
; load video pointer into HL
ld hl, Video
ld hl, Rendered
ld a, [hl+]
ld h, [hl]
ld l, a
@@ -480,20 +480,20 @@ LCDStatInterruptHandler:
jr nz, .finish
; copy one byte
ld a, [de]
ld [hl+], a
inc de
ld a, [hl+]
ld [de], a
inc e
; loop while there are tiles to render
dec c
jr nz, .loop
; go to next line
ld a, l
ld a, e
add a, 32 - 20
ld l, a
ld e, a
jr nc, .nocarry
inc h
inc d
.nocarry
; loop while there are lines to render
@@ -513,14 +513,14 @@ LCDStatInterruptHandler:
ldh [LinesLeft], a
; save incremented video pointer and buffer pointer
ld a, l
ld a, e
ldh [Video], a
ld a, h
ld a, d
ldh [Video + 1], a
ld a, e
ld a, l
ldh [Rendered], a
ld a, d
ld a, h
ldh [Rendered + 1], a
; restore registers saved in interrupt handler