Project64

From OoT Randomizer Wiki

Originally written by Tyrus

This guide targets Project64 v2.x which is banned from SRL racing!

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, and don't allow cheats to be used which are necessary with Project64 to keep pausing the game from taking a long time.

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.

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 both of these steps for each and every newly randomized ROM you use!

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”.

Enable Cheats

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

Tick 'Remember selected cheats' because PJ64 needs gameshark cheat codes to emulate the pause framebuffer quicker if you are not using the GLideN64 plugin. If you can use the GLideN64 plugin, use a different emulator that is actually supported.

Unhandled Exception Error & Crash Mitigation

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

Pause Framebuffer Emulation Speed Cheat

PJ64 6.png

Press Ctrl + C and then click on the bar on the right of this window. In the box below 'Code: <address>' paste: 801DA5CB 0002 And name it something like 'subscreen delay fix' (The name doesn't matter)

PJ64 7.png

Then click 'Add cheat' and it should appear on the left. Tick the cheat, then close out of that menu.

PJ64 8.png

Change Graphics Plugin (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'.

ADDITIONAL HOTKEYS:

  • 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

RTENOTITLE

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.