Bizhawk

From OoT Randomizer Wiki
Revision as of 15:41, 24 July 2021 by ETR BTF (talk | contribs) (→‎Optional Settings: removed a duplicate section (background inputs))
You want the first file located under the Assets heading for both downloads. It should have ".zip" at the end. Version numbers will vary, ask in #setup-support on Discord if you're not sure which versions you want.

BizHawk is a frontend for small number of emulators and is targeted at Tool-Assisted Speedrunners. The advantage of this is that it means the emulators you use on it are targeted towards accuracy so you are unlikely to run into too many bugs that aren't also found when running the games on hardware. A small disadvantage to this is that these emulators also have various debugging tools enabled, which generally means they run slightly slower than emulators without these features enabled. But this also allows further manipulation of the game via Lua scripts which is how Multiworld functions. This also means that as of right now, BizHawk is the only emulator that can be used for playing Multiworld. Please also read the Multiworld page while setting up Bizhawk for that purpose.

First, you must download BizHawk and the files it requires to have installed to even run.

Installing

RTENOTITLE

Once you have downloaded the files for installation, you have to extract them. Right-click the zip files and choose "Extract All..." and click next a couple of time. Make sure you do this for both zip files you downloaded.

You should now have a folder with a name like bizhawk_prereqs_vX.X where X.X is the version of the prerequisites that you downloaded such as 2.1. This version can be different than the BizHawk version. Open this folder.

Inside there should be a file called bizhawk_prereqs.exe. Double-click this file and click next a couple of times, then wait for all of the files to install. Once the installer has completed you can continue.

Emulator Setup

You can now start up BizHawk. Open the folder BizHawk-X.X.X where X.X.X is the BizHawk version you downloaded, such as 2.3.0. This version can be different than the Prerequisites version. Inside this folder is a file called EmuHawk.exe. Open this file.

You have to load a ROM before you can change N64 emulator-specific settings. Go to File > Open ROM in the menu bar up top. Locate your ROM and open it.

RTENOTITLE

Enable RAM Expansion

Now that you have loaded a ROM a new menu entry N64 will show up in the menu bar. Ensure N64 > Use Expansion Slot has a check-mark beside it indicating it is enabled. If it does not click on it to enable it. Once you have enabled the setting you have to reboot the core for it to take effect. Navigate to Emulation > Reboot Core to do so. You'll have to do this for every randomizer rom you create due to how Bizhawk works.

Enable Save Backup In Case of Crashes

Go to Config -> Customize and navigate to the Advanced tab. You should check the box for AutoSaveRAM and set it to a reasonable time, such as 30-45 seconds (keep in mind that setting this too low could increase lag and decrease overall emulator performance, while setting it too high can cause save data corruption if you crash mid-save). This will allow Bizhawk to write your in-game save to your drive. This is NOT a form of save state - it simply periodically creates/updates a file on your hard drive with your in-game save data, and is wonderful for mitigating the effects of crashes. In the event of a crash (or if you open TAStudio by accident) DO NOT RELOAD THE ROM! DO NOT RELOAD THE ROM! Doing so will overwrite your backups, meaning that your save files will be gone. To recover your save file follow the instructions over here.

Advanced Customization

Hotkey Settings

RTENOTITLE

It is strongly recommended to remove most, if not all, of the default hotkeys. Some are bound to your controller by default and can cause frustration while trying to play. Go to Config > Hotkeys..., select a hotkey, and simply press the Esc key on your keyboard to unbind it. You can also click Misc and Clear All to unbind all of the hotkeys at once.

Controls Setup

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

With the ROM still running, go to Config > Controllers... and set up your controls by clicking on the textboxes and pressing the button on your controller or keyboard you wish to have mapped to the displayed N64 control. If your controller isn't registering inputs you are missing the required drivers for your controller and must find them and install them.

XBOX Controller Troubleshooting

XBOX controllers can be a bit finicky with BizHawk.

XBOX One Analog Stick Doesn't Work As Background Input

In versions prior to 2.5, BizHawk does not reliably communicate with the XBOX One controller, and on Windows 10, Windows itself will take control over the controller's left analog stick when the window isn't focused. To fix this, update to BizHawk 2.5 or later.

Can Only Press 1 Trigger At A Time or Background Input Buttons Don't Work

In versions prior to 2.5 BizHawk does not reliably communicate with XBOX controllers. To fix this, update to BizHawk 2.5 or newer. In these versions, you can go to Config > Customize... and under the General tab there is an Input Method (requires restart) option. Choose the radio button by OpenTK. Click OK, then close BizHawk. When you relaunch BizHawk you should rebind all of your controls again, including the analog sticks. You should no longer have issues with your controller.

Better Analog Stick Accuracy

Provided by Retzioka

RTENOTITLE

Make sure the first 4 boxes under Normal Controls are empty as displayed above. If they are not, click the box and hit Esc to clear the bind. These settings will force your controller to always input the control stick at 100% rather than by how much you press the stick in a direction. This makes aiming in the game very difficult. You never want these set if you are using a controller with an analog stick which is why we unbind them.

Now go to the Analog Controls tab and click the Bind button.

X-Axis Move your stick Left to Right once.

Y-Axis Move your stick from Up to Down once.

Be sure to also adjust your sensitivity to make it easier to aim as well. The image above shows an example, but everyone has a different setting that "feels good" to them. Experiment with them, especially once you've found a Bow or Slingshot.

Optional Settings

Better Graphics

RTENOTITLE

Under Config > Cores > N64 Video Plugin Settings you should see a dropdown box titled Video Resolution. The recommended resolution is 640x480 and the maximum recommended resolution is 800x600. Higher resolutions will affect the performance of the emulator and is a major cause of slowed and laggy gameplay.

If you computer has up-to-date OpenGL drivers (fairly modern Nvidia and AMD cards, and only very, very recent Intel graphics) you should change the Active Video Plugin to GLideN64 as it is the most accurate video plugin. If the game boots to a black screen while after activating this plugin try Glide64 mk2 instead. Use Rice plugin only as a last resort as it is quite inaccurate.

Background Inputs

RTENOTITLE

As a Streamer, you may have to click around often. This will make sure that whatever you do, the Emulator will register the inputs from your Controller. Go to Config > Customize... and make sure Run in background and Accept background input are both checked. It is also recommended to uncheck the Pause when menu activated box.

If you selected a high resolution in the previous step your FPS might go down if you click somewhere other than on the Emulator.

Save States

In order to use save states in OoTR you will need to go to N64 > Use Expansion Slot and enable it. Savestates made before this change will fail, but any made after will be fine.

Note that the N64 dropdown bar will not appear until after you've loaded a rom.

Aspect Ratio

RTENOTITLE

If you decide to make your emulator’s window fullscreen, your game will look stretched. This does not look very nice for either you or your viewers. This will ensure the game will stay in its original 4:3 Ratio. Go to Config > Display and check the Maintain aspect ratio (letterbox) box and select Use 1:1 pixel size.

Troubleshooting

Help! My emulator crashed!/I accidentally opened TAStudio and got a black screen!

First of all, DO NOT RELOAD THE ROM! DO NOT RELOAD THE ROM! Doing so will overwrite your backups, meaning that your save files will be gone. To recover your save files follow these instructions.

  1. In your Bizhawk folder navigate to \N64\SaveRAM.
  2. Identify the SaveRAM and AutoSaveRAM files corresponding to your seed. Sorting by date may help. Note that the AutoSaveRAM files will only exist if you've enabled that beforehand.
  3. Optional: manually make a backup of these files somewhere on your pc.
  4. Delete the SaveRAM file and rename AutoSaveRAM to take the place of the SaveRAM file you've just deleted.
  5. Now you can safely load your seed again and continue playing.

I am getting (Random) Crashes

Ensure that you've enabled RAM expansion

Bizhawk is Laggy

Go to Config -> Cores -> N64 Video Plugin Settings and take a look at your Video Resolution setting. If this is set too high then that can cause lag. Even if your pc is very powerful we still recommend not going over 800x600, because it will demand a lot of resources from your computer without increasing the graphics all that much (it's a 20 y/o game). If you're still experiencing lag then consider decreasing the resolution even further. Remember: Bizhawk is a very resource-intensive emulator. Playing in full screen could also be a cause of lag.

Audio Issues

Audio issues can be just that, audio issues, but if you have a reasonably powerful graphics card in your computer audio issues can be a result of Bizhawk using the integrated GPU on your CPU instead of the actual powerful dedicated GPU.

Ensure Proper GPU is Being Used

Follow this resource to ensure Bizhawk is using your high performance GPU if you have one.

Decrease Resolution

If your high performance GPU is being used, or you don't have one, then try reducing the output resolution. Refer back to here to help guide you.

Increase the Audio Buffer

RTENOTITLE

Sometimes the audio buffer BizHawk uses runs out and causes audio skipping, or crashes the emulator. To prevent this issue you should increase the audio buffer size. Go to Config > Sound... and increase the "Buffer Size" from 100 milliseconds to at least 250 milliseconds. This will slightly delay audio playback but should reduce how often the emulator crashes.

Change the Output Method

If you are still having audio issues you can also try changing the "Output Method." You'll have to try each option and see which one works best for you as there is no guaranteed best option.

Multiworld

Testrunner made a coop mod for the OoT Randomizer: Nothing is shared communally by all players, however there are now player-specific items which are mixed between all the worlds. So if you obtain an item for yourself, only you get it. If you obtain an item for another player, then only they get it. This effectively means everyone will be playing different intermingled seeds.

For more information and instructions check the Multiworld setup guide.

Texture Packs

The following link will let you set up texture packs for Bizhawk

Aspect Ratio Enhancement

This is not Race/Competition Legal. For race legal advice regarding Aspect Ratio click here.

In the N64 Graphics Plugin Settings change the resolution on the main tab to a custom resolution of whatever Aspect Ratio you desire, then on the GlideN64 tab scroll down to the video section and set Aspect Ratio to Adjust. This will cause the emulator to expand the camera view port in the game to match the specified resolution, allowing you to see more of the game at any given moment.

This can be used to avoid black bars around the game without introducing stretching nor cropping of the image. The downsides to this are that Frame Buffer effects will only render in the original 4:3 view port space and some visual tricks will be rendered incorrectly, in the case of Ocarina of Time and Majora's Mask this mostly affects the Lens of Truth effect and Shops.