save-file-converter
save-file-converter copied to clipboard
Converter for retro console save files to and from MiSTer, flash cartridges, Nintendo Switch Online, and save states from online emulation websites. Convert files found around the Internet: All common...
Save File Converter
Web-based tool to convert save files from retro game consoles to different formats
Available at https://savefileconverter.com
Upcoming features
- Be able to autodetect the format of a given save file (note that raw files need their size checked, unrecognized size means invalid file)
- PS2 formats (check out https://gamefaqs.gamespot.com/ps2/536777-suikoden-iii/saves for a potential list)
- GameCube formats (check out https://gamefaqs.gamespot.com/gamecube/533008-soulcalibur-ii/saves for a potential list)
- Saturn formats
- Add ability to add/extract a single game's save to/from a RAM backup, similar to how PS1/N64 work
- What are the 64kB
.srm
files for SNES etc on thetechgame.com? Want to extract a 'normal'.srm
file from them - I need suggestions!
Contact
If you have questions, need help, or have comments or suggestions, please hop on Discord: https://discord.gg/wtJ7xUKKTR
Or email savefileconverter (at) gmail (dot) com
Donations
Everything on this site is free and open source with no advertising. If you find the site helpful and want to donate you can here:
Usecases for further thought
- Automatically add/remove header added by some flash carts (e.g. EZ Flash) given an example file
- Be able to change the size of a raw GBA save to help move between emulators
Emulators with incompatible save formats
- (GBA) Pizza Boy GBA files incompatible with mGBA (believe mGBA uses raw files)
- (PS1) Beetle HW incompatible with DuckStation
- (Saturn) SSF incompatible with Mednafen/Beetle Saturn
- (N64) Mupen64Plus Next files incompatible with Wii64
- (32X) Picodrive has its own save format (somewhere around here? https://github.com/notaz/picodrive/blob/1d366b1ad9362fd463c42979c8a687dfc7f46c46/platform/common/emu.c#L873)
Other feature ideas
- Convert to Wii VC
- Convert to/from Wii U VC
- Convert to/from 3DS VC
- Split/recombine Sega CD save files
- Split/recombine GBA emulator save files (Goomba/PocketNES/SmsAdvance)
Save file formats
- Retron5
- https://www.retro5.net/viewtopic.php?f=5&t=67&start=10
- GameShark (GBA)
- (partial): https://gbatemp.net/threads/converting-gsv-or-sps-files-to-sav.51838/#post-664786
- (reading): https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gba/GBA.cpp#L1025
- (writing): https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gba/GBA.cpp#L1146
- (partial): https://github.com/mgba-emu/mgba/blob/master/src/gba/sharkport.c
- GameShark SP (GBA)
- (reading): https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gba/GBA.cpp#L1078
- GameShark (PS2)
- (partial): https://www.ps2savetools.com/documents/xps-format/
- PS2
- Save Tools: https://www.ps2savetools.com/
- Save tool:
- http://www.csclub.uwaterloo.ca:11068/mymc/
- https://github.com/ps2dev/mymc
- Memory card format: http://www.csclub.uwaterloo.ca:11068/mymc/ps2mcfs.html
- Use PS2 files on PS3: https://github.com/bucanero/apollo-ps3
- Convert PS2 formats: https://github.com/bucanero/psv-save-converter
- Wii Virtual Console save game format (note that the files are encrypted)
- https://wiibrew.org/wiki/Wii_Savegame_Parser
- https://wiibrew.org/wiki/Savegame_Files
- https://wiibrew.org/wiki/FE100
- https://hackmii.com/2008/04/keys-keys-keys/
- https://github.com/Plombo/segher-wii-tools
- (writing) https://github.com/Plombo/segher-wii-tools/blob/master/twintig.c
- https://github.com/Plombo/vcromclaim
- https://github.com/JanErikGunnar/vcromclaim
- Wii U Virtual Console:
- https://github.com/mstan/SaveAIO
- PSP save file decryption/encryption (note that some files require a per-game key):
- https://www.psdevwiki.com/ps3/PSP_Savedata
- https://github.com/BrianBTB/SED-PC (PC application that decrypts/encrypts saves)
- https://github.com/cielavenir/psp-savedata-endecrypter (improvement to SED-PC that works with "mode 4" (whatever that is???))
- https://wololo.net/talk/viewtopic.php?t=37556 (PSP plugin that dumps a game's key)
- https://github.com/TheHellcat/psp-hb/blob/master/SavegameDeemer_620TN/deemer_hooker/main.c#L204 Code for a plugin that does this. It intercepts the call to save the game, and writes out a copy of the save in plaintext, plus the key
- https://wololo.net/talk/viewtopic.php?p=137153&sid=37bd385d91e7c2d89cf1ff8d70e8c640#p137153 Discussion saying that you need to either use a plugin, or parse the executable for look for code around a certain system call to figure out what value is being passed to it
- I can't seem to find an online list of game keys, and requiring users to install a plugin on their PSP then type a gamekey into the interface seems like too much to ask.
- https://github.com/hrydgard/ppsspp PSP emulator
- https://github.com/hrydgard/ppsspp/blob/master/Tools/SaveTool/decrypt.c This decrypts a savegame file
- https://github.com/hrydgard/ppsspp/blob/81b5e080ff885e98b5761632158457ce3e5d1fb5/Core/HLE/sceKernelModule.cpp#L1251 The code before here decrypts the executable
- https://github.com/euan-forrester/psp-encryption-webassembly Copy of the relevant code in PPSSPP, compiled into webassembly
- NES/SNES Classic save game format
- https://github.com/TeamShinkansen/Hakchi2-CE (tool used to write games onto the devices)
- https://github.com/JanErikGunnar/ClassicEditionTools (scripts to convert raw saves to/from NES Classic format)
- http://darkakuma.z-net.us/p/sfromtool.html (convert SNES ROMs and/or saves to the SNES Classic ROM and/or save format)
- I'm not sure there's enough demand for a web-based tool that does this. The devices aren't available for sale anymore and you already have to run a Windows program to transfer the games. Also the Windows tool for the SNES Classic has the ability to convert saves already.
- PS1:
- https://www.psdevwiki.com/ps3/PS1_Savedata
- MemcardRex format: https://github.com/ShendoXT/memcardrex/blob/master/MemcardRex/ps1card.cs
- DexDrive format: https://github.com/ShendoXT/memcardrex/blob/master/MemcardRex/ps1card.cs
- Signing a PSP .VMP file: https://github.com/dots-tb/vita-mcr2vmp
- PS3 format: https://psdevwiki.com/ps3/PS1_Savedata#PS1_Single_Save_.3F_.28.PSV.29
- N64:
- https://github.com/bryc/mempak
- https://bryc.github.io/mempak/ (online preview)
- https://github.com/bryc/mempak/wiki/DexDrive-.N64-format
- https://github.com/bryc/mempak/wiki/MemPak-structure
- https://github.com/heuripedes/pj64tosrm (convert raw save to emulator format)
- http://micro-64.com/database/gamesave.shtml (list of games which use each save type)
- https://www.reddit.com/r/n64/comments/ezhleg/guide_how_to_backup_your_n64_saves_to_your_pc/
- https://www.youtube.com/watch?v=PpolokImIeU (convert individual note to .eep format)
- https://github.com/ssokolow/saveswap Swap endianness of N64 saves to move between Everdrive/emulators/etc
- Game serial codes:
- https://niwanetwork.org/wiki/List_of_Nintendo_64_games_by_serial_code
- https://meanwhileblog.wordpress.com/n64-game-code-list/
- https://github.com/bryc/mempak
- 3DS Virtual Console
- SNES games: https://github.com/manuGMG/3ds-snes-sc
- The tool above apparently works on some WiiU VC games as well: https://gbatemp.net/threads/release-3ds-snes-save-converter.574927/
- Pokemon saves: https://sav2vc.fm1337.com/
- https://github.com/mstan/SaveAIO
- Sega Saturn
- https://github.com/hitomi2500/ss-save-parser
- Gamecube
- https://github.com/kwsch/PKHeX (Save editor for Pokemon games. Can apparently parse GCN files among others. Needs a closer look)
- Flash carts:
- Goomba emulator (for GB/C games on GBA flash cart)
- https://github.com/libertyernie/goombasav (save converter)
- https://github.com/masterhou/goombacolor/blob/master/src/sram.c
- https://www.reddit.com/r/everdrive/comments/qcgus7/using_a_gba_x5_goomba_sram_save_file_on_a_gbc_x7/****
- N64 Everdrive
- https://github.com/ssokolow/saveswap
- GB/C emulator: https://github.com/lambertjamesd/gb64/blob/master/src/save.c
- Goomba emulator (for GB/C games on GBA flash cart)
- Sega CD:
- Sega operating manuals
- Standards that games were to use when interfacing with backup RAM: https://segaretro.org/images/6/6e/Sega-CD_Software_Standards.pdf
- BIOS calls that games were to use to access backup RAM: https://segaretro.org/images/4/44/MCDBios.pdf
- https://segaretro.org/CD_BackUp_RAM_Cart
- https://github.com/ekeeke/Genesis-Plus-GX/issues/449
- savesplitter tool here: https://krikzz.com/pub/support/mega-everdrive/pro-series/
- Sega operating manuals
GBA save file size difficulty
- https://zork.net/~st/jottings/GBA_saves.html
- https://dillonbeliveau.com/2020/06/05/GBA-FLASH.html
Real-Time Clock save format
- https://bgb.bircd.org/rtcsave.html
Some platforms (e.g. some MiSTer cores) append RTC data to the end of a save file. The above link describes a common format for RTC data.
Offline use
Occassionally there's a need to use the tool offline, such as when you'll be without an Internet connection for an extended period. There's 2 methods to achieve this:
Method 1: Use a website saving tool
You can't just right click on the page and select Save As... because the site is divided internally into many different files, and that will only download some of them.
Google website saving tool
or something similar to find an up-to-date list of such tools.
Method 2: Build it locally (for people comfortable with the command line and development tools)
You may need to modify some of these steps depending on your development environment, but this should give you the general idea.
MacOS/Linux
Install homebrew
: https://brew.sh/
brew install yarn
brew install git
Then proceed to the Common section
Windows
Find an equivalent package manager to homebrew
, and use it to install git
and yarn
(or install them and their dependencies manually: git
: https://github.com/git-guides/install-git, yarn
: https://yarnpkg.com/getting-started/install)
Then proceed to the Common section
Common
git clone [email protected]:euan-forrester/save-file-converter.git
cd save-file-converter/frontend
yarn install
yarn serve
Then open http://localhost:8080/ in your browser.
Note that you'll have to keep the command line window open with yarn serve
running for as long as you want to access the site.
Internet archive
If you need to, you can also access the site via the Internet archive here: https://web.archive.org/web/https://savefileconverter.com/