From OoT Randomizer Wiki

Originally written by Tyrus

Project64 is no doubt the most popular N64 emulator available. Randomizer staff will support Project 64 v2.4.0-1161-g18d1867 which was released on May 5, 2020 and versions newer than it. We will not directly support any previous version, including 2.3.2 which is the latest stable release. Make sure to download one of the nightly builds if you wish to use Project64 for the randomizer.

As racing is a large focus for the community, please be aware the rules of the racing websites prohibit use of Project64 2.0 and higher. Bizhawk and Retroarch are the recommended emulators for racing.

Download Project64 nightly build v2.4.0-1161-g18d1867 release on May 5, 2020 or newer. Make sure to download the ZIP. The installer can cause issues.

Dismiss the nag screen without waiting 30 seconds by pressing the Esc key.

Enable Protect Memory

Launch Project64, and in the menu bar navigate to OptionsSettings... or press Ctrl+T to open the Settings menu.

In the Settings menu expand the Options list on the left and look for a Defaults section, if Defaults isn't displayed on the left, then click Options and untick Hide advanced settings. Now click Defaults on the left and then tick Protect memory on the right to enable it by default. This is required for Ocarina of Time to work correctly in Project64, but is not automatically used for Randomizer.

Enable Unique Game Save Directory

By default, Project64 uses the same save for any rom of the same game, which means that it will re-use any earlier OoT or randomizer saves you have when starting a new seed. This can cause a number of issues, including game crashes. To fix this, go to OptionsSettings... and under Options find the Advanced section. If Advanced isn't displayed on the left, then click Options and untick Hide advanced settings. In the Advanced section, tick Unique Game Save Directory. This will make sure every seed gets it's own game save folder.

Configure Controller

First, read the Controller Setup guide. Ensure the controller is calibrated, and if you are using one of the controllers with additional setups steps in that guide make sure you follow them.

In the menu bar, navigate to OptionsConfigure controller plugin... Set the controller binds here.1 The buttons on the left of the box refer to the button on an N64 controller and the box next to it displays which button on a controller is currently mapped to it.

When using an Xbox controller, or any controller that is an XInput device, you must check XInput at the top. This will change the bind menu to be more appropriate for your device.2 The XControl column is the button on your controller, and the N64 column is the button on the N64 controller you want it to use.

For other controllers and keyboard users, ensure XInput does not have a check by it. Click on the button for the control you want to bind a button to and the menu will wait for you to press a button on the controller or a key on your keyboard to use for the button. You may need to change these again if you switch controllers.

If you use a keyboard, you will also want to increase the Analog StickRange to 100%.