mGBA
Latest Release: 0.9.3
Latest Development Version: 7580-1bf1a9702
-
Scripting support now available in dev builds
May 29, 2022
Read moreThe highly-anticipated scripting feature, which has been in development for the past several months, has now been merged and is available in development builds. With this merged, users can now write and run scripts in Lua, as is possible in some other emulators. Currently, there is only preliminary support and many features are not yet exposed. These builds include an example script that shows how to interact with the emulator, and can pull information about the party from the US releases of the first three Pokémon generations. There is also documentation on the current API available on its own page.
As this feature is still nascent, we’re looking for feedback on how to improve it and what should be added in the future. For this, there is now a #scripting channel in the Discord server (linked on the sidebar) to discuss writing scripts or requesting support or new features. If you’ve wanted to write scripts for mGBA, now’s the time to start looking into it!
The current features are currently implemented:
- Read/write access to emulator memory (via the full address space, or via memory domains) and registers
- Save state saving and loading
- Getting and updating the currently pressed buttons
- Getting various informational state about the emulated game
- Taking a screenshot to file
- Various callbacks, such as per-frame, when the core is reset, right before keys are read, and more
- Instruction advance, frame advance, and resetting the emulation state
- A console for logging, and buffers for displaying textual information to the user
-
mGBA 0.9.3
Dec 17, 2021
Read moreA new release of mGBA, version 0.9.3 is available. This version is a bugfix release, which contains many important fixes. Importantly, random freezing with the OpenGL display driver, mostly when using fast forward, which had only partially been fixed in 0.9.2, should now be properly fixed. An extensive list of changes follows after the cut.
-
mGBA 0.9.2
Jul 10, 2021
Read moreA new release of mGBA, version 0.9.2 is available. This version is a bugfix release, which contains many important fixes. Importantly, random freezing with the OpenGL display driver, especially when using fast forward, is fixed. An extensive list of changes follows after the cut.
-
mGBA 0.9.1
Apr 18, 2021
Read moreA new release of mGBA, version 0.9.1, is available. This version is a bugfix release, which contains many important fixes for bugs not caught before 0.9.0 was released. Importantly, fixes for save states affecting both GBA and GBC, the OpenGL renderer lagging when fast-forwarding, and improved detection of Pokémon ROM hacks. An extensive list of changes follows after the cut.
-
mGBA 0.9.0
Mar 28, 2021
Read moreAfter the seemingly longest year possible, mGBA 0.9.0 is finally here. It’s been a difficult year for the entire world and that definitely had an impact on development this cycle too. As progress marched on with mGBA for the first few months of last year, I was able to release 0.8.1 through 0.8.3 picking up most of the bug fixes I made along the way towards 0.9. After several months there were lots changes under the surface, but not many new user-visible features. In the interest of releasing a properly exciting new version of mGBA, I decided to hold off on releasing 0.9 until it was polished and featureful. During the latter half of the year I finally started a push for features, and released 0.8.4 as the last of the 0.8 line. Remember, mGBA currently only has one major developer, so things can take quite a long time to finish, and if I’m not actively working on it any given week then there isn’t progress made that week. While this did lead to 0.9 being effectively “coming soon” for many, many months in a row, it has led to what I believe to be an extremely polished release, so I’m now happy to announce that mGBA 0.9.0 is done and out.
Though it has dozens and fixes and tweaks under the hood, there are some pretty major features to announce, including full e-Reader support, some new enhanced utilities such as a save type converter and a bug report tool, and more. The most exciting features added in this release are detailed after the cut, along with a full change log.
-
mGBA 0.8.4
Oct 29, 2020
Read moreA new release of mGBA, version 0.8.4, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, an issue in the 3DS version that would lead to the 3DS crashing when exiting the emulator, and an issue that would lead mGBA to appearing in a language other than English by default on macOS despite the system language being set to English, have been fixed. The previously mentioned bug with Advance Wars is still present in 0.8.4. It has also been discovered to affect Final Fantasy I. This can be worked around by using a dump of the official BIOS, or using a development build, also available on the download page, which has the bug fixed. An extensive list of changes follows after the cut.
-
mGBA 0.8.3
Aug 3, 2020
Read moreA new release of mGBA, version 0.8.3, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, an issue leading to stuttered rendering and eventually a crash, mostly on AMD GPUs, has been fixed. However, there is an outstanding bug in all 0.8 versions that causes flickering in Advance Wars games. This can be worked around by using a dump of the official BIOS, or using 0.7.3 until it is fixed. An extensive list of changes follows after the cut.
-
mGBA 0.8.2
Jun 14, 2020
Read moreA new release of mGBA, version 0.8.2, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, several rendering edge cases were fixed in both the default renderer and the OpenGL renderer. An extensive list of changes follows after the cut.
-
mGBA 0.8.1
Feb 16, 2020
Read moreA new release of mGBA, version 0.8.1, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, many Qt frontend bugs have been fixed, and the SDL version was updated. An extensive list of changes follows after the cut.
-
The Infinite Loop That Wasn't: A Holy Grail Bug Story
Jan 25, 2020
Read moreOnce upon a time there was a game for the GBA by the name of Hello Kitty Collection: Miracle Fashion Maker. It was a cutesy game based on the famous Sanrio Hello Kitty franchise, developed by Access. But hidden beneath the surface of the seemingly innocuous title was an insidious problem. Somehow, this simple game just did not boot in any GBA emulator. This alone was enough to qualify it as a Holy Grail bug. As with all Holy Grail bugs the bug itself was absolutely baffling. Here the explanation was simple: sometime during the game’s startup sequence, it enters a loop that can never exit due to expecting a specific value reading out of memory that does not exist. While many games have similar bugs, such as the intro sequence in the high-profile game The Legend of Zelda: The Minish Cap, those rely on a specific behavior from reading invalid memory addresses. But this loop seemed to defy that behavior. And yet, it works on actual hardware. Moreover, this same bug also occurs in when loading a save in Sonic Pinball Party after a cold boot. Could the expectation of these invalid memory accesses be wrong somehow? But how?
Subscribe via RSS