Manual / Guides for v1.6

Here is the reference manual for users of PJ64, based closely off Project64.chm included with the emulator but here we can keep working on it to make it better!

The cheat system has been supported on its own website, we aim to merge this soon

  • Requirements

    Minimum and recommended systems for running Project64.
  • Installation

    Help with installing PJ64 for the first time, adding plugins, games, through to removing PJ64 from your system or moving to another PC.
  • Using Project64

    Quick guide to basic tasks in PJ64
    • Main Window

    • Using the ROM Browser

    • Resetting games

    • Saving & loading game progress

      There are two main types of save that you need to know about:


      General 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 and input plugin configuration).

      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 11 slots, so don't worry about one game overwriting another.

      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 & Exporting game saves

    • Cheating

    • Taking Screenshots

    • Stopping and changing games

    • Multiple instances

    • Keyboard Shortcuts

  • Configuration: Project64 application

    Guide to setting up and tweaking the Project64 main program, including all the Settings tabs.
  • Configuration: Jabo Direct3D8

    Guide to setting up and tweaking the Project64 video plugin.
  • Configuration: Jabo DirectInput

    Guide to setting up the Project64 input plugin.
  • Configuration: Jabo DirectSound

    Setting up the default audio plugin.
  • Reference

    in-depth information that doesn't fit anywhere else! verifying ROMs, GUI translation, how PJ uses support files, etc.
  • Troubleshooting

    Having stability or graphics, sound or speed problems? Here's how to go about solving almost any problem yourself.
  • Error Messages

    Help with common error messages, what they mean, how to make them go away!
n64 usb