Homebrew CitrAGB - 3DS GBA Emulator (WIP)

-Hero-

Active Member
Newcomer
Joined
Nov 5, 2012
Messages
44
Trophies
0
Age
29
XP
162
Country
United States
Just tried this today with youtubehax + FF6 Advance (with sound restoration patch) + Old3DS 9.9. Runs pretty slow with some graphical bugs.

I know it's still a WIP but I'm definitely looking forward to new updates.
 
Last edited by -Hero-,

AtlasFontaine

Well-Known Member
Member
Joined
Jul 18, 2015
Messages
1,095
Trophies
0
Age
26
Location
Venezuela-Zulia.
XP
865
Country
Venezuela
If I understand correctly it's pseudo dynarec on the latest firmwares.
e6c98abbfd9f75e3f26c1b64a4fa4545.500x399x7.gif

My attention is totally caughted.
 

RaMon90

Well-Known Member
Member
Joined
Dec 3, 2013
Messages
592
Trophies
0
XP
239
Country
Italy
After reading some latest posts, I tried myself and its slow or it blocks sometimes for me. Is it because of bios problem? Im not using the original one but the one shiny posted.
 

ChicagoMel

Well-Known Member
Member
Joined
Sep 1, 2015
Messages
524
Trophies
0
Age
42
XP
863
Country
United States
Trying it myself....Shiny's doesn't work for me either.

How do I turn the bios file to bin? The "proper dump" one at Emuparadise isn't in bin format. What am I missing?
 

riverscn

Active Member
Newcomer
Joined
Apr 8, 2015
Messages
27
Trophies
0
Age
35
XP
111
Country
Switzerland
CitrAGB's speed is much better than retroarch mgba, especially with sound. Mgba's sound is laggy.

Citr runs Mother 3 perfectly, while mgba cannot.
Both are a possibility, I'd personally recommend trying the RetroArch gpsp core which actually has both of those as well as the speed increases in CitrAGB.
 

HansPlayz

New Member
Newbie
Joined
Oct 17, 2015
Messages
1
Trophies
0
Age
24
XP
51
Country
Norway
Greets all,

So I've been working on a thing for a while. I had originally abandoned the project because I thought it was unable to be done without the use of dynamic recompilation, however as it turns out it was in fact possible. I present my 3DS GBA Emulator: CitrAGB, a 3DS GBA emulator based on gpsp.

t0wIZum.png

ht0cjXh.png


As of now, compatibility is technically on-par with whatever gpsp's interpreter is able to handle, however, due to the nature of the port some games will not run or crash on particular parts. Flipping the screen to it's proper orientation did a bit of damage which might take a bit to get fixed up, and a lot of things still need implementation. But, on the plus side, many games that do run actually run fairly well, around 50% speed in optimal cases, or as low as 20% if the game uses extremely inefficient idle loops. In the future I also plan on hopefully porting gpsp's dynrec CPU to be able to work on the 3DS as well, once smea updated ninjhax to allow developers to set RAM pages executable. This will increase emulation speed dramatically.

Controls:
A, B, Start, Select, L, R, and the D/C-Pad all map out to their rightful GBA buttons. Y is bound to select, and X currently exits back to the homebrew menu

Sauce Code:
You can find the source code for CitrAGB on my GitHub here. Once again, this is very much a work in progress and extremely buggy, but the bugs will be fixed and the emulator refined with time. However, if you encounter bugs let me know the game name and when the bug occurs so I have games to test against while fixing bugs.

Installation Instructions:

For Ninjhax:
First, grab the .3dsx here and rename it/place it in sd:/3ds/<name of .3dsx>. You can also grab the smdh here and give it the same name and place it in the same directory as the 3dsx. Next, download game_config.txt from here and a sample homebrew application here to make sure everything is set up right before you run regular GBA ROMs. The last thing you will need is gba_bios.bin. You can either dump this/find this online, or you can use Normatt's open source GBA bios here. A proper GBA bios dump is preferred, Normatt's bios has shown issues with some games. Once you have gba_bios.bin, place it either in the root of your SD card or in /gba.

For CFW:
Grab the .cia from here and place it anywhere on your SD card. Use a .cia manager such as FBI, BRM, or DevMen to install it. Next, download game_config.txt from here and a sample homebrew application here to make sure everything is set up right before you run regular GBA ROMs. The last thing you will need is gba_bios.bin. You can either dump this/find this online, or you can use Normatt's open source GBA bios here. A proper GBA bios dump is preferred, although Normatt's bios hasn't shown any issues as of yet. Once you have gba_bios.bin, place it either in the root of your SD card or in /gba.

After downloading everything, your SD card structure should look something like this:
game_config.txt
gba_bios.bin
demo.gba
/3ds/<3dsx name>/<3dsx name>.3dsx
(3dsx only)
/3ds/<3dsx name>/<3dsx name>.smdh (3dsx only)

Currently Known Bugs:
  • Any video issues which may arise
Special Thanks
Big thanks to Normatt, smea, yellows8 and plutoo for helping me get this working. Probably wouldn't have got anywhere in some places without your help. Special thanks to @aliaspider for pointing out a fix for .cia.
Greets all,

So I've been working on a thing for a while. I had originally abandoned the project because I thought it was unable to be done without the use of dynamic recompilation, however as it turns out it was in fact possible. I present my 3DS GBA Emulator: CitrAGB, a 3DS GBA emulator based on gpsp.

t0wIZum.png

ht0cjXh.png


As of now, compatibility is technically on-par with whatever gpsp's interpreter is able to handle, however, due to the nature of the port some games will not run or crash on particular parts. Flipping the screen to it's proper orientation did a bit of damage which might take a bit to get fixed up, and a lot of things still need implementation. But, on the plus side, many games that do run actually run fairly well, around 50% speed in optimal cases, or as low as 20% if the game uses extremely inefficient idle loops. In the future I also plan on hopefully porting gpsp's dynrec CPU to be able to work on the 3DS as well, once smea updated ninjhax to allow developers to set RAM pages executable. This will increase emulation speed dramatically.

Controls:
A, B, Start, Select, L, R, and the D/C-Pad all map out to their rightful GBA buttons. Y is bound to select, and X currently exits back to the homebrew menu

Sauce Code:
You can find the source code for CitrAGB on my GitHub here. Once again, this is very much a work in progress and extremely buggy, but the bugs will be fixed and the emulator refined with time. However, if you encounter bugs let me know the game name and when the bug occurs so I have games to test against while fixing bugs.

Installation Instructions:

For Ninjhax:
First, grab the .3dsx here and rename it/place it in sd:/3ds/<name of .3dsx>. You can also grab the smdh here and give it the same name and place it in the same directory as the 3dsx. Next, download game_config.txt from here and a sample homebrew application here to make sure everything is set up right before you run regular GBA ROMs. The last thing you will need is gba_bios.bin. You can either dump this/find this online, or you can use Normatt's open source GBA bios here. A proper GBA bios dump is preferred, Normatt's bios has shown issues with some games. Once you have gba_bios.bin, place it either in the root of your SD card or in /gba.

For CFW:
Grab the .cia from here and place it anywhere on your SD card. Use a .cia manager such as FBI, BRM, or DevMen to install it. Next, download game_config.txt from here and a sample homebrew application here to make sure everything is set up right before you run regular GBA ROMs. The last thing you will need is gba_bios.bin. You can either dump this/find this online, or you can use Normatt's open source GBA bios here. A proper GBA bios dump is preferred, although Normatt's bios hasn't shown any issues as of yet. Once you have gba_bios.bin, place it either in the root of your SD card or in /gba.

After downloading everything, your SD card structure should look something like this:
game_config.txt
gba_bios.bin
demo.gba
/3ds/<3dsx name>/<3dsx name>.3dsx
(3dsx only)
/3ds/<3dsx name>/<3dsx name>.smdh (3dsx only)

Currently Known Bugs:
  • Any video issues which may arise
Special Thanks
Big thanks to Normatt, smea, yellows8 and plutoo for helping me get this working. Probably wouldn't have got anywhere in some places without your help. Special thanks to @aliaspider for pointing out a fix for .cia.

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

ups

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

when i try to run a rom the square turns all white
 

Lunatics

Well-Known Member
Member
Joined
Aug 9, 2010
Messages
227
Trophies
1
XP
964
Country
United States
Will this (or any) GBA emulator work on a N3DS using gateway/emunand or would I have to use a CFW to use one of these emulators or .cia gba games.
 

xmosh

Active Member
Newcomer
Joined
Sep 14, 2015
Messages
30
Trophies
0
Age
31
XP
71
Country
Mexico
I have the Citra working, but someday I only get black screen with the cia version on New 3DS XL 9.2 with pastacfw..
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Psi likes to milk beavers lol