Releases: mntorankusu/N64-SwapDumper
Save Restore (v0.3 / Shrk)
Major changes in this version.
Disclaimer:
- I have tested this to the best of my ability, but I am not able to test every game in the N64 library. I have successfully dumped and restored saves from at least one game of every save type, but I still can not guarantee that the save restore function works correctly in every case, for every game, on every system. Before restoring a save, PLEASE make sure that the dumped save is good by loading it and playing it with your flash cart or an emulator, and keep a safe backup. If you experience save data corruption when trying to restore a save, open an issue here and I will do my best to fix it. As long as you checked your dump before restoring and kept a safe backup of the file, you'll be able to restore it once the issue is fixed.
Known issues:
- There is a potential issue for games that use padded/mirrored 4Kbit saves on 16Kbit EEPROM chips. Because at least some of these games are in flash cart metadata as using 4Kbit EEPROM chips, flashcarts may refuse to load the raw 16Kbit save dump. This is actually not an issue with the save dump, but an issue with the metadata. This will not prevent the save from being restored properly, but it makes it more difficult to verify that it is a good dump. If your flashcart refuses to load the save, you will need to manually trim the save down to 4Kbit if you want to use it. While testing, I added an override for Kirby 64 specifically to treat it as 4Kbit, but I'm not yet sure if there's a good general fix.
Changes:
-
The text UI has been replaced with a very tiny version (scaled up) so that we can use an incredibly small frame buffer. This does have a negative impact on readability, but this, combined with a few other changes to reduce RAM usage, has increased the size of our ROM buffer by around a megabyte. Combined with compression, this allows most games to now be dumped in a maximum of (Game Size in MB) / (System RAM) chunks (particularly if you have an expansion pak). For example, Majora's Mask (32MB) can now be dumped in only 4 chunks on a system with an expansion pak, despite not being very compressible.
-
Addition of resume function for interrupted ROM dumps. When saving a chunk to the SD card, a metadata file is also added/updated. If your system powers off in the middle of a dump, the next time you attempt to dump the same game, it will ask if you'd like to resume the previous dump or start over.
-
Addition of save restore function. Saves in the active save directory (currently SD:/dump/saves) can be selected to restore to a cartridge. It's a little clumsy for the moment because saves are identified only by the file name, which is the 4-character product ID plus the revision letter (i.e., CZLE for Ocarina of Time (E) v1.0, CZLJA for (J) v1.1, etc). The program will check that the game matches the save you are attempting to restore, but it will not prevent you from doing so if at least the first 3 characters of the product ID matches. Examples:
-
- CZLE.sav -> CZLE = OK
-
- CZLE.sav -> CZLJ = Warning
-
- CZLE.sav -> CZLEA = Warning
-
- CZLE.sav -> NZSE = No.
-
- There are a couple of edge cases where the product code differs in more than just the region identifier (like CZLJ/E -> NZLP for Ocarina of Time because of the removal of N64DD support) where this current system will prevent you from restoring a save cross-region. If you really want to try it, you can rename the file.
-
Addition of save clear function. You can erase the save data on your cartridge if you want to. It will confirm several times that this is what you really want to do before it does it. Don't get upset with me if you delete your save data and then regret it later. Always dump and keep a backup of any data you care about!
Incremental Improvements (v0.2 / Shark Week)
This version has some small but important improvements.
-
The cartridge info screen now shows more info, including revision info and the ROM header checksum, so the tool can double as a cartridge identifier even if you are not planning on dumping anything. Different revisions of the same game will receive different filenames now, too, instead of overwriting each other.
-
A full CRC32 checksum is calculated before and after dumping to make sure that the ROM on your SD card matches the cartridge exactly.
-
If sd:/dump/ and/or sd:/saves/ exist, files will go there now. Otherwise the dumper falls back to the SD root. Save dumping now also warns before overwriting an existing save.
-
Compression speed has improved while keeping the compression ratio essentially the same.
-
The ROM size selector now includes 40 MB as an option. Not sure if any other ROM sizes are still missing.
First Release (v0.1 / Baby SharkSaver)
First release. Based on sharksaver64 by @Jhynjhiruu @ppcasm @Modman
Only tested on SummerCart. If you dare to try it, please report any issues you find. To use, run the application on your flash cart and follow the on-screen prompts. While there are two dumping modes available, the hardware for the accessory slot dumping mode does not yet exist, so you must choose SD card mode.
Dumping games with this application involves swapping cartridges while the console is powered on. Only use this if you accept that you may damage your console. No warranty is provided. This software is provided as-is. Etc. I have dumped 20+ games with it already with no damage, but I can't guarantee the same success for everyone.