Project64: Difference between revisions

From OoT Randomizer Wiki
m (→‎Need additional assistance?: fix discord link)
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= '''Project64 Setup for OoT Randomizer''' =
<span style="font-size:x-small">'''Originally written by Tyrus'''</span>


<span style="font-size:x-small">'''by Tyrus'''</span>
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. '''<span style="color:red">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.</span>'''


{{TOClimit|5}} &nbsp;
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.


== Download: [https://www.pj64-emu.com/ https://www.pj64-emu.com/] ==
If you want to try to use or race with Project64 1.6 or 1.7 anyway, you can [[#Pause Framebuffer Speed Fix|fix the pause menu delay]] without using a cheat which is allowed for races.
 
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 [[#Unhandled Exception Error|fix unhandled exception error]] and [[#Pause Framebuffer Speed Fix|fix the pause menu delay]] steps for each and every newly randomized ROM you use on all versions of Project64, and [[#Crash Mitigations|crash mitigations]] on Project64 2.x'''''.
 
[https://www.pj64-emu.com/ 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”.
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”.


<br/> <span style="font-size:medium">'''''You will have to follow these steps for every new ROM you use!'''''</span>
== Unhandled Exception Error ==
 
Open the ROM. You will get this error message:
 
[[File:PJ64 1.png]]


=== '''Step 1:''' ===
Click 'OK' and another error message will pop up:


Open the ROM. You will get this error message:<br/> &nbsp;[[File:PJ64 1.png]]<br/> Click ‘Ok’ and *another* error message will pop up:<br/> &nbsp;[[File:PJ64 2.png]]<br/> Click ‘Ok’ once more, and then press ctrl + t<br/> This menu will pop up:<br/> [[File:PJ64 3.png]]
[[File:PJ64 2.png]]


Untick ‘Hide advanced settings’<br/> Then click on the ‘Advanced’ menu that just showed up.<br/> [[File:PJ64 4.png]]
Click 'OK' once more, and then press <code>Ctrl + T</code> The following menu will appear:


Tick ‘Remember selected cheats’ because PJ64 needs gameshark cheat codes to run properly.
[[File:PJ64 3.png]]


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


Click ‘Config: THE LEGEND OF ZELDA’<br/> If it’s not there, load up the ROM and look again.<br/> [[File:PJ64 5.png]]
[[File:PJ64 4.png]]


Where it says ‘Memory size’ go ahead and change that to 8 MB, deselect '32bit Engine' and then click ‘apply’ and ‘OK’.
== Pause Framebuffer Speed Fix ==


=== '''Step 3:''' ===
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.


Click the + next to "config: THE LEGEND OF ZELDA"
== Crash Mitigation (2.x Only) ==


[[File:PJ64 Setup Step 3.png]]
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).


Deselect 'Cache', 'PI DMA', 'Start changed' and 'TLB unmapping'. Select 'Protect memory' and then click ‘apply’ and ‘OK’.
Where it says 'Memory size' go ahead and change that to 8 MB, deselect '32bit Engine' and then click 'apply' and 'OK'.


=== '''Step 4:''' ===
[[File:PJ64 5.png]]


[[File:PJ64 6.png]]Press ctrl + c and then click on the bar on the right of this window<br/> In the box below ‘Code: <address>’ paste&nbsp;: 801DA5CB 0002<br/> And name it something like ‘subscreen delay fix’ (The name doesn’t matter)<br/> [[File:PJ64 7.png]]
Now click the + next to "config: THE LEGEND OF ZELDA" and then click "Recompiler" (as seen in the image below)


Then click ‘Add cheat’ and it should appear on the left.<br/> Tick the cheat, then close out of that menu.
Deselect 'Cache', 'PI DMA', 'Start changed' and 'TLB unmapping'. Select 'Protect memory' and then click 'apply' and 'OK'.


[[File:PJ64 8.png]]<br/> &nbsp;
[[File:PJ64 Setup Step 3.png]]


=== '''Step 5 (Optional but recommended):''' ===
== 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’<br/> Click ‘Apply’ and then ‘OK’.
Press <code>Ctrl + T</code> and click 'Plugins' and change the Video (graphics) plugin to 'Glide64 for PJ64'. Click 'Apply' and then 'OK'.


[[File:PJ64 9.gif]]<br/> &nbsp;
[[File:PJ64 9.gif]]


=== '''Step 6:''' ===
== Restart Project64 ==


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


=== '''Step 7:''' ===
== Configure Controller ==


Click ‘Options’ and ‘Configure controller plugin’
Click ‘Options’ and ‘Configure controller plugin’


[[File:PJ64 11.png]]<br/> &nbsp;<br/> Here is where you setup your controller binds.
[[File:PJ64 11.png]]
 
Here is where you setup your controller binds.


<br/> For xbox controller users:<br/> * In ‘Controller Pak’, untick ‘RawData’, and in the drop down menu, select ‘MemPak’.<br/> * Tick ‘XInput’, and your binds menu will look like this:<br/> The ‘XControls’ correspond to the buttons on your controller, and ‘N64’ is what they will be bound to in-game.
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.


[[File:PJ64 10.png]]<br/> For keyboard users-<br/> * I recommend setting Analogue stick range to 100%, and in ‘Devices’, set ‘Gamepad Deadzone’ to 5%.<br/> * These settings will make it easier to aim.
[[File:PJ64 10.png]]


<br/> For users of any other controller-<br/> * My only recommendation is to check out the multitude of other guides on the Internet.
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.


<br/> If you want to use a mouse, for some reason, tick ‘N64 Mouse’.
For users of any other controller my only recommendation is to check out the multitude of other guides on the Internet.


<br/> ADDITIONAL HOTKEYS:<br/> Toggle limit fps (fast forward): f4<br/> Toggle pause: f2<br/> Save State: f5<br/> Load State: f7
If you want to use a mouse, for some reason, tick 'N64 Mouse'.


&nbsp;
ADDITIONAL HOTKEYS:
* Toggle limit fps (fast forward): f4
* Toggle pause: f2
* Save State: f5
* Load State: f7


= Important: Managing your Save data! =
== Required: Managing your Save data! ==


=== '''Old versions of Project64''' ===
=== 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''.
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.
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''' ===
=== Project64 v2.3.2 ===
 
[[File:Project64 Save File Management.png|RTENOTITLE]]


[[File:Project64 Save File Management.png]]
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.


Tick 'Unique game save directory' to avoid having to mess with the Save Files stored on your computer's HDD.
== Need additional assistance? ==


'''IF YOU HAVE ANY FURTHER ISSUES, ASK IN THE DISCORD!'''
If you have any further issues, seek additional assistance on the [https://discord.gg/ootrandomizer 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.

Revision as of 13:07, 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 or 1.7 anyway, you can fix the pause menu delay without using a cheat which is allowed for races.

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:

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

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

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

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

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

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

Restart Project64

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

Configure Controller

Click ‘Options’ and ‘Configure controller plugin’

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.

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.