From 9c0346bc616dc030b2f1171ba91b257cbfe3da9c Mon Sep 17 00:00:00 2001 From: MsK` Date: Tue, 30 Nov 2021 23:21:47 +0100 Subject: [PATCH] use screen size constants directly... --- Code/automata.asm | 27 ++++++++++++++------------- Code/automata.inc | 6 ------ Code/edit.asm | 9 ++++----- Code/main.asm | 6 +++--- Code/render.asm | 9 ++++----- 5 files changed, 25 insertions(+), 32 deletions(-) delete mode 100644 Code/automata.inc diff --git a/Code/automata.asm b/Code/automata.asm index 15e747f..542f370 100644 --- a/Code/automata.asm +++ b/Code/automata.asm @@ -1,5 +1,6 @@ INCLUDE "hardware.inc" -INCLUDE "automata.inc" + +BUFFER_SIZE = SCRN_X_B * SCRN_Y_B ; automata buffers with 4 cells per byte ; 2x2 bytes per cell, bit ordering: @@ -157,19 +158,19 @@ SECTION "Update Automata", ROM0 UpdateAutomata: .topleft ; handle top left corner - ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), (BUFFER_SIZE - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - TILE_WIDTH + 1) + ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (2 * SCRN_X_B - 1), (SCRN_X_B - 1), (BUFFER_SIZE - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - SCRN_X_B + 1) ; advance to next cell in top row ld hl, Progress inc [hl] ; handle all cells in top row except corners - ld a, (TILE_WIDTH - 2) + ld a, (SCRN_X_B - 2) .top ld [XLoop], a ; handle top row cell - ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (TILE_WIDTH - 1), -1, (BUFFER_SIZE - TILE_WIDTH - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - TILE_WIDTH + 1) + ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (SCRN_X_B - 1), -1, (BUFFER_SIZE - SCRN_X_B - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - SCRN_X_B + 1) ; advance to next cell in top row ld hl, Progress @@ -182,18 +183,18 @@ UpdateAutomata: ; handle top right corner .topright - ConwayGroup (-TILE_WIDTH + 1), 1, TILE_WIDTH, (TILE_WIDTH - 1), -1, (BUFFER_SIZE - TILE_WIDTH - 1), (BUFFER_SIZE - TILE_WIDTH), (BUFFER_SIZE - 2 * TILE_WIDTH + 1) + ConwayGroup (-SCRN_X_B + 1), 1, SCRN_X_B, (SCRN_X_B - 1), -1, (BUFFER_SIZE - SCRN_X_B - 1), (BUFFER_SIZE - SCRN_X_B), (BUFFER_SIZE - 2 * SCRN_X_B + 1) ; advance pointers to next row ld hl, Progress inc [hl] - ld a, (TILE_HEIGHT - 2) + ld a, (SCRN_Y_B - 2) .leftcolumn ld [YLoop], a ; handle first element in row - ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), -1, (-TILE_WIDTH), (-TILE_WIDTH + 1) + ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (2 * SCRN_X_B - 1), (SCRN_X_B - 1), -1, (-SCRN_X_B), (-SCRN_X_B + 1) ; advance to next cell ld hl, Progress @@ -204,7 +205,7 @@ UpdateAutomata: ld [XLoop], a ; handle element inside row - ConwayGroup 1, (TILE_WIDTH + 1), TILE_WIDTH, (TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-TILE_WIDTH + 1) + ConwayGroup 1, (SCRN_X_B + 1), SCRN_X_B, (SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-SCRN_X_B + 1) ; advance to next cell ld hl, Progress @@ -223,7 +224,7 @@ UpdateAutomata: ; handle last element in row .rightcolumn - ConwayGroup (-TILE_WIDTH + 1), 1, TILE_WIDTH, (TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), -TILE_WIDTH, (-2 * TILE_WIDTH + 1) + ConwayGroup (-SCRN_X_B + 1), 1, SCRN_X_B, (SCRN_X_B - 1), -1, (-SCRN_X_B - 1), -SCRN_X_B, (-2 * SCRN_X_B + 1) ; advance to next row ld hl, Progress @@ -236,19 +237,19 @@ UpdateAutomata: ; handle bottom left element .bottomleft - ConwayGroup 1, (-BUFFER_SIZE + TILE_WIDTH + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + 2 * TILE_WIDTH - 1), (TILE_WIDTH - 1), -1, (-TILE_WIDTH), (-TILE_WIDTH + 1) + ConwayGroup 1, (-BUFFER_SIZE + SCRN_X_B + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + 2 * SCRN_X_B - 1), (SCRN_X_B - 1), -1, (-SCRN_X_B), (-SCRN_X_B + 1) ; advance to next cell in bottom row ld hl, Progress inc [hl] ; handle all cells in bottom row except corners - ld a, TILE_WIDTH - 2 + ld a, SCRN_X_B - 2 .bottom ld [XLoop], a ; handle top row cell - ConwayGroup 1, (-BUFFER_SIZE + TILE_WIDTH + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-TILE_WIDTH + 1) + ConwayGroup 1, (-BUFFER_SIZE + SCRN_X_B + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-SCRN_X_B + 1) ; advance to next cell in top row ld hl, Progress @@ -261,7 +262,7 @@ UpdateAutomata: ; handle last element .bottomright - ConwayGroup (-TILE_WIDTH + 1), (-BUFFER_SIZE + 1), (-BUFFER_SIZE + TILE_WIDTH), (-BUFFER_SIZE + TILE_WIDTH - 1), -1, (-TILE_WIDTH - 1), (-TILE_WIDTH), (-2 * TILE_WIDTH + 1) + ConwayGroup (-SCRN_X_B + 1), (-BUFFER_SIZE + 1), (-BUFFER_SIZE + SCRN_X_B), (-BUFFER_SIZE + SCRN_X_B - 1), -1, (-SCRN_X_B - 1), (-SCRN_X_B), (-2 * SCRN_X_B + 1) ; move buffer address back to beginning ld hl, Old diff --git a/Code/automata.inc b/Code/automata.inc deleted file mode 100644 index bf43004..0000000 --- a/Code/automata.inc +++ /dev/null @@ -1,6 +0,0 @@ -CELLS_WIDTH = 40 -CELLS_HEIGHT = 36 -CELLS_PER_TILE = 2 -TILE_WIDTH = CELLS_WIDTH / CELLS_PER_TILE -TILE_HEIGHT = CELLS_HEIGHT / CELLS_PER_TILE -BUFFER_SIZE = TILE_WIDTH * TILE_HEIGHT \ No newline at end of file diff --git a/Code/edit.asm b/Code/edit.asm index b12a4f8..eb18f1e 100644 --- a/Code/edit.asm +++ b/Code/edit.asm @@ -1,6 +1,5 @@ INCLUDE "hardware.inc" INCLUDE "utils.inc" -INCLUDE "automata.inc" SPRITE_ANIM_DELAY EQU 6 REPEAT_START_DELAY EQU 16 @@ -17,9 +16,9 @@ SpriteDelay: ds 1 EXPORT InitEdit SECTION "Init edit", ROM0 InitEdit: - ld a, TILE_WIDTH + ld a, SCRN_X_B ldh [SelectX], a - ld a, TILE_HEIGHT + ld a, SCRN_Y_B ldh [SelectY], a xor a ldh [Down], a @@ -223,7 +222,7 @@ ToggleCell: ld l, a ldh a, [Old] ld h, a - MoveToCell TILE_WIDTH + MoveToCell SCRN_X_B ; toggle bit ld a, [hl] @@ -272,7 +271,7 @@ Clear: ld [Rendered + 1], a ; clear old buffer - ld bc, TILE_WIDTH * TILE_HEIGHT + ld bc, SCRN_X_B * SCRN_Y_B ld d, 0 call MemorySet diff --git a/Code/main.asm b/Code/main.asm index fb82c58..1b219fe 100644 --- a/Code/main.asm +++ b/Code/main.asm @@ -75,9 +75,9 @@ ENDR ; copy default map into 20x18 automata buffer ld hl, DefaultMap ld de, Buffer0 - ld c, 18 + ld c, SCRN_Y_B .loopY - ld b, 20 + ld b, SCRN_X_B .loopX ld a, [hl+] @@ -90,7 +90,7 @@ ENDR jr z, .next ld a, l - add a, 32 - 20 + add a, SCRN_VX_B - SCRN_X_B ld l, a jr nc, .loopY diff --git a/Code/render.asm b/Code/render.asm index a069a5b..9a1a332 100644 --- a/Code/render.asm +++ b/Code/render.asm @@ -1,6 +1,5 @@ INCLUDE "hardware.inc" INCLUDE "utils.inc" -INCLUDE "automata.inc" RENDER_IN_HBL EQU 0 @@ -72,7 +71,7 @@ LCDStatInterruptHandler: ; go to next line ld a, e - add a, SCRN_VX_B - TILE_WIDTH + add a, SCRN_VX_B - SCRN_X_B ld e, a jr nc, .nocarry inc d @@ -83,7 +82,7 @@ LCDStatInterruptHandler: jr z, .finish ; reset tile counter - ld c, TILE_WIDTH + ld c, SCRN_X_B jr .loop @@ -137,9 +136,9 @@ StartRender: ld [Rendered + 1], a ; start rendering - ld a, TILE_WIDTH + ld a, SCRN_X_B ldh [TilesLeft], a - ld a, TILE_HEIGHT + ld a, SCRN_Y_B ldh [LinesLeft], a ; enable v-blank and lcd stat interrupt for h-blank