video: Now loading tilesets correctly.
authorLukas Krickl <lukas@krickl.dev>
Tue, 1 Oct 2024 04:26:06 +0000 (06:26 +0200)
committerLukas Krickl <lukas@krickl.dev>
Tue, 1 Oct 2024 04:26:06 +0000 (06:26 +0200)
vblank_wait: vblank wait was not calling ret

src/main.s
src/mem.s [new file with mode: 0644]
src/video.s

index 0f945bef2a90110ba3cf196655c3bb5bbf426c99..870aafc767a35374a433573e6669e8a26a7277c2 100644 (file)
@@ -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 (file)
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
index 515b1e527181792bcfeb86c2bfc285a0e37d4ff3..560114195e29ea24e2ba0a14a7dbb66726ec9247 100644 (file)
@@ -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