Difference between revisions of "Game Boy/Game Boy Color emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Refactor)
(an improvement but it still needs more work)
Line 1: Line 1:
[[File:942953-database_hardware_gameboy01.jpg|thumb|The Game Boy handheld console]]
+
[[File:942953-database_hardware_gameboy01.jpg|thumb|The Game Boy.]]
The [[wikipedia:Game Boy|Game Boy]] is an 8-bit, fourth-generation handheld console released by Nintendo in 1989. The original model has a monochrome display. A revision called the Game Boy Pocket was released in 1996, offering a more compact body and a better screen. In Japan, a special edition of Game Boy Pocket, called the Game Boy Light, added a front light to the screen. This feature would not be seen in Nintendo handhelds outside Japan until the Game Boy Advance SP.
+
The '''[[wikipedia:Game Boy|Game Boy]]''' is an 8-bit, fourth-generation handheld console released by Nintendo in 1989. It had a monochrome display that could show only two colors, black and white (though the white was more green). 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.
  
Many Game Boy emulators offer at least some of the special features of the [[wikipedia:Super Game Boy|Super Game Boy]], a special cartridge for the SNES released in 1994. It allows playback of original Game Boy games with added borders, colorization, custom button mappings and other features. A Japan-exclusive revision called the Super Game Boy 2 would fix CPU timing (allowing to re-introduce link cable support, the original SGB had the ability to link, but there was no ext. port, as games would desync anyways) and new borders.
+
Nintendo released a peripheral for the [[Super Nintendo emulators|Super Nintendo Entertainment System]] called [[wikipedia:Super Game Boy|Super Game Boy]] in 1994, which was modelled like a cartridge but included its own cartridge slot for Game Boy games, as well as the hardware needed to translate the games. Many Game Boy 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.
  
The Game Boy's successor, the [[wikipedia:Game Boy Color|Game Boy Color]] (GBC), was released in 1998. It features a color screen, bigger memory and a CPU clocked at double the speed of the original. Otherwise, the hardware similarities allow cross-compatibility between the two platforms and they are often treated as one. The follow up console was the [[Game_Boy_Advance_emulators|Game Boy Advance]].
+
The Game Boy's successor, the [[wikipedia:Game Boy Color|Game Boy Color]] (GBC), was released in 1998. It was named such from its color screen, but it also had larger memory and a double-clocked CPU. The hardware similarities allow cross-compatibility between the two platforms and they are often treated as one. They would both by succeeded by the backwards-compatible [[Game Boy Advance emulators|Game Boy Advance]].
  
 
==Emulators==
 
==Emulators==
There is tons of Game Boy emulators. See for example on [https://github.com/search?o=desc&q=gameboy+emulator&s=updated&type=Repositories&utf8=%E2%9C%93 GitHub].
+
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].
{| class="wikitable"
+
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Operating System(s)
Line 18: Line 18:
 
!colspan="7"|PC
 
!colspan="7"|PC
 
|-
 
|-
|style="text-align:center;"|BGB
+
|BGB
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|[http://bgb.bircd.org/#downloads 1.5.5]
+
|[http://bgb.bircd.org/#downloads 1.5.5]
|style="text-align:center;"|✓
+
|✓ ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[[Gambatte]]
+
|[[Gambatte]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://sourceforge.net/projects/gambatte/files/gambatte/r571/ r571]
+
|[https://sourceforge.net/projects/gambatte/files/gambatte/r571/ r571]
|style="text-align:center;"|✗
+
|✗ ||✓ ||✓
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[[BizHawk]]
+
|[[BizHawk]]
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
+
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[GBE+]]
+
|[[GBE+]]
|style="text-align:center;"|Windows, Linux, OS X (untested)
+
|Windows, Linux, OS X (untested)
|style="text-align:center;"|[https://drive.google.com/file/d/0B5aZT1MLfWJsdXAzZXV0dURiNUE/view SVN 30.5.2016]
+
|[https://drive.google.com/file/d/0B5aZT1MLfWJsdXAzZXV0dURiNUE/view SVN 30.5.2016]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[higan]]
+
|[[higan]]
|style="text-align:center;"|Windows, Linux, OS X
+
|Windows, Linux, OS X
|style="text-align:center;"|[http://byuu.org/emulation/higan/ {{higanVer}}]
+
|[http://byuu.org/emulation/higan/ {{higanVer}}]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[MAME]]
+
|[[MAME]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[http://www.mamedev.org/release.html {{MAMEVer}}]
|style="text-align:center;"|?
+
|? ||✓ ||✗
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[mGBA]]
+
|[[mGBA]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
+
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
|style="text-align:center;"|?
+
|? ||✓ ||✗
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[https://github.com/LIJI32/SameBoy SameBoy]
+
|[https://github.com/LIJI32/SameBoy SameBoy]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://github.com/LIJI32/SameBoy/releases 0.8]
+
|[https://github.com/LIJI32/SameBoy/releases 0.8]
|style="text-align:center;"|✗
+
|✗ ||✓ ||✗
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[VisualBoy Advance|Visual Boy Advance-M (VBA-M)]]
+
|[[VisualBoy Advance|Visual Boy Advance-M (VBA-M)]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[http://www.emucr.com/search/label/VisualBoyAdvance-M/ SVN]
+
|[http://www.emucr.com/search/label/VisualBoyAdvance-M/ SVN]
|style="text-align:center;"|✓
+
|✓ ||✗<ref group=N name=one>A VBA-M libretro core does exist, but it only emulates GBA.</ref> ||✗
|style="text-align:center;"|✗*
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[http://hhug.me/ hhugboy]
+
|[http://hhug.me/ hhugboy]
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|[https://github.com/tzlion/hhugboy/releases/tag/v1.2.1 1.2.1]
+
|[https://github.com/tzlion/hhugboy/releases/tag/v1.2.1 1.2.1]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[https://github.com/drhelius/Gearboy Gearboy]
+
|[https://github.com/drhelius/Gearboy Gearboy]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://github.com/drhelius/Gearboy/releases 2.3.1]
+
|[https://github.com/drhelius/Gearboy/releases 2.3.1]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|KiGB
+
|KiGB
|style="text-align:center;"|Windows, Linux, OS X
+
|Windows, Linux, OS X
|style="text-align:center;"|[http://kigb.emuunlim.com/kigb_win.zip 2.05]
+
|[http://kigb.emuunlim.com/kigb_win.zip 2.05]
|style="text-align:center;"|✓
+
|✓ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[[TGB Dual]]
+
|[[TGB Dual]]
|style="text-align:center;"|Windows, Linux**
+
|Windows, Linux<ref group=N name=two>As an SDL port (and the [[libretro]] core is based on this version).</ref>
|style="text-align:center;"|[https://github.com/libertyernie/tgbdual_L/releases "L" v1.2]
+
|[https://github.com/libertyernie/tgbdual_L/releases "L" v1.2]
|style="text-align:center;"|✓
+
|✓ ||✓<ref group=N name=two /> ||✗
|style="text-align:center;"|✓**
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|GiiBiiAdvance
+
|GiiBiiAdvance
|style="text-align:center;"|Windows, Linux
+
|Windows, Linux
|style="text-align:center;"|[https://github.com/AntonioND/giibiiadvance/releases 0.2.0]
+
|[https://github.com/AntonioND/giibiiadvance/releases 0.2.0]
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
 
!colspan="7"|Mobile
 
!colspan="7"|Mobile
 
|-
 
|-
|style="text-align:center;"|[[Gambatte]]
+
|[[Gambatte]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://sourceforge.net/projects/gambatte/files/gambatte/r571/ r571]
+
|[https://sourceforge.net/projects/gambatte/files/gambatte/r571/ r571]
|style="text-align:center;"|✗
+
|✗ ||✓ ||✓
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[[mGBA]]
+
|[[mGBA]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
+
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
|style="text-align:center;"|?
+
|? ||✓ ||✗
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|GBC.emu
+
|GBC.emu
|style="text-align:center;"|Android
+
|Android
|style="text-align:center;"|1.5.19
+
|1.5.19
|style="text-align:center;"|?
+
|? ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|My OldBoy!
+
|My OldBoy!
|style="text-align:center;"|Android
+
|Android
|style="text-align:center;"|1.0.3
+
|1.0.3
|style="text-align:center;"|?
+
|? ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|John GBC
+
|John GBC
|style="text-align:center;"|Android
+
|Android
|style="text-align:center;"|3.50
+
|3.50
|style="text-align:center;"|?
+
|? ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|GambatteDroid
+
|GambatteDroid
|style="text-align:center;"|Android
+
|Android
|style="text-align:center;"|?
+
|?
|style="text-align:center;"|?
+
|? ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|GBA.emu
+
|GBA.emu
|style="text-align:center;"|Android
+
|Android
|style="text-align:center;"|1.5.19
+
|1.5.19
|style="text-align:center;"|?
+
|? ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
 
!colspan="7"|Consoles
 
!colspan="7"|Consoles
 
|-
 
|-
|style="text-align:center;"|[[mGBA]]
+
|[[mGBA]]
|style="text-align:center;"|[[Wii]], [[Nintendo 3DS]], PSVita
+
|[[Wii]], [[Nintendo 3DS]], PSVita
|style="text-align:center;"|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
+
|[https://endrift.com/mgba/downloads.html {{MGBAVer}}]
|style="text-align:center;"|?
+
|? ||✓ ||✗
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[http://gbatemp.net/threads/gameyob-a-gameboy-emulator-for-ds.343407/ GameYob DS]
+
|[http://gbatemp.net/threads/gameyob-a-gameboy-emulator-for-ds.343407/ GameYob DS]
|style="text-align:center;"|[[Nintendo DS]]
+
|[[Nintendo DS]]
|style="text-align:center;"|[http://www.emucr.com/search/label/GameYob Git]
+
|[http://www.emucr.com/search/label/GameYob Git]
|style="text-align:center;"|✓ (NiFi)
+
|✓ <small>(NiFi)</small> ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[https://gbatemp.net/threads/gameyob-3ds-gb-c-emu.372523/ GameYob 3DS]
+
|[https://gbatemp.net/threads/gameyob-3ds-gb-c-emu.372523/ GameYob 3DS]
|style="text-align:center;"|[[Nintendo 3DS]]
+
|[[Nintendo 3DS]]
|style="text-align:center;"|[https://github.com/Steveice10/GameYob/releases v1.0.8]
+
|[https://github.com/Steveice10/GameYob/releases v1.0.8]
|style="text-align:center;"|?
+
|? ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[[Visual_Boy_Advance_-M|Visual Boy Advance-M (VBA-M)]]
+
|[[Visual_Boy_Advance_-M|Visual Boy Advance-M (VBA-M)]]
|style="text-align:center;"|[[Wii]], [[Gamecube]]
+
|[[Wii]], [[Gamecube]]
|style="text-align:center;"|r1231
+
|r1231
|style="text-align:center;"|✓
+
|✓ ||✓ <small>(as VBA-Next)</small> ||✓
|style="text-align:center;"|✓ (as VBA-Next)
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[http://filetrip.net/psp-downloads/homebrew/download-masterboy-210-f28308.html MasterBoy]
+
|[http://filetrip.net/psp-downloads/homebrew/download-masterboy-210-f28308.html MasterBoy]
|style="text-align:center;"|[[PlayStation Portable]]
+
|[[PlayStation Portable]]
|style="text-align:center;"|2.10
+
|2.10
|style="text-align:center;"|✗
+
|✗ ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[http://filetrip.net/psp-downloads/homebrew/download-gemp-homers-rin-33-final-f27565.html GeMP]
+
|[http://filetrip.net/psp-downloads/homebrew/download-gemp-homers-rin-33-final-f27565.html GeMP]
|style="text-align:center;"|[[PlayStation Portable]]
+
|[[PlayStation Portable]]
|style="text-align:center;"|3.3 Final
+
|3.3 Final
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|[http://dl.qj.net/psp/emulators/rin-v132-gameboy-emulator/gameboy-color-emulator.html RIN]
+
|[http://dl.qj.net/psp/emulators/rin-v132-gameboy-emulator/gameboy-color-emulator.html RIN]
|style="text-align:center;"|[[PlayStation Portable]]
+
|[[PlayStation Portable]]
|style="text-align:center;"|1.32
+
|1.32
|style="text-align:center;"|✗
+
|✗ ||✗ ||✗
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
 
|-
 
|-
|style="text-align:center;"|Virtual Console
+
|Virtual Console
|style="text-align:center;"|Nintendo 3DS
+
|Nintendo 3DS
|style="text-align:center;"|8.10
+
|8.10
|style="text-align:center;"|✓ (pokemon only)
+
|✓ <small>(Pokemon only)</small> ||✗ ||✓
|style="text-align:center;"|✗
 
|style="text-align:center;"|✓
 
 
|}
 
|}
<nowiki>*</nowiki> '' A VBA-M libretro core does exist, but it only emulates GBA.''<br />
+
<references group=N />
<nowiki>**</nowiki> ''As an SDL port (libretro core is based on this version)''
 
  
 
==Comparison==
 
==Comparison==
  
 
====Game Boy-only emulators====
 
====Game Boy-only emulators====
* [http://bgb.bircd.org/ BGB] is a closed source emulator. It has 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 Gameboy colors and borders, though it doesn't emulate all of its functions. It also has an advanced debugger.
+
;[http://bgb.bircd.org/ 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 Gameboy colors and borders, though it doesn't emulate all of its functions. It also has an advanced debugger.
* [[Gambatte]] is probably the most accurate Game Boy Color emulator. It has a good range of options and features, though not quite as much as some other emulators. It's open source, but there is no activity lately.
+
;[[Gambatte]]:Probably the most 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.
* [[mGBA]] recently added GB/C support. It's still in development, but it's already on the level of many other emulators.
+
;[[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.
* [[GB Enhanced|GBE+]] is a recently rewritten emulator that can load custom tiles in games, including colorized tiles for Game Boy games. It also supports [[#Game Boy Features|obscure accessories]] that other emulators don't emulate.
+
;[http://kigb.emuunlim.com/ 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.
* [[Visual_Boy_Advance_-M|Visual Boy Advance-M (VBA-M)]] has solid GB/C emulation as well as GBA. It was very popular, but now is far behind [[mGBA]].
+
;[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.
* [[TGB Dual]] is an ancient emulator that supports link cable emulation. It supports [[Netplay]], though it requires a VPN. The libretro port supports local multiplayer using player 2's controls.
+
 
* [http://kigb.emuunlim.com/ KiGB] is an old and obsolete emulator which boasted of 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 there are emulators which do much better now.
+
====Backwards-compatible GBA emulators====
* [https://github.com/AntonioND/giibiiadvance GiiBiiAdvance] pioneered full GB Camera emulation, including webcam support. Otherwise, it's an unfinished emulator with the basics set up, but it's promising future currently on hiatus. It has very accurate timing.
+
;[[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====
 
====Multi-system emulators====
* [[higan]] is the only emulator that properly emulates all of the Super Game Boy's features, such as utilizing the SPC sound chip, due to having a separate SNES core. Older version of bsnes used the Gambatte core for its Super Game Boy functionality, but later Byuu made his own Game Boy core, which has pretty good accuracy. The last version of bsnes to use Gambatte as its SGB core is version 0.73.
+
;[[higan]]:Because it started out as an SNES emulator (its original name was bsnes), it was the 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 0.73 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.
+
;[[BizHawk]]:Uses a modified Gambatte core. It provides speedrunning tools.
* [[MAME]] has solid Game Boy emulation, albeit with worse GBC compatibility. However, it features compatibility with obscure mappers, which other emulators usually ignore, like Wisdom Tree games or MMM01 multicarts. It was made much more accurate a while ago due to contributions by Judge_.
+
;[[MAME]]:Has solid Game Boy emulation through its <code>gameboy</code> driver despite the sound being imperfect, as well as slightly worse GBC 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]] uses cores originally forked from an old version of [[VisualBoy Advance]] for the GB and GBC, as well as for the GBA.
+
;[[Mednafen]]:Its Game Boy Advance core is forked from an old version of [[VisualBoy Advance]].
  
==Issues==
+
==Emulation issues==
[[File:Gbc over saturation2.png|thumb|right|350px|Comparison of saturation levels in VBA-M and Gambatte.]]
 
  
 
===Oversaturation===
 
===Oversaturation===
Emulators tend to oversaturate the colors that would have been seen on the GBC's screen. This can often be fixed with emulator-specific options or [[Shaders_and_Filters#Image_Adjustment|shaders]].
+
[[File:Gbc over saturation2.png|thumb|right|350px|Comparison of saturation levels in VBA-M and Gambatte.]]
<br clear=all>
+
The Game Boy Color's screen is understaturated. 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.
 
 
 
 
==Game Boy Features==
 
  
 +
This issue also affects [[Game Boy Advance emulators#Oversaturation|Game Boy Advance emulation]].
  
 +
<h2 style="width:100%;">Game Boy features</h2>
  
 
===Hardware===
 
===Hardware===
Line 264: Line 205:
  
 
====Game Boy Camera====
 
====Game Boy Camera====
{| class="wikitable"
+
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Operating System(s)
Line 270: Line 211:
 
! scope="col"|[[Recommended emulators|Recommended]]
 
! scope="col"|[[Recommended emulators|Recommended]]
 
|-
 
|-
|style="text-align:center;"|[[mGBA]]
+
|[[mGBA]]
|style="text-align:center;"|Multi-platform
+
|Multi-platform
|style="text-align:center;"|Dev builds post 0.6.0
+
|Dev builds post 0.6.0
|style="text-align:center;"|✓
+
|✓
 
|-
 
|-
|style="text-align:center;"|GiiBiiAdvance
+
|GiiBiiAdvance
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|?
+
|?
|style="text-align:center;"|✗
+
|✗
 
|-
 
|-
|style="text-align:center;"|BGB
+
|BGB
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|?
+
|?
|style="text-align:center;"|✗
+
|✗
 
|-
 
|-
|style="text-align:center;"|Hashcam
+
|Hashcam
|style="text-align:center;"|Windows
+
|Windows
|style="text-align:center;"|[http://www.darkfader.net/gbc]
+
|[http://www.darkfader.net/gbc]
|style="text-align:center;"|✗
+
|✗
 
|}
 
|}
 
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 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.
Line 297: Line 238:
  
 
====Tilt sensor====
 
====Tilt sensor====
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. While VBA and KiGB have a "Motion Sensor" option to map four directional keys to emulate the cartridge tilting, BGB can emulate the tilting features with the use of the mouse.
+
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. While VBA and KiGB have a "Motion Sensor" option to map four directional keys to emulate the cartridge tilting, BGB can emulate the tilting features with the use of the mouse.
  
 
====Game Boy Pocket Sonar====
 
====Game Boy Pocket Sonar====
 
Japan only cartridge released by Bandai. It is a sonar-enabled device used for fishing with a fishing game included. No emulator supports this feature.
 
Japan only cartridge released by Bandai. It is a sonar-enabled device used for fishing with a fishing game included. No emulator supports this feature.
  
 
+
<hr/>
  
 
===Accessories===
 
===Accessories===
There are [[Wikipedia:Game Boy accessories#Game Boy|a few accessories that the Game Boy and Game Boy Color]] had.
+
There are [[wikipedia:Game Boy accessories#Game Boy|a few accessories that the Game Boy and Game Boy Color]] had.
  
 
====Link Cable====
 
====Link Cable====
Line 331: Line 272:
 
This accessory allowed users to download exclusive content by them from Hudsonsoft's website. No emulator supports this.
 
This accessory allowed users to download exclusive content by them from Hudsonsoft's website. No emulator supports this.
  
 
+
==References==
 
{{reflist}}
 
{{reflist}}
  
Line 337: Line 278:
 
* [http://gbdev.gg8.se/wiki/articles/Main_Page Game Boy Development Wiki] – Information about the Game Boy
 
* [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  
 
* [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  
 +
 
===Accuracy tests===
 
===Accuracy tests===
 
* [https://github.com/Gekkio/mooneye-gb#accuracy-comparison Mooneye-GB comparsion]
 
* [https://github.com/Gekkio/mooneye-gb#accuracy-comparison Mooneye-GB comparsion]

Revision as of 20:00, 29 December 2017

The Game Boy.

The Game Boy is an 8-bit, fourth-generation handheld console released by Nintendo in 1989. It had a monochrome display that could show only two colors, black and white (though the white was more green). 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 Entertainment System called Super Game Boy in 1994, which was modelled like a cartridge but included its own cartridge slot for Game Boy games, as well as the hardware needed to translate the games. Many Game Boy 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.

The Game Boy's successor, the Game Boy Color (GBC), was released in 1998. It was named such from its color screen, but it also had larger memory and a double-clocked CPU. The hardware similarities allow cross-compatibility between the two platforms and they are often treated as one. They would both by succeeded by the backwards-compatible Game Boy Advance.

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 this GitHub query.

Name Operating System(s) Latest Version Game Link Support Libretro Core Recommended
PC
BGB Windows 1.5.5
Gambatte Multi-platform r571
BizHawk Windows 2.9.1
GBE+ Windows, Linux, OS X (untested) SVN 30.5.2016
higan Windows, Linux, OS X v110
MAME Multi-platform 0.265 ?
mGBA Multi-platform 0.10.3 ?
SameBoy Multi-platform 0.8
Visual Boy Advance-M (VBA-M) Multi-platform SVN [N 1]
hhugboy Windows 1.2.1
Gearboy Multi-platform 2.3.1
KiGB Windows, Linux, OS X 2.05
TGB Dual Windows, Linux[N 2] "L" v1.2 [N 2]
GiiBiiAdvance Windows, Linux 0.2.0
Mobile
Gambatte Multi-platform r571
mGBA Multi-platform 0.10.3 ?
GBC.emu Android 1.5.19 ?
My OldBoy! Android 1.0.3 ?
John GBC Android 3.50 ?
GambatteDroid Android ? ?
GBA.emu Android 1.5.19 ?
Consoles
mGBA Wii, Nintendo 3DS, PSVita 0.10.3 ?
GameYob DS Nintendo DS Git (NiFi)
GameYob 3DS Nintendo 3DS v1.0.8 ?
Visual Boy Advance-M (VBA-M) Wii, Gamecube r1231 (as VBA-Next)
MasterBoy PlayStation Portable 2.10
GeMP PlayStation Portable 3.3 Final
RIN PlayStation Portable 1.32
Virtual Console Nintendo 3DS 8.10 (Pokemon only)
  1. A VBA-M libretro core does exist, but it only emulates GBA.
  2. 2.0 2.1 As an SDL port (and the libretro core is based on this version).

Comparison

Game Boy-only emulators

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 Gameboy colors and borders, though it doesn't emulate all of its functions. It also has an advanced debugger.
Gambatte
Probably the most 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.[1][2][3] It has a wide selection of features, but other emulators have caught up and are already doing much better.
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.

Backwards-compatible GBA emulators

mGBA
Primarily emulates the 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 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 -M (VBA-M)
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

higan
Because it started out as an SNES emulator (its original name was bsnes), it was the 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 0.73 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 gameboy driver despite the sound being imperfect, as well as slightly worse GBC compatibility through its gbcolor 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

Oversaturation

Comparison of saturation levels in VBA-M and Gambatte.

The Game Boy Color's screen is understaturated. 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 shader functionality may be implemented.

This issue also affects Game Boy Advance emulation.

Game Boy features

Hardware

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+ has basic IR emulation but currently it only works with Pokémon games.

Game Boy Camera

Name Operating System(s) Build to Use Recommended
mGBA Multi-platform Dev builds post 0.6.0
GiiBiiAdvance Windows ?
BGB Windows ?
Hashcam Windows [2]

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.

The latest dev builds of mGBA post 0.6.0 release can emulate the accessory by either using the PC's webcam or send a BMP, GIF, JPEG, PNG, or other image format to the game, as if it was coming from the camera itself.[4] To enable the PC webcam, go to Game Boy under settings and switch the camera driver to Qt Multimedia, or by editing qt.ini and setting cameraDriver=1 under [General].

Tilt sensor

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. While VBA and KiGB have a "Motion Sensor" option to map four directional keys to emulate the cartridge tilting, BGB can emulate the tilting features with the use of the mouse.

Game Boy Pocket Sonar

Japan only cartridge released by Bandai. It is a sonar-enabled device used for fishing with a fishing game included. No emulator supports this feature.


Accessories

There are a few accessories that the Game Boy and Game Boy Color had.

Link Cable

BGB, KiGB, some versions of VBA-M and TGB-Dual supports link cable.

4-Player Adapter

Currently only GBE+ supports it.

Game Boy Printer

VisualBoy Advance 1.8.0-beta 3 and GBE+ had Game Boy Printer support that turned the signals into a bitmap form of the image. Some notable games and accessories to make use of this feature are the RPG Pokémon games, Super Mario Bros. Deluxe, and Game Boy Camera. mGBA plans to support this feature but it is unknown if other emulators support or have plans to support it.

Barcode Boy

An obscure Japan only barcode-scanning device released by Namcot (then-Namco's consumer division) in 1992. 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 accept it as a valid barcode. GBE+ has proper emulation with the ability to read barcode from binary files.

Barcode Taisen Bardigun

Another Japan only barcode-scanning device with the dedicated game. GBE+ supports this accessory.

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 is possible to partially emulate its feature for Pokémon Crystal by using BGB's scripting capability, and GBE+ can at least reach the title screen of Mobile Trainer, but otherwise no emulators properly 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.[5][6] No emulator supports this, mostly due to the IZEK being a rare item, along with the complexity of implementing a similarly automated sewing machine.

Hudsonsoft KISS Link

This accessory allowed users to download exclusive content by them from Hudsonsoft's website. No emulator supports this.

References

External links

Accuracy tests