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
  • 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.
    • Settings tab (D3D8 v1.6)

    • Advanced tab (D3D8 v1.6)

    • ROM Settings tab (D3D8 v1.6)

      Untitled Document Direct3D8 Video Configuration - ROM Settings tab

      This page covers configuration of one tab of the Project64 default video plugin. About other plugins.

      All settings on this tab are saved in the RDB and are specific to each ROM. The controls on this tab are only available when a ROM is loaded, and will only affect the currently loaded ROM. Unlike core ROM Settings, all changes take effect instantly. The emulator should be supplied with the correct settings for each ROM - do not make any changes here unless you understand what you are doing. If you mess up the settings, you must reinstall Project64 (or at least, revert to the original (or better yet, the latest official) RDB - there is no "return to defaults" button, so remember what you changed!

      1. "Emulated Width" [text box]
      2. "Emulated Height" [text box]
      3. "Direct3D Clear Mode" [menu]

      Note that there is one further setting that you should be aware of that cannot be controlled from this tab, because it works not on a per-ROM basis but on a per-calculated-uCode-CRC basis: this is detection of the RSP code simulation, or uCode detect for short , i'll cover it here this page.


      "Emulated Width" [text box]

      This refers to the native horizontal resolution of the game. This is normally autodetected correctly by the plugin, however in some cases this can go wrong, hence this control is available to allow you to force any resolution. Values must be integers (whole numbers). A sensible place to start is 320, the horizontal resolution of most N64 games.

      Note that this control cannot be used effectively when a game has dynamic or mixed resolution!


      "Emulated Height" [text box]

      Exactly as per "Emulated Width", except for vertical resolution, tends to be used more often to correct PAL resolution problems, and has a typical value of 240.

      Note that this control cannot be used effectively when a game has dynamic or mixed resolition!


      "Direct3D Clear Mode" [menu]

      Possible settings:

      • Default (0)
      • Only per frame (1)
      • Always (2)

      The default setting ("default") means none and was always used in previous versions of the plugin.

      "Only per frame" is a possible solution for games suffering from the "black layer" problem, where the whole screen is hidden behind a black layer. This was added in v1.5 for Chameleon Twist 2 and is also used for several other games.

      "Always" is a possible solution for games suffering from screen clearing problems within a particular part of the screen. It was added in v1.5 for the sky in Perfect Dark, and is also used for several other games.

      Non-default settings can cause problems with some games and should only be enabled if needed.


      Setting up microcode detect references

      Microcodes are nearly always detected correctly internally by the plugin and therefore it should not be something a user has to think about. However, the database is probably not complete and in v1.6 games can switch microcodes at any time during execution, thus the probability of a detect failure somewhere is rather high. We cannot force a particular microcode per ROM, so now the RDB file header is used. If you suffer a uCode detection failure, please refer to the RDB for an example of how to set this up.

      uCode ID uCode example(s)
      0 RSPSW Mario64, most early games
      1 RSPSW_EXT Star Wars - Shadows of the Empire
      2 RSPSW_GE Goldeneye 007
      3 RSPSW_PD Perfect Dark
      4 RSPSW_DKR Diddy Kong Racing
      5 RSPSW_RARE4 Jet Force Gemini
      6 S1DEX (sprite microcode)
      7 F3DEX1 (most later games are either this...
      8 F3DEX2 ... or this)
      9 F3DZEX2 Zelda
      10 F3DEXGB2 Conker's Bad Fur Day
      11 S2DEX (sprite microcode)

      These are all the different microcodes supported by the graphics plugin. Note that these are the real names for the microcode as taken from the game code. This is a technical subject beyond the scope of this document, it's enough for the user to know that if detect fails you should first seek an updated RDB file. Advanced users can add references themselves via the RDB. You must set the correct uCode - you either know, you ask someone who knows, or you find out by trial and error!

  • 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