Difference between revisions of "Nintendo 64 emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Comparisons: Updated compatibility link to link to the proper page. Still, a more up-to-date list that evaluates games running in Mupen 64 Plus is sorely needed.)
m (Replace N64 config list link with archive.org mirror)
Line 115: Line 115:
 
Compatibility:
 
Compatibility:
  
N64 emulation is a complete mess. There are many good reasons for this, but they'd take too long to state. Every emulator has its own unique compatibility issues. The compatibility varies significantly, even within one emulator if using different plugins. Refer to [http://bhemuhelp.co.nf/n64mgcl/N64ConfigList.htm this link] for optimal emulator settings based on the game you want to play.
+
N64 emulation is a complete mess. There are many good reasons for this, but they'd take too long to state. Every emulator has its own unique compatibility issues. The compatibility varies significantly, even within one emulator if using different plugins. Refer to [https://web.archive.org/web/20131103161616/http://bmgcl.atspace.cc/n64mgcl/N64ConfigList.htm this link] for optimal emulator settings based on the game you want to play.
  
 
* [[Mupen64Plus]], based on Hacktarux's Mupen64, is currently the best overall N64 emulator, but you still need PJ64 for certain games. It lacks a native GUI, and instead is ran by dragging and dropping roms and editing the config with Notepad++. There are third-party GUIs made for it, but many are problematic and glitchy. It is actively developed, and has been ported to a number of different platforms.
 
* [[Mupen64Plus]], based on Hacktarux's Mupen64, is currently the best overall N64 emulator, but you still need PJ64 for certain games. It lacks a native GUI, and instead is ran by dragging and dropping roms and editing the config with Notepad++. There are third-party GUIs made for it, but many are problematic and glitchy. It is actively developed, and has been ported to a number of different platforms.

Revision as of 23:58, 31 January 2015

The Nintendo 64 (N64)

The Nintendo 64 is a 64-bit, 5th generation console released by Nintendo in 1996.

Emulators

PC
Name Operating System(s) Latest Version Active Libretro Core Recommended
Mupen64Plus Multi-platform SVN
Project64 Windows 2.1
1964 Windows 1.1 (official)
1.2 r146 (SVN)
CEN64 Windows, Linux Git
Daedalus Windows 1.1
Sixtyforce OS X 1.0
Mobile
Name Operating System(s) Latest Version Active Libretro Core Recommended
Mupen64+ AE Android 2.4.4
Consoles
Name Operating System(s) Latest Version Active Libretro Core Recommended
Daedalus PlayStation Portable SVN
Not64 Wii, Gamecube 20130408 ?
Wii64 Wii, Gamecube 1.1 beta
Virtual Console Wii - ?

Comparisons

Compatibility:

N64 emulation is a complete mess. There are many good reasons for this, but they'd take too long to state. Every emulator has its own unique compatibility issues. The compatibility varies significantly, even within one emulator if using different plugins. Refer to this link for optimal emulator settings based on the game you want to play.

  • Mupen64Plus, based on Hacktarux's Mupen64, is currently the best overall N64 emulator, but you still need PJ64 for certain games. It lacks a native GUI, and instead is ran by dragging and dropping roms and editing the config with Notepad++. There are third-party GUIs made for it, but many are problematic and glitchy. It is actively developed, and has been ported to a number of different platforms.
  • Project64 is still a decent choice for emulating most of the popular games, though it has been supplanted by Mupen64Plus in terms of general compatibility. It is capable of using a wide variety of plugins, and has a relatively user-friendly interface. However, it has not seen an update in some time, and remains confined to Windows. Version 2.1 fixed some games, but introduced some regressions as well, so it may be handy to keep version 1.6 alongside it.
  • RetroArch has incorporated a heavily modified fork of Mupen64Plus as its N64 core, it is still a WIP and may have issues but should be fine for most games now. It is constantly being worked on, and has features not present in mainline, such as Project64-style overclocking for faster framerates and 3-point texture filtering, as well as those features that RetroArch itself brings.
  • BizHawk has a port of Mupen64Plus, which seems to work well enough. Bizhawk lacks portability however, and is only for Windows and OSX.
  • Daedalus is an N64 emulator for the PSP, which has been ported to Windows, but results are even more hit-and-miss than on other emulators due to being made for PSP first and foremost. On PSP, most games are unplayable, but there's a small amount of them that work really well with the right settings (Quest 64, for example).
  • Wii64 and Not64 are both based on Mupen64, with Not64 being a fork of Wii64. Not64 claims to be better optimized, as well as having higher compatibility and more frequent updates. N64 emulation on Wii is not very good, and it is recommended to stick with the Virtual Console N64 releases.
  • CEN64 is an up-and-coming simulator that aims for cycle accuracy, while at the same time aiming to eventually be usable on modern PC hardware. It currently lacks sound and a whole host of other features, and its compatibility is still very spotty but it is improving at a rapid pace; it already plays many of the most popular games (albeit slowly).
  • 1964, along with its various versions and forks, was once a decent, speedy alternative to Project64 and Mupen64, though it usually lagged behind the two in compatibility. Nowadays, it has completely fallen off the radar, and there is little reason to use it outside of some of its forks' overclocking function, which allows for smoother framerates. Even this feature, however, has been supplanted by both Project64 2.1 and RetroArch's VI Refresh Rate setting, which effectively does the same thing.
  • Sixtyforce is Mac-only, closed-source, and asks you to pay for it to use all its features. It was once one of the only choices for Mac users (particularly those with older Macs, since it's the only emulator with a PPC dynarec), but with the switch to x86, and Mupen64Plus improving beyond its peers, it has now become utterly irrelevant.

Emulation issues

Emulation for the N64 is not very good. The system is very complex and confounded with almost no documentation available to emulator developers, leading to it being difficult to create an emulator with a high degree of compatibility with games. Many games require specific plugin set ups with specific emulators. It's a mess.

The N64 was an overly complex machine that was difficult to program for. The N64's RDP was pretty much the first real 3D accelerator GPU on consoles. In fact, at the time it came out, it was the most powerful consumer-grade GPU in the world (came out a few months before the Voodoo). It is very hard to emulate all of its functions accurately due to the lack of publicly available documentation for emulator developers. Many RDP functions have to be reproduced in software for accuracy, which takes a lot of power. Especially if you also reproduce the coverage filters, which are a nuisance because they make the image look blurry, and at the same time necessary for pixel-perfect graphics. For this reason, emulating it with a high degree of accuracy and compatibility has proven to be no simple task.

High-level vs. low-level graphics

One of the biggest hurdles in the road to proper N64 emulation has been accurately emulating the N64's graphics hardware, known as the Reality Display Processor, itself a part of the N64's Reality Co-Processor. The RDP is a very complex, fully-featured GPU, and emulating it at a low level has proved to be a daunting task that requires a lot of research, coding expertise, and immense amounts of system resources.

For this reason, most developers have instead opted to approximate the RDP's functions using high-level emulation (HLE) through various APIs such as Direct3D, OpenGL, and even Glide. While this results in much more reasonable system requirements for emulation along with prettier, higher resolution graphics, this method can be hit and miss, often requiring per-game tweaks and settings to prevent graphical glitches on many games. Some games that implemented custom microcode (which has yet to be reverse-engineered) such as Factor 5's games do not work no matter what using high-level graphics plugins.

It should also be noted that even though most games "work" through the HLE method, it is not an accurate representation of what the N64 hardware's video output actually looked like, but rather a rough approximation by PC graphics hardware. Your mileage may vary on whether this is a good thing or not, given the N64's often blurry, low-res output.

Texture filtering

The N64 was the first console to feature texture filtering of any kind. However, unlike PC graphics hardware and every console after the N64, its implementation of bilinear texture filtering was unique in that in order to reduce strain on the system, it only used three samples as opposed to four, resulting in slightly jagged textures. Instead of faithfully applying this "imperfect" version of bilinear, HLE plugins instead apply conventional bilinear filtering, interpolating straight from the source texture up to the output resolution, much like on PC games. While technically this method of bilinear filtering is superior to the N64's, it can also result in textures that look even blurrier than on real hardware.

Another issue lies with the appliance of texture filtering per quad on static images, text, and sprites. Because each quad is filtered separately, this can cause some visual inconsistencies. Text and UI elements often look as though their edges cut off abruptly, and static images such as prerendered backgrounds or menu screens may look as though they are separated into squares. Some plugins allow the user to turn off texture filtering to remedy this, but unfortunately this also applies to textures in the game world, exposing their often extremely low-res nature.

RetroArch's Mupen64Plus core has taken some steps which help remedy these problems. It is the only emulator that implements N64-style three-point texture filtering, which results in a more faithful look. It is also capable of rendering at 320x240, which sidesteps the issues with filtered text, UI elements, and menu screens, while still retaining texture filtering. Pixel-accurate plugins do not have these problems at all.

64DD Emulation

The 64DD (an abbreviation for "64 Disk Drive") was a Japan-exclusive peripheral which allowed a proprietary disk format to be used with the N64. These disks had more space at a cheaper manufacturing cost. The peripheral was a commercial failure. There are currently no emulators that can emulate the 64DD. Very recently however, effort was made to emulate the 64DD, thanks to people such as LuigiBlood, who successfully dumped most of the 64DD library and is currently implementing 64DD support in CEN64.

iQue Emulation

Before the GBA, DS and 3DS, Nintendo released a modified version of their Nintendo 64 system for the Chinese market with 14 games localized to Chinese, including Sin and Punishment, a unique revison of Ocarina of Time (a Majora Mask port was cancelled though) and Mario 64 among others.

Unlike the Chinese releases of their more recent systems and their games, no dumps in the same format as regular N64 releases exist yet for the N64 iQue releases, and no emulation support exist for them at all. The Chinese rom-hacking scene is very active though, and have translated the Japanese regular N64 releases for many of these to their language already, which explain some of the Chinese roms floating for those.

Virtual Console games in Dolphin

Some N64 games are emulated better as a Virtual Console game through Dolphin than on an actual N64 emulator. Mario Tennis, Kirby 64, and Paper Mario are all examples of this. The system requirements are much higher, but it's doable for many games. The following games are on the Virtual Console:

  • 1080 Snowboarding
  • Bomberman Hero
  • Cruis'n USA
  • Custom Robo V2 (Japan only)
  • F-Zero X
  • Kirby 64: The Crystal Stars
  • The Legend of Zelda: Majora's Mask
  • The Legend of Zelda: Ocarina of Time
  • Mario Golf
  • Mario Kart 64
  • Mario Party 2
  • Mario Tennis
  • Ogre Battle 64: Person of Lordly Caliber
  • Paper Mario
  • Pokemon Puzzle League
  • Pokemon Snap
  • Sin & Punishment (English)
  • Star Fox 64
  • Super Mario 64
  • Super Smash Bros.
  • Wave Race 64
  • Yoshi's Story