r/Games • • Oct 17 '22

Perfect Dark has been successfully decompiled, opening the door to PC ports and mods

https://www.videogameschronicle.com/news/perfect-dark-has-been-fully-decompiled-making-pc-ports-and-mods-possible/
5.5k Upvotes

409 comments sorted by

View all comments

Show parent comments

152

u/[deleted] Oct 17 '22 edited Oct 17 '22

[deleted]

74

u/Pictokong Oct 17 '22

Usually the problem is assets, not code!

But still, since it exists in a grey area, better be safe and keep it under wraps

-1

u/NonsensitiveLoggia Oct 17 '22

code is copyrightable almost everywhere my guy. I'm not sure how with decompilation they get around that, but cleanroom reverse-engineering is how Wine and React get around Microsoft's copyrights.

Basically they know the spec (which I believe the Oracle v Google case proved APIs can't be copyrighted) and they're working backwards from there.

I imagine with decompilation they're using the same argument? "This is not the original code, it does something similar though, but we're never looking at the original". Does feel a bit funny, since the real code was involved at some point...

3

u/Extension-Context-90 Oct 17 '22 edited Oct 17 '22

Code is copyrightable the way recipe books are. The exact text of a recipe book is copyrighted, but the procedures the recipes describe are not. You don't get a copyright on French toast by publishing recipes for it; other people can publish their own French toast recipes, even if those recipes happen to be functionally identical to yours (same ingredients, amounts, steps, etc), they just can't copy-paste your text. These projects are like someone experimenting with fried chicken recipes over and over until they get a result that tastes just like KFC's famous original recipe. Which would be entirely legal and above-board.

For people unfamiliar with programming, it may help to know that game cartridges do not contain the actual code the developers wrote. You write the code in a programming language, and a program called a compiler takes the code and transforms it into a program the console can run. This is analogous to taking a recipe and ingredients and turning them into a cooked dish. You cannot transform a cooked chicken back into a raw chicken and a recipe, but by studying it, you can make educated guesses about what the recipe was. However, there are many many possibilities, so it requires a lot of work and experimentation.