debug: Added debug toggle inputs
authorLukas Krickl <lukas@krickl.dev>
Sat, 15 Nov 2025 17:09:19 +0000 (18:09 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sat, 15 Nov 2025 17:09:19 +0000 (18:09 +0100)
src/debug.s
src/wram.s

index 18668a394903203b144df078d047d2d2bd76dbaf..91d194ae60b262812ce58122100f88f64b159862 100644 (file)
@@ -6,5 +6,50 @@
 debug_update:
        ld a, [debug_flags]
        and a, DEBUG_F_ENABLE
+       jp z, @poll_toggle_debug
+       
+       ; debug mode is anebled here
+       ; TODO: implement debug code
+
+@poll_toggle_debug:
+       ; debug mode can be enabled by pressing select 4 times in a 
+       ; row as the only input
+       
+       ; do nothing if no inputs were made this frame
+       ld a, [curr_inputs]
+       cp a, 0
+       ret z
+
+       ; if curr inputs matches prev inputs
+       ; also do nothing
+       ld b, a
+       ld a, [prev_inputs]
+       xor a, b
        ret z
+
+       ld b, BTNSELECT
+       input_just
+       jr z, @reset_enable_counter REL
+       ; if select was not the only button also reset
+       ld a, [curr_inputs]
+       and a, (~BTNSELECT) & 0xFF
+       jr nz, @reset_enable_counter REL
+       
+       ; counter++
+       ld a, [debug_enable_count]
+       inc a
+       ld [debug_enable_count], a
+
+       ; if counter is at 4 toggle DEBUG flag
+       cp a, 4
+       ret nz ; do nothing if 0
+
+       ld a, [debug_flags]
+       xor a, DEBUG_F_ENABLE
+       ld [debug_flags], a
+
+       ; make sure to reset the counter :^)
+@reset_enable_counter:
+       xor a, a
+       ld [debug_enable_count], a
        ret
index d6ac19b004d396425b00f1946d5eb59dd9367ffc..56e7588b6f3c16d2e6b87da921e635fa656dea75 100644 (file)
@@ -45,6 +45,7 @@ game_flags: .adv 1
 
        ; debug control flags
 debug_flags: .adv 1
+debug_enable_count: .adv 1
 
 scroll_timer: .adv 1