Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Fix save file checksum / hash for Rune Factory 4

Featured Replies

  • Author
  • Localization

HenryEx, posted Mon Sep 21, 2020 2:39 pm (58805)


I had this for a long time and never put it out there, but with the recent re-release of Rune Factory 4 for the Switch, maybe someone else could find it useful. In any case, it's here for posterity.
This should work for both normal and special version of the game, and works on both the save slot files as well as the "save selection" file a.k.a the system save, which governs unlocks across saves and character names.

The save has a simple CRC32 error check that prevents modification, so a simple script is enough to fix it.

https://pastebin.com/fRvqRduA
  • Author
  • Localization

HenryEx, posted Mon Sep 21, 2020 2:39 pm (58806)


Script in full:

Code:
# 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
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.