video: working on loading tiles
authorLukas Krickl <lukas@krickl.dev>
Mon, 30 Sep 2024 17:37:06 +0000 (19:37 +0200)
committerLukas Krickl <lukas@krickl.dev>
Mon, 30 Sep 2024 17:37:06 +0000 (19:37 +0200)
src/main.s
src/video.s

index e36345293ac27e3ff480dceafff045682e1077f4..0f945bef2a90110ba3cf196655c3bb5bbf426c99 100644 (file)
@@ -6,10 +6,10 @@
 .fill 0, 0x100 - $
 #include "header.inc"
  
-entry:
-  ; *never* turn off LCD without waiting 
-  ; for vblank!
-  call vblank_wait
+entry: 
+  call lcd_off
+  call copy_tiles
+  call lcd_on
 
 main:
 @forever:
index acbdf930d78bb63dd55840eae1a8736fbb9f1f19..515b1e527181792bcfeb86c2bfc285a0e37d4ff3 100644 (file)
@@ -3,8 +3,35 @@ vblank_wait:
   cp a, 144
   jp c, vblank_wait
 
+lcd_off:
+  ; *never* turn off LCD without waiting 
+  ; for vblank!
+  call vblank_wait
   ; turn off lcd 
   ld a, 0
   ld [RLCD], a
 
   ret
+
+lcd_on:
+  ld a, LCDCF_ON | LCDCF_BGON
+  ld [RLCD], a
+
+  ret
+
+copy_tiles:
+  ld de, tileset0
+  ld hl, VRAM9000 
+  ld bc, tileset0_end - tileset0
+@loop:
+  
+  ld a, [de]
+  ld [hl+], a
+
+  inc de
+  dec bc
+  ld a, b
+  or a, c
+  jp nz, @loop
+
+  ret