Latest Release: 0.10.2
Latest Development Version: 8127-17a549baf
mGBA 0.7 beta 1
Sep 24, 2018
While it’s been long enough since mGBA 0.6.0 came out that the release of mGBA 0.7.0 has seemed like it may never happen, I’m glad to say we’re finally reaching the end of mGBA 0.6’s time. Due to significant life changes, not the least of which is getting a new job with a long, tiring commute, I’ve not has as much time to do serious feature work. However, there have been plenty of changes, fixes, improvements under the hood. Though mGBA 0.7.0 is almost ready I’d like to see a signficant wave of testing and bugfixes before I deem it stable. As such, mGBA 0.7 beta 1 is now available, and hopefully the release of mGBA 0.7.0 will be out within a week or two.
mGBA Ports: Nintendo Switch
Sep 16, 2018
When homebrew hit the Wii U in 2015 I decided to not create an official port of mGBA. There were several reasons for this, but the primary reason was the fact that Nintendo was releasing GBA games in the Wii U VC. It already ran well in vWii mode, and the writing was already on the wall that the Wii U was on its way out. With the hype surrounding the next system, then only known as the NX, I decided to wait out the Wii U and see how the next hardware held up.
When the Switch eventually did launch, with little news on a Virtual Console, I decided that I would port mGBA to the Switch if Nintendo had in fact abandoned VC as the rumors claimed. As the fate of VC got more and more grim, I decided that I would release a Switch port as soon as hardware accelerated graphics arrived.
With the recent addition of 3D graphics support to libnx I decided to jump in. Porting to the Switch was relatively painless, and I’m glad to announce that early builds of mGBA for Switch are now available on the downloads page and the upcoming mGBA 0.7.0 will include official Switch support.
Apr 14, 2018
A new release of mGBA, version 0.6.3, is available. This version is a bugfix release to address some major audio and video regressions that snuck into 0.6.2. As such, all users of 0.6.2 are encouraged to update, especially if they are playing Game Boy games.
Apr 3, 2018
A new release of mGBA, version 0.6.2, is available. This version is a bugfix release, which contains many stability and accuracy fixes. An extensive list of changes follows after the cut.
Revisiting "Holy Grail" Bugs in Emulation
Mar 9, 2018
Debugging is not an easy task, and Holy Grail bugs are an exceptionally difficult class of bugs to squash. Discovering the root issue, figuring out the error in logic leading to the issue, and finally stamping out the issue without introducing new issues can be a long and arduous process. Sometimes one part can be easier than others, and sometimes every step is difficult. But common to all bugs is the required time, dedication, and ingenuity required.
It has been been a few months writing my first two articles on Holy Grail bugs, and it would seem that the articles piqued interest in these bugs, possibly bringing renewed dedication and new insights and ingenuity into the process. As such, some of the biggest, toughest bugs across multiple systems have now been solved, once and for all.
Oct 1, 2017
A new release of mGBA, version 0.6.1, is available. This version is a bugfix release, which contains many stability and accuracy fixes. An extensive list of changes follows after the cut.
"Holy Grail" Bugs in Emulation, Part 2
Jul 31, 2017
It’s been two months since first writing on Holy Grail bugs in emulation and while it did pique the interest of many emulator developers there has been little movement on solving the bugs. Lior did much more research on solving Pinball Fantasies and byuu dug up a forum post implying that there is in fact a three scanline delay when enabling background layers on the GBA. However, none of the issues have been conclusively resolved.
Of course, the previous article only covers two emulated platforms. There are far more than just two emulated systems out there and along with them a large share more incomprehensible issues.
Jul 16, 2017
After many months of delays mGBA 0.6.0 is finally available. This is a major feature release. Some of the more prominent features include a library view, translations to German, Spanish and Italian, and many new debugging features. A full list of changes follows after the cut.
Cracking the GBA BIOS
Jun 30, 2017
A computer must perform a series of initialization tasks when turned on before it becomes ready for use. Once these tasks, generally referred to as booting, are complete, control passes over to the main system. On many systems, especially on specialized systems such as video game consoles, there is a fixed set of initialization routines for the boot process stored in read-only memory inside the system. This is usually referred to as the boot ROM.
When emulating a system, there are two ways to emulate the boot process. One approach is to initialize the emulated state to reflect the state of an already booted system. But from an accuracy-focused, low-level emulation perspective, starting the emulation from a clean slate and run the boot ROM directly is often more desirable.
There are advantages and disadvantages to both approaches, but the most notable disadvantage to the boot ROM approach is that it necessitates having a copy of the boot ROM itself. Since the boot ROM is actual code and not a system design, it is potentially copyrightable and leads to concerns with distribution. Thus many emulators that use a boot ROM require users to obtain a copy separately from the emulator.
Further, many systems contain protections to prevent the boot ROM from being directly accessed or dumped. All Nintendo handhelds have protections. But due to the complexity of these boot ROMs many emulators actually require them to be provided to run at all. However, these protections make it difficult to dump the boot ROMs.
mGBA 0.6 beta 1
Jun 29, 2017
mGBA 0.6.0 has been long delayed. It’s dense with new features and unfortunately not all of those features are hugely well-tested. However, it’s almost ready for release. Before a stable release, more comprehensive testing is needed. In the getting out what’s already working and promoting testing, mGBA 0.6 beta 1 is now available. The final release of mGBA 0.6.0 should be out within a few weeks.
Subscribe via RSS