Difference between pages "Game Boy/Game Boy Color emulators" and "Nintendo 64 emulators"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
 
m (Emulators: Avoid redirect)
 
Line 1: Line 1:
 
{{Infobox console
 
{{Infobox console
|title = Nintendo Game Boy/Color
+
|title = Nintendo 64
|logo = Game_Boy.png
+
|logo = Nintendo64Console.png
 
|developer = [[:Nintendo]]
 
|developer = [[:Nintendo]]
|type = [[:Category:Handheld consoles|Handheld game console]]
+
|type = [[:Category:Home consoles|Home video game console]]
|generation = [[:Category:Fourth-generation video game consoles|Fourth generation]]
+
|generation = [[:Category:Fifth-generation video game consoles|Fifth generation]]
|release = 1989
+
|release = 1996
|discontinued = 2003
+
|discontinued = 2002
|predecessor = [[Game & Watch]]
+
|predecessor = [[Super Nintendo emulators|SNES]]
|successor = [[Virtual Boy emulators|Virtual Boy]]
+
|successor = [[GameCube emulators|GameCube]]
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
 +
The '''Nintendo 64''' is a 64-bit fifth-generation console released by Nintendo on September 29, 1996 for {{inflation|USD|199.99|1996}}.
  
The '''[[wikipedia:Game Boy|Game Boy]]''' (GB) and '''[[wikipedia:Game Boy Color|Game Boy Color]]''' (GBC) are 8-bit, fourth-generation handheld consoles released by Nintendo on July 31, 1989 and November 18, 1998 respectively and retailed for {{Inflation|USD|89.95|1998}}. The Game Boy has a Sharp LR35902 core CPU at 4.19 MHz. It had a monochrome display that could only show four shades of grey, albeit with a olive green tinge on the original. The Game Boy Color uses the same LR35902 core as the original; while it is clocked at 8.38 MHz, it can be underclocked to 4.19 MHz for backwards-compatibility purposes. It was named such from its color screen, but it also had a larger memory size and a faster CPU. The hardware similarities allow cross-compatibility between the two platforms and they are often treated as one. They would both be succeeded by the backward-compatible [[Game Boy Advance emulators|Game Boy Advance]].
+
Nintendo was the second company approached by Silicon Graphics Inc. (SGI), who wanted to roll out their previously enterprise-only technology in the consumer space. They originally pitched their idea to Sega, but it's assumed that Nintendo's offer was more appealing. With the NEC VR4300 CPU clocked at 93.75 MHz, 4MB of RAM,<ref group=N>Though a separate add-on was later released called the "Expansion Pak" that added an additional 4MB of RAM, totaling 8MB.</ref> and an SGI RCP GPU, Nintendo had finalized much of the hardware at least a year before launch, preventing video games from needing drastic rewrites as a result of architectural changes. The development workstations were often Unix-based, something that would later help reverse engineers in some projects.
 
 
Nintendo re-released the console as the '''Game Boy Pocket''' in 1996, with a more compact body and a better screen. A front light was added to a special edition of the Pocket in Japan called the '''Game Boy Light''', a feature that wouldn't be seen outside of Japan until the Game Boy Advance SP.
 
 
 
Nintendo released a peripheral for the [[Super Nintendo emulators|Super Nintendo Entertainment System]] called [[wikipedia:Super Game Boy|Super Game Boy]] in June 1994, which was modeled like a cartridge but included its own cartridge slot for Game Boy/Color games, as well as the hardware needed to translate the games. Many Game Boy/Color emulators offer at least some of the special features it included, such as added borders, colorization, custom button mappings, and other features. It was possible to link, but without the external port, as well as errors in the CPU, it would not be feasible to the end user. These issues would later be corrected in the Japan-exclusive Super Game Boy 2.
 
  
 
==Emulators==
 
==Emulators==
Because of how relatively easy popular 8-bit consoles are to emulate, tons of Game Boy emulators exist. For a list of open-source projects, see [https://github.com/search?o=desc&q=gameboy+emulator&s=updated&type=Repositories&utf8=%E2%9C%93 this GitHub query]. For a list of accuracy tests, see [[GB/C Tests]].
 
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|Game Link Support
+
! scope="col"|Plugins
 +
! scope="col"|Controller Pak
 +
! scope="col"|Rumble Pak
 +
! scope="col"|Transfer Pak
 +
! scope="col"|64DD
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
Line 30: Line 30:
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
!colspan="8"|PC / x86
+
!colspan="13"|PC / x86
 +
|-
 +
|[[m64p]] (ParaLLEl)
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/loganmc10/m64p/releases/latest git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|m64p (Final GLideN64)
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/loganmc10/m64p/releases/tag/v2021.5.30 Final GLideN64]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✓}}
 
|-
 
|-
|[[SameBoy]]
+
|ParaLLEl
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://sameboy.github.io/downloads {{SameBoyVer}}]
+
|[https://www.retroarch.com/ 2.0-rc2]
|{{✓}}<ref group=N name=sameboylink>SameBoy's libretro core supports Link Cable, standalone does not.</ref>
+
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}*
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|[[RMG]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/Rosalie241/RMG git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|[[BGB]]
+
|[[Project64]]
 
|align=left|{{Icon|Windows}}
 
|align=left|{{Icon|Windows}}
|[http://bgb.bircd.org/#downloads {{BGBVer}}]
+
|[https://www.pj64-emu.com/public-releases {{Project64Ver}}]<br >[https://www.pj64-emu.com/nightly-builds Dev]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|[[ares]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/ares-emulator/ares/releases {{aresVer}}]
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}
 +
|{{~}}
 +
|{{✗}}
 +
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 
|-
 
|-
|[[Gambatte]]
+
|[[CEN64]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://sourceforge.net/projects/gambatte/files/gambatte {{GambatteVer}}]
+
|[https://github.com/tj90241/cen64 git]
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
Line 58: Line 118:
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 
|-
 
|-
|[[Gearboy]]
+
|[[Mupen64Plus]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/drhelius/Gearboy/releases {{GearboyVer}}]
+
|[https://github.com/mupen64plus/mupen64plus-core/releases git]
|{{}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{}}
 +
|{{}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|[[Project64 Netplay]]
 +
|align=left|{{Icon|Windows}}
 +
|[https://pj64netplay-emu.ml/download.html {{Project64NetplayVer}}]
 +
|?
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
 
|[[BizHawk]]
 
|[[BizHawk]]
 
|align=left|{{Icon|Windows}}
 
|align=left|{{Icon|Windows}}
 
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
 
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
|{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{}}
+
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|[http://binji.github.io/binjgb/ binjgb]
+
|[[1964]]
|align=left|{{Icon|Web}}
+
|align=left|{{Icon|Windows}}
|[https://github.com/binji/binjgb/releases {{binjgbVer}}]
+
|[http://www.emulation64.com/files/getfile/936/ 1.1] (Official)<br />[http://files.emulation64.fr/Emulateurs/EMU_1964_146.zip 1.2 r146] (Unofficial SVN)
|{{}} ||{{✗}} ||{{✓}} ||{{}} ||{{~}}
+
|{{✓}}
 +
|{{}}
 +
|{{}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{}}
 +
|{{}}
 
|-
 
|-
|[[MAME]]
+
|[[DaedalusX64]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Linux}}
|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[https://github.com/DaedalusX64/daedalus/releases/latest git]
|{{✗}} ||{{}} ||{{✓}} ||{{✓}} ||{{~}}
+
|?
 +
|{{✓}}
 +
|{{}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|[http://emulicious.net Emulicious]
+
|[[Sixtyforce]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|macOS}}
|[https://emulicious.net/downloads {{EmuliciousVer}}]
+
|[http://sixtyforce.com/download/ {{SixtyforceVer}}]
|{{}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{~}}
+
|?
 +
|{{}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|[[higan]]
+
|Larper64
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://byuu.org/emulation/higan {{higanVer}}]
+
|[https://drive.google.com/file/d/1IWyw5UG9Uf24KG0zrcXSFoOmcQoHWmyc/view {{Larper64Ver}}]
|{{✗}} ||{{}} ||{{}} ||{{}} ||{{✗}}
+
|?
 +
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
|[[mGBA]]
+
|[[UltraHLE]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows}}
|[https://mgba.io/downloads.html {{MGBAVer}}]
+
|[https://web.archive.org/web/20070312015944/http://www.emuunlim.com/UltraHLE/ultrahle.zip 1.0]
|{{}}<ref group=N name=mgbalink>Pretty buggy but sometimes works.</ref> ||{{}} ||{{}} ||{{}} ||{{✗}}
+
|?
 +
|{{}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
|[[VisualBoy Advance|VisualBoy Advance-M (VBA-M)]]
+
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/visualboyadvance-m/visualboyadvance-m/releases {{VBAMVer}}]
+
|[http://www.mamedev.org/release.html {{MAMEVer}}]
|{{}} ||{{}}<ref group=N name=one>Full GBC, GBA and GB support since version 2.1.3.</ref>||{{✓}} ||{{✓}} ||{{✗}}
+
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
|[[GBE+]]
+
|[[Ryu64]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://github.com/shonumi/gbe-plus/releases {{GBEVer}}]
+
|[https://github.com/Ryu64Emulator/Ryu64 git]
|{{✗}} ||{{✗}} ||{{✓}} ||{{}} ||{{✗}}
+
|?
 +
|{{}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
|[https://fms.komkon.org/VGB VGB]
+
|R64Emu
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://fms.komkon.org/VGB {{VGBVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|[[Pantheon]]
 
|align=left|{{Icon|Windows}}
 
|[http://bostjan-grandovec.si/Content/News.htm {{PantheonVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|[http://hhug.me/ hhugboy]
 
|align=left|{{Icon|Windows}}
 
|[https://github.com/tzlion/hhugboy/releases {{hhugboyVer}}]
 
|{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|UGE
 
|align=left|{{Icon|Windows}}
 
|[https://github.com/SuperDisk/hUGETracker/releases {{UGEVer}}]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[KiGB]]
 
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://kigb.emuunlim.com/downloads.htm 2.05]
+
|[https://github.com/rasky/r64emu git]
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
+
|?
|-
+
|{{✗}}
|[[TGB Dual]]
+
|{{✗}}
|align=left|{{Icon|Windows|Linux}}<ref group=N name=two>On Linux as an SDL port (and the [[libretro]] core is based on this version).</ref>
+
|{{}}
|[https://github.com/libertyernie/tgbdual_L/releases git]
+
|{{✗}}
|{{✓}} ||{{✓}}<ref group=N name=two /> ||{{✓}} ||{{✗}} ||{{✗}}
+
|{{✗}}
|-
+
|{{✓}}
|GiiBiiAdvance
+
|{{}}
|align=left|{{Icon|Windows|Linux}}
+
|{{✗}}
|[https://github.com/AntonioND/giibiiadvance/releases git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|MetroBoy
 
|align=left|{{Icon|Windows}}
 
|[https://github.com/aappleby/MetroBoy/releases {{MetroBoyVer}}]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}
 
 
|-
 
|-
!colspan="8"|Mobile / ARM
+
!colspan="13"|Mobile / ARM
 
|-
 
|-
|[[mGBA]]
+
|[[Mupen64Plus]] FZ
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
 
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
 
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|GBA4iOS
 
|align=left|{{Icon|iOS}}
 
|[https://iemulators.com/gba4ios 2.1]
 
|{{✓}} ||{{✗}} ||? ||{{✓}} ||{{✓}}
 
|-
 
|[[Game Play Color]]
 
|align=left|{{Icon|iOS}}
 
|[https://github.com/gameplaycolor/gameplaycolor/releases {{GamePlayColorVer}}]
 
|{{✗}}||{{?}} ||? ||{{✗}} ||{{✓}}
 
|-
 
|[http://www.explusalpha.com/home/gbc-emu GBC.emu]<br/><small>(Gambatte 0.5-wip based)</small>
 
|align=left|{{Icon|Android|Pyra}}
 
|[https://play.google.com/store/apps/details?id=com.explusalpha.GbcEmu 1.5.54][https://github.com/Rakashazi/emu-ex-plus-alpha git]</br>[https://pyra-handheld.com/repo/apps/76 1.5.46.01 Pyra]
 
|? ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[http://www.explusalpha.com/ GBA.emu]<br/><small>(VBA-M r1097 based)</small>
 
|align=left|{{Icon|Android|Pyra}}
 
|[https://play.google.com/store/apps/details?id=com.explusalpha.GbaEmu 1.5.54][https://github.com/Rakashazi/emu-ex-plus-alpha git]</br>[https://pyra-handheld.com/repo/apps/75 1.5.46.01 Pyra]
 
|? ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[https://my-oldboy-free-gbc-emulator.en.uptodown.com/android My OldBoy!]
 
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=com.fastemulator.gbc 1.5.2]
+
|[https://play.google.com/store/apps/details?id=org.mupen64plusae.v3.fzurita 3.0.291 (beta)]
|{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{}}
+
|?
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|John GBC
+
|[[Mupen64Plus]]-pandora/Pyra
|align=left|{{Icon|Android}}
+
|align=left|{{Icon|Pandora|Pyra}}
|[https://play.google.com/store/apps/details?id=com.johnemulators.johngbc 3.93]
+
|[https://pyra-handheld.com/boards/threads/mupen64plus-2-2.72661 Pandora Build]<br/>[https://pyra-handheld.com/repo/apps/39 Pyra Build]
|? ||{{✗}} ||{{✗}} ||{{✓}} ||{{}}
+
|?
 +
|{{✓}}
 +
|?
 +
|?
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|GizBoy
+
!colspan="13"|Consoles
|align=left|{{Icon|Gizmondo}}
 
|[https://sites.google.com/site/criticalhippo/GizBoy0.1.0.zip 1.0]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
 
|-
 
|-
|gbc4NSpire
+
|[[Virtual Console]]
|align=left|{{Icon|Nspire}}
+
|align=left|{{Icon|Wii|WiiU}}
|[https://www.ticalc.org/archives/files/fileinfo/426/42630.html 0.92][https://github.com/calc84maniac/gbc4nspire git]
+
|N/A
|{{✗}} ||{{✗}} ||{{~}} ||{{~}} ||{{✓}}
+
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|Prizoop
+
|Not64
|align=left|{{Icon|Prizm}}
+
|align=left|{{Icon|GCN|Wii}}
|[https://www.dropbox.com/s/1tthn8j0g5lh2p8/prizoop.g3a?dl=0 1.0][https://github.com/tswilliamson/prizoop git]
+
|[https://github.com/Extrems/Not64/releases/latest git]
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|?
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|Ohboy
+
|[[DaedalusX64]]
|align=left|{{Icon|Didj|LeapsterGS}}
+
|align=left|{{Icon|PSP|3DS}}<br>{{Icon|Vita|PS2}}
|[https://youtu.be/iPyy44ktOAU x.x]
+
|[https://github.com/DaedalusX64/daedalus/releases/latest PSP]<br/>[https://github.com/masterfeizz/DaedalusX64-3DS/releases 3DS]<br/>[https://github.com/Rinnegatamante/DaedalusX64-vitaGL/releases VitaGL]<br/>[https://www.ps2-home.com/forum/viewtopic.php?f=99&p=39957#p39957 PS2]
|{{✗}} ||{{✗}} ||{{✗}} ||{{}} ||{{}}
+
|?
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{}}
 +
|{{~}}
 
|-
 
|-
| CuteBoy
+
|Surreal64 CE
|align=left|{{Icon|Java}}
+
|align=left|{{Icon|Xbox}}
| [http://cuteboy.sourceforge.net 0.2]
+
|[https://digiex.net/threads/surreal64-ce-b6-0-download-n64-emulator-for-xbox.13677 Beta 6.0]
|{{}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
+
|?
 +
|{{}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{~}}
 
|-
 
|-
| GB4ME
+
|mupen64-360
|align=left|{{Icon|Java}}
+
|align=left|{{Icon|Xbox360}}
| ?
+
|[https://digiex.net/threads/mupen64-360-xbox-360-nintendo-64-n64-emulator-download.9352 0.96 beta]
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
+
|?
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{~}}
 
|-
 
|-
| GameBoyjava
+
|[https://code.google.com/p/mupen64gc/ Wii64]
|align=left|{{Icon|Java}}
 
| [http://cbn.narod.ru/English.htm]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
| JavaBoy
 
|align=left|{{Icon|Java}}
 
| [https://github.com/chijure/JavaBoy git]
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✗}} ||{{✗}}
 
|-
 
| JavaGB (JMEBoy)
 
|align=left|{{Icon|Java}}
 
| [https://sourceforge.net/projects/javagb/files/jmeBoy/JMEBoy%201.5.3 1.5.3]
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✗}} ||{{✗}}
 
|-
 
| MjavaBoy
 
|align=left|{{Icon|Java}}
 
| [https://web.archive.org/web/20160818222612/http://mjavaboy.latinowebs.com/index.html#Descargas 0.017]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
| MGB
 
|align=left|{{Icon|Java}}
 
| ?
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
| MeBoy
 
|align=left|{{Icon|Java}}
 
| [http://www.arktos.se/meboy/download.php 1.6][https://github.com/chijure/meboy git]
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✗}} ||{{~}}
 
|-
 
| MeBoy-Asha
 
|align=left|{{Icon|Symbian}}
 
| [https://github.com/Summeli/MeBoy-Asha git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{~}}
 
|-
 
| MeBoy-F
 
|align=left|{{Icon|Java}}
 
| [https://web.archive.org/web/20100314135305/http://kfyatek-dev.jogger.pl/2010/03/06/meboy-f-2-2 2.2]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
| MiniBoy
 
|align=left|{{Icon|Java}}
 
| ?
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
!colspan="8"|Consoles
 
|-
 
|[http://gbatemp.net/threads/gameyob-a-gameboy-emulator-for-ds.343407 GameYob DS]
 
|align=left|{{Icon|NDS}}
 
|[http://www.emucr.com/search/label/GameYob git]
 
|{{✓}} <small>(NiFi)</small> ||{{✗}} ||? ||{{✗}} ||{{✓}}
 
|-
 
|[https://gbatemp.net/threads/gameyob-3ds-gb-c-emu.372523/ GameYob 3DS]
 
|align=left|{{Icon|3DS}}
 
|[https://www.gamebrew.org/wiki/GameYob_3DS 1.0.8][https://github.com/Drenn1/GameYob git]
 
|? ||{{✗}} ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[VisualBoy_Advance#VBA-M|Visual Boy Advance-M (VBA-M)]]
 
 
|align=left|{{Icon|GCN|Wii}}
 
|align=left|{{Icon|GCN|Wii}}
|r1231
+
|[https://code.google.com/archive/p/mupen64gc/downloads 1.1 beta]
|{{✓}} ||{{✓}} <small>(as VBA-Next)</small> ||? ||{{✓}} ||{{✓}}
+
|?
|-
+
|{{✓}}
|PlutoBoy
+
|{{✓}}
|align=left|{{Icon|PSP|Vita|3DS|NX|DC}}
+
|{{✗}}
|[https://github.com/RossMeikleham/PlutoBoy git]
+
|{{✗}}
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{✗}}
|-
+
|{{}}
|MasterBoy
+
|{{✗}}
|align=left|{{Icon|PSP}}
+
|{{✗}}
|[https://archive.org/details/masterboy-theelf.7z Theelf mod][https://archive.org/details/masterboy.-7z 2.02][https://github.com/PSP-Archive/MasterBoy git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|RealBoy Vita
 
|align=left|{{Icon|PSV}}
 
|[https://vitadb.rinnegatamante.it/#/info/167 1.2][https://github.com/xerpi/realboy-vita/releases git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[Virtual Console]]
 
|align=left|{{Icon|3DS}}
 
|8.10
 
|{{✓}} <small>(Pokemon only)</small> ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Wii|3DS}}<br>{{Icon|PSV|NX}}
 
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}][https://github.com/mgba-emu/mgba/releases git]
 
|? ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|Khedgb
 
|align=left|{{Icon|NX}}
 
|[https://gbatemp.net/threads/gbc-emulator-port-khedgb-works-on-5-0.503969 U7]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|gacubeboy
 
|align=left|{{Icon|WiiU}}
 
|[https://gbatemp.net/threads/release-gacubeboy-emulator.435627]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|GBiine
 
|align=left|{{Icon|WiiU}}
 
|[https://gbatemp.net/threads/game-boy-emu-for-5-3-2.417294 0.5.2]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|GeMP
 
|align=left|{{Icon|PSP}}
 
|[https://archive.org/details/ge-mp.-7z 3.3 Final][https://github.com/PSP-Archive/GeMP git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|RIN
 
|align=left|{{Icon|PSP}}
 
|[https://github.com/mbarczak/psp_rin git][https://archive.org/details/rin-rx.-7z RX]<br/>[https://archive.org/details/rin_v1.32n1.2.7z 1.32n1.2]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|e[mulator]-PSP
 
|align=left|{{Icon|PSP}}
 
|[https://archive.org/details/emulator_082f.7z 0.82f][https://github.com/PSP-Archive/e-mulator-PSP git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{~}}
 
|-
 
|PSP-Gnuboy
 
|align=left|{{Icon|PSP}}
 
|[https://archive.org/details/pspgnuboy_rls.7z r1]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|SpiceBoy
 
|align=left|{{Icon|PSP}}
 
|[https://archive.org/details/spice-boy.-7z r2]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|Cinoop
 
|align=left|{{Icon|PSP|PS4}}
 
|[https://github.com/CTurt/Cinoop git]<br/>[https://www.psxhax.com/threads/gameboy-emulator-cinoop-ported-to-ps4-via-webkit-exploit-by-cturt.2138 rel]<small> (PS4)</small>
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{~}}
 
|-
 
|GBEmu
 
|align=left|{{Icon|PS4}}
 
|[https://www.psxhax.com/threads/ps4-gbemu-gameboy-emulator-beta-for-ps4-by-retrogamer74.5199 Beta]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|[[Gambatte]]
 
|align=left|{{Icon|PS3}}
 
|[https://ps3.brewology.com/downloads/download.php?id=12226&mcid=4 r2]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|InfoGB
 
|align=left|{{Icon|PS2}}
 
|[https://www.ps2-home.com/forum/viewtopic.php?t=1641 rev 6c]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|aGBe
 
|align=left|{{Icon|PSX}}
 
|[https://sourceforge.net/projects/agbe/files/agbe SF]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{~}}
 
|-
 
|Playstation Gameboy Emulator
 
|align=left|{{Icon|PSX}}
 
|[http://www.emulationzone.org/consoles/ps/emulator.htm]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Super GB Booster
 
|align=left|{{Icon|PSX}}
 
|[https://www.amazon.com/Super-Booster-Emulation-Device-PlayStation-InterAct/dp/B01J4JXSME]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Shuboy <small> (Only GB)</small>
 
|align=left|{{Icon|32X}}
 
|[http://jiggawatt.org/badc0de/shuboy.htm 1.0]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{~}}
 
|-
 
|GBEmu <small> (Only GB)</small>
 
|align=left|{{Icon|VB}}
 
|[https://www.virtual-boy.com/forums/t/entry-game-boy-emulator 0.1]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
 
|-
 
|GBonGBA <small> (Only GB)</small>
 
|align=left|{{Icon|GBA}}
 
|[https://www.zophar.net/consoles/gameboy/gb/gbongba.html 0.4]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Goomba Color
 
|align=left|{{Icon|GBA}}
 
|[https://www.zophar.net/consoles/gameboy/gb/goomba-color.html 2.1]
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✗}} ||{{✗}}
 
|-
 
|PocketGB <small> (Only GB)</small>
 
|align=left|{{Icon|GBA}}
 
|[https://www.zophar.net/consoles/gameboy/gb/pocketgb.html 0.1a]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Game Boy Emulator (POM '98) <small> (Only GB)</small>
 
|align=left|{{Icon|N64}}
 
|[https://www.nesworld.com/n64/homebrew/bb-gb.zip 0.1]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|GBLator <small> (Only GB)</small>
 
|align=left|{{Icon|N64}}
 
|[https://www.zophar.net/consoles/gameboy/gb/pocketgb.html 1.0]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
!colspan="8"|Others
 
|-
 
|-
 
|PlutoBoy
 
|align=left|{{Icon|UEFI}}
 
|[https://github.com/RossMeikleham/PlutoBoy git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
 
|}
 
|}
<references group=N />
 
  
===Comparison===
+
<nowiki>* Available exclusively as a libretro core</nowiki>
 +
 
 +
===Comparisons===
 +
Although many Nintendo 64 emulators have been made and many games can be run between them, complete compatibility and/or accuracy still leaves a bit to be desired. For half a decade, Mupen64Plus and Project64 have vied for the most playable emulator, and which has been more compatible has depended on when and in what configuration each emulator has been tested. Both emulators default to lackluster plugins, but, as of August 2017, both emulators have roughly equal graphical accuracy when running with GLideN64.
 +
 
 +
;[[Mupen64Plus]]:A multi-platform emulator based on Hacktarux's Mupen64. It's about as accurate as Project64,<ref>loganmc10. [https://github.com/mupen64plus/mupen64plus-core/pull/336 ''Ignore TLB write if TLB entry is unmapping itself'']. "By the way, once this, along with the other PR's I have waiting are merged, we are at "compatibility parity" with Project64 as far as I can tell. I don't know of any game that doesn't boot with mupen64plus that works in PJ64."</ref> when both emulators are run with GLideN64. However, Mupen64Plus lacks a native GUI, instead being launched either from the command line or by dragging and dropping ROMs onto the executable and editing the config with a text editor. [[BizHawk]] and [[OpenEmu]] use forks of Mupen64Plus and its plugins for their N64 emulation, but they seem to be shallow.
 +
 
 +
:;ParaLLEl:A heavily-modified fork developed as a [[libretro]] core. It introduces many features and optimizations not present in mainline alongside [[RetroArch]]'s general features, including Project64-style overclocking for faster frame rates, 3-point texture filtering, superior A/V sync and latency, and even an exclusive LLE Vulkan renderer based on Angrylion's pixel-perfect RDP plugin, making it a better alternative to the standalone version in some cases, especially if accuracy is the goal. ParaLLEl has a special "[https://www.youtube.com/watch?v=mzR93F9gPdc Super VI Mode]" option which, if used, can make the visuals of N64 games look less blurry with fairly mitigated jaggies even at their native resolutions. Although, it may need a [https://www.youtube.com/watch?v=z7_D_D419S0 powerful GPU]. It also offers native high-resolution rendering, only available in integer scales of the original N64 resolution.
 +
 
 +
:;[[m64p]]:Probably the easiest "out of the box" solution for Nintendo 64 emulation. It comes with Parallel RDP, as well as its own custom GUI and input plugin.
 +
 
 +
:;[[RMG]]:Rosalie's Mupen GUI is a project aiming to close the gap between Project64 and Mupen64Plus in terms of user experience.
 +
 
 +
:;Wii64 and Not64:Both are 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 releases whenever possible.
 +
 
 +
;[[Project64]]:An open-source emulator for Windows. Its official release builds are more up-to-date than Mupen64Plus', and the current version, 3.0.1, is roughly as accurate as the development versions of Mupen64Plus when both are played with recommended plugins. It has a more user-friendly interface than the Mupen64Plus attempts and supports more features such as overclocking and Transfer Pak emulation. It does come with GLideN64 out-of-the-box, but the default audio plugin isn't even the best in the box. For the most part, it works well in [[Wine]], but, if you're on a different platform, use Mupen64Plus instead.
 +
 
 +
;[[CEN64]]:Aims for cycle accuracy while, at the same time, aiming to eventually be usable on modern PC hardware. It currently lacks many features and has spotty compatibility, but it's gradually improving. It can already emulate some well-known edge cases such as the picture recognition in Pokemon Snap.
  
====Game Boy-only emulators====
+
;[[1964]]:Along with its various versions and forks, it was once a decent, speedy open-source alternative to Project64 and Mupen64, though it usually lagged behind the two compatibility-wise. Nowadays it has completely fallen off the radar as development has halted, and there is no longer a central code repo to speak of. There is little reason to use it nowadays outside of historical purposes, very specific edge cases, or if your device is too slow to run Mupen64Plus or Project64. However, a fork named 1964 GEPD is regularly updated and remains the go-to choice for emulation of 007 Goldeneye and Perfect Dark. This is for a number of reasons, the most notable are a 60 FPS hack and a mouse injector plugin, which happens to include an FOV slider.
;[[SameBoy]]:A relatively new emulator, probably the most accurate Game Boy emulator currently. The UI is simple and easy to use. It includes open source bootroms, although these can be replaced with real ones. Also emulates Game Boy Camera and Game Boy Printer.
 
;[[BGB]]:A closed-source emulator for Windows (and [[Wine]]) with excellent Game Boy and Game Boy Color accuracy, as well as near flawless link support. It has a wealth of options for color palettes and even enabling Super Game Boy colors and borders, though it doesn't emulate all of its functions. It also has an advanced debugger.
 
;[[Gambatte]]:Extremely accurate open-source Game Boy/Color emulator. It has a good range of options and features, though not quite as much as some other emulators. It has not been as active lately.
 
;[[TGB Dual]]:An ancient emulator that supports link cable emulation. It also supports [[netplay]], but it requires a VPN. The libretro port supports local multiplayer using player 2's controls.
 
;[[KiGB]]:An old and obsolete emulator which boasted its accuracy but was proven to be full of game-specific hacks.<ref>https://github.com/mgba-emu/mgba/issues/238</ref><ref>http://gbdev.gg8.se/wiki/articles/Test_ROMs#Emulators_running_on_desktop_computers</ref><ref>http://gbdev.gg8.se/wiki/articles/KiGB</ref> It has a wide selection of features, but other emulators have caught up and are already doing much better.
 
;[https://github.com/AntonioND/giibiiadvance GiiBiiAdvance]:Pioneered full GB Camera emulation, including webcam support. Aside from that, it's an unfinished emulator with the basics set up, but its promising future currently on hiatus. It has very accurate timing.
 
  
;[https://github.com/aappleby/MetroBoy MetroBoy]:Extremely accurate Game Boy simulator which being written in a subset of C++ that's designed to to be mechanically translated into Verilog HDL.
+
;Daedalus:is a Nintendo 64 emulator for PC which was ported to the PSP under the name of DaedalusX64. The PSP version later became the main version and got ported to platforms such as the Dreamcast, the PS2, the PS Vita, and the 3DS. On PSP, several games are able to reach full speed and most of them work with few emulation issues.
  
'''List of recommended GB/GBC emulators for Android:'''
+
;[[Sixtyforce]]:is macOS-only, closed-source, and asks you to pay for full access to 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 <abbr title="Power PC">PPC</abbr> [[Dynamic recompilation|dynarec]]), but, with the switch to x86 and Mupen64Plus being ported to macOS, it has now become less relevant. However, development is still ongoing and is currently in its [https://sixtyforce.com/rosetta/ third rewrite] to support the upcoming [https://en.wikipedia.org/wiki/Apple-designed_processors Apple Silicon].
* [https://www.androidauthority.com/best-game-boy-emulators-for-android-368530/ 10 best Game Boy Advanced, Game Boy Color, and Game Boy emulators for Android] (SEPTEMBER 2, 2018. Includes some emulators not found in above charts. Reviews may be subjective.)
 
  
====Backwards-compatible GBA emulators====
+
;[[UltraHLE]]:marked a milestone in Nintendo 64 emulation, in that it was the first to play some popular N64 titles at full speed on hardware made at the time of its release through [[High/Low-level emulation|high-level emulation]]; it isn't without its drawbacks though - pressure from users, combined with legal threats from Nintendo, forced them to discontinue development. Besides being for historical value, there's not much to expect from this emulator anyway due to compatibility issues.
;[[mGBA]]:Primarily emulates the [[Game Boy Advance emulators|Game Boy Advance]] but it also includes GB/C support much like the original system. It's still in development, but it's already on the level of many other emulators.
 
;[[GBE+]]:A recently rewritten emulator that has a large effort in preserving the functions of [[#Game Boy Features|obscure accessories]] that other emulators don't focus on. It can also load custom tiles in games, including colorized tiles for original Game Boy titles.
 
;[[VisualBoy Advance#VBA-M|VisualBoy Advance-M <small>(VBA-M)</small>]]:Used to be the go-to for Game Boy Advance emulation and even included solid GB/C emulation. It's now behind [[mGBA]] on both fronts.
 
  
====[[Multi-system emulators]]====
+
;[[Ryu64]]:is a Nintendo 64 emulator made in C#. The 'Ryu' word is named after the "RyuJIT" used in both Visual Basic & C#. But it might have been inspired by the lead author's sole (so far) [https://github.com/Ryujinx/Ryujinx/commits?author=Dudejoe870 commit] at Switch emulator, [[Ryujinx]]'s Git repository, and his depreciated [https://github.com/Dudejoe870/RyujinxAutoUpdate Ryujinx Auto Updater] tool. "86RYU", an x86 JIT compiler, is being developed alongside this emulator too.
;[[higan]]:Because it started out as a [[Super Nintendo emulators|SNES emulator]] (its original name was bsnes), it was the first and only one that properly emulated all of the Super Game Boy's features, such as SPC sound chip utilization. Versions of bsnes at and before v073 used the Gambatte core for its Super Game Boy functionality, but byuu eventually made his own Game Boy core, which ended up having pretty good accuracy.
 
;[[BizHawk]]:Uses a modified Gambatte core. It provides speedrunning tools.
 
;[[MAME]]:Has solid Game Boy emulation through its <code>gameboy</code> driver despite the sound being imperfect, as well as slightly worse Game Boy Color compatibility through its <code>gbcolor</code> driver (where both the graphics and sound are imperfect). Despite its setbacks, it aims to feature compatibility with obscure mappers that other emulators usually ignore, like Wisdom Tree games or MMM01 multicarts. Accuracy was improved upon with contributions by Judge_.
 
;[[Mednafen]]:Its Game Boy Advance core is forked from an old version of [[VisualBoy Advance]].
 
  
 
==Emulation issues==
 
==Emulation issues==
 +
{{Main|Recommended N64 plugins}}
 +
 +
The Nintendo 64 emulation scene can be described as a hot mess. It got to that point because of the overall emulation scene's climate in the early days, which was to stub off certain components of the emulated hardware as plugins. (Other consoles weren't immune to this phenomenon; it also happened to [[PlayStation emulators|the first PlayStation]].) Developers underestimated the complexity of the system, and with little demand for improvements beyond getting the popular titles working from beginning to end, most emulator developers stuck with the codebases they knew for as long as possible and never integrated any of the plugins that were needed to make up a full project, or merge their codebases into one project. And because almost no documentation is available for clean-room reverse engineers, figuring out how the hardware actually functioned had to be done manually, which took longer. The unfortunate result of this is that many games require specific plugin arrangements and specific emulators in order to run well, and there is no viable alternative that isn't just an iteration on the existing plugin-based emulators.
 +
 +
===[[High/Low level emulation|High-level vs. low-level]] graphics===
 +
 +
One of the biggest hurdles to emulating the Nintendo 64 is the Reality Display Processor (RDP), one of two components in the Reality Coprocessor made by SGI. The Reality Display Processor was the most powerful consumer-grade GPU at the time of the console's release; this was a selling point that Nintendo wanted to emphasize as a result of working with SGI. However, reverse engineering efforts for popular Nintendo 64 games showed that Nintendo's software development kit included a common microcode for the RDP. It's possible Nintendo didn't want to give developers access at a lower level out of fears that doing so would damage consumer units, but that meant most of the effort spent emulating the RDP would go towards figuring out how to handle the microcode.
 +
 +
* Most developers in 1999 and the early 2000s opted to approximate functions through various APIs such as Direct3D, OpenGL, and even Glide. While this resulted in much more reasonable system requirements for emulation, along with prettier, higher resolution graphics, this method proved to be hit and miss, often requiring per-game tweaks and settings to prevent graphical glitches on many games. Some games flat out didn't work, because it wasn't clear what the microcode did or why, and required extensive hardware testing.
 +
* On the low-level side, developers would either completely emulate the RDP or autodetect the microcode and use an appropriate implementation for the game. The former would mean a software renderer accurate to the hardware but major performance bottlenecks unless optimizations like vectorization and multi-threading were implemented. The latter would mean faster performance but developers would still have to figure out how to account for edge cases.
 +
 +
gonetz and one or two assistants have spent a large portion of development improving GlideN64's handling of microcode throughout 2016-2018.<ref name="gliden64_blog-1">{{cite web|url=https://gliden64.blogspot.com/2017/|title=Public Release 3.0|publisher=Blogspot|accessdate=2018-06-17|date=2017-12-29}}</ref><ref name="ZSortBOSS">{{cite web|url=https://github.com/gonetz/GLideN64/issues/1685#issuecomment-364436534|title=Initial implementation of BOSS ZSort ucode (WDC, Stunt Racer)|publisher=GitHub|accessdate=2018-06-17|date=2018-02-10}}</ref> This means that [https://youtu.be/HfCOnmRHI0o Factor 5]'s games are now working in the high-level graphics mode.<ref name="Indiegogo">{{cite web|url=https://www.indiegogo.com/projects/indiana-j-infernal-machine-high-level-emulation#/updates/all|title="Indiana J. & Infernal Machine" HLE|publisher=Indiegogo|accessdate=2018-06-17|date=2018-05-17}}</ref><ref name="gliden64_blog-2">{{cite web|url=https://gliden64.blogspot.com/2018/05/hle-implementation-of-microcodes-for.html|title=HLE implementation of microcodes for "Indiana Jones" and "Battle for Naboo" completed.|publisher=Blogspot|accessdate=2018-06-17|date=2018-05-26}}</ref> Other games may still have issues with RDP quirks like frame buffer/depth buffer access (issues with how the frame buffer is used as well as performance issues), VI emulation, and how combine/blending modes are emulated (such as noise issues and combiner accuracy).
 +
 +
It should be noted that most games technically work through the HLE method, but it's not an accurate representation of what the video output actually looked like, but rather a rough approximation by your graphics card. Whether this is an improvement or not is subjective.
 +
<gallery widths="300" mode="packed">
 +
Majora's mask accurate.png| Low-level emulation of Majora's Mask using SoftGraphic
 +
Project64 2013-07-26 14-20-17-55.png| High-level emulation of Majora's Mask using Jabo's Direct3D
 +
</gallery>
 +
 +
===[[Texture filtering]]===
 +
The Nintendo 64 was the first consumer device to be able to filter textures when rendering 3D objects. However, unlike every console and PC graphics card made after the N64, its implementation of bilinear was primitive 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 filtering, HLE plugins instead apply conventional filtering, interpolating straight from the source texture up to the output resolution the same way a PC game would. While that method is technically superior, it can 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 pre-rendered 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 oftentimes low resolutions.
  
===Oversaturation===
+
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.
[[File:Gbc over saturation2.png|thumb|right|350px|Comparison of saturation levels in [[VisualBoy Advance#VBA-M|VBA-M]] and [[Gambatte]].]]
+
<gallery widths="300" mode="packed">
The Game Boy Color's screen is under-saturated. Game developers often work around this by using brighter colors knowing it'll be compensated for on hardware. This does not translate well in emulation, because standard LCD screens don't account for this sort of issue. Many emulators attempt to combat this issue with options that adjust accordingly; if not directly, then [[Shaders_and_Filters#Image_Adjustment|shader functionality]] may be implemented.
+
Project64_2013-06-26_17-44-58-31.png|Conker's Bad Fur Day copyright screen, displaying issues with filtered text.
 +
Mupen64plus_2013-08-18_20-35-50-08.png|Ocarina of Time's menu subscreen, displaying issues with filtering. Note how the Quest Status screen appears to be divided into a grid.
 +
</gallery>
  
This issue also affects [[Game Boy Advance emulators#Oversaturation|Game Boy Advance emulation]].
+
===Voice Recognition Unit emulation===
 +
The Voice Recognition Unit (VRU) is an accessory used primarily by ''Hey You, Pikachu''. No emulator or input plugin supports this, although there is an on-going effort to get it working.<ref name="emutalk">{{cite web|url=http://www.emutalk.net/threads/55279|title=Hey You! Pikachu - Possible HLE Implementation|publisher=emutalk|accessdate=2018-06-17|date=2014-10-27, Last edit: 2016-04-04}}</ref>
 +
===''Densha De Go!'' Controller===
 +
Also available for the [[PlayStation emulators|PlayStation]], ''Densha De Go! 64'' is a Japan-only train simulator released by [[Wikipedia:Taito|Taito]] that is compatible with an optional special controller that plugs into the player 3 port.<ref name="ArcadeUSA">{{cite web|url=https://www.youtube.com/watch?v=cCcPAGhcnck|title=Densha De Go! Nintendo 64 Controller!|publisher=YouTube|accessdate=2018-06-17|date=2017-01-20}}</ref> No emulator supports it.
  
====Emulator options====
+
===Pokémon Snap Station===
 +
There was a special kiosk designed to promote ''Pokémon Snap'' called the ''Pokémon Snap Station'', which is also compatible with the North American ''Pokémon Stadium'' with its gallery mode. It is just a Nintendo 64 with special hardware designed for the station.<ref name="Sixty Formula">{{cite web|url=https://www.youtube.com/watch?v=AMbjvGvPkV4|title=The Pokemon Snap Station|publisher=YouTube|accessdate=2018-06-17|date=2016-05-21}}</ref><ref name="MetalJesusRocks">{{cite web|url=https://www.youtube.com/watch?v=5_UGpRN6AnM&t=3m35s|title=VIDEO GAME KIOSKS - Extreme Game Collecting!|publisher=YouTube|accessdate=2018-06-17|date=2016-05-25}}</ref> Although the special cartridge boots in emulators compatible with the regular version, the printing functions are inaccessible due to no emulation of the printer for the player 4 slot, credit system, or the special board to switch between the regular and special cartridges.
  
'''mGBA:''' Under Tools > Settings > Shaders, you will find three customizable '''Desaturation''' parameters.
+
===Transfer Pak emulation===
 +
A few games use the Transfer Pak such as ''Mario Golf'', ''Mario Tennis'', ''Mario Artist: Paint Studio'', and the ''Pokémon Stadium'' games. Mostly, this can be done with NRage's input plugin, but a couple of things aren't emulated:
  
'''VBA-M:''' Under Options > Game Boy, you will find the '''GB color option'''. The recent nightly builds also include the '''LCD Filter''' option.
+
*Taking pictures with the Japanese ''Game Boy Camera'' (called ''Pocket Camera'') while in Transfer Pak mode playing ''Mario Artist: Paint Studio'' displays static.
  
===Unlicensed Mappers===
+
===64DD emulation===
Much like the NES, the Game Boy (and by extension, the Game Boy Color) used '''Memory Bank Controllers''' (MBC) (called MMCs on the NES) and also known informally as '''mappers''', to go beyond the restrictive initial hardware specifications. Nevertheless, Nintendo was much more careful to standardize their specifications to just a small number of possible mappers. Moreover, Game Boy ROMs now included an official internal header mandated by Nintendo that included the correct MMC type. This meant that for the officially licensed games, these mappers proved to be rarely a problem... with some notable unimplemented exceptions: Net de Get's MBC6 that offered downloadable content off the internet, and the MMM01 footer used for some official multi-cart games, among others.
+
The 64DD (an abbreviation for "64 Disk Drive") was a 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 and was never released outside of Japan. Internal evidence suggests that, much like the GBA e-Reader, it wasn't even intended for a European release.
  
However, shit hits the fan when it comes to '''unlicensed games''', since they didn't necessarily respect Nintendo's specifications about how a given mapper type should handle its memory and behave in general, and internal headers were often filled with erroneous data to hinder dumping and emulation efforts. Some emulators like MESS and [http://hhug.me/?tags=hhugboy hhugboy] try to emulate that behavior with various degrees of success ([http://hhug.me/dump/ Compatibility List]). The hhugboy project also proposed a similar solution to iNES for this mapper problem, as the [http://hhug.me/gbx/1.0 gbx ROM format] that appends a footer with extra information needed for some unlicensed games. However, this format, much less unlicensed hardware quirks, isn't widely adopted aside from tentative mGBA support.
+
Expansion disks are region-coded to either Japan or the US (obviously unused) and won't work with N64 games from the wrong region.  Only F-Zero X has full support for this feature, but dummied-out expansion data in Ocarina of Time and Mario Party 2 (JP/PAL) exist as well.
  
==Hardware Features==
+
The special AV-In cartridge (NUS-028) that ''Mario Artist: Talent Studio'' can use doesn't work because it requires an RCA cable signal.
===IR Transmitter===
+
 
The Game Boy Color had an infrared transmitter and receiver. Generation II Pokémon games made use of this feature through Mystery Gift. Super Mario Bros. Deluxe could send high scores to another cartridge. GBE+ had [https://shonumi.github.io/articles/art4.html basic IR emulation] back in July 2016 but it then only worked with Pokémon games. Now, as of [https://shonumi.github.io/articles/art11.html April 2018], it has full IR emulation for most IR-enabled games (Hudson Soft's HuC-1's IR capabilities need to be emulated for Japanese ''Pokémon TCG'').
+
Recently, there has been an effort to emulate the 64DD, and now [[Project64]] and [[MAME]] can run several commercial 64DD games as part of its N64 emulator. This is being ported to [[CEN64]] with the help of [https://twitter.com/LuigiBlood LuigiBlood]. The latest newcomer is Mupen64Plus which is the base of other emulators such as [[m64p]] and [[RMG]].
  
===Game Boy Camera===
 
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 +
|-
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
! scope="col"|Build to Use
+
! scope="col"|Latest Version
 +
! scope="col"|N64 Mouse
 +
! scope="col"|64DD Emulation
 +
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
! colspan="4"|PC / x86
+
! colspan="7"|PC / x86
 
|-
 
|-
|[[mGBA]]
+
|ParaLLEl
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|0.7
+
|[https://www.retroarch.com/ 2.0-rc2]
 +
|{{✓}}
 +
|Mid/High
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|[[VisualBoy Advance#VBA-M|VBA-M]]
+
|[[Project64]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows}}
|Latest
+
|[https://github.com/project64/project64 {{Project64Ver}}]<br >[https://64dd.org/downloads.html 64DD.org Builds]
 +
|{{✓}}
 +
|Mid
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|GiiBiiAdvance
+
|[[CEN64]]
|align=left|{{Icon|Windows}}
+
|align=left|{{Icon|Windows|Linux|macOS}}
|?
+
|[https://github.com/tj90241/cen64 git]
 +
|{{✓}}
 +
|Mid
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[BGB]]
+
|[[m64p]]
|align=left|{{Icon|Windows}}
+
|align=left|{{Icon|Windows|Linux|macOS}}
 +
||[https://github.com/loganmc10/m64p/releases git]
 +
|{{✓}}
 
|?
 
|?
 +
|{{✓}}
 +
|{{✗}} (WIP)
 +
|-
 +
|[[MAME]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|{{✗}}
 
|{{✗}}
|-
+
|Mid
|Hashcam
+
|{{}}
|align=left|{{Icon|Windows}}
 
|[http://www.darkfader.net/gbc Source]
 
 
|{{✗}}
 
|{{✗}}
 
|}
 
|}
The Game Boy Camera is an official Nintendo accessory for the Game Boy and was released in 1998. Users can take pictures and modify them with stickers and frames, as well as play several included minigames. In addition to the original model, there was a US-exclusive Legend of Zelda: Ocarina of Time edition that included different stamps.
 
  
The first emulator to have some capability of emulating the Game Boy Camera was a modified version of an old emulator called Hash. This version, named Hashcam, can still be found on the author's website. While there were some efforts to run the Game Boy Camera ROM in BGB unofficially, the author didn't show much interest in it. However, it is fully emulated with webcam support in a lesser-known emulator called GiiBiiAdvance.
+
* Project64's latest versions emulate the N64 mouse and can load Zoinkity's hacked 64DD cartridge conversions at playable speeds. You'll need to set every game to have 8MB of Memory by default manually. Games do not save, some need "32-bit engine" to be unchecked (like Talent Studio), and some (like Polygon Studio to fix models and Paint Studio to fix stamps) need the Angrylion GFX plugin rather than GlideN64, which does the job for the rest.
 +
**The 64DD hardware started to be emulated around 2.3's release with the help of [https://github.com/LuigiBlood LuigiBlood]. Saving works but in the form of NDR files. NDR files are copied versions of NDD images with save data included as to not write to the clean unaltered images. In order to play 64DD games in their original forms, 8MB of memory is still needed because the real hardware needed the Expansion Pak upgrade. The IPL is also needed.
 +
 
 +
* MAME includes early basic 64DD emulation as well but is much slower. Disk images need to be in head/track format. See [https://github.com/Happy-yappH/ddconvert.git here] for more information. It does not currently support disk swapping or saving disk to files. Writes only update the copy in memory, and, once the MAME process ends, the changes are lost. Current usage: <code>mame n64dd -quickload disk -cart cart -nodrc</code> (both disk and cart are optional)
  
As of version 0.7.0, or any dev builds post 0.6.0, mGBA can emulate this accessory by either using the PC's webcam or sending a BMP, GIF, JPEG, PNG, or other image format to the game, as if it was coming from the camera itself.<ref name="mGBA_Cam">{{cite web|url=https://twitter.com/mGBA_emu/status/890954205472501762|title=Game Boy Camera in mGBA dev builds|publisher=Twitter|accessdate=2018-08-10|date=2017-07-28}}</ref>  The camera is also functional on the 3DS port. To enable the PC webcam, go to <code>Game Boy</code> under <code>settings</code> and switch the <code>camera driver</code> to <code>Qt Multimedia</code>, or by editing <code>qt.ini</code> and setting <code>cameraDriver=1</code> under <code>[General]</code>.
+
* CEN64, like Project64, had 64DD emulation ported to it from MAME. However, it focuses on accuracy and plays much slower than other emulators, aside from the 64DD emulation itself is imperfect.
  
===Game Boy Printer===
+
===iQue Player emulation===
Game Boy Printer is a thermal printer accessory released by Nintendo in 1998 used in conjunction with the Game Boy Camera and also used to prints images from compatible GB games such as ''Pokémon Gold and Silver'', ''Pokémon Crystal'', ''Super Mario Bros. Deluxe'', ''Donkey Kong Country'' and ''The Legend of Zelda: Link's Awakening DX''.
+
Before the GBA, DS, and 3DS, Nintendo released a modified version of their Nintendo 64 system for the Chinese market, which was called the iQue Player, through their not-quite-subsidiary iQue. Fourteen games were translated into Simplified Chinese, including Sin and Punishment, Ocarina of Time (the Majora's Mask port was canceled), Super Mario 64, and others.
  
[[VisualBoy Advance]] (including its forks), [[GBE+]] and [[mGBA]] have Game Boy Printer support that turn the signals into a bitmap form of the image.
+
Unlike the Chinese releases of their more recent systems and their games, iQue Player releases are regular N64 roms wrapped with several layers of encryption, as well as a ticket and signature system like that on Wii, DSi, 3DS, Wii U, and Switch. The Chinese ROM-hacking scene is very active though and has translated the Japanese regular N64 releases for many of these to their language already, which explains some of the Chinese ROMs floating for those. However, recently, almost all pieces of iQue Player software were decrypted to regular .z64 ROM format.
  
===Motion Control (Tilt Sensor)===
+
Several of the Chinese game localizations already run on N64 emulators, but as some hardware features of the iQue Player are not yet supported, some games, as well as the system menu and features in games such as saving, do not work yet.
Two Game Boy Color games featured a built-in tilt sensor: Kirby Tilt 'n' Tumble and Command Master. These games cannot be played without support for this feature. [[VisualBoy Advance|VBA]] and [[KiGB]] have a "Motion Sensor" option to map four directional keys to emulate the cartridge tilting, but the controls aren't analog. [[BGB]] can emulate the tilting features with the use of the mouse.
 
  
===Rumble===
+
===Aleck 64 arcade emulation===
A good number of cartridges came with a built-in rumble that required an AAA battery to power, such as ''Pokémon Pinball'', but the feature is optional. So far, only [[VisualBoy Advance#VBA-GX|VBA-GX]] emulates rumble in these games, including games that have their rumble feature dummied out (one being ''Tarzan'').
+
Nintendo collaborated with SETA to release an arcade system based on their Nintendo 64 system (kind of like their PlayChoice-10 for the NES, Super System arcade hardware for SNES, and later Triforce for GCN). The Nintendo 64-variant with more RAM, the Aleck 64, failed to catch on and bombed. It was never released outside Japan, even though one N64 port made it.
  
===Multiplayer===
+
The Aleck 64 ROMs were dumped, and Zoinkity is working on converting them to regular N64 ROMs (with controls remapped to N64 controller buttons). They generally require an 8MB Expansion Pak to run at all and 4K EEPROM to save settings and scores. The ones covered by these patches are:
* '''Link Cable:''' [[BGB]], [[KiGB]], some versions of [[VisualBoy Advance#VBA-M|VBA-M]] and [[TGB Dual|TGB-Dual]] supports link cable. It can also be used for Netplay on the corresponding [[RetroArch]] core.
 
* '''4-Player Adapter:''' Currently only [[GBE+]] supports it. There is a 16-Player adapter as well, but it went unreleased outside of unused code in some games, and as such isn't emulated.
 
  
===Online Features===
+
* Donchan Puzzle Hanabi de Doon!
====Mobile Game Boy Adapter====
+
* Eleven Beat: World Tournament
There is a Japan-only accessory that communicates with Mobile Golf and Japanese Pokémon Crystal. It was bundled with Mobile Trainer cartridge which allowed the player to use e-mail as well as browse Nintendo's website. It saw use on some Game Boy Color and Game Boy Advance games, but support was limited to Japan, and the servers went offline by 2002.
+
* Hi Pai Paradise
 +
* Kuru Kuru Fever
 +
* Magical Tetris Challenge
 +
* Mayjinsen 3 / Meijin-Sen
 +
* Star Soldier: Vanishing Earth (also ported to N64)
 +
* Super Real Mahjong VS
 +
* Tower & Shaft
 +
* Vivid Dolls (official eroge game on a Nintendo console)
  
It is possible to partially emulate its feature for Pokémon Crystal by [http://forums.glitchcity.info/index.php?topic=7509.0 using BGB's scripting capability], and GBE+ can at least reach the title screen of Mobile Trainer and made [https://www.reddit.com/r/EmuDev/comments/9141oy/making_progress_with_gb_mobile_adapter_emulation/ some progress in July 2018], but otherwise, no emulators (except for a recently leaked at time of writing internal emulator) properly support this accessory.
+
The already available [http://assemblergames.com/l/threads/aleck64-on-retail-consoles-poc.55041/ patches] to convert arcade ROM dumps to regular N64 ROM format can be found [http://micro-64.com/database/aleck64.shtml here].
  
====Hudsonsoft KISS Link====
+
The remaining ones from the system's library not yet covered are:
This accessory both allowed IR communications between 2 gameboys before the Game Boy Color existed with it’s IR port and with a modem, it allowed users to download exclusive content by them from Hudsonsoft's website. No emulator supports this. Resources about this super obscure accessory include http://nectaris.tg-16.com/GB-KISS-LINK-FAQ-hudson-gameboy-nectaris.html and https://www.youtube.com/watch?v=uOuJ0EcA8IQ
+
* Hi Pai Paradise 2
 +
* Rev Limit
 +
* Variant Schwanzer
  
===Accessories===
+
==Virtual Console games in Dolphin==
There are [[wikipedia:Game Boy accessories#Game Boy|a few accessories that the Game Boy and Game Boy Color]] had. Due to their very small and game-specific use, most emulators don't bother with them at all, save for GBE+.
+
Some N64 games are emulated well on a Virtual Console game through Dolphin. The system requirements are much higher, but it's doable for many games. The following games are on the N64 Virtual Console for Wii:
  
* '''Game Boy Pocket Sonar:''' Japan only cartridge released by Bandai. It is a sonar-enabled device used for fishing with a fishing game included. Only GBE+ [https://shonumi.github.io/articles/art13.html supports] this feature. A similar cartridge was released for the WonderSwan (still unemulated).
+
{|width="100%"
* '''Barcode Boy:''' An obscure Japan-only barcode-scanning device released by Namcot (then-Namco's consumer division) in 1992. A total of 4 games were released to utilize this accessory. KiGB and GEST claim support for this device, but they only feed random data to Game Boy until the game accepts it as a valid barcode. GBE+ has [https://shonumi.github.io/articles/art7.html proper emulation] with the ability to read barcodes from binary files.
+
|- valign="top"
* '''Barcode Taisen Bardigun:''' Another Japan only barcode-scanning device with the dedicated game. GBE+ [https://shonumi.github.io/articles/art6.html supports this accessory].
+
|
* '''Singer Sewing Machine:''' There is link cable support for the Singer IZEK Digital Sewing Machine. The IZEK was unique in that it came bundled with a specially coloured Game Boy and a cartridge for interfacing with the machine.<ref name="IZEK_1">{{cite web|url=https://www.youtube.com/watch?v=AlhJKMXU7tg&t=5m25s|title=Game Boy Part 2 - Did You Know Gaming? Feat. Jake of Vsauce3|publisher=Youtube|accessdate=2018-08-10|date=2014-05-24}}</ref><ref name="IZEK_2">{{cite web|url=https://www.youtube.com/watch?v=K-Epj2_eJdA|title=Singer IZEK Digital Sewing Machine - Gameboy Color Controller (Game Boy Color) Review|publisher=Youtube|accessdate=2018-08-10|date=2014-06-24}}</ref> Despite the IZEK's rarity, support for it has been added in a recent GBE+ release.<ref>[https://shonumi.github.io/articles/art22.html Edge of Emulation: Game Boy Sewing Machines]</ref>
+
* 1080 Snowboarding
* '''Suzuki Pocket Dash Diagnostic System''' and '''Aprilia DITECH Interface''': A series of diagnostic cartridges used for Suzuki and Aprilia scooters respectively, developed by Orbital Technologies in the early 2000s. Both were used to interface with a supported motorcycle's engine control unit (ECU) in a similar manner to OBD tools for automobiles. The diagnostic cartridges were only made available for use by motorcycle dealerships and were not licensed by Nintendo. No dump of either cartridge exists as of {{CURRENTYEAR}}.
+
* 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
 +
|}
 +
 
 +
==Notes==
 +
<references group=N />
  
 
==References==
 
==References==
{{reflist}}
+
<references/>
 
 
==External links==
 
* [http://gbdev.gg8.se/wiki/articles/Main_Page Game Boy Development Wiki] – Information about the Game Boy
 
* [http://www.youtube.com/watch?v=h_j0w7r6xSk Emulating Game Boy Camera and Game Boy Printer in BGB (work in progress)] – Game Boy Camera ROM running in BGB unofficially by exploiting linking capabilities
 
  
 
{{Nintendo}}
 
{{Nintendo}}
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]
[[Category:Handheld consoles]]
+
[[Category:Home consoles]]
 +
[[Category:Fifth-generation video game consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo consoles]]
[[Category:Game Boy/Game Boy Color emulators|*]]
+
[[Category:Nintendo 64 emulators|*]]
[[Category:Fourth-generation video game consoles]]
 

Revision as of 00:13, 30 October 2021

Nintendo 64
Nintendo64Console.png
Developer Nintendo
Type Home video game console
Generation Fifth generation
Release date 1996
Discontinued 2002
Predecessor SNES
Successor GameCube
Emulated

The Nintendo 64 is a 64-bit fifth-generation console released by Nintendo on September 29, 1996 for $199.99.

Nintendo was the second company approached by Silicon Graphics Inc. (SGI), who wanted to roll out their previously enterprise-only technology in the consumer space. They originally pitched their idea to Sega, but it's assumed that Nintendo's offer was more appealing. With the NEC VR4300 CPU clocked at 93.75 MHz, 4MB of RAM,[N 1] and an SGI RCP GPU, Nintendo had finalized much of the hardware at least a year before launch, preventing video games from needing drastic rewrites as a result of architectural changes. The development workstations were often Unix-based, something that would later help reverse engineers in some projects.

Emulators

Name Platform(s) Latest Version Plugins Controller Pak Rumble Pak Transfer Pak 64DD Libretro Core FLOSS Active Recommended
PC / x86
m64p (ParaLLEl) Windows Linux git
m64p (Final GLideN64) Windows Linux macOS Final GLideN64
ParaLLEl Windows Linux macOS FreeBSD 2.0-rc2 ✓*
RMG Windows Linux git
Project64 Windows 3.0.1
Dev
ares Windows Linux macOS v137 ~ ~ ~
CEN64 Windows Linux macOS git ~
Mupen64Plus Windows Linux macOS FreeBSD git ~
Project64 Netplay Windows 10/15/21 ?
BizHawk Windows 2.9.1
1964 Windows 1.1 (Official)
1.2 r146 (Unofficial SVN)
DaedalusX64 Linux git ?
Sixtyforce macOS 2.0.2 ?
Larper64 Windows Linux macOS 0.4 ?
UltraHLE Windows 1.0 ?
MAME Windows Linux macOS FreeBSD 0.264
Ryu64 Windows Linux macOS git ?
R64Emu Windows Linux macOS git ?
Mobile / ARM
Mupen64Plus FZ Android 3.0.291 (beta) ?
Mupen64Plus-pandora/Pyra Pandora Dragonbox Pyra Pandora Build
Pyra Build
? ? ?
Consoles
Virtual Console Wii Wii U N/A
Not64 GameCube Wii git ?
DaedalusX64 PSP Nintendo 3DS
Vita PlayStation 2
PSP
3DS
VitaGL
PS2
? ~
Surreal64 CE Xbox Beta 6.0 ? ~
mupen64-360 Xbox 360 0.96 beta ? ~
Wii64 GameCube Wii 1.1 beta ?

* Available exclusively as a libretro core

Comparisons

Although many Nintendo 64 emulators have been made and many games can be run between them, complete compatibility and/or accuracy still leaves a bit to be desired. For half a decade, Mupen64Plus and Project64 have vied for the most playable emulator, and which has been more compatible has depended on when and in what configuration each emulator has been tested. Both emulators default to lackluster plugins, but, as of August 2017, both emulators have roughly equal graphical accuracy when running with GLideN64.

Mupen64Plus
A multi-platform emulator based on Hacktarux's Mupen64. It's about as accurate as Project64,[1] when both emulators are run with GLideN64. However, Mupen64Plus lacks a native GUI, instead being launched either from the command line or by dragging and dropping ROMs onto the executable and editing the config with a text editor. BizHawk and OpenEmu use forks of Mupen64Plus and its plugins for their N64 emulation, but they seem to be shallow.
ParaLLEl
A heavily-modified fork developed as a libretro core. It introduces many features and optimizations not present in mainline alongside RetroArch's general features, including Project64-style overclocking for faster frame rates, 3-point texture filtering, superior A/V sync and latency, and even an exclusive LLE Vulkan renderer based on Angrylion's pixel-perfect RDP plugin, making it a better alternative to the standalone version in some cases, especially if accuracy is the goal. ParaLLEl has a special "Super VI Mode" option which, if used, can make the visuals of N64 games look less blurry with fairly mitigated jaggies even at their native resolutions. Although, it may need a powerful GPU. It also offers native high-resolution rendering, only available in integer scales of the original N64 resolution.
m64p
Probably the easiest "out of the box" solution for Nintendo 64 emulation. It comes with Parallel RDP, as well as its own custom GUI and input plugin.
RMG
Rosalie's Mupen GUI is a project aiming to close the gap between Project64 and Mupen64Plus in terms of user experience.
Wii64 and Not64
Both are 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 releases whenever possible.
Project64
An open-source emulator for Windows. Its official release builds are more up-to-date than Mupen64Plus', and the current version, 3.0.1, is roughly as accurate as the development versions of Mupen64Plus when both are played with recommended plugins. It has a more user-friendly interface than the Mupen64Plus attempts and supports more features such as overclocking and Transfer Pak emulation. It does come with GLideN64 out-of-the-box, but the default audio plugin isn't even the best in the box. For the most part, it works well in Wine, but, if you're on a different platform, use Mupen64Plus instead.
CEN64
Aims for cycle accuracy while, at the same time, aiming to eventually be usable on modern PC hardware. It currently lacks many features and has spotty compatibility, but it's gradually improving. It can already emulate some well-known edge cases such as the picture recognition in Pokemon Snap.
1964
Along with its various versions and forks, it was once a decent, speedy open-source alternative to Project64 and Mupen64, though it usually lagged behind the two compatibility-wise. Nowadays it has completely fallen off the radar as development has halted, and there is no longer a central code repo to speak of. There is little reason to use it nowadays outside of historical purposes, very specific edge cases, or if your device is too slow to run Mupen64Plus or Project64. However, a fork named 1964 GEPD is regularly updated and remains the go-to choice for emulation of 007 Goldeneye and Perfect Dark. This is for a number of reasons, the most notable are a 60 FPS hack and a mouse injector plugin, which happens to include an FOV slider.
Daedalus
is a Nintendo 64 emulator for PC which was ported to the PSP under the name of DaedalusX64. The PSP version later became the main version and got ported to platforms such as the Dreamcast, the PS2, the PS Vita, and the 3DS. On PSP, several games are able to reach full speed and most of them work with few emulation issues.
Sixtyforce
is macOS-only, closed-source, and asks you to pay for full access to 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 being ported to macOS, it has now become less relevant. However, development is still ongoing and is currently in its third rewrite to support the upcoming Apple Silicon.
UltraHLE
marked a milestone in Nintendo 64 emulation, in that it was the first to play some popular N64 titles at full speed on hardware made at the time of its release through high-level emulation; it isn't without its drawbacks though - pressure from users, combined with legal threats from Nintendo, forced them to discontinue development. Besides being for historical value, there's not much to expect from this emulator anyway due to compatibility issues.
Ryu64
is a Nintendo 64 emulator made in C#. The 'Ryu' word is named after the "RyuJIT" used in both Visual Basic & C#. But it might have been inspired by the lead author's sole (so far) commit at Switch emulator, Ryujinx's Git repository, and his depreciated Ryujinx Auto Updater tool. "86RYU", an x86 JIT compiler, is being developed alongside this emulator too.

Emulation issues

Main article: Recommended N64 plugins

The Nintendo 64 emulation scene can be described as a hot mess. It got to that point because of the overall emulation scene's climate in the early days, which was to stub off certain components of the emulated hardware as plugins. (Other consoles weren't immune to this phenomenon; it also happened to the first PlayStation.) Developers underestimated the complexity of the system, and with little demand for improvements beyond getting the popular titles working from beginning to end, most emulator developers stuck with the codebases they knew for as long as possible and never integrated any of the plugins that were needed to make up a full project, or merge their codebases into one project. And because almost no documentation is available for clean-room reverse engineers, figuring out how the hardware actually functioned had to be done manually, which took longer. The unfortunate result of this is that many games require specific plugin arrangements and specific emulators in order to run well, and there is no viable alternative that isn't just an iteration on the existing plugin-based emulators.

High-level vs. low-level graphics

One of the biggest hurdles to emulating the Nintendo 64 is the Reality Display Processor (RDP), one of two components in the Reality Coprocessor made by SGI. The Reality Display Processor was the most powerful consumer-grade GPU at the time of the console's release; this was a selling point that Nintendo wanted to emphasize as a result of working with SGI. However, reverse engineering efforts for popular Nintendo 64 games showed that Nintendo's software development kit included a common microcode for the RDP. It's possible Nintendo didn't want to give developers access at a lower level out of fears that doing so would damage consumer units, but that meant most of the effort spent emulating the RDP would go towards figuring out how to handle the microcode.

  • Most developers in 1999 and the early 2000s opted to approximate functions through various APIs such as Direct3D, OpenGL, and even Glide. While this resulted in much more reasonable system requirements for emulation, along with prettier, higher resolution graphics, this method proved to be hit and miss, often requiring per-game tweaks and settings to prevent graphical glitches on many games. Some games flat out didn't work, because it wasn't clear what the microcode did or why, and required extensive hardware testing.
  • On the low-level side, developers would either completely emulate the RDP or autodetect the microcode and use an appropriate implementation for the game. The former would mean a software renderer accurate to the hardware but major performance bottlenecks unless optimizations like vectorization and multi-threading were implemented. The latter would mean faster performance but developers would still have to figure out how to account for edge cases.

gonetz and one or two assistants have spent a large portion of development improving GlideN64's handling of microcode throughout 2016-2018.[2][3] This means that Factor 5's games are now working in the high-level graphics mode.[4][5] Other games may still have issues with RDP quirks like frame buffer/depth buffer access (issues with how the frame buffer is used as well as performance issues), VI emulation, and how combine/blending modes are emulated (such as noise issues and combiner accuracy).

It should be noted that most games technically work through the HLE method, but it's not an accurate representation of what the video output actually looked like, but rather a rough approximation by your graphics card. Whether this is an improvement or not is subjective.

Texture filtering

The Nintendo 64 was the first consumer device to be able to filter textures when rendering 3D objects. However, unlike every console and PC graphics card made after the N64, its implementation of bilinear was primitive 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 filtering, HLE plugins instead apply conventional filtering, interpolating straight from the source texture up to the output resolution the same way a PC game would. While that method is technically superior, it can 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 pre-rendered 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 oftentimes low resolutions.

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.

Voice Recognition Unit emulation

The Voice Recognition Unit (VRU) is an accessory used primarily by Hey You, Pikachu. No emulator or input plugin supports this, although there is an on-going effort to get it working.[6]

Densha De Go! Controller

Also available for the PlayStation, Densha De Go! 64 is a Japan-only train simulator released by Taito that is compatible with an optional special controller that plugs into the player 3 port.[7] No emulator supports it.

Pokémon Snap Station

There was a special kiosk designed to promote Pokémon Snap called the Pokémon Snap Station, which is also compatible with the North American Pokémon Stadium with its gallery mode. It is just a Nintendo 64 with special hardware designed for the station.[8][9] Although the special cartridge boots in emulators compatible with the regular version, the printing functions are inaccessible due to no emulation of the printer for the player 4 slot, credit system, or the special board to switch between the regular and special cartridges.

Transfer Pak emulation

A few games use the Transfer Pak such as Mario Golf, Mario Tennis, Mario Artist: Paint Studio, and the Pokémon Stadium games. Mostly, this can be done with NRage's input plugin, but a couple of things aren't emulated:

  • Taking pictures with the Japanese Game Boy Camera (called Pocket Camera) while in Transfer Pak mode playing Mario Artist: Paint Studio displays static.

64DD emulation

The 64DD (an abbreviation for "64 Disk Drive") was a 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 and was never released outside of Japan. Internal evidence suggests that, much like the GBA e-Reader, it wasn't even intended for a European release.

Expansion disks are region-coded to either Japan or the US (obviously unused) and won't work with N64 games from the wrong region. Only F-Zero X has full support for this feature, but dummied-out expansion data in Ocarina of Time and Mario Party 2 (JP/PAL) exist as well.

The special AV-In cartridge (NUS-028) that Mario Artist: Talent Studio can use doesn't work because it requires an RCA cable signal.

Recently, there has been an effort to emulate the 64DD, and now Project64 and MAME can run several commercial 64DD games as part of its N64 emulator. This is being ported to CEN64 with the help of LuigiBlood. The latest newcomer is Mupen64Plus which is the base of other emulators such as m64p and RMG.

Name Platform(s) Latest Version N64 Mouse 64DD Emulation Active Recommended
PC / x86
ParaLLEl Windows Linux macOS FreeBSD 2.0-rc2 Mid/High
Project64 Windows 3.0.1
64DD.org Builds
Mid
CEN64 Windows Linux macOS git Mid
m64p Windows Linux macOS git ? ✗ (WIP)
MAME Windows Linux macOS FreeBSD 0.264 Mid
  • Project64's latest versions emulate the N64 mouse and can load Zoinkity's hacked 64DD cartridge conversions at playable speeds. You'll need to set every game to have 8MB of Memory by default manually. Games do not save, some need "32-bit engine" to be unchecked (like Talent Studio), and some (like Polygon Studio to fix models and Paint Studio to fix stamps) need the Angrylion GFX plugin rather than GlideN64, which does the job for the rest.
    • The 64DD hardware started to be emulated around 2.3's release with the help of LuigiBlood. Saving works but in the form of NDR files. NDR files are copied versions of NDD images with save data included as to not write to the clean unaltered images. In order to play 64DD games in their original forms, 8MB of memory is still needed because the real hardware needed the Expansion Pak upgrade. The IPL is also needed.
  • MAME includes early basic 64DD emulation as well but is much slower. Disk images need to be in head/track format. See here for more information. It does not currently support disk swapping or saving disk to files. Writes only update the copy in memory, and, once the MAME process ends, the changes are lost. Current usage: mame n64dd -quickload disk -cart cart -nodrc (both disk and cart are optional)
  • CEN64, like Project64, had 64DD emulation ported to it from MAME. However, it focuses on accuracy and plays much slower than other emulators, aside from the 64DD emulation itself is imperfect.

iQue Player emulation

Before the GBA, DS, and 3DS, Nintendo released a modified version of their Nintendo 64 system for the Chinese market, which was called the iQue Player, through their not-quite-subsidiary iQue. Fourteen games were translated into Simplified Chinese, including Sin and Punishment, Ocarina of Time (the Majora's Mask port was canceled), Super Mario 64, and others.

Unlike the Chinese releases of their more recent systems and their games, iQue Player releases are regular N64 roms wrapped with several layers of encryption, as well as a ticket and signature system like that on Wii, DSi, 3DS, Wii U, and Switch. The Chinese ROM-hacking scene is very active though and has translated the Japanese regular N64 releases for many of these to their language already, which explains some of the Chinese ROMs floating for those. However, recently, almost all pieces of iQue Player software were decrypted to regular .z64 ROM format.

Several of the Chinese game localizations already run on N64 emulators, but as some hardware features of the iQue Player are not yet supported, some games, as well as the system menu and features in games such as saving, do not work yet.

Aleck 64 arcade emulation

Nintendo collaborated with SETA to release an arcade system based on their Nintendo 64 system (kind of like their PlayChoice-10 for the NES, Super System arcade hardware for SNES, and later Triforce for GCN). The Nintendo 64-variant with more RAM, the Aleck 64, failed to catch on and bombed. It was never released outside Japan, even though one N64 port made it.

The Aleck 64 ROMs were dumped, and Zoinkity is working on converting them to regular N64 ROMs (with controls remapped to N64 controller buttons). They generally require an 8MB Expansion Pak to run at all and 4K EEPROM to save settings and scores. The ones covered by these patches are:

  • Donchan Puzzle Hanabi de Doon!
  • Eleven Beat: World Tournament
  • Hi Pai Paradise
  • Kuru Kuru Fever
  • Magical Tetris Challenge
  • Mayjinsen 3 / Meijin-Sen
  • Star Soldier: Vanishing Earth (also ported to N64)
  • Super Real Mahjong VS
  • Tower & Shaft
  • Vivid Dolls (official eroge game on a Nintendo console)

The already available patches to convert arcade ROM dumps to regular N64 ROM format can be found here.

The remaining ones from the system's library not yet covered are:

  • Hi Pai Paradise 2
  • Rev Limit
  • Variant Schwanzer

Virtual Console games in Dolphin

Some N64 games are emulated well on a Virtual Console game through Dolphin. The system requirements are much higher, but it's doable for many games. The following games are on the N64 Virtual Console for Wii:

  • 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

Notes

  1. Though a separate add-on was later released called the "Expansion Pak" that added an additional 4MB of RAM, totaling 8MB.

References

  1. loganmc10. Ignore TLB write if TLB entry is unmapping itself. "By the way, once this, along with the other PR's I have waiting are merged, we are at "compatibility parity" with Project64 as far as I can tell. I don't know of any game that doesn't boot with mupen64plus that works in PJ64."
  2. Public Release 3.0. Blogspot (2017-12-29)
  3. Initial implementation of BOSS ZSort ucode (WDC, Stunt Racer). GitHub (2018-02-10)
  4. "Indiana J. & Infernal Machine" HLE. Indiegogo (2018-05-17)
  5. HLE implementation of microcodes for "Indiana Jones" and "Battle for Naboo" completed.. Blogspot (2018-05-26)
  6. Hey You! Pikachu - Possible HLE Implementation. emutalk (2014-10-27, Last edit: 2016-04-04)
  7. Densha De Go! Nintendo 64 Controller!. YouTube (2017-01-20)
  8. The Pokemon Snap Station. YouTube (2016-05-21)
  9. VIDEO GAME KIOSKS - Extreme Game Collecting!. YouTube (2016-05-25)