Skip to content

Latest commit

 

History

History
432 lines (430 loc) · 15.6 KB

timeline.markdown

File metadata and controls

432 lines (430 loc) · 15.6 KB
layout title permalink nav
page
Timeline
/timeline.html
true

While mGBA has only been out for a relatively short time, it has a long history. The project started in April 2013, but many events prior led up to the project that is today known as mGBA. For information on upcoming releases, please click here.

Early 2011 Pre-History

Reflecting on a long history of using existing emulators, such as the old NO$GMB and VisualBoyAdvance, endrift starts toying with writing toy emulators for the Game Boy Advance. The GBA was specifically targeted to be emulated due to the relative complexity of the system, as compared to earlier 8-bit systems, while still not being as complex as later systems like the Nintendo DS or the Nintendo 64. Furthermore, there weren't too many mature emulators out there already, like there were for the Super Nintendo and the Sega Genesis. Plus, endrift had used VBA the most of any emulator, so it was the natural choice for improving upon.

<p>None of these early attempts amounted to anything of mention.</p>
July 2012 "I have a terrible idea!"

Inspired by the new proliferation of ever-fancier JavaScript tech demos, such as Grant Galitz's GameBoy Online and Fabrice Bellard's JavaScript PC, endrift says, "I have a terrible idea," but decides to work on it regardless of it indeed being a terrible idea: a Game Boy Advance emulator written in JavaScript. In early July, work started on what would naturally be called GBA.js.

October 2012 GBA.js beta 1

Prompted by an unceremonious porting of VBA-M to JavaScript using emscripten and WebGL, which was branded as the "world's first WebGL-based JS GBA emulator", and indeed seemingly the first "JavaScript" GBA emulator, endrift decided to release an early beta of GBA.js. It was buggy, had poor compatibility and didn't even support all of the standard GBA hardware, but it was entirely JavaScript, and was way less thrown-together than a two-week port of someone else's project. The beta was posted on Hacker News and was on the front page for the better part of a day, but ultimately did not gain much traction.

April 2013 "I have an even worse idea...!"

In the wake of the increasingly good compatibility of GBA.js, but the seeming roadblock in hopes that it may ever support the link cable, endrift has an even worse idea (by some metrics): write a fast, native emulator that can run on low-end hardware such as the Raspberry Pi and communicate with *real* Game Boy Advance consoles over I/O pins. Seeing the poor performance of VBA-M on the Raspberry Pi, this seemed like an exceedingly difficult goal. But work began anyway on a project tentatively called GBAc.

Taking large swathes of GBA.js's code, translated into C, and only fully rewriting the ARM7 core and video rendering code with optimization in mind, GBAc progressed rapidly early on, but it was still considered a side-project compared to GBA.js, so work slowed substantially after an initial push. It had very poor compatibility, and would probably never amount to anything; after all, it wouldn't support Windows, being written for embedded hardware!

November 2013 GBA.js hits release candidate, promptly dies

As GBA.js 1.0 looms, progress slows substantially. Some planned features appear to be impossible, performance is not as good as hoped, and since it's feature complete otherwise, all that remains is to touch it up in preparation for 1.0 final. However, after the first release candidate, work stops almost entirely. 1.0 never comes out, and focus shifts to the fledgling GBAc.

GBAc needs a lot of polish before it can even become presentable, but the ideal feature list keeps growing. Windows support is added, albeit as a bit of an afterthought, a Qt GUI is added to complement the barebones SDL UI, and compatibility reaches, and eventually exceeds, that of GBA.js. All future updates to GBA.js are minor bugfixes or pull requests filed by other contributors.

13 December 2014 mGBA 0.1.0

The young GBAc grows more and more by the day. It's evident that it's already ready for a public alpha, but not all the features that are desired have been implemented yet. Some features get pushed until later releases, but many of them still need to be added. Furthermore, the project doesn't even have a real name yet. GBAc was just a stand-in name, and several ideas are considered. miniGBA or microGBA are floated, due to the apparent light weight of mGBA compared to VBA-M, but with mGBA gaining size rapidly, the names are dropped and replaced with an abbreviated mGBA. The naming decision is put off for another day. As December approaches, mGBA enters crunch mode to get all the features completed before endrift starts a new job and has to put it off for awhile. With the name decision never settled, the project gets released as mGBA 0.1.0, to little fanfare.

24 January 2015 mGBA 0.1.1

Due to the rushed nature of the release, it's only natural that bugs would slip through unnoticed. With initial feedback from some early testers, a slew of bugs are fixed, and mGBA 0.1.1 is released.

3 April 2015 mGBA 0.2.0

mGBA 0.2.0 is released, two years after work on it started. It includes the addition of several major features, including:

  • Link cable support within multiple instantiations of the emulator
  • Cheat code support
  • Improved user interface
  • Internal support for many of the sensors games use, although not outwardly exposed

It was received much more warmly than 0.1, but the question was still floated as to "why" another GBA emulator is needed. Regardless, progress continues.

13 May 2015 mGBA 0.2.1

0.2.1 contains another large slew of bugfixes a month after 0.2.0 came out. 0.2.2 was intended to be released another month later, but got scrapped due to the difficulty of backporting fixes from the upcoming 0.3 branch.

August 2015 mGBA ported to Nintendo 3DS, Wii, and PlayStation Vita

Although too late to be ready for 0.3.0, mGBA gets ported as homebrew to three game platforms: the Nintendo 3DS, the Wii and the PlayStation Vita. Early alpha builds of the emulator are posted, and drive forward performance and internal architecture.

16 August 2015 mGBA 0.3.0

mGBA 0.3.0 is released, four months after 0.2.0 comes out, and with it a glut of new features, including:

  • Cartridge sensors are now properly exposed to controllers
  • The beginnings of a debug interface
  • A basic on-screen display
  • Several user-experience improvements

Many bugs are fixed as well, including all of the bugs that were fixed for the never-released 0.2.2.

24 October 2015 mGBA 0.3.1

mGBA 0.3.1 is released, containing several important bugfixes.

16 December 2015 mGBA 0.3.2

mGBA 0.3.2 is released, containing several important bugfixes.

2 February 2016 mGBA 0.4.0

mGBA 0.4.0 is released, bringing polished support for the Nintendo 3DS, Wii and PlayStation Vita, and also contains many features, including:

  • Customizable paths
  • Shaders and filters
  • Controller hotplugging and key autofire
  • OpenEmu core for OS X users and various improvements to the Libretro core
11 July 2016 mGBA 0.4.1

mGBA 0.4.1 is released, containing several important bugfixes.

19 September 2016 mGBA 0.5.0

mGBA 0.5.0 is released, with Game Boy and Game Boy Color support, and other features, including:

  • Vastly improved homebrew ports, particularly for the PlayStation Vita
  • Emulation of Vast Fame protected GBA cartridges
  • Improved cheat code support
  • Loading a temporary savegame
5 October 2016 mGBA 0.5.1

mGBA 0.5.1 is released, containing several important bugfixes.

31 December 2016 mGBA 0.5.2

mGBA 0.5.2 is released, containing several important bugfixes.

7 April 2017 medusa alpha 1

medusa alpha 1 is released, containing the first proof of concept of DS support, and announcing the plans for 2.0.

26 April 2017 medusa alpha 2

medusa alpha 2 is released, with tons of bugfixes and many new features.

29 June 2017 mGBA 0.6 beta 1

mGBA 0.6 is almost ready, but not quite. A beta is released with most of the new features, but it's still a little raw.

16 July 2017 mGBA 0.6.0

mGBA 0.6.0 is released after long delays. It contains many new features, including:

  • Game Boy multiplayer support
  • Library view
  • More debug features
  • Partial scripting support
1 October 2017 mGBA 0.6.1

mGBA 0.6.1 is released, containing several important bugfixes.

3 April 2018 mGBA 0.6.2

mGBA 0.6.2 is released, containing several important bugfixes.

14 April 2018 mGBA 0.6.3

mGBA 0.6.3 is released, patching a few major bugs introduced in 0.6.2.

26 January 2019 mGBA 0.7.0

mGBA 0.7.0 is released, containing major accuracy improvements, especially to Game Boy support, and features including:

  • Partial Super Game Boy support
  • Support for Game Boy Camera and Printer
  • Nintendo Switch port
24 February 2019 mGBA 0.7.1

mGBA 0.7.1 is released, containing several important bugfixes.

25 May 2019 mGBA 0.7.2

mGBA 0.7.2 is released, containing several important bugfixes.

15 September 2019 mGBA 0.7.3

mGBA 0.7.3 is released, containing several important bugfixes.

21 January 2020 mGBA 0.8.0

mGBA 0.8.0 is released, which contains many features, including features such as:

  • Game Boy Advance enhancements including hi-res video and XQ audio emulation
  • Support for BattleChip Gate and related accessories
  • Discord Rich Presence
  • New and enhanced debugging graphics debugging views
16 February 2020 mGBA 0.8.1

mGBA 0.8.1 is released, containing several important bugfixes.

14 June 2020 mGBA 0.8.2

mGBA 0.8.2 is released, containing several important bugfixes.

3 August 2020 mGBA 0.8.3

mGBA 0.8.3 is released, containing several important bugfixes.

29 October 2020 mGBA 0.8.4

mGBA 0.8.4 is released, containing several important bugfixes.

28 March 2021 mGBA 0.9.0

mGBA 0.9.0 is released, containing many features such as:

  • e-Reader support
  • Improved user tools such as a save converter and a bug reporter
  • Dolphin integration
18 April 2021 mGBA 0.9.1

mGBA 0.9.1 is released, containing several important bugfixes.

10 July 2021 mGBA 0.9.2

mGBA 0.9.2 is released, containing several important bugfixes.

17 December 2021 mGBA 0.9.3

mGBA 0.9.3 is released, containing several important bugfixes.

11 October 2022 mGBA 0.10.0

mGBA 0.10.0 is released, which will contain many features such as:

  • Preliminary scripting support with Lua support
  • Better support for ROM hacks and bootlegs
  • Lots of QoL improvements
10 January 2023 mGBA 0.10.1

mGBA 0.10.1 is released, containing several important bugfixes.

23 April 2023 mGBA 0.10.2

mGBA 0.10.2 is released, containing several important bugfixes.

7 January 2024 mGBA 0.10.3

mGBA 0.10.3 is released, containing several important bugfixes.

7 December 2024 mGBA 0.10.4

mGBA 0.10.4 is released, containing several important bugfixes.

ETA Early 2025 mGBA 0.11.0

Tentative release date of mGBA 0.11.0, which will contain many features, including features delayed from 0.10.0 and potentially including:

  • Custom borders
  • Expanded scripting support with overlay creation capability, per-script storage APIs and more
  • Forwarder support for 3DS and Vita ports
  • Lots of internal cleanup for making future maintenance easier
ETA Late 2025? mGBA 0.12.0

Tentative release date of mGBA 0.12.0, which will contain many features, including features delayed from 0.11.0 and potentially including:

  • BGB/NO$GBA-style interactive debugger
  • Online multiplayer support
  • Refreshed library view with gamepad support
  • Further expanded scripting support
ETA Mid 2026? mGBA 1.0.0

Tentative release date of mGBA 1.0.0, which will be feature complete GBA support with many additional features.

  • Refreshed UI for homebrew ports
  • Wireless adapter support
  • WebAssembly port
ETA Early 2027? mGBA 1.1.0

Potential exploration of more additional features and improved Game Boy compatibility:

  • TASing features
  • Additional enhancement features
  • Possibly more
ETA 2028? medusa 2.0.0

Full Nintendo DS support

ETA Unknown medusa 3.0.0

Nintendo DSi support