|data1 = [[GBA]]
 
  |data1 = [[GBA]]
 
  |label2= Runs on
 
  |label2= Runs on
  |data2 = [[Nintendo DS]]
+
  |data2 = [[Nintendo DS, DSi, 3DS]]
 
  |label3 =Developer
 
  |label3 =Developer
 
  |data3 = [https://gbatemp.net/members/280844/ Gericom]
 
  |data3 = [https://gbatemp.net/members/280844/ Gericom]
 
  |label4 = Source code
 
  |label4 = Source code
 
  |data4 = [https://github.com/Gericom/GBARunner2 GitHub]
 
  |data4 = [https://github.com/Gericom/GBARunner2 GitHub]
  |label5 = Latest version
+
  |label5 = Latest stable version
  |data5 = [https://github.com/Gericom/GBARunner2/releases/tag/v20200216-165624_c417fd0 Commit c417fd0 (2020/02/16) build]
+
  |data5 = [https://github.com/Gericom/GBARunner2/releases/tag/v20200812-131430_6e4ce45 Commit 6e4ce45 (2020/08/12) build]
 
  |label6 = Discussion thread
 
  |label6 = Discussion thread
 
  |data6 = [https://gbatemp.net/threads/gbarunner2.451970/ GBATemp.net]  
 
  |data6 = [https://gbatemp.net/threads/gbarunner2.451970/ GBATemp.net]  
 
'''GBARunner2''' is a hypervisor that runs GBA games on DS/DSi/3DS in DS mode, basically like Nintendont does for running Gamecube games on Wii.
 
'''GBARunner2''' is a hypervisor that runs GBA games on DS/DSi/3DS in DS mode, basically like Nintendont does for running Gamecube games on Wii.
   −
= Usage =
+
= Setup and Usage =
* Place a GBA bios on your sd card. Either /bios.bin, /gba/bios.bin, or /_gba/bios.bin will work.
+
** '''Note:''' Do not use Normmatt's open-source GBA BIOS. It won't work, as many patches are applied at fixed addresses. The right checksums are listed below.
+
* If you have a gba folder on the root of your sd, this folder will be opened by default
+
* Do '''NOT''' use SRAM patches unless stated on the wiki. They cause problems with the internal patching of GBARunner2 and may actually break saving.)
+
* If you are using GBARunner2 with TWiLightMenu on a DSi or 3DS with the SD card, make sure you use the dldi on ARM7 build
+
   −
If you want to use existing save files, they should have the same name as the gba file but instead of .gba they should be .sav (so the save for mygame.gba is mygame.sav).
+
== Basic Setup ==
 +
*Grab a GBARunner2 .nds file from the link above or the [https://github.com/Gericom/GBARunner2/releases github '''releases''' page]. Pick the one that has your system at the end of the file name.
 +
**For example, for 3DS pick the one named 'GBARunner2_arm7dldi_'''3ds'''.nds'.
 +
* Place the GBARunner2 .nds file anywhere on your SD card, except for in \_gba.
 +
**'''NB!''' If using Twilightmenu++ GBARunner2 will come bundled with it in the \_nds folder.
 +
*** If you are using GBARunner2 with TWiLightMenu on a DSi or 3DS with the SD card, make sure you use the dldi on ARM7 build. This will be bundled with it.
 +
*Run the GBARunner .nds file through your kernel
 +
* If you have a folder named 'GBA' on the root of your sd card, this folder will be opened by default when running GBARunner2. You can put your ROMs here.
 +
* Do '''NOT''' use SRAM patches unless stated for that ROM on the wiki. They cause problems with the internal patching of GBARunner2 and may actually break saving.
 +
* If you want to use existing save files, they should have the same name as the GBA ROM but instead of '''.gba''' they should be '''.sav''' (so the save for mygame.gba is mygame.sav).  
 +
**GBARunner2 is directly compatible with save files from the mGBA emulator, gpsp on 3ds and open_agb_firm.
 +
 
 +
== Border Frames and Game Covers ==
 +
 
 +
* GBARunner2 supports custom border frames if put in sd\_gba\frames. An example of one and some pointers on how to make one yourself can be found in [https://gbatemp.net/threads/gbarunner2.451970/page-134#post-8988124 this post.]
 +
* GBARunner2 supports game covers that you put in sd\_gba\covers. A collection of covers can be found under [[GBARunner2#Downloads|'Downloads'.]]
 +
 
 +
== BIOS ==
 +
 
 +
*GBARunner2 has integrated Normatt's open-source GBA BIOS, however, many ROMs will not boot or will present issues if you only use this.
 +
*For better compatibility you should put your backed up GBA BIOS on your SD card with the lower-case name ''''bios.bin''''.
 +
*Place this GBA bios on your SD card in either /bios.bin, /gba/bios.bin, or /_gba/bios.bin.
 +
**To verify that your BIOS is the right one that works for GBARunner2 see the [[GBARunner2#BIOS_Checksums|checksums]] listed below.
 +
 
 +
== Navigating and Usage ==
 +
 
 +
*When starting a GBARunner2 .nds file you will be in the file browser and from here you can scroll with the dpad. The other buttons do the following:
 +
**'''A''' - Run a ROM, enter a folder or change a setting in settings.
 +
**'''B''' - Go back a folder level or return from settings.
 +
**'''R''' - Access settings. Some games need specific settings to run well. Check your ROM in your system's respective compatibility list for this.
 +
***When editing a setting in the settings you will generate a '''settings.ini''' in sd/_gba . Here you can manually edit some of the settings if you open it with a notepad.
 +
***To see how to manually edit your input mappings look at [[GBARunner2#Input_Mapping|Input Mapping]].
 +
*When running a ROM you can access '''the ingame menu''' by touching the touch screen. From here you can navigate with the DPAD and use A, B like before and R to access settings.
 +
 
 +
== Input Mapping ==
 +
 
 +
* With GBARunner2 you can remap your buttons to what GBA button you want. This is done by going into settings that you can access from either the file browser or when ingame, as explained above in [[GBARunner2#Navigating_and_Usage|Navigating and Usage]].
 +
** Note that you can not have one GBA button mapped to more than one button on your system. E.G. you cannot have the B button mapped to your X and Y button at the same time.
 +
* If you cannot access the settings menu if for example your shoulder buttons do not work or touch does not work, you can also manually edit the button mappings by opening the gbarunner2.ini file found in /_gba.
 +
* Below is an example of what you would find inside an ini file with the GBA L and R buttons mapped to Y and X, respectively. This can simply be pasted in a text file renamed to gbarunner2.ini and put in the folder  '\_gba'.
 +
**'''NB!''' The text file will have to be in '''Unix (LF) file format'''. On Windows this can be changed with a source code editor like [https://notepad-plus-plus.org/ Notepad++] by right clicking 'Windows (CR LF)' on the bottom status bar of the window and selecting Unix (LF).
 +
 
 +
<syntaxhighlight lang='ini'>
 +
[emulation]
 +
useBottomScreen=false
 +
frame=true
 +
centerMask=true
 +
mainMemICache=true
 +
wramICache=true
 +
gbaColors=false
 +
skipIntro=false
 +
[input]
 +
buttonA=0
 +
buttonB=1
 +
buttonL=11
 +
buttonR=10
 +
buttonStart=3
 +
buttonSelect=2
 +
 
 +
</syntaxhighlight>
 +
 
 +
*Below are the DS Keys and their respective value if you want to manually make your own key mappings.
 +
{| class="mw-collapsible mw-collapsed wikitable"
 +
! DS Keys ||
 +
|-
 +
| '''Key''' || '''Value'''
 +
|-
 +
| A || 0
 +
|-
 +
| B || 1
 +
|-
 +
| X || 10
 +
|-
 +
| Y || 11
 +
|-
 +
| L || 9
 +
|-
 +
| R || 8
 +
|-
 +
| Start || 3
 +
|-
 +
| Select || 2
 +
|}
 +
 
 +
== Cheats ==
 +
* Cheats can be patched in ROMs to work with GBARunner2. However, not every game will work with cheats. This mostly depends on how big the game is and how much RAM the console you are using has.
 +
** For example Sonic Advance 3 which is around 14.5 MBs with cheats patched in works on the 3DS but not on the DSi nor DS.
 +
* To use cheats you have to patch your ROM with GBAATM. You can follow [https://gbatemp.net/threads/how-to-use-cheats-with-gba-virtual-console.476624/ this guide] which works for GBARunner2. [https://github.com/Mte90/GBAATM-Rebirth/releases A newer fork of GBAATM] has been made but it is untested in this usage case.
 +
* To access the cheats menu you will have to have '''disabled 'center and mask'''' in settings if not you will get a white screen and won't be able to see the ingame GBARunner2 menu. You can enable this again after leaving the menu.
 +
 
 +
= BIOS and ROM Quality =
 +
 
 +
== Dumping the BIOS ==
 +
*To get your own GBA BIOS here are some possibilities:
 +
 
 +
 
 +
*'''Wii (not family edition)/GameCube''' + Link Cable Dumper + GBA: https://github.com/FIX94/gba-link-cable-dumper
 +
*'''3DS''' using most Virtual Console Titles (can't be GBA or non-nintendo (ex. GameGear) Virtual Console Titles): https://glazedbelmont.github.io/gbabiosdump/
 +
*'''GBA (Micro/SP)/DS (Phat + Lite)''' with a GBA Flashcard: Same link as above
 +
    
== BIOS Checksums ==
 
== BIOS Checksums ==
The BIOS used should have the following checksums (checking one should be enough):
+
You can check if any file matches another by calculating something called their checksum hashes. These alphanumeric sequences are so specific that if two files match then you can be certain that they are the same. This is necessary because sometimes when downloading files or when transfering them, they get corrupted, and so even a small change in the file will change the file's checksum hash.  Different algorithms exist for doing this (e.g. MD5, CRC32). The GBA BIOS used should have the following checksums (checking one should be enough):
 
* CRC32: <code>81977335</code>
 
* CRC32: <code>81977335</code>
 
* MD5: <code>a860e8c0b6d573d191e4ec7db1b1e4f6</code>
 
* MD5: <code>a860e8c0b6d573d191e4ec7db1b1e4f6</code>
 
* SHA256: <code>fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570</code>
 
* SHA256: <code>fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570</code>
   −
You can check the MD5 with [http://www.winmd5.com/ WinMD5Free] for example.
+
You can use [https://www.7-zip.org/ 7zip] to get a CRC or a SHA checksum by right clicking your file and selecting the menu called 'CRC SHA' if you followed standard installation. Alternatively, you can check the MD5 with [http://www.winmd5.com/ WinMD5Free]. There are also websites that provide this service however we would recommend against doing that since you would essentially be uploading a BIOS online, which is copyrighted material, and therefore illegal to do.
   −
= Compiling the latest version =
+
== Verifying Quality of ROMs ==
 +
* '''NB!''' Some games have Release Team Intros/CrackTros added to them. These intros use  code that is not supported by the DS yet, but they are by the 3DS and DSi if you disable ''''center and mask'''' in settings.
 +
**Try using the GBATA tool to remove the Intro to get the Game to work.
 +
**You can use an Emulator to see if a Game has a Rom Intro or not.
 +
 
 +
 
 +
*'''Alternatively''' if the ROM still does not work, then you will need to verify that it is a good dump by calculating its checksum hashes (CRC32, MD5 etc.) and comparing them with the ones found on [https://datomatic.no-intro.org/ DAT-o-MATIC], which is a database of the No-Intro project of good ROM backups. Use 7zip or WinMD5 to do this as explained and linked to above in the 'BIOS Checksum' part. This will show if your ROM has been corrupted too.
 +
**A good dump on DAT-o-MATIC will have a green colored background, a bad one will have a red one.
 +
 
 +
= Builds =
 +
 
 +
 
 +
== Compiling the Latest Version ==
    
1. Make sure you have devkitpro installed.
 
1. Make sure you have devkitpro installed.
 
3. Run make in the root.
 
3. Run make in the root.
   −
= Downloads =
+
== Downloads ==
New commits are now automatically build and can be downloaded on the [https://github.com/Gericom/GBARunner2/releases github release page].
+
New commits are now automatically built and can be downloaded on the [https://github.com/Gericom/GBARunner2/releases github release page].
 +
 
 +
Download link for gbarunner2 compatible '''cover art''': https://mega.nz/#!Q8dnHALK!kA4UuEpqo7JQwScxLiorZ_qj4lWBsBr7B6Sb_BgAzsw
 +
 
 +
* To run large ROMs like '''Pokémon Emerald''' on your DS/DSLite you should use this fork of the '''ROM3M''' branch of GBARunner2 called DSL enhanced edition: https://github.com/unresolvedsymbol/GBARunner2-DSL-Enhanced/releases
   −
Download link for gbarunner2 compatible cover art: https://mega.nz/#!Q8dnHALK!kA4UuEpqo7JQwScxLiorZ_qj4lWBsBr7B6Sb_BgAzsw
     −
''' * Commit 371815e (2019/09/11) latest in ROM3M branch needed to play Pokemon Emerald and others on DS.''' https://github.com/Gericom/GBARunner2/releases/tag/v20190911-201047_371815e '''
+
<big>'''Legacy Builds'''</big>
    
* Commit 5abecad (2019/07/05), (Fixes the contra title screen, partially the advance wars intro, Madden NFL Note that bitmap bg transforms are currently not supported) posted [https://github.com/Gericom/GBARunner2/releases/tag/commit_5b06bb4bd12d8fe12574b0564e0ce0fb7fb02760 here].
 
* Commit 5abecad (2019/07/05), (Fixes the contra title screen, partially the advance wars intro, Madden NFL Note that bitmap bg transforms are currently not supported) posted [https://github.com/Gericom/GBARunner2/releases/tag/commit_5b06bb4bd12d8fe12574b0564e0ce0fb7fb02760 here].
 
* [https://gbatemp.net/attachments/gbarunner2-zip.72394/ Commit 78945c3 (2016/12/18)], posted [https://gbatemp.net/threads/gbarunner2.451970/page-2#post-6933255 here].
 
* [https://gbatemp.net/attachments/gbarunner2-zip.72394/ Commit 78945c3 (2016/12/18)], posted [https://gbatemp.net/threads/gbarunner2.451970/page-2#post-6933255 here].
   −
= Changelog =
+
== Changelog ==
    
See [https://github.com/Gericom/GBARunner2/commits/master GitHub timeline].
 
See [https://github.com/Gericom/GBARunner2/commits/master GitHub timeline].
   −
= Compatibility list =
+
= Compatibility lists =
 +
 
 +
 
 +
== 3DS and DSi Compatibility List ==
 +
 
 +
 
 +
<big>'''[[GBARunner2/DSi_3DS_Compatibility_List|The 3DS and DSi have their own compatibility list! Click Here!]]'''</big>
 +
 
 +
== DS Compatibility List ==
   −
<big>'''[[GBARunner2/DSi_3DS_Compatibility_List|The DSi and 3DS have their own compatibility list!]]'''</big>
      
{|width="25%" cellspacing="1" border="1px"
 
{|width="25%" cellspacing="1" border="1px"
 
|align="center" style="background:#5c5c5c"|No boot - Game doesn't even boot.
 
|align="center" style="background:#5c5c5c"|No boot - Game doesn't even boot.
 
|}
 
|}
  −
  −
* '''! A save error message (and sometimes other crashes too) means that your game must be sram patched - check the Usage section for the appropriate tool !'''
  −
  −
* '''! Some games have Release Intro´s attached to them. Those Intros use a Code that is not supported yet. Try using the GBATA tool to remove the Intro to get the Game to work. Use an Emulator to see if a Game has a Rom Intro or not ! Also check if the ROM is a verified good dump by No-Intro by comparing the hashes of your ROM (CRC32, MD5 etc.) with the ones found on [https://datomatic.no-intro.org/ DAT-o-MATIC]'''
  −
      
== Retail games ==
 
== Retail games ==
    
{{GBAR2GameTable}}
 
{{GBAR2GameTable}}