Difference between revisions of "MGBA"

From Emulation General Wiki
Jump to navigation Jump to search
(I modified the feature-list with accordance with the features in the new release.)
 
(81 intermediate revisions by 48 users not shown)
Line 1: Line 1:
{{infobox
+
{{lowercase title}}
|image =
+
{{Infobox emulator
|imagecaption =  
+
|title = mGBA
|imagewidth = 160
+
|logo = Mgba-logo.png
|first = 0.2.0
+
|logowidth = 140
|second = Active
+
|version = {{Version|mGBA}}
|third = Windows, OS X
+
|active = Yes
|fourth = Jeffrey Pfau (endrift)
+
|platform = [[Emulators on Windows|Windows]]<br/>[[Emulators on macOS|macOS]]<br/>[[Emulators on Linux|Linux]]<br>[[Emulators on BSD|FreeBSD]]<br/>[[Emulators on Android|Android]] (RetroArch)<br/>[[Emulators on iOS|iOS]] (RetroArch)<br/>[[Emulators on 3DS|3DS]]<br/>[[Emulators on Wii|Wii]]<br/>[[Emulators on Switch|Switch]]<br/>[[Emulators on Vita|Vita]]
|fifth = [https://endrift.com/mgba/ mGBA]
+
|target = [[Game Boy Advance emulators|Game Boy Advance]]<br/>[[Game Boy/Game Boy Color emulators|Game Boy]]<br/>[[Game Boy/Game Boy Color emulators|Game Boy Color]]
|sixth = [https://github.com/mgba-emu/mgba/ GitHub]}}
+
|developer = [https://github.com/endrift Vicki Pfau (endrift)]
 +
|accuracy = Highly-Accurate
 +
|prog-lang = C, C++
 +
|website = [https://mgba.io/ mGBA]
 +
|support = [https://www.patreon.com/mgba Patreon]
 +
|license = MPL v2.0
 +
|source = [https://github.com/mgba-emu/mgba/ GitHub]
 +
}}
  
'''mGBA''' is an open source emulator of the Game Boy Advance. The goals are speed and accuracy.
+
'''mGBA''' is a free and open-source [[Game Boy/Game Boy Color emulators|Game Boy/Color]] and [[Game Boy Advance emulators|Game Boy Advance emulator]] developed by endrift. Being written from scratch, it aims for speed, accuracy, and portability. As of yet, it's the most complete GBA emulation effort, passing the older project [[VisualBoy_Advance|VBA and its forks]]. It is also available as a [[Libretro]] core for [[RetroArch]]. As of 0.9.0, mGBA with a stripped-down GUI has been integrated into [[Dolphin]] recently for games supporting connectivity features.<ref>[https://dolphin-emu.org/blog/2021/07/21/integrated-gba/ mGBA Integration: Introducing the Integrated GBA]</ref>
  
==Features==
+
==Download==
 +
{| cellpadding="4"
 +
|-
 +
|align=center|{{Icon|Win|Lin|Mac}}
 +
|'''[https://mgba.io/downloads.html#current-downloads mGBA Stable and Nightly builds for computers]'''
 +
|-
 +
|align=center|{{Icon|NX|3DS|Vita|Wii}}
 +
|'''[https://mgba.io/downloads.html#current-downloads mGBA Stable and Nightly builds for consoles (homebrew)]'''
 +
|-
 +
|align=center|{{Icon|Win|Lin|Mac}}
 +
|'''[https://mgba.io/downloads.html#medusa-1 medusa Dev builds]'''
 +
|}
  
* 9 savestate slots. Savestates are also viewable as screenshots.
+
==Notable features==
* A built-in BIOS implementation, and ability to load external BIOS files.
+
* [https://mgba.io/2014/12/28/classic-nes/ NES Classic series compatibility]
* Ability to lock aspect ratio
+
* Local multi-pak link cable support, up to 4 players
* Ability to prevent opposing directional input
+
* Extensive hardware-based emulation that removes the need for game-specific patches
* Ability to switch which game controller is in use per instance
+
** Solar sensor emulation for the Boktai series
* Add option to skip BIOS start screen
+
** Tilt sensor emulation for games like WarioWare: Twisted! and Yoshi Topsy-Turvy (Yoshi's Universal Gravitation)
* Add scale presets for up to 6x
+
** Rumble Pak emulation for games like Drill Dozer and WarioWare: Twisted!
* Automatically detect and optimize out idle loops
+
** Battle Chip Gate, Progress Chip Gate, and Beast Link Gate emulation for Rockman.EXE 4, 4.5, 5, and 6
* Better audio resampling via blip-buf
+
** Real-time clock (Boktai series, Pokémon series, Rockman EXE 4.5 Real Operation), synced to system time or set arbitrarily
* Bilinear resampling option
+
* Support for BPS/beat, IPS and UPS patching at runtime, including ROMs in compressed archives (.7z/.zip)
* Cheat code support
+
* Game overrides, forcing games to use specific save formats or sensors (tilt, solar, etc.)
* Configurable emulation rewinding.
+
* Very basic cheat code support (AR, GS, CB), though without search options
* Configurable game overrides
+
* Save states <!-- would be more notable if it didn't support them -->
* Controller profiles for setting different bindings for different controllers
+
* Fast-forwarding and rewinding
* Drag and drop game loading
+
* e-Reader support
* Fast emulation. Known to run at full speed even on low end hardware, such as netbooks.
+
* Dolphin/JOY bus link cable support
* Frameskip, configurable up to 9.
+
 
* Game debugging via a command-line interface (not available with Qt port) and GDB remote support.
+
Some features that are still planned include<ref>https://mgba.io/2014/12/09/announcing-mgba/</ref>:
* Game Pak overrides dialog for setting savetype and sensor values
+
 
* Implemented BIOS routines SoftReset, RegisterRamReset, Diff8bitUnFilterWram, Diff8bitUnFilterVram, and Diff16bitUnFilter
+
* ''Networked'' multiplayer link cable support
* IPS, UPS and BPS patch support.
+
* M4A audio mixing, for higher quality sound than hardware
* Libretro core for use with RetroArch and other front-ends
+
* Re-recording support for tool-assist runs
* List of recently opened games
+
* Lua support for scripting
* Loading from ZIP and 7z files.
+
* A comprehensive debug suite
* Local link cable support
+
* Wireless adapter support (Mario Golf, Classic NES Series, Pokémon FireRed/LeafGreen/Emerald, the built-in software when no game is inserted)
* Near full Game Boy Advance hardware support.
 
* Qt and SDL ports for a heavy-weight and a light-weight frontend.
 
* Real-time clock support, even without configuration.
 
* Remappable controls for both keyboards and gamepads.
 
* Remappable shortcuts for keyboard and gamepad
 
* Rewinding of emulation
 
* Runtime configurable audio driver
 
* Save directory of last loaded file
 
* Save type detection, even for flash memory size.
 
* Screenshot support.
 
* Settings window
 
* Support BPS patches
 
* Support for gamepad axes, e.g. analog sticks or triggers
 
* Support for games using the Solar Sensor
 
* Support for games using the tilt sensor
 
* Support IPv6
 
* Support loading 7-Zip files
 
* Turbo/fast-forward support by holding Tab.
 
* Video and GIF recording.
 
* Warning dialog if an unimplemented BIOS feature is called
 
  
Nightlies also support:
+
==medusa==
* 4-player multiplayer
+
'''medusa''' is a [[Nintendo DS emulators|Nintendo DS emulator]] being developed by mGBA developer endrift<ref>https://mgba.io/2017/04/08/medusa</ref>. The plan was for medusa to eventually merge with and replace mGBA sometime after mGBA 1.0 is released to form medusa 2.0, making it an emulator that could play GB/C, GBA, and NDS. Development began in 2016 and was expected to merge sometime in 2018. However, as of March 2018, medusa has been "suspended until further notice"<ref>https://mgba.io/2018/03/09/holy-grail-bugs-revisited/</ref> due to a slowdown in development for both medusa and mGBA. There is an alpha version available, but accuracy is spotty and some features are lacking.
* Cheat code support
 
* Gyroscope support
 
* Modification of RTC (permits fast berry-growing in Pokémon games)
 
* Solar support (needed for Boktai games)
 
* Tilt support
 
  
==Planned Features==
+
==Manual (CLI version)==
 +
:''<small>'''Note:''' The [[Emulation on Ubuntu|Ubuntu]] version consists of both a command-line version (<code>mgba-sdl</code>) and GUI version (<code>mgba-qt</code>). The command-line version does not need to be installed if you aren't going to run it. The main dependency for both is <code>libmgba</code>.</small>''
 +
<pre>usage: mgba-qt [option ...] file
  
* A comprehensive debug suite
+
Generic options:
* Audio filtering support
+
  -b, --bios FILE            GBA BIOS file to use
* Dolphin/JOY bus link cable support
+
  -c, --cheats FILE          Apply cheat codes from a file
* e-Reader support
+
  -C, --config OPTION=VALUE  Override config value
* Hardware renderer
+
  -d, --debug               Use command-line debugger
* Import/Export of GameShark and Action Replay save files
+
  -g, --gdb                  Start GDB session (default port 2345)
* Lua support for scripting
+
  -l, --log-level N          Log level mask
* Networked multiplayer link cable support
+
  -t, --savestate FILE      Load savestate when starting
* OpenEmu support
+
  -p, --patch FILE          Apply a specified patch file when running
* Plugin system
+
  -s, --frameskip N          Skip every N frames
* Re-recording support for tool-assist runs
+
  --version                  Print version and exit
* Video filtering support (including desaturation support and texture filtering)
+
 
* Wireless adapter support
+
Graphics options:
 +
  -1, -2, -3, -4, -5, -6, -7, -8  Scale viewport by 1-8 times
 +
  -f, --fullscreen                Start full-screen
 +
  --scale X                      Scale viewport by X times
 +
 
 +
Frontend options:
 +
  --ecard FILE  Scan an e-Reader card in the first loaded game
 +
                Can be passed multiple times for multiple cards
 +
  --mb FILE    Boot a multiboot image with FILE inserted into the ROM slot</pre>
 +
 
 +
==References==
 +
{{reflist}}
  
==Links==
+
==External links==
[https://twitter.com/mgba_emu Twitter Account]
+
* [https://twitter.com/mgba_emu Twitter]
  
 +
{{Game Boy Advance emulators}}
 
[[Category:Emulators]]
 
[[Category:Emulators]]
 +
[[Category:Console emulators]]
 +
[[Category:Handheld console emulators]]
 +
[[Category:Game Boy/Game Boy Color emulators]]
 
[[Category:Game Boy Advance emulators]]
 
[[Category:Game Boy Advance emulators]]
 
[[Category:Windows emulation software‏‎]]
 
[[Category:Windows emulation software‏‎]]
[[Category:OS X emulation software]]
+
[[Category:macOS emulation software]]
 +
[[Category:Linux emulation software]]
 +
[[Category:BSD emulation software]]
 +
[[Category:Android emulation software]]
 +
[[Category:iOS emulation software]]
 +
[[Category:3DS emulation software]]
 +
[[Category:Switch emulation software]]
 +
[[Category:PlayStation Vita emulation software]]

Latest revision as of 22:53, 6 January 2024

mGBA
Mgba-logo.png
Developer(s) Vicki Pfau (endrift)
Latest version 0.10.3 [+]
Active Yes
Platform(s) Windows
macOS
Linux
FreeBSD
Android (RetroArch)
iOS (RetroArch)
3DS
Wii
Switch
Vita
Emulates Game Boy Advance
Game Boy
Game Boy Color
Accuracy Highly-Accurate
Website mGBA
Support ($) Patreon
Programmed in C, C++
License MPL v2.0
Source code GitHub

mGBA is a free and open-source Game Boy/Color and Game Boy Advance emulator developed by endrift. Being written from scratch, it aims for speed, accuracy, and portability. As of yet, it's the most complete GBA emulation effort, passing the older project VBA and its forks. It is also available as a Libretro core for RetroArch. As of 0.9.0, mGBA with a stripped-down GUI has been integrated into Dolphin recently for games supporting connectivity features.[1]

Download[edit]

Windows Linux macOS mGBA Stable and Nightly builds for computers
Switch Nintendo 3DS Vita Wii mGBA Stable and Nightly builds for consoles (homebrew)
Windows Linux macOS medusa Dev builds

Notable features[edit]

  • NES Classic series compatibility
  • Local multi-pak link cable support, up to 4 players
  • Extensive hardware-based emulation that removes the need for game-specific patches
    • Solar sensor emulation for the Boktai series
    • Tilt sensor emulation for games like WarioWare: Twisted! and Yoshi Topsy-Turvy (Yoshi's Universal Gravitation)
    • Rumble Pak emulation for games like Drill Dozer and WarioWare: Twisted!
    • Battle Chip Gate, Progress Chip Gate, and Beast Link Gate emulation for Rockman.EXE 4, 4.5, 5, and 6
    • Real-time clock (Boktai series, Pokémon series, Rockman EXE 4.5 Real Operation), synced to system time or set arbitrarily
  • Support for BPS/beat, IPS and UPS patching at runtime, including ROMs in compressed archives (.7z/.zip)
  • Game overrides, forcing games to use specific save formats or sensors (tilt, solar, etc.)
  • Very basic cheat code support (AR, GS, CB), though without search options
  • Save states
  • Fast-forwarding and rewinding
  • e-Reader support
  • Dolphin/JOY bus link cable support

Some features that are still planned include[2]:

  • Networked multiplayer link cable support
  • M4A audio mixing, for higher quality sound than hardware
  • Re-recording support for tool-assist runs
  • Lua support for scripting
  • A comprehensive debug suite
  • Wireless adapter support (Mario Golf, Classic NES Series, Pokémon FireRed/LeafGreen/Emerald, the built-in software when no game is inserted)

medusa[edit]

medusa is a Nintendo DS emulator being developed by mGBA developer endrift[3]. The plan was for medusa to eventually merge with and replace mGBA sometime after mGBA 1.0 is released to form medusa 2.0, making it an emulator that could play GB/C, GBA, and NDS. Development began in 2016 and was expected to merge sometime in 2018. However, as of March 2018, medusa has been "suspended until further notice"[4] due to a slowdown in development for both medusa and mGBA. There is an alpha version available, but accuracy is spotty and some features are lacking.

Manual (CLI version)[edit]

Note: The Ubuntu version consists of both a command-line version (mgba-sdl) and GUI version (mgba-qt). The command-line version does not need to be installed if you aren't going to run it. The main dependency for both is libmgba.
usage: mgba-qt [option ...] file

Generic options:
  -b, --bios FILE            GBA BIOS file to use
  -c, --cheats FILE          Apply cheat codes from a file
  -C, --config OPTION=VALUE  Override config value
  -d, --debug                Use command-line debugger
  -g, --gdb                  Start GDB session (default port 2345)
  -l, --log-level N          Log level mask
  -t, --savestate FILE       Load savestate when starting
  -p, --patch FILE           Apply a specified patch file when running
  -s, --frameskip N          Skip every N frames
  --version                  Print version and exit

Graphics options:
  -1, -2, -3, -4, -5, -6, -7, -8  Scale viewport by 1-8 times
  -f, --fullscreen                Start full-screen
  --scale X                       Scale viewport by X times

Frontend options:
  --ecard FILE  Scan an e-Reader card in the first loaded game
                Can be passed multiple times for multiple cards
  --mb FILE     Boot a multiboot image with FILE inserted into the ROM slot

References[edit]

External links[edit]

Nintendo Game Boy Advance Emulators