Skip to content(if available)orjump to list(if available)

I replaced Animal Crossing's dialogue with a live LLM by hacking GameCube memory

wincy

That's hilarious that you give the villagers thought and the first thing they want to do is overthrow Tom Nook. If this works in Gamecube on an emulator, surely it'd be possible to make it work on the Switch emulators as well?

vuciv

yes, i'd like to try out Animal Crossing New Horizons next! :)

amilios

Would require decompilation of the Animal Crossing game code for the Switch. I believe DRM has gotten a lot better since the Gamecube days as well. Hypothetically possible maybe but good luck haha

vuciv

I actually think now that I've gone through the process, memory scanning and writing will be enough... Except, they probably have different control codes that I'd need to reverse engineer.

bigyabai

You should be able to run Cheat Engine on your emul*tor of choice to tweak New Leaf "and newer" titles.

And if you're a stickler for pissing Nintendo off in very specific ways, LayeredFS + Atmosphere opens up some modding opportunities right on the console itself. Not sure how easy it would be to pull something like this off though...

dolebirchwood

This is awesome. LLM-powered NPCs is one thing I'm most excited about in the future of gaming. Characters repeating the same scripted dialog over and over again is one of the biggest immersion breakers.

ehnto

I would say local LLMs are already good enough for this. It might be an issue that the GPU is already quite busy at the time it's needed for LLM inference, but not an insurmountable issue.

I wouldn't ever want a game to use it for the core story writing, because it's pretty important that it is consistent and unable to be derailed. But for less serious NPC interactions or like an RPG scenario it is such a great fit.

I also wouldn't want a single player game to rely on remote inference, because that will get turned off eventually and then your game doesn't work.

mungoman2

For story writing you generate into the framework of https://news.ycombinator.com/item?id=45134144

serp002

Agreed, this AI-ran DnD campaign is an example of how good/funny it can be.

https://www.youtube.com/watch?v=TpYVyJBmH0g&ab_channel=DougD...

malfist

I used to care about repeat scripted dialogue like you, until I took an arrow to the knee

famahar

Extremely interesting use case. LLMs as a modding tool to recontexualize virtual spaces. I can see this being a tool used for artistic intervention in the same vein as plunderludic tools like Unity Hawk which allows you to run emulator save states in Unity3D. https://plunderludics.github.io/tools/unityhawk.html

rgovostes

Many years ago there was a project in which researchers swapped localization strings to turn The Sims and Grim Fandango into language practice experiences. Generative dialog that is contextual and skill-appropriate dialog could also be a killer application for language practice.

shomp

This is amazing. Well done figuring out the shared memory hack. That's a huge time saver and really makes sense from an engineering perspective. Ten dollars for the hammer and five thousand for knowing where to strike the machine, to paraphrase a trope on expertise applied correctly.

eric-burel

Technical question: what guarantees that the memory address is stable? It means that allocations always happen in the same order in the game ?

mschuster91

It needs to be a global variable in C. A variable in a function scope or runtime malloc'd spot? No chance of finding a stable spot.

Thankfully, a lot of old games love to use global variables because you can't run out of stack space or allocatable memory. Modern games shy away from that because even the tiniest consoles these days come with gigabytes worth of RAM, even a memory leak has to be a gigantic firehose to bring the system to a halt.

rybosome

The idea of giving every character this sort of agency and seeing what opinion builds up about the world is incredibly fascinating.

Depending on how well we assume an LLM would do at this task, it’s an interesting way to see what “real people” would think about a very hypothetical situation.

null

[deleted]

amilios

There's something about taking old games and injecting new life into them that just seems so fun and exciting! Also very interesting to know that the Animal Crossing codebase has been decompiled into readable C code. Fascinating! So many opportunities to mess with it.

b3lvedere

This is awesome! I'd love lots of screenshots with more funny dialogs. :)

bryanhogan

This is amazing! Would have loved to see more gameplay!

Nition

I've thought for a while that the ideal old game for this kind of conversion would be Starship Titanic.

b3lvedere

That's a game name i haven't heard in ages. :)

vunderba

Nice job! Seems like a good use-case for the random Mii avatars milling about in the Mii Plaza on the original Nintendo Wii.

foota

I wonder if it supports Resetti :-)

But also, why couldn't you look at the code to find the addresses used for dialogue? If it's already disassembled I would think you could just look at the addresses used by the relevant functions/set a breakpoint etc.,?