Commit Graph
7 Commits
Author SHA1 Message Date
phillipandAntigravity 496de1a31f fix: decouple VBlank ISR and main loop to prevent IRQ stack overflow
- Make handle_vblank strictly increment frame counter (frame++)
- Move heavy frame logic (background updates, OAM updates, palette animations, and console stats) to update_frame() on the main thread synchronized with swiWaitForVBlank()
- Eliminate 256-byte ARM9 IRQ stack (sp_irq) overflow caused by bg_update and iprintf that was corrupting DTCM stack and causing data aborts
- Preserve all playfield entities on game over with top-screen defeat summary and smooth background deceleration

Co-authored-by: Antigravity <antigravity@google.com>
2026-10-04 00:21:09 +02:00
phillip 9a3a0bd9fd feat: add temporary hazardous barriers in hard mode 2026-10-03 21:32:02 +02:00
phillip 60bf111400 feat: add custom background rendering and speed scaling features for snake gameplay 2026-10-03 20:58:33 +02:00
phillip 60740a53c2 refactor: optimize snake sprite rendering using preloaded directional assets and implement HUD caching 2026-10-01 22:00:55 +02:00
phillip 8bf999c33b Add a main menu scene with Start/Hard Mode/Music options
The game now boots into a menu (Start Game, Hard Mode toggle, Music
toggle) navigated with Up/Down and A/Start, instead of dropping
straight into a match. B returns to the menu from a paused or
game-over state.
2026-09-03 22:27:49 +02:00
phillip 0e7477031f Add cursed apple: a status-effect apple that inverts controls
Eating a cursed apple inverts the snake's steering for
CURSE_DURATION_TICKS ticks, shown on the top screen while active. The
sprite is a recolored copy of the rotten-apple tile since all existing
sprite tiles are already in use.
2026-09-03 22:27:22 +02:00
phillip b873ac24ca Let AI refactor everything and see if it breaks. 2026-03-29 00:59:27 +01:00