Despite all "hate" against AI in the (retro)-gaming scene I'm genuinely excited to see these kind of projects (not sure if this one involved any kind of AI) and emulation.
From a technical perspective emulation is absolutely amazing, it requires deep technical knowledge, an excellent understanding of the source system and the optimisations are on another level.
As someone heavily involved in the retro gaming tech space, I've seen a lot of people using AI there and it's really disappointing to me. You're right that it takes a lot of technical knowledge and deep understanding of the system, and the whole point of the endeavor is the process of getting that knowledge and becoming an expert in the system. It's a hobby, not a job; the end goal of a working emulator or whatever is just motivation to carry you along that process of learning.
So having Claude one-shot a NES emulator is almost pointless to me. You're using and looking at source code for an emulator you didn't write -- and you can learn from that, but it's not the same thing and doesn't require you to really understand a CPU the way you would by, say, observing a deviation in game behavior and staring at trace logs to figure out the exact instruction you emulated incorrectly.
It's not all bad -- AI is a great research tool and can automate some of the tedious parts (writing out an instruction decoder by hand is miserable). But using it to just...skip over the effort of doing a project defeats the whole purpose of doing those projects in the first place.
I don't want to be gatekeepy or curmudgeonly or "back in my day..." about it. But for me, my entire career path is due to skills and knowledge I learned spending several years of my life as a teenager figuring out how to write an NES emulator as a relative beginner to programming. And so I feel like using AI for this is depriving the next generation of that learning process. In addition, there are only so many retro games, and fewer popular ones. There's only so much unexplored territory to discover, and doing it with AI deprives another person of that experience and deprives that game's community of someone who might have been able to find a "home" working on projects related to that game.
> AI allows players to have decompiled and in turn ports of games to new platforms, enhanced versions of the game, etc.
We're ten years too early to do what you're suggesting. You need a really, really good understanding of the decompiled codebase and the original game and platform to port or implement new features.
You can't really ask "Claude, make Ocarina Of Time Widescreen" and expect it to work.
We're not ten years early. If you can afford the tokens, and can course-correct the agent when it gets off in the weeds, AI can do 95% of the grunt work of a decomp now.
Also, "widescreen OOT" is probably tweaking a pair of projection matrix floats in the binary so that might not be a great example :)
You could absolutely do that, because it's a narrow, targeted change. I give it 10% odds Claude could make that change to a binary ROM and 70% to a decomp.
> AI allows players to have decompiled and in turn ports of games to new platforms, enhanced versions of the game, etc.
To what end? The biggest benefit of tinkering with 40-year-old hardware is the experience of doing so. The knowledge and intuition you learn about how computers really work; the friendships you develop through collaboration with others, through asking for help with your projects and helping others with theirs; and the relaxing Saturday afternoons spent investigating and debugging and experimenting. The "benefit" of having a game that's been recompiled to a native executable for your PC or whatever is marginal compared to the benefit of the process to get to that point. That end goal is just a lighthouse to keep you on track, and when you get there maybe you'll play the recompiled game once to celebrate a job well done before moving on to another project.
If writing software is a means to an end, then there's value in anything that reduces the effort to get to that end. But as I see it, retro gaming projects are mostly an end to a means.
> Seems pretty egoistical when nobody's forcing you to use AI in any way, it provides an objective benefit to other people.
I have three fundamental claims:
- There is little to no positive benefit to using AI for hobby projects whose completion provides little to no intrinsic value.
- Choosing to do so has a negative impact on you, as it bypasses an incredibly valuable learning experience.
- Choosing to do so has a negative impact on others, as it takes away someone else's project opportunity (there are a finite amount of popular retro games, and many people prefer to work on novel projects rather than recreating something that has already been done).
I'm not sure what's "egoistical" about that, and I'd love if you could elaborate on that because I'm still wrestling with the ethics and implications of all this myself. The way I see it, it's better if I choose to forgo the use of AI on my projects, and I think others should choose the same.
---
Many years back, one retro gaming community I'm a part of had a prolific contributor who was extremely knowledgeable about the game, but also incredibly abrasive. He was the most knowledgeable person in the community at the time, and held this over others; discrediting their achievements, discouraging their attempts to learn, constantly starting fights and driving many good people out of the community. Yet he was allowed to remain in the community for many years, because everyone thought we needed his expertise.
Eventually the community came to the realization that it's just a video game and we don't "need" anything at all. None of the long-term community members are really here for the game anymore; we're here for the experience and the camaraderie. So we should make decisions (like kicking out this member) that are technically suboptimal for the game (at least in the short term), but better for fostering the community.
In a similar vein, using AI within these sorts of hobby spaces may allow faster progress on such projects, but it takes away the value of completing the projects in the first place, to the detriment of both the individual and the community.
> To what end? The biggest benefit of tinkering with 40-year-old hardware is the experience of doing so.
The biggest benefit to you. Other people, most people in fact, just like the game and want to enjoy it in new ways. They don't care about the code or reverse engineering itself. That people now benefit that it's easy to decompile because otherwise outside of really big titles like sm64, probably nobody is going to take the effort to manually decompile a less popular game.
That's the egoistical part.
Nobody is forcing you to use AI. And it's not really any different to how people would build their own NES emulators to learn instead of just grabbing whatever best NES emulator already exist.
I think my biggest issue with that is that people who just want to replay a game in a fresh way once or twice aren't the kind of people who are going to stick around and form a community; and those communities are what foster the creativity which brings freshness and depth to the games. I see it as quite similar to AI music creation, which, sure, allows people access to music that didn't exist before without putting in the effort, but in doing so it replaces what has historically been a community endeavor with a highly individualist, consumerist one.
My perspective is biased by the fact that such communities are an important part of my life. I don't want to see my years-long collaborations and friendships made obsolete by someone looking for an afternoon of nostalgia. And maybe everything will be fine, and the AI-users and the community-builders will go their separate ways and leave each other alone. But communities which exist today are having to ask how we should relate to AI, and my conclusion is that it's best kept out of hobbyist spaces if we want those spaces to continue to exist.
To be able to play retro games on current hardware/OS?
Why does it always need to be so complicated - I have zero interest in learning about these legacy platforms but I definitely want to play some nostalgic games.
Mindboggling that you see this as a negative and even want to kick out people to “protect” the community
Also to fix bugs. Someone recently ran Shadowrun (Genesis) disassembly through chatgpt and discovered that weapon upgrades were completely broken (using the wrong value as an index and ending up reading character stats as upgrade flags), defensive spells actually buffed your enemies, not you, etc. and released a romhack to fix things.
Lately I've seen this statement that I agree with: for some people, a hobby is a means to an end (which means using AI to achieve the goal is a heresy), for others, it is the end in itself (which it isn't).
Sorry, what? The benefit is that we have these games to play. That is the intrinsic benefit. Most of us don't care about the other things you listed when all we want to do is play old games. You're free to value those things in this context and that's fine, but it's weird to impose those values on others when they're providing what people want.
Much like you, anyone who wants to get deep into emulation and reverse engineering will. They will do so because AI cant quite do what they want, and probably because they are curious. The upside is that when they are that deep they will have a bot to ask questions of along the way, and they will recognise where it comes up short eventually.
Yes people will lazy their way out of it. Many of us program, but few of us ever bothered to learn, with fluency, assembly. Those who wanted to did, and those who didnt stuck to higher level languages.
I don't see why the goal of a decomp needs to be "learning how to decomp"--although I guarantee you that working on one, even AI-assisted, will teach you those skills.
Personally, I think it's fascinating to see how the industry greats actually made the magic happen. Everyone talks about the endless fine-tuning of controls that Miyamoto asked for in SM64: now we get to see what that actually looks like! Or maybe the game had a hidden secret debug menu that no one's ever seen in 20 years, or an unfinished character is hiding in the code.
Maybe my perspective is different because I've worked on games for most of my career, so seeing how _other_ teams solved the hard challenges is exciting for me.
I don't get it. Your purpose is to learn, why should someone else doing whatever they want be an impediment? You aren't racing to the market, you aren't pursuing the same objective. If your motivation is the learning process, an existing AI assisted, AI vibed or human created emulator doesn't stop you from writing your own and learning exactly the same way
It's sad that the community isn't exactly doing their best to separate developers using AI to debug poorly understood quirks and bugs of their emulation projects from those screaming "computah! Decompile me a Super Smash Bros".
MAME is doing some amazing reverse engineering work on some more recent arcade boards by using AI[1] that would've taken decades to do so by hand, and it's being conflated with some rando committing to github the result of 5 hours of Claude stirring over the Golden Eye N64 rom and then publishing on twitter "Done, here's my Patreon link, please and thank you".
Those most-intelligent of humans who carefully memorized verbally the most important civilizational facts known had the same reaction to the invention of writing.
You are clearly a wizard of a prior era. But it is a new era.
"For this invention will produce forgetfulness in the minds of those who learn to use it, because they will not practice their memory. Their trust in writing, produced by external characters which are no part of themselves, will discourage the use of their own memory within them. You have invented an elixir not of memory, but of reminding; and you offer your pupils the appearance of wisdom, not true wisdom, for they will read many things without instruction and will therefore seem [275b] to know many things, when they are for the most part ignorant and hard to get along with, since they are not wise, but only appear wise."
That is a fictional objection raised by the Egyptian god Amun to the Egyptian god Thoth, who was supposed by the Egyptians to have invented music and writing, and was supposed by the Greeks to have invented absolutely everything else too, including botany, surveying, and government.
It's also a critique of writing, written by Plato, to impress on us that Socrates was great orator (or arguer) and was better that way. But it's not somebody's reaction to the invention of writing. It's an imagined reaction to the invention of writing.
Be wonderful if you approached a translated piece, by first considering the time and culture that produced it. Understanding the intent, rather than quoting it out of place.
This is a political critique, on the rule of law (writing) over attempting to treat things on a case by case basis (philosophy).
Quoting it, without understanding it, is part of that author's complaint.
I browsed through a few random files in that repo. There are high-quality code comments everywhere I looked. AI is the perfect tool to do this sort of thing. Can you imagine a human sitting down and documenting a million lines of decompiled code from a dev team 20 years ago?
Boggles my mind that there is hate for AI in retro-gaming. It's all about making existing things work. If it works and plays well, who cares if Claude did it in an afternoon or some human who spent a year of his life. In fact, I'd rather have Claude do it. Humans will get bored, get involved in community drama, disappear, etc. Unfortunate for the humans who are seeing their life's contribution to the scene made obsolete by a few kilowatt-hours in a datacenter, but good for the rest of us.
the comments are really not high-quality. There's a lot of words in places where only a few would be much clearer.
This isn't to say it's impossible to guide good context-aware commenting style from.an AI, but there would be much terser/usable comments on all of the weapons source for example.
The biggest problem with this stuff is, as usual, that the people guiding the AI don't know what "good" decomps etc look like IMO. AI tool usage tends to reflect ones own tastes and understanding.
Can't really decipher what line 21 is saying so I concede there could be some slop in there. But the comments on lines 27-30 seem to be informative and give some context that the code doesn't have.
Granted, I'm not an expert on RE4's source code, but the comments look helpful enough.
I didn't say they were wrong, I said they were not high-quality.
Every company works in their own way, but I highly doubt the original source would have a big paragraph at the top instead of a more "structured" comment. Or maybe even nothing at all!
Here's a "counterexample": the pistol code for half life 2[0]. Comments are pretty sparse because it's all relatively self explanatory. The comments that are present are to point out things that are not so.
You end up with something that's easy to work with and where you're not trying to read a paragraph of text that enumerates a bunch of properties of the code in the file in no particular order.
Some things are important context for the whole file. Some things are important context for a fragment of code. Some things ... are simply not that important to note.
I really like a small or larger comment above each function and more, even if people often say "less is more" - I disagree. Comment everything! It won't hurt. And people who don't like it can remove them and feel mighty.
I think the AI involvement makes this feel very different. Right now it’s just recomp/decomp of older titles, but it feels like a stepping stone to just automated plagiarism of basically any game.
I really think the hate is just masked jealousy, now project managers, tpms and line managers can submit rather substantial code. That wasn’t possible before and it took away some value from devs (I say this as a dev of more than 25 years). I watch PM fix issues now instead of waiting for a dev. I understand the anger but these tools are not going away
In the early days of emulation, there were tons of low-quality and imprecise emulator backends. If you wanted to play a dozen SNES games, you usually needed a half-dozen emulators to get them all to boot to the main menu. They were disparate efforts usually led by 1 or 2 people that wanted to get a Super Famicom game to run, and then gave up on implementing or fixing support for other games.
We live in a golden age of emulation because that attitude died out. With more powerful computers (and less hack-oriented development) it became possible to properly emulate a complete console with a high level of accuracy. For preservationist purposes, accurate emulation is much more important than being the first to emulate a game, or even being able to decompile it. The only reason that we can point and laugh at low-quality efforts like Nintendo Switch Online is because the community cares even more than Nintendo did. The reason Wine/DXVK/Proton works so well is because it didn't fracture itself into a thousand downstream forks to fix one specific game. It's a holistic effort.
A lot of the hand-wringing comes from a justified place that doesn't want to see emulation backslide into a bazaar-like community. You're free to disagree with their logic and vibe-code a thousand game decomps, but in all likelihood emulation will be a more popular choice for the foreseeable future. Lots of people emulate stuff on their iPhone or Steam Deck, almost nobody is playing a game decomp on it though. I can't imagine AI tipping the scales on decomp popularity, especially among average Joes.
> The reason Wine/DXVK/Proton works so well is because it didn't fracture itself into a thousand downstream forks to fix one specific game.
Well... it sorta did, on the other hand the scope of the project is just too big for any of those forks to survive more than a few releases. There's a multitude of various Proton releases with a single-game support. The android-oriented builds are even a bigger of a mess.
I don't think that's right. I helped work on SNES9X in the early 2000s and it ran nearly everything perfectly.
Sure there were smaller emulators which didn't work well, that's understandable. But gamers didn't need more than one or two emulators to play every game that existed; you just needed to pick the right ones.
You could put an Einstein paper on a photocopier, mask the author, put your name in the place and publish. Except everyone would have thought you are an idiot.
You could clone the Linux kernel, erase all copyrights and release under Idiux. Except everyone would have thought you are an idiot.
Now that there are laundering machines financed with unlimited printed and previously stolen money a large number of developers affirms and praises the idiots.
From a technical perspective emulation is absolutely amazing, it requires deep technical knowledge, an excellent understanding of the source system and the optimisations are on another level.