[Pre-release] SaveAIO: A tool for injecting, extracting and converting retro save files


Well-Known Member
May 5, 2008
United States
United States

So here it is: This is the first release (meaning beta and bugs!) of a project that uses JavaScript to parse save files. The package is fairly basic for now. If there's interest, I may go out of my way publish it as NPM package for people to use in their own projects.

Support is limited at the moment, but it's able to do GBA, SNES, and N64 and a bit of NES. There's a combination of extracting "proprietary saves" (Gameshark,DexDrive,etc) and then injecting extracted/stock saves into certain Virtual Consoles (GBA on Wii U is a popular one). A few other nice things like whitespace trimming/expanding.
N64 has some nice endian/word swapping too for emulator/hardware compatibility.

I wrote this in response to a number of frustrations I had with trying to create or convert certain save file types around my old flash carts, hardware, and virtual console saves.

For virtual console, some injection/extract4ion is fairly straight forward. For example, for some systems (like NES), using Saviine/Checkpoint might give you a raw file you can just rename.

In other situations, like GBA on Wii U, there are headers and whitespace to deal with. Similarly, I found some other painful cases like Nintendo 64 which is ambiguous whether it requires word or endian swapping. That's where this tool comes into play.

A lot of documentation on these was scattered, usually one off scripts people wrote or manual steps to be taken in a hex editor. I decided to cobble a fair amount of these together into a series of small class based JavaScript scripts. It tries to make interactions fairly universal, so you can do things like take a GameShark SP GBA save and inject it into a Wii U Virtual Console save in the same way you may inject an Everdrive GBA save.
Last edited by Gamemaster1379,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Gay