Hacker News new | ask | show | jobs
by chc4 548 days ago
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.
2 comments

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 :)