Install Osu On Mac With Wine
- Install Osu On Mac With Wine Refrigerator
- Can You Play Osu On Mac
- Install Osu On Mac With Wine Cooler
- Install Osu On Mac With Wine
How to Use Embird for Windows on Mac (OS X) with Wine. This tutorial explains how to use Embird (native Windows application) with Wine on Apple Mac computer. Before installing Embird, it is necessary to install XQuartz application and then to install Wine application. Both of these applications are available free of charge. Wine is an Open Source implementation of the Windows API on top of X and Unix. 32852 BioEdit: changing the install. Apple began transitioning to 64-bit hardware and software technology for Mac over a decade ago, and all modern Macs now include powerful 64-bit processors that can run advanced 64-bit apps.
Note
This section goes into the technical aspects of Discord Rich Presence. Looking to diagnose or troubleshoot issues with respect to getting osu! on Wine working with Discord Rich Presence? Click here.
The issue of Discord Rich Presence has always been a complicated one, and one that I haven’t been able to fully address. So, let’s talk about Discord Rich Presence then.
Note
tl;dr:
Discord depreceated discord-rpc
in favour of their new GameSDK, which meant a special pipe would need to be used instead of just dropping a DLL in like you could before. However, since only WS11 Wine engines can run 64-bit engines, Techno’s bridge wouldn’t work, which meant we have to look towards 0e4ef622 upstream base fork (since Techno’s fork only adds 64-bit support for Catalina), however that wouldn’t work (and then I had ran out of time to keep looking into the issue)
Understanding Discord Rich Presence¶
If you use Discord regularly, you’ll know that when you load a game, application or other software, it might display a status message in your profile. Both osu!lazer and osu-stable support this feature natively on their respective platforms.
In order for games to use Rich Presence, an additional library or SDK is incorporated into the game.
In the past, Discord used discord-rpc - a library that enabled Rich Presence by including a DLL file with the application, located in the same directory as the executable.
This made it easy for us since we could translate RPC calls from the application, through the Wine compatibility layer, onto your local instance of Discord (which is obviously running outside of Wine), by injecting some code in a modified DLL.
In fact, there are already a number of options available for discord-rpc under Wine. Typing winediscordrpc
into Google will fetch you a large number of results, but here are just a few:
However, around April 2019 Discord depreceated discord-rpc in favour of GameSDK. This changes things up so that a single discord-rpc.dll
file is no longer used. Instead, we look towards a C# wrapper.
osu!’s implementation of GameSDK¶
Note
This section is about to get technical (and it’s also a bit convoluted), though it isn’t essential to understanding Rich Presence on Wine, so unless you’re interested in the technical aspects of osu! and GameSDK, you don’t really need ot read this section.
To quote Game4All on #4654:
C# FFI wrapper for the GameSDK is needed (adapting unity wrapper code?) as well as packaging native libraries for every desktop platform.
Note
This comment was made on a pull request (PR) on the osu!lazer codebase, not osu-stable, but the core concept remains the same.
Since osu-stable is closed-source we don’t know the precise aspects of the GameSDK implementation they opted into, but the lack of a discord-rpc.dll
file bundled with the binary at the very least confirms they have moved to GameSDK. However, since osu! is written in C# (it uses .NET) it has two possible implementations of GameSDK - the Unity implementation and the non-Unity implementation.
Note
The Unity implementation is designed to work with games using the Unity Engine.
If you take a look at the osu!lazer codebase however, you’ll see they used a C# implementation that mirrored that of the Unity implementation on the Discord docs.

Whereas the C# with Unity implementation relied on a DiscordController.cs
script that gets attached to the main scene (in osu!lazer’s case, osu.Desktop
), the C# without Unity implementation relied on a mini library + a DLL file in the same directory as the executable file (sound familiar?).
But I don’t think osu! (stable and lazer) does that. If you take a look inside the drive_c/osu!
you won’t find the discord_game_sdk
files, including .bundles
or .dll
. And the presence of the osu/osu.Desktop/DiscordRichPresence.cs
file in the osu!lazer codebase really does suggest that osu! has a Unity-esque implementation of GameSDK.
If osu! used the non-Unity C# implementation of GameSDK…
the source files would contain these files
and the binary would contain one of the
.dll
or similar library files
So, what can we conclude? osu! uses the C# Unity-style implementation of Discord’s GameSDK in order to facilitate Rich Presence. This is most likely because the Discord Developer Documentation didn’t have a reference implementation for non-Unity C# programs at the time when the feature was initially proposed and then eventually implemented..
Tip
osu! would only be using the C# non-Unity-style implementation if and only if there was the presence of library files in the binaries and C# source files in the source.
Note
You can download the GameSDK zip file from the Discord Developer Documentation.
What does that mean for osu!mac?¶
Firstly, let’s take a look at the current community implementation(s) of Rich Presence on osu!mac: Technocoder’s macOS Wine Bridge, which is a fork of 0e4ef622’s Wine Discord IPC Bridge. You can read each respective repository’s READMEs for the technical information behind these bridges - which basically just bridge Windows named pipes (e.g .pipediscord-ipc-0
to Unix named pipes (e.g /run/user/{userid}/discord-ipc-0
). (Technocoder’s fork converts 0e4ef622’s to 64-bit system calls, if you’re interested)

Let’s step back to the beginning. Do you know why there are separate Catalina< and Mojave> Wineskins? It’s because with macOS 10.15 Apple removed 32-bit application support. To respond to this change, Techno’s Wineskin uses the WineCX19.0.1-1 Wineskin engine, which along with the WS11 engines are the only current options available to getting 64-bit Wine programs to run on Catalina.
While Techno’s bridge will work fine on his 10.15 Catalina and later Wineksin, since it’s a 64-bit program, with a 64-bit Wineskin, slc’s Wineskin uses WS9Wine4.0-rc3 - a 32-bit Wine engine that will ONLY run 32-bit Wine programs.
This took me a while to figure out, especially since cmd wasn’t too useful (giving me only ShellExecuteExfailed:Filenotfound
), but after running the Wineskin under a Test Run, the Test logs revealed a BadEXEformatforC:osu!bridge.exe
. This meant that Wineskin wasn’t able to run the 64-bit program provided by Techno, which makes much more complete sense considering there isn’t a ProgramFiles(x86)
folder under slc’s Wineskin and that running the file
command on both files (in my local Terminal) revealed that they were in fact differing in architecture.
(notice how osu! is PE32
[32-bit] while bridge is PE32+
[64-bit])
Actually, Technocoder’s bridge is just a fork of 0e4ef622’s original POC and the most important thing it changes is converting the 32-bit system calls to 64-bit system calls.
So really, all we’d need to do in our 32-bit Wineskin is to use the original 32-bit executable, right?
Unfortunately, while 0e4ef622’s bridge loaded, bringing up:
and koukono’s fork (which I compiled myself using mingw-w64)
(which really are just the same section of the code - the mainloop that tries to create a pipe)
they both couldn’t make a connection with the client (except for 0e4ef622’s bridge which immediately crashed upon Clientconnected.
)
I would have loved to delve into this and see why it wasn’t working - maybe it could be something to do with the WINEPREFIX
or something else entirely, however, I’ve already spent enough time trying to get Discord RPC working and my research ends here. But I think this discussion, even if it is overcomplicated and probably unnecessary, could help other people trying to get Rich Presence properly working under Wine (at least with the existing bridges) and these are basically just my research notes for if I ever want to work on this again.
As an FYI, it seems that other people have been having issues too.
EDIT (19 October 2020):Technocoder pointed out that the original base fork from 0e4ef622 uses Linux namespaces, not macOS namespaces. So in order for Rich Presence to work on Mac, someone needs to create a fork that keeps the 32-bit calls of the original base fork, while changing to Linux namespaces like Techno’s fork.
Note
If you feel that you have something to add - feel free to make a PR on GitHub.
Licensing information¶
No license was provided with the above code samples from 0e4ef622 and koukono, therefore all rights reserved. However, I hope my usage is okay (and information about DMCA, Copyright and Licensing can be viewed in License
This article is designed to give you the basics in troubleshooting osu!mac issues. It contains information on how to generate a report, troubleshooting techniques specific to Wine, and tips for communicating with other people in the osu!mac community.
First steps¶
To help us understand your issue a bit better, please perform the following initial troubleshooting & diagnostic steps as listed below. You can use this information to diagnose an issue yourself, or to request support on the forums.
Step 1: See Common Issues¶
Many issues already have solutions available to them. Check out the installation guide, Common Issue section on osu!mac and the outdated troubleshooting guide.
Here are some common ones we’ve been experiencing recently.
Step 2: Report and repair using osu!macOS Agent¶
Download the latest version of Technocoder’s osu!macOS Agent - older versions may have incompatibilities or bugs, especially with newer wrappers.
Once it finishes downloading, open osu!macOS Agent.
If you haven’t already done so, click the Select button and browse to
osu!.app's
location. The text box should display its filepath (e.g~/Users/firefly/Desktop/osu!.app
) and Wine Engine (e.gWS11WineCX64Bit19.0.1-1
)Select the Troubleshoot tab, then click Scan.
After the scan completes, click Repair.
If this doesn’t fix your issue, click Copy Report. Copy the contents into a reply to this thread and we’ll do our best to help you out! Please don’t forget to do a Test Run as outlined in the next step.
Tip
osu!macOS Agent is a useful program every osu-stable player under Wine should have!
Step 3: Generating a Test Run through Wineskin¶
Locate your osu! installation.
Right click on it, then select Show Package Contents.
Open Wineskin.
Click Advanced.
Click Test Run. If osu! starts successfully (even with glitches), you can then close the program down.
Once osu! has either closed or crashed, a dialog will pop up asking you whether you want to view Test Run Logs. Click Yes.
Two plain-text files will appear. One contains information about your system and Wineskin, while the other provides a log of errors, warnings and events that were recorded while your Wineskin was operating. Copy the results of your Test Run logs to a pastebin such as paste.ubuntu.com set to never expire. It is now ready to share with others! Feel free to contact us on the osu! on Mac forum thread if you need any help.
Additional troubleshooting¶
Here are some additional troubleshooting tips that might help you diagnose and fix any issues you’re experiencing.
Accessing the insides of your Wineskin¶
Generally speaking, you can access the Package Contents of your Wineskin by right clicking on osu!.app
and selecting Show Package Contents.
Three items should now appear:
Contents is a directory that Wineskin uses to store all its files - generally you won’t need to access this folder for troubleshooting
drive_c_ is an alias (shortcut) that represents a Windows filesystem which Wine imitates
Wineskin is the program you use to manage, edit, and troubleshoot your Wineskin
Locating osu! crash logs¶
Just like on Windows, osu! will generate it’s own crash logs that can be useful for troubleshooting.
If a dialog like the one below appears:
Install Osu On Mac With Wine Refrigerator
Click on the window. You should be able to view the crash logs now:
You can also find more logs under the Logs folder in your drive_c
directory. To do this:
Locate where
osu!.app
is installedRight click on it and select Show Package Contents
You should now see three files/folders:
Contents
,drive_c
andWineskin
. Clickdrive_c
Then, click
osu!
Select
Logs
Your log files should be present here.
Generating a report with osu!macOS Agent¶
To generate a report with Technocoder’s osu!macOS Agent:
Open osu!macOS Agent (duh)
Click the Troubleshoot report
Click Scan
Upon completion of the scan, click Copy Report
Save this to a text file or someplace where you won’t forget
Can You Play Osu On Mac
Tip
osu!macOS Agent is a useful program every osu-stable player under Wine should have!
Generating logs for Wineskin¶
If your Wineskin isn’t starting or working properly, you can try diagnosing the issue with a Test Run of your Wineskin, that will produce logs that will describe any problems in detail.
To generate a Wineskin log:
Open the Wineskin program by following these instructions
Click the Advanced tab
Click the Test Run button
If osu! starts, you can close the program immediately (unless you need to test an issue that occurs at a particular moment in time, like when editing beatmaps)
A window like the one below will appear. Click Yes
Install Osu On Mac With Wine Cooler
Two plain-text files will appear. One contains information about your system and Wineskin, while the other provides a log of errors, warnings and events that were recorded while your Wineskin was operating.
Save both of these to a text file or someplace where you won’t forget. If you’re generating logs for another person, you can use a pastebin such as paste.ubuntu.com to share your log files with them.
Communicating your issues with other people¶
We want to help you get osu! running on your macOS-powered device, so to make the process as easy as possible for everyone involved, it’s important to be clear and concise right from the get-go.
Please do:
Install Osu On Mac With Wine
Work through the First steps section before posting for help
See the Common issues section to see if there’s a fix you can try
Describe your issue in lots and lots of detail
You can make a distinction between expected behaviour (what you think is supposed to happen) and actual behaviour (what actually ends up happening) in your issue report
Provide information on when/why your issue happens (if you know)
Provide information about your computer specs and the wrapper you used
Attach screenshots and log files (from both osu!macOS Agent and Wineskin
Tell us what you’ve already tried to do
The best place to report issues is on the osu! forums and the osu! for macOS support thread - make sure you put macOS in the title of your post (so other people know ofc).