Difference between revisions of "Game Boy Advance emulators"

From Emulation General Wiki
Jump to navigation Jump to search
m (I updated mgba.)
(Undo revision 83541 by 162.158.154.118 (talk) See Recommended_emulators page.)
(Tag: Undo)
 
(798 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
[[File:Gameboy-glacier.jpg|thumb|The Gameboy Advance handheld console]]The '''[[gametech:Game Boy Advance|Game Boy Advance]]''' (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on March 21, 2001; in North America on June 11, 2001; in Australia and Europe on June 22, 2001.
+
{{Infobox console
 +
|title = Nintendo Game Boy Advance
 +
|logo = gbagba.png
 +
|developer = [[:Nintendo]]
 +
|type = [[:Category:Handheld consoles|Handheld game console]]
 +
|generation = [[:Category:Sixth-generation video game consoles|Sixth generation]]
 +
|release = 2001
 +
|discontinued = 2010
 +
|predecessor=[[Game Boy/Game Boy Color emulators|Game Boy (Color)]], [[Virtual Boy emulators|Virtual Boy]]
 +
|successor=[[Pokémon mini emulators|Pokémon mini]], [[Nintendo DS emulators|DS(i)]]
 +
|emulated = {{✓}}
 +
}}
 +
 
 +
{{for|other emulators that run on GBA hardware|Emulators on GBA}}
 +
 
 +
The '''[[wikipedia:Game_Boy_Advance|Game Boy Advance]]''' (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on the 21st of March 2001, in North America on the 11th of June and in Australia and Europe on the 22nd of June and retailed for {{Inflation|USD|99.99|2001}}. It has a ARM7TDMI CPU at 16.78 MHz and a Zilog Z80 CPU at 8 MHz and 4 MHz. It has 288KB of RAM and 96KB of VRAM.  
  
 
==Emulators==
 
==Emulators==
{| class="wikitable"
+
===PC / x86===
|+PC
+
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;width:100%"
 +
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|GB/GBC
+
! scope="col"|[[#Hardware_features_and_accessories|Hardware features<br/>and accessories]]
! scope="col"|GBA
+
! scope="col"|[[#Enhancements|Enhancements]]
! scope="col"|NDS
+
! scope="col"|Compatibility
! scope="col"|Game Link Support
+
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|[[libretro|Libretro Core]]
+
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
+
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
|style="text-align:center;"|[[Visual Boy Advance -M|Visual Boy Advance-M (VBA-M)]]
+
|[[mGBA]]<br/><small>[https://docs.libretro.com/library/mgba/ mGBA_libretro]</small>
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Web}}
|style="text-align:center;"|[http://www.emucr.com/search/label/VisualBoyAdvance-M/ r1231]
+
|[https://mgba.io/builds/1/ Dev builds]<br/>[https://buildbot.libretro.com/nightly/ libretro core]<ref group=N>[https://old.reddit.com/r/emulation/comments/12x3fsm/mgba_0102_released/jhigow4/ endrift confirming the libretro core is tracking the master branch]</ref><br/>[https://mgba.io/downloads.html {{MGBAVer}}]
|style="text-align:center;"|✓
+
|{{~}} ||{{~}} || ||{{}} ||{{}} ||{{}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
 
|-
 
|-
|style="text-align:center;"|[[mGBA]]
+
|[[VisualBoy Advance#VBA-M|VBA-M]]<br/><small>[https://docs.libretro.com/library/vba_m/ vbam_libretro]</small><br/><small><abbr title="VBA Next is a Game Boy Advance emulator based on VBA-M 2011 with backported patches for performance and compatibility improvements.">[https://docs.libretro.com/library/vba_next/ vba_next_libretro]</abbr></small>
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|style="text-align:center;"|[https://endrift.com/mgba/downloads.html 0.1.1]
+
|[https://nightly.vba-m.com/ Nightly builds]<br/> [http://buildbot.libretro.com/nightly/ libretro core'''s'''] <br/> [https://github.com/visualboyadvance-m/visualboyadvance-m/releases {{VBAMVer}}]
|style="text-align:center;"|
+
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|?
 
 
|-
 
|-
|style="text-align:center;"|[[higan]]
+
|[[NanoBoyAdvance]]
|style="text-align:center;"|Windows, OS X, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
|style="text-align:center;"|[http://byuu.org/higan/ 0.94]
+
|[https://nightly.link/nba-emu/NanoBoyAdvance/workflows/build/master Dev builds]<br/> [https://github.com/nba-emu/NanoBoyAdvance/releases {{NanoBoyAdvanceVer}}]
|style="text-align:center;"|
+
|{{n}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|iDeaS
+
|[[SkyEmu]]
|style="text-align:center;"|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS|Web}}
|style="text-align:center;"|[http://ciacin.site90.com/ideas.php 1.0.4.0]
+
|[https://github.com/skylersaleh/SkyEmu/pull/321 Dev Builds]<br/>[https://github.com/skylersaleh/SkyEmu/releases/ {{SkyEmuVer}}]
|style="text-align:center;"|
+
|{{n}} ||{{~}} || ||{{}} ||{{✓}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|[[MESS]]
+
|[[ares]]
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS}}
|style="text-align:center;"|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[https://nightly.link/ares-emulator/ares/workflows/build/master <abbr title="Latest development build version">git Artifacts</abbr>]<br/>[https://github.com/ares-emulator/ares/releases {{aresVer}}]
|style="text-align:center;"|
+
|{{?}} ||{{~}} || ||{{✓}} ||{{}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|?
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|Meteor
+
|[[GBE+]]
|style="text-align:center;"|Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
|style="text-align:center;"|[https://github.com/blastrock/meteor 1.4]
+
|[https://github.com/shonumi/gbe-plus/releases {{GBEVer}}]
|style="text-align:center;"|✗
+
|{{~}} ||{{?}} || ||{{✓}} ||{{}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|[[No$GBA]]
+
|[[No$|No$GBA]]
|style="text-align:center;"|Windows, MS-DOS
+
|align=left|{{Icon|Windows|DOS}}
|style="text-align:center;"|[http://problemkaputt.de/gba.htm 2.8]
+
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
|style="text-align:center;"|✗
+
|{{~}} ||{{~}} || ||{{✗}} ||{{~}}[https://problemkaputt.de/gbanew.htm *] ||{{~}}
|style="text-align:center;"|✓
+
|-
|style="text-align:center;"|✓
+
|[[BizHawk]]<br/><small>(mGBA 0.10.0)</small>
|style="text-align:center;"|✓
+
|align=left|{{Icon|Windows|Linux}}
|style="text-align:center;"|✗
+
|[https://gitlab.com/TASVideos/BizHawk/-/pipelines Dev builds]<br/>[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
|style="text-align:center;"|✗
+
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|[[MAME]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|<abbr title="Latest development version">git artifacts</abbr><ref group=N>[https://nightly.link/mamedev/mame/workflows/ci-windows/master CI-Windows] [https://nightly.link/mamedev/mame/workflows/ci-linux/master CI-Linux] [https://nightly.link/mamedev/mame/workflows/ci-macos/master CI-Macos]</ref><br/>[http://www.mamedev.org/release.html {{MAMEVer}}]
 +
|{{?}} ||{{~}} ||[http://adb.arcadeitalia.net/lista_mess.php?software_list_name=gba&compatibility= ?] ||{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
|[https://docs.libretro.com/library/gpsp/ gpSP_libretro]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://buildbot.libretro.com/nightly/ libretro core]
 +
|{{~}} ||{{~}} ||[https://docs.libretro.com/library/gpsp/#compatibility ?] ||{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
|[[Mednafen]]<br/><small>[https://docs.libretro.com/library/beetle_gba/ mednafen_gba_libretro]</small>
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[{{MednafenURL|releases/}} {{MednafenVer}}]<br/>[https://buildbot.libretro.com/nightly/ libretro core]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{}}
 +
|-
 +
|[https://hades-emu.org Hades]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/hades-emu/Hades/releases/tag/v1.0.0 {{HadesVer}}]<br/> [https://nightly.link/hades-emu/Hades/workflows/build/master Nightly builds]<br/> [https://github.com/hades-emu/hades Git]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
|[[higan]] (火眼)<br/>byuu (謬/view)
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/higan-emu/higan/releases/tag/v110 {{higanVer}}]
 +
|{{?}} || || ||{{}} ||{{✗}} ||{{✗}}<ref group=N>Superseded by [[ares]].</ref>
 +
|-
 +
|iDeaS
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://web.archive.org/web/20150311100053/http://ciacin.site90.com/ideas.php {{iDeaSVer}}]
 +
|{{?}} || || ||{{✗}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[https://fms.komkon.org/VGBA VGBA]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[https://fms.komkon.org/VGBA/#Downloads {{VGBAVer}}]
 +
|{{?}} || || ||{{✗}} ||{{}} ||{{✗}}
 +
|-
 +
|Meteor
 +
|align=left|{{Icon|Linux}}
 +
|[https://github.com/blastrock/meteor {{MeteorVer}}]
 +
|{{?}} || || ||{{}} ||{{✗}} ||{{✗}}
 +
|-
 +
|BoyCottAdvance
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[http://boycottadvance.emuunlim.org/Downloads.htm {{BoyCottAdvanceVer}}]
 +
|{{?}} || || ||{{✗}} ||{{✗}} ||{{✗}}
 +
|-
 +
|PlayBoy Advance
 +
|align=left|{{Icon|macOS}}
 +
|[https://www.zophar.net/macintosh/gba/playboy-advance.html {{PlayBoyAdvanceVer}}]
 +
|{{?}} || || ||{{✗}} ||{{✗}} ||{{}}
 +
|-
 +
|GameBeanAdvance
 +
|align=left|{{Icon|Windows}}
 +
|[https://github.com/bmchtech/GameBeanAdvance Git]
 +
|{{?}} || || ||{{✓}} ||{{~}} ||{{✗}}
 +
|-
 +
|[[NooDS]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/Hydr8gon/NooDS/releases git]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{}}
 
|}
 
|}
 +
</div>
  
{| class="wikitable"
+
===Mobile / ARM===
|+Consoles
+
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;width:100%"
 +
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|GB/GBC
+
! scope="col"|[[#Hardware_features_and_accessories|Hardware features<br/>and accessories]]
! scope="col"|GBA
+
! scope="col"|[[#Enhancements|Enhancements]]
! scope="col"|NDS
+
! scope="col"|Compatibility
! scope="col"|Game Link Support
+
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|[[libretro|Libretro Core]]
+
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
+
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
|[[mGBA]]
 +
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
 +
|[https://github.com/huhao1987/mGBA_Android unofficial android version]<br/>[https://buildbot.libretro.com/nightly/ libretro core]
 +
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
|style="text-align:center;"|TempGBA4PSP
+
|[[VisualBoy Advance#VBA-M|VBA-M]]
|style="text-align:center;"|[[PlayStation Portable]]
+
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
|style="text-align:center;"|[https://www.mediafire.com/?zzkw74c1kzobedj 26731013]
+
|[https://buildbot.libretro.com/nightly/ libretro core]
|style="text-align:center;"|
+
|{{~}} ||{{~}} || ||{{✓}} ||{{}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|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)]]
+
|[[SkyEmu]]
|style="text-align:center;"|[[Wii]], [[Gamecube]]
+
|align=left|{{Icon|Android|iOS}}
|style="text-align:center;"|r1229
+
|[https://play.google.com/store/apps/details?id=com.sky.SkyEmu v3.2] (Play)[https://www.amazon.com/SkyEmu-GBC-GBA-NDS-Emulator/dp/B0CGHK8QP5 v3.2] (Amazon)[https://github.com/skylersaleh/SkyEmu git]
|style="text-align:center;"|
+
|{{n}} ||{{~}} || ||{{}} ||{{}} ||{{~}}
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓ (as VBA-Next)
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|[[gpSP]]
+
|[[gpSP]]
|style="text-align:center;"|[[PlayStation Portable]]
+
|align=left|{{Icon|Android|iOS|Pandora}}<br/>{{Icon|Didj|Symbian}}
|style="text-align:center;"|0.9
+
|[https://buildbot.libretro.com/nightly/ libretro core]<br/>[http://repo.openpandora.org/?page=detail&app=package.gpsp.notaz 0.9.2.8 Pandora]<br/>[https://github.com/Summeli/gpSP4Cute Symbian]
|style="text-align:center;"|✗
+
|{{~}} ||{{~}} ||[https://docs.libretro.com/library/gpsp/#compatibility ?] ||{{✓}} ||{{~}}<ref group=N name=gpsp>Libretro Core Only.</ref> ||{{~}}
|style="text-align:center;"|
+
|-
|style="text-align:center;"|✗
+
|Pizza Boy GBA
|style="text-align:center;"|✗
+
|align=left|{{Icon|Android}}
|style="text-align:center;"|✓
+
|[https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboygbapro 2.6.8] (Offline)
|style="text-align:center;"|✗
+
|{{~}} ||{{~}} || ||{{✗}} ||{{✗}}[https://old.reddit.com/r/emulation/comments/1b97uus/emulator_pizza_boy_for_gba_and_gbc_removed_from/ *] ||{{~}}
 +
|-
 +
|[https://www.explusalpha.com/contents/gba-emu GBA.emu]<br/><small>(VBA-M 2.1.4 based)</small>
 +
|align=left|{{Icon|Android|Pyra}}
 +
|[https://github.com/Rakashazi/emu-ex-plus-alpha/releases/tag/Pre-release Pre-release]<br/>[https://play.google.com/store/apps/details?id=com.explusalpha.GbaEmu {{.emuVer}}]</br>[https://pyra-handheld.com/repo/apps/75 1.5.46.02 Pyra]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|[https://sites.google.com/site/fastemulator/ My Boy!]
 +
|align=left|{{Icon|Android}}
 +
|[https://play.google.com/store/apps/details?id=com.fastemulator.gba 2.0.6]
 +
|{{?}} || || ||{{✗}} ||{{✓}} ||{{~}}
 +
|-
 +
|[https://forums.windowscentral.com/app-spotlight/252987-trio-nintendo-emulators-vba8-vgbc8-snes8x.html VBA10]
 +
|align=left|{{Icon|W10P}}
 +
|[https://forum.xda-developers.com/windows-10-mobile/windows-10-mobile-apps-and-games/app-vba10-emulator-t3588704 1.22]<br/>[https://emulator.games/emulators/gameboy-advance/vba10/ Alt]
 +
|{{?}} || || ||{{✓}} ||{{}} ||{{~}}
 +
|-
 +
|GBA_J2ME
 +
|align=left|{{Icon|Java}}
 +
|[http://oldfag.top/downloads/?act=view&id=168 1.0]
 +
|{{?}} || || ||? ||{{✗}} ||{{~}}
 +
|-
 +
|VGBAnext
 +
|align=left|{{Icon|Android}}
 +
|[https://play.google.com/store/apps/details?id=com.fms.emu {{VGBANextVer}}]
 +
|{{?}} || || ||{{✗}} ||{{✓}} ||{{}}
 +
|-
 +
|[[NooDS]]
 +
|align=left|{{Icon|Android}}
 +
|[https://play.google.com/store/apps/details?id=com.hydra.noods 0.1]<br/>[https://github.com/Hydr8gon/NooDS/releases git]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{}}
 +
|-
 +
|GBA4iOS
 +
|align=left|{{Icon|iOS}}
 +
|[https://iemulators.com/gba4ios 2.1]
 +
|{{?}} || || ||{{}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[http://web.archive.org/web/20190801135245/http://allaboutwindowsphone.com/software/content/VBA8_1.php VBA8]
 +
|align=left|{{Icon|W8P}}
 +
|[https://www.appx4fun.com/xap/15223/ 2.27]
 +
|{{?}} || || ||{{✓}} ||{{✗}} ||{{}}
 
|}
 
|}
 +
</div>
  
==Comparisons==
+
===Consoles===
* [[gpSP]] last official version was 0.9 by Exophase. There are, however, two superior forks: [http://dl.qj.net/psp/emulators/gpsp-mod-20090720.html gpSPmod] and [http://filetrip.net/psp-downloads/homebrew/download-gpsp-j-12-06-16-f29570.htmlgpSP-J gpSP-J]. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai.
+
<div style="overflow-x:auto;width:100%">
* [[Visual Boy Advance -M|Visual Boy Advance-M (VBA-M)]] is the best emulator for the GBA. RetroArch's VBA-Next is based off an older revision of VBA-M with added speedhacks and tweaks, making it a bit less accurate in some respects, though it fixes a few games such as Advance Wars 2.  
+
{| class="wikitable" style="text-align:center;width:100%"
* [[higan]]'s GBA core is cycle-accurate, but is otherwise very much a WIP and not as compatible as either version of VBA.
+
|-
* [[mGBA]] is a GBA emulator that aims to be accurate while maintaining speed.
+
! scope="col"|Name
 +
! scope="col"|Platform(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|[[#Hardware_features_and_accessories|Hardware features<br/>and accessories]]
 +
! scope="col"|[[#Enhancements|Enhancements]]
 +
! scope="col"|Compatibility
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
|[[mGBA]]
 +
|align=left|{{Icon|Wii|WiiU|Switch}}<br>{{Icon|3DS|PSV}}
 +
|[https://mgba.io/builds/1/ Dev builds]<br/> [https://mgba.io/downloads.html#homebrew {{MGBAVer}}]<br/>[https://www.retroarch.com/?page=platforms libretro core]
 +
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[[Nintendo Switch Online]] <small>(Sloop)</small>
 +
|align=left|{{Icon|Switch}}
 +
|N/A
 +
|{{~}} ||{{~}} ||[[Wikipedia:List_of_Nintendo_Switch_Online_games#Game_Boy_Advance|Only for selected titles]] ||{{✗}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[https://docs.libretro.com/library/vba_next/ VBA Next]
 +
|align=left|{{Icon|NGC|Wii|NX}}<br/>{{Icon|PS3}}<br/>{{Icon|PS4}}<br/>{{Icon|Vita}}<br/>{{Icon|Xbox|Xbox360}}
 +
|[https://www.retroarch.com/?page=platforms libretro core]
 +
|{{?}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[[gpSP]]
 +
|align=left|{{Icon|DC|PSP}}<br/>{{Icon|PS2|NGC|Wii}}<br/>{{Icon|3DS|Vita}}
 +
|[https://www.retroarch.com/?page=platforms libretro core]<br/>[[GpSP#PSP_Version|TempGBA4PSP]]
 +
|{{~}} ||{{~}} ||[https://docs.libretro.com/library/gpsp/#compatibility ?] ||{{✓}} ||{{~}}<ref group=N name=gpsp></ref>  ||{{✓}}
 +
|-
 +
|[[Virtual Console]]
 +
|align=left|{{Icon|3DS|WiiU}}
 +
|8.10
 +
|{{~}} ||{{n}} ||[[Wikipedia:Virtual_Console#Titles_2|Only for selected titles (3DS)]]<br/>[[Wikipedia:Virtual_Console#Titles_3|Only for selected titles (Wii U)]] ||{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|Game Boy Player
 +
|align=left|{{Icon|GCN}}
 +
|
 +
|{{~}} ||{{n}} || ||{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|ReGBA
 +
|Align=left|{{Icon|PS2}}
 +
|[https://www.ps2-home.com/forum/viewtopic.php?t=1332 v1.45.5 revision 3]
 +
|{{?}} || || ||{{✓}} ||{{✗}} ||{{~}}
 +
|-
 +
|[https://www.gc-forever.com/wiki/index.php?title=Enhanced_mGBA emGBA]
 +
|align=left|{{Icon|GCN|Wii|WiiU}}
 +
|[https://files.extremscorner.org/gamecube/apps/mgba/latest git]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|[[VisualBoy Advance#VBA-GX|VBA GX]]
 +
|align=left|{{Icon|GCN|Wii|WiiU}}
 +
|[https://github.com/dborth/vbagx/releases git]
 +
|{{?}} || || ||{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|Gbaemu4DS
 +
|align=left|{{Icon|NDS}}
 +
|[https://ichfly.github.io/gbaemu4DS Alpha 2 fix 4][https://github.com/ichfly/gbaemu4DS git]
 +
|{{?}} || || ||{{✓}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[[GBARunner2]]
 +
|align=left|{{Icon|NDS|3DS}}
 +
|[https://github.com/Gericom/GBARunner2/releases/tag/v20200812-131430_6e4ce45 2020/08/12]
 +
|{{?}} || || ||{{✓}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[[gpSP|UO gpSP Kai]] (UO gpSP改)
 +
|align=left|{{Icon|PSP}}
 +
|3.4 test 4 build 230
 +
|{{?}} || || ||{{✓}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[[NooDS]]
 +
|align=left|{{Icon|Switch|Vita|WiiU}}<br/>{{Icon|PSP}}
 +
|[https://github.com/Hydr8gon/NooDS git]<small> (Switch/Vita/WiiU)</small><br/>[https://github.com/Xiro28/NooDS_PSP git] <small>(PSP port)</small>
 +
|{{?}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{✗}}
 +
|}
 +
</div>
 +
<references group=N />
  
==Emulation issues==
+
===Comparisons===
 +
;[[mGBA]]:Free and open-source Game Boy/Color and Game Boy Advance emulator developed by endrift. Being written from scratch, it aims for speed, [[Emulation Accuracy|accuracy]], and portability. As of yet, it's the most complete GBA emulation effort with [[#Enhancements|enhancements]] and [[#Hardware_features_and_accessories|feature support]], passing the older project VBA and its forks. It is also available as a Libretro core for RetroArch. As of 0.9.0, mGBA with a stripped-down GUI has been integrated into Dolphin recently for games supporting [[#Hardware_features_and_accessories|connectivity features]].
  
===Oversaturation===
+
;[[NanoBoyAdvance]]:Highly [[Emulation_accuracy|accurate]]<ref>[https://github.com/nba-emu/NanoBoyAdvance/blob/master/docs/ACCURACY.md mGBA suite comparison]</ref> Game Boy Advance emulator. It aims for [[Emulation Accuracy|cycle-accurate]] emulation when possible (CPU, DMA, timers, PPU and Game Pak prefetch), while also offering enhancements such as improved audio quality. Very high compatibility, including games that require emulation of [https://github.com/nba-emu/NanoBoyAdvance/blob/master/docs/ACCURACY.md#Game-compatibility peculiar hardware edge-cases]. Unfortunately, following the release of the next major update, developer "[https://github.com/fleroviux fleroviux]" will step down from actively developing the project.[https://old.reddit.com/r/emulation/comments/1auz9c9/nanoboyadvance_180_is_released_plus_announcement/]
[[File:1406913527173-1-.png|400px|thumb|right|Left showing the default game, and right showing [[VBA-M]] in "Gameboy Colors" mode]]
 
The original GBA screen was not backlit, which would render the screen rather dark. To compensate for this, games would be overly saturated. The bright overly saturated colors would appear rather normal on the GBA. In emulation however, this over saturation is not needed. Some games made after 2003 may look better with the backlit colors, however, as they were designed with the GBA SP in mind. For everything else, there are several ways to deal with this:
 
  
'''No$GBA'''
+
;[[VisualBoy Advance|Visual Boy Advance (VBA)]]:The original GBA emulator. Discovered to have an <abbr title="Arbitrary Code Execution">ACE</abbr> vulnerability detailed below.
  
Under "Emulation Options", select "GBA Mode. There are four modes.
+
:;[[VisualBoy Advance#VBA-M|Visual Boy Advance-M (VBA-M)]]:A fork with additional minor improvements. It is behind in terms of [[Emulation Accuracy|accuracy]] compared to mGBA or other recommended GBA emulators, but is still useful for its robust debugging features and sound interpolation that reduces hissing.
  
- GBA (no backlight) = strong desaturization
+
::;VBA-Next:A [[RetroArch]] fork from an older revision of VBA-M with added speedhacks and tweaks, making it useful for lower-end devices. A bit less accurate in some respects, but fixes a few games such as Advance Wars 2.
  
- GBA SP (backlight) = strong desaturization
+
;[[SkyEmu]]:Low level Game Boy, Game Boy Color and Game Boy Advance emulator. Its primary focus is to provide a [https://old.reddit.com/r/emulation/comments/ybejxv/skyemu_v2_release/itutt2h/ good user experience] through a good mixture of tradeoffs of [[Emulation_accuracy|accuracy]]<ref>[https://github.com/skylersaleh/SkyEmu#accuracycompatibility SkyEmu: Accuracy and Compatibility], [https://github.com/skylersaleh/SkyEmu/blob/dev/docs/Accuracy.md SkyEmu: Accuracy on Difficult to Emulate Games].</ref>, performance, features and usability. Capable of full instruction pipeline, prefetch emulation and per pixel PPU Implementation capable of both scan line and mid-scan line effects.
  
- Nintendo DS in GBA mode = some desaturization
+
;[[higan]] / [[ares]]:[[Emulation Accuracy|Accuracy]] wise it is behind compared to NanoBoyAdvance, SkyEmu (and maybe mGBA) but it has dot-based instead of scanline-based renderer and doing better job compared to VBA-M. Also it is behind in terms of compatibility compared to mGBA, NanoBoyAdvance and SkyEmu, but Ares stands out being [[Multi-system_emulators|multi-system emulator]] and supports some useful [[#Enhancements|enhancements]] like shaders/filters and simple debug features.
  
- VGA Mode (poppy bright): zero desaturization
+
;[[MAME]]:Has a <code>gba</code> driver markup as working, but both graphics and sound are [http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=gba "imperfect"] as of version 0.261.
  
'''VBA-M'''
+
;[[gpSP]]:Originally made for the PSP, its last official version was 0.91. There are, however, two forks of interest: [http://dl.qj.net/psp/emulators/gpsp-mod-20090720.html gpSPmod], and [http://filetrip.net/psp-downloads/homebrew/download-gpsp-j-12-06-16-f29570.htmlgpSP-J gpSP-J]. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai. TempGBA is another good fork. For other platforms, there's a libretro port of gpSP with fast x86 and ARM dynarecs. While it's behind the best GBA emulators in terms of accuracy, its great performance makes it a viable option for old/underpowered machines or for using extreme fast-forward in games.
  
- (VBA-M for Windows only) Under "Options->Gameboy" you will find the options:
+
; [[Nintendo Switch Online]] (Sloop)
 +
* GBA support was added to Nintendo Switch Online Expansion Pack in February 2023, alongside GB games exclusive to the normal tier;
 +
* Users are [[Wikipedia:List_of_Nintendo_Switch_Online_games#Game_Boy_Advance|limited to the selection of games]] Nintendo chooses to make available on the service;
 +
* Can support Local Play with other Switch Online users (up to 4 players, Local Play must be with individual Switch systems);
 +
* [https://twitter.com/LuigiBlood/status/1624005571815899136 Accurate enough] at the point of being able to pass any of the ''AGB Test Cartridge'' (v10) tests without a single failure;
 +
* Video filters can be applied;
 +
* Allows exchange of regional variants in the International version of the app (USA and/or European versions);
 +
* Allows rumble support for games that had such function back when played in a Game Boy Player (''Super Mario Advance 4: Super Mario Bros. 3'', ''Mario & Luigi: Superstar Saga'')
 +
* Different games between regions (Japan and International)
  
- "Real Colors": no desaturization
+
'''NOTE:''' There's a ''huge'' <abbr title="Arbitrary Code Execution">ACE</abbr> vulnerability affecting VBA and most of its forks, except for VBA-M. The function for adding GameShark codes ("Import > Gameshark code file") doesn't check if the file's size is within 1024 kilobits, meaning cheat code files from dubious sources can be engineered with malware in mind. There is good news; VBA-M still doesn't do a sanity check for those files, but it just crashes instead of letting the code wreak havoc. So, depending on your use case, avoid using:
 +
# Cheat code files bigger than 1024Kb that you got online from untrustworthy sources.
 +
# The import code files feature.
 +
# The old emulator altogether, and settle for other options like mGBA or VBA-M. All of them support the same SRAM save data the cartridge uses.
  
- "Gameboy Colors": strong desaturization 
+
'''List of recommended GBA emulators for Android:'''
 +
* [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.)
  
'''Shaders'''
+
==Enhancements==
 +
<div style="overflow-x:auto;width:100%">
 +
{|class="wikitable" style="text-align:center;vertical-align:middle;width:100%"
 +
|- style="font-weight:bold;"
 +
! colspan=2 | Name
 +
! mGBA
 +
! VBA-M
 +
! No$GBA
 +
! SkyEmu
 +
! NanoBoyAdvance
 +
! Game Boy Player
 +
! Virtual Console
 +
! BizHawk
 +
! ares
 +
! GBE+
 +
! gpSP
 +
! Pizza Boy GBA (Pro)
 +
! MAME
 +
! Nintendo Switch Online (Sloop)
 +
|-
 +
| rowspan=3 | Graphics
 +
| [[Resolution|Resizable Internal Resolution]]
 +
| colspan=14 | For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent.
 +
|-
 +
| [[Texture_packs#Sprite_Replacement_.282D.29|Sprite Replacement]]
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{N}}
 +
|{{N}}
 +
|-
 +
| [[Widescreen_hacks#Emulators_.282D.29|Widescreen Hack]]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| rowspan=2 | Performance
 +
| [[Overclocking|Overclock]]
 +
|{{N}}[https://github.com/mgba-emu/mgba/issues/2833 *]
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{?}}[https://old.reddit.com/r/emulation/comments/65j3c3/can_a_emulated_game_run_better_then_the_actual/dgau7ck/ *]
 +
|{{?}}
 +
|{{?}}
 +
|{{Y}}[https://old.reddit.com/r/emulation/comments/8nw23h/gba_emulator_w_overclock_support/e02nnn6/ *]
 +
|{{N}}
 +
|-
 +
| [[30/60_FPS_cheat_codes|Internal Framerate Hack]]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|{{N}}
 +
|
 +
|{{N}}
 +
|
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|-
 +
| rowspan=6 | Post-Processing
 +
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br/><small>(FXAA, TXAA and MLAA/SMAA)</small>
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|-
 +
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 1]])</small>
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|
 +
|-
 +
| [[Shaders_and_filters|Filters]]
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|{{Y}}
 +
|{{Y}}
 +
|{{Y}}
 +
|-
 +
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
| {{N}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
|-
 +
| [[Shader_Presets|Shader Chain]]
 +
|{{~}}<ref group=N3 name=lrExclusive></ref>
 +
|{{~}}<ref group=N3 name=lrExclusive></ref>
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{Y}}[https://github.com/ares-emulator/ares/pull/1397 *]
 +
|{{N}}
 +
|{{Y}}
 +
|{{N}}
 +
|{{Y}}
 +
|{{N}}
 +
|-
 +
|[[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping compatible]]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
| {{N}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
|-
 +
| rowspan=5 | [https://tasvideos.org/Emulatorresources/Features TAS features]
 +
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua]
 +
|{{Y}}<ref group=N3 name=ExStandalone>Exclusive to standalone version.</ref>
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|{{N}}
 +
|{{?}}
 +
|{{N}}
 +
|{{Y}}
 +
|{{N}}
 +
|
 +
|
 +
|{{Y}}[https://docs.mamedev.org/plugins/inputmacro.html *]
 +
|{{N}}
 +
|-
 +
| Rewind
 +
|{{Y}}
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|-
 +
| Fast-Forward/Turbo Speed
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{?}}
 +
|{{Y}}
 +
|
 +
|
 +
|-
 +
| Savestates
 +
|{{Y}}
 +
|
 +
|
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|
 +
|-
 +
| [https://tasvideos.org/Movies Movie recording/playback]
 +
| {{?}}[https://forums.mgba.io/archive/index.php?thread-4910.html]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| rowspan=1 | Controls
 +
| [[Input_lag|Input lag-mitigating technique]]
 +
|{{~}}<ref group=N3 name=lrExclusive></ref>
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{?}}
 +
|
 +
|
 +
|{{N}}
 +
|-
 +
| rowspan=6 | Quality of life
 +
| Built-in [http://forum.arcadecontrols.com/index.php/topic,106405 Custom resolution/CRTSwitchRes]<br/><small>For using this on Windows OS you need [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver].<br/>Another option is using EDID editor tool such as "Custom Resolution Utility".</small>
 +
| colspan=13 | <small>Exclusive to [https://docs.libretro.com/guides/crtswitchres/ libretro cores] and [[GroovyMAME]] at the moment.<br/>Also there is a [https://github.com/psakhis/Groovy_MiSTer project] for achieving software emulators like libretro cores and GroovyMAME send the raw RGB data over a network to a core running on MiSTer, it basically turns the MiSTer into a GPU for the emulator allowing for easy setup and use with CRT TVs/Arcade monitors.</small>
 +
| {{N}}
 +
|-
 +
| Built-in [[Cheats_and_patches|Cheat Manager]]
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{?}}
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|-
 +
| [[Save_disk_space_for_ISOs#Game_Boy_Advance_.2F_Nintendo_DS_.2F_Nintendo_3DS|Streamable compression format]]
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|{{N}}
 +
|{{N}}
 +
|{{Y}}
 +
|
 +
|
 +
|{{?}}
 +
|{{Y}}
 +
|{{Y}}
 +
|{{N}}
 +
|-
 +
| Per-Game Profiles
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|
 +
|-
 +
| Command Line Options
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|{{N}}
 +
|-
 +
| [[Frontends#Graphical_User_Interfaces_.28GUIs.29|Big Picture Mode]]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|-
 +
| rowspan=5 | Misc
 +
| [[Netplay|Netplay]]<br/><small>You can use either yuzu/Ryujinx for playing GBA games online via netplay.<br/>This enhancement shouldn't be confused with GBA connectivity features emulation.</small>
 +
|[https://mgba.io/faq.html#glossary WIP]
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{Y}}[https://www.nintendo.com/us/store/products/game-boy-advance-nintendo-switch-online-switch/ *]
 +
|-
 +
| [https://github.com/ipatix/gba-hq-mixer High Quality Audio Mixer]<br/><small>HQ audio mixer for games which use Nintendo's MusicPlayer2000 sound engine</small>
 +
|{{~}}
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|
 +
|{{?}}
 +
|
 +
|
 +
|{{N}}
 +
|-
 +
| [[Virtual_reality#VR_game_room_simulations|EmuVR support]]
 +
| colspan=14 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores] at the moment.
 +
|-
 +
| [https://retroachievements.org/gameList.php?c=5 RetroAchievements]
 +
|{{~}}<ref group=N3 name=lrExclusive>Exclusive to libretro core. There is also a [https://github.com/RetroAchievements/RAVBA modified version of VBA-M] for RetroAchievement support. [https://github.com/mgba-emu/mgba/issues/2232 Feature request: RetroAchievements integration in mGBA standalone].</ref>
 +
|{{~}}<ref group=N3 name=lrExclusive></ref>
 +
|{{N}}
 +
|{{N}}[https://github.com/skylersaleh/SkyEmu/issues/36 *]
 +
|{{N}}
 +
|{{N}}
 +
|{{N}}
 +
|{{Y}}[https://retroachievements.org/download.php#bizhawk *]
 +
|{{N}}
 +
|
 +
|{{Y}}
 +
|{{Y}}
 +
|{{N}}
 +
|{{N}}
 +
|-
 +
| [[Wikipedia:Category:Debugging|Debug Features]]
 +
|{{Y}}[https://mgba.io/2021/03/28/mgba-0.9.0/#more-debugging-improvements *]
 +
|{{Y}}
 +
|{{Y}}
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|{{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|{{N}}
 +
|}
 +
</div>
 +
<references group=N3/>
  
[https://github.com/libretro/common-shaders/blob/master/cgp/gameboy-colors.cgp gameboy-colors.cgp]
+
==Hardware features and accessories==
 +
<div style="overflow-x:auto;width:100%">
 +
{|class="wikitable" style="text-align:center;vertical-align:middle;width:100%"
 +
|- style="font-weight:bold;"
 +
! colspan=2 | Name
 +
! mGBA
 +
! VBA-M <br/>[[VisualBoy_Advance#VBA_Link_e-Reader|VBA 1.73 Mod]]
 +
! No$GBA
 +
! SkyEmu
 +
! NanoBoyAdvance
 +
! Game Boy Player
 +
! Virtual Console
 +
! BizHawk
 +
! ares
 +
! GBE+
 +
! gpSP
 +
! Pizza Boy GBA
 +
! MAME
 +
! Nintendo Switch Online (Sloop)
 +
|-
 +
|colspan=2 | [https://www.copetti.org/writings/consoles/game-boy-advance/#operating-system GBA BIOS]
 +
|{{Y}}
 +
|{{Y}}
 +
|{{Y}}
 +
|{{Y}}
 +
|{{?}}
 +
|{{?}}
 +
|{{Y}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{Y}}
 +
|{{?}}
 +
|{{Y}}
 +
|-
 +
|colspan=2 | [[#GB.2FGBC_backwards_compatibility_emulation.2FEnhanced_Mode|GB/GBC backwards compatibility emulation/Enhanced Mode]]
 +
|{{?}}
 +
|{{?}}[https://www.romhacking.net/forum/index.php?topic=21831.0 *]
 +
|{{n}}
 +
|{{?}}
 +
|{{n}}
 +
|{{?}}
 +
|{{?}}<abbr title="3DS only">*</abbr>
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{X}}<abbr title="Plays GB/GBC games through a separate app">*</abbr>
 +
|-
 +
| colspan=2 | [[#Game_Boy_Advance_Video|Game Boy Advance Video]]
 +
|{{y}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{n}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|-
 +
|rowspan=5 | [[#Connectivity|<abbr title="There are five different kinds of connectivity, support varying by game.">Connectivity</abbr>]]
 +
|[https://squallsnake.com/blog-gba-single-pak-multiplayer-game-list/ Single Pak]
 +
|{{✓}}<ref group=N2 name=libretro>Does not work on Libretro core. Feature Requests: [https://github.com/libretro/vbam-libretro/issues/114 GBA Game Link Support], [https://github.com/libretro/vbam-libretro/issues/87 e-Reader support] for  for VBA-M libretro core.</ref>
 +
|{{✗}}[https://github.com/visualboyadvance-m/visualboyadvance-m/issues/831 *]
 +
|{{✓}}
 +
|{{✗}}[https://github.com/skylersaleh/SkyEmu/issues/44 *]
 +
|{{✗}}
 +
|{{y}}
 +
|{{~}}<abbr title="Pokemon only">*</abbr>
 +
|{{✓}}
 +
|{{?}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
|[[#GBA_Multi_Pak_Link_Multiplayer_.281.7E4GBA.29|Multi Pak]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}[https://github.com/skylersaleh/SkyEmu/issues/44 *]
 +
|{{✗}}
 +
|{{y}}
 +
|{{~}}<abbr title="Pokemon only">*</abbr>
 +
|{{✓}}
 +
|{{?}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
|[[#Connectivity|Wireless]]
 +
|{{✗}} [https://mgba.io/timeline.html#IN+THE+FUTURE *]
 +
|{{~}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{y}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{~}}
 +
|{{Y}}[https://www.davidgf.net/2024/01/13/gba-wireless-adapter/ *]
 +
|{{Y}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
|[[#GameCube Connectivity|<abbr title="The Nintendo GameCube – Game Boy Advance link cable (model DOL-011) is a link cable that links the GameCube to the Game Boy Advance, the Game Boy Advance SP, the e-Reader, or even a second GameCube via the Game Boy Player. The Game Boy Micro is not compatible due to its different connector. The Wii, however, is compatible with the cable due to the Wii's backwards compatibility with GameCube games and controllers.">GameCube communication</abbr>]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✗}}
 +
|{{✗}}[https://old.reddit.com/r/EmuDev/comments/vvdqyk/release_of_skyemu_10/ifjfj7a/ *]
 +
|{{✗}}
 +
|{{y}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
|[[Wikipedia:Game_Link_Cable#Third_generation|<abbr title="The third generation started with the release of the Game Boy Advance which was released alongside its own link cable called the Game Boy Advance Game Link Cable (model AGB-005). It features yet another new type of link cable port which is used on the Game Boy Advance, Game Boy Advance SP and Game Boy Player. The e-Reader also uses the third generation link cable port, but since it is incompatible with Game Boy and Game Boy Color games, it is not backwards compatible with the second generation Game Link Cable. Another option is Game Boy Advance Wireless Adapter (model AGB-015) for Game Boy Advance, Game Boy Advance SP, and Game Boy Player.">Link Cable</abbr>]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✓}}
 +
|[https://old.reddit.com/r/emulation/comments/15pvssg/the_skyemu_v3_gbgba_and_newly_nds_emulator_is_now/jw1785m/ WIP]
 +
|{{✗}}
 +
|{{y}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{?}}
 +
|{{✓}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
| rowspan=3 | [[GBA_e-Reader_emulators|e-Reader]]
 +
| [[GBA_e-Reader_emulators#Emulators|e-Reader Alone]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{~}}
 +
|{{✓}}
 +
|{{TBD}}
 +
|{{✗}}
 +
|{{y}}
 +
|{{~}}<abbr title="Wii U only">*</abbr>
 +
|{{TBD}}
 +
|{{?}}
 +
|{{TBD}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
| [[GBA_e-Reader_emulators#Emulators|e-Reader/GBA Game]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{~}}<ref group=N2 name=e-Reader-GBAGame>incomplete: this emulator will not recognize the games they're connected to. Normally, after choosing "Connection/to Game Boy Advance", the e-Reader should have "(Game Name) Game Data" pre-loaded in its internal EEPROM memory and appearing in a tiny black box on-screen, but this can't happen in either No$GBA, VBA-M, or VBA e-Reader mods. Without this step done, scanning e-Cards will just yield an error message. e-Reader/GBA game pack emulation in this emulator can be still reached by ripping a save game from real e-Reader hardware, with this step already done. Using this save with the e-Reader BIOS, it's possible to connect to the GBA game pack, and scan e-Cards... though it's a very less-than-ideal solution and there are only pre-baked e-Reader save files for Super Mario Advance 4 (U), Pokémon Emerald (J), LeafGreen (J) and FireRed (J)."</ref>
 +
|{{~}}<ref group=N2 name=e-Reader-GBAGame></ref>
 +
|{{TBD}}
 +
|{{✗}}
 +
|{{y}}
 +
|{{✓}}
 +
|{{TBD}}
 +
|{{?}}
 +
|{{TBD}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{~}}<abbr title="SMA4 only">*</abbr>
 +
|-
 +
| [[GBA_e-Reader_emulators#Emulators|e-Reader/GCN Game]]
 +
|{{✓}}<ref group=N2 name=libretro />
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{y}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{✗}}
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✗}}
 +
|-
 +
|rowspan=3 | Inputs
 +
|Rumble Feature
 +
| {{y}}
 +
| {{tbd}}
 +
| {{tbd}}
 +
| {{tbd}}
 +
|
 +
| {{tbd}}
 +
|
 +
|
 +
|
 +
| {{y}}[https://github.com/shonumi/gbe-plus#read-the-manual *]
 +
|
 +
| {{y}}
 +
|
 +
| {{~}}<abbr title="Allows rumble support for games that had such function back when played in a Game Boy Player (Super Mario Advance 4: Super Mario Bros. 3, Mario & Luigi: Superstar Saga)">*</abbr>
 +
|-
 +
|[[#Inputs|Solar Sensor]]
 +
| {{~}}<ref name=manual-switch group=N2>Only the Nintendo Switch port allows use of the Switch's light sensor.</ref>
 +
| {{~}}<ref name=manual group=N2>Only manual configuration. No automatic detection via light sensor/camera input/weather forecast/GPS location/other.</ref>
 +
| {{~}}<ref name=manual group=N2 />
 +
| {{~}}<ref name=manual group=N2 />
 +
| {{~}}<ref name=manual group=N2 />
 +
|
 +
|
 +
|
 +
|
 +
| {{~}}<ref name=manual group=N2 />
 +
|
 +
| {{y}}
 +
|
 +
|
 +
|-
 +
|Motion Control
 +
| {{y}}
 +
| {{y}}<ref group=N2 name=RetroArch>Motion Control support present on RetroArch VBA-M core.</ref>
 +
| {{n}}
 +
|
 +
| {{n}}
 +
|
 +
|
 +
|
 +
|
 +
| {{y}}[https://github.com/shonumi/gbe-plus#read-the-manual *]
 +
|
 +
| {{y}}
 +
|
 +
|
 +
|-
 +
|rowspan=11 | [[#Special_hardware|Special hardware]]
 +
|Battle Chip Gate
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Soul Doll Adapter
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Multi Plust On System
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Turbo File Advance
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Power Antenna & Bug Sensor
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Official Nintendo Infrared Adapter
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Jukebox
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}[https://shonumi.github.io/articles/art31.html *]
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Virtureal Racing System
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}[https://shonumi.github.io/articles/art24.html *]
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Play-Yan
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{~}}[https://shonumi.github.io/articles/art32.html *]
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Campho Advance
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| [https://old.reddit.com/r/emulation/comments/141mm66/glucoboy_found_and_dumped/jn0p5jr/ (WIP)]
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|-
 +
|Glucoboy
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{y}}[https://shonumi.github.io/articles/art33.html *]
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
| {{n}}
 +
|}
 +
</div>
 +
<references group=N2/>
  
A .cgp shader preset can be loaded in [[OpenEMU]] or [[RetroArch]] that is meant to (sort-of) replicate the "Gameboy Colors" option in VBA-M using the image-adjustment Cg shader. The settings are parameters that are stored in the cgp and can be adjusted at runtime. The relevant parameters set for this effect are:
+
===GB/GBC backwards compatibility emulation/Enhanced Mode===
 +
Game Boy Advance is backwards compatible with GB/GBC, resulting in some of the [https://cheapergamer.co.uk/gba-enhanced-gbc-games/ GB/GBC games enhanced if you play on GBA]. Having said that, this shouldn't be confused with [[Game Boy/Game Boy Color emulators|Game Boy/Game Boy Color emulation]] or [[Super_Nintendo_emulators#Hardware_features_and_accessories|Super Game Boy 1/2]]. Some of the multicore emulators supports both GB/GBC and GBA emulation, however they do not have support for "backwards compatibility/GBA mode" emulation.
  
Target Gamma = 2.4
+
===Game Boy Advance Video===
 +
:''See also: [[Wikipedia:Game Boy Advance Video|Game Boy Advance Video]] on Wikipedia''
 +
GBA Videos were officially released cartridges with movies/shows on them for viewing on GBA hardware. Most recommended GBA emulators should be able to play this type of cartridge if its 32MB, although [https://youtu.be/o9XmB43bN5w?t=540 not all of it supports 64MB ones].
 +
*[https://old.reddit.com/r/Gameboy/comments/byos8r/watching_gameboy_advance_video_on_a_gamecube/ Game Boy Player is not compatible with this feature]
 +
*mGBA support both 32MB and 64MB video cartridges.
 +
:See [[Home_Media_Player#Emulators|this dedicated page]] for more information about home media playback support for emulation softwares.
 +
:See [[Ripping_games|Dumping/ripping]].
  
Monitor Gamma = 2.16
+
===Connectivity===
 +
====GBA Multi Pak Link Multiplayer (1~4GBA)====
 +
;VBA-M: This doesn't work with old VBA versions.
 +
:Just disable "Pause when Inactive", configure all four Joypads each with their own button layout, enable "Link, Enable GBA Link". Now open VBA-M again as many times needed for each player, and have them each use their separate Joypad configuration. Each player will have a separate SRAM save file.
 +
;VBA Link + e-Reader:Useful if you want to use the Pokémon Battle-eCards. Downloads and instructions reside [http://projectpokemon.org/forums/showthread.php?42433-RELEASE-VBA-LINK-E-READER here].
 +
;mGBA:Select "New multiplayer window" from the menu. As you load your ROMs into each window, "Player [X] of [Y]" will appear across the title bar. This can be done for up to four players. However, multiple instances of the same ROM will share a save file.
 +
;No$GBA:Set the number of Emulated Gameboys in the Emulation setting to be 2 or more, and the Link Gamepaks Options to Gamepak in all GBAs.
  
Saturation = 0.5
+
'''Note''': Purple end in GBA means player 1, while a grey end in GBA means P2, P3, or P4. Daisy-chaining up to three cables will set up the additional P3 and P4 by connecting the purple end to a purple midsection.<ref>https://www.nintendo.com/consumer/downloads/agblink.pdf</ref>
  
Luminance = 0.9
+
====GBA Wireless Multiplayer====
 +
The [[Wikipedia:Game Boy Advance Wireless Adapter|wireless adapter]] has the ability to connect five players<ref>https://www.nintendo.com/consumer/downloads/agbwireless_trilingual.pdf</ref> to each other and includes its own software to download a subset of another player's game that runs when no cartridge is inserted. ''Pokémon Fire Red'' and ''Leaf Green'' came bundled with this accessory, but it can also work with ''Pokémon Emerald'' and the ''Classic NES Series''.
  
The colors will not be exactly the same as what VBA-M produces (a bit brighter and no washed out blacks) but it will get you the desaturation effect. Can be adjusted to fit your tastes, and you can get the washed out blacks by increasing "Brightness Boost" and decreasing Luminance a bit.
+
The libretro core of [[gpSP]] has successfully emulated the wireless adapter<ref>https://www.davidgf.net/2024/01/13/gba-wireless-adapter/</ref>. [[GBE+]](in v1.6) and VBA-M partially implemented the support of this add-on, though it's still a work-in-progress, and can only access menus. Support of this add-on is currently on [[mGBA]]'s roadmap.
  
===Save file issues===
+
====GameCube Connectivity====
There are a number of different save formats for GBA games. With raw save data, it's very hard to detect what save type it is just by looking at it. Visual Boy Advance tries to autodetect save type but often is incorrect and this causes issues. A fix to this issue is to use a file called "vba-over.ini" to tell VBA what each game's proper save type is, which eliminates most issues regarding save type. Current VBA-M versions come with vba-over.ini by default, but older versions of VBA like VBA 1.7.2 and VBALink did not.
+
[https://nintendo.fandom.com/wiki/Game_Boy_Advance_to_Nintendo_GameCube_Link_Cable#List_of_Supported_Games The Game Boy Advance can also connect to the GameCube].<ref>https://www.nintendo.com/consumer/downloads/agbgcncable.pdf</ref> e-Reader functionality with GC games has now been emulated thanks to mGBA. [[Dolphin]] supports connectivity through rudimentary joybus emulation made in parallel with VBA-M. Because this emulator has fallen behind, the feature was recently added to [[mGBA]], a more accurate emulator. They showcased early higan support in a video, but nothing has been released as yet.
  
The libretro versions of VBA, libretro-VBA-Next and libretro-VBA-M, come with vba-over.ini baked into the binary so it is able to load raw .sav files, but also changes the save file output to be a 136KB .srm file for every save type, with save type info contained within the file. This completely avoids any save type issues, but makes its save files incompatible with standalone VBA and most other emulators.
+
=====Dolphin/mGBA or VBA-M=====
 +
:''Requires mGBA 0.9.0 or newer or VBA-M r947 or newer.''
  
Libretro devs created a
+
* Reduce your volume. You won't want it to be high, especially with headphones.
[https://github.com/libretro/vbam-libretro/blob/master/src/libretro/gbaconv/gbaconv.c command line tool] to convert libretro-VBA .srm save files to raw .sav save data for other emulators. You can just drag and drop a .srm onto the executable and it will output raw .sav. The same can be done in reverse. A precompiled Windows 64-bit binary of this tool can be found
+
* Open Dolphin and mGBA/VBA-M. Make sure neither are blocked by your firmware.
[https://www.mediafire.com/?6bg8ag0bjs1b7ng here].
+
* In Dolphin, launch the game and navigate to the area where you're asked to connect the GBA. Then, under the controller options, assign the GameCube controllers as "GBA" for whichever you need.
 
+
* If you are using mGBA, open up the File menu, and click Connect to Dolphin.
==Connectivity==
+
* In the dialog box that appears, press Connect. mGBA will boot up the GBA BIOS if no rom has been selected.
===GBA Link Multiplayer (1~4GBA)===
+
* If you are using VBA-M, uncheck Pause When Inactive in Options > Emulator. Then, under Options > Link > Joybus Options, make sure the "Enable Joybus Connection" is on and set "IP/Hostname" to use default settings, that is <code>127.0.0.1</code> or <code>localhost</code>.
* VBA-M: This doesn't work with old VBA versions.
+
* Dolphin will freeze.
 
+
* Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. The regular splash screen will stutter a bit.
Just disable "Pause when Inactive", configure all four Joypads each with their own button layout, enable "Link, Enable GBA Link". Now open VBA-M again as much times needed for each player, and have them each use their separate Joypad configuration. Each player will have a separate SRAM save file.
+
* In either emulator, Dolphin should recognize the Joybus Link by then, and the GC game will detect that a GBA was connected.
 
+
* To connect other units, open another emulator instance and repeat its process.
* No$GBA: This method also works with DS roms, and that's the actual way to see the incomplete non-functional local Wi-Fi DS multiplayer implementation. (todo)
 
 
 
===GameCube Connectivity===
 
The GBA unit can connect to a GameCube.
 
 
 
====Dolphin and VBA-M====
 
 
 
Game Boy connection support can be supported via joybus emulation. Such requires VBA-M (r947 or newer) and a dump of a GBA BIOS.
 
 
 
'''Connect 1~4 GBA Unit Without Game to GC Game'''
 
 
 
First Part!
 
* Open Dolphin and VBA-M (duh). Make sure neither are blocked by your firmware.
 
* '''Dolphin:''' Start your game and play until you get to the in-game menu where you're asked to connect a GBA. Under the GC controller options (earlier "Config, Gamecube", now it's with the GC/Wii controller options). You have 4 GC controller ports: change how much you need to "GBA". Leave the game and its music running :)
 
* '''VBA-M:''' You'll need to uncheck "Options, Emulator, Pause When Inactive". Then, under "Options, Link, Joybus Options", Make sure to enable "Enable Joybus Connection" and set "IP/Hostname" to use default settings, that is (127.0.0.1) or (localhost) - without the brackets.  
 
* THEN, Dolphin will freeze. You'll want to not have the system sound too high if you're using headphones.  
 
 
 
Second Part!
 
* '''VBA-M''': Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. There will be that splash screen but it will stutter a bit.  
 
* Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA unit was connected.
 
* To connect other GBA units, open another VBA-M instance and repeat what you did with VBA-M.
 
  
 
Notable games that work:
 
Notable games that work:
* The Legend of Zelda Four Swords Adventures: Both two modes available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well, but the game crashes after the naming screen due to a bug in the GC/GBA connectivity.
+
*[https://wiki.dolphin-emu.org/index.php?title=The_Legend_of_Zelda:_Four_Swords_Adventures The Legend of Zelda Four Swords Adventures]: Both two modes are available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well.
* Final Fantasy Crystal Chronicles
+
*[https://wiki.dolphin-emu.org/index.php?title=Final_Fantasy_Crystal_Chronicles Final Fantasy Crystal Chronicles]
* Billy Hatcher: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
+
*[https://wiki.dolphin-emu.org/index.php?title=Billy_Hatcher_and_the_Giant_Egg Billy Hatcher and the Giant Egg]: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
* Kururin Squash
+
*[https://wiki.dolphin-emu.org/index.php?title=Kururin_Squash! Kururin Squash!]
* Sonic Adventure 2 (buggy)
+
*[https://wiki.dolphin-emu.org/index.php?title=Sonic_Adventure_2:_Battle Sonic Adventure 2: Battle] (buggy)
  
Don't work:
+
Notable games that don't:
* The Legend of Zelda Wind Waker: Tingle Trainer connection always fails, though some messages do display on VBA-M.
+
*[https://wiki.dolphin-emu.org/index.php?title=Mr_Driller:_Drill_Land Mr. Driller: Drill Land]
* Drill Land
+
*lots more
* lots more
 
  
'''Connect GBA Game to GC Game'''
+
===e-Reader===
 +
:''Main page: [[GBA e-Reader emulators]]''
 +
This device can read content off e-Card paper stripes either as standalone content, or additional content to GBA/GC games. Can be thought of as DLC.
  
* '''VBA-M''': Under "Emulator, Bios Files" set the GBA BIOS file directory, and have the emulator use it. This will cause each regular GBA rom you load in VBA-M to show the BIOS splash screen then proceed to the game. It has higher compatibility too.
+
===Inputs===
* You do the all the steps above in the '''first part''' of the previous section (connecting a GBA unit without Game to a GC game) until the line with Dolphin freezing when you enable Joylink in VBA-M.
+
;Solar Sensor
 +
1. Emulation: This feature has been emulated in mGBA, VBA-M, No$GBA 2.6 onwards, and My Boy!:
 +
* mGBA: In the shortcuts editor, shortcuts can be configured to raise/lower the solar level incrementally or to set any particular brightness level. The Nintendo Switch port of mGBA also allows use of the Switch's light sensor.
 +
* VBA-M: This emulator uses the keys of the lateral motion controls to change the Solar Sensor levels. You can find those keys and modify them in Options -> Input -> Configure... -> "Special" tab.
 +
* No$GBA: Under '''Options/Emulation Setup''', you can find the Solar Sensor Level option. You are given the choice between only three brightness levels though: Darkness, 100 Watts, and Bright Sunlight.
 +
* My Boy!: This emulator uses a button combination or the device's light sensor to check the brightness level. You can change this under Settings -> Input -> Cartridge Features -> "Solar Emulation By" menu.
 +
* Pizza Boy GBA: Uses the device's light sensor to check the brightness level.
  
Then:
+
2. ROM Patches: Fixes applied directly to the ROM by various scene release groups to make it compatible with any emulator/flashcard, making the in-game brightness level controllable with L+Left/Right. It's argued this makes for a better experience actually, but sadly not all releases are covered.
* '''VBA-M''': Open the regular GBA ROM to be connected with the GC game in VBA-M as if it were a regular GBA ROM.  
+
* '''Boktai 1:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1145 US], <s>EU</s>.
* There will be that splash screen, but if you do nothing the GBA game starts as usual and the connection doesn't actually happen. What you must do is to hold '''Select+Start''' while the BIOS is loading. This will cause the BIOS animation to stop and wait for connections, and the regular GBA ROM game won't boot immediately. If it goes as intended, VBA-M will stutter a bit and the connection will be initiated.
+
* '''Boktai 2:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], <s>US</s>, [http://www.advanscene.com/html/Releases/dbreleases.php?id=1992 EU].  
* Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA unit was connected.
+
* '''Boktai 3:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=2048 JP Fix].
* To connect other GBA units, open another VBA-M instance and repeat what you did with VBA-M.
+
* Combinations of Boktai 4 JP with earlier solar sensors to get solar sensor bonuses aren't emulated yet in any DS emulator.
  
Please note e-Reader functionality with GC games isn't emulated as of yet.
+
;Motion Control
 +
1. Emulation: This feature has been emulated in mGBA, VBA-M, My Boy! and Pizza Boy:
 +
* mGBA includes full motion control support using the motion sensor present in controllers like DualShock 4, DualSense and Switch Pro Controller.
 +
* VBA '''doesn't''' emulate this feature, and its "Motion Control" option (with keys mapped to each tilt direction) covers the GBC title Kirby Tilt'n Tumble.
 +
* VBA-M core on RetroArch includes motion control support by using a controller stick (left or right)
 +
* My Boy! uses the device's accelerometer to emulate this feature. You can change the sensitivity under Settings -> Input -> Cartridge Features -> "Motion sensitivity" menu.
 +
* Pizza Boy GBA also used the device's accelerometer to emulate this feature for games like WarioWare: Twisted and Yoshi's Universal Gravitation.
  
====Dolphin and other emulators====
+
2. ROM Patches: Fixes applied directly to the ROM (with the Lunar IPS utility, or at runtime using mGBA or VBA-M and naming them the same as the ROM in the same directory) by various scene release groups to make it compatible with any emulator/flashcard. D-Pad controls substituting motion controls don't work as well here as they tilt it "too much" at times to be very playable.
Dolphin devs are working at rewriting the entire GBA connectivity code in a far better way from scratch with more accurate emulators. They did a video using the higan emulator. Nothing of the sort is published at the moment.
+
* Yoshi Topsy Turvy/Universal Gravitation: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1799 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1947 EU], [http://www.advanscene.com/html/Releases/dbreleases.php?id=2001 US]
 +
* WarioWare Twisted! (Patch: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1682 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1979 US])
  
===GBA/DS Connectivity===
+
;Rumble Feature
Inserting a GBA card in Slot-2 in a Nintendo DS unit (that's not a DSi) while a DS game is running could unlock various gameplay features in some DS games. DesMume can emulate this: while playing the DS ROM, go to "Config, Slot 2 (GBA Slot)" and select "GBA Cartridge". Now select the GBA ROM file, and make sure its sav file is in the same folder. You may need to reset the game sometimes to see the effect in-game.
+
There are various rumble features found in GBA/GBC cards:
 +
* '''GBC Rumble:''' GBC games which came on special cartridges with additional hardware for the rumble feature. It was actually used by dozens of releases, and some games like Tarzan 2 GBC were programmed to have rumble support but shipped on regular cartridges. Emulated by VBA-M GX (Wii-only), which also cover the dummied-out rumble games. Not emulated anywhere else.
 +
* '''GBA Gyro Rumble:''' WarioWare Twisted was shipped on a cart with rumble support. It would rumble when you tilt to one "extreme". Emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds,
 +
* '''GBA Variable Rumble:''' Drill Dozer has rumble support, with variable force and speed depending on the rock type you drill through in-game. Partially emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds.
 +
* '''Game Boy Player Rumble:''' Many regular GBA games, shipped on regular cartridges, enable rumble during gameplay when played on GB Player hardware (which is essentially GBA hardware). These include Super Mario Advance 4, Summon Night Hajimari no Ishi, Mario & Luigi: Superstar Saga, Shikakui Atama wo Marukusuru Advance (both releases), Pokémon Pinball, as well as Drill Dozer which disables its original cartridge rumble scheme and enables this one instead. None of the emulators support this, though it's being under development for the mGBA emulator.
  
==Special Hardware==
+
===Special hardware===
===Special Cartridges===
+
Emulation of these is spotty, apart from GBE+, which supports almost all GBA peripherals.
These were never emulated as of yet. There used to be patches to be applied to GBA ROMS with an utility like LunarIPS, but they're for the most part lost to time nowadays. Your best bet is to use Action Replay to emulate those.
 
  
* '''Solar Sensor:''' Boktai 1 (Fix: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1145 US], <s>EU</s>), Boktai 2 (Fix: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], <s>US</s>, [http://www.advanscene.com/html/Releases/dbreleases.php?id=1992 EU]), Boktai 3 ([http://www.advanscene.com/html/Releases/dbreleases.php?id=2048 JP Fix]).
+
;Turbo File Advance
* '''Motion Control:''' Yoshi Topsy Turvy/Universal Gravitation (Fix: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1799 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1947 EU], [http://www.advanscene.com/html/Releases/dbreleases.php?id=2001 US]), Warioware Twisted! (Patch: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1682 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1979 US])
+
The Turbo File Advance was a peripheral for the GBA which allowed certain games to write data to it, acting as an external memory card. Developed by Sammy Corporation, it was compatible with only 2 games, RPG Tsukuru Advance and Derby Stallion Advance.
* '''Variable Rumble Speed''': Drill Dozer. Can still be emulated.
 
* '''Figurine Add-on:''' Legendz: Isle Of Trials, Legendz: Sign Of Necromu, Plaston Gate ([http://www.advanscene.com/html/Releases/dbreleases.php?id=1020 Fix]), Plaston Gate DX ([http://www.advanscene.com/html/Releases/dbreleases.php?id=2006 Fix]). The add-on is essentially Skylanders before it became popular.
 
  
VBA-M has an option for Motion controls "Input, Set, Motion". It currently works with all versions of the GBC title Yoshi Tilt'n Tumble, which also was a special cartridge with a motion sensor built-in to control movement in-game.
+
GBE+ supports this add-on.
  
===Other Add-ons===
+
;Power Antenna & Bug Sensor
Not emulated yet:
+
The Power Antenna & Bug Sensor were small plastic peripherals that interfaced with the GBA's serial port and contained LEDs that flashed in response to certain events within Keitai Denjuu Telefang 2, the only supported GBA game.
  
* Battle Chip Gate (and variations): compatible with Japanese versions of Megaman Zero 3, Megaman Battle Network 4, 4.5, 5 and 6.  
+
GBE+ supports this add-on.  
  
==e-Reader==
+
;Official Nintendo Infrared Adapter
The e-Reader is an add-on for the Game Boy Advance released in Japan and USA/Australia (and cancelled in Europe).  
+
As the GBA did not have native infrared connectivity, Nintendo released an official IR adapter called the AGB-006 to restore this functionality. However, it only saw use in Cyber Drive Zoids: Kiju no Senshi Hyuu to control specific Zoid toy models.
  
It has a LED scanner that reads paper cards with data printed on them, called "e-Reader cards". These cards hold actual data.
+
GBE+ supports this add-on.
  
This way, stuff could get unlocked in games, most famously Super Mario Advance 4 where some cards triggered switch effects (like vegetables everywhere, various powerups including the Boomerang (only appearing after in Mario Land 3DS), the Kuribo Shoe and the SMW Cape, a 100-Up powerup, a replay feature, and other stuff) while others held entire new levels in their data found nowhere in the original cartridge to be transferred to the save file.
+
;Figurine Readers
Due to its impopularity outside Japan, these features would often be removed when e-Reader compatible games would be localized.
+
Some GBA games/series had figurine reader add-ons, essentially precursors to the likes of Skylanders and Amiibo.
 +
* '''Soul Doll Adapter''' (Legendz: Island of Ordeal/Sign of Nekuromu)
 +
* '''Multi Plust On System''' (Bouken Yuuki Pluster World: Plust Gate/EX/Pluston GP)
 +
GBE+ has support for both the Soul Doll Adapter and Multi Plust On System, while mGBA supports the Soul Doll Adapter.
  
In these cases, it requires two GBA units - one with the game cartridge, the other with the e-Reader device, linked with a link cable, with the gray end on the second GBA. Playing the game up to the point where you can initiate the e-Reader features, you can then swipe the paper cards in the e-Reader to read the data - it's not ideal though outside of emulation due to how much finnicky the process actually is.
+
;Battle Chip Gate
 +
A peripheral device by Capcom and Takara compatible with ''Mega Man Battle Network 4'' (Japanese edition). It can be connected to the Game Boy Advance and allow the player to transmit real-life toy Battle Chips to the NetNavis in the game. It's also compatible with toy Advanced PETs and ''Rockman.EXE 4.5 Real Operation''. It can also unlock minigames in ''Mega Man Zero 3''.
  
It could also connect with GameCube games in the same way, notably Animal Crossing.
+
[[mGBA]] and [[GBE+]] support this add-on.
  
Other e-Cards that only require one GBA with e-Reader include NES games (often mapper 0 games) and various promotional cards.
+
;Glucoboy
 +
An obscure medical peripheral designed to monitor a child's blood glucose levels and reward them for keeping tabs on their condition. [https://assemblergames.com/threads/glucoboy-for-gameboy-is-this-the-rarest-game-accessory-for-gameboy-advance.41853/page-2 Bayer Healthcare destroyed all unsold stock] making it hard to find. It's emulated in GBE+ since version 1.8.
  
e-Reader was originally released in Japan in 2001 without Link cable support (thus unable to link to other GBA/GC games), but that was added in a second version released in 2002 as e-Reader+ in Japan. That second version was released as e-Reader in USA and Australia.
+
==Emulation issues==
 
+
===Oversaturation===
===What you'll need===
+
[[File:1406913527173-1-.png|400px|thumb|right|'''Left:''' The default game.<br/>'''Right:''' The "Gameboy Colors" mode on [[VisualBoy Advance#VBA-M|VBA-M]].]]
 
+
The screen on the original Game Boy Advance is not backlit and can be hard to see in some conditions. To compensate, game developers often used oversaturated colors by default so that the result would look normal on hardware. On standard computer screens, saturation is not an issue, so this can look jarring and undesirable for gameplay. Some games made after 2003 may have also taken the Game Boy Advance SP <abbr title="AGS-001">model</abbr> into account, since its screen was actually <abbr title="A newer model, AGS-101, was released in 2005 that was actually backlit">frontlit</abbr>. For everything else though, emudevs have given some solutions:
'''The e-Card images:''' Yes, these have actual data in them. The "No-Intro Game Boy Advance (e-Cards)" rom set is only missing 12 US cards (Pokémon TGC) and a few dozen JP ones (mainly F-Zero Legend, Rockman EXE 5/6, Pokémon Pinball). Either download the set or hunt down the device and obscenely rare cards to archive them.
 
 
 
The dumps are around 2.2KB, and are region-locked. No European-region dumps exist (even though really rare e-Cards do).
 
 
 
'''The e-Reader BIOS:''' A regular GBA ROM. Three versions exist, be sure to pick up the one with the same region as the e-Card.
 
 
 
* Card e-Reader (Japan) ''(not recommended)''
 
* Card e-Reader+ (Japan)
 
* e-Reader (USA)
 
 
 
'''Emulators for e-Reader:''' Your best bet is no$gba 2.4 and above. Modified versions of VBA include e-Reader support, with one for 1.7.0 (no Link support)
 
and 1.6e (Link support), but their emulation isn't perfect, and no$gba is still needed for many setups involving two GBAs. No emulation for now for e-Reader/GameCube connection.
 
 
 
''Or, alternatively (even if it's not actual e-Reader emulation):''
 
 
 
'''Battery backup files (sav)''' from people who had already scanned e-Cards. Their data gets stored in the sav file for the e-Reader BIOS rom, or the GBA game with e-Reader features. This is one convenient way to play the exclusive levels from SMB4 if you just grab a save file with the levels already stored and import it in your emulator for use with that game (also the only way to get it to work on PAL SMB4).
 
 
 
'''Cheat codes''' enabling the e-Reader unlockables in some games. Only works if the "dlc data" is already included in the cartridge - so it wouldn't work with SMA4's levels or F-Zero Legend's developer ghost data for example. It's also useful to get data that was removed from US versions (since the e-Reader was discontinued outside Japan very early) - including notably Pokémon Coloseum, Megaman Zero 3, and Megaman Battle Network 5 (6 JP included the data on-cart already, US didn't and made heavy content cuts)...
 
 
 
===Scan a Standalone Card (1 GBA, e-Reader only)===
 
 
 
Trying to scan a card for use with another GBA game to unlock stuff within using this method would give you an error message.
 
 
 
====Using No$GBA====
 
 
 
No$GBA offers actual full hardware emulation for e-Reader, but its GBA emulation, while very decent and with save state support, isn't the best out there. You can still export your save at will.
 
 
 
'''Emulator:''' Open the e-Reader BIOS. It's a regular GBA ROM. <br />
 
The very first time it's loaded, it will save some e-Reader specific configuration, then reset the emulator. After that it's all good.<br />
 
'''In-game, BIOS:''' Press A (or "Select" for a hidden bonus :P). Choose "Scan Card".<br />
 
'''Emulator:''' A window should pop-up. Now you can choose the e-Card roms (often RAW, but can be also BIN, or BMP/JPG images) you'll need. Choose the file and click OK.<br />
 
'''In-game, BIOS:''' A "Scan Card" message appears, and the data is loaded.
 
 
 
If the application (NES game, minigame, promotional app) is stored in multiple e-Cards, the game will let you know ("You need [n] more Dot Code(s) to start. Scan [Application Name] 2/[n].") In that case:
 
 
 
'''Emulator:''' Click "File, Load e-Reader Dotcode". Choose the next e-Card image file. <br />
 
'''In-game, BIOS:''' In the same screen, press A to Scan Code. The data should be loaded. If you tried to do so before loading the next file, the BIOS would say you have already scanned it. Rinse and repeat until you get all parts.
 
 
 
If you're done with all parts (could be one part in many cases), and all is fine, the BIOS would suggest you save the data to the e-Reader's SRAM. (You can then conveniently grab the sav file for use with other emulators).
 
 
 
This prevents the data from getting deleted when rebooting the device or scanning other e-Cards. You can then access it from the title menu with the new third option, "Access Saved Data" (and the app name shows below too!) In case you want to delete it, hold L+R at console startup (you can use the numeric pad * (multiply) key to reset).
 
 
 
Then, after this save prompt, you can play the actual application.
 
 
 
====Using VBA e-Reader compatible old builds====
 
 
 
VBA 1.7.0 e-Reader (no Link)
 
VBA 1.6e e-Reader + Link
 
  
These old versions of VBA (later VBA-M) do not do full e-Reader emulation but still do the job here. The version lacking the Link feature though is useless for cards to be used with GBA games. Regular VBA, and VBA-M versions do not have e-Reader support at all.  
+
====Emulator Options====
 +
'''No$GBA:''' Under "Emulation Options", select "GBA Mode". There are four modes.
  
Not that different from No$GBA. You open the e-Reader BIOS first like any regular GBA ROM.
+
* '''GBA (no backlight):''' Strong desaturation
 +
* '''GBA SP (backlight):''' Strong desaturation
 +
* '''Nintendo DS in GBA mode:''' Some desaturation
 +
* '''VGA Mode (poppy bright):''' No desaturation
  
You might be faced with a "Memory Error" screen in-game. That's because VBA didn't detect the save type correctly. You'll need to do that manually, by going to Options, Emulator, Save Type, then choosing 128K rather than 64K. While you're at it, check under Emulator if "Save e-Reader RAW Files" is checked. "Pause when Inactive" needs to be disabled if you ever intend to link between two GBAs (not needed right now).
+
'''mGBA:''' Under Tools > Settings > Shaders > Load New Shader, select "gba-color.shader"
  
Reset, and press A and just wait for the SRAM to be formatted (a good minute). Press A when you're done and you can go to the in-game title menu. Whenever the game tries to scan e-Cards, unlike with NO$GBA a window will always pop up asking you to choose your e-Card dump (can be only a RAW file in VBA's case). It's more straightforward here, and the NES compatibility is even better. That said it's more of the same. Read the NO$GBA section for more info.
+
'''VBA-M:''' (nightly only): Under Options > Game Boy Advance, you will find the option, '''LCD Filter'''.
  
====Emulators lacking e-Card reading support====
+
'''higan:''' Under Settings > Video Filter, you will find the "Color Emulation" checkbox.
  
Of course, you can fetch SRAM battery save files (sav) for the e-Reader BIOS or the e-Reader compatible GBA games AFTER e-Cards were already scanned and their data saved in these SRAM files, either using e-Reader emulators or real hardware. These sav files should work with ANY emulator.
+
* '''Color Emulation off:''' No desaturation
 +
* '''Color Emulation on:''' Gamma correction and adjusted color range.
 +
'''NanoBoyAdvance''': Enabled by default. Under Config > Video > Color Correction > GBA
  
Alternatively, there are cheats. Very often, that's the only way to unlock e-Reader features in games lacking them in some versions (notably US Megaman games versions, and SMA4 PAL).  
+
'''SkyEmu''': Color Correction is set by default to 1.00 force in this emulator, and there are 2 types of desaturation methods. The first one is named SkyEmu and is selected by default, and the other one is named Higan and, as it's name suggests, is based on higan's color correction. Change the desaturation type by pressing the ≡ button, then select GBA Color Correction Type. You can also change the intensity of the desaturation: slide the slider to 0.00 to brighten the screen a tad bit.
  
===Scan a Card for Use with a GBA Game (2 GBAs linked, e-Reader + GBA Game)===
+
====Shaders====
 +
Cg [[Shaders and Filters|shaders]] can be used in [[OpenEmu]] or [[RetroArch]] that adjust the colors to those of a real GBA screen, as well as other screen types. These are available in GLSL<ref name="GLSL">https://github.com/libretro/glsl-shaders/tree/master/handheld/shaders/color</ref> for OpenGL, and Slang<ref name="Slang">https://github.com/libretro/slang-shaders/tree/master/handheld/shaders/color</ref> for Vulkan.
  
(TBA)
+
For GBA, there is <code>gba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/gba-color.cg</ref>, which simulates the color profile of a GBA screen under an external light source more accurately than VBA-M or No$GBA color options. If you prefer the darker color options that those emulators have, then use <code>vba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/vba-color.cg</ref> instead.
  
====No$GBA====
+
There is also <code>nds-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/nds-color.cg</ref> and <code>psp-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/psp-color.cg</ref>, which simulates the color profiles of the original Nintendo DS frontlit screen and the PSP-1000/PSP-2000 backlit screen, respectively.
Shugo Takahashi's explanation in the case of SMA4.
 
  
1. You'll need a save file for the e-Reader BIOS GBA ROM with the SMB4 Level Card Program already saved. ([http://www.zophar.net/download_file/20656 Link], US).
+
For Game Boy Advance shader presets, see the "Shader Presets" page;
 +
{{Main|Shader_Presets}}
  
2. Next you need to set up NO$GBA. Place the GBA BIOS file in NO$GBA's root and run NO$GBA. Open any ROM (right now it doesn't matter) and immediately go edit the settings by pressing F11. Go to the Controls tab and define your control layout for both Player 1 and Player 2, then click on Options and click "Save Options". Close out of NO$GBA.
+
===Horrible Sound Quality===
 +
As a handheld rushed to the market (because of the WonderSwan Color competition), the Game Boy Advance had some cut corners. The sound hardware was affected the hardest: while it could play Game Boy Color sound in addition to samples and sequenced music like what would be heard on the SNES, the actual playback quality is awful compared to the sound samples stored internally in the ROM.
  
3. It should now have created several files and folders in the root folder you placed it in. Open NO$GBA.ini in Notepad and find the "SAV/SNA File Format" setting. Change this to "Raw" and save it. Go place your SMA4 SAV and the e-Reader SV2 in the BATTERY folder. Make sure they share the same names as the SMA4 and e-Reader ROMs you have.
+
There were [https://www.romhacking.net/utilities/881/ tools] made to extract the internal high-quality music (as midi files plus a sound font, to be played on foobar2000), however, interest remains limited in implementing its playback in real-time on emulators. It's worth noting that NanoBoyAdvance includes [https://github.com/ipatix/gba-hq-mixer High Quality Audio Mixer] and there's a very experimental feature exists on [[mGBA]] (nightly versions) under Enhancements as "XQ GBA Audio", but it's very buggy and still limited to games using the standard sound engine, the so-called "Sappy" engine, which is still a big part of the GBA's software library.
  
4. Open NO$GBA and open the e-Reader ROM. Change "All machines" to "1st machine". Then press F11 and change "Number of Emulated Gameboys" to "2". DO NOT SAVE THE OPTIONS HERE. IT WILL CRASH ON STARTUP EVERY TIME IF YOU DO.*
+
===High Resolution Affine Transformation Graphical Effects===
 +
Similar to the scaling effects used on the Super NES known commonly as "Mode 7" graphics, the Game Boy Advance has affine transformation effects for some backgrounds and individual sprites that can be done in hardware. Due to the GBA's lower resolution, some detail may be lost.
  
''If you screw up and save the NO$GBA options after you've enabled two Game Boys, then open NO$GBA.INI and find the "Number of Emulated Gameboys" option. Change this to "-Single Machine" and save.''
+
The [[mGBA]] emulator added an Enhancements' menu where you can change the resolution of those graphical effects, for a smoother effect. The graphical render engine will need to be OpenGL for those to take effect. It won't work on games where those effects are done in software instead of the hardware scaling features (like the 3D environment in Asterix & Obelix XXL)
  
5. After enabling two Game Boys, click "File" and "Cartridge Menu (FileName)" and open your SMA4 ROM, this time selecting "2nd machine". If you did this right, then SMA4 should be loaded on the left side with sound and the e-Reader should be loaded on the right side without sound. Navigate to the SMB3 main menu and check to see that your save file loaded properly.** Go to "Level Card" and then move Mario/Luigi onto the swirling panel in front of the castle to open a menu. Move up to "Level Card" and select it to be taken to the e-Reader communication screen.
+
===Save formats===
 +
Originally, when saves were implemented, nobody settled on a format, so the Visual Boy Advance devs made their own. Because other emulators often went with raw data, having to exchange different saves caused problems. The original Visual Boy Advance tries to figure out which format a given save is but often fails at it. By explicitly telling the emulator to read it as a specific type using a file called <code>vba-over.ini</code>, VBA complies. VBA-M includes this config file by default, but older revisions like VBA 1.7.2 and VBALink do not.
  
6. Next use the Player 2 controls you mapped out to navigate the e-Reader menu to "Access saved data". "Super Mario Advance 4" should be displayed as the saved data.** This should take you to a communication screen just like SMA4's next to it. Hit A on SMA4 to begin communication. Go to "File" and then "Load e-Reader Dotcode" in NO$GBA and navigate to the .RAW Level Card dotcode files you downloaded. Double-click one and the e-Reader should accept it and send it back to the SMA4 ROM. The SMA4 ROM will then tell you that a Level Card was received.
+
The VBA-Next and VBA-M cores in Libretro have the file baked into the binary so that it can load raw .sav files, but converts the format to its own derivative at exactly 136 KB every time, with save type info contained within the file. This completely avoids the previous issues at the cost of incompatibility with standalone VBA and most others.
  
''If either the SMA4 ROM or the e-Reader ROM don't have the proper saved data, make sure that you changed the save type in NO$GBA.INI to "Raw", the save files are the same names as their ROM counterparts, and that SMA4 is on the left screen while e-Reader is on the right screen. If their screens are flipped, then either restart NO$GBA and follow my instructions more carefully or open BATTERY and change their save types around (.SAV to .SV2 and vice versa).''
+
To solve this incompatibility, Libretro devs created a
 +
[https://github.com/libretro/vba-next/blob/master/libretro/gbaconv/gbaconv.c command-line tool] to convert .srm save files made from these cores to raw .sav save data for other emulators. It takes standard input (i.e. just drag and drop the .srm onto the executable) and outputs accordingly. It can also be done in reverse. A [https://thysbelon.github.io/gbaconv-web/ website version of this tool can be found here].
  
6b. Now here's the catch. SMA4 will not let you save a level permanently and then scan more levels until you beat the level you just scanned at least once. So you either have to beat the level now in the emulator or load the save back onto your real game, beat the level, and then repeat this entire process for the next level. It's cumbersome, I know, but in the end when you have all the levels scanned in and you've played them all it'll be well worth it; these are some of the coolest levels in the entire Super Mario series!
+
For more information about Game Boy Advance hardware and reverse engineering; <br/>
 +
* Rodrigo Copetti: [https://www.copetti.org/writings/consoles/game-boy-advance/ Game Boy Advance Architecture Practical Analysis]
 +
* MVG: [https://www.youtube.com/watch?v=R43k-p9XdIk The Story of Quake on the Game Boy Advance], [https://www.youtube.com/watch?v=_Qqg4VCZ0k8 How the Game Boy Advance knew it was running a Game Boy Game], [https://www.youtube.com/watch?v=_GVSLcqGP7g Tomb Raider on the Nintendo Game Boy Advance is incredible], [https://www.youtube.com/watch?v=mpNWEbZdXNw How Graphics worked on the Nintendo Game Boy Advance]
 +
* martin korth: [https://problemkaputt.de/gbatek-contents.htm gbatek]
 +
* [https://akkera102.sakura.ne.jp/gbadev/ akkera102.sakura gbadev (Japanese)]
 +
* [https://gbadev.net/gbadoc/ gbadev - gbadoc]
 +
* [https://en.wikibooks.org/wiki/GBA_Development/Resources WikiBooks - GBA Development Resources]
  
7. If you choose to beat the level using your original game cartridge, another emulator or are just ready to transfer your save file back, then press Start in NO$GBA on SMA4 and hit "Save". It will take you back to the title screen. Go back into Level Card and check to make sure the level you just scanned is still on the level list. Close out of NO$GBA and go into the BATTERY folder. Copy the .SAV file from SMA4 and paste it somewhere else: you can import it in other emulators or even real cartridges.
+
==References==
 +
{{reflist|2}}
  
===Scan a Card for Use with a GC Game (GBA and GC linked, e-Reader + GC Game)===
+
{{Nintendo}}
  
Unfortunately neither the Dolphin emulator nor any of the GBA emulators it can connect with, do support this feature at all.
 
 
[[Category:Consoles]]
 
[[Category:Consoles]]
 +
[[Category:Handheld consoles]]
 +
[[Category:Nintendo consoles]]
 +
[[Category:Sixth-generation video game consoles]]
 +
[[Category:Game Boy Advance emulators|*]]
 +
[[Category:ARM-based]]

Latest revision as of 22:07, 2 April 2024

Nintendo Game Boy Advance
Gbagba.png
Developer Nintendo
Type Handheld game console
Generation Sixth generation
Release date 2001
Discontinued 2010
Predecessor Game Boy (Color), Virtual Boy
Successor Pokémon mini, DS(i)
Emulated
For other emulators that run on GBA hardware, see Emulators on GBA.

The Game Boy Advance (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on the 21st of March 2001, in North America on the 11th of June and in Australia and Europe on the 22nd of June and retailed for $99.99. It has a ARM7TDMI CPU at 16.78 MHz and a Zilog Z80 CPU at 8 MHz and 4 MHz. It has 288KB of RAM and 96KB of VRAM.

Emulators[edit]

PC / x86[edit]

Name Platform(s) Latest Version Hardware features
and accessories
Enhancements Compatibility FLOSS Active Recommended
mGBA
mGBA_libretro
Windows Linux macOS FreeBSD Web Dev builds
libretro core[N 1]
0.10.3
~ ~
VBA-M
vbam_libretro
vba_next_libretro
Windows Linux macOS FreeBSD Nightly builds
libretro cores
2.1.9
~ ~ ~
NanoBoyAdvance Windows Linux macOS Dev builds
1.8.1
~ ~
SkyEmu Windows Linux macOS Web Dev Builds
v3
~ ~
ares Windows Linux macOS git Artifacts
v137
? ~ ~
GBE+ Windows Linux macOS 1.8 ~ ? ~
No$GBA Windows MS-DOS 3.05 ~ ~ ~* ~
BizHawk
(mGBA 0.10.0)
Windows Linux Dev builds
2.9.1
~ ~ ~
MAME Windows Linux macOS FreeBSD git artifacts[N 2]
0.264
? ~ ?
gpSP_libretro Windows Linux macOS libretro core ~ ~ ?
Mednafen
mednafen_gba_libretro
Windows Linux macOS FreeBSD 1.32.1
libretro core
?
Hades Windows Linux macOS 1.0.0
Nightly builds
Git
?
higan (火眼)
byuu (謬/view)
Windows Linux macOS v110 ? [N 3]
iDeaS Windows Linux 1.0.4.0 ?
VGBA Windows Linux macOS FreeBSD 6.4 ?
Meteor Linux 1.4.2 ?
BoyCottAdvance Windows Linux macOS 0.2.8 ?
PlayBoy Advance macOS 1.0 ?
GameBeanAdvance Windows Git ? ~
NooDS Windows Linux macOS git ?

Mobile / ARM[edit]

Name Platform(s) Latest Version Hardware features
and accessories
Enhancements Compatibility FLOSS Active Recommended
mGBA Android iOS Linux Pandora unofficial android version
libretro core
~ ~
VBA-M Android iOS Linux Pandora libretro core ~ ~ ~
SkyEmu Android iOS v3.2 (Play)v3.2 (Amazon)git ~ ~
gpSP Android iOS Pandora
Didj Symbian
libretro core
0.9.2.8 Pandora
Symbian
~ ~ ? ~[N 4] ~
Pizza Boy GBA Android 2.6.8 (Offline) ~ ~ * ~
GBA.emu
(VBA-M 2.1.4 based)
Android Dragonbox Pyra Pre-release
1.5.77
1.5.46.02 Pyra
? ~
My Boy! Android 2.0.6 ? ~
VBA10 Windows 10 Phone 1.22
Alt
? ~
GBA_J2ME Java 1.0 ? ? ~
VGBAnext Android 6.6.6 ?
NooDS Android 0.1
git
?
GBA4iOS iOS 2.1 ?
VBA8 Windows 8 Phone 2.27 ?

Consoles[edit]

Name Platform(s) Latest Version Hardware features
and accessories
Enhancements Compatibility FLOSS Active Recommended
mGBA Wii Wii U Switch
Nintendo 3DS Vita
Dev builds
0.10.3
libretro core
~ ~
Nintendo Switch Online (Sloop) Switch N/A ~ ~ Only for selected titles
VBA Next GameCube Wii Switch
PlayStation 3
PlayStation 4
Vita
Xbox Xbox 360
libretro core ? ~
gpSP Dreamcast PSP
PlayStation 2 GameCube Wii
Nintendo 3DS Vita
libretro core
TempGBA4PSP
~ ~ ? ~[N 4]
Virtual Console Nintendo 3DS Wii U 8.10 ~ Only for selected titles (3DS)
Only for selected titles (Wii U)
Game Boy Player GameCube ~
ReGBA PlayStation 2 v1.45.5 revision 3 ? ~
emGBA GameCube Wii Wii U git ? ~
VBA GX GameCube Wii Wii U git ? ~
Gbaemu4DS Nintendo DS Alpha 2 fix 4git ?
GBARunner2 Nintendo DS Nintendo 3DS 2020/08/12 ?
UO gpSP Kai (UO gpSP改) PSP 3.4 test 4 build 230 ?
NooDS Switch Vita Wii U
PSP
git (Switch/Vita/WiiU)
git (PSP port)
? ?

Comparisons[edit]

mGBA
Free and open-source Game Boy/Color and Game Boy Advance emulator developed by endrift. Being written from scratch, it aims for speed, accuracy, and portability. As of yet, it's the most complete GBA emulation effort with enhancements and feature support, passing the older project VBA and its forks. It is also available as a Libretro core for RetroArch. As of 0.9.0, mGBA with a stripped-down GUI has been integrated into Dolphin recently for games supporting connectivity features.
NanoBoyAdvance
Highly accurate[1] Game Boy Advance emulator. It aims for cycle-accurate emulation when possible (CPU, DMA, timers, PPU and Game Pak prefetch), while also offering enhancements such as improved audio quality. Very high compatibility, including games that require emulation of peculiar hardware edge-cases. Unfortunately, following the release of the next major update, developer "fleroviux" will step down from actively developing the project.[1]
Visual Boy Advance (VBA)
The original GBA emulator. Discovered to have an ACE vulnerability detailed below.
Visual Boy Advance-M (VBA-M)
A fork with additional minor improvements. It is behind in terms of accuracy compared to mGBA or other recommended GBA emulators, but is still useful for its robust debugging features and sound interpolation that reduces hissing.
VBA-Next
A RetroArch fork from an older revision of VBA-M with added speedhacks and tweaks, making it useful for lower-end devices. A bit less accurate in some respects, but fixes a few games such as Advance Wars 2.
SkyEmu
Low level Game Boy, Game Boy Color and Game Boy Advance emulator. Its primary focus is to provide a good user experience through a good mixture of tradeoffs of accuracy[2], performance, features and usability. Capable of full instruction pipeline, prefetch emulation and per pixel PPU Implementation capable of both scan line and mid-scan line effects.
higan / ares
Accuracy wise it is behind compared to NanoBoyAdvance, SkyEmu (and maybe mGBA) but it has dot-based instead of scanline-based renderer and doing better job compared to VBA-M. Also it is behind in terms of compatibility compared to mGBA, NanoBoyAdvance and SkyEmu, but Ares stands out being multi-system emulator and supports some useful enhancements like shaders/filters and simple debug features.
MAME
Has a gba driver markup as working, but both graphics and sound are "imperfect" as of version 0.261.
gpSP
Originally made for the PSP, its last official version was 0.91. There are, however, two forks of interest: gpSPmod, and gpSP-J. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai. TempGBA is another good fork. For other platforms, there's a libretro port of gpSP with fast x86 and ARM dynarecs. While it's behind the best GBA emulators in terms of accuracy, its great performance makes it a viable option for old/underpowered machines or for using extreme fast-forward in games.
Nintendo Switch Online (Sloop)
  • GBA support was added to Nintendo Switch Online Expansion Pack in February 2023, alongside GB games exclusive to the normal tier;
  • Users are limited to the selection of games Nintendo chooses to make available on the service;
  • Can support Local Play with other Switch Online users (up to 4 players, Local Play must be with individual Switch systems);
  • Accurate enough at the point of being able to pass any of the AGB Test Cartridge (v10) tests without a single failure;
  • Video filters can be applied;
  • Allows exchange of regional variants in the International version of the app (USA and/or European versions);
  • Allows rumble support for games that had such function back when played in a Game Boy Player (Super Mario Advance 4: Super Mario Bros. 3, Mario & Luigi: Superstar Saga)
  • Different games between regions (Japan and International)

NOTE: There's a huge ACE vulnerability affecting VBA and most of its forks, except for VBA-M. The function for adding GameShark codes ("Import > Gameshark code file") doesn't check if the file's size is within 1024 kilobits, meaning cheat code files from dubious sources can be engineered with malware in mind. There is good news; VBA-M still doesn't do a sanity check for those files, but it just crashes instead of letting the code wreak havoc. So, depending on your use case, avoid using:

  1. Cheat code files bigger than 1024Kb that you got online from untrustworthy sources.
  2. The import code files feature.
  3. The old emulator altogether, and settle for other options like mGBA or VBA-M. All of them support the same SRAM save data the cartridge uses.

List of recommended GBA emulators for Android:

Enhancements[edit]

Name mGBA VBA-M No$GBA SkyEmu NanoBoyAdvance Game Boy Player Virtual Console BizHawk ares GBE+ gpSP Pizza Boy GBA (Pro) MAME Nintendo Switch Online (Sloop)
Graphics Resizable Internal Resolution For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent.
Sprite Replacement ? ? ?
Widescreen Hack
Performance Overclock * ?* ? ? *
Internal Framerate Hack
Post-Processing Post-rendering AA
(FXAA, TXAA and MLAA/SMAA)
Post-rendering scaling
(Sharp bilinear, Lanczos and FSR 1)
Filters
AI-powered filter compatible
(Freestyle)
? ? ? ? ? ? ? ? ? ? ?
Shader Chain ~[N3 1] ~[N3 1] *
Inverse tone mapping compatible ? ? ? ? ? ? ? ? ? ? ?
TAS features Macros/Scripts/Lua [N3 2] ? *
Rewind
Fast-Forward/Turbo Speed ?
Savestates
Movie recording/playback ?[2] ?
Controls Input lag-mitigating technique ~[N3 1] ?
Quality of life Built-in Custom resolution/CRTSwitchRes
For using this on Windows OS you need CRT Emudriver.
Another option is using EDID editor tool such as "Custom Resolution Utility".
Exclusive to libretro cores and GroovyMAME at the moment.
Also there is a project for achieving software emulators like libretro cores and GroovyMAME send the raw RGB data over a network to a core running on MiSTer, it basically turns the MiSTer into a GPU for the emulator allowing for easy setup and use with CRT TVs/Arcade monitors.
Built-in Cheat Manager ?
Streamable compression format ?
Per-Game Profiles
Command Line Options
Big Picture Mode
Misc Netplay
You can use either yuzu/Ryujinx for playing GBA games online via netplay.
This enhancement shouldn't be confused with GBA connectivity features emulation.
WIP *
High Quality Audio Mixer
HQ audio mixer for games which use Nintendo's MusicPlayer2000 sound engine
~ ?
EmuVR support Exclusive to libretro cores at the moment.
RetroAchievements ~[N3 1] ~[N3 1] * *
Debug Features *
  1. 1.0 1.1 1.2 1.3 1.4 Exclusive to libretro core. There is also a modified version of VBA-M for RetroAchievement support. Feature request: RetroAchievements integration in mGBA standalone.
  2. Exclusive to standalone version.

Hardware features and accessories[edit]

Name mGBA VBA-M
VBA 1.73 Mod
No$GBA SkyEmu NanoBoyAdvance Game Boy Player Virtual Console BizHawk ares GBE+ gpSP Pizza Boy GBA MAME Nintendo Switch Online (Sloop)
GBA BIOS ? ? ? ? ? ? ?
GB/GBC backwards compatibility emulation/Enhanced Mode ? ?* ? ? ?* ? ? ? ? ? ? *
Game Boy Advance Video ? ? ? ? ? ? ? ? ? ? ? ?
Connectivity Single Pak [N2 1] * * ~* ? ? ? ?
Multi Pak [N2 1] * ~* ? ? ? ?
Wireless * ~ ? ~ * ?
GameCube communication [N2 1] [N2 1] * ? ? ? ?
Link Cable [N2 1] [N2 1] WIP ? ? ? ?
e-Reader e-Reader Alone [N2 1] ~ TBD ~* TBD ? TBD ? ? ?
e-Reader/GBA Game [N2 1] ~[N2 2] ~[N2 2] TBD TBD ? TBD ? ? ? ~*
e-Reader/GCN Game [N2 1] ? ? ? ?
Inputs Rumble Feature TBD TBD TBD TBD * ~*
Solar Sensor ~[N2 3] ~[N2 4] ~[N2 4] ~[N2 4] ~[N2 4] ~[N2 4]
Motion Control [N2 5] *
Special hardware Battle Chip Gate ? ?
Soul Doll Adapter ? ?
Multi Plust On System
Turbo File Advance
Power Antenna & Bug Sensor
Official Nintendo Infrared Adapter
Jukebox *
Virtureal Racing System *
Play-Yan ~*
Campho Advance (WIP)
Glucoboy *
  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Does not work on Libretro core. Feature Requests: GBA Game Link Support, e-Reader support for for VBA-M libretro core.
  2. 2.0 2.1 incomplete: this emulator will not recognize the games they're connected to. Normally, after choosing "Connection/to Game Boy Advance", the e-Reader should have "(Game Name) Game Data" pre-loaded in its internal EEPROM memory and appearing in a tiny black box on-screen, but this can't happen in either No$GBA, VBA-M, or VBA e-Reader mods. Without this step done, scanning e-Cards will just yield an error message. e-Reader/GBA game pack emulation in this emulator can be still reached by ripping a save game from real e-Reader hardware, with this step already done. Using this save with the e-Reader BIOS, it's possible to connect to the GBA game pack, and scan e-Cards... though it's a very less-than-ideal solution and there are only pre-baked e-Reader save files for Super Mario Advance 4 (U), Pokémon Emerald (J), LeafGreen (J) and FireRed (J)."
  3. Only the Nintendo Switch port allows use of the Switch's light sensor.
  4. 4.0 4.1 4.2 4.3 4.4 Only manual configuration. No automatic detection via light sensor/camera input/weather forecast/GPS location/other.
  5. Motion Control support present on RetroArch VBA-M core.

GB/GBC backwards compatibility emulation/Enhanced Mode[edit]

Game Boy Advance is backwards compatible with GB/GBC, resulting in some of the GB/GBC games enhanced if you play on GBA. Having said that, this shouldn't be confused with Game Boy/Game Boy Color emulation or Super Game Boy 1/2. Some of the multicore emulators supports both GB/GBC and GBA emulation, however they do not have support for "backwards compatibility/GBA mode" emulation.

Game Boy Advance Video[edit]

See also: Game Boy Advance Video on Wikipedia

GBA Videos were officially released cartridges with movies/shows on them for viewing on GBA hardware. Most recommended GBA emulators should be able to play this type of cartridge if its 32MB, although not all of it supports 64MB ones.

See this dedicated page for more information about home media playback support for emulation softwares.
See Dumping/ripping.

Connectivity[edit]

GBA Multi Pak Link Multiplayer (1~4GBA)[edit]

VBA-M
This doesn't work with old VBA versions.
Just disable "Pause when Inactive", configure all four Joypads each with their own button layout, enable "Link, Enable GBA Link". Now open VBA-M again as many times needed for each player, and have them each use their separate Joypad configuration. Each player will have a separate SRAM save file.
VBA Link + e-Reader
Useful if you want to use the Pokémon Battle-eCards. Downloads and instructions reside here.
mGBA
Select "New multiplayer window" from the menu. As you load your ROMs into each window, "Player [X] of [Y]" will appear across the title bar. This can be done for up to four players. However, multiple instances of the same ROM will share a save file.
No$GBA
Set the number of Emulated Gameboys in the Emulation setting to be 2 or more, and the Link Gamepaks Options to Gamepak in all GBAs.

Note: Purple end in GBA means player 1, while a grey end in GBA means P2, P3, or P4. Daisy-chaining up to three cables will set up the additional P3 and P4 by connecting the purple end to a purple midsection.[3]

GBA Wireless Multiplayer[edit]

The wireless adapter has the ability to connect five players[4] to each other and includes its own software to download a subset of another player's game that runs when no cartridge is inserted. Pokémon Fire Red and Leaf Green came bundled with this accessory, but it can also work with Pokémon Emerald and the Classic NES Series.

The libretro core of gpSP has successfully emulated the wireless adapter[5]. GBE+(in v1.6) and VBA-M partially implemented the support of this add-on, though it's still a work-in-progress, and can only access menus. Support of this add-on is currently on mGBA's roadmap.

GameCube Connectivity[edit]

The Game Boy Advance can also connect to the GameCube.[6] e-Reader functionality with GC games has now been emulated thanks to mGBA. Dolphin supports connectivity through rudimentary joybus emulation made in parallel with VBA-M. Because this emulator has fallen behind, the feature was recently added to mGBA, a more accurate emulator. They showcased early higan support in a video, but nothing has been released as yet.

Dolphin/mGBA or VBA-M[edit]
Requires mGBA 0.9.0 or newer or VBA-M r947 or newer.
  • Reduce your volume. You won't want it to be high, especially with headphones.
  • Open Dolphin and mGBA/VBA-M. Make sure neither are blocked by your firmware.
  • In Dolphin, launch the game and navigate to the area where you're asked to connect the GBA. Then, under the controller options, assign the GameCube controllers as "GBA" for whichever you need.
  • If you are using mGBA, open up the File menu, and click Connect to Dolphin.
  • In the dialog box that appears, press Connect. mGBA will boot up the GBA BIOS if no rom has been selected.
  • If you are using VBA-M, uncheck Pause When Inactive in Options > Emulator. Then, under Options > Link > Joybus Options, make sure the "Enable Joybus Connection" is on and set "IP/Hostname" to use default settings, that is 127.0.0.1 or localhost.
  • Dolphin will freeze.
  • Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. The regular splash screen will stutter a bit.
  • In either emulator, Dolphin should recognize the Joybus Link by then, and the GC game will detect that a GBA was connected.
  • To connect other units, open another emulator instance and repeat its process.

Notable games that work:

Notable games that don't:

e-Reader[edit]

Main page: GBA e-Reader emulators

This device can read content off e-Card paper stripes either as standalone content, or additional content to GBA/GC games. Can be thought of as DLC.

Inputs[edit]

Solar Sensor

1. Emulation: This feature has been emulated in mGBA, VBA-M, No$GBA 2.6 onwards, and My Boy!:

  • mGBA: In the shortcuts editor, shortcuts can be configured to raise/lower the solar level incrementally or to set any particular brightness level. The Nintendo Switch port of mGBA also allows use of the Switch's light sensor.
  • VBA-M: This emulator uses the keys of the lateral motion controls to change the Solar Sensor levels. You can find those keys and modify them in Options -> Input -> Configure... -> "Special" tab.
  • No$GBA: Under Options/Emulation Setup, you can find the Solar Sensor Level option. You are given the choice between only three brightness levels though: Darkness, 100 Watts, and Bright Sunlight.
  • My Boy!: This emulator uses a button combination or the device's light sensor to check the brightness level. You can change this under Settings -> Input -> Cartridge Features -> "Solar Emulation By" menu.
  • Pizza Boy GBA: Uses the device's light sensor to check the brightness level.

2. ROM Patches: Fixes applied directly to the ROM by various scene release groups to make it compatible with any emulator/flashcard, making the in-game brightness level controllable with L+Left/Right. It's argued this makes for a better experience actually, but sadly not all releases are covered.

  • Boktai 1: JP, US, EU.
  • Boktai 2: JP, US, EU.
  • Boktai 3: JP Fix.
  • Combinations of Boktai 4 JP with earlier solar sensors to get solar sensor bonuses aren't emulated yet in any DS emulator.
Motion Control

1. Emulation: This feature has been emulated in mGBA, VBA-M, My Boy! and Pizza Boy:

  • mGBA includes full motion control support using the motion sensor present in controllers like DualShock 4, DualSense and Switch Pro Controller.
  • VBA doesn't emulate this feature, and its "Motion Control" option (with keys mapped to each tilt direction) covers the GBC title Kirby Tilt'n Tumble.
  • VBA-M core on RetroArch includes motion control support by using a controller stick (left or right)
  • My Boy! uses the device's accelerometer to emulate this feature. You can change the sensitivity under Settings -> Input -> Cartridge Features -> "Motion sensitivity" menu.
  • Pizza Boy GBA also used the device's accelerometer to emulate this feature for games like WarioWare: Twisted and Yoshi's Universal Gravitation.

2. ROM Patches: Fixes applied directly to the ROM (with the Lunar IPS utility, or at runtime using mGBA or VBA-M and naming them the same as the ROM in the same directory) by various scene release groups to make it compatible with any emulator/flashcard. D-Pad controls substituting motion controls don't work as well here as they tilt it "too much" at times to be very playable.

  • Yoshi Topsy Turvy/Universal Gravitation: JP, EU, US
  • WarioWare Twisted! (Patch: JP, US)
Rumble Feature

There are various rumble features found in GBA/GBC cards:

  • GBC Rumble: GBC games which came on special cartridges with additional hardware for the rumble feature. It was actually used by dozens of releases, and some games like Tarzan 2 GBC were programmed to have rumble support but shipped on regular cartridges. Emulated by VBA-M GX (Wii-only), which also cover the dummied-out rumble games. Not emulated anywhere else.
  • GBA Gyro Rumble: WarioWare Twisted was shipped on a cart with rumble support. It would rumble when you tilt to one "extreme". Emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds,
  • GBA Variable Rumble: Drill Dozer has rumble support, with variable force and speed depending on the rock type you drill through in-game. Partially emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds.
  • Game Boy Player Rumble: Many regular GBA games, shipped on regular cartridges, enable rumble during gameplay when played on GB Player hardware (which is essentially GBA hardware). These include Super Mario Advance 4, Summon Night Hajimari no Ishi, Mario & Luigi: Superstar Saga, Shikakui Atama wo Marukusuru Advance (both releases), Pokémon Pinball, as well as Drill Dozer which disables its original cartridge rumble scheme and enables this one instead. None of the emulators support this, though it's being under development for the mGBA emulator.

Special hardware[edit]

Emulation of these is spotty, apart from GBE+, which supports almost all GBA peripherals.

Turbo File Advance

The Turbo File Advance was a peripheral for the GBA which allowed certain games to write data to it, acting as an external memory card. Developed by Sammy Corporation, it was compatible with only 2 games, RPG Tsukuru Advance and Derby Stallion Advance.

GBE+ supports this add-on.

Power Antenna & Bug Sensor

The Power Antenna & Bug Sensor were small plastic peripherals that interfaced with the GBA's serial port and contained LEDs that flashed in response to certain events within Keitai Denjuu Telefang 2, the only supported GBA game.

GBE+ supports this add-on.

Official Nintendo Infrared Adapter

As the GBA did not have native infrared connectivity, Nintendo released an official IR adapter called the AGB-006 to restore this functionality. However, it only saw use in Cyber Drive Zoids: Kiju no Senshi Hyuu to control specific Zoid toy models.

GBE+ supports this add-on.

Figurine Readers

Some GBA games/series had figurine reader add-ons, essentially precursors to the likes of Skylanders and Amiibo.

  • Soul Doll Adapter (Legendz: Island of Ordeal/Sign of Nekuromu)
  • Multi Plust On System (Bouken Yuuki Pluster World: Plust Gate/EX/Pluston GP)

GBE+ has support for both the Soul Doll Adapter and Multi Plust On System, while mGBA supports the Soul Doll Adapter.

Battle Chip Gate

A peripheral device by Capcom and Takara compatible with Mega Man Battle Network 4 (Japanese edition). It can be connected to the Game Boy Advance and allow the player to transmit real-life toy Battle Chips to the NetNavis in the game. It's also compatible with toy Advanced PETs and Rockman.EXE 4.5 Real Operation. It can also unlock minigames in Mega Man Zero 3.

mGBA and GBE+ support this add-on.

Glucoboy

An obscure medical peripheral designed to monitor a child's blood glucose levels and reward them for keeping tabs on their condition. Bayer Healthcare destroyed all unsold stock making it hard to find. It's emulated in GBE+ since version 1.8.

Emulation issues[edit]

Oversaturation[edit]

Left: The default game.
Right: The "Gameboy Colors" mode on VBA-M.

The screen on the original Game Boy Advance is not backlit and can be hard to see in some conditions. To compensate, game developers often used oversaturated colors by default so that the result would look normal on hardware. On standard computer screens, saturation is not an issue, so this can look jarring and undesirable for gameplay. Some games made after 2003 may have also taken the Game Boy Advance SP model into account, since its screen was actually frontlit. For everything else though, emudevs have given some solutions:

Emulator Options[edit]

No$GBA: Under "Emulation Options", select "GBA Mode". There are four modes.

  • GBA (no backlight): Strong desaturation
  • GBA SP (backlight): Strong desaturation
  • Nintendo DS in GBA mode: Some desaturation
  • VGA Mode (poppy bright): No desaturation

mGBA: Under Tools > Settings > Shaders > Load New Shader, select "gba-color.shader"

VBA-M: (nightly only): Under Options > Game Boy Advance, you will find the option, LCD Filter.

higan: Under Settings > Video Filter, you will find the "Color Emulation" checkbox.

  • Color Emulation off: No desaturation
  • Color Emulation on: Gamma correction and adjusted color range.

NanoBoyAdvance: Enabled by default. Under Config > Video > Color Correction > GBA

SkyEmu: Color Correction is set by default to 1.00 force in this emulator, and there are 2 types of desaturation methods. The first one is named SkyEmu and is selected by default, and the other one is named Higan and, as it's name suggests, is based on higan's color correction. Change the desaturation type by pressing the ≡ button, then select GBA Color Correction Type. You can also change the intensity of the desaturation: slide the slider to 0.00 to brighten the screen a tad bit.

Shaders[edit]

Cg shaders can be used in OpenEmu or RetroArch that adjust the colors to those of a real GBA screen, as well as other screen types. These are available in GLSL[7] for OpenGL, and Slang[8] for Vulkan.

For GBA, there is gba-color.cg[9], which simulates the color profile of a GBA screen under an external light source more accurately than VBA-M or No$GBA color options. If you prefer the darker color options that those emulators have, then use vba-color.cg[10] instead.

There is also nds-color.cg[11] and psp-color.cg[12], which simulates the color profiles of the original Nintendo DS frontlit screen and the PSP-1000/PSP-2000 backlit screen, respectively.

For Game Boy Advance shader presets, see the "Shader Presets" page;

Main article: Shader_Presets

Horrible Sound Quality[edit]

As a handheld rushed to the market (because of the WonderSwan Color competition), the Game Boy Advance had some cut corners. The sound hardware was affected the hardest: while it could play Game Boy Color sound in addition to samples and sequenced music like what would be heard on the SNES, the actual playback quality is awful compared to the sound samples stored internally in the ROM.

There were tools made to extract the internal high-quality music (as midi files plus a sound font, to be played on foobar2000), however, interest remains limited in implementing its playback in real-time on emulators. It's worth noting that NanoBoyAdvance includes High Quality Audio Mixer and there's a very experimental feature exists on mGBA (nightly versions) under Enhancements as "XQ GBA Audio", but it's very buggy and still limited to games using the standard sound engine, the so-called "Sappy" engine, which is still a big part of the GBA's software library.

High Resolution Affine Transformation Graphical Effects[edit]

Similar to the scaling effects used on the Super NES known commonly as "Mode 7" graphics, the Game Boy Advance has affine transformation effects for some backgrounds and individual sprites that can be done in hardware. Due to the GBA's lower resolution, some detail may be lost.

The mGBA emulator added an Enhancements' menu where you can change the resolution of those graphical effects, for a smoother effect. The graphical render engine will need to be OpenGL for those to take effect. It won't work on games where those effects are done in software instead of the hardware scaling features (like the 3D environment in Asterix & Obelix XXL)

Save formats[edit]

Originally, when saves were implemented, nobody settled on a format, so the Visual Boy Advance devs made their own. Because other emulators often went with raw data, having to exchange different saves caused problems. The original Visual Boy Advance tries to figure out which format a given save is but often fails at it. By explicitly telling the emulator to read it as a specific type using a file called vba-over.ini, VBA complies. VBA-M includes this config file by default, but older revisions like VBA 1.7.2 and VBALink do not.

The VBA-Next and VBA-M cores in Libretro have the file baked into the binary so that it can load raw .sav files, but converts the format to its own derivative at exactly 136 KB every time, with save type info contained within the file. This completely avoids the previous issues at the cost of incompatibility with standalone VBA and most others.

To solve this incompatibility, Libretro devs created a command-line tool to convert .srm save files made from these cores to raw .sav save data for other emulators. It takes standard input (i.e. just drag and drop the .srm onto the executable) and outputs accordingly. It can also be done in reverse. A website version of this tool can be found here.

For more information about Game Boy Advance hardware and reverse engineering;

References[edit]