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

Gamemaster1379

Well-Known Member
OP
Member
Joined
May 5, 2008
Messages
802
Trophies
1
Age
28
Location
United States
Website
1379tech.110mb.com
XP
1,908
Country
United States
https://github.com/mstan/SaveAIO


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,
General chit-chat
Help Users
  • No one is chatting at the moment.
  • SylverReZ @ SylverReZ:
    Hope they made lots of spaget
  • K3N1 @ K3N1:
    Chill dog
  • SylverReZ @ SylverReZ:
    Chilli dog
  • Skelletonike @ Skelletonike:
    Damn, I'm loving the new zelda.
  • xtremegamer @ xtremegamer:
    loving the new zelda, i started a game, it was so fucking good, so i
    am waiting on my friend to get home so we can start a new one together
  • Skelletonike @ Skelletonike:
    I just dislike that they don't let me choose the voices before the game starts. Happened with botw as well, had to change to japanese and restart.
  • K3N1 @ K3N1:
    But the important question is can you choose gender
  • Skelletonike @ Skelletonike:
    Same way you can choose Gerald's gender.
  • Skelletonike @ Skelletonike:
    *Geralt, damn autocorrect.
  • Psionic Roshambo @ Psionic Roshambo:
    But can he be trans? Lol
  • K3N1 @ K3N1:
    Zelda transforms into link
  • Psionic Roshambo @ Psionic Roshambo:
    Link I'm not the princess your looking for.... *Pulls a crying game*
  • K3N1 @ K3N1:
    *skirt up* it's exactly what I always wanted
  • Skelletonike @ Skelletonike:
    Just scanned all my zelda amiibos, took a while but didn't get anything that cool, did get the lon lon ranch hylian fabrics though.
  • Skelletonike @ Skelletonike:
    It was pretty funny when I scanned wolf link and got a shit load of meat.
  • K3N1 @ K3N1:
    @Skelletonike, btw I ran that custom for mgs4 on the deck I'm amazed it got that far in game
  • K3N1 @ K3N1:
    Plug in*
  • K3N1 @ K3N1:
    Your favorite activity
  • BentlyMods @ BentlyMods:
    My fav actvity is:

    mario-dancing.gif
  • Psionic Roshambo @ Psionic Roshambo:
    Do the Mario lol
  • K3N1 @ K3N1:
    🍑
  • K3N1 @ K3N1:
    Whoever developed Bramble was smoking that good shit fucking gnomes
    K3N1 @ K3N1: Whoever developed Bramble was smoking that good shit fucking gnomes