forum

[resolved] I am trying to build Osu! for Linux ARM64, I am having problems however.

posted
Total Posts
3
Topic Starter
GYKGAMER
Problem details:
Before I say anything, I have basically never touched C#, C, C++ any of that. I have been doing all of this with the help of my friends, google and luck.

I have been building osu! for the Raspberry pi 5 for about 3 days now and I'm stuck on two errors (For both building in Release and Debug), one is about a "version mismatch": "Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'osu.Game.Resources, Version=2023.1228.0.0, Culture=neutral, PublicKeyToken=null'. The module was expected to contain an assembly manifest." and the other one is about a missing dependency known as "libveldrid-spirv" which after researching is a .Net library which osu! uses. I can provide every step I've done so far (be advised it does look bad as I haven't finalised it and added the special touches)

Video or screenshot showing the problem:
I can provide if asked, they wouldn't really help here.

osu! version: Lazer 2023.1231.0
applearon
I had a similar problem when compiling osu!lazer for my M2 Mac on Asahi linux.
I had to build the veldrid-spirv library (make sure to git clone --recurse-submodules).
I had to change 1 line of code, at src/libveldrid-spirv/libveldrid-spirv.cpp at line 37.
I replaced "std::uint32_t IDs[2];" with "std::wint_t IDs[2];"
Then I ran ./ext/sync-shaderc.sh to get the rest of the files; and then it just compiled normally:
$ ./build-native.sh -release linux-x64
(even though it says x64, it'll build an aarch64 .so file)

then when building osu!lazer, make sure to add the path to your LD_LIBRARY_PATH:
$ export LD_LIBRARY_PATH=~/veldrid-spirv/build/Release/linux-x64/
or wherever you built the package


You might also have to do a similar thing for libbass from here: https://www.un4seen.com/
I needed the main libbass, and bass_fx and bass mix add-ons. And those already have the .so files, so just add the directories containing those .so files into your LD_LIBRARY_PATH:
$ export LD_LIBRARY_PATH=~/veldrid-spirv/build/Release/linux-x64/:~/bass24-linux/libs/aarch64/:~/bassmix24-linux/libs/aarch64/:~/bass_fx24-linux/libs/aarch64/
(example of my setup, but make sure to change the directories to match where you download them)
Then you should be able to build osu!lazer normally following the instructions on the github page.

Hope this could help!
Topic Starter
GYKGAMER
It did indeed help! I got osu! successfully running at a stable 20 - 30 fps on the raspberry pi 5. Thank you
Please sign in to reply.

New reply