video: wip stat interrupts
authorLukas Krickl <lukas@krickl.dev>
Thu, 10 Jul 2025 03:53:06 +0000 (05:53 +0200)
committerLukas Krickl <lukas@krickl.dev>
Thu, 10 Jul 2025 03:53:06 +0000 (05:53 +0200)
src/hw.inc
src/jmp.inc
src/video.s

index 3496da4ad9db40901fdcc8353155c0f85019cc15..81d3cc1e54443a19870cd1263168ebdf80e80a12 100644 (file)
 #define LCDF_OBJ_SIZE 0b00000100
 #define LCDF_WINBANKSELECT 0b01000000
 
+#define RSTAT 0xFF41
+
+#define STATF_LYC_INT_SELECT 0b01000000
+
 #define RBGP 0xFF47
 #define ROBP0 0xFF48
 #define ROBP1 0xFF49
index 26d62f5d34ac26598b130dda8a941d7ff185ce38..423680dcf7c72a748874889d00afc4240bd66ee4 100644 (file)
@@ -41,6 +41,7 @@ vec_vblank:
 ; STA 0x48
 ;=============
 vec_stat:
+  BREAK
   ; disable objects
   push af
   ld a, [RLCD]
index cf4c0243f01b3da1f679ab45bb6fb671a5d8ca0d..1cb077a88b32eab1aa326e34531147e7f171c91d 100644 (file)
@@ -85,6 +85,12 @@ lcd_on:
 
   ; init video system
 video_init:
+  ; set up STAT interrupt
+  ld a, 144-8*4 ; top of window
+  ld [RLYC], a ; set LY compare
+  ld a, STATF_LYC_INT_SELECT
+  ld [RSTAT], a
+
 
   ld hl, SCRN0
   ld bc, 1024