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.
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.
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
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.
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.
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 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
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.
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
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.
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
Not that I agree, I like software preservation, but just thinking about how lawyers would go about this.
don't do their job for them for free :)