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