MIT, GPLv3, Emulator development and SDL controller drivers - dual JoyCon

Okay, hoping there are some driver dev anons out there who are familiar with this. As some may know, the C++, GPLv3 based Yuzu emulator recently got taken down and its devs are all prohibited from contribution (officially) thanks to Nintendo lawsuit. Yuzu had a number of solid features including the ability to use 2 JoyCons at the same time (JoyCon L, JoyCon R etc) together to emulate gaming on Switch that require this layout, such as Ring Fit Adventure or Fitness Boxing Fist of the North Star. Apparently, I'm told that the SDL support for this only covers a single BT controller, and in fact the only reason this works is because of a custom driver. For Yuzu, it "just worked" including with motion/gyro onboth hands, without needing any other bullshit.

Ryujinx, the other, C# and MIT licensed major Switch emu, does not support Dual Joycon with motion. It doesn't support Dual Joycon at all, but you can workaround it by using a 3rd party util like BetterJoy or DS4Windows(honestly not sure about Linux) to basically artificially combine both sides into 1, and then you need HIDHider to hide both individual Joycons. Now this works, but apparently NOT with motion/gyro included because it pretends to be an Xbox360 which of course, does not do gyro/motion. So at the moment, Yuzu (or its successors) has Dual JoyCon work perfectly without 3rd party drivers, Ryujinx requires a workaround and even then may not work for the games you most need it.

I saw someone ask the Ryujinx devs "why not just take the example ofhow its done from Yuzu" and they basically claimed "Yuzu is shut down, also license". Now, nothing about Yuzu shutdown had to do with drivers I was curious about the license - they seemed to suggest that the GPLv3 Yuzu could take from MIT Ryujinx, but not the other way around . Digging, it seems that if you attributed and wrote the driver as GPLv3, it should not be an issue? Any driver dev able to write a custom one/port Yuzu's? Feasible?

UFOs Are A Psyop Shirt $21.68

Yakub: World's Greatest Dad Shirt $21.68

UFOs Are A Psyop Shirt $21.68

  1. 2 months ago
    Anonymous

    >that the GPLv3 Yuzu could take from MIT Ryujinx, but not the other way around
    That is correct.
    Or at least, it was correct up to the moment that judge signed off on the Nintendo v. Tropic Haze settlement.
    Right now the Yuzu codebase is illegal to possess, use or create derivative works of in the United States.
    You could even make the case that looking at it is illegal, for the same reason that Wine doesn't take contributions from people who (admit that they) have looked at the Windows codebase.

    • 2 months ago
      Anonymous

      Wait a moment...but the Windows codebase is proprietary and always has been. Yuzu's is not. Also, the judgment against Tropic Haze had nothing to do with making the code itself illegal or hosting it and in fact, was a settlement / permanent injunction that basically in response for fricking off from Switch development, taking down their websites and trademarks, and giving Nintendo 2.4M, Nintendo would leave it be. I don't see how. the codebase is illegal in any way in the US (and atop that, Ryujinx primary devs are not fromthe US anyway).

      >MIT vs GPLv3
      Isn't it accurate that you simply have to release the reference or derivative work based upon it (or direct code) in GPLv3? So they could leave the project as MIT elsewhere, but have a license for whatever custom driver as GPLv3?

      • 2 months ago
        Anonymous

        https://storage.courtlistener.com/recap/gov.uscourts.rid.56980/gov.uscourts.rid.56980.11.0.pdf
        >The Court makes the following findings of fact.
        >Developing or distributing software, including Yuzu, that in its ordinary course functions only when cryptographic keys are integrated without authorization, violates the Digital Millennium Copyright Act...

        • 2 months ago
          Anonymous

          That's not binding as precedent as it is a settlement/injunction. It applies only to Tropic Haze devs, under the HEREBY ORDERED section. They had to do pretty much what I summarized. This doesn't limit anyone else, mind you - one of many reasons that forks of Citra and Yuzu have been hosted by others on US sites with no concerns (provided they don't do other stupid things like the one guy).

          Not to mention that even were this not a settlement, its likely it would be fought on appeal and succeed in the same way that the format shifting and DMCA encryption breaking exceptions are upheld for you to say... decrypt a DVD to transmit to to your hard drive to watch on your PC or whatnot.

      • 2 months ago
        Anonymous

        >So they could leave the project as MIT elsewhere, but have a license for whatever custom driver as GPLv3?
        You could technically do this in a way that doesn't violate the GPL, like a separate process that talks to Ryujinx over TCP, but that would be kind of a headache.
        >Ryujinx primary devs are not fromthe US anyway
        I don't really understand why people keep bringing this up. All the infrastructure that Ryujinx uses is in the US.
        Brazil seems to be partway through adopting all the WIPO nonsense anyway, so gdkchan may not be safe for long.

        That's not binding as precedent as it is a settlement/injunction. It applies only to Tropic Haze devs, under the HEREBY ORDERED section. They had to do pretty much what I summarized. This doesn't limit anyone else, mind you - one of many reasons that forks of Citra and Yuzu have been hosted by others on US sites with no concerns (provided they don't do other stupid things like the one guy).

        Not to mention that even were this not a settlement, its likely it would be fought on appeal and succeed in the same way that the format shifting and DMCA encryption breaking exceptions are upheld for you to say... decrypt a DVD to transmit to to your hard drive to watch on your PC or whatnot.

        Is it really a non-issue? It sounds like pretty solid case law for future Nintendo lawsuits. Wex says:
        >Trial courts are considered finders of facts and, therefore, their findings of fact are given a high degree of deference by the higher courts.
        Anyway, I thought copies of Citra and Yuzu are taken down by US hosts when reported, presumably because of this judgement.

        • 2 months ago
          Anonymous

          >You could technically do this in a way that doesn't violate the GPL, like a separate process that talks to Ryujinx over TCP, but that would be kind of a headache.
          It couldn't just be a separate driver, file or whatnot that is incorporated into or used by Ryujinx - I didn't think it had to be a completely separate entity that only worked via TCP or some such? Or for that matter, instead of actually just porting the data, why not basically just look at how Yuzu did it and recreate it close as to be functional in C#?

          >I don't really understand why people keep bringing this up. All the infrastructure that Ryujinx uses is in the US. Brazil seems to be partway through adopting all the WIPO nonsense anyway, so gdkchan may not be safe for long.
          I mean, github or whatnot I suppose but that could change if necessary, though I don't anticipate it to be.

          >Is it really a non-issue? It sounds like pretty solid case law for future Nintendo lawsuits. Wex says:
          >Trial courts are considered finders of facts and, therefore, their findings of fact are given a high degree of deference by the higher courts.
          Anyway, I thought copies of Citra and Yuzu are taken down by US hosts when reported, presumably because of this judgement.

          As I understand it and how an attorney who looked at the decision told me, that a decision in a trial court - as if the case went to court, could be used as precedent in subsequent cases. However, this one did not go to court, it simply settled - the court's only job was basically giving authoritative stamp to the civil agreement between Nintendo and TropicHaze. Atop that, copiesof Yuzu and Citra are not taken down - there are a ton of them hosted on GITHUB much less individual sites hosting them. Yuzu and Citra's code is best as I can tell nowhere close to illegal and in fact, Nintendo was making batshit accusations that would undermine almost any emulation, but woudn't hold up in actual court due to existing precedent thankfully

          • 2 months ago
            Anonymous

            >It couldn't just be a separate driver, file or whatnot that is incorporated into or used by Ryujinx
            No, you can't have GPL and non-GPL code in the same process.
            >why not basically just look at how Yuzu did it and recreate it close as to be functional in C#?
            Legal gray area, might be considered copyright infringement.
            You could sneak it in by changing enough that the Ryujinx developers don't notice, I guess.

          • 2 months ago
            Anonymous

            >Process
            Is there something specific in this regard to 'process' in terms of definition? I can vaguely remember multiple FOSS projects that have multiple parts governed by multiple licenses.

            >legal gray area
            Really? I mean, so long as you don't basically do the "lift the code exactly and just change a handful of things like you're trying to hand in the same paper as your buddy" I'd imagine it would fall under the point of open source code that can be inspected. If it was HYPER specific to only this workload I could understand there being an argument, but between the difference in language (C++ vs C#) and other parameters it would see more like referencing rather than importing the code? I know that some other projects including some other emus and HID-focused driver projects do at least something similar functionally, so it isn't like if I looked at Cemu's or Dolphin's support for multiple WiiMotes or whatever maybe that would be another option, but it seems a strange thing to not be able to look at the code and learn from it.

          • 2 months ago
            Anonymous

            The GPL only says this in a pretty roundabout way, but from the GPL FAQ:
            >Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work.
            Ryujinx would have to switch its license to GPL to include any GPL code in the binary or anything it links to. I assume gdkchan would object to that.

            >more like referencing rather than importing the code
            Referencing copyrighted code without permission is copyright infringement. The GPL FAQ actually has a section about this as well.

          • 2 months ago
            Anonymous

            >Ryujinx would have to switch its license to GPL to include any GPL code in the binary or anything it links to. I assume gdkchan would object to that.
            Roundabout I guess as say. Maybe its specific GPL versions, but I can remember that stuff like drivers or other components have been used with multiple licenses before. Hell, I know there are even times that a proprietary or part proprietary application has GPL'd code in it, but it simply shows the license and code for the portions that are GPL'd . This may be a GPLv2 / 2+ etc..vs v3 difference though. So essentially GPLv3 is not compatible with most other FOSS licenses?

            >Reference
            I guess it depends on the definition of referencing. I was meaning to use it as a source of information to learn from , as opposed to referring to its presence. If someone who never programmed in a given language looks at some FOSS program for how it prints hello world and realizes how that language functions so they can print things to the screen themselves, that doesn't seem to be the same as dropping the code in verbatim or close enough to it, but I guess it comes down to a number of different circumstances, how much people perceive in terms of the definition applies.

            In any case, if people are correct this seems to be different enough that hosting Dual JoyCon must have a custom driver instead of standard SDL support?

          • 2 months ago
            Anonymous

            >there are even times that a proprietary or part proprietary application has GPL'd code in it, but it simply shows the license and code for the portions that are GPL'd
            That's copyright infringement. It's pretty common, companies don't care about the rights of people who can't afford to sue them, but still.
            I'm sure looking at Yuzu's code for this and implementing something similar in Ryujinx would be totally fine in practice. It's not like Tropic Haze will sue you from the grave.
            Why not give it a try?

          • 2 months ago
            Anonymous

            Is it? Like, not sure what license but I know that an old router I had was based on AsusWRT and even set-top FIOS boxes have a section where you can go and look at the open source licenses they're making use of - it at least seems like they're trying to adhere to the license and these are big enough companies that if they were fricking up considerably,they woud be an easy payday with deep pockets?

            That said, I don't have the technical skill to work with drivers the way they'd need to be and my C++ is out of date with even less time in C# - I can't do it myself (or at least by myself) but I was looking into the feasibility of someone with more HID driver dev experience (Linux and Windows) about being able to contribute or if the Ryujinx devs were just being overly cautious to not check out Yuzu's code, or if there was a major license issue. It may very well be that the primary devs don't feel its worth their time for an admittedly less popular input method (Dual Joycon is needed for some games, but for many others you can get awa with a single ProController or easier SDL apparently stuff that doen't require acustom driver).

            If it was as clear-cut as you claim then Nintendo wouldn't have had a leg to stand on, or the judge would have refused to sign off on the settlement.

            Regrettably, like in many cases with a deep pocketed person suing, it doesn't have to be a legitimate case or one they think they'll win- they jut have to starve out or bankrupt others to settle, as the did with Yuzu. Nintendo's claims would never have held up, but I think they settled because it was easier (they had the money from donations they could turn over as an enticement) and because they didn't want tobe PERSONALLY liable for even non-commercial copyright infringement. There was the question of one or more Yuzu devs (if screenshots are accurate) passing around game between each other for development reasons; this likely would have resulted in a symbolic punishment (ie a dollar civil fine or some shit) at the end, but Nintendo woud have used it to bludgeon their big $ case etc.

    • 2 months ago
      Anonymous

      this person is lying, emulators are not covered under DMCA. Yuzu only shut down as an origanization because the devs were moronic

      • 2 months ago
        Anonymous

        If it was as clear-cut as you claim then Nintendo wouldn't have had a leg to stand on, or the judge would have refused to sign off on the settlement.

        • 2 months ago
          Anonymous

          why is ryuginx and citra still standing then? did nintendy run out of money?

          • 2 months ago
            Anonymous

            How should I know? My dad doesn't work for Nintendo.

          • 2 months ago
            Anonymous

            its obvious its something that only yuzu did. And we all know what yuzu did - try to sell features and shit

  2. 2 months ago
    Anonymous

    try sfc /scannow

Your email address will not be published. Required fields are marked *