世界を動かす技術を、日本語で。

「どうぶつの森」のダイアログをGameCubeのメモリをハッキングしてリアルタイムのLLMに置き換えました

2025年9月10日原文(joshfonseca.com)

概要

  • 2001年のAnimal Crossing(どうぶつの森)を現代AIと連携させるプロジェクトの全貌
  • ゲームコードを一切変更せず、クラウドAIとのリアルタイム会話を実現
  • 主要課題は通信手段とゲーム独自の制御コード対応
  • RAMメモリを活用した「メモリメールボックス」方式で通信を確立
  • AIによる自然な会話生成とゲーム内演出の分離設計

2001年のゲームと現代AIをつなぐ架け橋

  • Animal Crossing の会話が23年前と全く同じ内容である現状への問題意識
  • Nintendo GameCube はネット接続や拡張性がほぼ皆無なオフライン設計
  • ゲームコードを変更せず、クラウドAIと連携する新たなアプローチの模索

最初の壁:ゲームとの通信手段

  • decompilationコミュニティ によるCソースコード公開が大きな追い風
  • m_message.c 内の会話システムを特定し、テキスト差し替えのテストに成功
  • ネットワークスタックの自作やファイル書き出し方式は実用不可と判断

突破口:メモリメールボックス方式

  • RAMの特定領域 を「メールボックス」として利用するIPC(プロセス間通信)手法
  • Pythonスクリプト とDolphinエミュレータ経由で直接メモリ読み書き
    • ゲーム側:会話文・話者情報を書き出し
    • 外部AI側:新しい会話文をRAMに書き戻し
  • メモリスキャン で会話テキストと話者名の安定アドレス(0x81298360, 0x8129A3EA)を特定

GameCube純正ネットワークアダプタの検討と却下

  • Broadband Adapter (BBA) は非対応タイトルであり、ゲーム側のネットワーク機能も皆無
  • BBA利用には独自ネットワークスタック・非同期I/O・リトライ処理等の大規模改造が必要
  • RAMメールボックス方式 はエミュレータ内で完結し、実装がシンプルかつ堅牢

ゲーム独自の「会話言語」への対応

  • 単純なテキスト書き込みではゲームがフリーズする現象を確認
  • Animal Crossing 独自の制御コード(例:<End Conversation>や色指定、感情表現)を解析
  • Python製エンコーダ/デコーダ を自作し、制御コード付きバイト列の正確な生成・読取を実現

AIによる会話生成と演出の分業

  • 1つのLLMで全てを担う方式は創造性・技術性両面で非効率と判明
  • Writer AI :キャラクターシートやニュース情報を元に自然な会話文を生成
  • Director AI :Writerの出力に対し、制御コード・演出(色、間、表情、効果音等)を付与
  • 分業体制 により、創造性と技術的要件の両立を実現

新たなゲーム体験と副次的な現象

  • ニュースフィード住民間のゴシップ共有 で会話内容が動的に進化
    • 例:「Mitzi: 欧州首脳がTrumpとZelenskyyに会う予定なんだって!」
    • 例:「Cookie: Tom Nookがベルを全部取ってる気がするの!」
  • 外部ニュースソース の影響で、現実の出来事がゲーム内会話に反映
  • コード・ツール群は GitHub で公開、プロジェクト全容の動画も案内

まとめ

  • エミュレータ+RAMメールボックス+AI という構成で、レトロゲームに現代の知性と動的会話を注入
  • 逆アセンブル・AI・ゲーム愛が融合した、技術的にも情熱的にも挑戦的なプロジェクト

Hackerたちの意見

古いゲームに新しい命を吹き込むって、なんかすごく楽しくてワクワクするよね!それに、どうやら『あつまれ どうぶつの森』のコードがデコンパイルされて、読みやすいCコードになってるって知って驚いた!面白いことがたくさんできそうだね。

村人たちが考えを持ってて、最初にやりたいことがトム・ヌークを倒すことって、めっちゃ面白いね。これがゲームキューブのエミュレーターで動くなら、スイッチのエミュレーターでもできるんじゃない?

スイッチ用の『あつまれ どうぶつの森』のゲームコードをデコンパイルする必要があるね。ゲームキューブの頃よりDRMもかなり進化してると思う。理論的には可能かもしれないけど、頑張ってね(笑)

うん、次は『あつまれ どうぶつの森:ニュー・ホライズンズ』を試してみたいな! :)

LLMはredditでかなりトレーニングされてるし、「トム・ヌックは資本主義の独裁者だと思えばそうだ」っていうのはredditのミームなんだよね。多くのLLMの反応と同じで、あんまり「考えてる」って感じじゃなくて、「redditのジョークや意見を吐き出してる」って感じだね。

すべてのキャラクターにこういうエージェンシーを与えて、世界についての意見がどう形成されるかを見るのは、すごく魅力的だよね。LLMがこのタスクをどれだけうまくこなせるかによって、仮想的な状況に対する「リアルな人々」の考えを知る面白い方法になると思う。

これ、最高だね。LLMを使ったNPCは、ゲームの未来で一番楽しみなことの一つだよ。キャラクターが同じ台詞を何度も繰り返すのは、没入感を壊す一番の要因だもん。

俺も昔は君みたいに繰り返しの台詞が気になってたけど、膝に矢を受けてからは変わったよ。

ローカルのLLMはもう十分に良いと思う。LLM推論が必要なときにGPUがすでにかなり忙しいのは問題かもしれないけど、克服できない問題ではないよね。ゲームの核心的なストーリーライティングに使ってほしくはないな。ストーリーが一貫していて、脱線しないことが大事だから。でも、あまり真剣じゃないNPCとのやり取りやRPGシナリオにはすごく合ってると思う。シングルプレイヤーゲームがリモート推論に依存するのも避けたいな。結局それがオフになったらゲームが動かなくなるから。

同意!このAIが運営するDnDキャンペーンは、どれだけ面白いかの例だよね。https://www.youtube.com/watch?v=TpYVyJBmH0g&ab_channel=DougD...

ずっと、こういう変換に理想的な古いゲームは『スターシップ・タイタニック』だと思ってた。

これは久しぶりに聞くゲーム名だ。 :)

Hacker Newsで議論の続きを見る