forum

Installing osu! on Linux with low-latency [2024]

posted
Total Posts
343
Topic Starter
MarshNello
Welcome! o/

❤️ | Thanks to everyone who donated osu! supporter! I love you guys so much <3 | ❤️

Video example:
Houkago Rakuenbu - Houkago Kakumei [Revolution!] played on Zorin OS


Here's a guide for installing Linux Mint, osu! and OpenTabletDriver:
https://youtu.be/PH-ovqMG5_0

A small introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to community patches and help, but it's time to make it even easier 8)
To install the game, we'll use my osu-winello script you can find at GitHub, which will handle the install itself.

Well, time to install osu! now!

Installation:

Just follow the commands and you'll be good e.e

========================================================================

Prerequisites:

First of all, check if you've already installed your GPU drivers.
You can read how to do that at here.

Then install PipeWire using the following commands (according to your distro):
Installing PipeWire
Nowadays, PipeWire is already shipped by default on most distros.
Check if it's already on your system with:

export LANG=C
pactl info | grep "Server Name"
If this shows: Server Name: PulseAudio (on Pipewire), then you're good to go.

Otherwise, follow the instructions at the link below:
https://github.com/NelloKudo/osu-winello/wiki/Installing-PipeWire

Now install the dependencies needed for the script to work:
Dependencies:
Debian (Ubuntu, Linux Mint, Pop!_OS etc..):
sudo apt install -y git wget zenity xdg-desktop-portal
Arch Linux (Manjaro, Endeavour OS, etc.):
sudo pacman -Sy --needed --noconfirm git wget zenity xdg-desktop-portal
Fedora:
sudo dnf install -y git wget zenity xdg-desktop-portal
openSUSE:
sudo zypper install -y git wget zenity xdg-desktop-portal

Done with prerequisites, time for the proper installation e.e

========================================================================

Installing osu!:

Installing the game is just as simple as this:

git clone https://github.com/NelloKudo/osu-winello.git
cd osu-winello
chmod +x osu-winello.sh
./osu-winello.sh
Follow the script's instructions and the installation will work with no problems!
You can launch the game after relaunching your terminal with:

osu-wine
or just using the shortcuts installed by the script e.e

But before playing, you need to adjust your universal offset to around -35ms, so that your osu! will sound just like on Windows.



Warning: -35ms is what I generally recommend, but try to find your sweet spot from -40ms!

And you're done! You can now play osu!



The script is bundled with some great tools too, you can check those with:

osu-wine --help
Check the troubleshooting box if you need any help or just write me on Discord (marshnello)
You can also ask on ThePooN's Discord Server, they can provide you with lots of help!


...and that's it! Enjoy playing osu! on Linux!


You used the old guide before and want the latest updates? See this.

Got any error (Input lag, random crashes etc.) or want some more features?
Check the box below!:

Troubleshooting:

Open me \o/:
The old troubleshooting guide has been replaced with a way more updated
and relatable
one you can find at my GitHub!

Please refer to the link below:
https://github.com/NelloKudo/osu-winello/wiki
========================================================================

Credits:

Special thanks to:

  1. KatouMegumi's guide
  1. ThePooN's Discord server
  1. GonX's wine-osu builds
  1. hwsnemo's prepackaged wine-osu and patches
  1. l3lackShark's gosumemory
And to everyone willing to help! :3
- Marco -
Welcome to Linux or as I've recently taken to calling it, GNU plus Linux👍
hinuiiik

- Marco - wrote:

Welcome to Linux or as I've recently taken to calling it, GNU plus Linux👍
Welcome to osu! or as I've recently taken to calling it, circle game plus pain👍
pure2568

MarshNello wrote:

final result:

https://youtu.be/Ve4qr3jmDbM

A little introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to ThePoon's patches and Franc[e]sco's guide (https://osu.ppy.sh/community/forums/topics/367783), which are probably the best methods even now. However, in my case both ended up in a broken installation, so I kept searching for ways to install osu! until I actually managed to run it perfectly thanks to some workarounds. It's a pretty easy guide, written especially for beginners (just like me xd), so if you want to install osu! on your Linux distro, just keep reading e.e

PREREQUISITES:
install the following: git, build-essential, dialog, curl.

- sudo apt install git
- sudo apt install build-essential
- sudo apt install dialog
- sudo apt install curl

install wine (the script will do it itself but it's better to have it):
https://wiki.winehq.org/Download

also make sure you installed proprietary drivers for your gpu if you need to
guide for it: https://itsfoss.com/install-additional-drivers-ubuntu/

GUIDE:

to set up our osu!, we'll use osu-install script from yurisuki (credits to him):
https://gitlab.com/yurisuki/osu-install

just follow the instructions here and install it: https://gitlab.com/yurisuki/osu-install#how-do-i-execute-this-script

once you start the script, just follow its instructions.
the script was supposed to do everything automatically, from installing osu! to the patch, but it actually crashes after installing osu! and running it. That's fine, because we'll only use it for the installation indeed.

the steps to make it work are:

- step 1: run it the first time, follow the script's instructions which will install everything but, in the part supposed to run osu!, it shouldn't start (if it starts, skip to step 3); so run the script again.

- step 2: follow the script's instructions again until it starts osu! (if you get "osu! crashed", just click on restart osu! and it should be working now.)

- step 3: the game is now working fine: close it, press whatever key you want on the terminal and the script should crash. that's fine, move on to step 4.

- step 4: run the script again for the last time and follow whatever it says, until it runs osu! again. When it starts, close the game and close the terminal by pressing any key.

our osu! is now completely set up and working fine, but we gotta apply thepoon's patch for latency and create a script to launch (or eventually, kill) the game.

LATENCY PATCH:

let's begin with the patch:

- open the terminal as root using sudo su
sudo su

- type:
mkdir -p /etc/pulse/daemon.conf.d/

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

(WARNING: if after applying this the system's audio is garbage, increase default-fragment-size-msec by 2, save and reboot)

- then type:
nano /etc/security/limits.conf

- scroll to the bottom of the file and add:
echo "USERNAME - nice -20

USERNAME - rtprio 99" >> /etc/security/limits.conf

- replace USERNAME with your username, save the file with ctrl+o and exit with ctrl+x.

- now open /etc/pulse/default.pa with
nano -c /etc/pulse/default.pa

- here somewhere near lines 40/50 you should find this line:
load-module module-udev-detect

- once you find it, add tsched=0 to the end of it, so like this:
load-module module-udev-detect tsched=0

save the file again with ctrl+o and exit with ctrl+x.

the patch is now applied. reboot your pc to apply the changes and go on with the guide e.e

OSU LAUNCHER:

we're almost done! the last thing to do is create a script to start the game.
to do that:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/
(if z: isn't your drive here, just search for the right one)

- type this to create the osu script:
cat > osu << "EOF"

- now paste in the terminal the following (always replacing username with yours):

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wine /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/osu\!.exe "$@"
EOF

- in the end launch these two commands.
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu

you can now launch your osu! by typing "osu" in the terminal!
to create a script to kill osu!, just in case it won't launch for any reason, let's do this:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/

- type this to create the osukill script:
cat > osukill << "EOF"

- now paste in the terminal the following:

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wineserver -k
EOF

- in the end launch again these two commands.
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill

you can now kill osu by typing osukill in the terminal when you need to :D

END
And that's it! Your osu! should now work perfectly fine!
Last but not least: you can also create a desktop shortcut for it, by left clicking on your desktop and selecting "create a launcher". It should look like this:



Well, that's the end of the guide! Thanks for reading, and have fun playing osu! on your linux <33

Hello,

This guide is helpful it's just I'm having trouble with the "LATENCY PATCH" section of the guide. I use first time Linux Manjaro XFCE as my distro and I'm just wondering if I'm using the correct commands.

I know after typeing "sudo su" it opens your terminal as root. But I'm confused on how the terminal should look after you type in "mkdir -p /etc/pulse/daemon.conf.d/" in the terminal. For me it looks like this:



[username@username-pc ~]$ sudo su
[sudo] password for USER:
[username-pc username]#
[username-pc username]# mkdir -p /etc/pulse/daemon.conf.d/
[username-pc username]# echo "high-priority = yes
> nice-level = -15
>
> realtime-scheduling = yes
> realtime-priority = 50
>
> default-fragments = 2
> default-fragment-size-msec = 2
> sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf
>




Is this correct?
Also I'm having trouble with the rest as well. <sorry for being a Linux noob!
Topic Starter
MarshNello

_Buddy wrote:

MarshNello wrote:

final result:

https://youtu.be/Ve4qr3jmDbM

A little introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to ThePoon's patches and Franc[e]sco's guide (https://osu.ppy.sh/community/forums/topics/367783), which are probably the best methods even now. However, in my case both ended up in a broken installation, so I kept searching for ways to install osu! until I actually managed to run it perfectly thanks to some workarounds. It's a pretty easy guide, written especially for beginners (just like me xd), so if you want to install osu! on your Linux distro, just keep reading e.e

PREREQUISITES:
install the following: git, build-essential, dialog, curl.

- sudo apt install git
- sudo apt install build-essential
- sudo apt install dialog
- sudo apt install curl

install wine (the script will do it itself but it's better to have it):
https://wiki.winehq.org/Download

also make sure you installed proprietary drivers for your gpu if you need to
guide for it: https://itsfoss.com/install-additional-drivers-ubuntu/

GUIDE:

to set up our osu!, we'll use osu-install script from yurisuki (credits to him):
https://gitlab.com/yurisuki/osu-install

just follow the instructions here and install it: https://gitlab.com/yurisuki/osu-install#how-do-i-execute-this-script

once you start the script, just follow its instructions.
the script was supposed to do everything automatically, from installing osu! to the patch, but it actually crashes after installing osu! and running it. That's fine, because we'll only use it for the installation indeed.

the steps to make it work are:

- step 1: run it the first time, follow the script's instructions which will install everything but, in the part supposed to run osu!, it shouldn't start (if it starts, skip to step 3); so run the script again.

- step 2: follow the script's instructions again until it starts osu! (if you get "osu! crashed", just click on restart osu! and it should be working now.)

- step 3: the game is now working fine: close it, press whatever key you want on the terminal and the script should crash. that's fine, move on to step 4.

- step 4: run the script again for the last time and follow whatever it says, until it runs osu! again. When it starts, close the game and close the terminal by pressing any key.

our osu! is now completely set up and working fine, but we gotta apply thepoon's patch for latency and create a script to launch (or eventually, kill) the game.

LATENCY PATCH:

let's begin with the patch:

- open the terminal as root using sudo su
sudo su

- type:
mkdir -p /etc/pulse/daemon.conf.d/

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

(WARNING: if after applying this the system's audio is garbage, increase default-fragment-size-msec by 2, save and reboot)

- then type:
nano /etc/security/limits.conf

- scroll to the bottom of the file and add:
echo "USERNAME - nice -20

USERNAME - rtprio 99" >> /etc/security/limits.conf

- replace USERNAME with your username, save the file with ctrl+o and exit with ctrl+x.

- now open /etc/pulse/default.pa with
nano -c /etc/pulse/default.pa

- here somewhere near lines 40/50 you should find this line:
load-module module-udev-detect

- once you find it, add tsched=0 to the end of it, so like this:
load-module module-udev-detect tsched=0

save the file again with ctrl+o and exit with ctrl+x.

the patch is now applied. reboot your pc to apply the changes and go on with the guide e.e

OSU LAUNCHER:

we're almost done! the last thing to do is create a script to start the game.
to do that:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/
(if z: isn't your drive here, just search for the right one)

- type this to create the osu script:
cat > osu << "EOF"

- now paste in the terminal the following (always replacing username with yours):

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wine /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/osu\!.exe "$@"
EOF

- in the end launch these two commands.
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu

you can now launch your osu! by typing "osu" in the terminal!
to create a script to kill osu!, just in case it won't launch for any reason, let's do this:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/

- type this to create the osukill script:
cat > osukill << "EOF"

- now paste in the terminal the following:

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wineserver -k
EOF

- in the end launch again these two commands.
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill

you can now kill osu by typing osukill in the terminal when you need to :D

END
And that's it! Your osu! should now work perfectly fine!
Last but not least: you can also create a desktop shortcut for it, by left clicking on your desktop and selecting "create a launcher". It should look like this:



Well, that's the end of the guide! Thanks for reading, and have fun playing osu! on your linux <33

Hello,

This guide is helpful it's just I'm having trouble with the "LATENCY PATCH" section of the guide. I use first time Linux Manjaro XFCE as my distro and I'm just wondering if I'm using the correct commands.

I know after typeing "sudo su" it opens your terminal as root. But I'm confused on how the terminal should look after you type in "mkdir -p /etc/pulse/daemon.conf.d/" in the terminal. For me it looks like this:



[username@username-pc ~]$ sudo su
[sudo] password for USER:
[username-pc username]#
[username-pc username]# mkdir -p /etc/pulse/daemon.conf.d/
[username-pc username]# echo "high-priority = yes
> nice-level = -15
>
> realtime-scheduling = yes
> realtime-priority = 50
>
> default-fragments = 2
> default-fragment-size-msec = 2
> sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf
>




Is this correct?
Also I'm having trouble with the rest as well. <sorry for being a Linux noob!
It should be fine once it gets you out of the > things; then you can enter all the other commands
If it doesn't, just paste it like this, also with the comment

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

It should do everything by itself e.e
Also sorry for the late reply!
keisuke5
.
polina4096
Very nice, thanks.
foss
warms my heart to see more threads like this.
Liang J
is there a way to move my songs from windows to Linux?, i tried to move it directly but the game dosent recognize it
Topic Starter
MarshNello

Liang J wrote:

is there a way to move my songs from windows to Linux?, i tried to move it directly but the game dosent recognize it
you just need to paste your Windows' "Songs" folder to your Linux's osu! directory (which should be around here /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/)

after that just refresh your maps in osu! pressing F5 and you're good

update: this reply is outdated.
Your osu!'s location is: ~/.local/share/osu-wine/OSU, so if you need to copy your songs from Windows, just paste them in the Songs folder in ~/.local/share/osu-wine/OSU/Songs
lokitosi
help, when i execute the script the install window starts oppening and closing in an infinite bucle, i'm trying to install it in manjaro

console error : https://imgur.com/KicAhkQ.png
Peoy

MarshNello wrote:

final result:

https://youtu.be/Ve4qr3jmDbM

A little introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to ThePoon's patches and Franc[e]sco's guide (https://osu.ppy.sh/community/forums/topics/367783), which are probably the best methods even now. However, in my case both ended up in a broken installation, so I kept searching for ways to install osu! until I actually managed to run it perfectly thanks to some workarounds. It's a pretty easy guide, written especially for beginners (just like me xd), so if you want to install osu! on your Linux distro, just keep reading e.e

PREREQUISITES:
install the following: git, build-essential, dialog, curl.

- sudo apt install git
- sudo apt install build-essential
- sudo apt install dialog
- sudo apt install curl

install wine (the script will do it itself but it's better to have it):
https://wiki.winehq.org/Download

also make sure you installed proprietary drivers for your gpu if you need to
guide for it: https://itsfoss.com/install-additional-drivers-ubuntu/

GUIDE:

to set up our osu!, we'll use osu-install script from yurisuki (credits to him):
https://gitlab.com/yurisuki/osu-install

just follow the instructions here and install it: https://gitlab.com/yurisuki/osu-install#how-do-i-execute-this-script

once you start the script, just follow its instructions.
the script was supposed to do everything automatically, from installing osu! to the patch, but it actually crashes after installing osu! and running it. That's fine, because we'll only use it for the installation indeed.

the steps to make it work are:

- step 1: run it the first time, follow the script's instructions which will install everything but, in the part supposed to run osu!, it shouldn't start (if it starts, skip to step 3); so run the script again.

- step 2: follow the script's instructions again until it starts osu! (if you get "osu! crashed", just click on restart osu! and it should be working now.)

- step 3: the game is now working fine: close it, press whatever key you want on the terminal and the script should crash. that's fine, move on to step 4.

- step 4: run the script again for the last time and follow whatever it says, until it runs osu! again. When it starts, close the game and close the terminal by pressing any key.

our osu! is now completely set up and working fine, but we gotta apply thepoon's patch for latency and create a script to launch (or eventually, kill) the game.

LATENCY PATCH:

let's begin with the patch:

- open the terminal as root using sudo su
sudo su

- type:
mkdir -p /etc/pulse/daemon.conf.d/

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

(WARNING: if after applying this the system's audio is garbage, increase default-fragment-size-msec by 2, save and reboot)

- then type:
nano /etc/security/limits.conf

- scroll to the bottom of the file and add:
echo "USERNAME - nice -20

USERNAME - rtprio 99" >> /etc/security/limits.conf

- replace USERNAME with your username, save the file with ctrl+o and exit with ctrl+x.

- now open /etc/pulse/default.pa with
nano -c /etc/pulse/default.pa

- here somewhere near lines 40/50 you should find this line:
load-module module-udev-detect

- once you find it, add tsched=0 to the end of it, so like this:
load-module module-udev-detect tsched=0

save the file again with ctrl+o and exit with ctrl+x.

the patch is now applied. reboot your pc to apply the changes and go on with the guide e.e

OSU LAUNCHER:

we're almost done! the last thing to do is create a script to start the game.
to do that:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/
(if z: isn't your drive here, just search for the right one)

- type this to create the osu script:
cat > osu << "EOF"

- now paste in the terminal the following (always replacing username with yours):

#!/bin/sh

export STAGING_AUDIO_DURATION=5000
export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wine /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/osu\!.exe "$@"
EOF

- in the end launch these two commands.
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu

you can now launch your osu! by typing "osu" in the terminal!
to create a script to kill osu!, just in case it won't launch for any reason, let's do this:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/

- type this to create the osukill script:
cat > osukill << "EOF"

- now paste in the terminal the following:

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wineserver -k
EOF

- in the end launch again these two commands.
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill

you can now kill osu by typing osukill in the terminal when you need to :D

END
And that's it! Your osu! should now work perfectly fine!
Last but not least: you can also create a desktop shortcut for it, by left clicking on your desktop and selecting "create a launcher". It should look like this:



Well, that's the end of the guide! Thanks for reading, and have fun playing osu! on your linux <33

THANK YOU
phantastic_old_2
As much as I love Linux, woah, the amount of work put to run this simple fun game makes me want to keep Windows installed :>
Peoy

MarshNello wrote:

final result:

https://youtu.be/Ve4qr3jmDbM

A little introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to ThePoon's patches and Franc[e]sco's guide (https://osu.ppy.sh/community/forums/topics/367783), which are probably the best methods even now. However, in my case both ended up in a broken installation, so I kept searching for ways to install osu! until I actually managed to run it perfectly thanks to some workarounds. It's a pretty easy guide, written especially for beginners (just like me xd), so if you want to install osu! on your Linux distro, just keep reading e.e

PREREQUISITES:
install the following: git, build-essential, dialog, curl.

- sudo apt install git
- sudo apt install build-essential
- sudo apt install dialog
- sudo apt install curl

install wine (the script will do it itself but it's better to have it):
https://wiki.winehq.org/Download

also make sure you installed proprietary drivers for your gpu if you need to
guide for it: https://itsfoss.com/install-additional-drivers-ubuntu/

GUIDE:

to set up our osu!, we'll use osu-install script from yurisuki (credits to him):
https://gitlab.com/yurisuki/osu-install

just follow the instructions here and install it: https://gitlab.com/yurisuki/osu-install#how-do-i-execute-this-script

once you start the script, just follow its instructions.
the script was supposed to do everything automatically, from installing osu! to the patch, but it actually crashes after installing osu! and running it. That's fine, because we'll only use it for the installation indeed.

the steps to make it work are:

- step 1: run it the first time, follow the script's instructions which will install everything but, in the part supposed to run osu!, it shouldn't start (if it starts, skip to step 3); so run the script again.

- step 2: follow the script's instructions again until it starts osu! (if you get "osu! crashed", just click on restart osu! and it should be working now.)

- step 3: the game is now working fine: close it, press whatever key you want on the terminal and the script should crash. that's fine, move on to step 4.

- step 4: run the script again for the last time and follow whatever it says, until it runs osu! again. When it starts, close the game and close the terminal by pressing any key.

our osu! is now completely set up and working fine, but we gotta apply thepoon's patch for latency and create a script to launch (or eventually, kill) the game.

LATENCY PATCH:

let's begin with the patch:

- open the terminal as root using sudo su
sudo su

- type:
mkdir -p /etc/pulse/daemon.conf.d/

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

(WARNING: if after applying this the system's audio is garbage, increase default-fragment-size-msec by 2, save and reboot)

- then type:
nano /etc/security/limits.conf

- scroll to the bottom of the file and add:
echo "USERNAME - nice -20

USERNAME - rtprio 99" >> /etc/security/limits.conf

- replace USERNAME with your username, save the file with ctrl+o and exit with ctrl+x.

- now open /etc/pulse/default.pa with
nano -c /etc/pulse/default.pa

- here somewhere near lines 40/50 you should find this line:
load-module module-udev-detect

- once you find it, add tsched=0 to the end of it, so like this:
load-module module-udev-detect tsched=0

save the file again with ctrl+o and exit with ctrl+x.

the patch is now applied. reboot your pc to apply the changes and go on with the guide e.e

OSU LAUNCHER:

we're almost done! the last thing to do is create a script to start the game.
to do that:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/
(if z: isn't your drive here, just search for the right one)

- type this to create the osu script:
cat > osu << "EOF"

- now paste in the terminal the following (always replacing username with yours):

#!/bin/sh

export STAGING_AUDIO_DURATION=5000
export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wine /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/osu\!.exe "$@"
EOF

- in the end launch these two commands.
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu

you can now launch your osu! by typing "osu" in the terminal!
to create a script to kill osu!, just in case it won't launch for any reason, let's do this:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/

- type this to create the osukill script:
cat > osukill << "EOF"

- now paste in the terminal the following:

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wineserver -k
EOF

- in the end launch again these two commands.
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill

you can now kill osu by typing osukill in the terminal when you need to :D

END
And that's it! Your osu! should now work perfectly fine!
Last but not least: you can also create a desktop shortcut for it, by left clicking on your desktop and selecting "create a launcher". It should look like this:



Well, that's the end of the guide! Thanks for reading, and have fun playing osu! on your linux <33

This is the maximum performance I got even using that configuration, Spec (2gb ram, 1.35ghz cpu, no graphic card)(Lubuntu 20.04 lts)
Askar
Worked really well. Surprisingly the script didn't crash at all after installing liquorix and all dependencies before running it so I didn't even need to do some of the steps.
Destac
I have followed the steps and in the end wine gives an error and does not execute it...
I'm with Manjaro.

https://imgur.com/a/rTDopbn
Topic Starter
MarshNello

Destac wrote:

I have followed the steps and in the end wine gives an error and does not execute it...
I'm with Manjaro.

https://imgur.com/a/rTDopbn
Yeah I noticed it doesn't work on Arch-based distros (idk why tho)
Still I found this guide which is actually much simpler and reliable, give it a look

community/forums/topics/794952
felipe_x
D:
Isshiki Kaname
You could try this extremely experimental guide I am writing right now. (provided you're on Arch-based) https://wiki.archlinux.org/title/User:Katoumegumi#osu!_on_Arch_Linux
Shiyo
Thanks :)
SOLARYS2
Hi, so...i did it all the steps and the game worked, but all the osu folders stay on my principal download folder on linux, is there a way to move the folder to someplace there doesn´t broke the game?
(i´m kinda new in linux, so i don´t know how to do it, and i´m using Pop Os)
spunout enjoyer
imo turning on "disable desktop effects" in lutris configuration should be added into thread. i had slow mouse movements and turning off compositor fixed my problem, i learnt that lutris has a feature that turns off compositor when you open the game, turns it back on when you close the game which is pretty cool considering you dont have to do anything about it.

sorry for framerate but you get the idea by looking at how fast cursor movement is.



DuckWeeb79
help i got a error message after install. osu script something has fucked up.
Log: Oh no, osu! didn't install.

Possibilities are:
You've changed the installation direction.
osu! installer
didn't run.
Some dependencies didn't install.

Try:
Run the script again
Leave the installation direction as it should be (default selected by osu! installer)

If that didn't help try reporting it on GitHub. Thank you. <3.
what do i do i even did the script again its from the aur it still did not work.
spunout enjoyer

DuckWeeb79 wrote:

help i got a error message after install. osu script something has fucked up.
Log: Oh no, osu! didn't install.

Possibilities are:
You've changed the installation direction.
osu! installer
didn't run.
Some dependencies didn't install.

Try:
Run the script again
Leave the installation direction as it should be (default selected by osu! installer)

If that didn't help try reporting it on GitHub. Thank you. <3.
what do i do i even did the script again its from the aur it still did not work.
i think aur package is somehow broken, try installing without aur package.
- tobi -
epic
Eni
osu! is much easier to install on Arch Linux. You don't have to run any commands like this, just use the AUR package.

yay osu
assuming your AUR helper is yay and you already have wine installed, is all it takes. Latency shouldn't be an issue thanks to PipeWire.
Topic Starter
MarshNello
Sup y'all! o/
I just updated the guide with a faster, simpler and waay more stable method

If anyone had problems with the older method, this one will probably work for sure (check the troubleshoot tho!)

Edit: sorry for so many edits there but I noticed so many typos later xD
I also updated the final result!
Edgex42
I've got osu! installed but I'm unable to log in (it just gets stuck at 'Pending Verification...' and wine pops up an error message saying 'The file or folder does not exist.'), is there any way to fix this?

EDIT: After looking a bit more it turns out that osu! isn't connected to the internet, how do I make it have internet so I can log in?
marshallracer
depending on the distro you use you lack a critical package which osu (or any 32bit library needing TLS) needs to communicate
On Arch and related distros the package is called lib32-gnutls, for Ubuntu and derivatives I wouldn't know the exact package name but refer to gnutls when searching for the relevant/necessary package
Edgex42
I actually fixed it by just looking in the log file and getting the verification link from an error in there. After clicking that and rebooting everything worked fine, I'm still not really sure what the problem was, thanks for the help anyway :)
Katja

Project Railgun wrote:

osu! is much easier to install on Arch Linux. You don't have to run any commands like this, just use the AUR package.

yay osu
assuming your AUR helper is yay and you already have wine installed, is all it takes. Latency shouldn't be an issue thanks to PipeWire.
This is for osu!lazer; this guide pertains to stable, which is why it's a bit more involved since it's native to Windows and Wine is required to get it working.
Assert
Hi, I was wondering if anyone has info on the difference in latency between Windows and Linux? Does it increase/stay the same/decrease? I currently get around 2ms. I want to switch to Linux but I'm worried that the latency might go up.
spunout enjoyer

Assert wrote:

Hi, I was wondering if anyone has info on the difference in latency between Windows and Linux? Does it increase/stay the same/decrease? I currently get around 2ms. I want to switch to Linux but I'm worried that the latency might go up.
if you mess up with installation it fucks up the audio latency (learnt it hard way) if you dont then its almost perfectly synced with music. linux is much more lighter than windows so its more unlikely to affect the equipment performance.
Isshiki Kaname

Assert wrote:

Hi, I was wondering if anyone has info on the difference in latency between Windows and Linux? Does it increase/stay the same/decrease? I currently get around 2ms. I want to switch to Linux but I'm worried that the latency might go up.
Well, Windows WASAPI shared mode (compatibility mode audio off) is about 50-60msm DirectSound (compatibility mode audio on) is about 100ms. We on Linux have pushed our setups to 2ms audio latency on osu. Also the ms you see on right bottom corner is your video framebuffer latency, not audio latency.

EDIT: Also this guide really skips over some nice stuff. First of, there are community patched wine versions (like gonX's patched wine.) that lowers latency even lower. Besides that, you should also set your unversal offfset to -25 or -40 if you use compatibility mode audio. osu on Linux is weird, because it's well, not on Windows with it quirks.

As for installing patched wine, just # pacman -U <osu-wine.tar.zst> if you're on Arch and use a launch script. It's based on PooN's wine and scripts, but more up to date.
If you use Lutris, extract the opt folder contents of the archive to $HOME/.local/share/lutris/runners/wine/ then select the new runner in Lutris for osu.
Whistle_Python
i can't hear anything from osu
here's my console
https://content.biomooping.tk/Mb3sOCAoV9.txt
Isshiki Kaname

Whistle_Python wrote:

i can't hear anything from osu
here's my console
https://content.biomooping.tk/Mb3sOCAoV9.txt
Pipewire? If so. https://wiki.archlinux.org/title/User:Katoumegumi#No_sound_when_opening_the_game
Ravioli-
Thank you so much, I had many problems on my osu in lutris, like the audio sounds like satan and the latency hell
Your post definitely fixed all of my problems. Thank you!
vWinter
i get

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 403
Current serial number in output stream: 404

im on arch and idk how to fix it
Topic Starter
MarshNello

- W i n t e r - wrote:

i get

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 403
Current serial number in output stream: 404

im on arch and idk how to fix it
Try installing these libraries

libraries
sudo pacman -S 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 alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama 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 dosbox

Or update your video drivers like it says here https://github.com/lutris/docs/blob/master/InstallingDrivers.md
seyoon
Is compatibility mode mandatory? I heard it has an impact on frames
Topic Starter
MarshNello

Oceana wrote:

Is compatibility mode mandatory? I heard it has an impact on frames
Not really as of right now, it shouldn't bother performance at all
shredding
leny
I'm having trouble running osu! after installing the wine-osu 6.14 package (it launched successfully before)

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/leny/.local/share/lutris/runners/wine/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)

linux newbie here, any help?
samuel2214

Peoy wrote:

MarshNello wrote:

final result:

https://youtu.be/Ve4qr3jmDbM

A little introduction:

osu! working fine on Linux has been a thing for many years now, especially thanks to ThePoon's patches and Franc[e]sco's guide (https://osu.ppy.sh/community/forums/topics/367783), which are probably the best methods even now. However, in my case both ended up in a broken installation, so I kept searching for ways to install osu! until I actually managed to run it perfectly thanks to some workarounds. It's a pretty easy guide, written especially for beginners (just like me xd), so if you want to install osu! on your Linux distro, just keep reading e.e

PREREQUISITES:
install the following: git, build-essential, dialog, curl.

- sudo apt install git
- sudo apt install build-essential
- sudo apt install dialog
- sudo apt install curl

install wine (the script will do it itself but it's better to have it):
https://wiki.winehq.org/Download

also make sure you installed proprietary drivers for your gpu if you need to
guide for it: https://itsfoss.com/install-additional-drivers-ubuntu/

GUIDE:

to set up our osu!, we'll use osu-install script from yurisuki (credits to him):
https://gitlab.com/yurisuki/osu-install

just follow the instructions here and install it: https://gitlab.com/yurisuki/osu-install#how-do-i-execute-this-script

once you start the script, just follow its instructions.
the script was supposed to do everything automatically, from installing osu! to the patch, but it actually crashes after installing osu! and running it. That's fine, because we'll only use it for the installation indeed.

the steps to make it work are:

- step 1: run it the first time, follow the script's instructions which will install everything but, in the part supposed to run osu!, it shouldn't start (if it starts, skip to step 3); so run the script again.

- step 2: follow the script's instructions again until it starts osu! (if you get "osu! crashed", just click on restart osu! and it should be working now.)

- step 3: the game is now working fine: close it, press whatever key you want on the terminal and the script should crash. that's fine, move on to step 4.

- step 4: run the script again for the last time and follow whatever it says, until it runs osu! again. When it starts, close the game and close the terminal by pressing any key.

our osu! is now completely set up and working fine, but we gotta apply thepoon's patch for latency and create a script to launch (or eventually, kill) the game.

LATENCY PATCH:

let's begin with the patch:

- open the terminal as root using sudo su
sudo su

- type:
mkdir -p /etc/pulse/daemon.conf.d/

echo "high-priority = yes
nice-level = -15

realtime-scheduling = yes
realtime-priority = 50

resample-method = speex-float-0

default-fragments = 2 # Minimum is 2
default-fragment-size-msec = 2 # You can set this to 1, but that will break OBS audio capture." | sudo tee -a /etc/pulse/daemon.conf.d/10-better-latency.conf

(WARNING: if after applying this the system's audio is garbage, increase default-fragment-size-msec by 2, save and reboot)

- then type:
nano /etc/security/limits.conf

- scroll to the bottom of the file and add:
echo "USERNAME - nice -20

USERNAME - rtprio 99" >> /etc/security/limits.conf

- replace USERNAME with your username, save the file with ctrl+o and exit with ctrl+x.

- now open /etc/pulse/default.pa with
nano -c /etc/pulse/default.pa

- here somewhere near lines 40/50 you should find this line:
load-module module-udev-detect

- once you find it, add tsched=0 to the end of it, so like this:
load-module module-udev-detect tsched=0

save the file again with ctrl+o and exit with ctrl+x.

the patch is now applied. reboot your pc to apply the changes and go on with the guide e.e

OSU LAUNCHER:

we're almost done! the last thing to do is create a script to start the game.
to do that:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/
(if z: isn't your drive here, just search for the right one)

- type this to create the osu script:
cat > osu << "EOF"

- now paste in the terminal the following (always replacing username with yours):

#!/bin/sh

export STAGING_AUDIO_DURATION=5000
export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wine /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/osu\!.exe "$@"
EOF

- in the end launch these two commands.
sudo mv osu /usr/bin/
sudo chmod +x /usr/bin/osu

you can now launch your osu! by typing "osu" in the terminal!
to create a script to kill osu!, just in case it won't launch for any reason, let's do this:

- open the terminal and cd to your osu! folder (replace username with yours):
cd /home/username/.wine_osu/dosdevices/z:/home/username/Downloads/

- type this to create the osukill script:
cat > osukill << "EOF"

- now paste in the terminal the following:

#!/bin/sh

export vblank_mode=0
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_osu
wineserver -k
EOF

- in the end launch again these two commands.
sudo mv osukill /usr/bin/
sudo chmod +x /usr/bin/osukill

you can now kill osu by typing osukill in the terminal when you need to :D

END
And that's it! Your osu! should now work perfectly fine!
Last but not least: you can also create a desktop shortcut for it, by left clicking on your desktop and selecting "create a launcher". It should look like this:



Well, that's the end of the guide! Thanks for reading, and have fun playing osu! on your linux <33

This is the maximum performance I got even using that configuration, Spec (2gb ram, 1.35ghz cpu, no graphic card)(Lubuntu 20.04 lts)
cviau
vat_3046

leny wrote:

I'm having trouble running osu! after installing the wine-osu 6.14 package (it launched successfully before)

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/leny/.local/share/lutris/runners/wine/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)

linux newbie here, any help?
Was a solution found? I am having a very similar problem:
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)
osu! ran once for me as well.
Another Linux newbie here.
Topic Starter
MarshNello

vat_3046 wrote:

leny wrote:

I'm having trouble running osu! after installing the wine-osu 6.14 package (it launched successfully before)

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/leny/.local/share/lutris/runners/wine/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)

linux newbie here, any help?
Was a solution found? I am having a very similar problem:
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)
osu! ran once for me as well.
Another Linux newbie here.
Assuming you're using Ubuntu (or anything Debian-based) you might fix installing these:

sudo apt-get update
sudo apt-get install libc6 build-essential
If it still doesn't work, you might just have to upgrade your system:

sudo apt-get upgrade
leny

MarshNello wrote:

vat_3046 wrote:

leny wrote:

I'm having trouble running osu! after installing the wine-osu 6.14 package (it launched successfully before)

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/leny/.local/share/lutris/runners/wine/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)

linux newbie here, any help?
Was a solution found? I am having a very similar problem:
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)
osu! ran once for me as well.
Another Linux newbie here.
Assuming you're using Ubuntu (or anything Debian-based) you might fix installing these:

sudo apt-get update
sudo apt-get install libc6 build-essential
If it still doesn't work, you might just have to upgrade your system:

sudo apt-get upgrade
Sadly did not do the trick (for me) but thanks for help
Topic Starter
MarshNello

leny wrote:

MarshNello wrote:

vat_3046 wrote:

leny wrote:

I'm having trouble running osu! after installing the wine-osu 6.14 package (it launched successfully before)

ERROR: ld.so: object '/usr/$LIB/libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/leny/.local/share/lutris/runners/wine/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)

linux newbie here, any help?
Was a solution found? I am having a very similar problem:
wine: could not load ntdll.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/wine-osu/bin/../lib32/wine/i386-unix/ntdll.so)
osu! ran once for me as well.
Another Linux newbie here.
Assuming you're using Ubuntu (or anything Debian-based) you might fix installing these:

sudo apt-get update
sudo apt-get install libc6 build-essential
If it still doesn't work, you might just have to upgrade your system:

sudo apt-get upgrade
Sadly did not do the trick (for me) but thanks for help
Update: check the troubleshooting box e.e
- sylvie -
Heya. I have stuff working pretty alright but there are still slight frame drops, and most notably, the framerate is capped at 144hz. How do I remedy this stuff. I am on Fedora 35 (wayland and pipewire lol) :) :)
Topic Starter
MarshNello

- sylvie - wrote:

Heya. I have stuff working pretty alright but there are still slight frame drops, and most notably, the framerate is capped at 144hz. How do I remedy this stuff. I am on Fedora 35 (wayland and pipewire lol) :) :)
Sooo first of all: I assume you have a 240hz monitor, but Wine should detect the same refresh rate of the system, so the issue might be your drivers or some dependency (?) I've never really used Wayland myself so xd

Try updating your drivers or installing all the Wine dependencies listed here:
Fedora dependencies
sudo dnf install alsa-plugins-pulseaudio.i686 glibc-devel.i686 glibc-devel libgcc.i686 libX11-devel.i686 freetype-devel.i686 libXcursor-devel.i686 libXi-devel.i686 libXext-devel.i686 libXxf86vm-devel.i686 libXrandr-devel.i686 libXinerama-devel.i686 mesa-libGLU-devel.i686 mesa-libOSMesa-devel.i686 libXrender-devel.i686 libpcap-devel.i686 ncurses-devel.i686 libzip-devel.i686 lcms2-devel.i686 zlib-devel.i686 libv4l-devel.i686 libgphoto2-devel.i686 cups-devel.i686 libxml2-devel.i686 openldap-devel.i686 libxslt-devel.i686 gnutls-devel.i686 libpng-devel.i686 flac-libs.i686 json-c.i686 libICE.i686 libSM.i686 libXtst.i686 libasyncns.i686 liberation-narrow-fonts.noarch libieee1284.i686 libogg.i686 libsndfile.i686 libuuid.i686 libva.i686 libvorbis.i686 libwayland-client.i686 libwayland-server.i686 llvm-libs.i686 mesa-dri-drivers.i686 mesa-filesystem.i686 mesa-libEGL.i686 mesa-libgbm.i686 nss-mdns.i686 ocl-icd.i686 pulseaudio-libs.i686 sane-backends-libs.i686 tcp_wrappers-libs.i686 unixODBC.i686 samba-common-tools.x86_64 samba-libs.x86_64 samba-winbind.x86_64 samba-winbind-clients.x86_64 samba-winbind-modules.x86_64 mesa-libGL-devel.i686 fontconfig-devel.i686 libXcomposite-devel.i686 libtiff-devel.i686 openal-soft-devel.i686 mesa-libOpenCL-devel.i686 opencl-utils-devel.i686 alsa-lib-devel.i686 gsm-devel.i686 libjpeg-turbo-devel.i686 pulseaudio-libs-devel.i686 pulseaudio-libs-devel gtk3-devel.i686 libattr-devel.i686 libva-devel.i686 libexif-devel.i686 libexif.i686 glib2-devel.i686 mpg123-devel.i686 mpg123-devel.x86_64 libcom_err-devel.i686 libcom_err-devel.x86_64 libFAudio-devel.i686 libFAudio-devel.x86_64
sudo dnf groupinstall "C Development Tools and Libraries"
sudo dnf groupinstall "Development Tools"
show more
Please sign in to reply.

New reply