LucidLynx a day ago

As they are linking with proprietary SDK they seem to have violated the GPL indeed. I would be interested to see if this game is part of their "Carbon Engine" solution to release old games (with extra price)...

  • deng a day ago

    Yes, this is almost certainly a violation. Technically, you cannot be sure yet, because in some alternate universe, Nintendo might have re-licensed their SDK under GPL as well, and if you ask Limited Run Games for the source of Tomba, they might give everything to you, thereby complying with the license. In reality though, these SDKs are of course not only proprietary but also under a NDA.

    Alternatively, they might have found a way to run PCSX without using the Nintendo SDKs, but I don't think this is possible.

    It's pretty crazy that they officially credit PCSX and didn't even realize that this is a problem.

  • dismalaf a day ago

    > As they are linking with proprietary SDK they seem to have violated the GPL indeed.

    What do you mean? Putting GPL software on proprietary platforms isn't a violation of the GPL. Tons of GPL software exists on Windows for example and needs to interact with Windows APIs.

    • deng a day ago

      You are correct that there's an exception for "system libraries", see https://www.gnu.org/licenses/gpl-faq.en.html#SystemLibraryEx....

      However, I'm pretty sure that the Switch SDK would not fall under this exception.

      • DrillShopper a day ago

        This is what GPL v2 says about system libraries:

        > However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

        Seems like the Nintendo SDK would count here.

      • dismalaf a day ago

        > However, I'm pretty sure that the Switch SDK would not fall under this exception.

        And why are you sure? How are Switch system libraries different than Windows or Linux?

        • deng a day ago

          The GPLv2 defines "system libraries" as things "that [are] normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs". On Windows, this would for instance cover libraries for interacting with the kernel and hardware (ntdll.dll, hal.dll, etc.), since they are distributed with Windows, as well as the various C runtimes (msvc*.dll) since these are distributed with the compiler (Visual C++).

          Now, I don't know the Switch SDK and its license, but it is highly likely that it contains things that are needed to build the executable but which are not normally distributed with the console. If that were the case, you wouldn't have to hack your Switch to run your own software on it. Granted, to my knowledge, specifically the "system library" clause has never been tested in court, so your guess is as good as mine. In the ScummVM case on the Wii, which is mentioned in the issue, the problem was that Nintendo actually has a clause which forbids usage of the SDK with GPL software. It is also pretty likely that this also exists for the Switch SDK.

          EDIT: Please note that "source code" in the sense of the GPLv2 explicitly includes "the scripts used to control compilation and installation of the executable". This really is the critical part of the SDK here which Limited Run Games will not be able to provide.

          Aside from source code, it also seems that the game distribution is missing the written offer for the source code as well as the GPL license text. This alone would be a violation of the license.

          • dismalaf a day ago

            > Now, I don't know the Switch SDK and its license, but it is highly likely that it contains things that are needed to build the executable but which are not normally distributed with the console.

            SDKs are typically a compiler, a debugger, headers to interact with the system API and a C/C++ runtime. You can compile GPL code with a proprietary debugger, that's not a problem. Ditto for debugger. System headers and runtime are under the GPL exception.

            > Nintendo actually has a clause which forbids usage of the SDK with GPL software

            That's not a GPL violation, that's a Nintendo TOS violation and up to them to enforce.

            > Aside from source code, it also seems that the game distribution is missing the written offer for the source code as well as the GPL license text. This alone would be a violation of the license.

            The first comment says they see attribution. So there's a good chance there's text in some game menu that links to the source of the emulator. If not, that's a violation.

            As for the game itself, shipping a game + emulator isn't the same as shipping a game built with a GPL library. The emulator runs on the platform and runs the game which can be built standalone.

            A similar situation is Linux vendors that ship a piece of proprietary software with a Linux distro. Shipping them together doesn't require the proprietary software to be open-sourced as merely shipping them together doesn't make them the same piece of software.

            • deng a day ago

              > SDKs are typically a compiler, a debugger, headers to interact with the system API and a C/C++ runtime. You can compile GPL code with a proprietary debugger, that's not a problem. Ditto for debugger. System headers and runtime are under the GPL exception.

              SDKs for game consoles contain more than that. They allow you to install executables onto special developer consoles, which are different from retail ones. The GPLv2 clearly says that you need to provide all the tools/scripts that are needed to install the executable onto the target system. This is why today's hermetically closed game consoles are fundamentally incompatible with (L)GPL code. While you might be able to provide the source code, the GPL explicitly states that the recipient of the code must be able to build and install the executable to run the code. This absolutely can mean that people will have to buy a commercial tool in addition (like Visual Studio Professional or similar), but herein lies the problem: you cannot just buy a Switch SDK and a developer console. They are tightly regulated and can only be obtained under NDA by officially recognized game developers.

              The only way to distribute GPL code for consoles without a license violation is if the console has a special mode which allows to run arbitrary code. For instance, for a while, the PS2 was able to run Linux (until Sony removed that feature). The Xbox has the so called "Dev Mode" which allows for running UWP executables. The Switch has no such feature, unless you jailbreak it. Needless to say, the game we're talking about here does not depend on that.

            • yellowapple a day ago

              > That's not a GPL violation, that's a Nintendo TOS violation and up to them to enforce.

              It's a GPL violation if it prevents the developer from being able to fulfill the obligations of the GPL. That'd indeed be why Nintendo would prohibit GPL'd code in their TOS.

              > As for the game itself, shipping a game + emulator isn't the same as shipping a game built with a GPL library. The emulator runs on the platform and runs the game which can be built standalone.

              True, but they're still on the hook for the emulator itself and the obligations of its license terms.