HenryEx icon

RF4 save conversion QuickBMS script

HenryEx | PRO | 09/23/20 11:21:53 PM UTC (Edited) | 0 ⭐ | 1194 👁️ | Never ⏰ | []
text |

1.48 KB

|

None

|

0 👍

/

0 👎

# Rune Factory 4 (Special)
# Script to convert save files from RF4 to RF4S
# Version 1
#
# Written by HenryEx
#
# script for QuickBMS http://quickbms.aluigi.org
# See also: http://aluigi.altervista.org/bms/quickbms_crc_engine.txt
 set PAD long 0xE0
set JANK long 0
get NAME filename
get FILESIZE asize
 if FILESIZE != 0x22400  # RF4 file
  print "Filesize incorrect! Is: %FILESIZE|h%! Should be: 0x22400. Exiting..."
  CleanExit
endif
 get FILECRC long
SavePos OFFSET
xmath SIZE "FILESIZE - OFFSET - PAD"
 # check if the save is valid
encryption CRC 0xEDB88320 "32 -1 -1 0 0 1"
log MEMORY_FILE OFFSET SIZE
set NEWCRC long QUICKBMS_CRC
 if FILECRC != NEWCRC
  print "CRC check failed! Script will only work on a valid save file! Exiting..."
  CleanExit
endif
 encryption "" ""
log MEMORY_FILE 0 0
math SIZE + 0x80
 ################################
# Assemble save file
 append  # Append ON
log MEMORY_FILE 0 0x1E5D9
log MEMORY_FILE 0x1E55C 0x7D
log MEMORY_FILE 0x1E5D9 0x50  # we lose a byte here, i hope it wasn't important
log MEMORY_FILE 0x1E62A 0x20B6
goto 0x2075C MEMORY_FILE
put JANK long MEMORY_FILE # maybe this won't even horribly break eventually? let's just pray
log MEMORY_FILE 0x206E0 0x1D20
append  # Append OFF
 encryption CRC 0xEDB88320 "32 -1 -1 0 0 1"
log MEMORY_FILE2 OFFSET SIZE MEMORY_FILE
encryption "" ""
set NEWCRC long QUICKBMS_CRC
 goto 0 MEMORY_FILE
put NEWCRC long MEMORY_FILE
 log "rf4_sXX.sav" 0 0x22480 MEMORY_FILE
CleanExit

Comments