blob: c326aff4f83819303f664f8d6b082401d7c46ff4 [file] [log] [blame] [raw]
#!/bin/sh
RA2_1000_VA_1=0x4f22ca
RA2_1000_VA_2=0x62a469
RA2_1006_VA_1=0x4f2f1a
RA2_1006_VA_2=0x632f39
if [ $# != 1 ]; then
printf "Usage: %s <pid>|auto\\n" "$0" 1>&2
exit 255
fi
if [ "$1" = auto ]; then
pid="`ps -A -o pid -o comm= | sed -En 's/^ *([0-9]+) +game\\.exe\$/\\1/p'`"
if [ -z "$pid" ]; then
echo "Cannot find a game.exe process" 1>&2
exit 1
fi
pid="${pid%%
*}"
else
pid="$1"
fi
exec gdb --pid "$pid" << EOT
define patch
set \$addr1 = (unsigned char *)\$arg0
set \$addr2 = (unsigned char *)\$arg1
if \$addr1[0] == 0x74 && \$addr1[1] == 0x49 && \$addr2[0] == 0x75 && \$addr2[1] == 0x5d
set \$addr1[0] = 0x90
set \$addr1[1] = 0x90
set \$addr2[0] = 0x90
set \$addr2[1] = 0x90
detach
quit
end
end
patch $RA2_1000_VA_1 $RA2_1000_VA_2
patch $RA2_1006_VA_1 $RA2_1006_VA_2
printf "\\nGame version not supported or already patched\\n"
detach
quit 1
EOT