Difference between revisions of "Project64"

From OoT Randomizer Wiki
(remove using cheats for pause menu speed fix and use counter factor = 1 instead)
m (Pause Framebuffer Speed Fix: add untested warning)
Line 33: Line 33:
== Pause Framebuffer Speed Fix ==
== Pause Framebuffer Speed Fix ==
Open the ROM Settings window using <code>Ctrl+T</code> and set "Counter Factor" to "1".
Open the ROM Settings window using <code>Ctrl+T</code> and set "Counter Factor" to "1". This setting is not well tested at the moment. Use at your own risk.
== Crash Mitigation (2.x Only) ==
== Crash Mitigation (2.x Only) ==

Revision as of 18:58, 29 December 2019

Originally written by Tyrus

Project64 is no doubt the most popular N64 emulator available. While you may think that this means it is the best emulator to use for Ocarina of Time Item Randomizer, you would unfortunately be mistaken. As racing is a large focus for the community you have to take stock of the rules of the racing websites which prohibit Project64 2.0 and higher.

If you're thinking "I don't race anyway, so I don't have to worry," unfortunately you are incorrect once more. Project64 has quite a few issues that are either game-breaking, or annoying to deal with. First, Project64 targets emulation speed over emulation accuracy which means it will take shortcuts when reading the game code and make assumptions. Some of these assumptions are no longer valid for the code randomizer uses instead and so will behave incorrectly, and even go as far as to crash. It is for these reasons that Ocarina of Time Item Randomizer support and staff do not recommend using Project64 and refuse to support it outside of exceptional cases.

If you want to try to use or race with Project64 1.6 anyway, you can fix the pause menu delay without using a cheat which is allowed for races. This setting is not well tested yet and may cause further issues, so be warned.

The following settings for Project64 2.0+ seem to mitigate these issue as much as possible, but we do not guarantee you won't still run into issues. Issues with Project64 are not considered actual bugs for the randomizer and the developers are unlikely to try and fix these issues as many of them are unlikely to even be fixable without modification to Project64. All that being said, if you are using Project64 You will have to complete fix unhandled exception error and fix the pause menu delay steps for each and every newly randomized ROM you use on all versions of Project64, and crash mitigations on Project64 2.x.

Download Project64

To get rid of the donate box that you have to wait 30 seconds for, click ‘Enter notification code’ and type “thank you from project64”.

Unhandled Exception Error

Open the ROM. You will get this error message:

PJ64 1.png

Click 'OK' and another error message will pop up:

PJ64 2.png

Click 'OK' once more, and then press Ctrl + T The following menu will appear:

PJ64 3.png

Untick 'Hide advanced settings' Then click on the 'Advanced' menu that just showed up.

PJ64 4.png

Pause Framebuffer Speed Fix

Open the ROM Settings window using Ctrl+T and set "Counter Factor" to "1". This setting is not well tested at the moment. Use at your own risk.

Crash Mitigation (2.x Only)

Click 'Config: THE LEGEND OF ZELDA' as seen in the image below. If it’s not there, load up the ROM and look again (Press Ctrl + T after dismissing the 2 error messages).

Where it says 'Memory size' go ahead and change that to 8 MB, deselect '32bit Engine' and then click 'apply' and 'OK'.

PJ64 5.png

Now click the + next to "config: THE LEGEND OF ZELDA" and then click "Recompiler" (as seen in the image below)

Deselect 'Cache', 'PI DMA', 'Start changed' and 'TLB unmapping'. Select 'Protect memory' and then click 'apply' and 'OK'.

PJ64 Setup Step 3.png

Change Graphics Plugin (2.x Only Without Additional Setup) (Optional but recommended)

Press Ctrl + T and click 'Plugins' and change the Video (graphics) plugin to 'Glide64 for PJ64'. Click 'Apply' and then 'OK'.

PJ64 9.gif

Restart Project64

Once you have completed these steps, restart Project64 and open up your ROM.

Configure Controller

Click ‘Options’ and ‘Configure controller plugin’

PJ64 11.png

Here is where you setup your controller binds.

For xbox controller users:

  • In ‘Controller Pak’, untick ‘RawData’, and in the drop down menu, select ‘MemPak’.
  • Tick ‘XInput’, and your binds menu will look like this: The ‘XControls’ correspond to the buttons on your controller, and ‘N64’ is what they will be bound to in-game.

PJ64 10.png

For keyboard users I recommend setting Analogue stick range to 100%, and in ‘Devices’, set ‘Gamepad Deadzone’ to 5%. These settings will make it easier to aim.

For users of any other controller my only recommendation is to check out the multitude of other guides on the Internet.

If you want to use a mouse, for some reason, tick 'N64 Mouse'.


  • Toggle limit fps (fast forward): f4
  • Toggle pause: f2
  • Save State: f5
  • Load State: f7

Required: Managing your Save data!

Old versions of Project64

Old versions of Project64 use the same '.sra' file for all OoT ROMS, regardless of if they're randomised or not. If you've loaded a vanilla ROM before loading a randomized ROM, then you must first delete 'THE LEGEND OF ZELDA.sra' in 'C:\Program FIles\Project64\Save'. Failure to do so will result in numerous gameplay bugs.

If you do not load a vanilla ROM before loading a randomized ROM, you can just delete the save files in-game.

Project64 v2.3.2


Tick 'Unique game save directory' to avoid having to mess with the Save Files stored on your computer's HDD when switching to another Ocarina of Time ROM.

Need additional assistance?

If you have any further issues, seek additional assistance on the Discord server. Keep in mind Project64 is not a supported emulator and you likely won't get as much, nor as quality help as you would if you were using one of the supported emulators.