Release: SFROM Tool v1.2.0.0

Saturday, November 30, 2019

This release is long overdue!

Originally, I avoided it in favor of unofficial builds as I wanted the next version to be completely cross platform. But, as I have gotten no feedback on the Mac/Linux builds... I just haven't cared to try keeping them up-to-date with the Windows version. Avalonia, the WPF alternative UI library I use for those, is also a limited annoying pain in the ass to work with too. So I don't much care for working on those atm...

Anyway. The major changes in this build include. Drag and Drop support. Zipped ROM support. Switch SFROM support. And 3DS data.bin support.

The Switch .sfrom support is the biggest thing. As soon as the SNES Switch Online app came out I did my best to figure it out asap. I released a un-offical build as soon as I could, but as I had not figured out most of the params, I didn't want to release the real build yet. But now things are different! And while I may not have a perfect understanding of every parameter... I think I have a suitable enough grasp for a release.

I'll be posting a write up of my journey to figure out and document the new format soon.

Additionally, the 3DS support is important. It was always something I "could" do. And in the case of importing, I DID do it for my debugging/development code. But I never though there was a need for it until a couple months ago. I was asked about it, and told of the need. I was already working on support for the new .sfrom format... so it was nothing much to additionally work on support for the 3DS too.

Here's the changelog...


New Undo/Redo patch generation from the command line.

Drag and Drop support for .sfc/smc, .sfrom, .bin and .cnp.

Support for zipped ROMs.

Minor fix to recalculate romMapOverride after patching, for non-cnp database generations.

Fix for VAR data start location when no VAR data is used.

Fixed SDA data being lost when editing a .sfrom.

You can now select, open, and save .sfroms that are .7z compressed.

Fixed a bug where non-VC/PCM/SDA/SRCF type patches from .cnps would always get applied, regardless if they were checked or not.

Added Switch SNES Online format .sfrom support. Both importing and exporting.

  • The unique Switch format footer params are on their own tab in the Advanced window.
  • The params that are shared among SNESC format header values are in the General tab.
  • Drag and Drop does work with both formats.
  • If you want to save it as a switch .sfrom format, you have to select that option. No way to auto-detect that like importing.
  • This CAN make SDD1 games in the Switch format.
  • This defaults all attempts to use 0x0000 as the Preset ID to 0x1000, at least when saving as a switch .sfrom. (0x0000 does not work on switch!) 
  • CNP patches can now supply switch footer params.
  • Added a small automatic feature that checks and changes the internal headers ROM size value when poorly made patches that expand a ROM fail to do that. This fixes some translation/hack compatibility issues.
  • I set a few VC/CC titles in the internal database to have some switch footer defaults. Kind of as a test for now.

Added support for 3DS data.bin's. Importing and exporting.Unlike the switch .sfrom support, there's not much to say about this as these are very much just like SNESC/WiiU .sfroms already. Just arranged differently.

Small tweak to the .cnp format to help address some issues with games using pal2ntsc patches on 3DS. Re-download Robins patches for such games like Terranigma!

Finally switched to using a ROM header scoring routine, rather than the completely custom original piece of crap I wrote and kept having to apply band aid fixes to.

Fixed the backup device header detection, while also making a change. If you use a headered ROM and add a custom IPS patch it will be assumed that the selected IPS is meant for a headered ROM. Always read your patches readmes! In general, its still recommended to use headerless ROMs and behead IPS patches.

Probably other minor changes I'm forgetting...

This "might" be the last major version of this tool. Simply because, I don't know what more I can do with it. I will of course address issues as I can, or tweak a couple things as I learn something new, but I don't think there's going to be anything to big left to add in the near future. Maybe new switch footer params? Maybe BPS/UPS support? IDK....

I suspect that, by the time I'd need to update this, I'll be working on its integration with CaVE at a code level instead. When I do that, I plan to make some major overhauls to the code. The database setup right now isn't holding up how I'd like, and I think it could be MUCH better. Same with the .cnp format.

But I won't abandon updating SFROM Tool until CaVE supports SNESC/3DS/WiiU too. Who knows how long it will take me to get to that! I have enough tasks to worry about for switch support for the time being, and there are tools for the rest already so theirs no urgent need.


Post a Comment