forum

Solution: Running osu! In Ubuntu or Xubuntu

posted
Total Posts
941
show more
nightbane112

ErunamoJAZZ wrote:

The Bloodcat deb package no works for me. u.u
Ever since I upgraded Wine from 1.6 to 1.7, Bloodcat packages stop working. Previously, on 1.6, it worked smoothly :(
Espionage724
Just a quick status report: osu! seems to run nicely in Wine 1.7.1 (CSMT-patched) with fglrx (13.8b2) on Xubuntu 13.10 (saucy daily). No FPS drops, and the graphic glitches I reported before are gone. This is in DirectX mode. OpenGL mode still appears unselectable currently (via in-game or .cfg modifying).
Espionage724
Newer guide: p/3822351

(last updated September 7th, 2014)

Imgur album breifly describing my process: http://imgur.com/a/7JEig (do not rely on this alone as it isn't up-to-date with latest changes; refer to text guide below for updates)

Here's some detailed instructions for getting osu! on Ubuntu (tested on 13.04, 13.10, and 14.04 (x86_64)):

1. Add the Wine PPA
System Settings > Software & Updates > Other Software > Add... > ppa:ubuntu-wine/ppa > Close
or
Terminal > sudo add-apt-repository ppa:ubuntu-wine/ppa

2. Update Software Sources
Terminal > sudo apt-get update

3. Install Wine
Terminal > sudo apt-get install wine1.7
- Should install around 230 or so MB of archives
- At the time of writing, wine1.7 will give you the latest Wine, 1.7.9. If you specify just wine, it will give you 1.6.
- Accept the license for the fonts package (well, read it first of course 8-); may have to click the Terminal window and use Tab and Arrow Keys to navigate)

4. Set up a 32-bit Wine Prefix
Terminal > WINEARCH=win32 winecfg
- This implies you want your main Wine prefix to be 32-bit. If you want osu! to be in it's own prefix, make a folder somewhere and use WINEPREFIX=[location] to specify it)
- Feel free to just close the configuration window afterwards

5. Install .NET Framework 2.0
Terminal > winetricks dotnet20
- You do not need any other dotnet. People seem to feel the need to install dotnet30 and 40, but I'm unsure why...

6. Download osume.exe
Terminal > wget http://osu.ppy.sh/release/osume.exe

7. Create a osu! folder in the Program Files folder in your Wine prefix, move osume.exe to it, and start osume.exe
Terminal > mkdir '.wine/drive_c/Program Files/osu!' && mv osume.exe '.wine/drive_c/Program Files/osu!' && cd '.wine/drive_c/Program Files/osu!' && wine osume.exe
- Long command that creates the directory, moves osume.exe to it, puts the Terminal into that folder, and runs osume.exe
- You can manually create the folders and move osume.exe with GUI also (just create an osu! folder in Program Files and drag osume.exe to it and right-click it to run it with Wine Windows Program Loader)

8. Wait for osu! update to completely download osu!
- If you have a beatmap and/or skin library backup somewhere, now would be a good time to restore it.

9. Start osu!
- If you cannot start osu! at this point, it is likely because of graphics drivers. If this is the case, you have to either install proprietary drivers, update the open-source drivers, or install 32-bit OGL libraries.
- Run osu! from Terminal via wine 'osu!.exe' and try checking for any specific errors if issues appear.

10. Do any initial in-game setup you want
- Includes logging-in, setting a resolution, changing keybinds, etc.
- If you cannot see the login prompt (likely the osu! game window will be above it), you'll have to exit osu! and either try disabling compositing, or setting osu!'s resolution lower in its cfg file
- If setting a fullscreen resolution causes osu! to crash and you cannot close it, see additional notes.

11. Exit osu!

At this point, you should have osu! on your computer, congratulations :)

Additional Notes:

- From this point on, the only thing you need to do to run osu! is just run the osu!.exe binary (double-click it or use the wine command from Terminal).

- If you want a Desktop and/or Menu shortcut to osu!, you'll have to either do this manually (really easy once you get the hang of it), or use something like wine-launcher-creator (that program is pretty helpful, especially if you have/want osu! on it's own prefix easily)
My XFCE icon for reference: http://pastebin.com/R6sM63ju (use it as a guideline)

- .osz downloads should automatically just work (did for me anyway; otherwise, just drag them to the Songs folder manually)

- You do not need gdiplus, but it is optional if you really want the few things it affects to look better. If you do opt for this, be prepared to download 538M, and run winetricks gdiplus and also note I cannot vouch for how compatible gdiplus is currently.

- I cannot vouch for how well osu! runs in a Wine prefix with other things installed, but I imagine it would be fine for most things (if any problems occur, do try it from a clean prefix if you didn't already)

- Choosing OpenGL mode in osu!'s Options will likely not work (osu! restarts back to DirectX mode). The reasoning for this is unknown.

- You cannot use the current osu! Installer from the Download page unless you install .NET Framework 3.0 (3.5?), and even then I'm not too sure if that works. As-per the guide above, you shouldn't need to do this at all though, but should you try it, be prepared for a troubleshooting process if things go wrong.

- If you have the older osu! installer that relies on .NET Framework 2.0 instead, you can use it, but last I tried it, it would crash during install. If this happens, do not re-run the installer, and copy osume.exe to the osu! folder and run it. You should have all the needed shortcuts if using this method.

- The reason for a 32-bit Wine Prefix is because of the dotnet20 installer. If you want a multiarch prefix (32/64 bit), you'll have to modify the dotnet20 installer package to accept 64-bit OSes. There are very few situations I can think of where this would be wanted... (you're better off putting osu! in a separate 32-bit prefix)

- If you have a Program Files (x86) folder present in the Wine prefix you tried installing osu! to, you have a multiarch prefix, which (for sake of simplicity) you don't want. You'll want to start over from Step 4.

- Should osu! crash or lock-up, you can try one of the following commands after pressing Alt + F2:
wineserver -k
killall wineserver
xkill > *click on osu!*
- If none of that works, try bringing up Terminal instead (Ctrl + Alt + T is default in most DEs) and trying the command(s) there
- If all else fails, do REISUB (be prepared for reboot)
- You may wish to try different video drivers (like going from fglrx to radeon) or other driver-specific troubleshooting (like --tls=0 on fglrx) if a crash or lock-up occurs

- If you have in-game scoreboard, combo popup, or other graphical corruption, a solution may be to enable StrictDrawOrdering (Terminal > winetricks strictdrawordering=enabled) but this can drop performance (your experience may vary). Another option is to use a d3d command stream-patched Wine and enable it (CSMT=enabled). Here's a PPA for such a version of Wine (do not submit AppDB results with this version of Wine). Do either one or the other. If going from StrictDrawOrdering to CSMT though, make sure to remove the StrictDrawOrdering setting, or set it back to disabled. Using gallium-nine also fixes corruption. Be sure to only choose one of these methods though (don't use more than one at a time).

- If you use a fullscreen resolution other than your native resolution, osu! may scale strangely in some cases. A quick fix I found was to just go under Options and set the frame limit to Unlimited (gameplay). Another option is to disable the window decorator from controlling windows (under winecfg)

- You may have to look into some hardware-specific stuff to get everything working good with your setup (such as setting a primary screen for multi-monitor setups, setting tablets to only hook to one screen, switching your touchpad to absolute mode, etc.)

- You may have to alter some commands slightly if you happen to use another desktop environment, distro of Linux, or some non-standard Ubuntu setup.

Here is the Wine AppDB entry for osu!.

And if all of that is seemingly too complicated, you could try PlayOnLinux. boat wrote a pretty nice guide here. I can't vouch for how well it may work or offer support about it directly, but I'm sure others can.

Good luck :)

Random Tips:

- If your tablet is experiencing strange behavior (see my thread here for reference), try removing xserver-xorg-input-wacom (and it's dependency xserver-xorg-input-all).

- If using open-source graphics drivers, it is recommended to have the latest Kernel you feel comfortable with. When using radeon, it is also recommended you manually enable DPM (radeon.dpm=1 as a kernel parameter; unless it's automatically enabled). If using Saucy Salamander (13.10) or feel brave with another similar distro (Mint, Debian, etc;) you should also consider adding Oibaf's Updated and Optimized Open Graphics Drivers PPA.

- Setting the environment variable vblank_mode=0 (either via EXPORT or just run it like vblank_mode=0 wine 'osu!.exe') disables vsync, and may lessen input delay. Only applicable to open-source graphics drivers.

- Disabling PulseAudio may lessen audio delay and issues. Use pasuspender, as removing PulseAudio is generally a bad idea. You may have to go through winecfg or winetricks to set ALSA to be used.

- Use of a Realtime Kernel may also further lessen any latency.
uzzi
Thanks for the explanation! I managed to get osu! to work after having to alter my wine to set the prefix to 32-bit, but after that it worked just fine. The only thing wrong now is that the frames seem to cap out at 60ish, even with the frame limiter off. I'm not sure if it's my hardware, because when I play on my Windows installation i get anywhere from 200-400fps, and anything under 140fps seems to delay my cursor. Have any idea as to what I can do?
Espionage724

- [ U z z I ] - wrote:

Thanks for the explanation! I managed to get osu! to work after having to alter my wine to set the prefix to 32-bit, but after that it worked just fine. The only thing wrong now is that the frames seem to cap out at 60ish, even with the frame limiter off. I'm not sure if it's my hardware, because when I play on my Windows installation i get anywhere from 200-400fps, and anything under 140fps seems to delay my cursor. Have any idea as to what I can do?
Hmm, are you using the open-source included drivers, or proprietary?

Could try using Terminal to start osu! with a environment variable to disable vsync:

Terminal > cd (wherever osu! is) > vblank_mode=0 wine 'osu!.exe'

(if it mentions some bash error or doesn't like osu!'s "!", then try dragging osu!.exe to the Terminal window instead of typing the exe (type the vblank_mode=0 wine part first, and leave a space after wine before dragging))
uzzi

Espionage724 wrote:

- [ U z z I ] - wrote:

Thanks for the explanation! I managed to get osu! to work after having to alter my wine to set the prefix to 32-bit, but after that it worked just fine. The only thing wrong now is that the frames seem to cap out at 60ish, even with the frame limiter off. I'm not sure if it's my hardware, because when I play on my Windows installation i get anywhere from 200-400fps, and anything under 140fps seems to delay my cursor. Have any idea as to what I can do?
Hmm, are you using the open-source included drivers, or proprietary?

Could try using Terminal to start osu! with a environment variable to disable vsync:

Terminal > cd (wherever osu! is) > vblank_mode=0 wine 'osu!.exe'

(if it mentions some bash error or doesn't like osu!'s "!", then try dragging osu!.exe to the Terminal window instead of typing the exe (type the vblank_mode=0 wine part first, and leave a space after wine before dragging))
I gave your suggestion a shot, and it seems to have rid of the frame cap, but the fps doesn't even pass 70 while playing, and the highest I saw out of the game was around 80-90. Not sure what to do at this point.

Oh and I'm not entirely sure which drivers I am using, as it has been a long time since I installed Ubuntu (not sure how to find out D;)
Espionage724
What GPU do you have?

If it's AMD or ATI, try typing fglrxinfo in Terminal and see if it reports something (if it gives a OpenGL version, you have AMD's proprietary driver). If it doesn't work, you likely have the open-source driver (radeon)

If it's NVIDIA, try typing nvidia-settings in Terminal and see if it opens anything (if a control panel opens, you have NVIDIA's proprietary driver). If it doesn't work, you likely have the open-source driver (nouveau)

If it's Intel, you likely have the open-source driver (there is a driver you can download from Intel, but it came out rather recently, and you'd probably know if you've did this).

Could also try using glxinfo | grep render from Terminal but this requires mesa-utils to be installed.
Fenek Alfa
Did exactly as you wrote, Everything worked except for the game itself.

fenek@fenek-MS-7693:~/.wine/drive_c/Program Files/osu!$ err:ole:CoGetContextToken apartment not initialised
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
fixme:shell:URL_ParseUrl failed to parse L"msvcm80"
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
fixme:shell:URL_ParseUrl failed to parse L"System.Xml"
fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
fixme:process:SetProcessPriorityBoost (0x228,0): stub
fixme:shell:URL_ParseUrl failed to parse L"osu"
fixme:shell:URL_ParseUrl failed to parse L"System.Configuration"
fixme:shell:URL_ParseUrl failed to parse L"Accessibility"
fixme:win:EnumDisplayDevicesW ((null),0,0x33df30,0x00000000), stub!
fixme:shell:URL_ParseUrl failed to parse L"System.resources"
fixme:shell:URL_ParseUrl failed to parse L"System.resources"
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:shell:URL_ParseUrl failed to parse L"osu!framework"
fixme:shell:URL_ParseUrl failed to parse L"osu!.resources"
fixme:shell:URL_ParseUrl failed to parse L"osu!.resources"
fixme:shell:URL_ParseUrl failed to parse L"{9ef86bea-cd1d-4cfd-a8e2-db51e2cb25c1}"
fixme:process:FlushProcessWriteBuffers : stub
fixme:winediag:AUDDRV_GetAudioEndpoint Winepulse is not officially supported by the wine project
fixme:winediag:AUDDRV_GetAudioEndpoint For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your 32-bit OpenGL drivers haven't been installed correctly (using GL renderer "Gallium 0.4 on llvmpipe (LLVM 0x300)", version "1.4 (2.1 Mesa 8.0.4)").
err:d3d:test_arb_vs_offset_limit >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from ARB vp offset limit test cleanup @ directx.c / 478
fixme:d3d:wined3d_guess_card No card selector available for card vendor 0000 (using GL_RENDERER "Gallium 0.4 on llvmpipe (LLVM 0x300)").
err:d3d:match_fbo_tex_update FBO status 0
err:d3d:match_broken_arb_fog FBO status 0
fixme:shell:URL_ParseUrl failed to parse L"osu!.resources"

And then it gives this line every few seconds:
fixme:thread:NtQueryInformationThread info class 16 not supported yet
Espionage724

Fenek Alfa wrote:

Did exactly as you wrote, Everything worked except for the game itself.

And then it gives this line every few seconds:
fixme:thread:NtQueryInformationThread info class 16 not supported yet
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your 32-bit OpenGL drivers haven't been installed correctly (using GL renderer "Gallium 0.4 on llvmpipe (LLVM 0x300)", version "1.4 (2.1 Mesa 8.0.4)").
err:d3d:test_arb_vs_offset_limit >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from ARB vp offset limit test cleanup @ directx.c / 478
fixme:d3d:wined3d_guess_card No card selector available for card vendor 0000 (using GL_RENDERER "Gallium 0.4 on llvmpipe (LLVM 0x300)").
You either need proper graphics drivers, or 32-bit OGL driver libraries installed. That shows that you're falling back to software acceleration via llvmpipe, which may not include some required features to get osu! running.

What's your GPU? (the post above should give you some ideas as to how to find out specifically along with what driver is in-use)
Marcin
Nice guide Espionage724, I'll add it into OP!
boat
I'm no good at this, I don't understand what went wrong :-(

I'd appreciate some help on this.



Doing it manually doesn't work for me either. Nothing happens when I open osume with the wine windows program loader.

Re-doing it gave me this

boat@theboat:~$ mkdir '.wine/drive_c/Program Files/osu!' && mv osume.exe '.wine/drive_c/Program Files/osu!' && cd '.wine/drive_c/Program Files/osu!' && wine osume.exe

Unhandled Exception:
System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3


[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3
Espionage724
Hmm, what version of Wine are you using boat?
boat
Should be whatever the latest one is as this is a fresh install from just a day or so ago, although I'm on ubuntu 12.04, not 13.

Wine configuration says it's at 1.6
Espionage724
Hmm, not too sure what was done wrong on the second attempt to throw a FATAL UNHANDLED EXCEPTION.

Could you give the terminal output for what happens when you try running osume.exe?
boat
I'm sorry but I don't even really know how I'd run it through the terminal. Right clicking the file and trying to open it with wine windows program launcher doesn't do anything at all.
Espionage724

boat wrote:

I'm sorry but I don't even really know how I'd run it through the terminal. Right clicking the file and trying to open it with wine windows program launcher doesn't do anything at all.
Either open a Terminal at the osu! folder location (Xfce and KDE has a right-click Action for it; Nautilus I believe has it on the top-bar menu somewhere), or cd into it manually. Then type wine osume.exe
boat
boat@theboat:~/.wine/drive_c/Program Files/osu!$ wine osume.exe

Unhandled Exception:
System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3


[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3
Espionage724

boat wrote:

boat@theboat:~/.wine/drive_c/Program Files/osu!$ wine osume.exe

Unhandled Exception:
System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3


[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in #ryb.#syb:#Zqb (string[]): IL_0165: stloc.3
Try doing winetricks dotnet20 if you haven't already
boat
Well I have already, but I'll try redoing it all. Would reinstalling/installing a different (confirmed working) version of wine also be something to try?

The installer for net framework 2.0 fails because it's not supported on a 64bit os apparently. Odd, thought it worked the first time. I guess that's probably the problem, then.
Espionage724

boat wrote:

Well I have already, but I'll try redoing it all. Would reinstalling/installing a different (confirmed working) version of wine also be something to try?
If you are trying to redo it, just make sure to delete the old prefix (either through winetricks --gui or just manually delete the .wine folder from your Home directory).

I got the same error just now when I tried running osume.exe, but I didn't do the dotnet20 setup yet. When you try rerunning the command in a clean prefix, make sure it actually finishes (took maybe 2 minutes to complete for me in the past).

I've seen osu! run fine on wine1.6, and I don't believe anyone had any problem with some previous versions, but it's nice to be on the latest one if possible. On raring with just the official ubuntu-wine PPA added for Wine, the latest should be 1.7.2 (you might to reinstall wine using wine1.7, or just select it from a package manager like Synaptic). But in any case, wine1.6 should work fine.
show more
Please sign in to reply.

New reply