From e05f077f42b25f539ba14ce7ea6d3b336857a989 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Tue, 1 Oct 2024 06:26:06 +0200 Subject: [PATCH] video: Now loading tilesets correctly. vblank_wait: vblank wait was not calling ret --- src/main.s | 1 + src/mem.s | 17 +++++++++++++++++ src/video.s | 17 +++++++---------- 3 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 src/mem.s diff --git a/src/main.s b/src/main.s index 0f945be..870aafc 100644 --- a/src/main.s +++ b/src/main.s @@ -17,6 +17,7 @@ main: #include "tiles.inc" #include "video.s" +#include "mem.s" ; fill bank .fill 0, 0x7FFF - $ diff --git a/src/mem.s b/src/mem.s new file mode 100644 index 0000000..97315cc --- /dev/null +++ b/src/mem.s @@ -0,0 +1,17 @@ +; copies memory from one location to another +; inputs: +; de: source +; hl: destination +; bc: length +memcpy: + @loop: + ld a, [de] + ld [hl+], a + + inc de + dec bc + ld a, b + or a, c + jp nz, @loop + + ret diff --git a/src/video.s b/src/video.s index 515b1e5..5601141 100644 --- a/src/video.s +++ b/src/video.s @@ -2,6 +2,7 @@ vblank_wait: ld a, [RLY] cp a, 144 jp c, vblank_wait + ret lcd_off: ; *never* turn off LCD without waiting @@ -21,17 +22,13 @@ lcd_on: copy_tiles: ld de, tileset0 - ld hl, VRAM9000 + ld hl, VRAM ld bc, tileset0_end - tileset0 -@loop: - - ld a, [de] - ld [hl+], a + call memcpy - inc de - dec bc - ld a, b - or a, c - jp nz, @loop + ld de, tileset1 + ld hl, VRAM9000 + ld bc, tileset1_end - tileset1 + call memcpy ret -- 2.30.2