Earlier quoted context omitted.
> I think the opposite is true, what they did was fair use. The defendants are outside US, pretty sure everything they did was 100% legal in their jurisdictions. There's just no way that it's fair use to distribute a decompiled copy of a game. Reverse engineering and decompiling are generally legal, but they don't strip away copyrights from the code. Think about it this way... compiling source code does not change wh…
It's not a decompiled copy. A decompiled copy is not useful for anything, as it would have to be recompiled. State of the art decompiles produce incomprehensible garbage, rarely even possible to compile. In such projects, what's distributed is a recreation of the compiled form of the original software, bearing little resemblance to what the original creators worked on. In terms of work and creativity involved, it's m…
I have personally gone through the commit history of this project and read the source code. It is absolutely clear that this is based on the output of decompilers like IDA Pro and Ghidra. You can see how variables are not defined as ordinary variables, but as hard-coded addresses which are then cast to pointers of the appropriate type. The code is littered with unnecessary casts that are not typical of human programmers, but typical for how you get decompiled code to run.
Modern decompilers are a lot better than you might think. Additionally, old compilers produced code that is easier to decompile than you might think. But, here's a sample of code from the re3 repository in question:
uint8 &CClock::ms_nGameClockHours = *(uint8*)0x95CDA6;
uint8 &CClock::ms_nGameClockMinutes = *(uint8*)0x95CDC8;
uint16 &CClock::ms_nGameClockSeconds = *(uint16*)0x95CC7C;
That does not look like code any human would write, if they were reimplementing a game. It looks like the code someone would write if they were cleaning up the output of a decompiler and assigning names to variables and functions which previously looked like "loc_95CC7C" or something similar. Once you figure out the purpose of a function or variable, you hit a button and rename it.> In such projects, what's distributed is a recreation of the compiled form of the original software, bearing little resemblance to what the original creators worked on. In terms of work and creativity involved, it's more like watching a movie, summarizing the plot, and then plugging back the holes to make another movie that has the same feel.
It's like someone transcribing the screenplay for a movie. The stage directions are going to be different, but it's still the same movie.