msx-cocoamsx
How to use workbench CocoaMSX as a research display: launch, JSON config, accelerated present toggle, control socket (peek/watch/snap/loadstate/keys)…
Skill by 0xe1f
Chalk Labs
Need help deploying msx-cocoamsx?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/0xe1f-msx-cocoamsx
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: research, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/msx-cocoamsx
What's inside
- Skill name
msx-cocoamsx- Description
- How to use workbench CocoaMSX as a research display: launch, JSON config, accelerated present toggle, control socket (peek/watch/snap/loadstate/keys), savestates, snapshot diffs. Use when tracing an MSX ROM, watching work-RAM, or driving the emulator from an agent. Not for static romscan / .asm edits.
- License
- Apache-2.0
- Instructions
- 161 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (1)
- SKILL.md
SKILL.md (first lines)
# MSXDAW CocoaMSX (research display) The instrumented emulator is `tools/workbench/cocoamsx/` (or `~/code/msxdaw/cocoamsx/` in the canonical clone). ROM, snapshots, and logs stay in the **game** repo (`generated/`). This is a display plus a text control surface, not a settings-heavy emulator. Human keyboard/gamepad still work in the window. Agent control is extra. ## When to use this vs static analysis Use CocoaMSX when you need **live** behaviour: what a RAM byte does, which PC writes it, what happens after a shot / room change / death. Prefer `romscan` / reading `.asm` when the question is "who calls this" or "what is this table". Snapshots find *where*; a tight WATCH finds the *writer PC*; xref finds callers. ## Launch ``` tools/workbench/cocoamsx/tools/disasm/build-cocoamsx.sh tools/workbench/cocoamsx/tools/disasm/trace-run.sh COCOAMSX_ROM2=/path/to/GameMaster.rom tools/workbench/cocoamsx/tools/disasm/trace-run.sh tools/workbench/cocoamsx/tools/disasm/cocoamsx-ctl peek c000 tools/workbench/cocoamsx/tools/disasm/snapdiff.py generated/disasmsnap.bin ``` `trace-run.sh` finds the game via `workbench.cfg` (cwd or `GAME=`). Pass a ROM path to override. `COCOAMSX_ROM2` inserts a second cartridge in slot 2 before the startup ROM boots (game + a slot-2 companion cart). **Never kill a running emulator** (`kill`, `pkill`, closing the window) unless the user asks. They are often mid-recording. Keys are window-focused AppKit events. No Input Monitoring / Accessibility prompt. Rebuilds do not need a TCC grant. ### Config (JSON) Search order: `COCOAMSX_CONFIG`, `./cocoamsx.json`, `~/.config/cocoamsx/config.json`. Example: `tools/workbench/cocoamsx/cocoamsx.json.example`. | key | default | live reload | |-----|---------|-------------| | `machine` | `MSX2 - C-BIOS` | no (cold reboot) | | `volume` | 75 | yes | | `scale` | 2 | no (window size at launch) | | `accelerated` | true | yes | | `vdp_sync` | `60hz` | no (pinned NTSC 60Hz) | | `speed` | 100 | yes | | `socket` | `/tmp/cocoamsx.sock` | no | | `snap_range` | `c000-dfff` | env at launch | Reload: `cocoamsx-ctl reload-config` or SIGHUP. Env `COCOAMSX_ACCELERATED=0` overrides JSON for one run (CPU `drawRect` present if CALayer/Metal misbehaves). Both presents are nearest-neighbor; off is a fallback, not a quality setting. ## Seek, don't play Do not TAS from the Konami logo. Named savestates live in the **game** repo (`generated/` or `research/*.sta`): ``` cocoamsx-ctl savestate generated/scene.sta cocoamsx-ctl loadstate generated/scene.sta ``` Trainer cart / RAM poke only when a state is missing. The human can still play in the window; the agent should load a state and observe. ## Observe Snapshots first, then a tight watch: 1. `snap` (or F9) before an action, `snap` after. F8 / `autosnap on` for a per-frame recording (red dot in the corner). 2. `snapdiff.py generated/disasmsnap.bin` / `--track c000` to see which bytes moved. 3. `watch c000` and repeat the action for the writer PC (`W ss:pppp aaaa=vv`). 4. `peek c000` / `dump c000 80` / `wait c000 == 05` when you already know the address. `screenshot /tmp/frame.png` when RAM is ambiguous. Keep `DEDUP=1`. Do not broad-EXEC; it explodes the log. Changing WATCH no longer needs a relaunch (`cocoamsx-ctl watch …`). Record the baseline snapshot count before the user records so you only analyze new frames. ## Drive a few frames Same inject path as the human (macOS virtual key codes via the responder chain): ``` cocoamsx-ctl key down space cocoamsx-ctl key up space cocoamsx-ctl hold right 30 cocoamsx-ctl wait c000 == 80 cocoamsx-ctl snap ``` Names: `up down left right space shift ctrl alt z x a s enter esc tab f8 f9`. Use this for "fire once", not for crossing a stage. ## cocoamsx-ctl cheat sheet Socket: `COCOAMSX_SOCKET` (default `/tmp/cocoamsx.sock`). One line in, one line out (`ok …` / `err …`). | command | effect | |---------|--------| | `ping` | `ok pong` | | `peek c000` | one byte | | `dump c000 80` | hex bytes (len hex or decimal) | | `watch c000-c01f` | live WATCH ranges (same grammar as env) | | `exec 4000-4010` | live EXEC ranges | | `snap` | one RAM snapshot (same file as F9) |
From 0xe1f/MSXDAW, Apache-2.0.
More from 0xe1f/MSXDAW
- 0.587score
konami-msx-disasm
0xe1f
Methodology for a byte-exact, commented, reassemblable disassembly of a Konami MSX/MSX2 MegaROM (Konami4 / SCC and similar).
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-code-data
0xe1f
Split code from data early in a banked Z80 MSX disassembly: .blocks maps, bank classification, inline DISPATCH_A tables, illegal-sequence seeds, peeling…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-regen
0xe1f
Regenerate an 8 KiB mapper bank with z80dasm via tools/workbench/msx/regen-bank.sh, emit a per-bank symbol file, and strip listing comments.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-romscan
0xe1f
Static xref and dispatch-table decode for banked Z80 ROMs via tools/workbench/msx/romscan.py.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
msx-gfx
0xe1f
Inspect MSX graphics: 1bpp/4bpp ASCII via gfxview.py, PNG via pngwrite.py, and Konami VRAM RLE (rledec.py / rleenc.py).
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-gfx-sheets
0xe1f
Build labelled PNG contact sheets for MSX tiles, metatiles, hardware sprites, fonts, and palettes.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-psg-catalogue
0xe1f
Build labelled WAV catalogues for MSX PSG BGM and SFX (Konami packed-PSG or Taito psg_play).
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-scaffold
0xe1f
Create a new MSXDAW game repo from a ROM dump: probe mapper and size, run bin/scaffold, wire the workbench submodule, LICENSE/README/CI, sjasmplus, then hand…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
konami-psg
0xe1f
Render Konami packed-PSG bytecode to WAV.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-bootstrap
0xe1f
First session on a new MSX cart: mapper probe, bank split, regen bank 0, AB header, H.TIMI / IRQ.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-coverage
0xe1f
Disassembly progress badges and coverage.py (INCBIN leftover, auto labels, opcode comments, annotated call targets).
SkillBFreshness: B★ 1Claude Code +9 - 0.536score
msx-trace
0xe1f
Build and run workbench CocoaMSX tracing.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 4, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/0xe1f/MSXDAW
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from 0xe1f
- 0.587score
konami-msx-disasm
0xe1f
Methodology for a byte-exact, commented, reassemblable disassembly of a Konami MSX/MSX2 MegaROM (Konami4 / SCC and similar).
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-code-data
0xe1f
Split code from data early in a banked Z80 MSX disassembly: .blocks maps, bank classification, inline DISPATCH_A tables, illegal-sequence seeds, peeling…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-regen
0xe1f
Regenerate an 8 KiB mapper bank with z80dasm via tools/workbench/msx/regen-bank.sh, emit a per-bank symbol file, and strip listing comments.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
msx-romscan
0xe1f
Static xref and dispatch-table decode for banked Z80 ROMs via tools/workbench/msx/romscan.py.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
msx-gfx
0xe1f
Inspect MSX graphics: 1bpp/4bpp ASCII via gfxview.py, PNG via pngwrite.py, and Konami VRAM RLE (rledec.py / rleenc.py).
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
msx-gfx-sheets
0xe1f
Build labelled PNG contact sheets for MSX tiles, metatiles, hardware sprites, fonts, and palettes.
SkillBFreshness: B★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get msx-cocoamsx running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
msx-cocoamsx skill. Agent Mart. https://agentmart.dev/skills/0xe1f-msx-cocoamsx (last updated 2026-10-24)