avoid fully recomputing HL while loading cells to HRAM, 10 => 9 VBLs
This commit is contained in:
@@ -107,27 +107,16 @@ ENDM
|
|||||||
|
|
||||||
LoadCellToHRAM: MACRO
|
LoadCellToHRAM: MACRO
|
||||||
; \1 = offset to Old pointer
|
; \1 = offset to Old pointer
|
||||||
; destroys A, D, E, H, L
|
; destroys A, H, L
|
||||||
; increments C
|
; increments C
|
||||||
|
; does not touch B, D, E
|
||||||
; load old pointer into hl
|
|
||||||
ld hl, Old
|
|
||||||
ld a, [hl+]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
|
|
||||||
; add offset
|
|
||||||
IF \1 != 0
|
|
||||||
ld de, \1
|
|
||||||
add hl, de
|
|
||||||
ENDC
|
|
||||||
|
|
||||||
; load neighbor
|
; load neighbor
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
|
|
||||||
; store in HRAM
|
; store in HRAM
|
||||||
ld [$FF00+c], a
|
ld [$FF00+c], a
|
||||||
|
|
||||||
; increment hram pointer
|
; increment hram pointer
|
||||||
inc c
|
inc c
|
||||||
ENDM
|
ENDM
|
||||||
@@ -140,16 +129,38 @@ ConwayGroup: MACRO
|
|||||||
; pointer to HRAM
|
; pointer to HRAM
|
||||||
ld c, LOW(Cells)
|
ld c, LOW(Cells)
|
||||||
|
|
||||||
|
; load old pointer into hl
|
||||||
|
ld hl, Old
|
||||||
|
ld a, [hl+]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
; load current 2x2 cell then neighbor 2x2 cells to HRAM from old buffer
|
; load current 2x2 cell then neighbor 2x2 cells to HRAM from old buffer
|
||||||
LoadCellToHRAM 0
|
LoadCellToHRAM
|
||||||
LoadCellToHRAM \1
|
ld de, \1
|
||||||
LoadCellToHRAM \2
|
add hl, de
|
||||||
LoadCellToHRAM \3
|
LoadCellToHRAM
|
||||||
LoadCellToHRAM \4
|
ld de, \2 - \1
|
||||||
LoadCellToHRAM \5
|
add hl, de
|
||||||
LoadCellToHRAM \6
|
LoadCellToHRAM
|
||||||
LoadCellToHRAM \7
|
ld de, \3 - \2
|
||||||
LoadCellToHRAM \8
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
ld de, \4 - \3
|
||||||
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
ld de, \5 - \4
|
||||||
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
ld de, \6 - \5
|
||||||
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
ld de, \7 - \6
|
||||||
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
ld de, \8 - \7
|
||||||
|
add hl, de
|
||||||
|
LoadCellToHRAM
|
||||||
|
|
||||||
; reset result
|
; reset result
|
||||||
xor a
|
xor a
|
||||||
|
|||||||
Reference in New Issue
Block a user