SKILL.md
Crash Investigator
Scope
- Detection: Monitors Mesen2 for pauses (breakpoints) or manual triggers.
- Data Capture: Retrieves CPU state (registers) and execution trace (PC history).
- Analysis: Resolves raw addresses to symbols and source lines using
z3ed. - Reporting: Generates Markdown reports ready for LLM consumption.
Core Capabilities
1. Manual Dump
Trigger an immediate analysis of the current state.
dump: "I just saw a crash, analyze it."
2. Monitoring (The Sentinel)
Run in background to catch intermittent crashes.
monitor: Polls emulator state. If it pauses (hit breakpoint/crash), auto-dumps.
3. Trace Blame
Maps the execution history to source code.
- Uses
z3ed rom-resolve-addressto turn$07B107intoLink_ResetProperties (Link.asm:45).
Workflow
- Start Monitor:
crash-investigator monitor. - Repro Bug: Play game until it crashes (CPU JAM / Breakpoint).
- Auto-Dump: Tool detects pause, captures trace, resolves symbols.
- Review: Read
crashreports/crash20260125_120000.md. - Reason: Paste report into LLM: "Why did it crash at
Link_Update?"
Dependencies
- Tool:
~/src/hobby/yaze/scripts/ai/crash_dump.py - Mesen2: Must be running with socket server.
- z3ed: Must be built with symbol support.
- Symbols: ROM directory must contain
.mlbor.symfiles.
Example Prompts
- "Monitor for crashes while I play the dungeon."
- "Dump the current state; the game is softlocked."
- "Analyze the last crash report."
Troubleshooting
- No Trace Data: Ensure Mesen2 trace logging is enabled (internal buffer).
- No Symbols: Check if
.mlbfile exists next to ROM. Runz3ed rom-resolve-addressto verify. - Connection Error: Restart Mesen2.