★ 18 SYSTEMS · ZERO INSTALLS · RUNS ON REAL HARDWARE ★

Vibe-code real retro games.

One command, and your coding agent can make actual working ROMs for NES, SNES, Game Boy, Genesis, Atari, Commodore 64, and more — that run on RetroArch, native emulators, flash carts, and real hardware.

terminal

$ npx romdevtools

✓ tool server up on http://localhost:7331/mcp

↪ point your coding assistant at it and describe the game you want.

That's the whole setup. Emulators, assemblers, C compilers, starter libs, example projects, and hardware docs all ship as bundled WebAssembly via npm.

How the loop works

YOUR AGENT
romdev server
WASM core + toolchain
YOUR GAME

Wire it to your editor's AI over MCP, or drop in the Agent Skill the server ships and let it call the tools over plain HTTP. Same tools either way.

Two ways to connect

MCP

Wire it to your editor's AI

Register the server in your agent's MCP config. It auto-discovers every tool over the protocol and drives the whole loop for you — build, run, screenshot, inspect, patch. The fast path if your editor already speaks MCP.

# add to your MCP config:

"romdev": { "url":

"http://localhost:7331/mcp" }

SKILLS

Or a Skill over plain HTTP

No MCP? The server serves its own Agent Skill — save that SKILL.md into your agent's skills dir and it reads it on demand (~100 tokens until invoked, no MCP client). The skill teaches it to call the tools over plain HTTP (POST /tool/{name}).

# served at:

http://localhost:7331/

skills/romdev/SKILL.md

→ save to your skills dir

Same tools either way — the MCP surface and the Skill are generated from one registry, so they never drift. You always just run npx romdevtools.

What you get

🔧

Build

Bundled per-platform toolchains — cc65, SDCC, RGBDS, asar, vasm, SGDK, PVSnesLib, libtonc — all as WASM. Write source, get a real ROM.

🎮

Run & see

Load into an emulated console (libretro cores as WASM), step frame-by-frame, and grab the framebuffer as a PNG for your agent.

🎯

Drive

Emit controller input, run input scripts, replay sequences — deterministic, headless, scriptable.

🔍

Inspect & romhack

Read CPU/video/save RAM, Cheat-Engine value search, write-breakpoints, sprite/palette inspectors, and a bundled cheat database as a free labeled RAM map.

🧠

Decompile

An open-source Rizin + Ghidra RE engine across all 18 systems: control-flow graphs, cross-refs, and C-like pseudocode. No $3,000 IDA license.

💾

Rebuild byte-exact

Disassemble a whole ROM into a rebuildable project, then build({output:'reassemble'}) rebuilds it byte-identical in one call — on all 15 classic platforms.

See the full tool surface →

Ready? It's one line.

$ npx romdevtools

The deliverable is the ROM — a standard, hardware-valid .nes / .gba / .md that runs anywhere ROMs run.