# Rune Factory 4 (Special)
# Script to fix save checksum after modification
#
# Works on save files and "system saves" / save select file
#
# Written by HenryEx
#
# script for QuickBMS http://quickbms.aluigi.org
# See also: http://aluigi.altervista.org/bms/quickbms_crc_engine.txt
get NAME filename
get FILESIZE asize
get MAGIC long
set PAD long 0xE0
if MAGIC == 1144276562 # string 'RF4D'
get FILECRC long
set PAD long 0
else
set FILECRC long MAGIC
set PAD long 0xE0
endif
SavePos OFFSET
xmath SIZE "FILESIZE - OFFSET - PAD"
# print "File CRC: %FILECRC|x%, data pos: %OFFSET%, pad by %PAD%, data size: %SIZE%"
encryption CRC 0xEDB88320 "32 -1 -1 0 0 1"
log MEMORY_FILE OFFSET SIZE
set NEWCRC long QUICKBMS_CRC
if FILECRC == NEWCRC
print "Save CRC seems to be intact! No modification necessary."
CleanExit
endif
encryption "" ""
log MEMORY_FILE 0 FILESIZE
math OFFSET - 4
goto OFFSET MEMORY_FILE
put NEWCRC long MEMORY_FILE
print "Checksum fixed! New CRC: %NEWCRC|x%"
log NAME 0 FILESIZE MEMORY_FILE
CleanExit
Comments