This section will take you through saving & loading game progress in Project64 Legacy.

Points

  1. It is highly recommended that you make regular native saves. Although state saves usually work OK, this is not guaranteed due to many things that can go wrong in the core and memory of the emulator. Native saves are more reliable (and smaller!) than state saves. By using both methods (rather than just state saves) you have a backup if anything goes wrong.
  2. For state saving to work the ROMs must be identical - that is, the ROM that the game was saved from must match exactly the one that the state is loaded into. You may be able to share native saves between different versions of a game, but you cannot ever do this with state saves. Project64 tags state files with ROM header information and will check for and prompt you on violation of this rule.
  3. Native save files must not be Read Only, games need to be able to read/write at any time. for example if you back up your save files to a CDR, when you copy them back to your harddrive they may still be marked read-only - you must change the attributes with Windows Explorer. Project64 does not do this automatically, in case you don't want your file to be updated for any reason.

Native Saves

To understand the game data saving and loading of Project64, you must also understand the N64's own saving and loading systems (if you aren't already familiar with them), because Project64 emulates all those systems.

There are four types of save system used on the N64...

  • EEPROM (a cartridge save type), which comes in two sizes:
    • 4Kbit EEPROM
    • 16Kbit EEPROM
  • SRAM (a cartridge save type)
  • FlashRAM (a cartridge save type)
  • MemPak (an optional hardware accessory for the N64, plugs into controller*)

...which we will call the "native" N64 save systems (to differentiate them state saving, which is something entirely different, see below).

The cartridge save types use either non-volatile memory (EEPROM, FlashRAM) or a battery (SRAM) to keep a small amount of writeable memory intact inside the actual game cartridge, when the power to the console is off. Although it is on the same PCB, this save memory is physically seperate from the game ROM chips - Project64 does not write to the ROM file or anything like that. You don't have to worry about the difference between EEPROM, SRAM and FlashRAM, because all three are handled the same from your point of view. You should be aware that MemPaks, unlike that other save types, can be handled by input plugins, which is logical if you consider the original system again.

  1. Whenever an N64 game would save to or load from its game cartridge, Project64 automatically updates a file called {internal ROM name}.{type}** on your hard drive (you can configure folders to choose the location). If this file does not exist, it is created as soon as the ROM is first booted, and is the only file Project64 will use for this game.
  2. Whenever the N64 game would save to a Controller Pack (MemPak), either Project64 creates a file on your hard drive, or the input plugin manages the saving process, depending on the capabilties and configuration of the input plugin (see plugin selection).

The resulting save files will be compatible with both other N64 emulators and a real N64 system (if you possess the means to insert and extract them (see importing and exporting).

*Mempak is required by some games to save, is an optional extra in some games, is not used at all in some games. Any particular game can use any one cartridge save type, and/or the Controller Pak. This is normally handled transparently by the emulator.

** for example, you are playing the game Mario64. Mario 64 uses the EEPROM save type, and your ROM has the internal name "SUPER MARIO 64". Therefore the save file automatically created and managed by Project64 will be called "SUPER MARIO 64.eep" in your configured folder.

State Saves

In addition to emulating the native save types, Project64 is also capable of saving the entire state of itself - everything that it needs to know to recreate an exact point in time during the emulation of a particular game.

can be broken down into two types:

  1. slot saves ("Quick Save")
  2. named saves ("Save As..."

A game saved and loaded in this way does not "know" that it has been saved and loaded - it is as if the interruption never happened. This is clearly something quite different to what you can do a real N64. This is called "state saving", the resulting file is a "state save" or "saved state", and will be relatively large compared to a native save file.

State save files will not be compatible with other N64 emulators unless they explicitly support the Project64 state save file format (at the time of writing, several do). It is worth noting that a state save file will also save any errors that may have occurred and be present in the memory of the emulator, and for this reason, state saves are generally less reliable than native saves, especially over a long period of time playing.

To provide you with more flexibility in state saving, a number of "slots" are provided. A "slot" is simply a number, which is associated with a particular keyboard key so that you can select the file with a single button press. The advantage of slots is that you save switch between quickly, the disadvantage is that you might have trouble remembering what you put in each slot! Every game has its own independent set of 10 slots, so don't worry about one game overwriting another.

Default Slot0  "Game Name.pj0.zip" with a shortcut of 0

Slot1  "Game Name.pj1.zip" with a shortcut of 1, all the way to,

Slot 9 Game Name.pj9.zip, with a shortcut of 9. 

Save As... just means you can choose a filename and location for your state save file. This is good when you finish a session and want to make a note of where you were in the game.

It is normal for the system to pause for a short while while generating, compressing and writing the save file. The quicker your system, the shorter the pause.

Importing and Exporting saves....

  • ...to and from other emulators
  • ...to and from a real N64 system

Project64 is compatible with the N64 saves (not necessarily state saves) from other N64 emulators and a real N64 system, but you may need to byteswapp the files (use e.g. Azimer's saveswapper utility) and you will definitely need to rename the files to what Project64 expects (see your existing save folder for the correct file name - if you are not sure what the filename should be, save in the game anywhere a file will be created and you can use that name). The format is also explained under "native saves" above.

Using Project64 Start, Stop, Reset Games Save & Load Games Using Cheats
 
Taking Screenshots Multiple Instances Keyboard Shortcuts Troubleshooting stability
   

Return to the top