Difference between pages "Game Boy/Game Boy Color emulators" and "Nintendo 3DS emulators"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
 
(New vvctre link is already dead.)
 
Line 1: Line 1:
 
{{Infobox console
 
{{Infobox console
|title = Nintendo Game Boy/Color
+
|title = Nintendo 3DS
|logo = Game_Boy.png
+
|logo = 3ds.png
 
|developer = [[:Nintendo]]
 
|developer = [[:Nintendo]]
 
|type = [[:Category:Handheld consoles|Handheld game console]]
 
|type = [[:Category:Handheld consoles|Handheld game console]]
|generation = [[:Category:Fourth-generation video game consoles|Fourth generation]]
+
|generation = [[:Category:Eighth-generation video game consoles|Eighth generation]]
|release = 1989
+
|release = 2011
|discontinued = 2003
+
|discontinued = 2020
|predecessor = [[Game & Watch]]
+
|predecessor = [[Nintendo DSi emulators|Nintendo DSi]]
|successor = [[Virtual Boy emulators|Virtual Boy]]
 
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
  
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]].
+
The '''[[wikipedia:Nintendo 3DS|Nintendo 3DS]]''' is an eighth-generation handheld game console by Nintendo, released on March 27, 2011 for {{inflation|USD|249|2011}}. The original model and the 2DS had a dual-core ARM11 MPCore at 268 MHz and a single-core ARM9, 128MB of RAM and 6MB of VRAM, and a DMP PICA200 GPU. The New 3DS and New 2DS XL models upgrade this to an 804 MHz quad-core ARM11 and 256MB of RAM, along with an extra pair of shoulder buttons and a right analogue stick.
  
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.
+
The most notable feature of this console is the use of [https://en.wikipedia.org/wiki/Autostereoscopy autostereoscopic] (glasses-free) 3D, which can be configured using a slider. This was omitted on the cost-reduced 2DS and New 2DS XL models, which was released due to eye health concerns with children whom Nintendo advised not to use the 3DS's stereoscopic mode (though it is speculated that said advisories were more for liability reasons in case of a health-related lawsuit).
  
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.
+
__TOC__
  
 
==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"|Open-Source
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
!colspan="8"|PC / x86
+
!colspan="7"|PC / x86
 
|-
 
|-
|[[SameBoy]]
+
|[[Citra]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://sameboy.github.io/downloads {{SameBoyVer}}]
 
|{{✓}}<ref group=N name=sameboylink>SameBoy's libretro core supports Link Cable, standalone does not.</ref> ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[[BGB]]
 
|align=left|{{Icon|Windows}}
 
|[http://bgb.bircd.org/#downloads {{BGBVer}}]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|[[Gambatte]]
 
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://sourceforge.net/projects/gambatte/files/gambatte {{GambatteVer}}]
+
|[https://citra-emu.org/download Nightly]
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|[[Gearboy]]
+
|Vvctre
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows|W7|Linux}}
|[https://github.com/drhelius/Gearboy/releases {{GearboyVer}}]
+
|{{VvctreVer}}
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{✓}}
|-
+
|{{✗}}
|[[BizHawk]]
+
|{{?}}
|align=left|{{Icon|Windows}}
+
|{{✗}}
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
 
|{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[http://binji.github.io/binjgb/ binjgb]
 
|align=left|{{Icon|Web}}
 
|[https://github.com/binji/binjgb/releases {{binjgbVer}}]
 
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|[http://emulicious.net Emulicious]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://emulicious.net/downloads {{EmuliciousVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{~}}
 
|-
 
|[[higan]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://byuu.org/emulation/higan {{higanVer}}]
 
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|{{✓}}<ref group=N name=mgbalink>Pretty buggy but sometimes works.</ref> ||{{✓}} ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[VisualBoy Advance|VisualBoy Advance-M (VBA-M)]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/visualboyadvance-m/visualboyadvance-m/releases {{VBAMVer}}]
 
|{{✓}} ||{{✓}}<ref group=N name=one>Full GBC, GBA and GB support since version 2.1.3.</ref>||{{✓}} ||{{✓}} ||{{✗}}
 
 
|-
 
|-
|[[GBE+]]
+
|Corgi3DS
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://github.com/shonumi/gbe-plus/releases {{GBEVer}}]
+
|[https://github.com/PSI-Rockin/Corgi3DS git]
|{{}} ||{{✗}} ||{{}} ||{{✓}} ||{{✗}}
+
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
|[https://fms.komkon.org/VGB VGB]
+
|[[3dmoo]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows|Linux}}
|[https://fms.komkon.org/VGB {{VGBVer}}]
+
|[https://github.com/plutooo/3dmoo git]
|{{}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
+
|{{}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|[[Pantheon]]
+
|[[TronDS]]
|align=left|{{Icon|Windows}}
+
|align=left|{{Icon|Windows|Linux}}
|[http://bostjan-grandovec.si/Content/News.htm {{PantheonVer}}]
+
|[http://trondsemu.byethost15.com/downloads.html 1.0.0.5]
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
+
|{{}}
|-
+
|{{✗}}
|[http://hhug.me/ hhugboy]
+
|{{✗}}
|align=left|{{Icon|Windows}}
+
|{{✗}}
|[https://github.com/tzlion/hhugboy/releases/tag/v1.2.7 {{hhugboyVer}}]
 
|{{}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}}
 
 
|-
 
|-
|UGE
+
|LemonLime
|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/Cyuubi/LemonLime/ git]
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|[[TGB Dual]]
+
!colspan="9"|Mobile / ARM
|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 "L" v1.2]
 
|{{✓}} ||{{✓}}<ref group=N name=two /> ||{{✓}} ||{{✗}} ||{{✗}}
 
 
|-
 
|-
|GiiBiiAdvance
+
|[[Citra]]
|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
 
|-
 
|[[mGBA]]
 
|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}}
 
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=com.explusalpha.GbcEmu 1.5.54]
+
|[https://play.google.com/store/apps/details?id=org.citra.citra_emu Beta 15]<br/>[https://github.com/citra-emu/citra-android git]
|? ||{{✗}} ||? ||{{✓}} ||{{}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{}}
 
|-
 
|-
|[https://my-oldboy-free-gbc-emulator.en.uptodown.com/android My OldBoy!]
+
|[[Citra_MMJ_(Unofficial)|Citra-MMJ]] <small>(Unofficial)</small>
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=com.fastemulator.gbc 1.5.2]
+
|[https://github.com/weihuoya/citra/releases git]
|{{✓}} ||{{✗}} ||? ||{{✓}} ||{{✗}}
+
|{{✓}}
|-
+
|{{✗}}
|John GBC
+
|{{✓}}
|align=left|{{Icon|Android}}
+
|{{✓}}<small> (WIP)</small>
|[https://play.google.com/store/apps/details?id=com.johnemulators.johngbc 3.93]
 
|? ||{{✗}} ||? ||{{✓}} ||{{✗}}
 
|-
 
|[http://www.explusalpha.com/ GBA.emu]<br/><small>(VBA-M r1097 based)</small>
 
|align=left|{{Icon|Android}}
 
|[https://play.google.com/store/apps/details?id=com.explusalpha.GbaEmu 1.5.51]
 
|? ||{{✗}} ||? ||{{✓}} ||{{✗}}
 
|-
 
|[https://github.com/afjcjsbx/gambatte-droid GambatteDroid]
 
|align=left|{{Icon|Android}}
 
|1.2
 
|? ||{{✗}} ||? ||{{✗}} ||{{✗}}
 
|-
 
|[http://arktos.se/meboy/ MeBoy]
 
|align=left|{{Icon|Java}}
 
|2.2
 
|{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}}
 
|-
 
!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://github.com/Steveice10/GameYob/releases v1.0.8]
 
|? ||{{✗}} ||? ||{{✗}} ||{{✓}}
 
|-
 
|[[VisualBoy_Advance#VBA-M|Visual Boy Advance-M (VBA-M)]]
 
|align=left|{{Icon|GCN|Wii}}
 
|r1231
 
|{{✓}} ||{{✓}} <small>(as VBA-Next)</small> ||? ||{{✓}} ||{{✓}}
 
|-
 
|[http://filetrip.net/psp-downloads/homebrew/download-masterboy-210-f28308.html MasterBoy]
 
|align=left|{{Icon|PSP}}
 
|2.10
 
|{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✓}}
 
|-
 
|[[Virtual Console]]
 
|align=left|{{Icon|3DS}}
 
|8.10
 
|{{✓}} <small>(Pokemon only)</small> ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Wii|3DS}}<br>{{Icon|PSV}}
 
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
 
|? ||{{✓}} ||? ||{{✓}} ||{{✗}}
 
|-
 
|[http://filetrip.net/psp-downloads/homebrew/download-gemp-homers-rin-33-final-f27565.html GeMP]
 
|align=left|{{Icon|PSP}}
 
|3.3 Final
 
|{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}}
 
|-
 
|[http://dl.qj.net/psp/emulators/rin-v132-gameboy-emulator/gameboy-color-emulator.html RIN]
 
|align=left|{{Icon|PSP}}
 
|1.32
 
|{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}}
 
 
|}
 
|}
<references group=N />
 
 
===Comparison===
 
 
====Game Boy-only emulators====
 
;[[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.
+
===Comparisons===
 +
;[[Citra]]:An open-source Nintendo 3DS emulator made by experienced emulator developers. The devs insist that it's still experimental, but as of mid-2019 around half of all games are fully playable with minor or no issues.  [https://citra-emu.org/entry/announcing-citra-android/ An official Android version was released in May of 2020].
  
'''List of recommended GB/GBC emulators for Android:'''
+
;Vvctre
* [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.)
+
:Based on Citra. Made by valentin. Optimized for Luigi's Mansion 2(to run this game smoothly, turn on Disk Shader Cache, put the CPU clock speed to 80% and the CPU tick speed to 21000%). Also emulates the 3DS OS. The project's Github page no longer exists. It was deleted for unknown reasons. Without the source code available, all builds are now in violation of GPLv2[https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#UnchangedJustBinary][https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#SourceAndBinaryOnDifferentSites].
  
====Backwards-compatible GBA emulators====
+
;[[3dmoo]]:Another open-source Nintendo 3DS emulator, made by experienced developers in the DS hacking scene. It was released shortly after Citra and received similar progress for a few months, but was eventually aborted by its authors after a while.
;[[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.
+
;[[TronDS]]:A closed-source Nintendo 3DS emulator, presumably made by the iDeaS author. Little is known about it other than that it can run simple homebrew. It cannot be used for playing games.
;[[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]]====
+
;Corgi3DS:An unique 3DS emulator designed for macOS systems. Its GitHub activity started on [https://github.com/PSI-Rockin/Corgi3DS/commit/1b81c7e00c9a7a73f2da12d07ec3a9e4bc69c6ac May 5, 2019]. Main programmer is a self-proclaimed dog lover and has previously created CorgiDS and DobieStation, though the former seemed to be abandoned. Corgi3DS is mainly indigenous but the preliminary [https://github.com/PSI-Rockin/Corgi3DS/commit/a60b06683495e4e8fd0c170ec4ca8c453ce31609 Wi-Fi code] was ported from [[melonDS]]' code.(project on a  indefinite hiatus, PSI said this about the matter "Haven't worked on it in several months, it's basically a hobby project of mine that I touch when I feel the urge").
;[[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==
 +
Citra currently can't emulate any of the 3DS's online features aside from LAN multiplayer. It can't connect to Nintendo's servers but users can create rooms and play through the internet.
  
===Oversaturation===
+
Corgi3ds currently can't run any game without heavy stuttering.
[[File:Gbc over saturation2.png|thumb|right|350px|Comparison of saturation levels in [[VisualBoy Advance#VBA-M|VBA-M]] and [[Gambatte]].]]
 
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.
 
 
 
This issue also affects [[Game Boy Advance emulators#Oversaturation|Game Boy Advance emulation]].
 
 
 
====Emulator options====
 
 
 
'''mGBA:''' Under Tools > Settings > Shaders, you will find three customizable '''Desaturation''' parameters.
 
 
 
'''VBA-M:''' Under Options > Game Boy, you will find the '''GB color option'''. The recent nightly builds also include the '''LCD Filter''' option.
 
 
 
===Unlicensed Mappers===
 
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.
 
 
 
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.
 
 
 
==Hardware Features==
 
===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'').
 
 
 
===Game Boy Camera===
 
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Build to Use
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
! colspan="4"|PC / x86
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|0.7
 
|{{✓}}
 
|-
 
|[[VisualBoy Advance#VBA-M|VBA-M]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|Latest
 
|{{✓}}
 
|-
 
|GiiBiiAdvance
 
|align=left|{{Icon|Windows}}
 
|?
 
|{{✗}}
 
|-
 
|[[BGB]]
 
|align=left|{{Icon|Windows}}
 
|?
 
|{{✗}}
 
|-
 
|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.
 
 
 
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>.
 
  
===Game Boy Printer===
+
Citra emulates the home menu although you can't launch anything on it (use vvctre for the os 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''.
 
  
[[VisualBoy Advance]] (including its forks), [[GBE+]] and [[mGBA]] have Game Boy Printer support that turn the signals into a bitmap form of the image.
+
Currently there is no full screen support in linux vvctre, valentin said he can't fix it.
  
===Motion Control (Tilt Sensor)===
+
==Game images==
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.
+
===3DS vs. CIA===
 +
<!--this section is pretty inaccurate-->
 +
There are two big types of 3DS game images currently:
 +
;NCSD-type: Includes '''.CCI''' (CTR Cart Image), aka '''.3DS''' - data on physical carts, can be executed right off the bat, not used much since no one bothered to develop a CFW solution to load them yet (besides converting them to CIA) and only overpriced flashcarts (Gateway/Sky3DS) can load them.
 +
;NCCH-type: Includes '''.CIA''' (CTR Importable Archive) and '''.CXI''' - installers that unpack game data to the SD card or the 3DS NAND memory. Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital games are often distributed as CIAs.
  
===Rumble===
+
*Note that CTR (Citrus) is the internal code names for the 3DS.
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. It is unknown if any emulator supports this feature.
 
  
===Multiplayer===
+
Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on a real 3DS is still the preferred way to go), the CIA format is preferred in many sharing websites, downloader tools and even tools to dump your own games.  
* '''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===
+
However, converting a CIA image to 3DS format (and vice-versa) is still possible with no loss of content. Read the Encryption section below for a guide.
====Mobile Game Boy Adapter====
 
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.
 
  
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.
+
Some outdated dumping utilities intended for use with Citra (like braindump) produce damaged decrypted 3DS images that can't be easily converted back. No known solution exists so far to fix those dumps.
  
====Hudsonsoft KISS Link====
+
===Encryption===
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
+
Most dumps online are also encrypted. This encryption poses no problem for playing game images on a real 3DS since it can deal with that encryption with internal keys included in the bootrom, but becomes a problem when trying to emulate them on PC. '''Citra requires additional encryption keys to play encrypted games.''' If you want to play encrypted games on Citra without these keys, you'll have to convert your game images to the decrypted format.
  
===Accessories===
+
Formerly, decrypting those ROMs used to require real 3DS hardware (bafflingly enough, Citra devs still ask users to do this even nowadays). It required files generated by a real 3DS called '''xorpads''' unique to that game version, using the encryption engine within the 3DS. After this part, these xorpads (which are big) can be used with PC tools (or other 3DS-based homebrew) to produce the decrypted game image. After that, some 3DS homebrew (Decrypt9, GodMode9) included tools to directly convert encrypted images to decrypted images with a single button press, but those still require a real 3DS.
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+.
 
  
* '''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).
+
The game changer was the sighax exploit, allowing to dump the 3DS bootrom which includes these encryption keys. This file can be downloaded from the [[Emulator Files#Nintendo 3DS|Emulator Files]] page. You can then use a program like '''[https://gbatemp.net/threads/tutorial-extract-decrypt-games-nand-backups-and-sd-contents-with-fuse-3ds.499994/ fuse-3ds]''' to decrypt games using this file. Simply place boot9.bin in the same folder, run the program, mount the encrypted .cia or .3ds, and find the '''decrypted.cxi''' file inside (usually in the first folder). Citra should be able to load this file without issues.
* '''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.
 
* '''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>
 
* '''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}}.
 
  
==References==
+
Due to these keys being available, Citra can now play encrypted games (3ds or CIA) without decrypting them. Read this page
{{reflist}}
+
[https://citra-emu.org/wiki/aes-keys/]. Then, go to this reddit page and copy the code from second comment (credit floppydoppy2)
 +
[https://www.reddit.com/r/CemuPiracy/comments/gpo2ey/aes_key_nintendo_3ds_title_keys_for_citra/]. Copy it and make a new .TXT file named 'aes_keys.txt'
 +
Place this txt file in the sysdata folder of Citra's user directory. This key file is already included in the 3DS Shared Data download in the Emulator Files page.
  
==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}}
Line 357: Line 149:
 
[[Category:Handheld consoles]]
 
[[Category:Handheld consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo consoles]]
[[Category:Game Boy/Game Boy Color emulators|*]]
+
[[Category:Eighth-generation video game consoles]]
[[Category:Fourth-generation video game consoles]]
+
[[Category:Nintendo 3DS emulators|*]]

Revision as of 19:52, 2 September 2021

Nintendo 3DS
3ds.png
Developer Nintendo
Type Handheld game console
Generation Eighth generation
Release date 2011
Discontinued 2020
Predecessor Nintendo DSi
Emulated

The Nintendo 3DS is an eighth-generation handheld game console by Nintendo, released on March 27, 2011 for $249. The original model and the 2DS had a dual-core ARM11 MPCore at 268 MHz and a single-core ARM9, 128MB of RAM and 6MB of VRAM, and a DMP PICA200 GPU. The New 3DS and New 2DS XL models upgrade this to an 804 MHz quad-core ARM11 and 256MB of RAM, along with an extra pair of shoulder buttons and a right analogue stick.

The most notable feature of this console is the use of autostereoscopic (glasses-free) 3D, which can be configured using a slider. This was omitted on the cost-reduced 2DS and New 2DS XL models, which was released due to eye health concerns with children whom Nintendo advised not to use the 3DS's stereoscopic mode (though it is speculated that said advisories were more for liability reasons in case of a health-related lawsuit).

Emulators

Name Platform(s) Latest Version Open-Source Libretro Core Active Recommended
PC / x86
Citra Windows Linux macOS Nightly
Vvctre Windows Windows 7 Linux git ?
Corgi3DS Windows Linux macOS git
3dmoo Windows Linux git
TronDS Windows Linux 1.0.0.5
LemonLime Windows Linux macOS git
Mobile / ARM
Citra Android Beta 15
git
Citra-MMJ (Unofficial) Android git (WIP)

Comparisons

Citra
An open-source Nintendo 3DS emulator made by experienced emulator developers. The devs insist that it's still experimental, but as of mid-2019 around half of all games are fully playable with minor or no issues. An official Android version was released in May of 2020.
Vvctre
Based on Citra. Made by valentin. Optimized for Luigi's Mansion 2(to run this game smoothly, turn on Disk Shader Cache, put the CPU clock speed to 80% and the CPU tick speed to 21000%). Also emulates the 3DS OS. The project's Github page no longer exists. It was deleted for unknown reasons. Without the source code available, all builds are now in violation of GPLv2[1][2].
3dmoo
Another open-source Nintendo 3DS emulator, made by experienced developers in the DS hacking scene. It was released shortly after Citra and received similar progress for a few months, but was eventually aborted by its authors after a while.
TronDS
A closed-source Nintendo 3DS emulator, presumably made by the iDeaS author. Little is known about it other than that it can run simple homebrew. It cannot be used for playing games.
Corgi3DS
An unique 3DS emulator designed for macOS systems. Its GitHub activity started on May 5, 2019. Main programmer is a self-proclaimed dog lover and has previously created CorgiDS and DobieStation, though the former seemed to be abandoned. Corgi3DS is mainly indigenous but the preliminary Wi-Fi code was ported from melonDS' code.(project on a indefinite hiatus, PSI said this about the matter "Haven't worked on it in several months, it's basically a hobby project of mine that I touch when I feel the urge").

Emulation issues

Citra currently can't emulate any of the 3DS's online features aside from LAN multiplayer. It can't connect to Nintendo's servers but users can create rooms and play through the internet.

Corgi3ds currently can't run any game without heavy stuttering.

Citra emulates the home menu although you can't launch anything on it (use vvctre for the os emulation).

Currently there is no full screen support in linux vvctre, valentin said he can't fix it.

Game images

3DS vs. CIA

There are two big types of 3DS game images currently:

NCSD-type
Includes .CCI (CTR Cart Image), aka .3DS - data on physical carts, can be executed right off the bat, not used much since no one bothered to develop a CFW solution to load them yet (besides converting them to CIA) and only overpriced flashcarts (Gateway/Sky3DS) can load them.
NCCH-type
Includes .CIA (CTR Importable Archive) and .CXI - installers that unpack game data to the SD card or the 3DS NAND memory. Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital games are often distributed as CIAs.
  • Note that CTR (Citrus) is the internal code names for the 3DS.

Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on a real 3DS is still the preferred way to go), the CIA format is preferred in many sharing websites, downloader tools and even tools to dump your own games.

However, converting a CIA image to 3DS format (and vice-versa) is still possible with no loss of content. Read the Encryption section below for a guide.

Some outdated dumping utilities intended for use with Citra (like braindump) produce damaged decrypted 3DS images that can't be easily converted back. No known solution exists so far to fix those dumps.

Encryption

Most dumps online are also encrypted. This encryption poses no problem for playing game images on a real 3DS since it can deal with that encryption with internal keys included in the bootrom, but becomes a problem when trying to emulate them on PC. Citra requires additional encryption keys to play encrypted games. If you want to play encrypted games on Citra without these keys, you'll have to convert your game images to the decrypted format.

Formerly, decrypting those ROMs used to require real 3DS hardware (bafflingly enough, Citra devs still ask users to do this even nowadays). It required files generated by a real 3DS called xorpads unique to that game version, using the encryption engine within the 3DS. After this part, these xorpads (which are big) can be used with PC tools (or other 3DS-based homebrew) to produce the decrypted game image. After that, some 3DS homebrew (Decrypt9, GodMode9) included tools to directly convert encrypted images to decrypted images with a single button press, but those still require a real 3DS.

The game changer was the sighax exploit, allowing to dump the 3DS bootrom which includes these encryption keys. This file can be downloaded from the Emulator Files page. You can then use a program like fuse-3ds to decrypt games using this file. Simply place boot9.bin in the same folder, run the program, mount the encrypted .cia or .3ds, and find the decrypted.cxi file inside (usually in the first folder). Citra should be able to load this file without issues.

Due to these keys being available, Citra can now play encrypted games (3ds or CIA) without decrypting them. Read this page [3]. Then, go to this reddit page and copy the code from second comment (credit floppydoppy2) [4]. Copy it and make a new .TXT file named 'aes_keys.txt' Place this txt file in the sysdata folder of Citra's user directory. This key file is already included in the 3DS Shared Data download in the Emulator Files page.