#!/usr/bin/env bash # Reads the newest Proton log for a game and extracts SUWSF + DLL-load evidence. # Usage: ./tools/read_protonlog.sh (e.g. 1672500 for Gundam Breaker 4) set -uo pipefail APPID="${1:?usage: read_protonlog.sh }" LOG=$(ls -t "$HOME"/steam-$APPID.log "$HOME"/.steam/steam/logs/steam-$APPID.log 2>/dev/null | head -1) [ -z "${LOG:-}" ] && { echo "[!] No steam-$APPID.log found. Add PROTON_LOG=1 to launch options and relaunch."; exit 1; } echo "[+] Log: $LOG ($(stat -c%s "$LOG") bytes, modified $(stat -c%y "$LOG"))" echo "=== Did our native dsound.dll load? ===" grep -iE "dsound\.dll|SUWSF\.asi|Ultimate" "$LOG" | grep -iE "load|builtin|native|override" | head echo "=== SUWSF patch results ===" grep -iE "Searching for patches|Found patch|patches found| matches|No pattern found|skipping patch|Patches disabled|INITIALIZED" "$LOG" | head -60 echo "=== (if both sections empty, the ASI did not inject: check WINEDLLOVERRIDES) ==="