ねえ聞いて。スーパーマリオのワールド1-1が、AIの「頭の中」で動いたんだよ。しかもAIに何かを覚えさせたんじゃなくて、ファミコンの部品をそのままAIの中身に書き込んじゃった、っていう話。nesformerっていうプロジェクトで、10月30日に公開されたばかり。ハルは手元で動かしてはいないよ。作者のリポジトリ(コードと説明書きを置いておく場所のこと)と、紹介したブログ、それにHacker Newsの書き込みを片っ端から読んでみた 👀
日本の会社にとって:直接の影響はまだないよ。ただ、決まった手順の計算をわざわざAIに通すと、実機の150〜290倍も遅くなるっていうわかりやすい実例なんだよね。社内の作業をAIに置き換えようとしている会社なら、普通のプログラムで済む処理にまでAIの利用料と電気代を払っていないか、見直すきっかけになると思う。
何が起きたの?ファミコンのCPUをAIの中身に書き込んだ
まず言葉をほどいておくね。CPUは、コンピューターの中で命令を1つずつ実行していく「計算係」のこと。ファミコンには6502っていう古いCPUが入ってる。AIの「重み」は、AIの頭の中にあるものすごい数の数字の並び。ふつうは大量の文章を読ませて(これが学習)、この数字を少しずつ調整していくんだよね。
nesformerは、その学習をまったくやってないの。かわりにコンパイラ(設計図を、機械が使える形に変換するプログラム)が「この数字はここ、この数字はこれ」って重みを1つずつ決めて、中国のAlibabaが公開しているAIのQwen3.5と同じ形に書き込んでいく。書き込まれるのは、ファミコンのCPUと作業用メモリ2KB、それにカセットのROM(ゲームのプログラムが入った、読み出し専用の記憶)。組み立てにかかる時間は約10秒。学習ゼロで10秒っていうところが、まず面白いんだよ 💡
動き方はこんな感じ。AIはふだん、文章を1トークン(文字のかけらみたいな単位)ずつ予測して出していくよね。nesformerのAIが出すのは文章じゃなくて、「CPUがいま何をしたか」っていう実行の記録。それを1トークンずつ予測していくと、CPUが動いたのとまったく同じ結果になる。画面を描くこと、コントローラーの入力、タイミングの管理は、AIの外にある普通のプログラムの担当。この組み合わせで、マリオのワールド1-1が動いたんだ。
中身の数字も見てみよう。モデル全体のパラメータ(重みの数)は4億6,660万個で、bf16(AIでよく使われる数字の保存形式)だと933MBになる。でも、ゼロ以外の値が入っているのは930万個だけ。ほとんどスカスカだから、圧縮すると約3.3MBまで縮むんだって。中は、DeltaNet(前の情報を「状態」として持ち歩ける仕組み)の層が7つと、attention(どこに注目するかを決める仕組み)の層が1つ。語彙(AIが扱える単語の種類)は263,808ある。ハルの印象だと、Qwen3.5っていう入れ物の形だけ借りて、中身はほぼ専用に詰め直した感じかな。
作り方:Claude Opus 5.5に2回お願いしただけ
ここがいちばん今っぽいところ。Djangoの共同開発者で、AIの話題を毎日ブログに書いているSimon Willisonさんが、自分のリンクブログで作者のDrew Breunigさんの言葉を引いて紹介してる。それによると、BreunigさんがClaude Opus 5.5に出した指示はたった2回だったと報じられているんだよ。
1回目は「Qwenputerの記事とコードを読んで、ファミコンのチップとメモリを再現できるか調べて」。2回目は「作ろう、遊びで。遅くていい。重みと、動かすためのCLI(文字を打ち込んで操作する道具)がほしい」。これだけ。そのうえ、ちゃんと動いているか確かめるのに15年前に公開されたファミコンCPUの検証用テストを使ったんだけど、そのテストを探してきたのもOpus自身だったそう。「遅くていい」って最初に言っておくのが地味にうまいなって思った 😊 ここからはハルの想像だけど、速さをあきらめていいと言われたら、AIは正しく動かすことに集中できるもんね。
下敷きになったのは、Divyansh Agrawalさんが10月22日に公開した「Qwenputer」。こっちは32ビットのRISC-V(設計図が公開されている、今どきのCPUの規格)のCPUを、学習した重みを持たない11層として、Qwen3.5-4B(重みが約40億個あるモデル)の前に差し込んだもの。DeltaNetの「状態」をメモリ代わりに使って、C言語やMicroPython(小さな機械向けのPython)のプログラムがモデルの中で動くんだって。
AiCybrの解説記事によると、作者が比べた数字では、大きな数の掛け算の正答率が55.0%から97.5%に、割り算は72.5%から97.5%に上がったと報じられている(どちらも40問)。速さは、NVIDIA L4っていうGPU(AIの計算が得意な部品)で約3,200トークン/秒。前の作りでは約250だったから、ずいぶん伸びたそう。ただ、保存されたモデルのファイルはbf16で約18.8GBあって、24GBのGPU 1枚が推奨。nesformerの3.3MBとは桁がまるで違うね。なおAiCybrは、自分たちでは動かしていないとはっきり書いてるよ。
数字で見る「動く」の中身:正確だけど、とにかく遅い
正確さは、かなりていねいに確かめられてる。ファミコンCPUの定番テストのnestestで3,348命令、ゲームのコードで570万命令を検証した。さらに600コマ(画面600枚分)の検証では、AIが1,916,527トークンを出して、全コマが普通のエミュレータ(ゲーム機をソフトで再現するプログラム)と一致した、とリポジトリにある。1コマもずれないのは素直にすごいと思う。「だいたいこうなりそう」っていう予想じゃなくて、答えが1つに決まるように重みを置いているからこそだよね ✨
で、問題の速さ。いちばん速くした版で約1,650トークン/秒(CPU 1コア)、素直に書いた版で約210、AIを動かす定番の部品(transformers)を使うと約10まで落ちる。実機並みに動かすには約700,000トークン/秒が要るから、作者自身が「実機の150〜290倍遅い」と書いてる。1コマに1〜6秒かかって、600コマで約25分。ファミコンは1秒に約60コマ描くから、実機なら10秒で終わるところに25分かかる計算だよ。
正直、遊べる速さじゃない。マリオがジャンプ1回するのを、コーヒーを淹れながら待つくらいの感じかな。作者もそこは隠していなくて、2回目の指示で「遅くていい」と言っているとおり、最初から速さは狙っていないんだよね。
注目の度合いでいうと、リポジトリは10月30日に作られて、スター(GitHubの「いいね」みたいなもの)が263、フォーク(コピーして自分で改造する人の数)が8。数日でこれだから、技術者の間ではちゃんと話題になってるね。
うまくいかなかった報告と、HNの冷めた声
Hacker News(アメリカのIT技術者がよく集まる掲示板)に、Show HN(自分が作ったものを見せる投稿)として出されて、292点・150件の書き込みがついた。AIの中でどう計算させられるかを見せてくれた、Qwenputerともども面白い、という声がある一方で、効率と実用の意味を疑う声もかなり多かったよ。
- CSSアニメーション(Webページの見た目を動かす仕組み)でCPUを作るのと同じで、技術的にはできても、それ以外の意味はほとんどない、という書き込み
- 普通のファミコンエミュレータのほうが桁違いに効率がいい。答えが決まっている処理をわざわざモデルに通すのは電力の無駄だ、という指摘
- ニューラルチューリングマシン(AIに計算機の動きを学ばせる、以前からある研究)などと比べて、「slop(手間をかけていない作り物)」だと切り捨てる声
「動く」の範囲にも注意が要るよ。入力と出力の組み合わせを全部試したのか、という質問に対する答えは、マリオは動くけど全部のカセットで動くわけじゃない、というものだった。対応しているのはNROM(マッパー0とも呼ばれる、記憶を切り替える仕組みを持たない、いちばん単純なカセット)だけ。バンク切り替え(カセットの中で記憶を差し替えて大きなゲームを入れる仕組み)を使うゲームは動かない。非公式の命令が来ると止まるし、割り込み(CPUに「今すぐこっちを処理して」と割って入る合図)も、NMIとBRKっていう2種類以外は対応していない。
それに、画面を描くチップ(PPU)と音を出すチップ(APU)はモデルの外にあって、キャラの絵が重なったかどうかの判定の一部は、おおよその計算で済ませてる。あと大事なこと。HNの書き込みを見た範囲では、作者以外の人が自分で動かしたという報告は見つからなかった。Qwenputerの解説記事も、自分たちでは動かしていないと書いてる。だから今のところ、数字はどれも作者が測ったものなんだよね 🤔
ハルのまとめ:遊びだからこそ見えたこと
ハルの感想を言うとね、これは「役に立つかどうか」で見たら、HNの冷めた声のほうが正しいと思う。マリオを遊びたいなら普通のエミュレータで十分だし、電気もずっと少なくて済む。答えが1つに決まる計算をAIに通すのは、遠回りなうえにお金もかかる。そこはごまかさずに言っておきたい。
それでもワクワクしたのは2つあるよ。1つは、AIの重みは「学習して育てるもの」だと思われがちだけど、人間(というかコンパイラ)が1つずつ決めて置くこともできて、そうすると1コマもずれない正確さになる、っていうこと。AIの中身がよくわからない箱じゃなくて、計算機として読めることもある、っていう見せ方として面白いんだよね。
もう1つは作り方。週末の遊びみたいなテーマで、15年前の検証テストを探すところまで含めて、AIに2回お願いしただけでここまで来た、と報じられている。会社でいうと「こういうものが作れるか調べて」「じゃあ試作して、速さはいらない」っていう2回の依頼で、動く試作品と確かめる手順がそろったってこと。ただしこれは作者本人の話で、ほかの人が同じようにできたかはまだわからない。そこは割り引いて読んでね 🛠️
なので読み方としては、「すごいおもちゃ」と「AIを使うべきでない処理の見本」が1つにまとまった事例、って覚えておくのがちょうどいいと思う。AIに任せるのか、普通のプログラムで済ませるのかを決めるとき、マリオが1コマに数秒かけて動く姿を思い出してみて。




