- Регистрация
- 17 Февраль 2018
- Сообщения
- 38 920
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 2 093
Offline
Unofficial mod lets classic Nintendo GameCube title use AI chatbots with amusing results.
Artist's impression of the "real" Tom Nook cornered up in a tree. Credit: NunyaCarley via Getty Images / Benj Edwards
When software engineer Joshua Fonseca recently connected the GameCube simulation classic Animal Crossing to a modern AI language model like the kind that powers ChatGPT, he decided to shake things up. By programming the AI to roleplay as villagers growing aware of their debt situation, and giving them a shared memory to track conversations, Fonseca orchestrated a scenario where the residents began to organize against their raccoon landlord.
In Animal Crossing, Tom Nook runs the town shop and provides home loans (paid out in bells, the in-game currency) that keep players perpetually in debt, which is a core mechanic of the game.
"Predictably, it escalated into an anti-Tom Nook movement," Fonseca wrote in a detailed post documenting his hack that bridges a 2002 game to cloud-based AI without modifying any game code. While Fonseca frames the uprising as a type of emergent phenomenon in his post and a YouTube video, examination of the source code by AI researcher Simon Willison shows that Fonseca specifically instructed the villagers to behave this way and even escalate the unrest over time.
"You are a resident of a town run by Tom Nook. You are beginning to realize your mortgage is exploitative and the economy is unfair," reads the initial prompt. "Discuss this with the player and other villagers when appropriate."
Even though Fonseca stacked the deck, so to speak, it's still an interesting technical hack.
"I Replaced Animal Crossing's Dialogue with AI by Hacking GameCube Memory"
After connecting the simulated villagers to a real-world newsfeed to provide context, characters began relating headlines in casual conversation, which the developer found surreal. One villager named Mitzi suddenly announced, "About the news? European leaders are planning to meet with Trump and Zelenskyy!" Another delivered a humorous simulation of self-awareness: "Oh my gosh, Josh! I just had the weirdest dream, like, everything we do is a game! Arfer!"
As amusing as this type of mod is, it's worth remembering that large language models are always playing roles prompted by humans, pulling statistically plausible outputs from training data that researchers fed into their neural networks when they created or later fine-tuned them.
Hacking a pre-Internet console
Making this amusing amalgam of past and present technology possible required some clever engineering. The technical feat Fonseca pulled off involves a Python script that monitors the game memory through the Dolphin emulator, sends dialogue context to AI models like GPT-5 or Gemini, and writes the responses back into the GameCube's RAM.
The GameCube presented unique obstacles for this project. With its 485 MHz PowerPC processor, 24MB of RAM, and no Internet connectivity (unless you add the Modem or Broadband Adapter), the console was "fundamentally, physically, and philosophically designed to be an offline island," Fonseca notes.
His timing proved fortunate. The Animal Crossing decompilation community had just finished reverse-engineering the game's source code, providing readable C instead of PowerPC assembly. This gave him access to the dialogue system's inner workings through a file called m_message.c. (He considered using the Broadband Adapter, but it would have added many layers of additional complexity to the project.)
A screenshot of LLM-powered dialogue injected into Animal Crossing for the GameCube. Credit: Joshua Fonseca
Rather than write an entire network stack for the GameCube from scratch, Fonseca implemented what he calls a "memory mailbox." This classic game modding technique uses specific RAM addresses as communication channels. His Python script writes directly to GameCube memory through Dolphin while the game reads from those same locations.
Finding these addresses required what Fonseca describes as becoming a "memory archaeologist." He wrote a custom scanner and spent hours in a loop: talk to a villager, freeze the emulator when dialogue appeared, scan all 24 million bytes of RAM for the text string, then cross-reference with different villagers. He eventually located the speaker's name and dialogue buffer at specific addresses.
But discovering the addresses was only half the problem. When you talk to a villager in Animal Crossing, the game normally displays dialogue instantly. Calling an AI model over the Internet takes several seconds. Willison examined the code and found Fonseca's solution: a watch_dialogue() function that polls memory 10 times per second. When it detects a conversation starting, it immediately writes placeholder text: three dots with hidden pause commands between them, followed by a "Press A to continue" prompt.
"So the user gets a 'press A to continue' button and hopefully the LLM has finished by the time they press that button," Willison noted in a Hacker News comment. While players watch dots appear and reach for the A button, the mod races to get a response from the AI model and translate it into the game's dialog format.
Learning the game’s secret language
Simply writing text to memory froze the game. Animal Crossing uses an encoded format with control codes that manage everything from text color to character emotions. A special prefix byte (0x7F) signals commands rather than characters. Without the proper end-of-conversation control code, the game waits forever.
"Think of it like HTML," Fonseca explains. "Your browser doesn't just display words; it interprets tags ... to make text bold." The decompilation community had documented these codes, allowing Fonseca to build encoder and decoder tools that translate between a human-readable format and the GameCube's expected byte sequences.
A screenshot of LLM-powered dialog injected into Animal Crossing for the GameCube. Credit: Joshua Fonseca
Initially, he tried using a single AI model to handle both creative writing and technical formatting. "The results were a mess," he notes. "The AI was trying to be a creative writer and a technical programmer simultaneously and was bad at both."
The solution: split the work between two models. A Writer AI creates dialogue using character sheets scraped from the Animal Crossing fan wiki. A Director AI then adds technical elements, including pauses, color changes, character expressions, and sound effects.
The code is available on GitHub, though Fonseca warns it contains known bugs and has only been tested on macOS. The mod requires Python 3.8+, API keys for either Google Gemini or OpenAI, and Dolphin emulator. Have fun sticking it to the man—or the raccoon, as the case may be.


Artist's impression of the "real" Tom Nook cornered up in a tree. Credit: NunyaCarley via Getty Images / Benj Edwards
When software engineer Joshua Fonseca recently connected the GameCube simulation classic Animal Crossing to a modern AI language model like the kind that powers ChatGPT, he decided to shake things up. By programming the AI to roleplay as villagers growing aware of their debt situation, and giving them a shared memory to track conversations, Fonseca orchestrated a scenario where the residents began to organize against their raccoon landlord.
In Animal Crossing, Tom Nook runs the town shop and provides home loans (paid out in bells, the in-game currency) that keep players perpetually in debt, which is a core mechanic of the game.
"Predictably, it escalated into an anti-Tom Nook movement," Fonseca wrote in a detailed post documenting his hack that bridges a 2002 game to cloud-based AI without modifying any game code. While Fonseca frames the uprising as a type of emergent phenomenon in his post and a YouTube video, examination of the source code by AI researcher Simon Willison shows that Fonseca specifically instructed the villagers to behave this way and even escalate the unrest over time.
"You are a resident of a town run by Tom Nook. You are beginning to realize your mortgage is exploitative and the economy is unfair," reads the initial prompt. "Discuss this with the player and other villagers when appropriate."
Even though Fonseca stacked the deck, so to speak, it's still an interesting technical hack.
"I Replaced Animal Crossing's Dialogue with AI by Hacking GameCube Memory"
After connecting the simulated villagers to a real-world newsfeed to provide context, characters began relating headlines in casual conversation, which the developer found surreal. One villager named Mitzi suddenly announced, "About the news? European leaders are planning to meet with Trump and Zelenskyy!" Another delivered a humorous simulation of self-awareness: "Oh my gosh, Josh! I just had the weirdest dream, like, everything we do is a game! Arfer!"
As amusing as this type of mod is, it's worth remembering that large language models are always playing roles prompted by humans, pulling statistically plausible outputs from training data that researchers fed into their neural networks when they created or later fine-tuned them.
Hacking a pre-Internet console
Making this amusing amalgam of past and present technology possible required some clever engineering. The technical feat Fonseca pulled off involves a Python script that monitors the game memory through the Dolphin emulator, sends dialogue context to AI models like GPT-5 or Gemini, and writes the responses back into the GameCube's RAM.
The GameCube presented unique obstacles for this project. With its 485 MHz PowerPC processor, 24MB of RAM, and no Internet connectivity (unless you add the Modem or Broadband Adapter), the console was "fundamentally, physically, and philosophically designed to be an offline island," Fonseca notes.
His timing proved fortunate. The Animal Crossing decompilation community had just finished reverse-engineering the game's source code, providing readable C instead of PowerPC assembly. This gave him access to the dialogue system's inner workings through a file called m_message.c. (He considered using the Broadband Adapter, but it would have added many layers of additional complexity to the project.)

A screenshot of LLM-powered dialogue injected into Animal Crossing for the GameCube. Credit: Joshua Fonseca
Rather than write an entire network stack for the GameCube from scratch, Fonseca implemented what he calls a "memory mailbox." This classic game modding technique uses specific RAM addresses as communication channels. His Python script writes directly to GameCube memory through Dolphin while the game reads from those same locations.
Finding these addresses required what Fonseca describes as becoming a "memory archaeologist." He wrote a custom scanner and spent hours in a loop: talk to a villager, freeze the emulator when dialogue appeared, scan all 24 million bytes of RAM for the text string, then cross-reference with different villagers. He eventually located the speaker's name and dialogue buffer at specific addresses.
But discovering the addresses was only half the problem. When you talk to a villager in Animal Crossing, the game normally displays dialogue instantly. Calling an AI model over the Internet takes several seconds. Willison examined the code and found Fonseca's solution: a watch_dialogue() function that polls memory 10 times per second. When it detects a conversation starting, it immediately writes placeholder text: three dots with hidden pause commands between them, followed by a "Press A to continue" prompt.
"So the user gets a 'press A to continue' button and hopefully the LLM has finished by the time they press that button," Willison noted in a Hacker News comment. While players watch dots appear and reach for the A button, the mod races to get a response from the AI model and translate it into the game's dialog format.
Learning the game’s secret language
Simply writing text to memory froze the game. Animal Crossing uses an encoded format with control codes that manage everything from text color to character emotions. A special prefix byte (0x7F) signals commands rather than characters. Without the proper end-of-conversation control code, the game waits forever.
"Think of it like HTML," Fonseca explains. "Your browser doesn't just display words; it interprets tags ... to make text bold." The decompilation community had documented these codes, allowing Fonseca to build encoder and decoder tools that translate between a human-readable format and the GameCube's expected byte sequences.

A screenshot of LLM-powered dialog injected into Animal Crossing for the GameCube. Credit: Joshua Fonseca
Initially, he tried using a single AI model to handle both creative writing and technical formatting. "The results were a mess," he notes. "The AI was trying to be a creative writer and a technical programmer simultaneously and was bad at both."
The solution: split the work between two models. A Writer AI creates dialogue using character sheets scraped from the Animal Crossing fan wiki. A Director AI then adds technical elements, including pauses, color changes, character expressions, and sound effects.
The code is available on GitHub, though Fonseca warns it contains known bugs and has only been tested on macOS. The mod requires Python 3.8+, API keys for either Google Gemini or OpenAI, and Dolphin emulator. Have fun sticking it to the man—or the raccoon, as the case may be.