[Feature Request] Use without Rai Pal
I know Rai Pal tries to get over the difficulty curve of writing all over the game's files, bit would it be possible to make UUVR useable without it? The advantages are many:
-
it would allow testing and debugging UUVR and any profiles in a communitary way, by getting our hands dirty;
-
it would allow game compatibility charts and profiles that are web based, instead of completely integrated in the binary client Rai Pal
-
it would benefit Linux users like me, since on Linux each game has a proton/wine profile that is equivalent to a whole linux installation (and that's great for security / isolating each game), and also some file operations can be a little different
currently it seems to me that Rai Pal creates a layer of obfuscation that harms experimentation and centralizes what should be decentralized.
as a linux user, I can confirm the difficulty
Any feedback on this? To make this worse, been trying to install Rai-Pal on Linux (used the Zerograve game for this, via proton) and so far even after installing webview 109 from here, and having the rai-pal installation successfully finished, it just shows a black window when run.
Sadly nothing as of yet. However, I have found this project Kaon https://github.com/LorenDB/kaon Which has plans to add support for UUVR. I would recommend encouraging this dev on their project. Otherwise, raipal may not ever support Linux at this rate
@Raicuparta I understand that it's something you don't use (Linux), but even for Windows users, don't you think it would be useful to document how UUVR works? Like, in the case of your other mods using BepInEx there is a bridge DLL like winhttps or dinput8 that is loaded and bootstraps the entire modding process, but in the case of UUVR I see several dlls spread over a few directories and no obvious entry point. Also the need of dotnet and/or mono is unclear for me.
I say that because @LorenDB might also be interested in knowing this to add to the Kaon linux application. Or someone might do a pull request to add this support, if it's documented.
I tested it, and it is possible to use UUVR without Rai Pal.
1/ Download and install BepInEx: https://docs.bepinex.dev/articles/user_guide/installation/index.html
(Then you have the default BepInEx folders and files in your game root)
2/ Download and install UUVR (for my test with Yooka-Laylee I needed uuvr-mono-legacy): https://github.com/Raicuparta/uuvr/releases/tag/v0.3.1
Install it inside your BepInEx folder where it will add files within /config, /patchers, and /plugins.
Example inside /plugins:
3/ Now I only needed to change one line of code inside YookaLaylee\BepInEx\config\BepInEx.cfg
Type = MonoBehaviour # Default: Application
(MonoBehaviour was needed. Otherwise the game crashed. I compared the values between a Rai Pal installation of UUVR on my game and the default installation I copied into my game folder.).
Disclaimer: I only used Yooka-Laylee as a test if the general injection works. Not if the game was playable in 3DoF afterward. ;-)
I bow in your honor, @JaXt0r . Thanks a lot for these instructions. Will try it during the weekend for sure!
So... By following these instructions, I was able to make uuvr "work" on the game Zerograve (steam ID 1218580), it's a descent-like game and very light. HOWEVER, although I have stereoscopic vision, I had to play using the joystick and there was no head tracking, moving my head would not move the view. Does Yooka-Laylee also suffer from this issue, @JaXt0r?
Update: just noticed a directory "CopyToGame" under uuvr... will try it.
Cool, that it worked out with the manual installation. 👍
From my understanding the "CopyToGame" directory is automatically copied into your proper game directory. You can see it, that e.g., OVR*.dll can be found there after starting the game once with UUVR.
Head tracking was working on Yooka-Laylee, but camera wasn't attached to player and main menu UI was not visible in HMD (Didn't test thorough). Should be fixable.
Are you a developer? Then let's help Raicuparta to add more fixes and features to UUVR making it a solid UEVR like solution. :-) There's also a Discord channel on the Flat2VR server, where we can discuss further, if you like.
That's odd because in my case the CopyToGame contents were definitely NOT copied. Where should it copy the contents to? In the case of my game there's Zerograve_Data which has the Plugins subdirectory (with a "x86_64" instead of "x64" subdirectory) but not a Data directory. I tried various combinations to no avail -- the game partially starts in VR without head tracking. "Partially" because the main menu appears in the flatscreen, interactable via mouse.
I am a developer though not a Windows developer. At least I try not to be.
On the Flat2VR Modding Community discord I see an "uuvr" Forum (Limited) but not a #channel. Where can we talk?
I don't know if I was doing something different but I tried again and now it copied the "CopyToGame" contents. Still, head tracking still doesn't work, and it's the same as before.
Does UUVR have something like the UEVR profiles? Maybe that's what I need for Zerograve. Any clue on where I get these?
On the Flat2VR Modding Community discord I see an "uuvr" Forum (Limited) but not a #channel. Where can we talk?
Let's use rai-general if you want to talk about UUVR in general. Or create a uuvr post when it's about a special game.
I don't know if I was doing something different but I tried again and now it copied the "CopyToGame" contents. Still, head tracking still doesn't work, and it's the same as before.
The errors are unrelated to the copy feature. I think it's related to the game and its needs.
Does UUVR have something like the UEVR profiles? Maybe that's what I need for Zerograve. Any clue on where I get these?
From my understanding there are no profiles so far. It would be basically the .cfg file with special settings only right now.
From my understanding there are no profiles so far. It would be basically the .cfg file with special settings only right now.
That was the key! Modifying ./BepInEx/config/raicuparta.uuvr-modern.cfg -- I found a sample file from a video and started trying to do changes based on it. Will get back soon with details.
For Zerograve -- video here: https://www.youtube.com/watch?v=U2_A10-0Y5I
INSTRUCTIONS TO MAKE IT WORK:
What you need
- BepInEx for Windows (even if the game has a Linux native version, Unity doesn't have a VR output on native Linux)
- The latest UUVR (mono)
- A configuration file ("profile") for the specific game Note: UUVR still doesn't support the VR controllers. You will have to use a joystick or M&K
Where are these?
- BepInEx: https://github.com/BepInEx/BepInEx/releases (for this video, I used BepInEx_win_x64_5.4.23.4.zip)
- UUVR: https://github.com/Raicuparta/uuvr/releases (for this video, I used uuvr-mono-modern.zip 0.4.0)
- Zerograve's profile: this is the one I created -- it's here: https://gist.github.com/Patola/5b2a3318aa33b00216b7aff742ef2027
How do I install them?
- First just unzip BepInEx to the game directory. In my case: cd /games/SteamLibrary/steamapps/common/Zerograve ; unzip /tmp/BepInEx_win_x64_5.4.23.4.zip
- Change the game's launch parameters to: WINEDLLOVERRIDES="winhttp=n,b" %command%
- Run it once and exit.
- Confirm it created the file BepInEx/LogOutput.log under the game's directory.
- Now enter the BepInEx directory: cd BepInEx
- unzip uuvr to this directory: unzip /tmp/uuvr-mono-modern.zip
- run it once again.
- Confirm it created the file config/raicuparta.uuvr-modern.cfg (under BepInEx)
- Replace this file with the one from my gist.
- Now call WiVRn, or Steam Link, or ALVR, and start the game. It will start in VR. Play with your controller or M&K.