Skip to content

Instantly share code, notes, and snippets.

@KylePDavis
Last active July 3, 2025 06:25
Show Gist options
  • Save KylePDavis/7eedea42507a2ffa1f9720a9ba79343b to your computer and use it in GitHub Desktop.
Save KylePDavis/7eedea42507a2ffa1f9720a9ba79343b to your computer and use it in GitHub Desktop.
Patches the Prototype game for modern machines (for macOS CrossOver Steam)
#!/bin/bash
set -o errexit -o pipefail
################################################################################
# Patches the Prototype game for modern machines.
# Based on info in the Steam forums and on [PCGW for Prototype](https://www.pcgamingwiki.com/wiki/Prototype)
################################################################################
# If no engine DLL in current directory go to the common path on macOS for the CrossOver Steam install
if ! [ -f "prototypeenginef.dll" ]; then
cd "$HOME/Library/Application Support/CrossOver/Bottles/Steam/drive_c/Program Files (x86)/Steam/steamapps/common/Prototype"
fi
# Make a backup if there isn't already one
if ! [ -f "prototypeenginef.dll.bak" ]; then
cp prototypeenginef.dll prototypeenginef.dll.bak
fi
# Force disable networking
dd bs=1 conv=notrunc of=prototypeenginef.dll seek=$(( 0x88168E )) if=<(printf '\x90\xE9')
# Force max threads limit (8 works for my M2 Max CPU but some may need to set this to 4)
dd bs=1 conv=notrunc of=prototypeenginef.dll seek=$(( 0xB7F020 )) if=<(printf '\x90\x90\xB8\x08')
# Force larger max memory for stack allocator
dd bs=1 conv=notrunc of=prototypeenginef.dll seek=$(( 0x641CC0 )) if=<(printf '\x64')
# Force disable HID polling which can cause stutters
dd bs=1 conv=notrunc of=prototypeenginef.dll seek=$(( 0x623B10 )) if=<(printf '\x11\x80\x7F\x24\x12\x74\x16\x80\x7F\x24\x13\x74\x10\xE9\xAE\x00\x00\x00')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment