Install wine-staging. To do so follow the guide
https://wiki.winehq.org/Download
For Ubuntu run these commands first
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
Next update your packages
sudo apt update
Install Dependencies
sudo apt install -y libc6 libgcc1 libglib2.0-0 libgphoto2-6 libgphoto2-port12 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 liblcms2-2 libldap-2.4-2 libmpg123-0 libopenal1 libpulse0 libudev1 libx11-6 libxext6 libxml2 zlib1g libasound2-plugins libncurses5 libcapi20-3 libcups2 libdbus-1-3 libfontconfig1 libfreetype6 libglu1-mesa libgnutls30 libgsm1 libgssapi-krb5-2 libgtk-3-0 libkrb5-3 libncurses5 libodbc1 libosmesa6 libpcap0.8 libpng16-16 libsane1 libsdl2-2.0-0 libtiff5 libv4l-0 libva-drm2 libva-x11-2 libva2 libvulkan1 libxcomposite1 libxcursor1 libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1 libxslt1.1 libxxf86vm1 gnutls-bin cabextract
sudo apt install -y libgnutls30:i386 libldap-2.4-2:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386
Install wine-staging
sudo apt install --install-recommends winehq-staging
For Debian 10 run these commands first
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/Release.key
sudo apt-key add winehq.key
sudo apt-key add Release.key
sudo apt-add-repository contrib
Next open your /etc/apt/sources.list file and add to the end of the file
deb https://dl.winehq.org/wine-builds/debian/ buster main
deb-src https://dl.winehq.org/wine-builds/debian/ buster main
deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10 ./
Next update your packages
sudo apt update
Install Dependencies
sudo apt install -y libc6 libgcc1 libglib2.0-0 libgphoto2-6 libgphoto2-port12 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 liblcms2-2 libldap-2.4-2 libmpg123-0 libopenal1 libpulse0 libudev1 libx11-6 libxext6 libxml2 zlib1g libasound2-plugins libncurses5 libcapi20-3 libcups2 libdbus-1-3 libfontconfig1 libfreetype6 libglu1-mesa libgnutls30 libgsm1 libgssapi-krb5-2 libgtk-3-0 libkrb5-3 libncurses5 libodbc1 libosmesa6 libpcap0.8 libpng16-16 libsane1 libsdl2-2.0-0 libtiff5 libv4l-0 libva-drm2 libva-x11-2 libva2 libvulkan1 libxcomposite1 libxcursor1 libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1 libxslt1.1 libxxf86vm1 gnutls-bin cabextract
sudo apt install -y libgnutls30:i386 libldap-2.4-2:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386
Install wine-staging
sudo apt install --install-recommends winehq-staging
For Arch Linux go and open your terminal. We will need to edit the pacman.conf file
sudo nano /etc/pacman.conf
Scroll down and find where it starts saying [testing], [core], [extra], [community] and so on. Make sure to remove "#" at he beginning of the line so it looks like this.
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[testing]
Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community-testing]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
[multilib-testing]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
Next update the packages
sudo pacman -Suy
And install wine-staging
sudo pacman -Sy wine-staging
And lastly install all of these packages
sudo pacman -Sy giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba alsa alsa-utils alsa-tools gnutls libpng wine-mono lib32-libxml2 lib32-mpg123 lib32-lcms2 lib32-giflib lib32-libpng lib32-gnutls pygtk python2-dbus lib32-libpulse lib32-fontconfig lib32-libxcomposite lib32-libxrender lib32-libxslt lib32-gnutls lib32-libxi lib32-libxrandr lib32-libxinerama lib32-libcups lib32-freetype2 lib32-libpng lib32-openal python-pyopencl lib32-v4l-utils lib32-libxcursor lib32-mpg123 lib32-sdl xf86-video-intel lib32-mesa-libgl nss-mdns --needed --noconfirm
With that please reboot and proceed with the guide
Create the main directory (we will be using this directory for all the configurations and tweaks....may be different in your case)
sudo mkdir /home/usernamehere/Games/osu-wine-prefix
Create wine prefix
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 winecfg
NOTE: It's going to ask you to install wine-mono and wine-gecko, make sure to select no.
Install winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv -v winetricks /usr/local/bin
Install .NET Framework + japenese fonts and special characters
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 winetricks -q --force dotnet472 cjkfonts gdiplus ie8 winhttp
Lower audio latency (set sound to alsa if using alsamixer or pulse if using pulseaudio)
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 winetricks sound=alsa
cat > dsound.reg << "EOF"
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\DirectSound]
"HelBuflen"="512"
"SndQueueMax"="3"
EOF
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 wine regedit dsound.reg
Create osu directory where osu! is going to be installed
sudo mkdir /home/usernamehere/Games/osu-wine-prefix/drive_c/users/root/Application\ Data/osu\!
If you don't want to use the installer download the preinstalled osu! folder (http://www.mediafire.com/file/omcxq8r13uyqa2q/osu.zip/file) and extract it into /home/usernamehere/Games/osu-wine-prefix/drive_c/users/root/Application\ Data/osu!
If you want to use the installer follow these steps
Download the Installer https://m1.ppy.sh/r/osu!install.exe
Copy it to your newly created folder
sudo cp -r ~/Downloads/osu\!install.exe /home/usernamehere/Games/osu-wine-prefix/drive_c/users/root/Application\ Data/osu\!
Install dxvk 1.7.1
Download https://github.com/doitsujin/dxvk/releases/download/v1.7.1/dxvk-1.7.1.tar.gz
Extract dxvk-1.7.1.tar.gz and copy its contents
sudo cp -r dxvk-1.7.1/x64/* /home/usernamehere/Games/osu-wine-prefix/drive_c/windows/system32/
sudo cp -r dxvk-1.7.1/x32/* /home/usernamehere/Games/osu-wine-prefix/drive_c/windows/system/
Open winecfg
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 winecfg
- Set Windows version to Windows 7 if not done already
- Go to libraries and add
>>d3d10
>>d3d10_1
>>d3d10core
>>d3d11
>>d3d12
>>d3d8
>>d3d9
>>dxgi
- Set them to native and click apply
- Next go to graphics tick "Allow the window manager to control the windows"
- Next go to Staging and tick the first four
Next install DirectX
To do so download the DirectX installer https://www.microsoft.com/en-us/download/details.aspx?id=8109
Then launch it using the following command
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 wine ~/Downloads/directx_Jun2010_redist.exe
It will aske where to install. Pick C:\
Once done launch the installer
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 wine /home/usernamehere/Games/osu-wine-prefix/drive_c/DXSETUP.exe
Once finished with the install continue.
Create a custom terminal command for launching osu!
cat > osu << "EOF"
#!/bin/sh
export BROWSER='/opt/brave.com/brave/brave-browser'
export STAGING_AUDIO_DURATION=2000
export WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/
export WINEARCH=win32
wine /home/usernamehere/Games/osu-wine-prefix/drive_c/users/root/Application\ Data/osu\!/osu\!.exe
EOF
Create a custom terminal command for killing osu!
cat > osukill << "EOF"
#!/bin/sh
export WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/
export WINEARCH=win32
sudo wineserver -k
sudo killall -9 /opt/wine-staging/bin/*
EOF
Make the commands executable and make them accesable from the terminal
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill
More tweaks to get rid of vsync
sudo mkdir -v /etc/X11/xorg.conf.d
cat > tmp.conf << "EOF"
Section "Device"
Identifier "Radeon"
Driver "radeon"
Option "SwapbuffersWait" "off"
EndSection
EOF
sudo mv tmp.conf /etc/X11/xorg.conf.d/10-radeon.conf
Mouse tweak
xset m 0 0
Next reboot
Launch the Installer
sudo WINEPREFIX=/home/usernamehere/Games/osu-wine-prefix/ WINEARCH=win32 wine /home/usernamehere/Games/osu-wine-prefix/drive_c/users/root/Application\ Data/osu\!/osu\!install.exe
After that make sure to run osu with
sudo osu
YOU HAVE TO DO THIS STEP ONLY ONCE
Once open make sure to let it cache for really low latency (latency decreases as you play)
To speed it up pick any really long map and enable HR,NC and AT
Let osu play the map till the end and let the leaderboards and all of the ui element enabled
Once done you can play with low latency.
I would recommend closing osu normally and then kill wine by
sudo osukill
I would recommend to change "HeightFullscreen" and "WidthFullscreen" to a resolution you like playing at. These work for me:
HeightFullscreen = 768
WidthFullscreen = 1366
And change the same for "Height" and "Width"
Height = 768
Width = 1366
For the last step open osu to ensure that the changes applied succesfully.
If you want to push latency lower I would recommend overclocking yourn NVIDIA GPU by using the guide below. https://github.com/BeanGreen247/Linux_NVIDIA_GPU_Overclocking_Guide
If you get any error related to Windows, dlls missing or exes missing, just remove the prefix folder and start again
sudo rm -rf /home/usernamehere/Games/osu-wine-prefix
If the game refuses to run make sure to test if X11 allows you to open any app as root.
To do so run
sudo gedit
OR
sudo mousepad
To fix run
xhost +si:localuser:root
If you get this error
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 10 (X_UnmapWindow)
Resource id in failed request: 0x1a00001
Serial number of failed request: 293
Current serial number in output stream: 296
Make sure to run the game in virtual desktop