I’ve recently been trying to find the best ways to create backups of savedata from my old game consoles. There’s no one, unifying process for this – different consoles store their data in different ways, so solutions here are typically console-specific.
This page is designed to provide an overview of the methods that seem easiest for each console. I’m not going to do in-depth instructions for any specific console, but will outline the process and provide links to specific resources that can explain better than I can. Hopefully, this will be helpful if you are trying to do the same thing.
Note: This page is a work-in-progress and will be updated from time to time as I look at different consoles or try different methods. This is not going to be an exhaustive list – I am mainly looking at consoles I have owned and still have access to.
Note: Throughout this page I will use the term savedata. Broadly speaking, this refers to save games / user data associated with various games. Different consoles, games, and communities typically use varying terms. I will use the term savedata throughout this page for consistency (which may then be inconsistent with the underlying links and resources).
Why Backup Savedata?
Savedata is stored in a variety of ways, by different consoles and different games. The one thing that is common to most, however, is that eventually that data will be lost. There are several reasons for this:
- Battery-backed memory (i.e. SRAM or similar) – when the battery dies, the data is lost
- Flash and EEPROM based memory can degrade over time
- Physical loss – you might lose the console or memory cards
Backing up the savedata can prevent these types of data loss from being a problem. Whether or not it’s a problem worth solving is up to you – here are a few reasons why you might want to do this:
- You’re sentimental about this data and want to be able to access it in future
- There’s something there that you achieved that you feel is worth preserving
- You want to start a new game but don’t want to lose the existing savedata
- You want to use your existing savedata when playing the game in an emulator
So, what’s meant by backing up, then? Well, for me, backing up savedata means that I have a digital copy of the data that I can store on a computer. From there you can choose to protect that data however you’d like – make copies of it, put it in the cloud, use a local NAS, and so on. The point is that you’re no longer relying on the original console’s storage.
The N64 stores save data in a few different ways, and different games can require different backup methods. Broadly, games can store data in the following locations:
- On the game cartridge itself, which can be either
- SRAM (battery backed, data lost when battery dies)
- EEPROM or Flash (should persist for a long time)
- On the N64 Controller Memory Pak (battery backed, data lost when battery dies)
There’s a handy list that breaks down where different games store their save data here. As can be seen, some games store save data in non-volatile memory that will last a long time, and others use battery-backed SRAM that has a limited lifespan.
N64 Memory Pak
The Memory Pak connects to the N64 through the controller, and can be read by some N64 controller USB adaptors. One such adaptor is the Raphnet V3 adaptor, which I have used and worked well for me. There is a companion computer program that allows reading and saving the contents of the memory pak.
- The memory pak to backup
- Working N64 controller
- Raphnet V3 adaptor
- PC with Raphnet V3 software installed
N64 Game Cartridge
The Cart Reader Arduino Shield supports reading savedata from N64 game cartridges. I have not tested this yet but it looks to be the best solution that is currently available.
The GameCube stores savedata on removable memory cards. These memory cards use flash memory in various sizes to store savedata, and should have a relatively long lifespan.
Nintendo GameBoy / Color / Advance
Most GameBoy & GameBoy Color games that can save use battery-backed SRAM. When the battery fails the savedata is lost. Depending on the age and storage of the cartridge this may have already happened.
Most GameBoy Advance games that can save use non-volatile EEPROM. This should persist for a long time and should still be readable now.
There are a number of USB cartridge readers for GameBoy / GameBoy Color / GameBoy Advance game cartridges. I have used the InsideGadgets GBxCart RW to retrieve savedata from a number of games from these consoles. There is a guide for doing so here.
The GameBoy Color game I tested reading from had an expired battery and the data was lost. All GBA games had data that could be retrieved successfully.
- GB/GBC/GBA Cartridge to backup
- GBxCart Reader/Writer
- PC with GBxCart software installed
Sony PlayStation 1
The PS1 stores savedata on removable memory cards. These memory cards featured 1MB of flash memory, which does not depend on a battery and should have a relatively long lifespan.
The steps described below for the PS2 also work to backup savedata from PS1 memory cards.
Sony PlayStation 2
Like the PS1, the PS2 stores savedata on removable memory cards. These memory cards feature 8MB of flash memory, which does not depend on a battery and should have a relatively long lifespan.
I have been unable to find any interfaces that allow reading a PS1/2 memory card on a PC. The method that I found to work successfully requires a working PS2 console.
The console needs to be softmodded – I found the easiest way was to purchase a memory card preloaded with the FCMB bootloader.
The uLaunchELF application allows copying files from the memory card to a USB drive connected to the PS2.
- Memory Card to backup
- USB flash drive to store backup
- Working PS2 + controller
- PS2 memory card preloaded with FCMB
Going Further – Storing & Preserving Backups
For some of the above consoles, it’s been a non-trivial amount of work to get a copy of your savedata. You may want to consider how exactly you plan on storing and protecting that savedata now that you’ve got it. Here’s a few ideas that I’ve found to be handy.
First off, a lot of the concerns that we had about data becoming corrupted can still happen – just because it’s off of the console doesn’t prevent this from happening, and whether you’re storing this savedata on your PC, in the cloud, on a USB flash drive, or somewhere else, corruption is always possible.
How can we tell if corruption of your savedata files has occurred? Well, the common way to detect that files aren’t corrupted is to use a checksum. A checksum is just a fancy number that describes the contents of a given file. If the file changes in any way, then the checksum will also change – so by generating and storing a checksum of the file now, we can detect if the file gets corrupted later.
Of course, this can be a bit of a bother to do – you’d need to generate a checksum for each file, store that checksum, and compare it later to check for corruption. Fortunately, there are tools that we can use to make this easy.
My preferred solution is to use 7zip to create a compressed archive of my savegame data for each console. There are a number of reasons that I like this approach.
- 7zip generates a checksum for each file it archives, makes it easy to view this checksum, and will give an error message if it detects that the file has become corrupted
- Compressing the files can significantly reduce the disk space they take up – even though old consoles tend to generate relatively small files by modern standards, this is still nice
- An archive lets you bundle up multiple savegame files and folders into a single file, keeping everything in the one place
- An archive enforces some degree of read-only access – if you want to modify the files, you’ll need to extract them first, protecting you from accidentally modifying the savedata
- It’s easy to add any explanatory notes or photos to the archive to go along with your savedata – I like to include a text file describing the process used to retrieve the savedata, so I can remember where the data came from and what format it’s in
TL;DR – I recommend compressing your savedata into an archive with 7zip (or a similar tool), as this will reduce the size of the savedata and will allow you to detect if that data ever becomes corrupted. Store this archived data in more than one location, and if one copy ever reports corruption you can use the other.