+
 +
 
{{InfoBox
 
{{InfoBox
 
  |title=GBARunner2
 
  |title=GBARunner2
 
  |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/v20191109-155214_9e285a3 Commit 9e285a3 (2019/11/09) 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.
+
== Installation and Setup ==
* If you have a gba folder on the root of your sd, this folder will be opened by default
+
*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.  
* Make sure your games are SRAM patched if needed, this is most likely only the case for FLASH1M_V103 (use [http://www.no-intro.org/gbadat/tools/gbata7a-en.zip gbata])
+
**For example, for 3DS pick the one named 'GBARunner2_arm7dldi_'''3ds'''.nds'.
* 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
+
* Place the your GBARunner2 .nds file anywhere on your SD card, except for _gba and _nds.  
 +
**'''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 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 compatible with save files directly from the mGBA emulator.
 +
 
 +
== 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 display issues if you only use this.
 +
*For better compatibility you should put your backed up GBA BIOS on your SD card with the name and lower-case ''''bios.bin''''. Place a 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 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 settings will be necessary to run certain games. 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.
 +
*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.
 +
 
 +
== 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.
 +
* 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 =
   −
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).
      
== BIOS Checksums ==
 
== BIOS Checksums ==
The BIOS used should have the following checksums (checking one should be enough):
+
You can check if any files match 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]. 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
 +
 
 +
 
 +
<big>'''Legacy Builds'''</big>
   −
Download link for gbarunner2 compatible cover art: https://mega.nz/#!Q8dnHALK!kA4UuEpqo7JQwScxLiorZ_qj4lWBsBr7B6Sb_BgAzsw
   
* 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].
 
* Commit 5b06bb4 (2019/07/03), (Changed dma behavior on invalid addresses again, still not completely) posted [https://github.com/Gericom/GBARunner2/releases/tag/commit_5b06bb4bd12d8fe12574b0564e0ce0fb7fb02760 here].
 
* Commit 5b06bb4 (2019/07/03), (Changed dma behavior on invalid addresses again, still not completely) 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 ==
 +
 
    
{|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 (every game not using sram should be patched so check that before reporting) - check the Usage section for the appropriate tool !'''
  −
  −
* '''! Some games have Release Intro´s attached to themselve. 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 !'''
  −
      
== Retail games ==
 
== Retail games ==
 +
 
{{GBAR2GameTable}}
 
{{GBAR2GameTable}}