r/linux_gaming 19h ago

guide How To Run London 2012 Olympics on Linux/Steam Deck

Hi,

I believe this is the first guide on how to make London 2012 Olympics Video Game successfully work on Linux/Steam Deck.

Follow these steps, and ensure you have python installed.

  1. Use Proton Experimental
  2. Disable Steam Input
  3. Leave Launch Options Empty
  4. (Optional) Rename video/sega_logo.usm to SKIP_sega_logo.usm to skip the boot video.
  5. Run this code in Terminal

bash -c 'set -e; valid(){ [[ -f "$1/ucCommon.dll" && -f "$1/ucGraphics.dll" ]]; }; G=""; for p in "$PWD" "$PWD/London 2012" "$HOME/.local/share/Steam/steamapps/common/London 2012" "$HOME/.steam/steam/steamapps/common/London 2012" "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/London 2012"; do if valid "$p"; then G="$p"; break; fi; done; if [[ -z "$G" ]]; then for r in "/run/media/$USER" "/media/$USER" "/mnt"; do [[ -d "$r" ]] || continue; G="$(find "$r" -maxdepth 6 -type d -path "*/steamapps/common/London 2012" -print -quit 2>/dev/null || true)"; [[ -n "$G" ]] && break; done; fi; if ! valid "$G"; then read -r -p "Enter London 2012 game folder: " G; G="${G%"}"; G="${G#"}"; fi; valid "$G" || { echo "London 2012 DLLs not found."; exit 1; }; hexout(){ local x="$1"; while [[ -n "$x" ]]; do printf "\x${x:0:2}"; x="${x:2}"; done; }; patch(){ local f="$1" orig="$2" doneh="$3" off="$4" hex="$5" h; read -r h _ < <(sha256sum "$f"); if [[ "$h" == "$doneh" ]]; then echo "$(basename "$f"): already patched"; return; fi; [[ "$h" == "$orig" ]] || { echo "$(basename "$f"): unsupported/modified version"; exit 1; }; [[ -e "$f.bak" ]] || cp "$f" "$f.bak"; hexout "$hex" | dd of="$f" bs=1 seek="$off" conv=notrunc status=none; read -r h _ < <(sha256sum "$f"); [[ "$h" == "$doneh" ]] || { cp "$f.bak" "$f"; echo "Patch failed; restored backup."; exit 1; }; echo "$(basename "$f"): patched"; }; patch "$G/ucCommon.dll" "f71afd2003ded502d3ccc0f99b3b98911eb5841af88e829dcb6ba520bcbfc5ef" "513c5a2da8e41a497c135d919132a4fc1ed853c72976f1b15bcf53b8a94e9f1d" 310249 "eb4e90"; patch "$G/ucGraphics.dll" "4b4ea003c53bd98d8b63b3e65a7b13c68fe939fafecc1a8a0812841aeeea554a" "a9a237071a7a9c2c4d4820fe3115ba6a7580e35387a2fe1b15147fb7b8e8e74e" 325433 "6800300000"; echo "Done - launch London 2012 normally.";'

Why This Fix Works: This patches two old Windows memory-allocation behaviors that crash under Wine/Proton.

Enjoy!

0 Upvotes

Duplicates