一句话,AI 做出一款 SFC 游戏:《汴河烟雨》2.5D 五子棋
我们在一个空文件夹里开了全新的 Claude Code(模型 Claude Opus 5.5),只用 npx 装了 AI x SFC Player 的 skill 与 MCP 工具,然后给了它一句话:
帮我做一个 2.5D 五子棋,背景是清明上河图,不断滚动,接着帮我写一首背景音乐,淡淡轻轻,烟烟雨雨等曲调。 请用 sfc-make,并记录制作过程报告。
之后没有再补充任何说明。23 分钟后,它交回一款可以在超任(SFC)上运行的游戏,以及一份完整的制作报告。


它做了什么
- 长卷: 北宋张择端的《清明上河图》(12 世纪,公有领域)。它自己在 Wikimedia Commons 找到全卷扫描档,裁掉装裱与题跋,缩成 2104×104 的长条,加一点偏冷的雨雾,并把首尾交叉淡化,让滚动可以无限循环、看不出接缝。依手卷的传统由右往左展开,从郊野慢慢走进虹桥与城门。
- 2.5D 棋盘: 用 SFC 的 Mode 7 做透视地面,棋盘像一块木板漂在河上。画面上半部(Mode 1)和下半部(Mode 7)在同一个画面里,用 HDMA 在地平线那一条扫描线切换。
- 对手: 玩家执黑,对电脑。电脑约 0.7 秒后应手,最后一手有红点标示,连成五子时棋子会闪光。
- 氛围: 左上竖排题签「汴河烟雨」,右上显示「你的回合/电脑思考/你赢了/电脑胜/和局」;12 滴雨丝落到河面时会变成小涟漪。
- 配乐: 原创曲〈烟雨汴河〉,在下面可以直接听。
长卷:一开始太糊,于是改用「流式加载」
它先用我们的 convert_image 转换整条长卷。SFC 一层背景最多只能放 1024 个不同的图块,工具把 3419 个图块合并成 880 个,结果细节全糊了:

它的判断是:既然画面上一次只看得到一小段,就不必把整条长卷同时放进显存。于是它自己写了转换程序:全卷共用 7 组调色板,3419 个图块原封不动放在 ROM 里;滚动时每露出新的一列,就在垂直消隐期间用 DMA 把那一列的 13 个图块送进显存里一个 64 列的环形区域。上面两张游戏截图,就是流式加载后完整保留细节的样子。
2.5D 棋盘
它先在电脑上模拟 Mode 7 的透视公式,挑出合适的镜头:棋盘远端约 108 像素宽、近端约 220 像素宽。棋盘、格线、星位、木纹、黑白棋子(含高光与投影)、棋盘侧面与水面倒影,全部是程序生成的 Mode 7 图块,一共 59 块。
落子时只要改写 Mode 7 地图里的 4 个字节,棋子就会自动跟着透视变形。光标(毛笔形的箭头加一个扁圆环)、最后一手的红点和胜利的闪光则是精灵,位置从事先算好的「交叉点 → 屏幕坐标」表查出来。


配乐〈烟雨汴河〉
E 羽调五声音阶(E G A B D),每分钟 60 拍。古筝般的拨弦琶音、气声较重的箫吹旋律、低音弦、极轻的正弦波雾气和音,再用高音铃声当作零星「雨滴落河」;回声设得较长,营造湿润的空间感。4 小节前奏加 16 小节循环,大约 80 秒一轮。这是游戏在模拟器里实际演奏的录音:
调试与试玩
- 画面全黑: 第一次运行时画面一片黑。它读内存,发现堆栈被同一个返回地址塞满,追查到一段结尾停在 16 位模式的子程序,让汇编器把下一个例程里的一条指令汇编成了错误的长度,程序因此跑飞。补上一行模式声明后就正常了。
- 试玩: 它不只是随便下几手。它用
write_memory直接在内存里摆出「黑棋四连」「白棋斜向四连」「下到第 168 手」等局面,逐一验证你赢了、电脑胜、和局、重新开局、光标不出界、不能下在已有棋子的地方,最后连续跑了约 3500 帧,确认长卷从郊野经过虹桥、走到城门,再无缝接回开头。
数字
| 给 AI 的指示 | 1 句话 |
| 总时间 | 约 23 分钟 |
| 汇编次数 | 4 次(没有汇编错误;1 个运行时错误,自己找出并修好) |
| AI 回复 | 77 条(Claude Opus 5.5) |
| AI 输出 token | 102,352 |
| 处理的 token 总数 | 约 1,090 万(大部分是缓存读取) |
| 估计费用 | 约 5.5 美元(以 2026 年 10 月的 Anthropic API 定价换算;订阅方案计费方式不同) |
用了哪些工具
全部来自 AI x SFC Player 的 sfc-make skill 与 MCP 服务器:自制的 65C816/SPC700 汇编器(build_rom)、MML 作曲与音效驱动(build_sound)、图片转换(convert_image)、模拟器里的试玩与内存工具,以及自动记录每一步的制作报告(start_report、write_report)。长卷流式加载的转换程序和棋盘图块生成器,是 AI 在过程中自己用 Python 写的。
想自己试试,在空文件夹运行 npx https://aixsfc.app/skill/aixsfc.tgz 再开 claude 即可,说明在首页。
关于这款游戏
这是一次研究演示,游戏本身(ROM)与源代码不公开提供。
- 画作:张择端《清明上河图》,12 世纪,公有领域;扫描档来自 Wikimedia Commons。
- 字体:俐方体11号(Cubic 11),ACh-K 制作,以 SIL Open Font License 授权。
- 程序、棋盘与精灵美术、配乐:由 AI 为这款游戏从零制作。
- 本作与任天堂无关,亦未获其背书。