video: Added bg tileset cycles
authorLukas Krickl <lukas@krickl.dev>
Fri, 21 Mar 2025 17:34:55 +0000 (18:34 +0100)
committerLukas Krickl <lukas@krickl.dev>
Fri, 21 Mar 2025 17:34:55 +0000 (18:34 +0100)
src/hw.inc
src/video.s
tiles/tileset1.inc

index c117709f1184af2aaa70f4465ab0e46842c907c9..c2f9aa0cd33407d4d4a1d07afba8189dffc35160 100644 (file)
@@ -13,6 +13,7 @@
 #define LCDCF_BGON 0b00000001
 #define LCDCF_ON 0b10000000
 #define LCDCF_OBJON 0b00000010
+#define LCDCF_TILE_BANK 0b00010000
 #define LCDF_WINDOWON 0b00100000
 #define LCDF_OBJ_SIZE 0b00000100
 #define LCDF_WINBANKSELECT 0b01000000
index d9ad061cb034846b516940ebe2ef5b7e554e9236..efac8efe9b59b4d70a25fa0953b935f196deee9a 100644 (file)
@@ -1,5 +1,7 @@
 #define BGP 0b11100100
 
+#define BG_CYCLE_FRAMES 7
+
   ; vblank handler
 vblank:
   ; dma previous frame's oam
@@ -11,6 +13,16 @@ vblank:
 
   call scroll_write
 
+  ; cycle bg tiles for animations
+  ld a, [frame_count]
+  and a, BG_CYCLE_FRAMES
+  jr z, @skip_cycle REL
+
+  ld a, [RLCD]
+  xor a, LCDCF_TILE_BANK 
+  ld [RLCD], a
+@skip_cycle:
+
   ld a, 1
   ld [frame_ready], a
   ret
index 5c77aa997c85bf4df639fb4292514a98159a677c..c6cb26369cec0f530d211c11898ff8dd47cca1b0 100644 (file)
 .chr 22222222
 ; tile 124
 .chr 00000000
+.chr 01010000
+.chr 00101000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 01010100
+.chr 00101000
 .chr 00000000
 .chr 00000000
 ; tile 125