One of the earliest Saturn emulators is still going strong after it got an update last weekend — its third since the beginning of the year.
The emulator, SSF, didn’t get an update in all of 2023 and most of 2022 before its longtime developer, Shima, uploaded a new version to his Github in January. All of SSF’s updates dating back to January 2021 can be downloaded from there.
Shima calls each of this year’s updates “preview” versions, essentially betas. It doesn’t appear that a version he’s comfortable calling a full release has come out in years.
SSF will celebrate its 25th anniversary this year, with December marking the first publicly available version back in 1999.
One of the biggest additions to SSF this year is support for Action Replay cheats. The functionality can be enabled by choosing the emulator’s Option menu at the top, then Option again, then going to the Program4 tab and ticking the “Enable Cheat” checkbox.
Once that box has been checked and the emulator is restarted, if a game is run that corresponds to a folder with CHT file in the emulator’s “Cheat” folder, it’ll automatically enable all the cheats in that CHT file. The folders are named after the games’ product codes, like T_1101G being Layer Section’s.
Shima has included cheats for four games with the latest version of SSF, R31: Layer Section, Thunder Force V, Space Harrier and Darius Gaiden. Presumably, CHT files for other games should work, too.
A few of the games running on the 64-bit version of SSF version R31.
Another new feature in SSF is the ability to search a game’s memory while it’s running — a particularly useful function for anyone looking to hack or translate a game. In January, Shima posted on X in his native Japanese to explain how to use it.
“If you turn on Enable Debug in the Program4 tab, the memory search function is enabled (you need to quit and restart). Enabling it makes the process slower…
— Shima, translated into English via DeepL
The address you specify for Modify in memory search is a cache area. Note that specifying a cache through area will cause the app to crash. Also, specify 0xc0000000-0xc00007ff for master SH2 and 0xd0000000-0xd00007ff for slave SH2 for the CPU data array.
For memory search, enter the value you want to search in the Value field of Search, check the memory area and memory width to search, and click the Search button to search. If you specify a different value from the previous search result, you can narrow down the search even further.
Also, if you check “Compare Previous Value” and specify “Less,” you can narrow down your search to memories that satisfy the specified conditions from the previous search results. For example, if you check “Compare Previous Value” and “Greater,” you can narrow down your search to only those memories that have increased in size since the previous search result.
Clicking on an address in the Memory Search Result window opens the Cheat window, which allows you to rewrite memory values and enable a simple Cheat process.
Also, when double-clicked, an item is added to AccessM in the menu to monitor the Read&Write timing of the double-clicked address. For example, if you check the Read checkbox, the debug console will show the memory value, PC value and PR value at the time you read the specified address.
Press F11 to output the current memory contents to the DebugData folder. It also outputs the reverse assembly of WorkRAMH and WorkRAML.
The reverse assembly is displayed on the right of Memory Search Result, so if you specify the address of the program area in Memory Modify, it functions as a simple reverse assembly.
Double-clicking on the address of the reverse assembly adds an item to AccessP that monitors the timing of the passage of the address.
If checked, the debug console will display the instruction’s memory access address, data, etc. each time it passes through the specified address.”
The most recent version, R31, also added a 64-bit executable for SSF. Previous versions had used a 32-bit EXE, and that file is still included in the download. Shima said on X that “it may not have much advantage over the 32-bit version” so he may not have made any strides yet to take advantage of the additional system RAM that can be accessed by a 64-bit executable.
Leave a comment