AI x SFC Player

A research project · built with Claude Code

AI x SFC Player

A Super Famicom player written from scratch by Claude Code, with an MCP interface that lets AI agents play and study games.

Open the player Let an AI play

Research project. No games are provided.

Built by Claude Code

On 2026-10-29, the emulator behind this player was written from scratch in one Claude Code session. Times are taken from the project’s file and commit timestamps.

ElapsedMilestone
0 minFirst line of the 65C816 CPU
~6 minGraphics (PPU), DMA and sound (SPC700 + DSP) written — the game’s intro runs
~10 minTitle screen and main menu, with music
~20 minPlayable in the browser: play with the keyboard

The player

Open the player →

Let an AI watch or play

The player speaks MCP (Model Context Protocol), so Claude Code, Codex or any MCP client can join your game. Two modes:

Claude Code: one command

In an empty folder (Node.js 18 or later):

npx https://aixsfc.app/skill/aixsfc.tgz
claude

This installs the aixsfc and sfc-make skills and the MCP server into the folder. Allow the aixsfc server when Claude Code asks, then say “Use aixsfc to watch me play and give advice”. Open the player, load a game, press Connect AI, choose a mode and enter the pairing code the AI gives you. Run the same npx command again to update.

Other MCP clients

Download the server — one file, no dependencies: aixsfc-mcp.mjs. For Codex (~/.codex/config.toml):

[mcp_servers.aixsfc]
command = "node"
args = ["/path/to/aixsfc-mcp.mjs"]

Then ask the AI to call bridge_status for the pairing code.

ToolWhat it does
screenshot, read_screen_textSee the screen; read its text exactly with the game’s own font (with a game plugin)
search_memory, diff_memory, read_memoryResearch: find where values live
noteShow a comment in the player
press, tap, wait, wait_for_changeAI plays: input buttons, then return a screenshot once the screen settles
save_state, load_state, write_memoryAI plays: try something, roll back, change values

Build your own with Claude Code

Curious how far one prompt goes? This is close to how the project started:

prompt>

Write a Super Famicom (SNES) emulator that runs in the browser, in plain JavaScript with no third-party libraries and no code copied from existing emulators. Implement the 65C816 CPU, the PPU (backgrounds, sprites, windows, color math), DMA/HDMA, and the SPC700 + DSP audio, and emulate the audio boot ROM's upload protocol instead of including it. Load .sfc/.smc/.zip files by drag and drop, map the keyboard and gamepads, and keep SRAM in IndexedDB. Before building any UI, write a headless Node runner that renders frames to PNG and records audio, and use it to verify each step.

Research notice

AI x SFC Player is a personal research project on emulation and AI agents. It provides no games.