profi200 / open_agb_firm Goto Github PK
View Code? Open in Web Editor NEWopen_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.
License: GNU General Public License v3.0
open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.
License: GNU General Public License v3.0
It would be ideal if the selected ROM's filename scrolled if it was longer than the width of the screen.
The name of this project was the first that came to my mind when i had to decide but i'm not very good in giving names and i figured the name is not so easy to type so i decided it should be changed. However i need ideas for a proper name. Here are ideas i got so far from people on GodMode9 IRC/Discord:
openAgbFirm (it was a joke but might aswell include it)
YellowGba (CTR -> Citra -> Citrus -> yellow)
At the end i will probably make a poll with the most popular ones (if i get many, otherwise all).
Title is self-explanatory.
This game has saving support but doesn't include any of the typical save type strings, so it would need to be hardcoded as an exception. The publisher Ubisoft decided to pull the EEPROM before release, presumably as a cost-cutting measure, but saving support was left in the game and I can confirm saving works on real GBA hardware with a flash cart.
With apologies, I have no idea what save type the game expects, so I'm not any help in terms of getting this working.
in "the homebrew launcher" ,open_agb_firm folder have not any program to run ,can hide "open_agb_firm"in "the homebrew launcher",thanks!
Would it be possible to add a config option to display on the bottom screen? (also a way to change settings without removing the sd card would be nice)
Using the X/Y buttons would be really useful in certain games. I tried remapping buttons by modifying the source code and compiling it, but it only affected the file browser. Is it possible to implement button remapping?
With the last release, when I launch a game with no save type (ie: Finding Nemo, Britney's Dance Beat...), it leads to a white screen and I can't play. I have to either disable gba_db.bin or mess with bool saveOverride true and then select another random save type which is not 15.
I know, it's an absolutely horrible port, but bear with me.
Sonic The Hedgehog - Genesis doesn't seem to be able to save. According to No-Intro, it uses EEPROM_v124, like Mario & Luigi: Superstar Saga does.
Upon booting the game, the effects of the game being unable to save start to appear. The music and sound options are set to off, and the game has a "Resume" button that isn't supposed to appear yet.
When playing the game, the "Saving..." pop-up still appears as if saving were working, but it's probably in vain, because after I turned the game off and checked my SD card, there was no .sav file.
I guess this has something to do with the buggy EEPROM detection. Can this be fixed at all before a save type database is implemented?
Speaking of save type databases, I believe VBA-M has one. Not sure about mGBA though.
I don't know if this is just me or not, but the backlight brightness, even at 64, seems a little too dark. Is the limit really 64? I tried checking GodMode9's code and I think it had a limit of 210.
Also, a bit unrelated, but what's the best outGamma setting for "accurate" colors? I set mine to 2.2, same as the inGamma setting, and that seems to work well. Don't know if this is the right gamma to set it to, though.
When you try to save these games, it doesn't work. With grunty's revenge, it freezes when you try to save, with grand theft auto advance it tells you something like "the save is corrupted, you cannot save.
Save type hardcoded to 32 KiB (256k) SRAM. Unknown how save type detection will be done.
Why not use a native_firm application to select a rom and write the path (to rom and save) and the save type to "open_agb_firm.ini"? Then trigger a reboot to open_agb_firm and it loads the ini file. I figure in native_firm there's more room to work with. You might even be able to write the config to ram since it isn't cleared on a reboot.
Is it possible for a newer version to be able to press a combination of buttons to select another game instead of having to turn off the console, also it would be nice if open_agb_firm remembered where it was the last folder you loaded a game
When booting open_agb_firm (I used the no intro version) despite my headphones being plugged in, the audio still streamed through the system's built in speakers. Using an old 3ds if that matters.
One issue I have encountered when using this is that the Save Format isn't compatible with GBArunner2 and if you try to load Games with Saves that were played in GBArunner2 it wipes the save clean. The same thing happens when you load saves from games played on Open Agb firm.
Hopefully this issue can be fixed soon.
This issue Also doubles as a PSA. Do not try to load saves from games played in GBArunner2 in Open Agb firm. I recommend putting games you're going to play in AGB firm in a separate folder from games with GBArunner2.
basically gba game to load other gba games so you dont have to reboot
It would be nice if the 3ds slider was able to control brightness, so you didn't have to go into the settings in order to change it. Also, the lowest value should have the screen totally off. this would make it easy to turn off the screen when you close your 3ds, so you wouldn't waste tons of battery life on the screen when you're not using it.
I have a folder that has 543 ROMs, and the file browser seems to cap at maximum 512 listings,cutting out some ROMs.
Workaround is to divide the ROMs into more folders.
Is it possible of using bottom screen to play, meanwhile ratio fit.
Ratio fitting at bottom screen is ture fitting.
I believe there should be some way to use 1:1 video scaling. (Personally, I do not like the smeared look of non-integer scaling and am willing to sacrifice screen real estate for sharper pixels.)
Since there is currently no configuration UI, this could be implemented as a separate build, but I understand this would be another build and added effort for binary releases. So, this is an enhancement request that would be nice-to-have.
Just wondering if it would it be possible to display the build or version information of open_agb_firm somewhere on the file browser screen so it's easy to know what version is running (and less confusing when upgrading). Thanks!
Attempting to load open_agb_firm from the fastboot3DS v1.2 menu results in the screens being turned off. Presumably it's running, since pressing B shuts the system off, but with the screens off it's rather difficult to do anything.
This does not happen if open_agb_firm is assigned to a key combo and the key combo is used to boot open_agb_firm. It also doesn't happen if loaded through GodMode9 v1.9.1.
I'm using an old 3ds, I tried both the intro version and no intro version. When booted, the 3ds simply boots to a black screen, both top and bottom. When any buttons are pressed, the system shuts down.
See this for reference https://mgba.io//2014/12/28/classic-nes/
Is it possible to implement the soft game reset like on real hardware?
The L + R + Start + Select reset combo.
It would be more convenient than having to restart the console each time! Not sure if the hardware allows it tho.
Could the release format support MultiUpdater? MultiUpdater does not work with 7z, only zip. Switching to zip or having the firm file not be in an archive would fix this.
I'm running open_agb_firm alpha build 2020-09-08 on a new 3ds (non-xl) and the first time I launch it, it works perfectly; I see the file browser on the lower screen and can load all roms no problem (it runs really nicely!!). When I'm done playing, I press the power button to turn off my 3ds and then press power again (while holding start) and both screens just stay black and the blue power LED stays on solid. I have to pull the battery to get around the crash / hang. Then when I power on again the next time while holding start everything works fine again. Of course I have to reset my system date and time every time I pull the battery, otherwise everything works fine but would be nice if it worked properly every time. Is anyone else experiencing the same issue?
EDIT: I noticed I can avoid the crash / hang if I boot into regular 3ds mode after loading open_agb_firm and powering off. In other words I cannot load open_agb_firm twice consecutively without crashing my system, but I can run it multiple times by booting into regular 3ds mode after every run of open_ags_firm.
Is it a possibility to add filter options editable in the configuration? I'm one of the few who actually like full screen gba with bilinear filtering XP
Hi!
There is any way to use different folder for savegames? Maybe in a config setting?
This can be great to have less mess in folders (Or, for me for example, can share gPSP savefiles and open_agb_firm ones, that are compatible as is for can I see)
Thanks :)
PocketNES doesn't save.
It would be so nice if you could take time to fix the issue.
I want to use load and save states.
There's no texture_dump.bmp in /3ds/open_agb_firm/ after pressing select + Y.
I used the latest .firm from the releases page and it just has a black screen. The power light is on but no other light.
Is there a certain place I should put the .firm or the roms? At the minute my firm is in the payloads folder
I tried changing the video scaler
options in the config.ini
between 0, 1, and 2 but the output appears exactly the same in every case. I even dumped the screen output on each mode and as far as I can tell they're not different from each other in any way. I would prefer to play with a bilinear filtered output. Is this config option just not supported yet?
When i using it,the ROM Had to be named in English,it not very convenient fou us.Can authors add support for other languages to display other languages in ROM list,suca as japanese,chinese,korean,etc.
plz
Support Gameboy Rom?
Now, the roms run in a half bright mode. So, it's sort of dark. Changing the brightness in the n3ds settings doesn't help, it is full bright there already. Thx.
The Classic NES re-releases rely on a multitude of quirks and edge-cases as anti-emulation measures. The cartridges are particularly unique in that they are the only Game Paks to mirror out-of-bounds ROM areas. Without mirroring, in-game controls refuse to work correctly and only accept input somewhat sporadically. At the moment, open_agb_firm pads the out-of-bounds ROM area with 0xFFFFFFFF, which is incorrect behavior for both Classic NES and regular Game Paks.
Hi!
I've been wondering if it would be possible to receive and immediately launch a GBA rom over my local network? E.g. using a simple protocol like 3dslink as supported by the standard hbmenu.
As a GBA homebrew developer, I could imagine this would become the fastest and most ideal way to test my game on real hardware!
Many thanks for your amazing work thus far :)
It is just a question, I know nothing about hard/software for DS/3/2DS consoles but would be great to replace GBARunner2 with something like this on DSi/XL/LL. :)
I know you have way bigger fish to fry, but hoping you can squeeze in hold-to-scroll in the file browser in a future release. It would make locating roms within large directories so much easier. And maybe the option to press dpad right and left to page up and down? Thanks again so much for the amazing work you are doing!
If you try to boot this from Luma with only OAF in the payload folder it just shuts off your 3DS. In fastboot3ds trying to boot it with a hotkey also shuts off the system but if you attempt to boot it from the menu it locks up. The only way I've gotten it to boot is with multiple firms and the Luma chainloader.
is it possible to add frame borders? the same way it works on the game boy color virtual console.
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:
To make this easier i will probably make a build including a save type selector later.
This is subject to change.
If I boot open_agb_firm and run a game, then power off, then try to boot into open_agb_firm again, it just hangs. If I then boot into the normal system software, let it come up, power down, then boot into open_agb_firm again, it works fine (but the problem will still come back if I try to do it twice). I didn't have this problem before updating to build 2020-09-08.
I'm using an O3DS XL, Luma should be on the latest version. This is using the version of open_agb_firm that has the GBA bios splash.
Latest commit merged those two lines, being:
scaler=2gbaGamma=2.2
lcdGamma=1.54
Instead of:
scaler=2
gbaGamma=2.2
lcdGamma=1.54
Unknown why. Disabling the BIOS makes this game hang on random boot attempts. No solution yet.
Can a GBA rom loaded with open_agb_firm access the extra buttons (X, Y, perhaps even touchscreen?)?
I've tried reading the halfword at 0x04000136 (NDS EXTKEYIN) with no luck. I've also tried to read it from the addresses REG_HID_PAD, REG_LGY_PAD_VAL (which maybe makes no sense from the .gba side).
One thing I noticed is that pressing Y freezes screen for some frames. In every game, even at boot logo. Why is that?
Tested with every save type, every try resulted in a softlock that doesn't allow to press Start into the Title Screen to progress further into the game.
Tested in latest commit 391bc4d
I am wondering if the possibility exists of adding a screenshot feature to open_agb_firm. Not only could it be a cool feature, on-device screenshots would drastically lower difficulty for those wanting to run tests to reverse-engineer the GBA PPU.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.