Releases: profi200/open_agb_firm
open_agb_firm beta build 2024-07-30
What's Changed
- 5356e5c Implemented full gamma correction for top LCDs which improves colors noticeably without crushing details in shadows. Colors should no longer look too dark regardless of the colorProfile setting. Note that due to wildly varying color temperatures and LCD types this will not make GBA games look exactly like on your monitor with or without color correction. Also note that the gamma curve is not a perfect fit for IPS New 3DS XL consoles since they have very bad gamma near shadows but it's a very noticeable improvement nonetheless.
- A side effect of the new gamma correction is that the gbaGamma, lcdGamma, brightness and contrast settings are disabled for now. They will be reimplemented in the color profile settings later.
Example of what the gamma curve correction does. The brighter version is roughly how the top LCD shows colors without correction.
Full Changelog: beta_2024-07-25...beta_2024-07-30
open_agb_firm beta build 2024-07-25
What's Changed
- Refactor IPS patching by @Nemris in #163
- Video dithering has been fully disabled.
- [libn3ds] Fixed a GPIO handling bug that may or may not degrade New 3DS hardware.
- Screenshots now only contain the frame data itself and screenshots are in 5-bit RGB format which means they are 100% lossless. Beware of rounding errors when converting the .bmp files. GIMP is one program that converts them correctly. ImageMagick does not.
- Added experimental support for true color correction thanks to hunterk and Pokefan531 for their amazing libretro shaders. Please note that 2/3DS LCDs are generally poor quality and don't come correctly calibrated from factory so the actual look might not match the LCD on a GBA but it's a real improvement for games like Golden Sun which look awful otherwise (see below). Also note that enabling color correction will shorten battery runtime (Testers welcome. I didn't measure battery runtime with and without.). For more instructions refer to the colorProfile setting in the README.
More comparisons: https://i.ibb.co/6Z8tx29/all-sbs.png - Other small changes under the hood which don't affect users.
New Contributors
open_agb_firm alpha build 2023-10-6
It's been a while since i made a new release. Quite a few small changes have been made underneath since last year.
If you have a bit of free time please participate in this little poll: #135
What's Changed
- 78fd101 ROMs bigger than 32 MiB are now allowed but data beyond 32 MiB is cut off and a warning is displayed. This will make certain ROM hacks load at the cost of likely crashing later on. You have been warned.
- 9bd9497 Taking screenshots no longer freeze occasionally and they are created with date and time in the name.
- Brightness Control by @spitzeqc in #74
- Automatic ROM Patching by @spitzeqc in #75
- a70673d Added a tool that can simulate hardware scaling for those who want to experiment with the hardware scaling on PC.
- 726a4f3 Headphone detection should no longer fail if there is an integrated microphone/buttons (4 pole TRRS plugs).
- 014c341 Button remapping has been added. See the README for details. Circle-Pad mappings are no longer enabled by default to reduce input lag.
- 8ecc7ce Added border support for 1:1 scaling mode. I didn't document this in the README yet, sorry. Refer to this post for instructions in the meantime.
- cf7d191 Added software volume control and audio output override. See the README for details.
- GBA database updates by @HTV04 in #128
- dc5ac17 Fixed ROM mirroring for 8 mbit games. Thanks to @endrift.
- An audio filter that distorted GBA sound slightly has been disabled. In practice this change makes only a minor difference and does not fix the aliasing.
New Contributors
Full Changelog: alpha_2022-4-25...alpha_2023-10-6
open_agb_firm alpha build 2022-4-25
This is a build from the master branch for the impatient.
- 9756e2e Added configurable scaling so only 1 build is needed instead of one per scaling method. See the README on how to configure this.
- a9fcf85 Fixed the missing newline in the default config.ini.
- 782596f firmtool support was added to the build system thanks to @Midnoclose.
- 2222e54 Fixed a bug that may cause the file browser not to display all 1000 files.
- 4a6603d Added day of week calculation for the GBA RTC.
- Other non-user facing improvements/fixes.
The save type database was not created by me and i can't vouch for its completeness or accuracy (i have not heard any complaints so far). Keep that in mind when using this build and backup your saves.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
The used scale matrix is the default "Sharp + edge enhance" one.
Known issues
If the video output freezes after making a screenshot try pressing the HOME button. This works most of the time. This is due to a hard to track down bug and will be fixed later.
Full Changelog: alpha_2021-12-24...alpha_2022-4-25
open_agb_firm alpha build 2021-12-24
This is a build from the master branch for the impatient.
- b09e3a0 Increased file browser entry limit to 1000 per folder(the real limit depends on the average file name length of all files).
- 37f3df4 Autoboot support has been added. Place
autoboot.txt
in/3ds/open_agb_firm
containing the ROM path in a single line. Example path:sdmc:/rom.gba
- 247cb19 All savegames and per-game configs are now stored under
/3ds/open_agb_firm/saves
. - 15cf1bf Per game config support has been added and with it multiple savegame slot support (up to 10). Currently this is the only officially supported config option for games. Place
romName.ini
(replace romName with the ROM file name) in/3ds/open_agb_firm/saves
. See the README under the Game section.
The save type database was not created by me and i can't vouch for its completeness or accuracy (i have not heard any complaints so far). Keep that in mind when using this build and backup your saves.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
The used scale matrix is the default "Sharp + edge enhance" one.
Known issues
If the video output freezes after making a screenshot try pressing the HOME button. This works most of the time. This is due to a hard to track down bug and will be fixed later.
Full Changelog: alpha_2021-12-9...alpha_2021-12-24
open_agb_firm alpha build 2021-12-9
This is a build from the master branch for the impatient.
- A bug got fixed that made games with no save type unplayable (white screen/other buggy behavior).
The save type database was not created by me and i can't vouch for its completeness or accuracy (i have not heard any complaints so far). Keep that in mind when using this build and backup your saves.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
The used scale matrix is the default "Sharp + edge enhance" one.
Known issues
If the video output freezes after making a screenshot try pressing the HOME button. This works most of the time. This is due to a hard to track down bug and will be fixed later.
Full Changelog: alpha_2021-11-21...alpha_2021-12-9
open_agb_firm alpha build 2021-11-21
This is a build from the master branch for the impatient.
- #35 A complete save type database has been added by @HTV04. A number of other config.ini changes have been made allowing you to set brightness higher than previously for example (at your own risk). See the pull request description for details.
- #40 Support for Everdrive GBA-style homebrew save type overrides was added by @exelotl.
The save type database was not created by me and i can't vouch for its completeness or accuracy (i have not heard any complaints so far). Keep that in mind when using this build and backup your saves.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
The used scale matrix is the default "Sharp + edge enhance" one.
Known issues
If the video output freezes after making a screenshot try pressing the HOME button. This works most of the time. This is due to a hard to track down bug and will be fixed later.
Full Changelog: alpha_2020-09-08...alpha_2021-11-21
open_agb_firm alpha build 2020-12-24
This is a build from the kernel_experiments branch for the impatient.
- 5f25739 Proper ROM mirroring for all 8 Mbit games and direct boot (no BIOS intro) should have perfect compatibility now. This breaks mGBA's test suite ROM out of bounds tests again because the ROM is treated as 8 Mbit ROM (different padding from what it expects).
- dd68d38 31bbcbf 2941397 Basic config file support. A few settings can be changed in "/3ds/open_agb_firm/config.ini" now. If you want the same gamma as previous releases change "outGamma=..." to "outGamma=1.21". Results may vary depending on what LCD panel your 3DS uses. The default of 1.54 is tuned for the old 3DS Sharp panel.
- 96eebb0 fatfs got updated to R0.14.
The screenshot/texture dump location is now "/3ds/open_agb_firm". This will change to a separate "screenshots" dir once screenshots are created by date. If the video output freezes after making a screenshot try pressing the HOME button. This works most of the time. This is due to a hard to track down bug and will be fixed later.
This can and will destroy savegames for a few games due to broken save type detection so backup your saves! You have been warned.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
The used scale matrix is the default "Sharp interpolated" one.
open_agb_firm alpha build 2020-10-26
This is a build from the kernel_experiments branch for the impatient.
- 8fdc74a A temporary workaround has been put in place to prevent panics using bootloaders with incompatible screen init.
- 07f6f01 Mimic ROM out-of-bounds reads more accurately (may fix games relying on it) including mirroring needed for the Classic NES Series games.
- 179ea50 You can now dump the GBA frame texture (pre-GPU processing) to "texture_dump.bmp" on the root of your SD card by pressing Y.
- ac33d98 Fixed broken file browser sorting.
- c87769a open_agb_firm now remembers the last dir you launched a ROM from.
This can and will destroy savegames for a few games due to broken save type detection so backup your saves! You have been warned.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
In the archive included are 2 builds. One with BIOS intro and one without. The used scale matrix is the default "Sharp interpolated" one.
open_agb_firm alpha build 2020-09-08
This is a build from the kernel_experiments branch for the impatient.
- There is no real user facing change in this release except this should fix all possible frame drops including the ones caused by MCU events.
This can and will destroy savegames for a few games due to broken save type detection so backup your saves! You have been warned.
Also note that EEPROM savegames from some emulators or even flashcarts are incompatible because they are laid out wrong (every 8 bytes block of data is reversed). This tool can fix that.
In the archive included are 2 builds. One with BIOS intro and one without. The used scale matrix is the default "Sharp interpolated" one.
Note:
I got side tracked with this kernel project which i was working on for quite some time. It was always meant to go into this code base and eventually i will split this into open_agb_firm and lib3ds. I will try and get back soon to actually doing real improvements to this project.