Live data from Hacker News

Decompiling a Nintendo 64 game in 84 days

blog.chrislewis.au

181–190 of 190 posts

Re: Decompiling a Nintendo 64 game in 84 days

#181

I've been absolutely loving the decomp projects that have been coming out lately. Huge props to the writer for this, Snowboard Kids is a real gem. I'd also encourage people to check out the Legend of Dragoon recomp [1]. It's a real labor of love that has breathed new life into a largely abandoned game. You can play it fully vanilla, or with improved graphics, fixes to cumbersome design choices, bugfixes, etc. [1] htt…

Loving this trend too. It inspired me to use AI to decompile my favorite games as well, mostly Mega Man Battle Network games from my childhood. I'm not going to make it in 84 days though. I insist on understanding the game and documenting it myself instead of just having the AI do it all for me on autopilot. As slow as that is, it's already led to some awesome moments. AI built a literal synthesizer that played back…

This brings back fond memories of fiddling with programs using a Super Snapshot cartridge on my Commodore 64.

I remember one game had a crude speech synthesis and I discarded the game and persisted out the speech synthesis code independently as a separate program to play with arbitrary input.

Re: Decompiling a Nintendo 64 game in 84 days

#182

Earlier quoted context omitted.

How did you get started? I have a project in mind and would love to try, but getting a foothold on it feels really hard when you are starting with an ISO image and an empty folder.

For gamecube games you are in luck because there is a template: https://github.com/encounter/dtk-template But in essence it's not so complex. You only need the original compiler that was used to compile the game and tools like ghidra. Binutils for the architecture can help. From there you ask the agent to start building the project. Prepare to spend a ton of tokens though if you go the full AI route.

TBH I'm not even that interested in getting byte-for-byte reconstruction. I just want to bring an old game back from the dead.

Re: Decompiling a Nintendo 64 game in 84 days

#183
post #166

Earlier quoted context omitted.

ITIL is at version 5 now - the idea of a process, is not exactly forgotten in the industry. But you're working with a stochastic system. Even GPU matrix calculations are nondeterministic. It isn't possible, to the delete the entire source code and get exactly the same software back. And any spec, that is specific and non-ambiguous enough to carefully construct the exact needs of each is... Well, that's code. Not a PB…

I said "functionally", not (as Claude says) "byte-identically".

I said Epic and PBI, not bytes. User Stories are ambiguous. Acceptance Criteria can be argued. And which path in our languages ambiguities that the model will follow, cannot be deterministic by the nature of our hardware.

If you produce a spec that is entirely unambiguous in every way, again, that's code. That's the purpose of a programming language - distilling from the natural ambiguities of natural language, to specificity.

Re: Decompiling a Nintendo 64 game in 84 days

#184
post #167

Earlier quoted context omitted.

If you can't see why your analogy is deeply broken I honestly don't know what to do for you.

You don't know HOW someone is using AI. I for example, let the AI generate inbetween reports for a hobby project. These reports describe me how the project looks, stages, progress, etc. I do know plenty about this particular project. Also i wrote tons and tons of CRUD apps, do I really loose anything if that one quiz i did for learning, i don't understand in detail?

Yeah you're still missing the point.

A more appropriate analogy for what you just described might be writing vs ghost writing.

But it's certainly not handwriting vs typewriter.

Note: there's no implied value judgement here.

My point is that the analogy that LLMs are equivalent to typewriters is fundamentally broken. Using an LLM to create text, and writing using writing tools, are simply completely different activities that just happen to lead to (at least superficially) the same outcomes.

Similarly, downloading a vase and 3D printing it isn't the same as making pottery. Programming a knitting machine to make socks for you isn't knitting. Putting text on paper using a printer isn't calligraphy.

And I'd argue we're going to collectively conclude that assembling software systems using AI isn't coding.

Again: no value judgement. But life isn't always just about outcomes. Process does, in fact, matter, and I think it's important we maintain these distinctions.

It's genuinely amazing and baffling to me that a non-trivial number of people around here don't seem to grok that.

Re: Decompiling a Nintendo 64 game in 84 days

#185

Earlier quoted context omitted.

For gamecube games you are in luck because there is a template: https://github.com/encounter/dtk-template But in essence it's not so complex. You only need the original compiler that was used to compile the game and tools like ghidra. Binutils for the architecture can help. From there you ask the agent to start building the project. Prepare to spend a ton of tokens though if you go the full AI route.

TBH I'm not even that interested in getting byte-for-byte reconstruction. I just want to bring an old game back from the dead.

Yeah I get that. The problem is that with AI decomps you really need a clear and verifiable target and exactness solves that problem. If you step away from that you basically leave any agent free space to cheat.

Re: Decompiling a Nintendo 64 game in 84 days

#186

Earlier quoted context omitted.

TBH I'm not even that interested in getting byte-for-byte reconstruction. I just want to bring an old game back from the dead.

Yeah I get that. The problem is that with AI decomps you really need a clear and verifiable target and exactness solves that problem. If you step away from that you basically leave any agent free space to cheat.

Yeah, that makes sense. Even taking AI out of the equation, that's how you know a decomp is actually right--it matches.

Re: Decompiling a Nintendo 64 game in 84 days

#187
post #151

Earlier quoted context omitted.

> those who refuse to use it will be lapped, in terms of ... quality, and security, by those who do use it. I uh... I might have burst out laughing. Sorry, but do you really, seriously, believe the machine so fantastic that it is widely called "slop", produces amazing quality outputs?

Oh honey, the next few years is going to be brutal for you.

Why are you so condescending? It would be better to write an actual argument instead of what you did.

Re: Decompiling a Nintendo 64 game in 84 days

#188
post #97

Earlier quoted context omitted.

If I hand you a math problem, and you point your camera at it and write down ChatGPT’s answer, you are definitely not doing math.

"If I hand you a equation to solve, and you type in the numbers, hit enter on your programmatic calculator, and write down Texas Instruments' answer, you are definitely not dong math." Throw in "and when the batteries in your calculator die, you'll need to know how to do it by hand!" for good measure. :-) I jest...

Dude, maybe stop holding up your high school math teacher as some kind of arbiter of truth ...

If the math teacher is unaware of the difference between "math" and "arithmetic", what are you even talking about?

Re: Decompiling a Nintendo 64 game in 84 days

#189

Earlier quoted context omitted.

How did you get started? I have a project in mind and would love to try, but getting a foothold on it feels really hard when you are starting with an ISO image and an empty folder.

For gamecube games you are in luck because there is a template: https://github.com/encounter/dtk-template But in essence it's not so complex. You only need the original compiler that was used to compile the game and tools like ghidra. Binutils for the architecture can help. From there you ask the agent to start building the project. Prepare to spend a ton of tokens though if you go the full AI route.

Thank you for the template! This worked! It turns out Claude seems to already understand quite a bit about decomps, and if you can find a game or two that already uses the toolchain that your target game uses, it can crib a lot of the basics like MSL and Dolphin/OS pretty quickly. I have barely scratched the surface of the game code, though. I'm trying to actually figure out what things are as we go, and you weren't kidding about the rate of token spend.

Re: Decompiling a Nintendo 64 game in 84 days

#190

I've been absolutely loving the decomp projects that have been coming out lately. Huge props to the writer for this, Snowboard Kids is a real gem. I'd also encourage people to check out the Legend of Dragoon recomp [1]. It's a real labor of love that has breathed new life into a largely abandoned game. You can play it fully vanilla, or with improved graphics, fixes to cumbersome design choices, bugfixes, etc. [1] htt…

The decompilation trend is amazing, everything ranging from N64 games to people reverse engineering componentry on original Xboxes and such; with the world becoming increasingly more bleak from a tech POV, reading these sorts of posts brings a little warmth.
Post reply on HN