Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Il connecte Animal Crossing à l'IA en hackant la mémoire de sa GameCube

20 ans plus tard, les vieilles consoles continuent de nous surprendre… La preuve avec ce hack complètement barré qui transforme une GameCube de 2001 en client pour nos IA modernes.

Josh Fonseca a en effet réussi l’exploit de connecter ChatGPT à Animal Crossing via l’émulateur Dolphin. Pas de mod de la cartouche, pas de modification du code original, mais juste du bon vieux Python qui lit et écrit dans la RAM émulée pendant que le jeu tourne.

Hé oui, le mec n’a même pas touché une seule ligne du code original du jeu. Il a “simplement” identifié les adresses mémoire où le jeu stocke les dialogues (0x81298360 pour les curieux) et remplacé le texte à la volée. L’émulateur Dolphin pense faire tourner les dialogues d’origine, mais en fait il affiche du contenu généré par une IA qui tourne sur un serveur cloud.

Techniquement, c’est malin comme approche puisque la GameCube n’a que 24 MB de RAM et un processeur PowerPC à 485 MHz. Il lui est donc impossible de faire tourner un LLM dessus. Du coup il a créé une sorte de pont mémoire entre l’émulateur et le LLM. Son script Python surveille cette adresse en mémoire via le processus Dolphin, récupère le contexte du dialogue, l’envoie à l’IA, et réinjecte la réponse dans la mémoire émulée.

Ce qui complique vraiment les choses, c’est qu’Animal Crossing n’utilise pas du texte brut pour ses dialogues. Le jeu a son propre langage de contrôle avec des codes pour les pauses, les émotions, les effets sonores. Un peu comme du HTML mais version Nintendo 2001, ce qui fait qu’il a fallu créer deux IA : une première qui génère le dialogue créatif (le “Writer AI”) et une autre qui ajoute tous les codes techniques (le “Director AI”).

Voici un extrait :

# A small sample of the control codes I had to encode/decode
CONTROL_CODES = {
 0x00: "<End Conversation>",
 0x03: "<Pause [{:02X}]>", # e.g., <Pause [0A]> for a short pause
 0x05: "<Color Line [{:06X}]>", # e.g., <Color Line [FF0000]> for red
 0x09: "<NPC Expression [Cat:{:02X}] [{}]>", # Trigger an emotion
 0x59: "<Play Sound Effect [{}]>", # e.g., <Play Sound Effect [Happy]>
 0x1A: "<Player Name>",
 0x1C: "<Catchphrase>",
}

# The magic byte that signals a command is coming
PREFIX_BYTE = 0x7F

Je trouve ça cool comme projet car les joueurs rêvent depuis longtemps de dialogues plus variés dans Animal Crossing. En effet, si comme moi, vous n’êtes pas pro-gamer sur Animal Crossing, vous ignorez surement que Nintendo limite les villageois à 8 types de personnalité, ce qui rend les conversations hyper répétitives après quelques heures de jeu.

Avec ce hack, les villageois peuvent donc maintenant discuter de l’actualité mondiale, critiquer Tom Nook sur ses pratiques immobilières douteuses, ou même avoir des conversations philosophiques sur le sens de la vie dans votre village virtuel. Le mod est sur Github pour ceux qui veulent tester sur émulateur.

Notez que la communauté de décompilation d’Animal Crossing a joué un rôle crucial dans ce projet car sans leur travail pour convertir le code PowerPC en C lisible, identifier ces adresses mémoire spécifiques aurait été un cauchemar. C’est grâce donc à eux que le développeur a pu comprendre comment le jeu gère ses dialogues en interne.

Bref, je trouve ça assez marrant qu’une console vielle de +20 ans capable de fonctionner totalement offline (car à l’époque Nintendo était allergique à Internet), soit finalement indirectement “connectée” (via l’émulateur) pour utiliser ce qui se fait de plus hype en ce moment, à savoir l’IA (les LLMs plus exactement).

Comme je vous le disais, pour l’instant, ce hack fonctionne sur la version GameCube originale du jeu via l’émulateur Dolphin. L’auteur mentionne qu’une adaptation sur du vrai matériel serait possible avec le Broadband Adapter officiel, mais nécessiterait beaucoup plus de travail. Les versions ultérieures sorties sur DS, Wii ou Switch utiliseraient une architecture mémoire différente, mais techniquement, rien n’empêche d’adopter une approche similaire.

Comme quoi, avec un peu d’ingéniosité, on peut moderniser n’importe quel jeu rétro !

8BitDo’s Mod Kit turns wired NGC controller into wireless one with Hall Effect joysticks

If you wish to again play games on your Nintendo console with the GameCube controller that has damaged wires and bad instances of drifting analog sticks, then this accessory arrives as a blessing in disguise. 8BitDo has introduced a mod kit that lets you upgrade your GameCube controller to a wireless gamepad, so that you’re not impulsively tempted into buying a new one.

This is not the first time 8BitDo has introduced a mod kit for the Nintendo controllers including the N64 and earlier ones, so this comes as no surprise. The trick here is that you’ll have to replace the existing PCB of the NGC controller with a drop-in board. The Chinese tech company is taking pre-orders for this useful gaming accessory that’ll make you go wireless if you hate the wire clutter on your Nintendo ecosystem. Called the NGC Mod Kit, this one is slated to ship on 25th September.

Designer: 8BitDo

You’ll need to have basic soldering knowledge and loads of patience to make the changeover. Remember, controllers are not that easy to put together when opened up. Although not as tedious as putting together something like a DualSense. Of course, there are certified adapters on the market (including 8BitDo GBros and Nintendo’s official adapter) that allow you to use the wired GameCube controller with the Switch but this mod kit cuts out the extra and brings straightforward wireless Bluetooth connectivity.

Along with making your gamepad wireless, there are other add-ons as well. It has Hall effect joysticks for improved lifespan and immunity against sensitive vibrations if you love to play your FPS games hard. The accessory adds a 300mAh USB-C rechargeable battery with 6 hours of playtime for gaming without interruptions. It also adds a new set of triggers to the controller, so basically, you’ll have a virtually new gaming controller to play around with.

8BitDo Mod Kit priced at $26 is worth the spend if you have a Nintendo GameCube controller with chewed-down wires and defunct joystick controls. The only catch is, that you’ll have to slash out another $26 for the Tetro Receiver for GNC to connect to the GameCube. So, spending $52 on a wire-free setup for your existing NGC controller makes logical sense.

The post 8BitDo’s Mod Kit turns wired NGC controller into wireless one with Hall Effect joysticks first appeared on Yanko Design.

❌