> GTA 3 and Vice City were originally written in [programming language] C++ . . . The compiled executables that are shipped are in machine code. So the general task is to go from machine code back to C++. . . . To go back to C++ is by no means a simple 1:1 mapping, but over the last 10 or so years decompilers have appeared that help with this process. . . . So what we typically do is work with the output of the decompiler and massage it back into readable C++
I know, as a software developer, I don’t consider that fair use, and I very much doubt any reasonable person would either.
It's as if person 1 built a machine (source+compiler) that generates paintings (binary) to sell, and then person 2 saw the painting and built an entirely different machine that can do the same thing. Person 1 can't tell person 2 what to do with their machine.
https://chart.copyrightdata.com/Colorization.html https://www.traverselegal.com/blog/can-derivative-works-be-c...
I think most groups that do this sort of thing understand that. Just depends on the company you are doing it to and how understanding they are of it and how much are they willing to spend to go after it. If you are spending thousands to go after something that may make you 200 bucks off of over the next 20 years you are just spending money on something that is basically worthless to the company. In this case they are probably burning a lot of good will. The mod community for those games is huge and in many ways keep those games interesting for people.
Why would decompiling be different from compiling? In both cases, you are transforming code from one language to another and ending up with something "new", which is a derivative of the original. In any case, you can have a human come in and clean up, refactor, extend, or make changes... and the result is still a derivative of the original.
It doesn't really matter if you are doing it by hand or machine. I just don't see how that is relevant. There's a process involved where the input to that process is the original GTA 3, there's a bunch of steps, and the output to that process is code based on the original GTA 3 machine code, but in C or C++ instead of machine code.
There are two ways to get around this. The first way is fair use, which is complicated but certainly doesn't apply here. The other way is the "clean room" reverse engineering, where one team reverse engineers a product to figure out what it does, and produces a specification, which a second team uses to create a new implementation which does the same thing.
From the filed complaint, Take-Two quote one of the developers :
> GTA 3 and Vice City were originally written in [programming language] C++ . . . The compiled executables that are shipped are in machine code. So the general task is to go from machine code back to C++. . . . To go back to C++ is by no means a simple 1:1 mapping, but over the last 10 or so years decompilers have appeared that help with this process. . . . So what we typically do is work with the output of the decompiler and massage it back into readable C++
And although this probably has no relevance from a legal standpoint, but sounds pretty bad in the context of the complaint, from right at the bottom of https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.m... :
> Generally, try to make the code look as if R* could have written it
It's a shame a simple take-down request wasn't sent (and complied with) first...
> The lawsuit says that after the company filed a DMCA takedown notice to remove the projects from Github, the defendants filed a bad faith counter notice to have the content reinstated, thus triggering this copyright infringement lawsuit.
This is from the CODING STYLE document:
"Don't just copy paste code from IDA, make it look nice"
https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.m...
"Don't just copy paste code from IDA, pull it thru GitHub Copilot first"
As much as I support this kind of project, I would say they are legally screwed. But they already knew that when they started.