Animal Crossing : quand la décompilation et l’IA donnent une nouvelle voix aux habitants
Il y a des hacks qui se contentent de changer quelques textures ou d’ajouter une option de confort. Et puis il y a ceux qui repoussent les limites de ce qu’on croyait possible. C’est le cas du travail de Josh Fonseca, qui a réussi à relier Animal Crossing sur GameCube à une intelligence artificielle moderne. Résultat : Tom Nook, Kéké et les autres villageois ne sont plus condamnés à répéter des dialogues écrits il y a plus de vingt ans. Ils sont désormais capables d’improviser, de réagir et de tenir des conversations inédites.
Ce qui rend ce projet fascinant, c’est qu’il ne repose pas sur un mod classique, mais sur un mélange de reverse engineering mémoire et de décompilation du jeu.
La décompilation, un préalable indispensable :
Pour comprendre comment fonctionne un programme sans avoir accès à son code source, il faut remonter à partir du binaire. Sur GameCube, les jeux sont écrits en C puis compilés en instructions PowerPC. Décompiler, c’est traduire ce code machine en un C reconstruit, lisible par un humain.
Dans le cas d’Animal Crossing, la communauté de passionnés a déjà réussi à isoler des fichiers entiers comme m_message.c, qui gère l’affichage des dialogues. Ce fichier est une mine d’or : on y découvre que le moteur du jeu ne se contente pas d’afficher du texte brut, mais qu’il interprète une suite de caractères spéciaux et de codes de contrôle (pauses, émotions, couleurs, fins de message).
Sans cette étape de décompilation, il aurait fallu des mois d’essais-erreurs dans la mémoire pour comprendre pourquoi certaines injections plantaient le jeu. Là, la documentation existe déjà : on connaît la “grammaire” attendue par le moteur.
Le cœur de la bidouille : détourner la RAM :
Au lieu de patcher le binaire, Josh a choisi une voie plus élégante : intercepter les dialogues directement en mémoire vive.
Quand un personnage parle, le texte est copié en RAM dans une zone bien précise avant d’être affiché. C’est cette zone que le script va surveiller en permanence. Dès qu’une chaîne apparaît, elle est capturée, envoyée à un modèle de langage moderne, puis remplacée par la réponse générée.
Pour la console, rien n’a changé : elle continue de lire dans sa mémoire et d’afficher le contenu qu’elle y trouve. Mais ce contenu, lui, ne vient plus du script original : il sort tout droit d’une IA.
Le pipeline IA ↔ GameCube :
Lecture mémoire : un script Python lit la RAM via l’émulateur Dolphin.
Envoi au LLM : le texte intercepté est transmis à une IA hébergée sur une machine externe.
Post-traitement : la sortie de l’IA est traduite en “langage Animal Crossing” (codes spéciaux : \p pause, \e émotion, etc.).
Réinjection : la chaîne convertie est replacée dans le tampon mémoire.
Le système n’est pas limité à l’émulation. Il fonctionne sur Dolphin, mais aussi sur une GameCube réelle avec BroadBand Adapter, en exploitant la mémoire via le réseau.
Le projet est compatible avec différentes API (OpenAI, Google Gemini…), mais il est aussi possible d’utiliser son propre LLM en local. Avec une RTX 3090 (24 Go de VRAM) considérée comme un minimum confortable, on peut générer les dialogues depuis chez soi sans dépendre de services tiers.
Pourquoi ce n’est pas si simple
Alignement mémoire : les dialogues sont dans des structures binaires précises.
Encodage : le jeu utilise un format proche du Shift-JIS.
Concurrence : plusieurs PNJ parlant en même temps posent problème.
Latence : les appels à l’IA prennent 1–2 secondes → solution : pauses simulées.
La décompilation a permis de comprendre et respecter toutes ces contraintes.
Des habitants qui parlent “vraiment” :
Grâce à ce système, les PNJ ne sont plus limités aux scripts Nintendo. Ils peuvent commenter l’actualité, improviser, ou se moquer du joueur. On redécouvre le jeu sous un nouveau jour.
Une porte ouverte sur le rétro-gaming augmenté :
Ce projet prouve que la combinaison décompilation + injection mémoire + IA peut donner une nouvelle vie à des jeux anciens. Demain, d’autres classiques pourraient être augmentés de la même façon.
Comment ça se fait, en pratique ? :
Dumper la RAM sous Dolphin.
Repérer une phrase connue.
Vérifier la stabilité de l’adresse.
Injecter un test (“TEST”).
Automatiser la capture.
Nettoyer la sortie IA.
Réinjecter proprement.
Exemple concret : Tom Nook et l’IA
Sans hack :
"Bonjour ! Bienvenue chez Nook !"
Avec hack :
Le script intercepte la phrase.
Contexte envoyé à l’IA (PNJ = Tom Nook).
Réponse générée : "Ah, te voilà enfin ! J’espérais que tu viendrais dépenser quelques clochettes…"
Ajout des codes de pause et d’émotion, puis réinjection.
À l’écran : Tom Nook fait une pause et affiche ce nouveau dialogue, parfaitement intégré.
Pour aller plus loin :
Code source : GitHub
– animal-crossing-llm-mod
Démo vidéo : [url=https://www.youtube.com/watch?v=7AyEzA5ziE0]YouTube
Installer son propre serveur IA/LLM :
Lancer un serveur local compatible OpenAI API tel que vLLM, Ollama, etc..
Configurer l’URL et la clé d’API.
Dolphin (ou GameCube + BBA) enverra les requêtes directement à ce serveur.
Matériel recommandé :
RTX 3090 (24 Go VRAM) = idéal pour modèles 7B.
RTX 4090 = encore plus fluide.
16-12 Go VRAM = modèles 5-7B quantifiés (Gemma, Mistral, Qwen).
8-10 Go VRAM = modèles 3-5B quantifiés.
6 Go VRAM ≈ modèles 2-3B quantifiés.
Modèles LLM adaptés selon la VRAM :
≈ 24 Go (RTX 3090) → Qwen-7B, Mistral-7B, Gemma-7B (quantifiés), confort + contexte long.
16-12 Go → 7-8B en quantification 8-bit, ou 5-6B en 16-bit.
8-10 Go → modèles ~5-6B ou plus petits (Phi-3 Mini, Gemma-4B).
6 Go → modèles 2-3B quantifiés (Qwen-2.5 2B, Phi-3 Mini).
Avec ces solutions, chacun peut adapter le projet à sa machine et profiter d’un Animal Crossing augmenté par l’IA.
Eden : de la genèse à la v0.0.3
De Yuzu à Citron, puis Eden
Après l’arrêt brutal de Yuzu en 2024, du fait de la disponibilité de son code source sous licence libre, plusieurs forks ont vu le jour pour poursuivre le travail laissé en suspens.
Parmi eux, Citron s’est imposé rapidement avec une communauté active, mais aussi ses propres polémiques.
Une partie des développeurs de Citron a fini par se détacher pour créer Eden, présenté comme un fork de Yuzu mené par un ex-développeur de Citron.
Le projet affiche clairement ses priorités et son développement est très actif : performances, stabilité et portabilité, avec un support officiel pour Linux (utile notamment pour la SteamDeck et la PS4 Pro), Android, et des travaux en cours sur macOS, Windows, BSD et Solaris.
Ce qu’est Eden aujourd’hui :
Eden propose des builds officiels multi-plateformes, avec l’idée de rapprocher l’expérience entre PC et mobile.
L’équipe de développement publie régulièrement des correctifs et met l’accent sur une communication transparente, là où d’autres forks restent plus flous.
---
Nouveautés majeures de la v0.0.3 (stable, 5 septembre 2025)
Points connus / limitations
Les firmwares 20+ ne sont pas encore pris en charge. L’avertissement a disparu dans la liste des jeux, mais le menu HOME bloque toujours si un firmware trop récent est utilisé. Certaines mises à jour récentes de jeux restent instables.v0.0.2-pre-alpha
Paramètres par défaut revus pour des valeurs plus adaptées. Avertissement ajouté pour les migrations depuis Citron. Corrections de crashs liés à Qlaunch. Suppression expérimentale du support firmware 20.0.0+.