geefr/beatsaber-linux-goodies

Wine: dotnet461 installation

Closed this issue · 6 comments

geefr commented

Seems like this will be the sticking point for several things

  • If the user has to install .net, why wouldn't they just use mod assistant through wine
  • winetricks takes ages to install stuff
  • Users probably have wine in some form, there's no knowing what's in their prefix

For now will try scripting the installation of .net into the script (unless there's some override argument to say use the system wine?)

Should check whether Microsoft's redist can be used inside wine - winetricks seems to spend a long time installing other things before the final .net runtime

Ideal solution would be to port ipa over to mono/.net core..

geefr commented

@Zamundaaa https://github.com/geefr/beatsaber-linux-goodies/blob/script-install-dotnet461/scripts/bs-linux-modfix.sh

This is a tweaked version of the script that:

  • makes sure your system has wine/requirements
  • makes a standalone wine prefix for running IPA.exe
  • Installs .net as needed to run it
  • Does the rest of the hacks for beat saber

Fairly sure I don't want this all in one script going forward, as not everyone will want to wait for .net to install (It takes a while, hit enter in the terminal once all the windows have stopped as the script might keep spamming afterwards for some reason)

Likely it'd be a check in beatdrop/similar to ensure the system has what's needed, and if not calls out to something like this to setup just enough to run ipa.

Did give porting ipa to .net core a quick try and it might be possible, just very difficult.

It installs dotnet461 just fine. It creates the custom wine prefix and the extra proton version but then fails. Here's the relevant part of the log:
https://gist.github.com/Zamundaaa/484fc36e3a5ce6186e60ae58397f4822

geefr commented

Huh..

The error from mv isn't an issue, just means you've run the script before and I haven't redirected the output to null

To me that just looks like ipa has failed for some reason.
One thing to try is just to run the script again, I found sometimes ipa can be a bit unreliable (could have just been me)

Otherwise looks like I've got to test on more systems (so far just Mint 19), let me know the details and I'll see if I can reproduce here:

  • So what distro are you using?
  • What does 'wine --version' give
  • Is there anything in your environment that would mess with the wine/proton prefixes? (Other than what the script uses internally)

The good news is you should have a functional copy of wine, so you might be able to debug further with this:
WINEPREFIX=/home/.wine/wineprefix/beatsaber-linux-goodies-ipa wine IPA.exe

It looks like it worked nontheless. I started Beat Saber and the UI mod was there, along with song loader. Then the UI broke and I restarted the game. Boom, all mods I installed there and working perfectly.
I'm on Manjaro KDE (testing). Wine is on 4.15. I don't think there's anything changed from default Wine but the install I have is pretty old, might be something I did once and forgot about.

geefr commented

Awesome, sounds like all the basic building blocks are there and it's mainly usability issues to deal with for a functional release.

I think ipa has some fairly sensible return values for success/failure. I'll see about hiding the wine debug output and making a clear message at the end. Think we can just check if winhttp.dll is in the right place and the return code to check it worked correctly.

geefr commented

Closing this one - 0.3 has scripts for setting up wine and checking if the right stuff is present