forum

Ultimate guide to low-latency osu! on Linux (rev.12)

posted
Total Posts
277
show more
Topic Starter
Franc[e]sco

YaLTeR wrote:

Hey, just wanted to throw my two cents on the audio latency.
I'm on Arch Linux x64, using the latest wine (2.7 at the time of writing). I switched from a pure ALSA setup I had previously, all tweaked to lowest osu! latency, to PulseAudio, with the same non-existant audio latency. The trick was to force wine to use winealsa.drv:
winetricks sound=alsa

This way, even though the audio is going through alsa->pulseaudio->alsa as opposed to pulseaudio->alsa, the latency is much better (I submitted a bug report into wine about that). The PulseAudio settings are all set to default (none of the tsched=0 stuff, that actually made it worse). And don't forget to do the winealsa.drv patch as described in the OP.


yea I actually debugged the issue some time ago and narrowed it down to something that changed in dsound's code around 1.9.x IIRC, thanks for the tip, will try it later
Topic Starter
Franc[e]sco

ichinose-san wrote:

Input lag with the ctl490 on Windows is caused by the drivers when hovering
Linux drivers don't have this problem, lag occurs regardless of drag or hover, less so than on Windows, but since there's no workaround like holding the nib, it's quite annoying
:(
As for UI, profile picture, music controls and leftside icons in settings are not showing. I ran it from the terminal and there was no particular issue.. weird :/

update - to adjust smoothing and polling rate of a wacom tablet use

xsetwacom --set "device name" RawSample 1
xsetwacom --set "device name" Suppress 0

RawSample is smoothing, Suppress is poll rate

lower = less smoothing and higher poll rate

min values are 1 and 0

use xsetwacom --list devices to find out your device name

and again, for icons try installing gdiplus on winetricks
Topic Starter
Franc[e]sco

YaLTeR wrote:

Hey, just wanted to throw my two cents on the audio latency.

I'm on Arch Linux x64, using the latest wine (2.7 at the time of writing). I switched from a pure ALSA setup I had previously, all tweaked to lowest osu! latency, to PulseAudio, with the same non-existant audio latency. The trick was to force wine to use winealsa.drv:
winetricks sound=alsa
This way, even though the audio is going through alsa->pulseaudio->alsa as opposed to pulseaudio->alsa, the latency is much better (I submitted a bug report into wine about that). The PulseAudio settings are all set to default (none of the tsched=0 stuff, that actually made it worse). And don't forget to do the winealsa.drv patch as described in the OP.
Just tested this and it does indeed work! major props to you, will update the guide to use latest wine eventually
IcePixel_
I don't know how the get my coordinates with my Wacom One the Driver doesn't show any coordinates can someone help me? And i use forced proportions.
Topic Starter
Franc[e]sco

IcePixel_ wrote:

I don't know how the get my coordinates with my Wacom One the Driver doesn't show any coordinates can someone help me? And i use forced proportions.
you can either approximate it by counting pixels and then converting to coordinates ((x / pixelwidth) * maxareawidth, (y / pixelheight) * maxareaheight) or try to export the tablet preferences to a file and see if you can find them in it with a text editor or something. or just start from scratch and tweak your area until it feels right. unfortunately that's wacom's fault for not showing values in older drivers
Arzenvald

Franc[e]sco wrote:

YaLTeR wrote:

Hey, just wanted to throw my two cents on the audio latency.

I'm on Arch Linux x64, using the latest wine (2.7 at the time of writing). I switched from a pure ALSA setup I had previously, all tweaked to lowest osu! latency, to PulseAudio, with the same non-existant audio latency. The trick was to force wine to use winealsa.drv:
winetricks sound=alsa
This way, even though the audio is going through alsa->pulseaudio->alsa as opposed to pulseaudio->alsa, the latency is much better (I submitted a bug report into wine about that). The PulseAudio settings are all set to default (none of the tsched=0 stuff, that actually made it worse). And don't forget to do the winealsa.drv patch as described in the OP.
Just tested this and it does indeed work! major props to you, will update the guide to use latest wine eventually
latest wine yes pls
Miss Clo
Not sure why I didn't get notifications for these answers, pretty sure I was subscribed to the thread... But anyway thanks for all the tips, helped a lot!
Lux
Hey I'm trying to get osu up and running on MX Linux 16.1, following the Debian based guide to build Wine from source. I installed all the packages fine and added the deb-src lines to the list files, but I'm having trouble in the next step.
$ virsh -c lxc:/// net-start default
error: Failed to start network default
error: direct firewall backend requested, but /sbin/ebtables is not available: No such file or directory
And also I tried restarting the libvirtd service as I found in another forum post and I get this:
$ systemctl status libvirtd
Failed to get D-Bus connection: Unknown error -1
$ systemctl start libvirtd
Failed to get D-Bus connection: Unknown error -1

Anyways, I tried the guide using PlayOnLinux and that didn't work either, osu! would "install" but then when I run it the icon appears and then nothing shows up afterwards. Lots of stuff shows up in the POL Shell end of which is:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 155 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 346
Current serial number in output stream: 350

Any thoughts?
Topic Starter
Franc[e]sco

Lux wrote:

Hey I'm trying to get osu up and running on MX Linux 16.1, following the Debian based guide to build Wine from source. I installed all the packages fine and added the deb-src lines to the list files, but I'm having trouble in the next step.
$ virsh -c lxc:/// net-start default
error: Failed to start network default
error: direct firewall backend requested, but /sbin/ebtables is not available: No such file or directory
And also I tried restarting the libvirtd service as I found in another forum post and I get this:
$ systemctl status libvirtd
Failed to get D-Bus connection: Unknown error -1
$ systemctl start libvirtd
Failed to get D-Bus connection: Unknown error -1

Anyways, I tried the guide using PlayOnLinux and that didn't work either, osu! would "install" but then when I run it the icon appears and then nothing shows up afterwards. Lots of stuff shows up in the POL Shell end of which is:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 155 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 346
Current serial number in output stream: 350

Any thoughts?
glxCreateContext is failing, which seems to indicate that your acceleration isn't working. could be broken gpu drivers

check your glxinfo, make sure it's not using software rendering, check your drivers etc
Topic Starter
Franc[e]sco
I just moved to a pure alsa + musl libc distro (sabotage) and running on pure alsa brought my sound latency down to zero, no more 20ms offset!

will prob add an alsa section to the guide like there used to be, although running pure alsa isnt practical for most people because of how much software depends on pulse or has issues on alsa

for me though, pretty much everything that I use works, will just have to do some tweaking for obs sound capturiing

for now, here's my /etc/asoundrc.conf

defaults.ctl.card 1

pcm.!default {
type plug
slave.pcm "dmixer"
}

pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_size 32
buffer_size 512
}
}
tleydxdy
the "More tweaks to get rid of vsync" part causes my arch to login loop. but I'm using a Radeon HD graphic so maybe it doesn't matter.
Topic Starter
Franc[e]sco

tleydxdy wrote:

the "More tweaks to get rid of vsync" part causes my arch to login loop. but I'm using a Radeon HD graphic so maybe it doesn't matter.
maybe you set it to the wrong driver, check what it uses by default when it works from the xorg log

well, it shouldn't matter unless the game is clearly fps locked even without the limiter
Lux
After I checked the Open GL hardware acceleration setting with glxinfo it just worked when I started it...

So I got it working on just Intel graphics with MX Linux 16.1 using the PlayOnLinux guide. The input latency is good but I can't really figure out the audio latency (but that's really my problem) it's just off by like 20-30 ms I think. The only minor inconvenience is that my tablet area resets each time I disconnect/reconnect it.

Anyways, thanks for the guide/help!
sselecaf
edit : followed all your tutorial to the point where i have to put this command : ../configure --prefix=/home/loli/wine-1.8.3
i get this :

configure: error: X development files not found. Wine will be built
without X support, which probably isn't what you want. You will need
to install development packages of Xlib/Xfree86 at the very least.
Use the --without-x option if you really want this.

what can i do from there ?

re:edit

I also tried to install osu via playonlinux i'm on mint*

i get to the point where we have to open a shell into POL and he show me the message "Ce script doit être executé dans Playonlinux" in english "This script has to be executed in POL" and anything i type is ignored when i press enter the shell just close

so i tried to open a shell into the POL folder to create a osu folder and install it in it
but i cant do the "winetricks -q dotnet45 cjkfonts" so osu say me that he hasn't .NET 4.5
Topic Starter
Franc[e]sco

sselecaf wrote:

edit : followed all your tutorial to the point where i have to put this command : ../configure --prefix=/home/loli/wine-1.8.3
i get this :

configure: error: X development files not found. Wine will be built
without X support, which probably isn't what you want. You will need
to install development packages of Xlib/Xfree86 at the very least.
Use the --without-x option if you really want this.

what can i do from there ?

re:edit

I also tried to install osu via playonlinux i'm on mint*

i get to the point where we have to open a shell into POL and he show me the message "Ce script doit être executé dans Playonlinux" in english "This script has to be executed in POL" and anything i type is ignored when i press enter the shell just close

so i tried to open a shell into the POL folder to create a osu folder and install it in it
but i cant do the "winetricks -q dotnet45 cjkfonts" so osu say me that he hasn't .NET 4.5
as the error says, you need to find packages that have development headers for X for your distro. on mint it should be something like libx11-dev and xserver-xorg-dev

as the for POL error, not sure - I don't use POL myself and haven't encountered that error during my tests :?
Topic Starter
Franc[e]sco

Lux wrote:

After I checked the Open GL hardware acceleration setting with glxinfo it just worked when I started it...

So I got it working on just Intel graphics with MX Linux 16.1 using the PlayOnLinux guide. The input latency is good but I can't really figure out the audio latency (but that's really my problem) it's just off by like 20-30 ms I think. The only minor inconvenience is that my tablet area resets each time I disconnect/reconnect it.

Anyways, thanks for the guide/help!
20ms is acceptable if you use local offset everywhere

don't use global offset as it will throw video sync off

I think there are ways to set up scripts to automatically run when device is connected, but for me it's easier to run a script manually

also, you can use the linux version of McOsu on steam to compare latency and check whether it's a global sound latency issue or if it's limited to wine. if your global audio latency is already good, there's probably not much more you can do other than messing with the values in regedit. i found that the SndQueueMax value affects latency a lot (6 is wayyy more latency than 3)
sselecaf
Ok so if someone has the same error that i had you have to install all theses libraries
sudo apt-get install libx11-dev xserver-xorg-dev libx11-dev:i386 libfreetype6-dev:i386

and for Playonlinux the error that i had didnt showed on my laptop who use ubuntu 16.04

edit : i see you know it reading last post x')
another thing that you can add to your tutorial is mc osu who's a good solution if any of your way to get osu installed dont work
it can be installed with steam
the only problem with it is that he limit the amount of fps at 60 (on my computer)

ty for your response Franc[e]sco i'll come back if i find another problem haha
sselecaf
WINEPREFIX=~/osu-wine WINEARCH=win32 ~/wine-1.8.3/bin/wineboot
bash: /home/gerard/wine-1.8.3/bin/wineboot: Aucun fichier ou dossier de ce type

i checked into the folder and i dont find "wine-1.8.3" like the shell what could i do wrong?

maybe it's wine-git instead ? but he give me the same answer when i replace "wine-1.8.3" by "wine-git"
Topic Starter
Franc[e]sco

sselecaf wrote:

Ok so if someone has the same error that i had you have to install all theses libraries
sudo apt-get install libx11-dev xserver-xorg-dev libx11-dev:i386 libfreetype6-dev:i386

and for Playonlinux the error that i had didnt showed on my laptop who use ubuntu 16.04

edit : i see you know it reading last post x')
another thing that you can add to your tutorial is mc osu who's a good solution if any of your way to get osu installed dont work
it can be installed with steam
the only problem with it is that he limit the amount of fps at 60 (on my computer)

ty for your response Franc[e]sco i'll come back if i find another problem haha
run steam with "vblank_mode=0 steam" to unlock fps

sselecaf wrote:

WINEPREFIX=~/osu-wine WINEARCH=win32 ~/wine-1.8.3/bin/wineboot
bash: /home/gerard/wine-1.8.3/bin/wineboot: Aucun fichier ou dossier de ce type

i checked into the folder and i dont find "wine-1.8.3" like the shell what could i do wrong?

maybe it's wine-git instead ? but he give me the same answer when i replace "wine-1.8.3" by "wine-git"
compilation failed or you compiled wine to the wrong folder, double check the path you specified in configure and make output
sselecaf
so i restarted the tutorial from 0 and get to the point where i had the libraries error and it says me the same thing with every library installed so i think the problem come from this
Ambrew
Hi there,

I'm running into problems trying to download Microsoft .NET Framework 4.0. Each time it tries to install it, it freezes and the terminal shows this line
err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {659cdeac-489e-11d9-a9cd-000d56965251} with error 0x80004002
please advise.. what should I do?

thanks!
IcePixel_
Is it possible to make a symlink from the song and skins folder from another drive? When i tried it my osu crashed.
marshallracer

IcePixel_ wrote:

Is it possible to make a symlink from the song and skins folder from another drive? When i tried it my osu crashed.
It is actually possible although when I did that and it crashed it almost always was because I forgot to mount the drive after booting and before starting osu

Except for that using my folder from one of my windows drives worked perfectly fine on Ubuntu but I haven't tried that in a while now
Shr00mster
used the "Building wine 1.8.3 from source" route (using ubuntu 16.04) and everything worked out till i got to the installation of osu. after wget and wineprefix i got the error that i cant connect to the internet anymore. so i tried installing the .deb files and i got a infinite loop of loading (waiting to install).. tried to backtrack and initialize 32-bit prefix again and got "failed to start: 1053". tried the framework part again and it skipped all since it said its already installed.

edit: the error msg:
SPOILER
fixme:process:GetNumaHighestNodeNumber (0x33fb68): semi-stub
fixme:thread:SetThreadStackGuarantee (0x33fb4c): stub
err:ntdll:NtQueryInformationToken Unhandled Token Information class 29!
err:ntdll:NtQueryInformationToken Unhandled Token Information class 29!
err:ole:CoGetContextToken apartment not initialised
fixme:time:QueryThreadCycleTime (0xfffffffe,0x3d62560): stub!
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
fixme:shell:URL_ParseUrl failed to parse L"System.Core"
fixme:nls:GetUserPreferredUILanguages stub: 8 0x33dae0 (nil) 0x33dadc
fixme:thread:GetThreadPreferredUILanguages 8, 0x33dae0, (nil) 0x33dadc
fixme:advapi:EventRegister {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 0xa701ba, (nil), 0x162f5fc
fixme:shell:URL_ParseUrl failed to parse L"osu!.resources"
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:shell:URL_ParseUrl failed to parse L"osu!.resources"
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:shell:URL_ParseUrl failed to parse L"Accessibility"
fixme:gdiplus:GdipGetFamilyName No support for handling of multiple languages!
fixme:sync:SetWaitableTimerEx (0x204, 0x82de978, 500, (nil), (nil), (nil), 50) semi-stub
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:nls:LCMapStringEx unsupported lparam 156ab8
fixme:gdiplus:GdipCreateHalftonePalette stub
fixme:shell:URL_ParseUrl failed to parse L"System.Configuration"
fixme:shell:URL_ParseUrl failed to parse L"System.Xml"
fixme:process:FlushProcessWriteBuffers : stub
fixme:shell:URL_ParseUrl failed to parse L"System.Web"
fixme:ras:RasEnumConnectionsW (0x183170,0x85dde10,0x85dde14),stub!
fixme:ras:RasEnumConnectionsW RAS support is not implemented! Configure program to use LAN connection/winsock instead!
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
fixme:ras:RasConnectionNotificationW (0xffffffff,0x2e4,0x00000003),stub!
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winediag:schan_imp_init Failed to load libgnutls, secure connections will not be available.
_Kuroni_
Hi, although I installed libgnults26:i386 and libgcrypt11:i386 as you suggested, I still can't connect osu to the Internet.
I think there's still something wrong about libgnutls.

Here's the log:
fixme:ras:RasEnumConnectionsW RAS support is not implemented! Configure program to use LAN connection/winsock instead!
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
fixme:ras:RasConnectionNotificationW (0xffffffff,0x320,0x00000003),stub!
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request failed with status 0x2733
err:winediag:schan_imp_init Failed to load libgnutls, secure connections will not be available.

My distro is Ubuntu 17.04, I used your pre-compiled wine tarball.

Update: I used this command to see which files are being opened by osu!:
lsof -p (pid of osu!)
This is what I get:
COMMAND    PID   USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
osu!.exe 28314 kuroni cwd DIR 8,6 4096 2762127 /home/kuroni/osu-wine/drive_c/osu
osu!.exe 28314 kuroni rtd DIR 8,6 4096 2 /
osu!.exe 28314 kuroni txt REG 8,6 33128 2622494 /home/kuroni/wine-1.8.3/bin/wine-preloader
osu!.exe 28314 kuroni DEL REG 8,6 2883899 /tmp/.wine-1000/server-806-2a002e/anonmap.iSZhyH
osu!.exe 28314 kuroni DEL REG 8,6 2883900 /tmp/.wine-1000/server-806-2a002e/anonmap.S343PY
osu!.exe 28314 kuroni mem REG 8,6 4480568 2762129 /home/kuroni/osu-wine/drive_c/osu/osu!.exe
osu!.exe 28314 kuroni mem REG 8,6 6876568 2762303 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/clr.dll
osu!.exe 28314 kuroni mem REG 8,6 864208 2763030 /home/kuroni/osu-wine/drive_c/windows/system32/msvcr110_clr0400.dll
osu!.exe 28314 kuroni mem REG 8,6 5168560 2762688 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
osu!.exe 28314 kuroni mem REG 8,6 452008 2762306 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/clrjit.dll
osu!.exe 28314 kuroni mem REG 8,6 54696 2762313 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/Culture.dll
osu!.exe 28314 kuroni mem REG 8,6 419696 2762343 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/locale.nlp
osu!.exe 28314 kuroni mem REG 8,6 4805072 2762764 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
osu!.exe 28314 kuroni mem REG 8,6 3446680 2762749 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
osu!.exe 28314 kuroni mem REG 8,6 586168 2762752 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
osu!.exe 28314 kuroni mem REG 8,6 1265584 2762785 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
osu!.exe 28314 kuroni mem REG 8,6 393648 2762367 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/mscorrc.dll
osu!.exe 28314 kuroni mem REG 8,6 74168 2762407 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/nlssorting.dll
osu!.exe 28314 kuroni mem REG 8,6 2957088 2762462 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/sortdefault.nlp
osu!.exe 28314 kuroni DEL REG 8,6 2883903 /tmp/.wine-1000/server-806-2a002e/anonmap.bdA4YC
osu!.exe 28314 kuroni mem REG 8,6 26544 2762707 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
osu!.exe 28314 kuroni mem REG 8,6 391120 2762725 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.configuration.dll
osu!.exe 28314 kuroni mem REG 8,6 2687400 2762770 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.XML.dll
osu!.exe 28314 kuroni mem REG 8,6 5418936 2893080 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
osu!.exe 28314 kuroni DEL REG 8,6 2883904 /tmp/.wine-1000/server-806-2a002e/anonmap.g49rDo
osu!.exe 28314 kuroni mem REG 8,6 504240 2763028 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/mscoreei.dll
osu!.exe 28314 kuroni mem REG 8,6 868288 2762324 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/diasymreader.dll
osu!.exe 28314 kuroni mem REG 8,6 297808 2762255 /home/kuroni/osu-wine/drive_c/windows/system32/mscoree.dll
osu!.exe 28314 kuroni mem REG 8,6 3761208 2640540 /home/kuroni/wine-1.8.3/lib/wine/kernel32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 3086816 2640550 /home/kuroni/wine-1.8.3/lib/wine/ntdll.dll.so
osu!.exe 28314 kuroni mem REG 8,6 17724 2622485 /home/kuroni/wine-1.8.3/bin/wine
osu!.exe 28314 kuroni mem REG 8,6 347456 2639438 /home/kuroni/wine-1.8.3/lib/wine/netapi32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 447540 2640537 /home/kuroni/wine-1.8.3/lib/wine/secur32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 116312 1589870 /lib/i386-linux-gnu/libgcc_s.so.1
osu!.exe 28314 kuroni mem REG 8,6 387476 2639640 /home/kuroni/wine-1.8.3/lib/wine/iphlpapi.dll.so
osu!.exe 28314 kuroni mem REG 8,6 625592 2639519 /home/kuroni/wine-1.8.3/lib/wine/winhttp.dll.so
osu!.exe 28314 kuroni DEL REG 0,5 74219526 /SYSV00000000
osu!.exe 28314 kuroni mem REG 8,6 87876 1596103 /lib/i386-linux-gnu/libresolv-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 259092 2639479 /home/kuroni/wine-1.8.3/lib/wine/jsproxy.dll.so
osu!.exe 28314 kuroni mem REG 8,6 513076 2639333 /home/kuroni/wine-1.8.3/lib/wine/ws2_32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 408652 2639380 /home/kuroni/wine-1.8.3/lib/wine/uxtheme.dll.so
osu!.exe 28314 kuroni mem REG 8,6 2362892 2640558 /home/kuroni/wine-1.8.3/lib/wine/comctl32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 169632 1599863 /lib/i386-linux-gnu/libpng12.so.0.54.0
osu!.exe 28314 kuroni mem REG 8,6 148232 2639147 /home/kuroni/wine-1.8.3/lib/wine/rasapi32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 2225304 2639414 /home/kuroni/wine-1.8.3/lib/wine/windowscodecs.dll.so
osu!.exe 28314 kuroni mem REG 8,6 2764972 2639639 /home/kuroni/wine-1.8.3/lib/wine/oleaut32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 1558968 2640622 /home/kuroni/wine-1.8.3/lib/wine/gdiplus.dll.so
osu!.exe 28314 kuroni mem REG 8,6 159560 2640447 /home/kuroni/wine-1.8.3/lib/wine/cryptnet.dll.so
osu!.exe 28314 kuroni mem REG 8,6 147152 2639324 /home/kuroni/wine-1.8.3/lib/wine/imagehlp.dll.so
osu!.exe 28314 kuroni mem REG 8,6 440744 2639118 /home/kuroni/wine-1.8.3/lib/wine/wintrust.dll.so
osu!.exe 28314 kuroni mem REG 8,6 1716024 2639694 /home/kuroni/wine-1.8.3/lib/wine/crypt32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 471788 2639704 /home/kuroni/wine-1.8.3/lib/wine/rsaenh.dll.so
osu!.exe 28314 kuroni mem REG 8,6 137272 2622533 /home/kuroni/wine-1.8.3/share/wine/fonts/tahomabd.ttf
osu!.exe 28314 kuroni mem REG 8,6 143652 2622543 /home/kuroni/wine-1.8.3/share/wine/fonts/tahoma.ttf
osu!.exe 28314 kuroni mem REG 8,6 149108 414587 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
osu!.exe 28314 kuroni mem REG 8,6 1348492 414589 /usr/lib/i386-linux-gnu/libX11.so.6.3.0
osu!.exe 28314 kuroni mem REG 8,6 80144 414591 /usr/lib/i386-linux-gnu/libXext.so.6.4.0
osu!.exe 28314 kuroni mem REG 8,6 153644 2639521 /home/kuroni/wine-1.8.3/lib/wine/combase.dll.so
osu!.exe 28314 kuroni mem REG 8,6 2014336 2640570 /home/kuroni/wine-1.8.3/lib/wine/winex11.drv.so
osu!.exe 28314 kuroni mem REG 8,6 1338064 2640456 /home/kuroni/wine-1.8.3/lib/wine/rpcrt4.dll.so
osu!.exe 28314 kuroni mem REG 8,6 3483316 2639143 /home/kuroni/wine-1.8.3/lib/wine/ole32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 230356 2639418 /home/kuroni/wine-1.8.3/lib/wine/imm32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 230708 414624 /usr/lib/i386-linux-gnu/libpng16.so.16.28.0
osu!.exe 28314 kuroni mem REG 8,6 112152 1599815 /lib/i386-linux-gnu/libz.so.1.2.11
osu!.exe 28314 kuroni mem REG 8,6 726652 414628 /usr/lib/i386-linux-gnu/libfreetype.so.6.12.3
osu!.exe 28314 kuroni mem REG 8,6 84560 2639629 /home/kuroni/wine-1.8.3/lib/wine/api-ms-win-core-winrt-l1-1-0.dll.so
osu!.exe 28314 kuroni mem REG 8,6 2579796 2639376 /home/kuroni/wine-1.8.3/lib/wine/gdi32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 3577288 2639166 /home/kuroni/wine-1.8.3/lib/wine/user32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 1081660 2640510 /home/kuroni/wine-1.8.3/lib/wine/shlwapi.dll.so
osu!.exe 28314 kuroni mem REG 8,6 1055748 2639178 /home/kuroni/wine-1.8.3/lib/wine/advapi32.dll.so
osu!.exe 28314 kuroni mem REG 8,6 137076 1599959 /lib/i386-linux-gnu/libtinfo.so.5.9
osu!.exe 28314 kuroni mem REG 8,6 148792 1599997 /lib/i386-linux-gnu/libncurses.so.5.9
osu!.exe 28314 kuroni mem REG 8,6 4569184 402238 /usr/lib/locale/locale-archive
osu!.exe 28314 kuroni mem REG 8,6 46716 1595994 /lib/i386-linux-gnu/libnss_files-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 46748 1596037 /lib/i386-linux-gnu/libnss_nis-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 96096 1595920 /lib/i386-linux-gnu/libnsl-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 34620 1595921 /lib/i386-linux-gnu/libnss_compat-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 346044 1593672 /lib/i386-linux-gnu/libm-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 159796 2640483 /home/kuroni/wine-1.8.3/lib/wine/version.dll.so
osu!.exe 28314 kuroni mem REG 8,6 22072 1595993 /lib/i386-linux-gnu/libnss_dns-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 13828 1593671 /lib/i386-linux-gnu/libdl-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 1802928 1593668 /lib/i386-linux-gnu/libc-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 134832 1596055 /lib/i386-linux-gnu/libpthread-2.24.so
osu!.exe 28314 kuroni mem REG 8,6 6512 2622546 /home/kuroni/wine-1.8.3/share/wine/fonts/vgasys.fon
osu!.exe 28314 kuroni mem REG 8,6 21920 414585 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
osu!.exe 28314 kuroni mem REG 8,6 9608 414583 /usr/lib/i386-linux-gnu/libXau.so.6.0.0
osu!.exe 28314 kuroni mem REG 8,6 1936304 2640674 /home/kuroni/wine-1.8.3/lib/libwine.so.1.0
osu!.exe 28314 kuroni mem REG 8,6 147656 1593590 /lib/i386-linux-gnu/ld-2.24.so
osu!.exe 28314 kuroni 0u CHR 136,0 0t0 3 /dev/pts/0
osu!.exe 28314 kuroni 1u CHR 136,0 0t0 3 /dev/pts/0
osu!.exe 28314 kuroni 2u CHR 136,0 0t0 3 /dev/pts/0
osu!.exe 28314 kuroni 3w FIFO 0,10 0t0 398106 pipe
osu!.exe 28314 kuroni 4u unix 0x0000000000000000 0t0 397250 @00109 type=STREAM
osu!.exe 28314 kuroni 5r FIFO 0,10 0t0 397251 pipe
osu!.exe 28314 kuroni 6r FIFO 0,10 0t0 400536 pipe
osu!.exe 28314 kuroni 7r FIFO 0,10 0t0 397252 pipe
osu!.exe 28314 kuroni 8w FIFO 0,10 0t0 397252 pipe
osu!.exe 28314 kuroni 9u CHR 136,0 0t0 3 /dev/pts/0
osu!.exe 28314 kuroni 10u REG 8,6 912 2883899 /tmp/.wine-1000/server-806-2a002e/anonmap.iSZhyH (deleted)
osu!.exe 28314 kuroni 11u unix 0x0000000000000000 0t0 399973 type=STREAM
osu!.exe 28314 kuroni 12u REG 8,6 65536 2883900 /tmp/.wine-1000/server-806-2a002e/anonmap.S343PY (deleted)
osu!.exe 28314 kuroni 13r FIFO 0,10 0t0 400524 pipe
osu!.exe 28314 kuroni 14w FIFO 0,10 0t0 399974 pipe
osu!.exe 28314 kuroni 15r FIFO 0,10 0t0 397288 pipe
osu!.exe 28314 kuroni 16r FIFO 0,10 0t0 400525 pipe
osu!.exe 28314 kuroni 17w FIFO 0,10 0t0 400525 pipe
osu!.exe 28314 kuroni 18w FIFO 0,10 0t0 399975 pipe
osu!.exe 28314 kuroni 19r DIR 8,6 4096 2762127 /home/kuroni/osu-wine/drive_c/osu
osu!.exe 28314 kuroni 20r FIFO 0,10 0t0 397289 pipe
osu!.exe 28314 kuroni 21w FIFO 0,10 0t0 397289 pipe
osu!.exe 28314 kuroni 22r REG 8,6 5168560 2762688 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
osu!.exe 28314 kuroni 23r REG 8,6 4805072 2762764 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
osu!.exe 28314 kuroni 24r REG 8,6 3446680 2762749 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
osu!.exe 28314 kuroni 25r REG 8,6 586168 2762752 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
osu!.exe 28314 kuroni 26r REG 8,6 1265584 2762785 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
osu!.exe 28314 kuroni 27w FIFO 0,10 0t0 398162 pipe
osu!.exe 28314 kuroni 28u unix 0x0000000000000000 0t0 398163 type=STREAM
osu!.exe 28314 kuroni 29r FIFO 0,10 0t0 400537 pipe
osu!.exe 28314 kuroni 30w FIFO 0,10 0t0 400537 pipe
osu!.exe 28314 kuroni 31r REG 8,6 26544 2762707 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
osu!.exe 28314 kuroni 32r FIFO 0,10 0t0 398165 pipe
osu!.exe 28314 kuroni 33w FIFO 0,10 0t0 401411 pipe
osu!.exe 28314 kuroni 34r FIFO 0,10 0t0 402504 pipe
osu!.exe 28314 kuroni 35w FIFO 0,10 0t0 400573 pipe
osu!.exe 28314 kuroni 36r FIFO 0,10 0t0 398166 pipe
osu!.exe 28314 kuroni 37w FIFO 0,10 0t0 398166 pipe
osu!.exe 28314 kuroni 38r FIFO 0,10 0t0 401413 pipe
osu!.exe 28314 kuroni 39r FIFO 0,10 0t0 402509 pipe
osu!.exe 28314 kuroni 40r FIFO 0,10 0t0 402505 pipe
osu!.exe 28314 kuroni 41w FIFO 0,10 0t0 398167 pipe
osu!.exe 28314 kuroni 43r FIFO 0,10 0t0 401414 pipe
osu!.exe 28314 kuroni 44w FIFO 0,10 0t0 401414 pipe
osu!.exe 28314 kuroni 46r FIFO 0,10 0t0 400558 pipe
osu!.exe 28314 kuroni 49r REG 8,6 391120 2762725 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.configuration.dll
osu!.exe 28314 kuroni 50r REG 8,6 2687400 2762770 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.XML.dll
osu!.exe 28314 kuroni 51w FIFO 0,10 0t0 398195 pipe
osu!.exe 28314 kuroni 52r FIFO 0,10 0t0 400560 pipe
osu!.exe 28314 kuroni 53r FIFO 0,10 0t0 400559 pipe
osu!.exe 28314 kuroni 54w FIFO 0,10 0t0 400559 pipe
osu!.exe 28314 kuroni 55r REG 8,6 5418936 2893080 /home/kuroni/osu-wine/drive_c/windows/Microsoft.NET/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
osu!.exe 28314 kuroni 56w FIFO 0,10 0t0 398198 pipe
osu!.exe 28314 kuroni 57u REG 8,6 66052 2883904 /tmp/.wine-1000/server-806-2a002e/anonmap.g49rDo (deleted)
osu!.exe 28314 kuroni 58r FIFO 0,10 0t0 400561 pipe
osu!.exe 28314 kuroni 59w FIFO 0,10 0t0 400561 pipe
osu!.exe 28314 kuroni 60w FIFO 0,10 0t0 402505 pipe
osu!.exe 28314 kuroni 61w FIFO 0,10 0t0 400580 pipe
osu!.exe 28314 kuroni 63r FIFO 0,10 0t0 402510 pipe
osu!.exe 28314 kuroni 64w FIFO 0,10 0t0 402510 pipe
Seems like libgnults on its own is not being opened by osu!
Ekho
not sure if this is the best place for this but not sure where else to put it.

PSA: upgrading to libpng 1.6.32 seems to break pretty much every skin due to a bug with PNG IDAT size calculation (https://sourceforge.net/p/libpng/bugs/270/).
MrTroll420
Holy crap thanks so much for this!
setting properties to the xinput devices says the following:

X Error of failed request:  BadMatch (invalid parameter attributes)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 57 ()
Serial number of failed request: 20
Current serial number in output stream: 21

Got any idea how I can fix that?

EDIT: Fixed it, apparently I was trying to change the properties to one of the 5 input devices with the same name as the tablet(?) anyway I did xinput to the right one and everything works! Thanks so much for this!

SlowLogicBoy wrote:

I want to chime in with this so here I go:

Relevant Specs
Ubuntu Mate 16.10
GTX 660
XP-Pen G430
2x Monitors 1920x1200 + 1680x1050

Tablet:
My tablet didn't work out of the box so I just used tips from Huion H420 / osu!tablet area and monitor mapping installed Digimend drivers, unplugged and plugged back in my tablet.. WORKS LIKE A CHARM

Tablet appeared as:
⎜ ↳ UGTABLET TABLET G3 4x3 Mouse id=8 [slave pointer (2)]
⎜ ↳ UGTABLET TABLET G3 4x3 Mouse id=9 [slave pointer (2)]
⎜ ↳ UGTABLET TABLET G3 4x3 Pen id=10 [slave pointer (2)]

I used "UGTABLET TABLET G3 4x3 Pen" to config everything:

First of I like to play with "Forced Proportions" and since my tablet isn't 16:10,I had to tweak it a bit:
xinput --list-props "UGTABLET TABLET G3 4x3 Pen"
gave me:
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

So to suit me I had to tweak this matrix to my needs...
First value gives me how my tablets x axis is mapped to my Screen (Screen = all monitors), so lets work on that.
if my both monitors would be same resolution, I could just type 0.5 and that would be it, but since they are not, I need to calc how much of my screen takes main monitor, so
Sceen:
1920+1680 = 3600
And proportion:
1920/3600 = 0,533333333333,
so now I have the X mapping value.

Second 1 in that matrix is for Y mapping, since my tablets active area is 120:77 it doesn't map to 16:10 so I need to tweak this number too.
16/10 = 1.6 (you can do that with resolution too 1920/1200)
To find out how much of Y I need on tablet
120/1.6 = 75
To make that 75 be my whole Y:
77/75 = 1.026666

So I got my X and Y mapping to apply them:
xinput set-prop 'UGTABLET TABLET G3 4x3 Pen' 'Coordinate Transformation Matrix' 0.533333, 0.000000, 0.000000, 0.000000, 1.026666, 0.000000, 0.000000, 0.000000, 1.000000

More on Coordinate Transformation Matrix you can read here

Performance: (I only speak for Nvidia)
This was done after tips from this thread,
These apply for Ubuntu Mate

Problem: When I switch to another program (or otherwise loose focus on osu!) Keyboard input is no longer registered in osu!
Solution: Play full screen + Add wine registry: 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' String Value 'UseTakeFocus' with value 'N' (everything without ' (quote) of course)

Problem: Screen tearing
Solution: Mate Tweaks -> Windows -> Window manager change to Compiz
For some people Marco Compton works better, but for me Tearing still occurred.
Shinsekai yuri
So the repository that is mentioned in the guide to compile wine is actually for wine version 2.18. Are the new wine versions fine to use with osu! or should i search for the 1.8.3 sources elsewhere ?
EDIT: i read the other pages of the topic. it seems that using the 1.8.3 version is no longer needed for low latency i guess
Fuseteam
thanks i followed the ubuntu instructions following building wine 1.8.3 and it work perfectly xD
if you want you could make an snap out of the ubuntu instructions ^_^
DeletedUser_1290088
[deleted]
Pata-Kun
Ok so I have 2 problems:
  1. First, each time I launch the game, it tries to download discord-rpc.dll_patch and then discord-rpc.dll. It doesn't do anything apparent but I think it might cause the scond one:
  2. I can't connect ! It constantly tells me to verify myself online even though I made it already ! Help !
And also, the game's not very fluid (not smooth 60fps display) and I have more input latency than back on Windows. (Had no problems on Windows)
SlowLogicBoy
Linux Mint 18.3
Followed PlayOnLinux guide, game launches fine but no ethernet. I knew that the problem was gnutls since well logs... And installed all of the libs available after fighting for 2 days:
If it says it can't connect to the internet, install these old versions of libgcrypt and gnutls and try again:
https://launchpad.net/ubuntu/+archive/p ... 4_i386.deb
http://launchpadlibrarian.net/311120747 ... 7_i386.deb
this helped, I guess It's a good idea to add these in PlayOnLinux section too... 18.2 had lib32-gnutls lib so that helped. 18.3 one doesn't... I wonder if there are any fallback ppas for these.
Topic Starter
Franc[e]sco

Invictus Tiberius wrote:

I'm working on a new guide aplicable to latest versions of Wine (2.x or newer). Test reports, comments and votes for osu! would be very helpful.
https://appdb.winehq.org/objectManager.php?sClass=version&iId=28025

Consider that I don't pretend to be exhautive, because (hopefully) osu!lazer will come ~soon~. Instead, I put all minimum necessary steps to get osu! working and usefull tested workarounds for common problems. This way there's no need to strictly use a separate, managed Wine prefix if the default prefix is correctly configured.
it's the exact same steps that i do with wine 1.8.3 (minus compiling wine), except it has more sound delay, that's why i don't advise it. yes i already tried the audio tricks and it's still more latency than old wine, sometimes it even bugs out completely. this is only for my setup though, your mileage may vary so feel free to try latest wine with sound=alsa and a lowlatency kernel

btw, the updater loop on discord-rpc.dll can be fixed by copying it from a clean client and restarting the updater, here's mine: http://hnng.moe/f/YRu
Ryu Sei
Somewhat, I tried Invictus' way to do it on Wine 2.x. Tried first with native gdiplus.dll copied directly from Windows 10 and it crashes on my winecfg.
Maybe I was too dumb to not change the system version in winecfg to Windows 10?

Also,

Seems the font render were screwed :\ especially on 6 and 9 (image taken after crash and swapping gdiplus to built>native priority. It seems osu! accidentally deleted essentials .dll files back then?)
Seems the latency for Wine 2.x is kinda far, but I haven't tried 1.8 again. You can infer that I hitted 'earlier'.

Might as well as building myself 1.8.
Matix99
EDIT:outdated, please ignore my post
marshallracer
You can add elementaryOS 0.4.1 to the working distros
it's really just based on Ubuntu 16.04 LTS and I've only tried it within a VM but it does its job
(no comment on latency or performance because VM tests are not to be trusted a lot but it worked just fine)

Is there actually a distro or repository where one can test wayland?
I'm actually really curious how (bad) it actually turns out to be (for playing osu) in its current state
XHPLAYER[_]

marshallracer wrote:

You can add elementaryOS 0.4.1 to the working distros
it's really just based on Ubuntu 16.04 LTS and I've only tried it within a VM but it does its job
(no comment on latency or performance because VM tests are not to be trusted a lot but it worked just fine)

Is there actually a distro or repository where one can test wayland?
I'm actually really curious how (bad) it actually turns out to be (for playing osu) in its current state
newest ubuntu
marshallracer
So I tried to install everything through the POL way on Ubuntu 17.10 on my Laptop and I'm kinda stuck with an error message about wine not being able to use TrueType Fonts because of a missing/insufficient Freetype version (starting with the registry editor not working properly and continuing with spitting out errors during dotnet45 install and crashing osu bevor it can download/install anything)
I don't know if I screwed up myself somewhere or if there's some dependency or basic package I overlooked, I reinstalled libfreetype6, wine and POL but still nothing doing
XHPLAYER[_]
developedby
Using wine 1.8.3 results in massive stuttering for me. Updating the version to 3.1 solves that problem, while still having the same amount of latency (somewhat bad, i'm using wayland)
show more
Please sign in to reply.

New reply