Repository navigation
Matcha 0.1.1 preserves an active homebrew debugging session when an MCP request is rejected.
- Validate tool inputs before changing emulator state. Invalid ROM/frame/button/memory/slot arguments leave the current machine, save slots and debugger data intact.
- Prepare a new ROM completely before replacing the old one. A successful replacement intentionally clears per-ROM slots, breakpoints and search results.
- Includes an original-ROM exercise for instruction attribution, watchpoints and exact save/replay. No commercial ROM or credentials are needed for the exercise.
Download matcha.plugin for the MCP server (a ZIP archive; Node 18+, no npm packages) or matcha.html for the offline player. Extract the plugin to a new directory and configure a stdio server with command node and an absolute argument pointing to server/server.mjs. See the README and docs/MCP-HOMEBREW.md in the source archive from this tag for the fixture generator and exact tool calls.
SHA256SUMS covers the four listed companion files. release-manifest.json pins the source commit, WASM and assets. HOMEBREW-LICENSES.md retains the bundled games' existing notices, also included inside the plugin. No existing license was changed.
The exact final-main CI passed core/conformance, WASM, real MCP and packaged original-ROM regression checks. These assets are copied unchanged from that CI run. The Rust emulator source and state layout were not changed by this correction. Known DMG/CGB timing limitations remain. State ROM identity uses the header, not the entire ROM body; keep snapshots with their exact build. MCP slots last only for the server process, and active synchronous emulation calls are not interruptible. Interactive Claude Desktop installation and complete browser gameplay are not claimed by the MCP tests.
Source: 1e40cf2a3373cb9ed7d5fcdd90f93a5b6876664d
CI: https://github.com/rad1092/matcha/actions/runs/38259629781
PR: #4