Homebrew OPEN_AGB_FIRM discussion thread

Pickle_Rick

I'm a pickle Morty!
OP
Member
Joined
Aug 28, 2017
Messages
632
Trophies
0
Age
26
Location
Garage
XP
1,162
Country
United States
open_agb_firm
open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.

Known issues
This section is reserved for a listing of known issues. At present only this remains:

  • Sleep mode is not fully implemented.
  • Save type detection may still fail for certain games using EEPROM.
  • No settings (including brightness control), no cheats and other enhancements.
If you happen to stumble over another bug, please open an issue in the official open_agb_firm repo on GitHub or contact me via other platforms.

Hardware limitations
This is a list of limitations we can't solve in software or are very hard to work around. This doesn't mean it will never happen (unless stated otherwise).

  • 64 MiB (512 mbit) games. Not possible to support.
  • Games with extra hardware built into the cartridge (except Real-Time Clock). Patches are required.
  • GBA Serial port (aka. Link Cable).
  • 64 KiB (512 kbit) SRAM (homebrew games/emulators). Not possible to support.
  • Can't switch back to 3DS mode from GBA mode requiring a reboot for booting a different game.
  • Savestates. Very difficult to implement because no direct hardware access.

Link to latest firm build. (Official project by profi200)

Link to latest 3dsx/CIA build. (Unofficial build by Nutez)


Help report save types here! (Links to the official GitHub issue)

I made a little video xD

XpOhGk0.gif

Note: I did not make this software nor am I involved. This is just a discussion thread.
 
Last edited by Pickle_Rick,

Rj.MoG

Well-Known Member
Member
Joined
Jun 8, 2015
Messages
377
Trophies
0
Age
31
XP
1,469
Country
United States
open_agb_firm
open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.

Known issues
This section is reserved for a listing of known issues. At present only this remains:

  • Sleep mode is not fully implemented.
  • Save type detection may still fail for certain games using EEPROM.
  • No settings (including brightness control), no cheats and other enhancements.
If you happen to stumble over another bug, please open an issue in the official open_agb_firm repo on GitHub or contact me via other platforms.

Hardware limitations
This is a list of limitations we can't solve in software or are very hard to work around. This doesn't mean it will never happen (unless stated otherwise).

  • 64 MiB (512 mbit) games. Not possible to support.
  • Games with extra hardware built into the cartridge (except Real-Time Clock). Patches are required.
  • GBA Serial port (aka. Link Cable).
  • 64 KiB (512 kbit) SRAM (homebrew games/emulators). Not possible to support.
  • Can't switch back to 3DS mode from GBA mode requiring a reboot for booting a different game.
  • Savestates. Very difficult to implement because no direct hardware access.
You can access the github here.

A test build is available here. (It's pretty outdated now though. There's been a bunch of commits since.)

The color correction issue in the video has been fixed in a newer commit.
This is pretty amazing actually. I tried looking at this myself but my programming skills are limited to cobol, c# and fortran. I’m pretty blown away at this. It’ll definitely be convenient. Thank you!
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
2,280
Trophies
1
XP
2,768
Country
Canada
how to use?
Since it's a .firm file, I'm guessing you have to run it from the Luma chainloader, like gm9.

That raises an interesting question: do you think you can enable chainloading from ntrboot, so it can be run from a 3DS with stock firmware?
 

Nutez

Assimilator of Lumas
Member
Joined
Jan 2, 2018
Messages
172
Trophies
0
Location
The other side of paradise.
XP
1,709
Country
United Kingdom
Very cool, nice work!

Side note, there was a chainloader you could compile as .cia to reboot into a .firm payload from the home menu. It might be compatible with this .firm if someone had time to try it out ^_^ :
New link: https://github.com/Ordim3n/That-Shortcut-Thingy (old link was deprecated).

Edit: You can download a .cia/.3dsx shortcut from here.
 
Last edited by Nutez,
  • Like
Reactions: Isegrim and ber71

AmandaRose

Do what I do. Hold tight and pretend it’s a plan
Member
Joined
Aug 19, 2015
Messages
9,286
Trophies
1
Location
Glasgow
Website
www.rockstarnorth.com
XP
13,249
Country
United Kingdom
This is great can't wait to see just how good it gets. So far I have tried two games using the test build. Metal Slug GBA runs with no issues and Super Mario Bros Classic loads but no button presses are recognised.

Edit just tried Dr Mario and Puzzle League both work perfectly.
 
Last edited by AmandaRose,
  • Like
Reactions: Alexander1970

DualBladedKirito

The Black Swordsman
Member
Joined
Sep 9, 2015
Messages
222
Trophies
0
Age
31
Location
United States
XP
924
Country
United States
Nice to see this has a discussion thread now.( Was gonna make one myself but you beat me to it lol)

--------------------- MERGED ---------------------------

So, the obvious question is, will this offer any particular advantages over the standard agb_firm in the future?
Also it will eventually have a settings menu with cheats and the like. Also it has access to the arm9 AND arm11 cpus. Afaik stock agb_firm does not have access to the arm11
 
Last edited by DualBladedKirito,

AmandaRose

Do what I do. Hold tight and pretend it’s a plan
Member
Joined
Aug 19, 2015
Messages
9,286
Trophies
1
Location
Glasgow
Website
www.rockstarnorth.com
XP
13,249
Country
United Kingdom
You hadn't specified that anywhere in the first post. It seems as if you're just stealing credit from profil2000.
Yep the below in the OPs original post makes it sound like it was him who developed it.

If you happen to stumble over another bug, please open an issue in the official open_agb_firm repo on GitHub or contact me via other platforms.


The above needs removed and credit to the actual dev needs to be added to the first post.
 
Last edited by AmandaRose,

Dartz150

Yet another Onii-chan
Member
Joined
May 5, 2010
Messages
2,235
Trophies
1
Age
30
Location
Over your head
XP
3,880
Country
Mexico
How to use:

NOTE: IF YOU WERE USING A DIFFERENT EMULATOR/LOADER BEFORE, IT IS MANDATORY TO MAKE A BACKUP OF ALL OF YOUR SAVES, THIS IS STILL AN ALPHA AND COULD BREAK PREVIOUS SAVE DATA, IT IS RECOMENDED TO TEST/USE IT WITH NEWLY CREATED SAVE FILES.

For Luma users:
  1. Place open_agb_firm.firm inside /luma/payloads folder on your SD card using the procedure of your preference, I recommend an ftp server as the file is very light to transfer.
  2. Place your GBA roms inside your SD card, it is recomended to create a folder named "GBA" for those but you can place them anywhere of your choice.
  3. Power off your 3DS, then power it on while holding the START button.
  4. A menu should appear and one of the available options should be "open_agb_firm", select it pressing the A button.
  5. You should be promted with a file browser, look up for your GBA files to load and see the magic.
  6. To load a different rom, you need to power off your 3DS, then repeat steps 3 to 5.
  7. As stated, any issue that happens should be opened on this project Github page.
For fastboot3DS users:

  1. Place your "open_agb_firm.firm" file inside of your SD card in any directory of your choice, if you use other payloads, is recomended to use the same directory.
  2. Power off your 3DS, then power it on while holding the HOME button.
  3. Fastboot 3DS should show up, select the "Boot Setup" option.
  4. Select any empty slot of your choice.
  5. Press the A button on the "Select [slot X] firm", a file browser will show up, then look up for your "open_agb_firm.firm" file on your SD card.
  6. [MANDATORY] Press the A button on the "Set [Slot X] keycombo" option.
  7. Follow the instructions on the top screen, then exit when done.
  8. Power off your 3DS, then power it on while holding the keycombo you configured in the previous step.
  9. You should be promted with a file browser, look up for your GBA files to load and see the magic.
  10. To load a different rom, repeat step 8.
  11. As stated, any issue that happens should be opened on this project Github page.

Also, is very important to know that profi200 is asking for help on this project:

profi200 said:
Some people probably noticed when i pushed this file. The idea is to make a database of save types for all GBA games ever released numbered using the no-intro.org database. Similar databases (script to convert) exist but there are a number of problems with them. They are not numbered using the no-intro db and i found several broken games testing only a hand full of them (mostly the less popular games).

The big question: Why?
Because all save type detection attempts so far didn't give satisfying results. The biggest problem are EEPROM games where i just can't properly detetct if 4k or 64k.

I surely won't go over the almost 3000 games alone so i want to make this a community effort.

Rules:

  • Your dump must be a known good dump verified using the linked release database.
  • If you own the original cartridge and it uses a flash save type please open it and identify the save chip used on that cartridge and mark the submitted entry as "verified". This is important to identify the proper flash manufacturer used in a cart.
  • If the first 3 of the 4 letters game code matches for all languages/regions, each entry is for all of them so the same game doesn't need to be included multiple times.
  • If you don't know the save type always start with the smallest size (without Real-Time Clock) and verify the game is saving properly and loading the savegame works. If the game freezes and it's a verified dump it probably means wrong save type.
  • If a game uses a special cartridge with extra hardware like Real-Time Clock mark the entry as such.
To make this easier i will probably make a build including a save type selector later.
This is subject to change.

So if you want to contribute the door is completely open :yaysp:
 
Last edited by Dartz150,

Dartz150

Yet another Onii-chan
Member
Joined
May 5, 2010
Messages
2,235
Trophies
1
Age
30
Location
Over your head
XP
3,880
Country
Mexico
Impressive and awesome, but totally needs that patch to show the GBA boot logo B-)

Yep I don't know why but playing GBA games without seeing the boot logo just doesn't feel right :)

It is dissabled by default but you can re-enable it by editing the source code option, then rebuild the .firm as it is currently hardcoded. It is planned to be toggleable in the future accordig to previous coments on github.
 

KaduPSE

Revolution and cake
Member
Joined
Dec 26, 2015
Messages
259
Trophies
0
XP
374
Country
Brazil
Although not requiring CIA forwarders is a nice feature... Being compatible with them is certainly important if it ever becomes a true replacement for AGB_FIRM, part of the charm of using a 3DS is precisely having so many systems right in the native home menu.
 

Pickle_Rick

I'm a pickle Morty!
OP
Member
Joined
Aug 28, 2017
Messages
632
Trophies
0
Age
26
Location
Garage
XP
1,162
Country
United States
You hadn't specified that anywhere in the first post. It seems as if you're just stealing credit from profil2000.
Yep the below in the OPs original post makes it sound like it was him who developed it.

If you happen to stumble over another bug, please open an issue in the official open_agb_firm repo on GitHub or contact me via other platforms.


The above needs removed and credit to the actual dev needs to be added to the first post.
I just copy and pasted the text from his github.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    Skelletonike @ Skelletonike: just started downloading Ark on the steam deck, I had no idea the game was over 130gb now