[TUTORIAl] Highfleet On Mac

This page summarizes the projects mentioned and recommended in the original post on /r/Highfleet

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • dxvk

    Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine

  • We will be using Wine and DXVK to accomplish this (Warning: these sites are provided for informational purposes only. Don't download things from them. It won't work). Wine on its own essentially translates Windows CPU calls to Mac or Linux ones. It also translates calls to Windows libraries for various functions (ie sound output) to native (macOS) library calls. However, Wine on macOS is extremely bad at graphics. Games running on Wine make calls to the Windows DirectX rendering library, and those calls must be translated into something macOS can understand. Standard Wine builds for macOS use an ancient OpenGL backend (OpenGL has been deprecated by Apple for years) that only supports up to DirectX 9 (which was released in 2002!). That backend has no chance of functioning for Highfleet (which runs on DirectX 11). Obviously I got the game to work, or I wouldn't be writing this guide, but how? Over on the Linux side, people quickly realized that the OpenGL based wined3d backend was aging, inefficient and quite simply, bad. So they wrote a different, improved backend, one that translates DirectX calls made by Wine applications to Vulkan (the successor to OpenGL), called DXVK or DirectX to Vulkan. Don't get too excited though, because Apple video drivers don't support Vulkan natively. Fortunately, the Khronos Group (who manage Vulkan development) wrote moltenVK, a library that translates Vulkan functions to Metal, Apple's proprietary video library. Now (with a bunch of tweaks and modifications) we have all the tools we need to run some DirectX 11 Windows games on macOS.

  • HomeBrew

    🍺 The missing package manager for macOS (or Linux)

  • First, you will need to install Homebrew, a command line package manager for macOS. Install it by opening Terminal and running this command:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (curl is used to download the installer and /bin/bash tells Terminal how to run it). Hit enter and type in your password if prompted. Once brew is finished installing, paste brew install --no-quarantine gcenx/wine/unofficial-wineskin in and hit enter. If all goes well, an app called Wineskin Winery should show up in your Applications folder. We use --no-quarantine to avoid Gatekeeper because Wineskin isn't code signed with a ($200+) Apple Developer license (I can vouch for Wineskin not being a virus, but you are welcome to look through the source code and come to your own conclusions.) When you open Wineskin Winery, you should see something like this:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • MoltenVK

    MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.

  • We will be using Wine and DXVK to accomplish this (Warning: these sites are provided for informational purposes only. Don't download things from them. It won't work). Wine on its own essentially translates Windows CPU calls to Mac or Linux ones. It also translates calls to Windows libraries for various functions (ie sound output) to native (macOS) library calls. However, Wine on macOS is extremely bad at graphics. Games running on Wine make calls to the Windows DirectX rendering library, and those calls must be translated into something macOS can understand. Standard Wine builds for macOS use an ancient OpenGL backend (OpenGL has been deprecated by Apple for years) that only supports up to DirectX 9 (which was released in 2002!). That backend has no chance of functioning for Highfleet (which runs on DirectX 11). Obviously I got the game to work, or I wouldn't be writing this guide, but how? Over on the Linux side, people quickly realized that the OpenGL based wined3d backend was aging, inefficient and quite simply, bad. So they wrote a different, improved backend, one that translates DirectX calls made by Wine applications to Vulkan (the successor to OpenGL), called DXVK or DirectX to Vulkan. Don't get too excited though, because Apple video drivers don't support Vulkan natively. Fortunately, the Khronos Group (who manage Vulkan development) wrote moltenVK, a library that translates Vulkan functions to Metal, Apple's proprietary video library. Now (with a bunch of tweaks and modifications) we have all the tools we need to run some DirectX 11 Windows games on macOS.

  • wineskin

    Wineskin is a tool used to make ports of Windows software to Mac OS X (by vitor251093)

  • First, you will need to install Homebrew, a command line package manager for macOS. Install it by opening Terminal and running this command:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (curl is used to download the installer and /bin/bash tells Terminal how to run it). Hit enter and type in your password if prompted. Once brew is finished installing, paste brew install --no-quarantine gcenx/wine/unofficial-wineskin in and hit enter. If all goes well, an app called Wineskin Winery should show up in your Applications folder. We use --no-quarantine to avoid Gatekeeper because Wineskin isn't code signed with a ($200+) Apple Developer license (I can vouch for Wineskin not being a virus, but you are welcome to look through the source code and come to your own conclusions.) When you open Wineskin Winery, you should see something like this:

  • dxvk

    Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine (by marzent)

  • Search for Steam (it should be under Apps), select the checkbox and hit Run. Winetricks will download Steam, patch the wrapper, and install Steam's dependencies automagically. When it finishes, close Winetricks and navigate back to Configuration. Hit Browse (next to the executable box) and select Program Files (x86)/Steam/Steam.exe. Then paste-udpforce -allosarches -cef-force-32bit -cef-in-process-gpu -no-cef-sandbox outside of the quotes in the Windows EXE box (this is what keeps Steam's Chromium Embedded Framework from crashing. Without it 99% of Steam's GUI won't work). Now hit Test Run, wait for Steam to download, and log in as normal. Once you're fully logged in to Steam, quit it via Steam>Exit. Find your wrapper application and right click on it in Finder and select "Show Package Contents". Copy libMoltenVK.dylib in /Contents/Frameworks and paste it into /Contents/SharedSupport/wine/lib64 (leave a copy in /Contents/Frameworks). Now download DXVK from here and extract the zip file. Copy the contents of the x64 folder to /drive_c/windows/system32 and the contents of the x32 folder to /drive_c/windows/syswow64. Make sure to hit Replace, as wine puts dummy files in that location by default. Go back to Wineskin, navigate to Tools and open winecfg:

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts