Jusant on macOS / Wine / Whisky
#!/bin/bash
set -e
if [ ! -f "$1" ]; then
echo 'Usage: ./patch-jusant.sh <path/to/ASC-Win64-Shipping.exe>'
exit 1
fi
# In RHIInit (address 0x39b9c80), the MessageBox is shown and the game exits:
#
# > 0x39ba165 e816060100 call JusantSpecificDX12RequirementsMessageBox
# > 0x39ba16a b101 mov cl, 0x1
# > 0x39ba16c e8df9bdffe call FPlatformMisc::RequestExitWithStatus
#
# By NOPing out both of the above calls, we effectively bypass the check entirely.
#
hash=$(md5 -q "$1")
# Jusant build 13334122
if [ "$hash" == "3b45cc5aae7d65ecbfe24b3c25fed3f1" ]; then
printf "\x90\x90\x90\x90\x90" | dd of="$1" bs=1 seek=$((0x39BA165)) conv=notrunc status=none
printf "\x90\x90\x90\x90\x90" | dd of="$1" bs=1 seek=$((0x39BA16C)) conv=notrunc status=none
echo "Successfully patched $1"
elif [ "$hash" == "1028b1a7a2824c5b728d3f95258377c0" ]; then
printf "\xE8\x16\x06\x01\x00" | dd of="$1" bs=1 seek=$((0x39BA165)) conv=notrunc status=none
printf "\xE8\x1F\x9D\xDF\xFE" | dd of="$1" bs=1 seek=$((0x39BA16C)) conv=notrunc status=none
echo "Restored $1"
else
echo "Found an unknown version of ASC-Win64-Shipping.exe"
exit 1
fi
Fichier à enregistrer dans un doc .sh + faire un chmod +x
Source : https://github.com/timkurvers/macos-game-patches/tree/main/jusant
Ajout de mars 2024
Optimiser l'affichage https://www.youtube.com/watch?v=3kp2wA1NaC8