shiiion / dolphin

Dolphin fork intended to give Metroid Prime Trilogy mouselook controls
Other
471 stars 44 forks source link

[FEATURE] Possible to merge these patches into instance of Dolphin VR? #59

Closed mstan closed 3 years ago

mstan commented 3 years ago

Hi,

Had an inquiry. has the possibility of attempting to use this in conjunction with a Dolphin VR fork?

Ideally I'd imagine if there's not a lot of conflicts, I'm hoping it'd be possible to hot-patch this into a dolphin-vr repository for VR + mouse/keyboard on Prime.

Has this been explored? From the developer's perspective, how difficult should this be?

Intended platform is Windows 10 with an Oculus VR headset.

SirMangler commented 3 years ago

Unfortunately even if we wanted to, the Dolphin VR fork violates Dolphin's GPL-2 License, by using their code we would violate the license.

To answer the question of merging PrimeHack into DolphinVR, rather than the other way around, the closest we have to that is PrimeHack-Ishiiruka, which is based on a build almost as old as Dolphin-VR (though I believe it's still newer). You would have to backport our changes into DolphinVR's repository. Luckily this wouldn't be that difficult, 90% of our code is contained within our Core/PrimeHack folder, but you would need to add our mouse input class back in and hook it up again.

The UI would be a pain, not especially difficult but you would have to re-enter our changes by hand and hope the version difference doesn't force you to make too many changes. Dolphin WX's implementation of the graphics window is disgusting. Every single tab is created within one function. The file is 2557 lines long.

You will get severe merge conflicts because you'll have to try merge all of Ishiiruka's changes (including simply being a newer version) into Dolphin-VR's changes, and you would have a migraine if you tried to cherry pick the PrimeHack commits back into the repository. Porting it by hand is the only reasonable option, and that way you won't need to worry about merging graphics code.

I have ported PrimeHack from Ishiiruka/WX to Regular/Qt (Latest) in the past, which is why this repository exists and is still in use. I do not own an Oculus though.

Merging DolphinVR into the latest versions of Dolphin is an entirely different, far worse story. Seeing as you didn't ask about this directly, I'll only answer in brief, you would need to rewrite Dolphin-VR in the new version basically from scratch (with the exception of new files exclusively made to handle Oculus code), Dolphin has almost entirely rewritten their graphics core since 4 years ago. That is definitely out of the scope of PrimeHack though.

If the upstream had a new VR implementation, we could certainly merge it. But keep in mind, to do this they would need to update their license to be compatible with Oculus. Last time they had to update their license, it took hundreds of contributors to sign off before it could legally happen.

I'm closing the issue but you can continue to ask more questions here or in our Discord.