Draft:MGBA

mGBA is an open-source emulator that supports Game Boy Advance emulation, with later revisions adding backwards compatibility with Game Boy and Game Boy Color. The emulator is written in the programming languages C, and is designed for Microsoft Windows, macOS, Linux, Ubuntu, and FreeBSD. Official ports on Nintendo 3DS, Nintendo Switch, Wii, and PlayStation Vita were released through homebrew applications.

mGBA initially gained criticism due to the existence of other capable Game Boy Advance emulators such as the VisualBoyAdvance. After multiple revisions and continued support, the mGBA has since experienced a rise in popularity, with its core being used in multi-system emulators such as OpenEmu, RetroArch, and BizHawk. The emulator is also compatible with Dolphin, implementing the Game Boy Advance link cable through connectivity with GameCube games.

History
In 2012, Vicki Pfau, known as "endrift" online, was inspired to create a Game Boy Advance emulator in JavaScript, hoping to improve on previous emulators such as the VisualBoyAdvance. GBA.js started development in July of 2012 and a beta was published to Hacker News in October of the same year. The JavaScript code would later be converted to C, with the hopes of the software communicating on native hardware and being able to run competently on a Raspberry Pi. GBA.js would be put on an indefinite hold to focus on GBAc, later titled mGBA. The first version of mGBA, mGBA 0.1.0, was released on December 13, 2014.

Versions and Releases
mGBA 0.1.0 was the first official release of mGBA.

mGBA 0.1.1 released on January 24, 2015, fixing general issues after the first official version released one month earlier.

mGBA 0.2.0 released on April 3, 2015 and included several new features.

mGBA 0.2.1 released on, fixing general issues one month after version 0.2.0. [BUNDLE WITH OTHER VERSION]

mGBA 0.3.0 released on August 16, 2015

mGBA 0.3.1 (October 24, 2015) and mGBA 0.3.2 (December 16, 2015) fixed general issues with the emulator.

mGBA 0.4.0 released on February 2, 2016

mGBA 0.4.1 (July 11, 2016)

mGBA 0.5.0 released on September 19, 2016, including backwards compatibility with Game Boy and Game Boy Color.

mGBA 0.6.0 released on July 16, 2017 after its beta version on June 29. would receive 3 major revisions.

Compatibility
mGBA supports rumble from cartridges and rumble added through the Game Boy Player.

The accelerometer and gyroscope allow for Rotation/tilt controls in games that supported it
 * Solar sensor (for Boktai 2: Solar Boy Django and its sequel Boktai 3: Sabata's Counterattack)
 * Realtime clock
 * BattleChip Gate (for the Mega Man Battle Network games)
 * The emulator can be connected to GameCube games, allowing the player to transfer items between the handheld or control GameCube games on the Game Boy Advance emulator.

And some GB peripherals and special cartridge types are supported:


 * Tilt (MBC7)
 * Realtime clock
 * Game Boy Printer
 * Game Boy Printer

Game Boy/Color games run ok

Ghacks

Limitations
mGBA currently has a few game-specific compatibility issues relating to unsupported accessories. In addition, some accessories are partially supported but are not compatible with their full library of games. This includes the Game Boy Camera, Super Game Boy, link cable for multiplayer, and certain cartridge types.
 * The Game Boy Advance Wireless Adapter is not supported, due to the existence of the more widely used Game Link Cable.
 * In Cyber Drive Zoids, the game requires an IR adapter to wirelessly control the Zoids, which has not yet been implemented.
 * The Soul Doll Adapter designed for Legendz: Island of Ordeal and Legendz: Sign of Nekuromu is not supported. This is because the adapter functions by scanning a creature into the game, similarly to the Portal of Power from the Skylanders series.

License
The source code of mGBA is publicly available, but the license prohibits its commercial use. Mozilla Public License version 2.0.

medusa
On April 7, 2017, the first alpha for medusa was released. This is a proof of concept Nintendo DS emulator, with the hopes of merging medusa with mGBA. medusa released with lacking DS features, such as missing save states, audio channels, and microphone support, along with many game-specific issues involving games with 3D graphics. The second alpha released on April 26, 2017, fixing many of the major issues addressed in the announcement. Currently, the medusa emulator is not under active development.