k4zmu2a / SpaceCadetPinball

Decompilation of 3D Pinball for Windows – Space Cadet
MIT License
3.37k stars 209 forks source link

Legality Question #1

Open WireAvERANtrosE opened 3 years ago

WireAvERANtrosE commented 3 years ago

Hi! Thanks for this wonderful effort! I wonder how legal is this vis-a-vis proprietary rights of Microsoft? Was this clean room reversed engineered?

Just asking coz i want to make a c# version of this :) and i dont want to start on a wrong footing...

k4zmu2a commented 3 years ago

Hello, glad that you like it.

I wonder how legal is this vis-a-vis proprietary rights of Microsoft?

It is in a grey area, legal in some jurisdictions. The code could be seen as clean-ish, it is the original resources that you have to look out for. I had to include everything that is nailed down to the executable, otherwise it would not work.

Was this clean room reversed engineered?

Depends on what you mean by clean. It was not done like Open* projects, where they reimplement something based on outwards behavior. It is a decompiled original, cleaned up and patched. Can such thing be called clean? I think that reversing is clean when it is done with public sources and information. So, since I followed that notion of clean, in my opinion this project is clean.

Just asking coz i want to make a c# version of this :) and i dont want to start on a wrong footing...

I’d say go for it regardless - it’s not like there are any other public source codes of Space Cadet)

somewhatlurker commented 3 years ago

Yes, this kind of project can be somewhat grey.

First off, I would agree that by excluding audio and visual assets, the game as a whole has not been infringed. But that isn't the whole story, because many countries consider code to be covered by copyright. And in the case of direct decompilation like seen here, it would likely be seen as an infringement if brought before a court (fortunately, the odds of that happening without warning are pretty low).

 

Why do I think it would be seen as an infringement? Well, here's some observations (based upon US law due to the large number of cases accessible -- other countries may differ) Supporting evidence is taken from Wikipedia to ensure it's accessible to all readers.

In general code is copyrightable, and the copyright can extend to incorporated concepts such as algorithms, structure and operations created by developers where they are forms of expression rather than necessity. Not only original text representation of them is protected. Only a limited portion of functionally necessary code is unprotected.

Computer Associates v. Altai: To approach this issue, the court fully supported the claim that non-literal elements of software are protected under copyright. Software is considered a literary work for the purposes of copyright law, and non-literal elements of literary works are protected under copyright. As such, non-literal elements of software are also protected. The question at hand was to what extent are the non-literal elements protected. Non-protected elements include: elements made for efficiency (i.e. elements with a limited number of ways it can be expressed and thus incidental to the idea), elements dictated by external factors (i.e. standard techniques), and design elements taken from the public domain.

The article for Whelan v. Jaslow mentions the SAS Inst. v. S&H Computer Sys. case: it had been found that copyright protected organizational and structural details, not just specific lines of code. SSO refers to non-literal elements of computer programs that include "data input formats, file structures, design, organization and flow of the code, screen outputs or user interfaces, and the flow and sequencing of the screens."

It is important to note however that use of strictly functional elements (those that are required to implement something at all) appears to be allowed.

Atari v. Nintendo: ideas (which are covered by patents, not copyright), and "expression necessarily incident to the idea"​ are unprotectable.

 

Where does that leave us? Well, there's multiple ways to consider this: Is it considered functional to faithfully recreate the operations of a specific pinball game, or would it only extend to the minimum necessary to create any pinball game at all? Do elements such as text rendering and the overall graphics pipeline that may contribute to the appearance of a game count as functional to it? (likely not to be honest) Are the specific physics calculations inherent to the gameplay of this game considered a form of expression because of the creative adjustments they likely went through to enhance gameplay, or are they unprotected because you need good physics to make a game? (and the list could continue...)

There will probably be something to question in any project like this one where the author has studied the original game code, and for better or worse it would be legitimate to file a complaint under current laws. A project such as this is probably best viewed as being similar to a translation rather than an original work. That is, it's a new expression of the same original work.

 

I don't really see a problem with something like this existing though. There's plenty of similar precedent for things that are technically illegal being allowed to survive, when they work to respect the original rights holders. OpenRCT2, SM64 decompilation, Devilution, numerous 8-bit and 16-bit game disassemblies...

Although that being said, it's not unheard of for takedowns to be issued. Like the recent ones for GTA decompilations. A reader will have to decide what they consider to be an appropriate level of risk themselves.

somewhatlurker commented 3 years ago

Also, "clean room" reverse engineering is a specific methodology used to ensure no copyright material can make it into a product: https://en.wikipedia.org/wiki/Clean_room_design

It's achieved by having one group of engineers reverse the application and write a specification of the key functional requirements, so that another group with no knowledge of the original code used to achieve the functionality can write their own implementation. Basically, one team would reverse engineer the game and document how all data is used, then the other team would create a completely custom engine that uses the same data to provide similar gameplay.

Such a technique would be quite impractical for an individual to say the least, and it is not what has been done here.

netpipe commented 2 years ago

i think software falls under utility patent laws which would be expired after 20 years. also if you own a copy of windows you would have no worry's because they give out free windows xp virtualmachines for existing windows owners. if the sound files were replaced and the textures remade it would make mods easier and make this easier to answer.

SeanRamey commented 2 years ago

Yes, this kind of project can be somewhat grey.

First off, I would agree that by excluding audio and visual assets, the game as a whole has not been infringed. But that isn't the whole story, because many countries consider code to be covered by copyright. And in the case of direct decompilation like seen here, it would likely be seen as an infringement if brought before a court (fortunately, the odds of that happening without warning are pretty low).

 

Why do I think it would be seen as an infringement? Well, here's some observations (based upon US law due to the large number of cases accessible -- other countries may differ) Supporting evidence is taken from Wikipedia to ensure it's accessible to all readers.

In general code is copyrightable, and the copyright can extend to incorporated concepts such as algorithms, structure and operations created by developers where they are forms of expression rather than necessity. Not only original text representation of them is protected. Only a limited portion of functionally necessary code is unprotected.

Computer Associates v. Altai: To approach this issue, the court fully supported the claim that non-literal elements of software are protected under copyright. Software is considered a literary work for the purposes of copyright law, and non-literal elements of literary works are protected under copyright. As such, non-literal elements of software are also protected. The question at hand was to what extent are the non-literal elements protected. Non-protected elements include: elements made for efficiency (i.e. elements with a limited number of ways it can be expressed and thus incidental to the idea), elements dictated by external factors (i.e. standard techniques), and design elements taken from the public domain.

The article for Whelan v. Jaslow mentions the SAS Inst. v. S&H Computer Sys. case: it had been found that copyright protected organizational and structural details, not just specific lines of code. SSO refers to non-literal elements of computer programs that include "data input formats, file structures, design, organization and flow of the code, screen outputs or user interfaces, and the flow and sequencing of the screens."

It is important to note however that use of strictly functional elements (those that are required to implement something at all) appears to be allowed.

Atari v. Nintendo: ideas (which are covered by patents, not copyright), and "expression necessarily incident to the idea"​ are unprotectable.

 

Where does that leave us? Well, there's multiple ways to consider this: Is it considered functional to faithfully recreate the operations of a specific pinball game, or would it only extend to the minimum necessary to create any pinball game at all? Do elements such as text rendering and the overall graphics pipeline that may contribute to the appearance of a game count as functional to it? (likely not to be honest) Are the specific physics calculations inherent to the gameplay of this game considered a form of expression because of the creative adjustments they likely went through to enhance gameplay, or are they unprotected because you need good physics to make a game? (and the list could continue...)

There will probably be something to question in any project like this one where the author has studied the original game code, and for better or worse it would be legitimate to file a complaint under current laws. A project such as this is probably best viewed as being similar to a translation rather than an original work. That is, it's a new expression of the same original work.

 

I don't really see a problem with something like this existing though. There's plenty of similar precedent for things that are technically illegal being allowed to survive, when they work to respect the original rights holders. OpenRCT2, SM64 decompilation, Devilution, numerous 8-bit and 16-bit game disassemblies...

Although that being said, it's not unheard of for takedowns to be issued. Like the recent ones for GTA decompilations. A reader will have to decide what they consider to be an appropriate level of risk themselves.

That's a really good take on US copyright laws pertaining to software.