Bazzite - failed to load lib64/wine/x86_64-windows/wineasio.dll
- Which distro do you use? Bazzite (Fedora-based)
- Which Proton or wine version do you use? Proton Hotfix
- Do you use pipewire? Yes
- did you choose the native JACK or pipewire-jack guide? Fedora pipewire-jack + wineasio flatpak
- What appears to be the problem? When running Rocksmith 2014 from Flatpak steam I get two popups: the 32 bit dll loads correctly but then the 64 bit dll is not successful
- Did you notice any other unexpected behavior? The wineasio flatpak is out of date, I've tried modifying it to run
makecorrectly, to varying levels of success. Issues I've fixed specifically: it had wineasio 1.1.0, updated to 1.2.0. It was using wine 8.0, updated to 10.0. It was using freedesktop sdk 22.08, updated to 24.08. Files were modified to wineasio[34|64].dll at some point instead of wineasio.dll, tried updating that. Currently the make is failing for the 32 bit version. - What did you try already? See above.
- Did you do any of the steps differently or leave them out? Because Bazzite is atomic I am attempting to do this all via flatpak. No audio group in my system. No wineasio-register, I can't tell if this is relevant when using the flatpak.
Things I definitely have working: pipewire-jack works with guitarix and the rocksmith cable with low latency. Rocksmith 2014 without modification ran works with the cable via alsa which had crap audio quality and latency.
Running the launcher shell script (I was all over the place trying to get this to work) has no audio devices.
Last error message from the wineasio flatpak make command:
winebuild -m32 --dll --fake-module -E wineasio.dll.spec build32/asio.c.o build32/main.c.o build32/regsvr.c.o -o build32/wineasio32.dll
winegcc build32/asio.c.o build32/main.c.o build32/regsvr.c.o -shared -m32 -mnocygwin wineasio.dll.spec -L/usr/lib32/wine -L/usr/lib/wine -L/usr/lib/i386-linux-gnu/wine -L/usr/lib/i386-linux-gnu/wine-development -L/opt/wine-stable/lib -L/opt/wine-stable/lib/wine -L/opt/wine-stable/lib32 -L/opt/wine-stable/lib32/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine -L/opt/wine-staging/lib32 -L/opt/wine-staging/lib32/wine -ljack \
-lodbc32 -lole32 -lwinmm -luuid -o build32/wineasio32.dll.so
/usr/bin/ld: relocatable linking with relocations from format elf64-x86-64 (/app/share/steam/compatibilitytools.d/WineASIO/bin32/../lib32/wine/i386-unix/libole32.a(ole32-00000102.o)) to format elf32-i386 (tmp68269dd3/wineasio32-00000000.spec-00000001.o) is not supported
winebuild: /usr/bin/ld failed with status 1
winegcc: /app/share/steam/compatibilitytools.d/WineASIO/bin32/winebuild failed
make[1]: *** [Makefile.mk:110: build32/wineasio32.dll.so] Error 2
make[1]: Leaving directory '/run/build/wineasio-32bit'
Sorry for the late reply.
Due to my very limited experience with flatpakf, it's hard to give you advice on this.
The guides are adjusted to the new wienasio filenames, but I can't judge what's easier to update in that project.
wineasio-register is for registering the dll to a wine prefix. It is necessary. I can't tell if you just didn't use it, or if it's not available with the flatpak. Anyway, you need to register the dlls, and you can do that by running wineasio-register or regsvr32
That's alright, I didn't expect a lot because it's separate from what you've documented here.
The last part of the makefile yaml is a tool called wineasioutil which is a script that runs regsvr32 I believe "inside" the flatpak. I'm not entirely sure on how flatpaks actually work myself. I have over 2 decades of linux experience in some form or another but I haven't touched makefiles ever.
I'm seeing other people raise issues in the wineasio project itself that may be relevant: https://github.com/wineasio/wineasio/issues/113 and yours: https://github.com/wineasio/wineasio/issues/112 but the lack of activity there is worrying.
I feel like I was making some progress and this should be possible. I'd like to leave this ticket open for reference and contribute to the guide once I do get it working in Bazzite if that's alright with you?
I'm also hitting some compilation issue using Arch. I've fixed a few problems, but I'm not done yet. I'll keep you updated.
Is Bazzite using wine with the old or the new WoW64? I'm asking because it seems to be a hybrid (installed under lib32, but with the new folder hierarchy for libs and dlls under wine/$(ARCH)-$(OS))
Strangely, at the linking step, the library libole32.a found under wine/i386-unix/ is a 64bit format. I would have expected it to be a 32bit (i386-unix is used to receive 32bit libraries), which would have allowed the linker to do its job properly.