5 ms·
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
by tigen 20d ago
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.
- ipsod 20d agoClean room might get you past copyrighted code, but surely it won't get you past trademarks or copyrighted artistic work?
- bri3d 20d agoMost of these projects carefully distribute only the source code representation of the binaries, for this reason, relying on the consumer to acquire / own the art assets and copyrighted material (logos, trademarks, etc.).
- charcircuit 20d agoThe code assets are just as copyright encumbered as the art assets.
- bri3d 20d agoYes, I agree with you (see my sibling post), but it's not what the post I replied to was saying.
- jonhohle 20d agoNone of the original source code exists in these projects. It’s all created from scratch. Copyright for this new code is owned by the person doing decompilation. No one knows how similar to the original it is or not, just that it compiles to the same output. Edit to clarify: by not exist, I mean it is not publicly available.
- rcxdude 20d agoIt's not an obvious legal argument that it is not a derivative work of the compiled code or the original source code that produced that. Clean room reverse engineering is meant to give you a strong argument for that, and while it's not necessarily required to prevail against a copyright case (or actually sufficient) it's gonna make things harder if you don't. (All of this is made more murky because copyright is meant to only cover expressions of human creativity, and code is kind of a mix of creativity and mechanical details: the clean room approach is meant to separate out the mechanical details) Also, If it is an unauthorized derivative work, as I understand it then it might not even qualify for copyright protection itself.
- SmasherEpilepti 20d agoA 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.
- jonhohle 20d agoThe 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 just used as a validation.
- charcircuit 20d ago>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.
- charcircuit 20d agoHistorically these projects have gone to match byte for byte recreations which ensures that they are derivative works making them infringing copyright.
- bri3d 20d agoIt seems like it could go either way to me in the US (not a lawyer, but someone who has a fair amount of experience in reverse engineering / fair use issues). On the one hand, it is fairly clear that producing source code with the explicit goal of reproducing a 1:1 binary is in no way transformative, so that's out. This would be a really hard argument to even attempt. On the other hand, these projects are mostly free, intended for owners of the game to play the original game on a different platform or in a modified format, and not likely to have a negative effect on the original work's desirability or value. And, the reproductions aren't complete and alone usually produce limited to no value to a consumer (usually, they won't start without the original game files). These are the other important factors considered in fair use determinations and generally go the way of these being OK. So, it's hard to say. With reverse engineering and copyright in the US in general, context is crucially important; something that would be completely illegal for one purpose (ie - decompiling and recompiling a competitor's software to distribute it without a license or use it internally without purchasing it would be obviously illegal) could be OK for another one.
- ndriscoll 20d agoIn 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 derivative elements at all; the only commonality between the two codebases is their functional elements. You can compile a decomp into the same binary, but that's only to prove functional equivalence. The intended mode would be with a modern compiler that completely rewrites the logic (it might even have to if it writes it for a completely different computer architecture, which describes every retro console game). Then neither the source nor the compiled artifact would match.
- bri3d 20d ago> 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 binary, but that's only to prove functional equivalence. This is like saying that a translated book is only "functionally" identical to the original; there's a lot of precedent in copyright law for this not being the case, and I don't think any argument revolving around the transformativeness of the compilation process would fly at all.
- Sesse__ 20d ago> Historically there was a notion of "clean room" reimplementation These projects start off with the original assembly code and use it actively throughout all stages. This is about as far away from clean room as you get.
- jonhohle 20d agoThese projects do not start with assembly. They start with machine code interleaved with data. Even getting to assembly through a disassembled requires some input and understanding. Usually these are raw binaries with no (or limited) metadata. When run through a disassembler, in most cases, it’s probably the first time anyone has ever looked at the assembly (assuming PlayStation or newer). There are no comments or labels or symbols. Not what most people would consider “the original assembly”.
- xyzsparetimexyz 20d agoGhidra is able to figure out the functions in around 99%++ of cases though
- S-E-P 20d agoThe term "original assembly code" is sufficient enough to communicate that the binaries that are being reversed are what is disclosed to the public intentionally. Their comment still stands; whether it's machine code or "original assembly code" that shipped on the disk it falls under "clean room" reversing and by extension implementation.
- circuit10 20d agoBeing available to the public if they bought the game doesn't mean it's in the public domain and you're allowed to upload a copy of it (or a derivative work) onto GitHub, though (I like these projects but I really don't think they could defend themselves legally if you company went after them)
- grishka 20d agoThere 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.