A relatively hassle-free N64 emulation configuration

Guides to jumpstart your Retrogaming lifestyle
Post Reply
DinnerX
Next-Gen
Posts: 1537
Joined: Fri May 06, 2011 7:57 pm
Location: Trapped in a Karate Kid cartridge

A relatively hassle-free N64 emulation configuration

Post by DinnerX »

Related guide on ROM dumping: viewtopic.php?f=52&t=30904

Intro:

The goal of this guide is to show you a N64 emulation configuration that is compatible, speedy, and reasonably accurate with many games. Certainly, you could find faster configurations for your particular PC and games, but I find most people just want something they can set up once and not have to tinker with after that.

I've spent hours tinkering around with N64 emulation, so I'm hoping my madness will save someone else some time.

The Emulator and Plugins:

Project 64 1.6 is the most compatible N64 emulator available for free (1.7 requires a donation and I have no idea how good it is). Download Project 64 1.6 here. An update for Project 64’s ROM database can be downloaded here.

There is no disputing Glide64 is the best graphics plugin available. It’s very fast, supports several weird graphical effects that other plugins do not, and it also allows you to load high resolution textures. Glide64 is written for the old Glide 3D API. Nobody uses voodoo cards anymore, so a wrapper program is included to make Glide64 work with OpenGL. The bundle of the plugin and wrapper can be downloaded here.

Most N64 audio plugins are pretty poor. They have lots of hisses and pops. The one exception I know of is Azimer’s HLE Audio. The latest version can be downloaded here.

N-Rage’s Input Plugin is the best input plugin. It emulates the memory pak, the rumble pak, and the transfer pak, and has several configuration options. Download it here.

The Project 64 RSP is the most compatible RSP plugin. It comes with Project 64.

Setting Up:

N-Rage’s plugin needs the Microsoft Visual C++ 2010 SP1 Redistributable Package installed. It can be downloaded here.

N-Rage’s plugin needs at least direct x 9 installed. I’ve had problems with old directx applications on windows vista and 7. If you have any problems install this.

After you install Project 64, copy all of the downloaded plugins into the “plugin” folder located in the Project 64 folder. The Glide64 wrapper, “glide3x.dll,” needs to be copied to the Project 64 folder NOT the plugin folder. Also, copy the ROM database update to the Project 64 folder.

Start Project 64 and click on “File” then “Choose ROM Directory” and then select the folder containing all your N64 ROMs. After that, click “Options,” then “Settings,” and then the “Plugins” tab on the window that comes up. Select Glide64 for video, Azimer’s HLE Audio for audio, and N-Rages Input Plugin for input and then click “OK.”

The only way to change Project 64’s RSP plugin is to manually copy and paste RSP plugins over the RSP.dll in the Project 64 Plugin folder. The default Project 64 RSP plugin is great though, so we don’t need to swap it out for another one.

You can access the various plugins’ settings by clicking on “Options” and then the appropriate “Configure X Plugin.”

After you load a ROM, press alt+enter to switch between fullscreen and windowed mode. If a game crashes in full screen mode, you may have to press ctrl+alt+del and use “End Task” to stop the application.

Graphics Settings:

Most of Glide64’s options will display a brief explanation if you hover the mouse over them. If you access Glide64’s options after loading a ROM you will be changing the settings for that particular game. Glide64 comes with configurations for many games and it’s generally best to not alter these game specific configurations.

The following are recommendations for the general (not game specific) Glide64 settings.

Check vertical sync to prevent tearing.

Anisotropic filtering is a nice enhancement. You can check it if it doesn’t make games run slowly. Even if it does not slow down the emulation normally, anisotropic filtering may slow down the emulation if you are using texture enhancements.

Check “Use Frame Buffer Options” if it speeds up the emulation for you.

For the next few steps you need some information about your system. Click on the start menu, then accessories, and then run. In the window that pops up type dxdiag and press enter. Click on the Display tab in the dxdiag window.

In the Glide64 window set the “Full Screen Resolution” to be the same as the “Current Display Mode” in the dxdiag display tab.

The plugin says autodetect VRAM is unreliable. Uncheck “Autodetect VRAM size.” Type the number that is listed as “Approx. Total Memory” in the dxdiag display tab into the box next to the Autodetect VRAM in the Glide64 window. You can close the dxdiag window now.

Check “Show advanced emulation options” and “Show texture enhancement options.” Click OK and get back into the Glide64 settings to see the access the new tabs of options.

Click on the “Emulation settings” tab. Set the “Filtering mode” to automatic, the “Buffer swapping method” to new, “LOD calculation” to off, and check “Buffer clear on every frame.”

If it doesn’t make games slow on your hardware, check “Enable frame buffer emulation” and “Hardware frame buffer emulation.”

If it doesn’t make the emulation on your system slow check “Software depth buffer rendering.”

Check “Fog” if you want that old nasty N64 fog emulated. Zelda Games use it to flash the screen red when you take damage. I leave it unchecked, but this is just personal preference.

Set the aspect ratio however you like. Personally I use stretch so the picture will always fill the whole screen. All N64 games are in 4:3 by default, but quite few have the option to be switched to 16:9. Setting the aspect ratio to “Original” renders the game at its original resolution in the center of the screen.

Texture Enhancement:

The texture enhancement options in Glide64 are controlled by the Glide64HQ.dll part of the plugin. Some PCs, including mine, do not work with the latest version of Glide64HQ.dll. If texture enhancements are not working, using older versions of Glide64HQ.dll is the recommended solution. I am using the Glide64HQ.dll from the old NapalmWX release. It can be downloaded here. Just copy the old Glide64HQ.dll from that download to your emulator’s plugin directory and tell the PC to replace/overwrite the newer Glide64HQ.dll. If that particular old version doesn’t work there are several other older released you can try.

If you want true to the console emulation, there is not much to do in the “Texture Enhancement” tab. The only item you might change is set the “Enhancement” drop down menu to “Store” and then select how much storage you want in the “Texture Cache” box. Theoretically this could speed games up a little. In practice I don’t notice anything.

Skip down to the Sound Settings section if you don’t care about texture enhancement.

The “Texture enhancement” tab has two main texture enhancement choices. You can apply various filters to the standard N64 textures through the “Enhancement” drop down menu. The other option is to use a high resolution texture pack (if you have one) by setting the “Format” drop down menu to “Rice.” You can select “Rice” even if you don’t have a high resolution texture pack for the game, but it will do nothing. Change the “Alternate CRC Calculation” setting if some hires textures are not loading.

For either enhancement option check “Save Texture Cache To Hard Disk.” This option will increase performance, but if you change the filter, texture pack, or the “Alternative CRC Calculation” setting, you will need to delete the texture cache for that game manually to see the changes. Texture caches are stored in the “cache” folder inside the emulator’s “Plugin” folder.

Both “Compress Texture Cache” options should be checked.

Your texture enhancements may make the emulator run slowly. If that happens you can check “Apply texture compression” and/or “Ignore backgrounds” if you are using filtering the original textures. If you are using hires textures, you can check “Apply texture compression,” “Force 16-bpp textures,” and/or “Tile textures.” All of these options decrease the quality of the graphics, but can increase performance. I believe you will need to delete you old texture cache after you changes these options for the changes to take effect.

Installing a Texture Pack:

In the Project 64 ROM select menu, right click on the game you want to install a texture pack for and click “ROM information.” Make a note of the ROM name at the top. In the Project 64 Plugin folder create a folder named “hires_textures” if there is not a folder with that name already. Inside the “hires_textures” folder create a folder with the same name as the ROM name. Place your high resolution texture pack for the game in that folder.

A good place to look for texture packs is here.

Sound Settings:

Azimer’s HLE Audio only has three options and the choices you make are not remembered so they must be set every time you load a new ROM. Fortunately, the default settings are generally fine. A few games have small, random, audio pops with “Emulate/Simulate AI” checked, so for those games you will need to uncheck “Emulate/Simulate AI” every time you load the game.

Controller Settings:

Make sure “Plugged” is checked for Controller 1.

Click a button, d-pad direction, or analog stick direction and then press the computer input you want to assign that part of the controls to. N-Rage’s Input supports everything for inputs: joysticks, controllers, keyboards, mice etc.

Click on the “Controller Pak” tab for Controller 1. Check “Raw Data.”

On the drop down menu select “Mem Pak.” Click the “New Mem Pak/Browse” button and create a Mem Pak file somewhere. Mem Pak files work like N64 Controller Paks, so name the Mem Pak file something sensible so you can remember what games are saved on it. You will need to create another Mem Pak file when you fill one up. I just make a Mem Pak file for each game to keep the files organized, but some may find it annoying to need to browse for a different Mem Pak file each time they change games.

On the drop down menu select “Rumble Pak.” If you’ve got a controller that supports rumble select it on the “Force Feedback Device” dropdown menu and uncheck “Visual Rumble.” I like “Constant Force” selected and rumble strength set to 100%, because on the other settings the rumble seems too weak. If you don’t have a controller that supports rumble, you may want to check “Visual Rumble” for OoT. That way you can see when the Stone of Agony is trying to indicate something.

Up at the top, select the “Shortcuts” tab and assign “MemP <-> RumP” to something convenient, since many games switch between the two pak types.

Click “Save” when you are done, so you are not annoyed with yourself for configuring and not saving…

RSP Settings:

Uncheck “send Audio Lists to Audio Plugin,” check “send Display Lists to Graphics Plugin,” and set the “CPU core style” to recompiler.

A Few Game Specific Remarks:

Some games need “Read every frame” checked in the Glide64 “Emulation options” tab if you want certain effects to be emulated correctly. Note worthy effects are: The puzzle piece transition in Banjo-Kazooie, the Perfect Dark pause screen, and the monitor in Luigi’s circuit in Mario Kart 64. Enabling this option can slow down the emulation, particularly at higher resolutions.

Banjo-Tooie freezes randomly in Project 64. If you want to play this game, use 1964 with the same plugins and settings I recommend here. In the 1964 ROM select menu, right click on Banjo-Tooie and select “ROM Properties.” In the ROM properties menu set “Link Code Blocks” to “No” and leave everything else at their defaults.

Pokemon Stadium 2 crashes in Project 64. If you want to play this game, use 1964 with the same plugins and settings I recommend here. In the 1964 ROM select menu, right click on Pokemon Stadium 2 and select “ROM Properties.” In the ROM properties menu set “Link Code Blocks” to “No,” set “Self-Modifying Code” to “Check QWORD and DMA,” and leave everything else at their defaults.

Other Emulators and Plugins:

1964 is a great emulator. It’s my personal favorite. The overclocking option can make some games run smoothly that had a bad framerate on the N64 (Goldeneye and Perfect Dark are great for this), but it can also cause timers to run too fast and other bugs. I don’t recommend 1964 here, because 1964 isn’t quite as compatible as Project 64. If the game you are playing is slow or has bugs in Project 64, try 1964 with the same plugins. The user interface in the latest version of 1964 is buggy and tends to crash. The actual emulation is fine. 1964 emulates controller memory paks on its own, to the controller plugin doesn’t need to. Perfect Dark crashes 1964 if you do not have the controller pak set to “None” in N-Rage’s Input. 1964 can be downloaded here.

The 1964 Community Graphics Plugin is the descendent of Rice’s Video plugin. It’s not as good as Glide64, but it can be faster. It is included with 1964, but can be downloaded seperately here.

Mupen 64 is fine emulator, but I don’t have a game that is unplayable in Project 64 and 1964 but playable in Mupen 64. Mupen 64 may be slightly faster than Project64 or 1964 for some games. Mupen 64 also comes with a very good RSP plugin. Mupen 64 can be downloaded here.

The Mupen 64 RSP plugin is less compatible than the Project 64 RSP plugin. Some games will crash or freeze randomly with the Mupen 64 RSP. When the Mupen 64 RSP plugin does work with a game it is usually a bit faster than the Project 64 RSP plugin.

AND THEY ALL LIVED HAPPILY EVER AFTER.
Last edited by DinnerX on Thu May 24, 2012 12:57 pm, edited 5 times in total.
Since this signature affects old posts, I'm leaving a message here in case anyone searches for my username. This account died in early 2013. I am no longer a fundamentalist.

Don't add to my problems by pretending my past views are still held in the present. I do not have any patience for that. Feel free to ask me what I think now.
User avatar
BoneSnapDeez
Next-Gen
Posts: 20118
Joined: Mon May 02, 2011 1:08 pm
Location: Maine

Re: A relatively hassle-free N64 emulation configuration

Post by BoneSnapDeez »

Nice job.

I'm not sure if this is worth mentioning but you can use an actual N64 controller with emulators with a USB adapter. I had to configure the joystick in Control Panel first.
Post Reply