Skip to content

Instantly share code, notes, and snippets.

@Frityet
Last active April 17, 2025 22:06

How to install game-porting-toolkit (aka proton for macOS)

You also might wanna just use Whisky which does this automatically

This guide works on macOS 13.4+ using Command Line Tools for XCode 15 Beta!

What is this?

In the recent WWDC, Apple announced and released the "game porting toolkit", which upon further inspection this is just a modified version of CrossOver's fork of wine which is a "compatibility layer" that allows you to run Windows applications on macOS and Linux.

Why would I want this?

Playing Windows games on MacOS

How?

First, install homebrew which is an amazing macOS package manager, which is weirdly enough what Apple themselves have used for distrobution of this program

brew tap apple/homebrew-apple

This adds apple's offical "repository" for their "forumula" (package), which includes the game-porting-toolkit

AArch64 (ARM, Apple's chips, not x86_64/Intel)

Make sure that rosetta2 is installed

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

homebrew to inside Rosetta

arch -x86_64 zsh
cd /usr/local && mkdir homebrew
curl -L github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
arch -x86_64 /usr/local/homebrew/bin/brew tap apple/homebrew-apple
arch -x86_64 /usr/local/homebrew/bin/brew install game-porting-toolkit

Now, you can install the game-porting-toolkit

Warning: This will take a LONG TIME, and will use up a LOT of system resources because it needs to compile a really large project (LLVM)

brew install game-porting-toolkit

Then, go to this url (on apple.com) to download the actual toolkit, place it somewhere memorable.

How do I use it?

First, you need to create a "wine prefix" for your game.

To do this,

WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg

Where you would replace my-game-prefix with whatever you want you want it to be.

You should now change (in the window that pops up) the windows version to "windows 10"

Press ok, and then install your game into my-game-prefix

Finally, to install apple's game porting toolkit, use

ditto [REPLACE THIS WITH WHEREVER YOU PUT THE GAME PORTING TOOLKIT]/lib/ `brew --prefix game-porting-toolkit`/lib/

and finally, to run the executable,

[REPLACE THIS WITH WHEREVER YOU PUT THE GAME PORTING TOOLKIT]/gameportingtoolkit ~/my-game-prefix 'C:\\Program Files\\MyGame\\MyGame.exe'

or, for without the debug GUI

[REPLACE THIS WITH WHEREVER YOU PUT THE GAME PORTING TOOLKIT]/gameportingtoolkit-no-hud ~/my-game-prefix 'C:\\Program Files\\MyGame\\MyGame.exe'

Integration into Steam

TODO

@PrajjwalGupta
Copy link

Screenshot 2023-06-10 at 10 22 49 PM
Steam Installed successfully but stuck while launch

@PrajjwalGupta
Copy link

I run arch -x86_64 /usr/local/homebrew/bin/brew install svn this commend but freeze at patching file 'Lib/distutils/command/install.py' ==> ./configure --prefix=/usr/local/homebrew/Cellar/python@3.11/3.11.3 --enable- ==> make What should I do, anyone could help me?

I encoutered the same issue. I somehow fixed it by using the following:

brew bundle dump
rm -rf /usr/local/Homebrew/Cellar
brew bundle

Maybe combined with something but I don't remember. You can give it a try.

Thanks

@vincenzoraco
Copy link

I got Steam working using with

/Volumes/Game\ Porting\ Toolkit-1.0/gameportingtoolkit ~/my-game-prefix /Users/yourusername/my-game-prefix/drive_c/Program\ Files\ \(x86\)/Steam/steam.exe

Obviously change the paths accordingly

@Nik-9649
Copy link

Someone installed the Epic Games Launcher?

yeah but i ran into this error
image
i have installed all the prerequisites it either needs to be run as admin or it needs access to temp folder i'll update y'all if any solutions work

@idChef
Copy link

idChef commented Jun 14, 2023

What to do if
arch -x86_64 zsh
results in an error:
arch: posix_spawnp: zsh: Bad CPU type in executable

@Nik-9649
Copy link

What to do if arch -x86_64 zsh results in an error: arch: posix_spawnp: zsh: Bad CPU type in executable

Confirm your system architecture: Open a terminal and run the following command:
arch
It should return x86_64 for a 64-bit system.

Verify the zsh executable: Check if you have a compatible version of zsh installed for your system architecture. If you installed it manually or using package managers, make sure it matches your system architecture. You can check the architecture of the zsh executable by running the following command:
file $(which zsh)

and then please provide the results

To specify the correct architecture when running zsh, you can use the arch command followed by the desired architecture. In your case, you can try running zsh using the x86_64 architecture with the following command:

arch -x86_64 zsh

@idChef
Copy link

idChef commented Jun 14, 2023

running arch returns arm64

file $(which zsh) returns /opt/homebrew/bin/zsh: Mach-O 64-bit executable arm64 so I guess this is my problem right? I need zsh that supports x86_64? Or am I not understanding this?

@Nik-9649
Copy link

running arch returns arm64

file $(which zsh) returns /opt/homebrew/bin/zsh: Mach-O 64-bit executable arm64 so I guess this is my problem right? I need zsh that supports x86_64? Or am I not understanding this?

The output of file $(which zsh) indicates that the zsh binary you are using is specifically built for the arm64 architecture. This suggests that you are running on an Apple Silicon (M1) Mac.

To execute zsh using the x86_64 architecture, you need to ensure that you have the x86_64 version of zsh installed on your system.

@appleshoops
Copy link

When I try to run the Steam EXE file, I get

Error: No available formula with the name "game-porting-toolkit".

I'm using the x86_64 version of Homebrew, and I've done everything else properly.

@Patt92
Copy link

Patt92 commented Jun 15, 2023

I recommend this straight forward guide, as I encountered several issues with freezes like Python, permission handlin in /usr/local and issues with svn. The other guide worked without errors.
https://www.applegamingwiki.com/wiki/Game_Porting_Toolkit

@woj-tek
Copy link

woj-tek commented Jun 15, 2023

I'm stuck at the first steps:

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
By using the agreetolicense option, you are agreeing that you have run this tool with the license only option and have read and agreed to the terms.
If you do not agree, press CTRL-C and cancel this process immediately.
2023-06-15 16:31:38.312 softwareupdate[47017:8161702] Package Authoring Error: 032-84877: Package reference com.apple.pkg.RosettaUpdateAuto is missing installKBytes attribute
Install of Rosetta 2 finished successfully

and then

$ arch -x86_64 zsh
arch: posix_spawnp: zsh: Bad CPU type in executable

Anyone has run into such problem?

What's odd is that it seems I have Rosetta 2 installed as I can run all Intel/x86 applications...

@TaiPhamD
Copy link

TaiPhamD commented Jun 16, 2023

I'm stuck at the first steps:

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
By using the agreetolicense option, you are agreeing that you have run this tool with the license only option and have read and agreed to the terms.
If you do not agree, press CTRL-C and cancel this process immediately.
2023-06-15 16:31:38.312 softwareupdate[47017:8161702] Package Authoring Error: 032-84877: Package reference com.apple.pkg.RosettaUpdateAuto is missing installKBytes attribute
Install of Rosetta 2 finished successfully

and then

$ arch -x86_64 zsh
arch: posix_spawnp: zsh: Bad CPU type in executable

Anyone has run into such problem?

What's odd is that it seems I have Rosetta 2 installed as I can run all Intel/x86 applications...

you might want to type which brew and make sure your brew path is setup to the x64 version of brew. I suspect that you might have manually installed an arm64 version of zsh via home-brew.

For my case in my .zprofile I had arm64 brew which I commented out to setup for x64 brew:

# arm64 brew
# eval "$(/opt/homebrew/bin/brew shellenv)"

# x64 brew
eval "$(/usr/local/bin/brew shellenv)"

so when you type which brew it should show:
/usr/local/bin/brew

@Unspected
Copy link

works too slow guys I installed sonoma

@diehardbattery
Copy link

Running M2 Max MBP, I installed homebrew via the official homepage. Installed Rosetta per readme. When running arch -x86_64 /usr/local/homebrew/bin/brew tap apple/homebrew-apple I get arch: /usr/local/homebrew/bin/brew isn't executable. If I run arch command it returns with i386. What is happening here?

@woj-tek
Copy link

woj-tek commented Jun 16, 2023

you might want to type which brew and make sure your brew path is setup to the x64 version of brew. I suspect that you might have manually installed an arm64 version of zsh via home-brew.

You were right @TaiPhamD , thanks!

@TaiPhamD
Copy link

In case some one wants the code to create a d4 alias in their command zsh shell to launch d4. Add this in your ~/.zshrc:

alias d4='arch -x86_64 zsh -c "eval \"$(/usr/local/bin/brew shellenv)\"; /usr/local/Cellar/game-porting-toolkit/1.0/gameportingtoolkit-no-hud ~/my-game-prefix \"C:\\Program Files (x86)\\Diablo IV\\Diablo IV Launcher.exe\" &"'

then now I can just type d4 in my command line to launch the game

@Patt92
Copy link

Patt92 commented Jun 16, 2023

there is also a great tool named Harbor, which can manage the bootles and provides a gui for launching. It requires the brew setup, not like whisky. I do also use the approach with zprofile with aliases, but using Harbor feels like crossover, but with the gaming toolkit, what's pretty neat.

https://github.com/ohaiibuzzle/Harbor

Whisky never worked for me, it's nailed together and works for a group, while there is another, where it doesn't

@td0
Copy link

td0 commented Jun 17, 2023

did anyone fail when creating wine-prefix (running winecfg the first time)?
it is a bit frustrating for me.

  • I have MacBook M1 Pro, just installed macOS Sonoma Developer Beta.
  • Followed all the instruction up until: WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg. it gave me this error:
wine: created the configuration directory '/Users/.../my-game-prefix'
002c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
002c:fixme:shell:create_link failed to connect to mount manager
002c:fixme:shell:create_link failed to connect to mount manager
00e4:fixme:unwind:virtual_unwind calling personality routine in system library not supported yet
...
00e4:fixme:unwind:virtual_unwind calling personality routine in system library not supported yet
00e4:err:module:LdrInitializeThunk "comctl32.dll" failed to initialize, aborting
00e4:err:module:LdrInitializeThunk Initializing dlls for L"C:\\windows\\system32\\iexplore.exe" failed, status c0000005
00f0:fixme:module:dlopen_32on64_opengl32 loaded "/usr/local/Cellar/game-porting-toolkit/1.0/lib/wine/x86_32on64-unix/opengl32.dll.so" early @ 0x688a7000
00f0: thread_get_state failed on Apple Silicon - faking zero debug registers
00f8:fixme:module:dlopen_32on64_opengl32 loaded "/usr/local/Cellar/game-porting-toolkit/1.0/lib/wine/x86_32on64-unix/opengl32.dll.so" early @ 0x688a7000
00f8: thread_get_state failed on Apple Silicon - faking zero debug registers
00f8:err:seh:call_stack_handlers invalid frame 000000000062E0A8 (0000000000632000-000000000072FD20)
00f8:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
wine: configuration in L"/Users/.../my-game-prefix" has been updated.
0148:fixme:unwind:virtual_unwind calling personality routine in system library not supported yet
...
0148:fixme:unwind:virtual_unwind calling personality routine in system library not supported yet
0148:err:module:LdrInitializeThunk "comctl32.dll" failed to initialize, aborting
0148:err:module:LdrInitializeThunk Initializing dlls for L"C:\\windows\\system32\\winecfg.exe" failed, status c0000005

before I tried to install game-porting-toolkit (before installing macOS Sonoma):

  • I have arm brew installed. I'm a web developer, I will not remove my arm brew. so instead, I installed 2 version of brews (i386 & arm64). put this script in my .zprofile:
if [ "$(arch)" = "arm64" ]; then
    eval "$(/opt/homebrew/bin/brew shellenv)"
else
    eval "$(/usr/local/bin/brew shellenv)"
fi
  • I have crossover & portingkit installed, I don't know whether they're affecting the game-porting-toolkit or not, listed here just in case

when installing the game-porting-toolkit:

  • I ran iTerm 2 with rosetta (in fact, I have 2 copies of iTerm app: universal app & force-checked rosetta)
  • I've ensured that the shell is running on i386 mode by running arch command
  • everything (before making wine-prefix directory) went smoothly, game-porting-toolkit installation through brew did not give me any error
  • I tried to reinstall game-porting-toolkit twice, in the last attempt I cleared the brew cache in case of my cache got corrupted or anything.

any idea?

@td0
Copy link

td0 commented Jun 17, 2023

I managed to solve my issue by entering this command:
WINEPREFIX=~/my-game-prefix arch -x86_64 `brew --prefix game-porting-toolkit`/bin/wine64 winecfg

it's so weird, I ran the rosetta iTerm & ensured that the shell was running on i386 arch. but without arch -x86_64 it simply didn't work no matter what. I don't know what's wrong, but it's fine now. I managed to install steam

@Colour-cr3
Copy link

When runningarch -x86_64 /usr/local/homebrew/bin/brew tap apple/homebrew-apple, after a while it eventually comes back with this:

You must: brew install svn
Error: game-porting-toolkit: Failed to download resource "netpbm"
Failure while executing; `/usr/bin/env svn checkout https://svn.code.sf.net/p/netpbm/code/stable /Users/patrick/Library/Caches/Homebrew/netpbm--svn --quiet -r 4534` exited with 1. Here's the output:
You must: brew install svn

@Gribouille007
Copy link

Hello, after running the brew -v install apple/apple/game-porting-toolkit command, I waited about an hour and at the end this error appeared : Error: apple/apple/game-porting-toolkit 1.0 did not build
Can someone help me please ? Thank you

@junkert
Copy link

junkert commented Jun 18, 2023

@td0 - I was able to get past the error. It looks like netpbm needs to be installed separately:

arch -x86_64 /usr/local/homebrew/bin/brew install netpbm && arch -x86_64 /usr/local/homebrew/bin/brew install game-porting-toolkit

@td0
Copy link

td0 commented Jun 19, 2023

@td0 - I was able to get past the error. It looks like netpbm needs to be installed separately:

arch -x86_64 /usr/local/homebrew/bin/brew install netpbm && arch -x86_64 /usr/local/homebrew/bin/brew install game-porting-toolkit

@junkert I think you mentioned the wrong person.
cc: @TheMoltenHusky

@Colour-cr3
Copy link

@td0 - I was able to get past the error. It looks like netpbm needs to be installed separately:

arch -x86_64 /usr/local/homebrew/bin/brew install netpbm && arch -x86_64 /usr/local/homebrew/bin/brew install game-porting-toolkit

@junkert I think you mentioned the wrong person. cc: @TheMoltenHusky

I was actually able to get it to work, my issue now is that Among Us won't work lol. I play the Tou mod and I was able to enable winhttp for a dependency that the mod requires, but not even the base game runs so I'll have to do more digging for that

@junkert
Copy link

junkert commented Jun 19, 2023

Ah thank you! Sorry about the false notification.

@Jamiermusic
Copy link

Screenshot 2023-06-10 at 10 22 49 PM Steam Installed successfully but stuck while launch

Doesn't launch properly in Ventura sadly. You need Sonoma. Unless anyone have come up with a solution to it. I updated to Sonoma and it worked fine, but the Os was incredibly buggy so I reverted back.

@mic1099
Copy link

mic1099 commented Jun 20, 2023

makein

I doubt it is normal I start brew install svn in the morning on my M1MAX and it is still hanging there and it is already evening I have tried also this
brew bundle dump rm -rf /usr/local/Homebrew/Cellar brew bundle
no success any suggestions will be most appreciated.

@heero503
Copy link

try to install a mac steam, copy your mac steam folder "config, userdata" and file "registry.vdf" overwrite you PC steam one. It will popup.
I hope it can help.

@TAODEI
Copy link

TAODEI commented Jun 22, 2023

I have install toolkit and build my-game-prefix, but I get nothing when I gameportingtoolkit ~/my-game-prefix/ ~/Downloads/SteamSetup.exe,the program is auto end. I get no window and no error output.
maybe because I use Ventura to install toolkit? but I have upgrade Ventura now, try it and also get nothing too.

@Jonathan0827
Copy link

I'm stuck at the first steps:

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
By using the agreetolicense option, you are agreeing that you have run this tool with the license only option and have read and agreed to the terms.
If you do not agree, press CTRL-C and cancel this process immediately.
2023-06-15 16:31:38.312 softwareupdate[47017:8161702] Package Authoring Error: 032-84877: Package reference com.apple.pkg.RosettaUpdateAuto is missing installKBytes attribute
Install of Rosetta 2 finished successfully

and then

$ arch -x86_64 zsh
arch: posix_spawnp: zsh: Bad CPU type in executable

Anyone has run into such problem?

What's odd is that it seems I have Rosetta 2 installed as I can run all Intel/x86 applications...

Try arch -x86_64 /bin/zsh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment