AI x SFC Player

Posts · · 繁體中文 · 简体中文 · 日本語

One sentence, one SFC game: an AI makes a 2.5D Gomoku on the river of a 900-year-old painting

We opened a fresh Claude Code session (model: Claude Opus 5.5) in an empty folder, installed only AI x SFC Player’s skill and MCP tools with npx, and gave it one sentence (in Chinese; here in English):

prompt>

Make me a 2.5D Gomoku game. The background is "Along the River During the Qingming Festival", scrolling endlessly. Then write background music for it: light and gentle, like mist and drizzle. Use sfc-make, and record a making-of report.

Nothing else was added. 23 minutes later it returned a game that runs on the Super Famicom (SFC / SNES) and a complete making-of report.

The opening screen of Bianhe Gomoku
The start: the scroll moving across the top, a 13×13 board floating on the Bian river, light rain falling.
The scroll at the Rainbow Bridge
The scroll has reached the Rainbow Bridge; the computer has five in a row, its stones flashing gold.

What it made

The scroll: too blurry at first, so it streams

It first converted the whole scroll with our convert_image. One SFC background can address at most 1024 different tiles, so the tool merged 3419 tiles into 880 — and the detail was gone:

The first conversion, blurred
First try: 3419 tiles merged into 880, only patches of colour left.

Its reasoning: only a short stretch is on screen at a time, so the whole scroll doesn’t need to be in video memory at once. It wrote its own converter: 7 palettes shared by the whole scroll, all 3419 tiles kept as they are in the ROM, and each time a new column comes into view, its 13 tiles are sent by DMA during vertical blank into a 64-column ring in video memory. The two screenshots above show the streamed scroll with its detail.

The 2.5D board

It first simulated the Mode 7 perspective on the computer to choose the camera: the far edge of the board about 108 pixels wide, the near edge about 220. The board, lines, star points, wood grain, black and white stones (with highlights and shadows), the board’s side and its reflection on the water are all generated Mode 7 tiles — 59 of them.

Placing a stone rewrites 4 bytes of the Mode 7 map, and the stone takes on the perspective by itself. The cursor (a brush-shaped arrow over a flat ring), the last-move dot and the winning flash are sprites, placed from a precomputed table of intersection → screen position.

The player wins with five in a row
You win: a red seal, five stones flashing gold.
The computer wins
The computer wins; "press a button for another game" appears.

The music: Misty Rain over the Bian River

E yu-mode pentatonic (E G A B D), 60 beats per minute. Zither-like plucked arpeggios, a breathy end-blown flute melody, a low string, a faint sine-wave mist, and high bells as the odd raindrop falling into the river, with a long echo for a damp sense of space. A 4-bar intro and a 16-bar loop, about 80 seconds round. This is the game playing in the emulator:

Debugging and play-testing

The numbers

Instructions to the AI1 sentence
Timeabout 23 minutes
Builds4 (no assembler errors; 1 runtime bug, found and fixed)
AI responses77 (Claude Opus 5.5)
AI output tokens102,352
Tokens processed in allabout 10.9 million (mostly cache reads)
Estimated costabout US$5.5 (at Anthropic API list prices, October 2026; subscription plans bill differently)

The tools

All from AI x SFC Player’s sfc-make skill and MCP server: our own 65C816 / SPC700 assembler (build_rom), MML music with its sound driver (build_sound), picture conversion (convert_image), play-testing and memory tools in the emulator, and the making-of report that records every step (start_report, write_report). The scroll-streaming converter and the board tile generator are Python the AI wrote along the way.

To try it yourself, run npx https://aixsfc.app/skill/aixsfc.tgz in an empty folder, then claude; see the home page.

About the game

This is a research demonstration: the game itself (the ROM) and its source are not published.