- Refactor cause in draw_game_over_screen to an immediately invoked lambda, eliminating dead store warning
- Rename sound effect files to standard-compliant names without double underscores to prevent reserved macro warnings in soundbank.h
- Update source/game_audio.cpp to use clean SFX_* macro identifiers
- Add codechecker_skip.txt to ignore external devkitPro toolchain headers
- Ignore .codechecker/ output artifacts directory in .gitignore
- Update AGENTS.md file tree and sound asset references
Create the workspace skill .agents/skills/melonds-gdb-debugger/ with
SKILL.md and diagnose_melonds.sh diagnostic automation script.
Streamline AGENTS.md to link to the new skill to keep it short and concise.
Co-authored-by: Antigravity <antigravity@google.com>
Document the 256-byte ARM9 IRQ stack limitation, console non-reentrancy,
input bus contention avoidance with swiWaitForVBlank, boot sequencing,
HUD dirty-flag caching, and GDB Data Abort diagnosis procedures.
Update README with progressive speed scaling and persistent Game Over screen.
Co-authored-by: Antigravity <antigravity@google.com>
- 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>