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.
> 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.
> 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
> 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
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.
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.
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.
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.
reply