3 ms·
Think about it this way: if you compile source code, you get something that is technically new code (and not the original), but it is a derivative work. Why wo
by klodolph 5y ago
Think about it this way: if you compile source code, you get something that is technically new code (and not the original), but it is a derivative work.
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.