Live data from Hacker News

Decompiling a Nintendo 64 game in 84 days

blog.chrislewis.au

121–130 of 191 posts

Re: Decompiling a Nintendo 64 game in 84 days

#121
post #63

Earlier quoted context omitted.

In a sane world, if brought before a court, the binary itself wouldn't have any protection unless hand authored. The actual creative work/human expression was the source code. The entire point of compiling is to strip that extra data out, leaving pure functional logic that doesn't even strictly match the source logic thanks to optimization. Then a freshly written project would be completely different with no derivati…

> The entire point of compiling is to strip that extra data out, leaving pure functional logic that doesn't even strictly match the source logic thanks to optimization. I strongly disagree with this notion from even a conceptual (much less legal) level; the point of compilation is not to erase the algorithms the programmer implemented, just to optimize and implement them. > You can compile a decomp into the same bina…

A huge portion of the actual thing I write when writing a program does not exist at all in the compiled binary. Names, types, type parameters, etc. being big ones, but many types are also aliases for the empty struct, so their value doesn't exist at runtime either. Conversely, I can write _.map(_.map(_.map(f))) and have that turn into all sorts of looping and branching logic that I didn't write, and the meaning of which is basically "do whatever must be done to make the types work".

Programs as written are nothing like programs as compiled, certainly not as an expressive endeavor. Books don't have an analog. There's no point where we strip all conceptual meaning from the book and leave only the procedural algorithms the semantics demand. There's no point where we replace all the individual words with autovectorized versions, or where we automatically delete impossible sentences, or remove every layer of abstraction that the programmer put in there exactly for the ability to convey ideas.

Re: Decompiling a Nintendo 64 game in 84 days

#122

I'm still baffled by RE community aiming for "100% asm match", needing to reproduce specific compiler version, instead of aiming for functional equivalence and cleaner code is there really no tools whatsoever that produce proof certificates for "these two functions do the same thing"?

No. Halting problem.

Re: Decompiling a Nintendo 64 game in 84 days

#123
post #23

What's the legal status of these? Historically there was a notion of "clean room" reimplementation. These days it seems people translate the actual game code into a different representation of that same code and that makes it open source? Github is full of these.

There was a decompilation project of GTA 3 and Vice City. It got DMCAed by Rockstar Games, despite requiring the user to provide their own game assets.

Re: Decompiling a Nintendo 64 game in 84 days

#124

Earlier quoted context omitted.

Using AI is cognitive surrender. It's not your code, it's not your work.

When I was in high school, graphing calculators were pretty new. New enough that most teachers had not yet encountered them. I was a pretty nerdy kid even then, and I saw graphing calculator as 'portable computer' in 1993! So, of course I wanted one. When our teachers found about them, they banned the use of graphing calculators, some teachers going so far as to only allowing 'four-bangers' (a basic one) for classes…

The smart reason graphing calculators are banned is because students are meant to be learning a concept. You don't learn how to graph to pass a test you take a test so you're pressured to learn how to graph.

Same with AI. Having AI generate a for loop doesn't mean you understand the concept of a for loop. You can argue that it's a waste of time to learn about for loops because an AI can write one for you but that's a separate matter.

Re: Decompiling a Nintendo 64 game in 84 days

#125
post #27

Earlier quoted context omitted.

I think that we should change copyright law such that 1) Rights can't be held by corporations, only individuals. So the rights to a piece of art or IP would always trace down to a list of names. 2) Everything enters the public domain after 20 years or the death of the entire list of ownership.

> Rights can't be held by corporations, only individuals. So the rights to a piece of art or IP would always trace down to a list of names. Isn't the current system setup around the idea that the company gets the rights, and in return the workers get a basically risk-free salary? Wouldn’t your proposal undo that, so then workers took on the risk of whether they got paid, based on whether the game ends up being profit…

In theory, the financier or team of financiers would be added onto the list of creating individuals. I suppose some sort of fractional representation might be worked out.

Re: Decompiling a Nintendo 64 game in 84 days

#126
post #77
post #27

Earlier quoted context omitted.

I think that we should change copyright law such that 1) Rights can't be held by corporations, only individuals. So the rights to a piece of art or IP would always trace down to a list of names. 2) Everything enters the public domain after 20 years or the death of the entire list of ownership.

Would you still allow transfer of copyrights? Otherwise 1) would really make things more difficult in this case, because you're gonna need to deal with far more people (and potentially far more complicated contracts to try to work around this problem). A shorter expiration period would definitely help, at the very least a 'use it or lose it' provision that would remove the protection from works that are no longer bei…

I would not. I'm far less concerned about the rights and profits of copyright holders and far more concerned with society and civilization having access to the art that's produced within it.

Since I'm just pitching wild ideas on the Internet of course I have the freedom to make any suggestion I want, but I would like to live in a world where (a) no companies or rights owners are able to play bullshit games with gating access to art that can be reproduced at trivial cost and (b) we can consume all the art we want that's past its sell-by date. It's insane to me that we don't have free, legal databases of every work of art created before, say, 2006.

Re: Decompiling a Nintendo 64 game in 84 days

#127

Earlier quoted context omitted.

A decompilation is not clean room, nor is it "created from scratch". If that was the case, you could just compile a program to remove the copyright, because the machine code doesn't resemble the source code at all either. A reimplementation or a behavior-based clone is an entirely different legal world from decompilation.

The compiled binary is protected and the property of the original company. The source code written by people doing decompilation is owned by the people doing the decompilation. That source code can compile to a lot of different binary representations, just like a lot of code representations (infinitely many) could compile to the original binary. In fact, the goal of most decomp not to produce the same binary, that’s…

>is owned by the people doing the decompilation

True, but as a derivative work of the original source code they don't have rights to do anything with that code without infringing copyright.

Re: Decompiling a Nintendo 64 game in 84 days

#129

Earlier quoted context omitted.

Using AI is cognitive surrender. It's not your code, it's not your work.

When I was in high school, graphing calculators were pretty new. New enough that most teachers had not yet encountered them. I was a pretty nerdy kid even then, and I saw graphing calculator as 'portable computer' in 1993! So, of course I wanted one. When our teachers found about them, they banned the use of graphing calculators, some teachers going so far as to only allowing 'four-bangers' (a basic one) for classes…

I remember a homework where I had to graph some function. I decided use the plotting function of Lotus 1-2-3 for that. The plot worked fine, but didn’t make sense.

I then spent way more time than what I would have spent without the plotter to figure out that a pole and a zero were located right next to eachother.

I had no idea if the teacher had done that on purpose, but it made enough of an impression on me that I still remember it.

The point of math exercises is usually not to get to solution as quickly as possible.

Re: Decompiling a Nintendo 64 game in 84 days

#130

It's especially annoying that LLMs/agents are a logical starting point for decompiling old games but there is a significant backlash against it as the gaming community is very anti-AI and consumers of the benefits decompiling offers tend to be noncoders who don't believe that AI can do more than slop. I've seen takes such as "they're too lazy to learn C++" and accepting a PR from someone using Claude taints the proje…

The backlash will soon die out once the majority see the results.

(Of course there will always be the annoying "never AI" virtue-signalers, but the same can be said about anything.)

Post reply on HN