Skip to content

Commit

Permalink
WineASIO post: add missing steps
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholastay committed Jan 7, 2024
1 parent 1857518 commit a8ef1e7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions content/post/2024-01-06-wineasio.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,29 +31,32 @@ In my case, I was using **Bottles** (Flatpak) to manage my WINE prefix, so this

(`wineasio-register` could work, but to make sure the final registering works in Bottles I think it's better to just do it manually.)

1. Ensure the Pipewire JACK connection kit is installed: `sudo dnf install pipewire-jack-audio-connection-kit`
1. Ensure the Pipewire JACK connection kit is installed, and the system is ready for realtime: `sudo dnf install pipewire-jack-audio-connection-kit realtime-setup`
1. Ensure your user is able to use realtime, and can access audio devices: `sudo usermod -aG realtime,audio $USER`
1. Copy built WineASIO libraries into WINE libraries folder:
- `cp wineasio64.dll.so ~/.var/app/com.usebottles.bottles/data/bottles/runners/wine-ge-proton8-25/lib64/wine/x86_64-unix`
- `cp wineasio64.dll ~/.var/app/com.usebottles.bottles/data/bottles/runners/wine-ge-proton8-25/lib64/wine/x86_64-windows`
1. Copy built WineASIO DLL into relevant prefix folder (or, the game EXE folder should work too):
- `cp wineasio64.dll ~/.var/app/com.usebottles.bottles/data/bottles/bottles/<BOTTLE NAME>/drive_c/windows/system32`
1. For Bottles Flatpak, you'll also need to allow access to the Pipewire device:
- `flatpak override --user --filesystem=xdg-run/pipewire-0 com.usebottles.bottles`
- Restart Bottles for good measure
1. Register WineASIO DLL with the WINE system:
- In Bottles, fire up the Command Prompt for the relevant prefix
- `C:`
- `cd C:\WINDOWS\SYSTEM32`
- `regsvr32 wineasio64.dll`
1. For Bottles Flatpak, you'll also need to allow access to the Pipewire device:
- `flatpak override --user --filesystem=xdg-run/pipewire-0 com.usebottles.bottles`
- Restart Bottles for good measure
1. A reboot is now probably required

### Testing it

At this stage you may be able to just fire up whatever it is you're trying to do. However, in my case, it was very unhelpful because at first it didn't work right away, and the game decided to hang on startup.

1. Grab a copy of VB-Audio's ASIO Driver Tester: https://forum.vb-audio.com/viewtopic.php?t=1204
1. Unpack it, then launch VBASIOTest64.exe
1. Click 'ASIO Device' -> 'WineASIO'
1. Click 'Devices' -> 'WineASIO'
- (At this stage, WineASIO should come up. Otherwise, review the installation steps above.)
1. Graphs and numbers should start coming up, and this is how you know it all worked!
1. You should hear a sine wave playing, and numbers should start coming up. This is how you know it all worked!
- (Otherwise, an error message should come up below and in the terminal. In my case, the terminal output suggested it couldn't connect to JACK, and it turned out it was the Flatpak allow step that was missed.)

The ASIO device should be ready to go, connected to Pipewire JACK! It should be simply called 'WineASIO', for any programs that should require its name.
Expand All @@ -64,3 +67,5 @@ Notably, some of these details I stumbled across were seemingly out of date in s

- https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1495
- https://github.com/theNizo/linux_rocksmith/blob/main/guides/setup/fed-pipewire.md

(Edit 2024-01-07: Added missing realtime/audio setup+group steps, missing C drive switch in DLL registration, and minor reordering.)

0 comments on commit a8ef1e7

Please sign in to comment.