Skip to content

Slippi on macOS

Ryan McGrath edited this page Sep 29, 2023 · 27 revisions

Your life will be immensely easier if you spend 5-10 minutes reading this document.

Install Slippi Launcher

The best way to run Slippi on macOS is to grab the Slippi Launcher from slippi.gg. Place it in your Applications folder and run the app, then sign in or register for an account.

macOS Version Processor Support Level Graphics Driver
Sonoma (14.0) M1/Intel Beta/Supported Vulkan, OpenGL
Ventura (13.0) M1/Intel Beta/Supported Vulkan, OpenGL
Monterey (12.0) M1/Intel Beta/Supported Vulkan, OpenGL
Big Sur (11.0) M1/Intel Beta/Supported Vulkan, OpenGL
Catalina (10.15) Intel Supported Vulkan, OpenGL
Mojave (10.14) Intel Supported Vulkan, OpenGL
High Sierra (10.13) Intel Supported OpenGL

Slippi on M1 machines runs under the Rosetta 2 translation layer. This (surprisingly) runs fairly well. M1 devices under Big Sur, Monterey, Ventura and Sonoma are marked as beta due to this; there's no known blocker bugs for playing on these devices.

Bug Reports & Support

Bugs should be reported to the #mac-support channel in the Slippi Discord. When doing so, please make sure to note the following:

  • What macOS version you're on.
  • What Mac hardware you're running on (model and processor, can be found in Apple Menu -> About This Mac).
  • Whatever is not working, and any accompanying logs if you have them.

Configuring Your Controller

Gamecube controllers are by far the most common way to play Melee. To use one on macOS requires a driver installation. Visit the GCAdapterDriver project page to download the appropriate installer for your macOS version.

  • If you're on macOS High Sierra, Mojave, or Catalina, make sure you check the "overclocked" option in the driver installation process.
  • Note: Some USB-C hubs may limit the polling rate; for that there is unfortunately no workaround as it's a hardware limitation.

Note that the overclocked driver on macOS Big Sur & beyond currently requires disabling a system lock in Recovery Mode. Detailed instructions on how to do this can be found here. This is a temporary workaround for the GCAdapterDriver app not supporting the overclock procedure - once it's updated to do so, you should switch to that, as Apple has deprecated kernel extensions in macOS and the level of support for them will continue to diminish with each OS release.

Adapter Troubleshooting

  • If your adapter has a WiiU Mode switch, make sure it's set to that.
  • If you're on High Sierra, Mojave, or Catalina: always plug your adapter in before starting Netplay from the Launcher, or opening a Netplay Dolphin build.
  • If you're on Big Sur or later and running GCAdapterDriver.app, you might need to unplug and plug your adapter back in after activating the driver, and before starting Netplay from the launcher or opening a Netplay Dolphin build. This is due to a bug in the DriverKit framework where Apple internal devices match first.

Other Controller Setups

  • B0XX specific:
    • Note that native mode for B0XX under Big Sur requires macOS Big Sur 11.3.
    • Note that Frame1 controllers are not supported by default and need to be manually configured.
  • If you want to try to play on a Pro/PS4/Xbox Controller you can attempt to use Steam as a translation layer.
    • This guide does not work on M1 Macs. This is not something Slippi can fix.
    • Note that the version of Dolphin that Slippi is forked from is not the same as modern Dolphin builds, so what works there may not work here.
  • If, for whatever reason, you can't use any of the controller methods listed above, you can use any controller adapter that has a "PC Mode" switch as a Standard Controller in Dolphin. This has increased latency and should be used as a last resort (e.g, you're on a mostly locked down system and can't install or change system files).

Updating Slippi for macOS

If you use the Slippi Launcher, automatic updates are built in, with settings migration built-in.

If you run Netplay by itself (increasingly unsupported), you'll have to update manually each time there's a new release (this will require reconfiguring settings each time).

General Notes, Bug Fixes and Performance Tips

Performance on macOS has historically been tricky, but has gotten better over time. macOS supports two graphics backends: OpenGL, and Vulkan (Metal). You'll need to experiment with both graphics backends to see what works for you, as the performance will differ depending on macOS version and hardware.

Some common performance tips to try, regardless of graphics driver choice:

  • Playing on an external monitor will often feel smoother than the built-in Mac displays, which are generally 60hz.
  • Play full screen and make sure the game is focused (clicked).
  • macOS Slippi defaults to @1x resolution, as the built-in retina display makes things already scale up aggressively. You can try to bump the value if you want, but don't be surprised if this makes your machine work harder than you'd think.
  • Consider enabling "Do Not Disturb". Notifications can tank the frame rate on some devices.
  • Some older Macs (and, oddly, the 8GB 2020 M1 MacBook Pro) can achieve higher performance by running the game in low resolution mode. To do so:
    • In Slippi Launcher, navigate to Settings > Netplay > Open Containing Folder.
    • CMD-click (or right click/two-finger-click) on the app > Get Info > check "low resolution mode".

Vulkan (Experimental)

This backend is a port of an older mainline Dolphin MoltenVK/Metal backend. It offers generally increased performance on most modern macOS versions. This is the default driver for Slippi on every macOS version, except for High Sierra - Metal is not supported on this macOS version due to it lacking a few Metal framework pieces that were introduced in Mojave.

OpenGL

OpenGL as a framework has been deprecated by Apple for a few OS releases now, and it lacks a critical extension that's beneficial for smooth rendering. With that said, some older Macs oddly see better performance with this backend, so it's up to you to try both and see what works.

The below settings changes refer specifically to Slippi Dolphin Netplay settings.

  • If your ping and FPS counters shows up as squares, try backing out to the title screen
  • Some people have positive experiences with going to config > last tab > enable "cpu clock override" and drag the slider to 80%. Your mileage may vary, but feel free to play around.
  • Some people have increased frame rates by enforcing Graphics>Enhancements Force 24-bit Color.
  • Try setting aspect ratio to integer.

Last Resort: BootCamp

Macs that are older than mid-2015 can often struggle to play well on Slippi (iMacs being the notable exception). If you've tried everything in this document and still aren't seeing performance on an acceptable level, you can consider running BootCamp to play under Windows instead. If you go this route, you'll want to consult Windows-specific tutorials after getting BootCamp up and running.

BootCamp is not supported for M1 models.

Hidden Flags

If you've done everything else, and you still feel like you're missing something, there are two special hidden flags you can try starting Slippi with. These are not guaranteed to enhance your setup and may actually make them worse! Try them and see as every setup is different - the flags are not permanent and starting Slippi normally after one of these commands will put everything back to normal.

Metal Double Buffering

This flag will instruct Slippi Dolphin to set the CAMetalLayer rendering target to operate in double-buffered mode. CAMetalLayer on macOS is typically triple-buffered. This is generally harder on most machines and historically only iMacs or some M1 devices have been able to use this flag without issue:

SLP_METAL_DOUBLE_BUFFER='1' ~/Library/Application\ Support/Slippi\ Launcher/netplay/Slippi\ Dolphin.app/Contents/MacOS/Slippi\ Dolphin

This flag has no effect under OpenGL.

Swap Mutex Implementation

This flag will instruct the app to use a different Mutex locking mechanism under the hood. This flag is not guaranteed to change anything, but if you try it and it does notably change your experience, pop into the Discord and let us know.

PTHREAD_MUTEX_USE_ULOCK='1' ~/Library/Application\ Support/Slippi\ Launcher/netplay/Slippi\ Dolphin.app/Contents/MacOS/Slippi\ Dolphin

F.A.Q

  • Mainline Dolphin supports the M1 natively, why doesn't Slippi?
    If Slippi migrates to more closely follow mainline Dolphin, then it's possible the same M1 support could show up here. There is currently no timeline or ETA for this, and as a general rule the Slippi devs don't give timelines to begin with.

  • Can I remap buttons on my Gamecube controller?
    No. You could use your controller as a a Standard controller, but you'll exchange latency and precision by doing so.

  • I keep getting immediate crashes with an error saying memory was allocated above 2GB. What do I do?
    This is an unfortunate bug that can't be fixed unless Slippi moves to more closely follow mainline Dolphin. You can read more on this issue. Work was merged in late December 2021 to try and reduce the instances of this error, but the full fix is mainline.

  • ProMotion screen? Some users with newer ProMotion screens have had to turn off ProMotion in System Preferences in order to find acceptable performance; this is presumably an issue due to the age of the Dolphin fork that Slippi is based on. Once Slippi migrates to follow mainline Dolphin, this should no longer be an issue. Note that some Sonoma users have reported that this is no longer an issue after the upgrade.

  • Login works, but the game doesn't say you're logged in?
    Make sure you're not playing from the mounted installer volume - which is mounted as read-only, and the login process won't be able to write your user profile to the system.

    To fix:

    • In Finder, look in your left sidebar. If Slippi Installer is mounted, press the eject button.
    • Remove the Installer and the App.
    • Redownload the installer, run the installation process to drag the app to Applications
    • Important: Unmount/eject the installer
    • Run the app from Applications

    Your login should work now.