MichaelJW / DorsalVR

VR interface for PC games
69 stars 7 forks source link

Yuzu Compatibility? #20

Open NathanielB123 opened 2 years ago

NathanielB123 commented 2 years ago

Is it possible to use this app with Yuzu? Specifically I just want to be able to output the motion controls of my VR hand controllers to the emulator, I don't want to use the HMD. When using with Dolphin it seems to set up everything with the IP and port in the background, I don't need (or expect) it to be as smooth of an experience as that, but is there some way to view what IP address and port of the DSU server or assign it yourself to be able to configure it with Yuzu manually?

MichaelJW commented 2 years ago

Hey @NathanielB123, good question. I haven't tested it but since Yuzu apparently uses Cemuhook/DSU for motion controls, it might work.

DorsalVR uses server 127.0.0.1, port 26659, so try using those in Yuzu's options and see how it goes!

NathanielB123 commented 2 years ago

I unfortunately couldn't get it to work, but I think there's a large chance I'm just doing something wrong rather there's any issue with Dorsal VR or Yuzu, because I also tried to connect manually to Dolphin as well (so removed the lines exePath: C:\Program Files ++\0 Emulation\Dolphin-x64\dolphin.exe configDir: C:\Users\natha\Documents\Dolphin Emulator\config from my default.yaml file, launched Dorsal VR and then launched Dolphin instead of Yuzu) and tried to change all the settings so they were the same as when configured automatically by Dorsal VR, but after clicking "refresh" (in the window that pops up after clicking configure by Emulated Wii Remote), the DorsalVR devices did not show up to be selected (I definitely clicked "Alternate Input Sources" and added the DSU server with IP 127.0.0.1:26659, and selected "Background Input"). Strangely, even when launching Dolphin from Dorsal VR using exePath and configDir settings as normal, it works perfectly up until I click "refresh" once or twice in Dolphin, after which all the Dorsal VR devices disconnect and I could not get them to appear again. Obviously normally this wouldn't be necessary, but I thought it was slightly odd and might be related to whatever issue I'm encountering. If you have any ideas for what I might be doing wrong, please tell me!

Jaitsu commented 2 years ago

I believe a lot of DorsalVR is presently hardwired to expect Dolphin, because if it can't run Dolphin and modify its configs, it won't launch the DSU server - and if Dolphin is communicating with the DSU server, then nothing else can. A while back, I actually tried to work around that by creating a "dummy" EXE (that does nothing) and a copy of Dolphin's configs (Dolphin.ini, DSUClient.ini, GCPadNew.ini, Hotkeys.ini and WiimoteNew.ini) and pointing DorsalVR's config at those instead of my real Dolphin install - then DorsalVR would launch and host the server unconnected to anything, which allowed me to connect remotely/from a different client program.

I can share my 'dummy' EXE but I'm honestly not sure what the etiquette on GitHub is for doing such a thing. (This is obviously an extremely hacky workaround that could be better addressed with tweaks to DorsalVR to allow running it without connecting to Dolphin. Perhaps I'll get my feet wet and actually try coding something and make a pull request for once in my life. No promises. 😅)

MichaelJW commented 2 years ago

Hey, thank you both @NathanielB123 and @Jaitsu for the extra details.

Embarrassingly, I can't remember myself how to use DorsalVR with other programs. I know it's possible, because I used to use the PadTest program linked to from this page to test the connection, and from what I remember it worked without being specified in the YAML files anywhere; just launch it (without Dolphin, as this would interfere), enter the correct IP and port, and it would show what input it was retrieving from DorsalVR. I just don't remember the steps for this at the moment!

(Problem is, I haven't had any time to work on this recently, and when I have worked on it it's been a new version that uses a very different setup, so is not really relevant. I keep promising that the new version will solve all kinds of problems but I realise that isn't very useful until it's in a state where I can release it...)

I'll look at this again next time I get a chance, before working on the new version, so even if it isn't possible at the moment I can at least explain why, and figure out what would be necessary to get it working. Sorry it's taking so long.