Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

GBA exploader: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox homebrew
{{Infobox DS Homebrews
| title       = GBA exploader
|title=GBA exploader
| image       = [[File:GBAexploaderds.jpg]]
|image=Gbaexploader2.png
| type       = Emulator
|description=DS side application used to run GBA code. Formerly 3in1 ExpPack Tool.
| version     = 0.58b0MX
|author=Rudolph, ApacheThunder
| licence    = Mixed
|lastupdated=2025/12/26
| author      = Rudolph
|type=Handheld
| website     = http://dpokeleague.foro-activo.biz/t53-gba-exploader-058b0mx
|version=0.67
| download    = Media:GBAExpLoader058b0MXds.rar
|license=Mixed
| source      =
|download=https://dlhb.gamebrew.org/dshomebrew2/gbaexploader.7z?k33p0fil356 0.67 + uo
|website=https://kotei.blog.ss-blog.jp/archive/c530-1
|source=https://github.com/ApacheThunder/GBA-Exploader/releases
}}
}}
With this program, you can run GBA games which are in SLOT1 flash card through SLOT2 expansion pack.


With this program, you can run GBA games which are in SLOT1 flash card through SLOT2 expansion pack.
If your SLOT1 flash card supports soft reset, you can use your exp pack as Rumble Pak or Memory Expansion Pak.
 
Supported SLOT2 expansion packs are 3in1 Expansion Pack, EZ4 lite-delux and EWIN EXPANSION PAK (2in1). NOR mode and Rumble Pak function are enabled only in 3in1 Expansion Pack.


If your SLOT1 flash card supports soft reset, you can use your exp pack as "Rumble Pak" or "Memory Expansion Pak".
A [https://web.archive.org/web/20140814022020/http://filetrip.net/nds-downloads/applications/download-gba-exploader-0-58x-m3-patch-f4135.html patch] is released for GBA Exploader so it'll work on M3DS Real and iTouchDS.


Supported SLOT2 expansion packs are "3in1 Expansion Pack",  "EZ4 lite-delux" and "EWIN EXPANSION PAK(2in1)".
== Updated Version ==
"NOR mode" and "Rumble Pak" function are enabled only in "3in1 Expansion Pack".
An updated and actively maintained version of '''GBA Exploader''' is available by '''ApacheThunder'''.


A [http://filetrip.net/nds-downloads/applications/download-gba-exploader-058x-m3-patch-f4135.html patch] is released for GBA Exploader so it'll work on M3DS Real and iTouchDS.
This version includes bug fixes, compatibility improvements, and support for modern flashcarts compared to the original release.


==Installation==
==Installation==
#Please patch the DLDI on GBA_ExpLoader.NDS. (If your flash card supports auto DLDI patch, you need not to do this.)
Please patch the [[DLDI|DLDI]] on GBA_ExpLoader.NDS (if your flash card supports auto DLDI patch, you need not to do this).
#Create "/GBA_SAVE" and "/GBA_SIGN" folder on the root of your SD card. (Modify "GBA_ExpLoader.ini", and you can set other folders.)
 
#Copy GBA files into your SD card.
Create /GBA_SAVE/ and /GBA_SIGN/ folder on the root of your SD card (modify GBA_ExpLoader.ini, and you can set other folders).
#Put SAV files into "/GBA_SAVE". (If there are no SAV files, they will be created automatically.)
 
#Put "gbaframe.bmp (24bit or 8bit)" into the root, "/GBA_SIGN" or "/_system_" if you want to use GBA frame.
Copy GBA files into your SD card.
 
Put SAV files into /GBA_SAVE/ (if there are no SAV files, they will be created automatically).
 
Put gbaframe.bmp (24bit or 8bit) into the root, /GBA_SIGN/ or /_system_/ if you want to use GBA frame.


==User guide==
==User guide==
#Run "GBA_ExpLoader.NDS".
You can choose between 3 modes if you use the 3in1 Expansion Pack:
#In "3in1 Expansion Pack", <L> or <R> to change mode ("PSRAM mode", "NOR mode" or "Expansion mode (if supported)")
* PSRAM mode.
* NOR mode.
* Expansion mode (if supported).
 
===PSRAM/SDRAM mode===
If you run a GBA in PSRAM/SDRAM mode, SAV file will be saved next time. You can select where to save or not to save.


If you run a GBA in PSRAM/SDRAM mode, SAV file will be saved next time.
* Write a GBA file into PSRAM with SRAM patch.
You can select where to save or not to save.
** Load SRAM data from SAV file.
** Then run GBA from PSRAM.
* Backup SRAM data to SAV file.
* Restore SRAM.BIN to SRAM.
* Backup all SRAM data to SRAM.BIN.
* Patch PSRAM for DS Browser and soft reset (disabled when your pack is 3in1 Expansion Pack).


==Control==
'''With 3in1 Expansion Pack:'''
===PSRAM/SDRAM mode===
* You can run a GBA up to 16MByte (16000KB) in PSRAM mode.
A - Write a GBA file into PSRAM with SRAM patch.Load SRAM data from SAV file.Then run GBA from PSRAM.
* Return to your flashcard's menu if soft reset is supported.
* You can run GBA from RAM until turning off DS or pulling out your expansion pack.
 
'''When you want to exchange SAV file:'''
* Backup SAV data (or run another GBA) first and then exchange the file.
* SAV file will be written into SRAM every time you run the GBA, even if you run the same file again and again.
* If your expansion pack has only 128KB SRAM, you cannot run GBA with FLASH 1Mb save.
 
===NOR mode===
Enabled only with 3in1 Expansion Pack.
 
* Backup SRAM data to SAV file.
** Write GBA file to NOR with SRAM patch.
** Then load SRAM data from SAV file.
* You can also run NOR in DS menu like a normal GBA cartridge.
** Run GBA (Slot2) stored in NOR.  


B - Backup SRAM data to SAV file.
===Expansion mode===
Enabled only with 3in1 Expansion Pack.


Y - Restore "SRAM.BIN" to SRAM.
* Change Rumble level (low/medium/high).
* Patch PSRAM for DS Browser and then soft reset.


X - Backup all SRAM data to "SRAM.BIN".
===Repairing of header===
GBA ExpLoader will repair corrupted header of GBA.


R - Patch PSRAM for DS Browser and soft reset. (Disabled when your pack is "3in1 Expansion Pack")
===Savedata===
With "3in1 Expansion Pack", you can run a GBA up to 16MByte (16000KB) in PSRAM mode.
If save type is not SRAM, GBA ExpLoader Will patch SRAM automatically.  


SELECT - return to your flashcard's menu if soft reset is supported.
'''Supported save types:'''
* EEPROM_V111, EEPROM_V120, EEPROM_V121, EEPROM_V122, EEPROM_V124, EEPROM_V125, EEPROM_V126.
* FLASH_V120, FLASH_V121, FLASH_V123, FLASH_V124, FLASH_V125, FLASH_V126.
* FLASH512_V130, FLASH512_V131, FLASH512_V133.
* FLASH1M_V102, FLASH1M_V103.
* Special save type of Famicom Mini(Classic NES)EEPROM_V122, EEPROM_V124 and undefined type.


You can run GBA from RAM until turning off DS or pulling out your expansion pack.
'''Additional:'''
* The size of SAV file will be adjusted to the real SAVE size. But GBA ExpLoader cannot detect EEPROM 512B or 8KB, so all EEPROM size will be set to 8KB.
** If GBA ExpLoader cannot detect save type, it will be set to SRAM 64K.
** It's OK even if SAVE data has dummy area at the tail of the file. E.g. real file size is 64K but file size is 128K.
** SAV file will be saved to /GBA_SAVE/.
** File name will be the same of the ROM file name.
* When you run a ROM first time, analyzed data (SGN file) will be saved to /GBA_SIGN/.
** If the file extension is BIN, GBA ExpLoader won't patch. And SAV file size will be set to 64KB.
** In file select window, top SAV will be saved as .SAV and <1> to <5> will be saved .SV1 to .SV5.
** You'd better create /GBA_SAVE/ and /GBA_SIGN/ yourself (Some Slot1 flash cards cannot create these folders correctly. N-Card series will take a long time to do this).


When you want to exchange SAV file,
==Controls==
L/R - Change mode (3in1 Expansion Pack only)


B - backup SAV data (or run another GBA) first and then exchange the file.
'''PSRAM/SDRAM mode:'''


SAV file will be written into SRAM every time you run the GBA, even if you run the same file again and again.  
A - Write a GBA file into PSRAM with SRAM patch, load SRAM data from SAV file and run GBA from PSRAM.


If your expansion pack has only 128KB SRAM, you cannot run GBA with FLASH 1Mb save.
B - Backup SRAM data to SAV file


===NOR mode===
Y - Restore SRAM.BIN to SRAM
Enabled only with "3in1 Expansion Pack"


A - Backup SRAM data to SAV file.
X - Backup all SRAM data to SRAM.BIN
Write GBA file to NOR with SRAM patch.
Then load SRAM data from SAV file.


B - Backup SRAM data to SAV file.
R - Patch PSRAM for DS Browser and soft reset


Y - Load SRAM data from SAV file.
Select - Return to your flashcard's menu if soft reset is supported


X - Run GBA (Slot2) stored in NOR.
B - Backup SAV data (or run another GBA) first and then exchange the file


You can also run NOR in DS menu like a normal GBA cartridge.
'''NOR mode:'''


===Expansion mode===
A - Backup SRAM data to SAV file, then load SRAM data from SAV file
Enabled only with "3in1 Expansion Pack"
Change Rumble level (low/medium/high) or patch PSRAM for DS Browser and then soft reset.


===Repairing of header===
B - Backup SRAM data to SAV file
GBA ExpLoader will repair corrupted header of GBA.


===Notice===
Y - Load SRAM data from SAV file
*If save type is not SRAM, GBA ExpLoader Will patch SRAM automatically.
Supported save types:
EEPROM_V111, EEPROM_V120, EEPROM_V121, EEPROM_V122, EEPROM_V124, EEPROM_V125, EEPROM_V126
FLASH_V120, FLASH_V121, FLASH_V123, FLASH_V124, FLASH_V125, FLASH_V126
FLASH512_V130, FLASH512_V131, FLASH512_V133
FLASH1M_V102, FLASH1M_V103
Special save type of Famicom Mini(Classic NES)EEPROM_V122, EEPROM_V124 and undefined type


*The size of SAV file will be adjusted to the real SAVE size.
X - Run GBA (Slot2) stored in NOR
  But GBA ExpLoader cannot detect EEPROM 512B or 8KB, so all EEPROM size will be set to 8KB.
*If GBA ExpLoader cannot detect save type, it will be set to SRAM 64K.
*It's OK even if SAVE data has dummy area at the tail of the file. E.g. real file size is 64K but file size is 128K.
*SAV file will be saved to "/GBA_SAVE". File name will be the same of the ROM file name.
*When you run a ROM first time, analyzed data(SGN file) will be saved to  "/GBA_SIGN".
*If the file extension is BIN, GBA ExpLoader won't patch. And SAV file size will be set to 64KB.
*In file select window, top "SAV" will be saved as ".SAV" and "<1>" to "<5>" will be saved ".SV1" to ".SV5"
*You'd better create "/GBA_SAVE" and "/GBA_SIGN" yourself.
  (Some Slot1 flash cards cannot create these folders correctly. N-Card series will take a long time to do this.)


==Changelog==
==Changelog==
'''V0.58 2008/12/7'''
===ApacheThunder Version===
*Fixed the bug of FLASH1M in DSTT GBA&EXPLORER 2IN1.
'''v0.67'''
*Support FLASH1M in M3(SLOT2), G6(SLOT2) and GBA Expansion Pack.
* Soft Reset Support added for DSPico (thanks to fox8091)
*Fixed the Added auto header fix function.
* Header type changed to older 0x200 standard to hopefully restore compatibility with certain older flashcart kernels.
'''V0.57 2008/5/12'''
 
*Fixed the bug of timestamp of save file again.
'''v0.66'''
*Changed Famicom Mini(Classic NES) save data format to VBA save format. Attention! Compatibility is lost.
* Can now use gbaframes specific to a gba rom being loaded to ram/flash. Have a bmp file with filename matching the game rom being flashed in GBA_SIGN path. If it finds a matching BMP it will use that before falling back to the default gbaframe.bmp paths.
'''V0.55 2008/3/30'''
* nds-bootstrap now used for booting retail NDS roms from file browser. Note that currently GBA-Exploader does not create new save files so only games with existing save files (currently hardcoded to GBA_SAV path like with GBA games) can be booted with this.
*Fixed the bug of NOR writing.
* libnds329 (modified version of libnds with 32KB DLDI support) is no longer required to build GBA-Exploader. Now works with standard version of libnds thanks to a work-a-round found that involves overriding the default DLDI asm with custom version with 32KB size specified.
*Support FLASH1M in DSTT GBA&EXPLORER 2IN1.
 
'''V0.56 2008/4/13'''
Note that GBA-Exploader is currently not setup for libnds2, the newest version of libnds that just came out. I do not have plans on migrating this project over to that as the changes libnds2 have are significant and calico likely lacks support for 32KB DLDI which I wish to maintain for GBA-Exploder to allow use on older flashcarts like N-CARD that currently require 32KB DLDI support.
*Fixed the bug of timestamp of save file.
 
*Fixed the display of Japanese character.
'''v0.65'''
*Fixed the bug of the display when filename is short name(shorter than 8 words).
* Now prompts if user is using DE or regular Omega if EZFlash Omega is detected during intial boot. Regular omega can be used if soft reset method is used (aka, a cart like EZ-Flash Parallel is used to cause console to reboot on reinsert) after saving a game so that it can be backed up before power loss. If DE mode is selected setRamPage is set to normal range and will make it use FRAM chip. Since that is non-volatile soft-resetting in this manner would not be required. Regular Omega will use page 0x40 for RTS section of SRAM. (normal range is read only for some reason. FPGA must unlock it after sending specific table data to SD card buffer register which I have not got working yet)
'''V0.54 2008/3/23'''
* NDS files can now be booted. Since bootloader from nds-hb-menu was added to fix soft-reset stuff I might as well just add in support to boot NDS files. :P
*Has save bug. With M3, G6 or GBA Expansion Pack, save data will be damaged. replaced.
 
'''V0.53 2008/3/22'''
'''v0.64'''
*Fixed the recognition of DSTT GBA&EXPLORER 2IN1 which have 128K SRAM.
* 3 in 1 Plus remaining issue with x button option to boot to nor flash game after having completed a norflash flash operation has now been resolved. :D
*Now, M3(SLOT2), G6(SLOT2) and GBA Expansion Pack are supported temporarily. (FLASH1M save is not supported yet.)
* NorFlash menu appearing when hitting L after entering rumble selection menu on Omega/Omega DE has been resolved. NorFlash menu now fully disabled for Omega to avoid possible bricking of this cart.
*Fixed the bug of the message when cannot soft reset.
* Screen init process for GBA Frame loader optimized.
*Support DLDI of SLOT1 flash cards.
 
'''V0.51 2008/3/15'''
Credit to stl25 for help testing the 3in1 Plus as I did not personally own one. :D
*Fixed libfat to change the alias name. Now Windows compatible(Digit is set to double figures.)
 
*Fixed so-called "0xE5 problem". All Japanese words and short name supported.
'''v0.63'''
*Fixed extension pack recognition.
* Patching system from SCFW implemented for SuperCards. Prepatched roms no longer required for use with GBA-Exploader for SuperCards! This also resolves all remaining save issues for SuperCards!
*Fixed the bug of the process of SRAM.BIN in [EXP128K] mode.
* dat file system used for storing save meta data on current save for EWIN cards now used for SuperCards as SuperCards do not have a spare ram page for storing this. This was also why there was save issues initially with random games even ones with 64KB or smaller saves. This resolves that.
'''V0.5 2008/3/12'''  
* Initial EZ Flash Omega/Omega DE support! Note that there are still save issues right now. DE has partial saves working with just 128KB saves not working. (so Pokemon games do not hold saves currently)
*V0.5 final release
* Progress bars added for most UI actions that result in writing sram to/from file so that it doesn't look like UI is frozen. This is especially important for some slower cards like Supercard where SRAM read/writes is a bit slower (on SC Lite anyways)
*Support EEPROM_V122 Famicom Mini(Classic NES) and undefined type.
 
*Fixed the bug of the reset after setting Rumble Pak.
'''v0.62'''
*Added directory create date.
* Subdirectories now only display &quot;..&quot; at the top of the file tree. The &quot;.&quot; directory entry is not useful (as it just causes you to navigate to the current directory you are already in).
'''V0.5 beta 2008/3/9'''
* TTMenu folder now a possible alternate path for gbaframe.bmp if gbaframe.bmp is not found in the other possible locations.
*Support EEPROM_V124 Famicom Mini(Classic NES). (EEPROM_V122 is not yet.)
 
*Support EWIN EXPANSION PAK (2in1) with 128KB SRAM temporarily.
'''v0.61b'''
*Added auto header fix function.
 
*Added setting about SAVE/SIGN directories and MultiSave option.
* Fix mistake that caused DS mode Slot-2 booting to not work. (accidentally removed needed arm7 code in previous commit after optimizing code relating to Rumble Menu softreset)
'''V0.5 beta(1)''' 2008/3/10
 
*Has module error. replaced.
'''v0.61'''
'''V0.4 2008/3/1'''  Changed some message.
* Soft Reset for Rumble Menu fixed. New scheme is now used for loading SoftReset.xxxx. Now instead it will look for R4TF.nds (R4TF = 4 character ioType code for DLDI user is currently using with R4TF as an example). If not found it will look for a few specific NDS files to try. If those aren't found it will try boot.nds. If boot.nds isn't found then rumble menu will not be available.
*Fixed the bug that EWIN EXP PAK won't be detected after you select Memory RAM or LINK and reset.
 
*Fixed the detection of EWIN EXP PAK with 128KB SRAM.
'''v0.60'''
*Add  SAV file; 6 files: SAV and <1> to <5>(sv1 tosv5).
 
'''V0.3 2008/2/21'''
* NorFlash read/write now working for 3 in 1 Plus! Big thanks to cory1492 for he had managed to make available the version of source code of gbaldr that had the code needed to make this work. Also thanks to stl25 for helping test 3in1 Plus support as I do not own a 3 in 1 Plus myself.
*Fixed the bug that soft rest is disabled if your flash card is R4/M3S.
* 64MB roms appear to write to NorFlash correctly with 3 in 1 Plus however note that this does not mean retail roms that used that size will work (not without patching anyways). 3 in 1 Plus had 64MB NorFlash but doen't use normal page switch commands so retail roms will need patching to use this.
*Fixed the bug of EEPROM_V111 patch.
* r4tf bool set to false for SuperCard and Rumble menu disabled for SuperCard. Program would crash if user attempts to use R shoulder button to access rumble menu if a SuperCard is inserted and a NDS file for soft reset was available. This has been fixed by disabling this menu for SuperCard. The rumble menu will not work as intended for SuperCards anyways.
*Fixed the bug of FLASH1M_V103 patch in NOR mode.
* Soft Reset for rumble menu is currently broken. (has been since initial rebuild). The method the program uses for loading NDS files likely needs to be rewritten.
*Support "EZ4 lite-delux" and "EWIN EXPANSION PAK (2in1)"」.
* Hitting X after flashing a game to NorFlash on 3 in 1 Plus may cause hang. The game flashed will still be bootable provided the user power cycles the console and boots the card as normal. No plans to fix as I'm unsure why it's happening and it's a minor issue. Hitting X after switching to NorFlash without flashing anything seems to still work though. Feel free to create a push request if you managed to fix this. ;)
*SAVE data in PSRAM/SDRAM mode will be saved to SAV file when GBA_ExpLoader is run.
 
'''V0.2 2008/2/10'''
'''v0.59'''
*Fixed the bug about SAV file extension.
* Initial rebuild to new libnds.
*Set SAVE size of BIN file and UNKNOWN games to 64KB.
* Add new error message for detecting if run on DSi/3DS consoles as this program isn't really compatible with those consoles for obvious reasons.
*Changed the color of the menu in NOR mode.
* Add initial support for SuperCard Lite (and possibly other SuperCard varients). Note that saves are not currently functional though.
*Stopped DMA transfer in PSRAM mode. Speed will be slow but more stable.
* Add back initial support for EZ Flash 3 in 1 Plus. Note that NorFlash commands appear to not be working at the moment. RAM mode untested. New code added for detecting 3 in 1 Plus when detecting max allowed file size. This should allow writing 64MB gba roms to 3 in 1 Plus...once NorFlash stuff is fixed that is. :P
'''V0.1 2008/2/8'''
* Tested as working properly with regular EZ Flash 3 in 1 carts.
*Support 3in1/2in1 games.
* Note that version 0.58 already exists but we do not have source code for it. (source was released only for 0.57. Rudolph could not find the last version's source code unfortunately. This is why 3 in 1 Plus support is incomplete. (it at least detects it now which original 0.57 could not do and will in theory allow writing 64MB GBA roms once NorFlash stuff is fixed for that cart)
'''V0.0 2008/2/6'''
*Prototype version.


===Unofficial===
'''V0.58b0MX 2010/04/15'''
* This is the combined patches of the 0.58X M3 Patch and 0.58b0 Patch.
* Fixed bugs related to 3IN1+.
* This doesn't fix rumble or browser mode with a 3IN1+.
'''V0.58b0 2010/01/05'''
* This contains the 0.58b version and a patched version that shows up as 0.58b0 of GBA ExpLoader. The ips file is also included if you prefer to patch it yourself.
* For NOR writes you are limited to 32MB.
'''V0.58X M3 Patch (0.58b unexcluded ips) 2009/01/09'''
* A patch for GBA Exploader so it'll work on M3DS Real and iTouchDS.
===Official===
'''MSHL2 V0.1 2009/02/01'''
* Launch GBA files via extension association in MoonShell2.
* It launches the specified GBA file from MoonShell2 using GBA ExpLoader V0.58 with "PSRAM/SDRAM mode" and "No_MultiSave" settings.
'''V0.58b 2008/12/21'''
* Fixed FAT initialization processing remaining in test mode since V0.58a.
* Fixes a bug with the Flash 512Kbit save type used in several notable games.
* Although untested it now supports 3IN1+ (up to 32MB NOR).
'''V0.58 2008/12/07'''
* Fixed the bug of FLASH1M in DSTT GBA&EXPLORER 2IN1.
* Support FLASH1M in M3 (SLOT2), G6 (SLOT2) and GBA Expansion Pack.
* Fixed the Added auto header fix function.
'''V0.57 2008/05/12'''
* Fixed the bug of timestamp of save file again.
* Changed Famicom Mini(Classic NES) save data format to VBA save format. Attention: Compatibility is lost.
'''V0.56 2008/04/13'''
* Fixed the bug of timestamp of save file.
* Fixed the display of Japanese character.
* Fixed the bug of the display when filename is short name (shorter than 8 words).
'''V0.55 2008/03/30'''
* Fixed the bug of NOR writing.
* Support FLASH1M in DSTT GBA&EXPLORER 2IN1.
'''V0.54 2008/03/23'''
* Has save bug. With M3, G6 or GBA Expansion Pack, save data will be damaged. replaced.
'''V0.53 2008/03/22'''
* Fixed the recognition of DSTT GBA&EXPLORER 2IN1 which have 128K SRAM.
* Now, M3(SLOT2), G6(SLOT2) and GBA Expansion Pack are supported temporarily (FLASH1M save is not supported yet).
* Fixed the bug of the message when cannot soft reset.
* Support DLDI of SLOT1 flash cards.
'''V0.51 2008/03/15'''
* Fixed libfat to change the alias name. Now Windows compatible (Digit is set to double figures).
* Fixed so-called "0xE5 problem". All Japanese words and short name supported.
* Fixed extension pack recognition.
* Fixed the bug of the process of SRAM.BIN in [EXP128K] mode.
'''V0.5 2008/03/12'''
* V0.5 final release.
* Support EEPROM_V122 Famicom Mini (Classic NES) and undefined type.
* Fixed the bug of the reset after setting Rumble Pak.
* Added directory create date.
'''V0.5 beta 2008/03/09'''
* Support EEPROM_V124 Famicom Mini (Classic NES) (EEPROM_V122 is not yet).
* Support EWIN EXPANSION PAK (2in1) with 128KB SRAM temporarily.
* Added auto header fix function.
* Added setting about SAVE/SIGN directories and MultiSave option.
'''V0.5 beta1 2008/3/10'''
* Has module error. replaced.
'''V0.4 2008/03/01''' 
* Changed some message.
* Fixed the bug that EWIN EXP PAK won't be detected after you select Memory RAM or LINK and reset.
* Fixed the detection of EWIN EXP PAK with 128KB SRAM.
* Add SAV file; 6 files: SAV and <1> to <5> (sv1 tosv5).
'''V0.3 2008/02/21'''
* Fixed the bug that soft rest is disabled if your flash card is R4/M3S.
* Fixed the bug of EEPROM_V111 patch.
* Fixed the bug of FLASH1M_V103 patch in NOR mode.
* Support "EZ4 lite-delux" and "EWIN EXPANSION PAK (2in1)".
* SAVE data in PSRAM/SDRAM mode will be saved to SAV file when GBA_ExpLoader is run.
'''V0.2 2008/02/10'''
* Fixed the bug about SAV file extension.
* Set SAVE size of BIN file and UNKNOWN games to 64KB.
* Changed the color of the menu in NOR mode.
* Stopped DMA transfer in PSRAM mode. Speed will be slow but more stable.
'''V0.1 2008/02/08'''
* Support 3in1/2in1 games.
'''V0.0 2008/02/06'''
* Prototype version.


[[Category:Homebrew applications]]
==External links==
* Author's website - https://kotei.blog.ss-blog.jp/archive/c530-1
* Github - https://github.com/ApacheThunder/GBA-Exploader
* GitHub - https://github.com/ArcheyChen/GBA-Exploader
<!--https://web.archive.org/web/20190314141951/https://filetrip.net/nds-downloads/applications/dl-gba-exploader-0-58x-m3-patch-f4135.html-->
<!--https://web.archive.org/web/20180903012852/https://filetrip.net/file.php?id=10382-->

Latest revision as of 14:09, 4 January 2026

GBA exploader
General
AuthorRudolph, ApacheThunder
TypeHandheld
Version0.67
LicenseMixed
Last Updated2025/12/26
Links
0.67 + uo Download
Website
Source

With this program, you can run GBA games which are in SLOT1 flash card through SLOT2 expansion pack.

If your SLOT1 flash card supports soft reset, you can use your exp pack as Rumble Pak or Memory Expansion Pak.

Supported SLOT2 expansion packs are 3in1 Expansion Pack, EZ4 lite-delux and EWIN EXPANSION PAK (2in1). NOR mode and Rumble Pak function are enabled only in 3in1 Expansion Pack.

A patch is released for GBA Exploader so it'll work on M3DS Real and iTouchDS.

Updated Version

An updated and actively maintained version of GBA Exploader is available by ApacheThunder.

This version includes bug fixes, compatibility improvements, and support for modern flashcarts compared to the original release.

Installation

Please patch the DLDI on GBA_ExpLoader.NDS (if your flash card supports auto DLDI patch, you need not to do this).

Create /GBA_SAVE/ and /GBA_SIGN/ folder on the root of your SD card (modify GBA_ExpLoader.ini, and you can set other folders).

Copy GBA files into your SD card.

Put SAV files into /GBA_SAVE/ (if there are no SAV files, they will be created automatically).

Put gbaframe.bmp (24bit or 8bit) into the root, /GBA_SIGN/ or /_system_/ if you want to use GBA frame.

User guide

You can choose between 3 modes if you use the 3in1 Expansion Pack:

  • PSRAM mode.
  • NOR mode.
  • Expansion mode (if supported).

PSRAM/SDRAM mode

If you run a GBA in PSRAM/SDRAM mode, SAV file will be saved next time. You can select where to save or not to save.

  • Write a GBA file into PSRAM with SRAM patch.
    • Load SRAM data from SAV file.
    • Then run GBA from PSRAM.
  • Backup SRAM data to SAV file.
  • Restore SRAM.BIN to SRAM.
  • Backup all SRAM data to SRAM.BIN.
  • Patch PSRAM for DS Browser and soft reset (disabled when your pack is 3in1 Expansion Pack).

With 3in1 Expansion Pack:

  • You can run a GBA up to 16MByte (16000KB) in PSRAM mode.
  • Return to your flashcard's menu if soft reset is supported.
  • You can run GBA from RAM until turning off DS or pulling out your expansion pack.

When you want to exchange SAV file:

  • Backup SAV data (or run another GBA) first and then exchange the file.
  • SAV file will be written into SRAM every time you run the GBA, even if you run the same file again and again.
  • If your expansion pack has only 128KB SRAM, you cannot run GBA with FLASH 1Mb save.

NOR mode

Enabled only with 3in1 Expansion Pack.

  • Backup SRAM data to SAV file.
    • Write GBA file to NOR with SRAM patch.
    • Then load SRAM data from SAV file.
  • You can also run NOR in DS menu like a normal GBA cartridge.
    • Run GBA (Slot2) stored in NOR.

Expansion mode

Enabled only with 3in1 Expansion Pack.

  • Change Rumble level (low/medium/high).
  • Patch PSRAM for DS Browser and then soft reset.

Repairing of header

GBA ExpLoader will repair corrupted header of GBA.

Savedata

If save type is not SRAM, GBA ExpLoader Will patch SRAM automatically.

Supported save types:

  • EEPROM_V111, EEPROM_V120, EEPROM_V121, EEPROM_V122, EEPROM_V124, EEPROM_V125, EEPROM_V126.
  • FLASH_V120, FLASH_V121, FLASH_V123, FLASH_V124, FLASH_V125, FLASH_V126.
  • FLASH512_V130, FLASH512_V131, FLASH512_V133.
  • FLASH1M_V102, FLASH1M_V103.
  • Special save type of Famicom Mini(Classic NES)EEPROM_V122, EEPROM_V124 and undefined type.

Additional:

  • The size of SAV file will be adjusted to the real SAVE size. But GBA ExpLoader cannot detect EEPROM 512B or 8KB, so all EEPROM size will be set to 8KB.
    • If GBA ExpLoader cannot detect save type, it will be set to SRAM 64K.
    • It's OK even if SAVE data has dummy area at the tail of the file. E.g. real file size is 64K but file size is 128K.
    • SAV file will be saved to /GBA_SAVE/.
    • File name will be the same of the ROM file name.
  • When you run a ROM first time, analyzed data (SGN file) will be saved to /GBA_SIGN/.
    • If the file extension is BIN, GBA ExpLoader won't patch. And SAV file size will be set to 64KB.
    • In file select window, top SAV will be saved as .SAV and <1> to <5> will be saved .SV1 to .SV5.
    • You'd better create /GBA_SAVE/ and /GBA_SIGN/ yourself (Some Slot1 flash cards cannot create these folders correctly. N-Card series will take a long time to do this).

Controls

L/R - Change mode (3in1 Expansion Pack only)

PSRAM/SDRAM mode:

A - Write a GBA file into PSRAM with SRAM patch, load SRAM data from SAV file and run GBA from PSRAM.

B - Backup SRAM data to SAV file

Y - Restore SRAM.BIN to SRAM

X - Backup all SRAM data to SRAM.BIN

R - Patch PSRAM for DS Browser and soft reset

Select - Return to your flashcard's menu if soft reset is supported

B - Backup SAV data (or run another GBA) first and then exchange the file

NOR mode:

A - Backup SRAM data to SAV file, then load SRAM data from SAV file

B - Backup SRAM data to SAV file

Y - Load SRAM data from SAV file

X - Run GBA (Slot2) stored in NOR

Changelog

ApacheThunder Version

v0.67

  • Soft Reset Support added for DSPico (thanks to fox8091)
  • Header type changed to older 0x200 standard to hopefully restore compatibility with certain older flashcart kernels.

v0.66

  • Can now use gbaframes specific to a gba rom being loaded to ram/flash. Have a bmp file with filename matching the game rom being flashed in GBA_SIGN path. If it finds a matching BMP it will use that before falling back to the default gbaframe.bmp paths.
  • nds-bootstrap now used for booting retail NDS roms from file browser. Note that currently GBA-Exploader does not create new save files so only games with existing save files (currently hardcoded to GBA_SAV path like with GBA games) can be booted with this.
  • libnds329 (modified version of libnds with 32KB DLDI support) is no longer required to build GBA-Exploader. Now works with standard version of libnds thanks to a work-a-round found that involves overriding the default DLDI asm with custom version with 32KB size specified.

Note that GBA-Exploader is currently not setup for libnds2, the newest version of libnds that just came out. I do not have plans on migrating this project over to that as the changes libnds2 have are significant and calico likely lacks support for 32KB DLDI which I wish to maintain for GBA-Exploder to allow use on older flashcarts like N-CARD that currently require 32KB DLDI support.

v0.65

  • Now prompts if user is using DE or regular Omega if EZFlash Omega is detected during intial boot. Regular omega can be used if soft reset method is used (aka, a cart like EZ-Flash Parallel is used to cause console to reboot on reinsert) after saving a game so that it can be backed up before power loss. If DE mode is selected setRamPage is set to normal range and will make it use FRAM chip. Since that is non-volatile soft-resetting in this manner would not be required. Regular Omega will use page 0x40 for RTS section of SRAM. (normal range is read only for some reason. FPGA must unlock it after sending specific table data to SD card buffer register which I have not got working yet)
  • NDS files can now be booted. Since bootloader from nds-hb-menu was added to fix soft-reset stuff I might as well just add in support to boot NDS files. :P

v0.64

  • 3 in 1 Plus remaining issue with x button option to boot to nor flash game after having completed a norflash flash operation has now been resolved. :D
  • NorFlash menu appearing when hitting L after entering rumble selection menu on Omega/Omega DE has been resolved. NorFlash menu now fully disabled for Omega to avoid possible bricking of this cart.
  • Screen init process for GBA Frame loader optimized.

Credit to stl25 for help testing the 3in1 Plus as I did not personally own one. :D

v0.63

  • Patching system from SCFW implemented for SuperCards. Prepatched roms no longer required for use with GBA-Exploader for SuperCards! This also resolves all remaining save issues for SuperCards!
  • dat file system used for storing save meta data on current save for EWIN cards now used for SuperCards as SuperCards do not have a spare ram page for storing this. This was also why there was save issues initially with random games even ones with 64KB or smaller saves. This resolves that.
  • Initial EZ Flash Omega/Omega DE support! Note that there are still save issues right now. DE has partial saves working with just 128KB saves not working. (so Pokemon games do not hold saves currently)
  • Progress bars added for most UI actions that result in writing sram to/from file so that it doesn't look like UI is frozen. This is especially important for some slower cards like Supercard where SRAM read/writes is a bit slower (on SC Lite anyways)

v0.62

  • Subdirectories now only display ".." at the top of the file tree. The "." directory entry is not useful (as it just causes you to navigate to the current directory you are already in).
  • TTMenu folder now a possible alternate path for gbaframe.bmp if gbaframe.bmp is not found in the other possible locations.

v0.61b

  • Fix mistake that caused DS mode Slot-2 booting to not work. (accidentally removed needed arm7 code in previous commit after optimizing code relating to Rumble Menu softreset)

v0.61

  • Soft Reset for Rumble Menu fixed. New scheme is now used for loading SoftReset.xxxx. Now instead it will look for R4TF.nds (R4TF = 4 character ioType code for DLDI user is currently using with R4TF as an example). If not found it will look for a few specific NDS files to try. If those aren't found it will try boot.nds. If boot.nds isn't found then rumble menu will not be available.

v0.60

  • NorFlash read/write now working for 3 in 1 Plus! Big thanks to cory1492 for he had managed to make available the version of source code of gbaldr that had the code needed to make this work. Also thanks to stl25 for helping test 3in1 Plus support as I do not own a 3 in 1 Plus myself.
  • 64MB roms appear to write to NorFlash correctly with 3 in 1 Plus however note that this does not mean retail roms that used that size will work (not without patching anyways). 3 in 1 Plus had 64MB NorFlash but doen't use normal page switch commands so retail roms will need patching to use this.
  • r4tf bool set to false for SuperCard and Rumble menu disabled for SuperCard. Program would crash if user attempts to use R shoulder button to access rumble menu if a SuperCard is inserted and a NDS file for soft reset was available. This has been fixed by disabling this menu for SuperCard. The rumble menu will not work as intended for SuperCards anyways.
  • Soft Reset for rumble menu is currently broken. (has been since initial rebuild). The method the program uses for loading NDS files likely needs to be rewritten.
  • Hitting X after flashing a game to NorFlash on 3 in 1 Plus may cause hang. The game flashed will still be bootable provided the user power cycles the console and boots the card as normal. No plans to fix as I'm unsure why it's happening and it's a minor issue. Hitting X after switching to NorFlash without flashing anything seems to still work though. Feel free to create a push request if you managed to fix this. ;)

v0.59

  • Initial rebuild to new libnds.
  • Add new error message for detecting if run on DSi/3DS consoles as this program isn't really compatible with those consoles for obvious reasons.
  • Add initial support for SuperCard Lite (and possibly other SuperCard varients). Note that saves are not currently functional though.
  • Add back initial support for EZ Flash 3 in 1 Plus. Note that NorFlash commands appear to not be working at the moment. RAM mode untested. New code added for detecting 3 in 1 Plus when detecting max allowed file size. This should allow writing 64MB gba roms to 3 in 1 Plus...once NorFlash stuff is fixed that is. :P
  • Tested as working properly with regular EZ Flash 3 in 1 carts.
  • Note that version 0.58 already exists but we do not have source code for it. (source was released only for 0.57. Rudolph could not find the last version's source code unfortunately. This is why 3 in 1 Plus support is incomplete. (it at least detects it now which original 0.57 could not do and will in theory allow writing 64MB GBA roms once NorFlash stuff is fixed for that cart)

Unofficial

V0.58b0MX 2010/04/15

  • This is the combined patches of the 0.58X M3 Patch and 0.58b0 Patch.
  • Fixed bugs related to 3IN1+.
  • This doesn't fix rumble or browser mode with a 3IN1+.

V0.58b0 2010/01/05

  • This contains the 0.58b version and a patched version that shows up as 0.58b0 of GBA ExpLoader. The ips file is also included if you prefer to patch it yourself.
  • For NOR writes you are limited to 32MB.

V0.58X M3 Patch (0.58b unexcluded ips) 2009/01/09

  • A patch for GBA Exploader so it'll work on M3DS Real and iTouchDS.

Official

MSHL2 V0.1 2009/02/01

  • Launch GBA files via extension association in MoonShell2.
  • It launches the specified GBA file from MoonShell2 using GBA ExpLoader V0.58 with "PSRAM/SDRAM mode" and "No_MultiSave" settings.

V0.58b 2008/12/21

  • Fixed FAT initialization processing remaining in test mode since V0.58a.
  • Fixes a bug with the Flash 512Kbit save type used in several notable games.
  • Although untested it now supports 3IN1+ (up to 32MB NOR).

V0.58 2008/12/07

  • Fixed the bug of FLASH1M in DSTT GBA&EXPLORER 2IN1.
  • Support FLASH1M in M3 (SLOT2), G6 (SLOT2) and GBA Expansion Pack.
  • Fixed the Added auto header fix function.

V0.57 2008/05/12

  • Fixed the bug of timestamp of save file again.
  • Changed Famicom Mini(Classic NES) save data format to VBA save format. Attention: Compatibility is lost.

V0.56 2008/04/13

  • Fixed the bug of timestamp of save file.
  • Fixed the display of Japanese character.
  • Fixed the bug of the display when filename is short name (shorter than 8 words).

V0.55 2008/03/30

  • Fixed the bug of NOR writing.
  • Support FLASH1M in DSTT GBA&EXPLORER 2IN1.

V0.54 2008/03/23

  • Has save bug. With M3, G6 or GBA Expansion Pack, save data will be damaged. replaced.

V0.53 2008/03/22

  • Fixed the recognition of DSTT GBA&EXPLORER 2IN1 which have 128K SRAM.
  • Now, M3(SLOT2), G6(SLOT2) and GBA Expansion Pack are supported temporarily (FLASH1M save is not supported yet).
  • Fixed the bug of the message when cannot soft reset.
  • Support DLDI of SLOT1 flash cards.

V0.51 2008/03/15

  • Fixed libfat to change the alias name. Now Windows compatible (Digit is set to double figures).
  • Fixed so-called "0xE5 problem". All Japanese words and short name supported.
  • Fixed extension pack recognition.
  • Fixed the bug of the process of SRAM.BIN in [EXP128K] mode.

V0.5 2008/03/12

  • V0.5 final release.
  • Support EEPROM_V122 Famicom Mini (Classic NES) and undefined type.
  • Fixed the bug of the reset after setting Rumble Pak.
  • Added directory create date.

V0.5 beta 2008/03/09

  • Support EEPROM_V124 Famicom Mini (Classic NES) (EEPROM_V122 is not yet).
  • Support EWIN EXPANSION PAK (2in1) with 128KB SRAM temporarily.
  • Added auto header fix function.
  • Added setting about SAVE/SIGN directories and MultiSave option.

V0.5 beta1 2008/3/10

  • Has module error. replaced.

V0.4 2008/03/01

  • Changed some message.
  • Fixed the bug that EWIN EXP PAK won't be detected after you select Memory RAM or LINK and reset.
  • Fixed the detection of EWIN EXP PAK with 128KB SRAM.
  • Add SAV file; 6 files: SAV and <1> to <5> (sv1 tosv5).

V0.3 2008/02/21

  • Fixed the bug that soft rest is disabled if your flash card is R4/M3S.
  • Fixed the bug of EEPROM_V111 patch.
  • Fixed the bug of FLASH1M_V103 patch in NOR mode.
  • Support "EZ4 lite-delux" and "EWIN EXPANSION PAK (2in1)".
  • SAVE data in PSRAM/SDRAM mode will be saved to SAV file when GBA_ExpLoader is run.

V0.2 2008/02/10

  • Fixed the bug about SAV file extension.
  • Set SAVE size of BIN file and UNKNOWN games to 64KB.
  • Changed the color of the menu in NOR mode.
  • Stopped DMA transfer in PSRAM mode. Speed will be slow but more stable.

V0.1 2008/02/08

  • Support 3in1/2in1 games.

V0.0 2008/02/06

  • Prototype version.

External links

Advertising: