Install the toolkit and bootstrap dependencies:
./install.zshInstall Windows Steam during bootstrap:
./install.zsh --install-steamStart Windows Steam installation in the background during app-style setup:
./install.zsh --install-steam-backgroundUse a specific mounted GPTK source:
./install.zsh --gptk-source "/Volumes/Game Porting Toolkit"Reinstall GPTK from mounted media:
./install.zsh --reinstall-gptkCopy scripts only:
./install.zsh --skip-depsCreate a rollback backup without installing:
./install.zsh --skip-deps --backup-onlyList rollback backups:
./install.zsh --list-backupsRollback toolkit scripts/config:
./install.zsh --rollback rippermoon-update-YYYYmmdd-HHMMSSInstall without a rollback backup:
./install.zsh --no-backupSkip GPTK copy:
./install.zsh --skip-gptkSkip SteamSetup download:
./install.zsh --skip-steam-downloadDo not edit ~/.zshrc:
./install.zsh --no-zshrcGeneral form:
gptk-launch --prefix PrefixName -- /path/to/program.exeInitialize a prefix:
gptk-launch --prefix MyGame --initSet Windows version:
gptk-launch --prefix MyGame --set-winver win10Open Wine config:
gptk-launch --prefix MyGame --winecfgRun a Wine tool:
gptk-launch --prefix MyGame -- regedit
gptk-launch --prefix MyGame -- cmdRun with a fixed log:
gptk-launch --prefix MyGame --log-file "$GPTK_HOME/logs/MyGame.log" -- ./MyGame.exeUseful toggles:
gptk-launch --prefix MyGame --hud -- ./MyGame.exe
gptk-launch --prefix MyGame --no-dxr -- ./MyGame.exe
gptk-launch --prefix MyGame --dxvk -- ./MyGame.exe
gptk-launch --prefix MyGame --no-esync -- ./MyGame.exeInstall Steam:
gptk-steam --install-only --install "$GPTK_EXTERNAL_ROOT/Installers/SteamSetup.exe"Use --install-only during setup so Steam is validated and then closed instead of launched.
Start Steam:
gptk-steam --logStop Steam:
gptk-steam --killRepair Steam compatibility settings:
gptk-steam --repair-compatLaunch Spacewar/AppID 480:
gptk-steam --log --install-spacewarRaw Steam argument equivalent:
gptk-steam --log -applaunch 480Download and install the latest Microsoft Visual C++ v14 runtime into one prefix:
gptk-vcrun --prefix DispatchInstall into every existing Wine prefix under GPTK_PREFIX_ROOT:
gptk-vcrun --allArchived prefixes ending in .broken-*, .backup-*, .old-*, or .disabled-* are skipped.
Download without installing:
gptk-vcrun --download-onlyDownload and install Microsoft .NET 6 Desktop Runtime into one prefix:
gptk-dotnet6 --prefix SteamInstall into every existing Wine prefix under GPTK_PREFIX_ROOT:
gptk-dotnet6 --allArchived prefixes ending in .broken-*, .backup-*, .old-*, or .disabled-* are skipped.
Download without installing:
gptk-dotnet6 --download-onlyThis is mainly for tools such as EldenRingRandomizer.exe, not for the base game.
Apply the DirectSound no-capture fix to the Steam prefix once (the SwiftUI
launcher does this automatically; see gptk-dsound-nocap below):
gptk-dsound-nocap apply --prefix SteamThen start Steam and launch ERSC from the copied game folder — no special runner:
gptk-steam --no-log
cd "$GPTK_EXTERNAL_ROOT/Games/EldenRing/Game"
WINEDLLOVERRIDES='winmm=n,b;steam_api64=n,b' \
gptk-launch --prefix Steam --set-winver win10 --no-dxr --no-esync --log-file "$GPTK_HOME/logs/ERSC.log" -- ./ersc_launcher.exeSee steam-voice-capture-fix-2026-05-13.md for the diagnosis and what the fix does.
Build and install API stub DLLs for missing Wine/GPTK system libraries.
Install GameInput.dll stub into one prefix:
gptk-stubs --prefix GOWRInstall into every existing Wine prefix under GPTK_PREFIX_ROOT:
gptk-stubs --allArchived prefixes ending in .broken-*, .backup-*, .old-*, or .disabled-* are skipped.
Build and cache the stub without installing:
gptk-stubs --build-onlyForce a rebuild even if already cached:
gptk-stubs --force-build --prefix GOWRRequires x86_64-w64-mingw32-gcc — install with brew install mingw-w64.
See stubs.md for background on delay-load crashes and the full GoWR launch command.
Disable Wine DirectSound microphone capture in a prefix so Steam Voice cannot stall the Elden Ring ERSC Golden Pot lobby. Playback is unaffected; only microphone capture is disabled (use Discord/FaceTime for voice chat).
Apply to the Steam prefix:
gptk-dsound-nocap apply --prefix SteamApply to every initialized prefix, or check / undo:
gptk-dsound-nocap apply --all
gptk-dsound-nocap status --prefix Steam
gptk-dsound-nocap revert --prefix Steamapply installs a small forwarder dsound.dll into the prefix's system32
(x64) and syswow64 (x86), preserves the prefix's own dsound as
dsound_real.dll, and sets the Wine dsound=native override. The forwarder
returns DSERR_NODRIVER from the capture-create entry points (flat API and the
COM class factory) and forwards everything else to the real dsound.
Nothing copyrighted is redistributed: the forwarder is this project's own code
(stubs/dsound-nocap/), and dsound_real.dll is the prefix's own dsound, renamed
in place. Maintainers can rebuild the prebuilt proxies (needs brew install mingw-w64):
gptk-dsound-nocap buildSee steam-voice-capture-fix-2026-05-13.md for the full diagnosis.
Create a per-game launcher:
gptk-game create "Game Name" "$GPTK_EXTERNAL_ROOT/Games/Game/Game.exe" --initCreate a launcher using an existing prefix:
gptk-game create "Game Name" "$GPTK_EXTERNAL_ROOT/Games/Game/Game.exe" --prefix Steam --workdir "$GPTK_EXTERNAL_ROOT/Games/Game"Run a generated launcher:
gptk-game run "Game Name"List generated launchers:
gptk-game listBuild:
swift buildRun:
swift run RipperMoonKitLauncherInstall local .app bundle:
zsh scripts/install-gui-app.zshUninstall toolkit scripts and local app while keeping configs/saves:
zsh scripts/uninstall.zsh