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):
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.


What it made
- The scroll: Along the River During the Qingming Festival by Zhang Zeduan (12th century, public domain). It found a full scan on Wikimedia Commons by itself, cropped the mounting and colophons, shrank it to a 2104×104 strip with a little cool misty rain, and cross-faded the ends so the scroll loops with no visible seam. Like a handscroll it unrolls from right to left, from the countryside to the Rainbow Bridge and the city gate.
- The 2.5D board: a Mode 7 perspective floor, the board like a wooden plank floating on the river. The top of the screen (mode 1) and the bottom (Mode 7) share one picture, switched by HDMA on the horizon line.
- The opponent: you play black against the computer, which answers in about 0.7 s; the last move gets a red dot, and five in a row flash.
- The mood: vertical paper labels — the title top left, “your turn / thinking / you win / computer wins / draw” top right — and twelve raindrops that turn into ripples on the water.
- The music: an original piece, Misty Rain over the Bian River; listen below.
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:

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 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
- A black screen: the first run showed nothing. Reading memory, it found the stack full of one return address, traced it to a subroutine that ended in 16-bit mode, which made the assembler give an instruction in the next routine the wrong length — and the program ran off. One line declaring the mode fixed it.
- Play-testing: not just a few moves. With
write_memoryit set up positions directly — four black stones in a row, four white on a diagonal, move 168 — and checked you-win, computer-wins, draw, a new game, the cursor staying on the board and no move onto an occupied point. Finally it ran about 3500 frames to see the scroll travel from the countryside past the Rainbow Bridge to the city gate and wrap back without a seam.
The numbers
| Instructions to the AI | 1 sentence |
| Time | about 23 minutes |
| Builds | 4 (no assembler errors; 1 runtime bug, found and fixed) |
| AI responses | 77 (Claude Opus 5.5) |
| AI output tokens | 102,352 |
| Tokens processed in all | about 10.9 million (mostly cache reads) |
| Estimated cost | about 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.
- Painting: Zhang Zeduan, Along the River During the Qingming Festival, 12th century, public domain; scan from Wikimedia Commons.
- Font: Cubic 11 by ACh-K, SIL Open Font License.
- Code, board and sprite art, music: made from scratch by the AI for this game.
- Not affiliated with or endorsed by Nintendo.