Online tool to convert Saturn saves (Saroo, emulator, MiSTer, Pseudo Saturn Kai)

Hello, I just released some online tools for converting Saturn save files that I think may be helpful:
The "individual save" format is .BUP for compatibility with psuedo saturn kai.
The Saroo converter can merge new saves into an existing Saroo file so that you don't lose your other saves when adding a new one.

So far I've only added support for mednaden (which writes out standard Saturn files). I know there are many other Saturn emulators out there, and I'm curious if there are others in mainstream usage which have different save files. The proliferation of other emulators is also why I included a link to @KnightOfDragon's save converter, since it already does a great job of converting between those formats.

The site is free, has no ads, and is and open source. All the code can be found here: GitHub - euan-forrester/save-file-converter: Converter for retro console save files to and from MiSTer, flash cartridges, Nintendo Switch Online, and save states from online emulation websites. Convert .srm to .sav and .sav to .srm. Convert files found around the Internet: All common formats for NES/SNES/GBA/N64/TG16/SMS/Genesis/Neo Geo/PS1 supported. Decrypt PSP saves.

I'm new to this forum but during my research for these features I found many posts by members here which were very helpful in helping me understand how these formats work. So thank you very much!

Please let me know what you think, and if you run into any issues using the site!
 
if you have the BUP done, the way the others work is they extend each byte to 16bit. Some fill the high byte with 0xFF, others with 0x00. Mednafen files can be zip compressed, so you may want to implement that.

The annoying part comes with memory card saves. Some have 64byte blocks, others have 256byte blocks (maybe 512, can't remember if this number is with the pad or without).
 
Oh, nice -- thanks for that! Sounds pretty straightforward to implement if the time comes. I'm a little wary about cluttering the interface too much, and I'm happy to point people to your converter, so I'm curious to see how the feedback will shake out.

And yeah, I implemented the compression for reading mednafen cartridge save files. I don't write out a compressed file because some other devices may not want the file compressed, and I noticed that mednafen will read in a non-compressed file just fine (and then replace it with a compressed one).

By memory card saves you're referring to the backup cartridge? I wasn't aware that there was anything other than 0x40 byte blocks for internal memory saves and 0x200 byte blocks for backup cartridge saves. The surprising bit there for me was that mednafen fills the first block slightly differently than the BIOS does for the backup cart. That tripped me up a bit.

Thanks for all your work on your converter, and for your various posts across the Internet that I learned from as I was doing this. I'd love to see the source for your converter sometime! Particularly your algorithm for figuring out how many blocks a save takes up, given that the block list itself counts towards the total number.
 
Last edited:
Back
Top