Majora's Mask decompilation project reaches 100% completion
gbatemp.net> Majora's Mask (NTSC-U version) can now be included in the list of 100% decompiled projects, which servers as an open-source clean room recreation of the game's code
I'm a bit confused - is it actually clean room if they basically checked the disassembled compiled binary and wrote or generated (the actual project page mentions mips_to_c) the C code that compiles into 100% exact same binary? I was under the impression that "clean room" meant reimplementations that were made by only looking at the results (in this case - how the game actually plays), not at the original binaries.
They aren't clean room. They go based off of disassembly, which doesn't have the same legal defense as true clean room reimplementations. Game hackers have folklore-esque beliefs about the legality of things like this that aren't true, though, and aren't going to stop making various claims.
Clean room is a legal defense that argues “I implemented similar functionality without consulting the copyrighted work” and sometimes with the addition of “or ever having viewed the original copyrighted work”.
For video games the binary is the covered work, not its disassembly. And disassembly is covered by the DMCA and explicitly allowed for this type of purpose, so that’s not illegal at least. I can see the argument if the clean agent is just operating off the disassembly and a different person is evaluating success.
After all, how does one communicate the goal of a “traditional” source code clean room operation? Well someone has to disassemble the target functionality into a natural language description of the algorithm and communicate the requirements and expected outcomes, the functions if you will, to the agents as well as check success. Why does using a computer to aid that process make things questionable?
IMO the whole notion of a clean room for copyright purposes is weird across the board. Not just when punks do it.
> For video games the binary is the covered work, not its disassembly.
For the law it doesn't matter much if you look at binary code in a hex editor or at disassembly, since disassembly is just a 1:1 translation of the binary code. Otherwise it would be sufficient to let's say gzip compress the binary and distribute that without fearing any copyright claims since the result would be different and no longer covered, which is obviously not the case. The same applies for decompilation results. Means: for clean room implementations, you cannot look at any of it.
> And disassembly is covered by the DMCA and explicitly allowed for this type of purpose, so that’s not illegal at least.
You can, under certain circumstances, disassemble code for interoperability purposes. This explicitly does NOT cover the case of "I want to make a 1:1 clone of the whole software" which is what these decompilation projects are about. After all, the point of the "matching decompilation" projects is that if you compile the source code, you get the exact same binary again. And for the non-matching decompilation projects, you get at least very similar code after compilation.
For the DMCA exception, think about it more like you are working on GIMP and you want to add support for reading/writing PhotoShop files. You can look at PhotoShop code to understand how these files are read/written to then derive the file structures and implement the relevant I/O code for GIMP. You can NOT look at any PhotoShop code that is not absolutely required for this task, nor can you look at PhotoShop code and build your own clone of PhotoShop using that knowledge and call the result GIMP, which would still not be a "decompilation project" comparable to these game decompilation projects. I hope you can see how these "clean room" claims for such game decompilation projects are pure nonsense.
> Why does using a computer to aid that process make things questionable?
This essentially boils down to "if I didn't see the original code anyway, how am I supposed to have 'copied' it?" which you can't easily do if the computer did in fact see the original code.
Obligatory EFF link for completeness: https://www.eff.org/issues/coders/reverse-engineering-faq
I understand the dmca protects reversing for the purposes of interoperability. My argument is not that the dmca is a foundation for clean room arguments. I just mentioned it because it protects the disassembly of binary code. It’s about clean rooms.
If it’s okay to implement software that does the same thing as some other proprietary software as long as you do it in a clean room, then it’s okay to implement software that does the same thing as other game software as long as you do it in a clean room.
So the argument is really about how clean the room is. Can the person verifying the output of the clean room, who is outside the clean room, also look at the binary? Can they look at the disassembly? These are legal questions. It would be interesting to understand more about these team’s setup, for sure.
> Game hackers have folklore-esque beliefs about the legality of things like this that aren't true
as long as no one is trying to make money / sell ads / patreon lock the results, they should be fine; it's probably difficult for lawyers to claim monetary damages if no one is making money
That sounds like one such folklore-esque belief. At least, it's something you tend to hear before a project is taken down.
> it's something you tend to hear before a project is taken down
the projects i've seen taken down seem to consistently have some sort of financial component, though sometimes it's been because the company that owns the copyright is about to release a remake themselves
Couldn't you argue that a free emulated version of a game replaces a paid license?
Not that I agree, I like software preservation, but just thinking about how lawyers would go about this.
> just thinking about how lawyers would go about this
don't do their job for them for free :)
I've seen projects like these use the term "clean room" extremely liberally. Possibly just to throw up a shield ("it's clean room so you can't take it down!"). I think the same was even claimed for the re3 (GTA III decompilation) project, which has been since taken down.
This re3?
That's someone who re-posted their own fork – the original repo <https://github.com/GTAmodding/re3> was taken down in a DMCA action. The only commits they've added are to change the README links to point to their repository.
GBATemp is not known for good reporting, it's just normal users who copy paste news reports together and get "promoted".
Decompilations and recompilations have been really interesting lately. They seem largely driven by fans interested in replaying old content in ways the original sources haven't provided. E.g. rather than "run normal N64 Mario and Zelda on your switch" you can run them at 4k120 FPS widescreen with all sorts of QoL improvements, modifications, or new gameplay modes. Even extremely classic titles like Super Mario Bros. 3 or The Legend of Zelda a Link to the Past get widescreen hacks.
Of course there are other benefits too that some use for playing the originals as they were. Some just want to more easily read through the games code to figure out how it works, hunt for new glitches, figure out why that odd thing in a speedrun happens. Others want to mine for cut/missing content.
I personally hope https://zeldaret.github.io/tww/ gets completed this decade. Nintendo has at least made an actual remake of this game, adding a certain level of the improvements and enhancements, but there are still more which would be nice (more than 30 FPS anyone?) and I can only imagine what kinds of customizations would be made feasible.
Is recompilation the right word for this? Reprogramming? I am not even into video games, and I am still so impressed by the efforts I have seen. I saw a ray-traced version of Mario 64 that looks incredible. There are also some retranslation groups who also get an A+, for far more literate translations with the sex and world mythology than the original translations that were softened for the American audience. I believe that one group was called DeJap Translations and they were obviously well-educated.
Recompilations are a separate methodology/category from the decompilations e.g. on the N64 there is this parent project https://github.com/N64Recomp/N64Recomp
it is AWE-MAZING playing things like Ocarina of Time in 4K with upgraded textures blah blah blah blah. and that it comes from the likes of these efforts instead of Nintendo just selling us the damn thing is all the more awe-inspiring from me.
I've been waiting and waiting for Majora's Mask to catch up. I got the recompilation and all, but no textures and other bells and whistles YET.
Glad their Switch legislation hasn't killed this yet.
Should we have a countdown until the Nintendo legal team kills this work? Or is sharing decompilation somehow immune from copyright enforcement?
There are multiple pokemon decompilations that have been around for years which people are using to make their own fan games with a lot of popularity. Some streamers of these games are even invited to official events so it seems like it not necessarily. Any attempt to monetize it usually gets a project shut down though.
I wish it was legal though. This game has been released more than two whole decades ago. Those who spent their childhood playing it now have kids, or maybe even grandchildren! Many of us won't live to see the day its copyright finally expires and that's totally bonkers.
A significant portion of games from that era are probably effectively lost at this point. The current system can't be allowed to continue.
The real question.
Reading the thread: How is it even illegal to decompile ?
The binary is readable so what is it wrong to say oh i have a code that produces the same binary ?
Especially if you dont monetize
Being able to read something does not, in general, give you automatic legal rights to produce copies of that thing (sometimes even for yourself) regardless of monetization. Whether it should is often a matter of circumstantial specifics and location combined with a good dose of opinion. Many times it's also less about "what" and more about "how" you've done it, which is why these projects are sure to use certain wording about their methodology and require the source material to produce the asset portions (or sometimes, the source material to produce anything at all).
More often the comments are less interested in "what is the actual legality" and more "how will Nintendo use the legal system to take it down". Often Nintendo is probably on the "correct" side (as in the law agrees this is the currently intended interpretation) but even more often people just don't want to go to years of court about their hobby fan project.