Closed silentrald closed 1 month ago
Hmmm, can not replicate it myself:
On what file system did you try installing the songs onto, or is BSManager located in @silentrald? It could be related to the file system of the storage medium. I'm running ext4
as the filesystem.
@kevin-wijnen It should show in the filesystem just fine. I just can't see the song in game when you run the AppImage within Dolphin, can you search it in game? Also I forgot that this happens in 1.37.1 but not in 1.29.1.
Also I run btrfs
.
@kevin-wijnen It should show in the filesystem just fine. I just can't see the song in game when you run the AppImage within Dolphin, can you search it in game? Also I forgot that this happens in 1.37.1 but not in 1.29.1.
Also I run
btrfs
.
My bad! Yeah, running 1.37.1 causes the entire custom song list to simply not load (looping infinitely). I could not find where the logs are, produced by the Debug Mode, however.
Ohhh that issue relates to #578, there were hidden dependencies that weren't documented so your BSIPA isn't run correctly but already gotten a #586 PR to remove those dependencies, since that's better for the Steam Deck users.
You could run the PR version if you know how to run node/electron stuff but you can also download the AUR bs-manager-git build of this which links the dependencies of dotnet-3.1.426
and screen
automatically.
Ohhh that issue relates to #578, there were hidden dependencies that weren't documented so your BSIPA isn't run correctly but already gotten a #586 PR to remove those dependencies, since that's better for the Steam Deck users.
Hmm. I did install screen and dotnet system wide however as I noticed issue #578 before. Were there other dependencies I did miss that would impact it?
The screen
and dotnet
combination gives a silent error so there was a reason for me to drop it as well. The mostlikely culprit is dotnet version mismatch since you really need the 3.1.426
version for some odd reason for IPA.exe
to run correctly.
Try running this command and see if the version 3.1.426 is available.
dotnet --list-sdks
You can also try running this command within your BS version folder if it doesn't return an error.
cd /some/path/to/BSManager/BSInstances/<version folder>
dotnet ./IPA.exe -n
The
screen
anddotnet
combination gives a silent error so there was a reason for me to drop it as well. The mostlikely culprit is dotnet version mismatch since you really need the3.1.426
version for some odd reason forIPA.exe
to run correctly.Try running this command and see if the version 3.1.426 is available.
dotnet --list-sdks
You can also try running this command within your BS version folder if it doesn't return an error.
cd /some/path/to/BSManager/BSInstances/<version folder> dotnet ./IPA.exe -n
Hmmm. Gives me the following error, despite version 3.1.426 being present:
Ahhhh yeah you need to set this environment variable.
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
Ahhhh yeah you need to set this environment variable.
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
Hmm, now I get the following error when trying to run dotnet ./IPA.exe
in any instance's directory:
ERROR: Game does not seem to be a Unity project. Could not find the libraries to patch.
[Press any key to continue]
It doesn't seem that mods are loaded in properly either.
Did you launch the game before running the IPA.exe
command?
Did you launch the game before running the
IPA.exe
command?
I did. Even when having launched the game via BSManager and keeping it running, it still gets the same error. I did it in the 1.37.1 (1)
folder, which represents my modded instance.
Seems that it's not getting/locating the correct Beat Saber executable from here issue. Can you try if you can running either:
dotnet ./IPA.exe foo -n "./Beat Saber.exe"
or try if you can do it in wine instead
wine ./IPA.exe foo -n "./Beat Saber.exe"
If that doesn't work, remove the "foo" in the cmdlet.
Seems that it's not getting/locating the correct Beat Saber executable from here issue. Can you try if you can running either:
dotnet ./IPA.exe foo -n "./Beat Saber.exe"
This did work for me. Running through WINE gave me an "illegal characters" error but that might have to do with not having the .NET SDK installed on my WINE virtual disk.
Is there any way to have the launcher locate the Beat Saber executable properly, as with the shell command? (And possibly run this through Linux over WINE?)
Running through WINE gave me an "illegal characters" error but that might have to do with not having the .NET SDK installed on my WINE virtual disk.
Iirc, this is only a warning text because we're passing the arguments with wine
, not sure why this is though but can you post the full logs so that I have a full context of the error? Also could you post this in #578 as well so I can track any errors with the wine runtime.
Since you have the mods installed properly, can you check in game if you have the mods installed (SongCore is important here) and then check if the song that you've downloaded is visible in game.
Since you have the mods installed properly, can you check in game if you have the mods installed (SongCore is important here) and then check if the song that you've downloaded is visible in game.
Songcore was installed and seems like the misterlihao song you mentioned and I downloaded doesn't show up. Using BetterSongList to download any unicode titled song also fails:
(On 1.37.1)
Also able to reproduce on 1.29.1 (but I got the strange issue that shared maps don't work at all on 1.29.1 🤔; removing any unicode characters from folder names fixes said issue however).
Can you check as well if running BSM as a non-Steam games also works as a solution? It's much better since it may support downloading songs in game as well.
Already got a fix working. Just needs to set SteamEnv=1
which I think just tell the Beat Saber executable to run in a steam environment or something. You can try the PR if the fix works as well.
Can you check as well if running BSM as a non-Steam games also works as a solution? It's much better since it may support downloading songs in game as well.
Would you still like me to visit this workaround?
Already got a fix working. Just needs to set
SteamEnv=1
which I think just tell the Beat Saber executable to run in a steam environment or something. You can try the PR if the fix works as well.
As reported in #590: the solution seems to work just fine. :+1:
Would you still like me to visit this workaround?
No need, the non-Steam game already sets that environment variable so no need to replicate.
Thanks for the help as well.
Ahhhh yeah you need to set this environment variable.
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
Hey quick question, this environment variable seems to be crashing other .NET applications I am using. This causes the following error in some .NET apps on Linux:
System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name')
en-US is an invalid culture identifier.
Is it possible for BSManager to automatically run IPA.exe
with DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
only for said session? To not need it as a system/user-wide environment variable?
Mentioning @silentrald as it involved their suggested environment variable fix
@kevin-wijnen try to revert that env var and pull the latest version of BSM. We're not using dotnet and screen anymore as of #586 getting merged. Double check if you can still install mods just to verify if it still works and check your other .NET projects if it doesnt affect it anymore.
Bug Description
When downloading maps with unicode characters, they do not show up in the song list within Beat Saber.
Reproduction Steps
Download any song with BSManager with any unicode character. Sample map to download:
Screenshots
Error logs from Beat Saber
System Specs
OS: Arch Linux KDE Plasma X11/Wayland
Workarounds
Additional context
The main issue here is within proton/wine itself when windows path is converted to linux path, but I'm not sure why running it as a non-steam game solves this issue. Might try to look into environment variables that might lead to somewhere.