mGBA is a Nintendo Game Boy, Game Boy Color and Game Boy Advance emulator.
Website: https://mgba.io/
mGBA's FAQ: https://mgba.io/faq.html
GitHub: https://github.com/mgba-emu/mgba
This page is for mGBA, a standalone Nintendo Game Boy, Game Boy Color and Game Boy Advance emulator. This page is not for the mGBA RetroArch core. For more information on RetroArch and the mGBA RetroArch core, visit the RetroArch Page.
mGBA Table of Contents
-
- How to Configure Multiplayer
- How to Use the Gyro Sensor
- How to Use the Tilt Sensor
- How to Use Cheats
- How to Roll Back mGBA to an Older Version
- How to Configure Language Settings
- How to Create Multiple Save Files for a Game
- How to Set Up PKHeX
- How to Install the Universal Pokemon Randomizer
- How to Use ROM Hacks
Getting Started with mGBA
mGBA is a fairly straight-forward emulator to set up. Place your ROMs in Emulation/roms/gb
, Emulation/roms/gbc
or Emulation/roms/gba
. No additional setup is required. Read the Configuration section to learn more about mGBA and its folder locations.
To launch your ROMs in game mode, use Steam ROM Manager and use one of the following parsers to play your GB, GBC, and GBA ROMs:
ES-DE
Nintendo Game Boy - mGBA
,Nintendo Game Boy Color - mGBA
orNintendo Game Boy Advance - mGBA
Emulators
mGBA Configuration
- Type of Emulator: AppImage
- Executable Location:
/home/deck/Applications/mGBA.AppImage
- Config Location:
/home/deck/.config/mgba
- Contains the following files:
config.ini
library.sqlite3
qt.ini
- Contains the following files:
- Game Boy Advance ROM location:
Emulation/roms/gba
- Game Boy Color ROM location:
Emulation/roms/gbc
- Game Boy ROM location:
Emulation/roms/gb
- Saves:
Emulation/saves/mgba/saves
- Save States
Emulation/saves/mgba/states
- Storage Location:
Emulation/storage/mgba
- Contains the following folders:
Emulation/storage/mgba/cheats
Emulation/storage/mgba/patches
Emulation/storage/mgba/screenshots
- Contains the following folders:
Note: ~/.config
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, click "view hidden files" to see these folders.
Works With
- Steam ROM Manager
- ES-DE
mGBA Folder Locations
These file locations apply regardless of where you chose to install EmuDeck (to your internal SSD, to your SD Card, or elsewhere). Some emulator configuration files will be located on the internal SSD as listed below.
$HOME
refers to your home folder. If you are on a Steam Deck, this folder will be named /home/deck
(you will likely not see deck
in the file path when navigating using the file manager).
Paths beginning with Emulation/..
correspond to your EmuDeck install location. If you installed on an SD Card, your path may be /run/media/mmcblk0p1/Emulation/roms/..
. If you installed on your internal SSD, your path may be /home/deck/Emulation/roms/..
Note: Folders with a .
(.var
, .local
, .config
, etc.) at the beginning are hidden by default. In Dolphin (file manager), click the hamburger menu in the top right, click Show Hidden Files
to see these folders.
$HOME/.config/mgba
mgba/
├── config.ini
├── config.ini.bak
├── library.sqlite3
├── nointro.sqlite3
├── qt.ini
├── qt.ini.bak
└── updater.log
Emulation/storage/mgba
How to Download mGBA (Standalone)
- In Desktop Mode, open the EmuDeck application
- Click the
Manage Emulators
button - Click
mgBA
- Click
Install
- mGBA (Standalone) will be installed
- To open mGBA in Desktop Mode, see How to Launch mGBA in Desktop Mode
To use mGBA (Standalone) to launch your ROMs in Game Mode:
- Use Steam ROM Manager and select the
Nintendo Game Boy - mGBA
,Nintendo Game Boy Color - mGBA
orNintendo Game Boy Advance - mGBA
parser corresponding to the system of your ROM- The RetroArch parsers is named:
Nintendo GameBoy Advance - Retroarch - mGBA
- The mGBA (Standalone) parsers are named:
Nintendo Game Boy - mGBA
Nintendo Game Boy Color - mGBA
Nintendo Game Boy Advance - mGBA
- The RetroArch parsers is named:
- Use Steam ROM Manager and select the
ES-DE
parser- To switch to mGBA (Standalone) in ES-DE, see ES-DE: How to Select a Different Emulator for a System
No additional setup is required with Steam ROM Manager and ES-DE. If you do not have the latest Steam ROM Manager configurations, either run a Custom Reset
or click the Reset configuration
button on the Steam ROM Manager page within the EmuDeck application.
How to Update mGBA
How to Update mGBA
- Through the
Update your Emulators & Tools
section on theManage Emulators
page in theEmuDeck
application - Manual file replacement of
mGBA.AppImage
- Refer to How to Swap Out AppImages and Binaries for instructions
- Through mGBA's built-in updater
- Desktop Mode:
- Search for mGBA in the
Applications Launcher
(Steam Deck icon in the bottom left of the taskbar) and open it, mGBA will prompt for an update if one is available
- Search for mGBA in the
- Game Mode:
- Add mGBA to Steam by using the
Emulators
parser in Steam ROM Manager. After adding it to Steam, you may open it in Game Mode, mGBA will prompt for an update if one is available
- Add mGBA to Steam by using the
- Desktop Mode:
- Through
binupdate.sh
inEmulation/tools/binupdate
, double click to launch
How to Launch mGBA in Desktop Mode
How to Launch mGBA in Desktop Mode
- Launch
mGBA AppImage
from the Applications Launcher (Steam Deck icon in the bottom left of the taskbar) - Launch the script from
Emulation/tools/launchers
,mgba.sh
- Launch the AppImage in
/home/deck/Applications/mGBA.AppImage
- Launch the emulator from
Steam
after adding it via theEmulators
parser in Steam ROM Manager
mGBA File Formats
- .gb
- .gbc
- .gba
- .dmg
- .zip
- .7z
mGBA Hotkeys
mGBA comes with a Steam Input profile for Hotkeys. When playing mGBA ROM shortcuts through Steam, the EmuDeck - Controller Hotkeys
profile will automatically be applied so you may use the below hotkeys. For more info, see Emulator Button Combinations Profile.
When using a frontend (ES-DE, Pegasus, or the emulator itself), the EmuDeck - Frontend Controller Hotkeys
will automatically be applied. Hold Start
for a few seconds to switch to the action set required to use the below hotkeys. For more info, see Emulator Frontends Button Combinations Profile.
Hotkey | mGBA |
---|---|
Quick Menu | Select + R3 |
Toggle Full Screen | Start + L3 |
Save State | Select + R1 |
Load State | Select + L1 |
Fast Forward | Select + R2 |
Pause/Play | Select + A |
Screenshot | Select + B |
Reset Emulation | Select + L3 |
Stop Emulation | Select + Start or hold L5 or hold R5 |
Open Cheats Menu | Start + DPad Right |
Note
- For a tutorial on how to select Steam Input Profiles, refer to: How to Select a Steam Input Profile.
- If you would like to use touch menus, apply the
EmuDeck - Steam Deck Radial Menus
profile instead. - Steam Deck Button Layout
Common Issues
Special Characters
Files with special characters in the ROM name will not launch from Steam.
Rename your ROMs by editing the file name directly in the respective ROM folder and remove the special character.
Known Cases
é
inPokémon
If you used Steam ROM Manager previously, re-run Steam ROM Manager after renaming your ROMs.
mGBA Tips and Tricks
How to Configure Multiplayer
This section is strictly referring to local multiplayer. mGBA multiplayer on the Steam Deck can only be done in Desktop Mode.
- In Desktop Mode, open mGBA
- Click
File
, clickNew multiplayer window
- On each window of mGBA, click
Tools
,Settings
- Select
Controllers
on the left and select your controller in the drop-down menu- Steam Deck/Player 1:
Microsoft X-Box 360 pad 0
- Player 2:
Microsoft X-Box 360 pad 1
- Player 3:
Microsoft X-Box 360 pad 2
- Player 4:
Microsoft X-Box 360 pad 3
- Steam Deck/Player 1:
- Open the game in each mGBA window and you will be able to play multiplayer
If you are intending on trading with yourself (in a Pokemon game as an example), you will need to create a second copy of your save file and rename the file extension to .sa2
.
How to Use the Gyro Sensor
IMPORTANT: As of September 2023, there is a bug with rumble while using gyro. Keeping rumble enabled will severly impact your framerate. Open the mGBA emulator and disable the rumble feature if you intend on using gyro.
Supported Games
- WarioWare: Twisted!
Note: Yoshi Topsy-Turvy and Kirby Tilt 'n' Tumble use the tilt sensor instead. Read: How to Use the Tilt Sensor for instructions.
- How to Configure the Gyro Sensor for the Steam Deck
- How to Configure the Gyro Sensor for Non Steam-Deck Controllers
How to Configure the Gyro Sensor for the Steam Deck
How to Configure mGBA
- Open
/home/deck/.config/mgba
~/.config
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, clickView hidden files
- Right click
config.ini
, clickOpen with Kate
or a text editor of your choice -
Under
gba.input-profile.03000000de280000ff11000001000000
, use the following template:tiltAxisY=4 gyroAxisX=3 gyroAxisZ=3 gyroSensitivity=2.2e+09 tiltAxisX=2 gyroAxisY=1
-
Save the file and exit out
- Open mGBA
- Click
Tools
at the top - Click
Game Pak sensors...
- Set the sensitivity in the bottom right to
34
How to Configure Steam Input
- In Game Mode, select the
WarioWare: Twisted!
ROM or the mGBA emulator - Click the
Controller
icon - Change the layout to
EmuDeck - mGBA
- Click
Edit Layout
- Select
Gyro
on the left - Gyro Behavior:
As Joystick
- Click the
Gear
icon -
Use the following template:
Gyro Output Scale: 60 Gyro Enable Button: Select a behavior of your choice Minimum Joystick X Output Value: 1 Minimum Joystick Y Output Value: 1
-
Back out, and select
Joysticks
on the left - Click the
Gear
icon to the right ofRight Joystick Behavior
- Set
Deadzone Type
toDefault
How to Configure the Gyro Sensor for Non Steam-Deck Controllers
- In Desktop Mode, connect your non-Steam Deck controller
- Open mGBA in Desktop Mode
- Click
Tools
- Click
Settings
- Click
Controllers
on the left - Select your controller in the drop-down menu
- Click
OK
- Click
Tools
,Game Pak Sensors
, and test your controller
Post-Configuration
To restore the default Steam Deck controls:
- Open mGBA in Desktop Mode
- Click
Tools
- Click
Settings
- Click
Controllers
on the left - Select
Microsoft X-Box 360 pad 0
in the drop-down menu
How to Use the Tilt Sensor
Supported Games
- Kirby Tilt 'n' Tumble
- Koro Koro Puzzle Happy Panechu!
- Yoshi Topsy-Turvy
Note: For WarioWare: Twisted!, use the gyro sensor instead. Read: How to Use the Gyro Sensor for instructions.
- How to Configure the Tilt Sensor for the Steam Deck
- How to Configure the Tilt Sensor for Non Steam-Deck Controllers
How to Configure the Tilt Sensor for the Steam Deck
mGBA does not support using the Steam Deck's accelerometer for the tilt sensor at this time. Instead, you may either use a patch to remove the requirement for the tilt sensor or use an external controller.
Tilt Sensor Patches
To learn how to use these patches, see How to Use ROM Hacks.
- Kirby Tilt 'n' Tumble
- Koro Koro Puzzle Happy Panechu!
- Yoshi Topsy-Turvy
How to Configure the Tilt Sensor for Non Steam-Deck Controllers
- In Desktop Mode, connect your non-Steam Deck controller
- Open mGBA in Desktop Mode
- Click
Tools
- Click
Settings
- Click
Controllers
on the left - Select your controller in the drop-down menu
- Click
OK
- Click
Tools
,Game Pak Sensors
, and test your controller
Post-Configuration
To restore the default Steam Deck controls:
- Open mGBA in Desktop Mode
- Click
Tools
- Click
Settings
- Click
Controllers
on the left - Select
Microsoft X-Box 360 pad 0
in the drop-down menu
How to Use Cheats
Cheat Resources
This list is not comprehensive
Desktop Mode
- In Desktop Mode, open mGBA
- Load a game
- Click
Tools
at the top - Click
Cheats
- Click
Add New Code
- Add your cheat
Game Mode
- While in game, use the left Trackpad and select the
Cheats
icon- Steam Input profiles for mGBA ROMs and ES-DE are enabled by default. However, if you do not see the Trackpad menu, see How to Select a Steam Input Profile
- Select which cheats you would like to use
How to Roll Back mGBA to an Older Version
Preface
Your ROMs launch using a script created by EmuDeck, mgba.sh
in Emulation/tools/launchers
.
The script launches the corresponding emulator in /home/deck/Applications
and specifically looks for two traits:
- The most recently downloaded version of the emulator in
/home/deck/Applications
, based on the file/release date. - The emulator name at the beginning of the file. Anything after the emulator name is ignored.
- For example, if the latest version of the emulator is
1351
and you would like to downgrade to1349
. When you download version1349
, you could rename it toEMULATORNAME-1349.AppImage
, and EmuDeck's script will ignore the-1349
in the file name, allowing you to record which versions of the emulator you are using through the file name.
- For example, if the latest version of the emulator is
How to Roll Back mGBA
- Download the version of the emulator you would like to use from mGBA's GitHub: https://github.com/mgba-emu/mgba/releases
- Move the downloaded emulator from Step 1 to
/home/deck/Applications
- (Optional) Rename or delete the original emulator file
- Right click the newly downloaded emulator, click
Properties
, clickPermissions
, checkIs executable
- Your games will now launch using the version of the emulator you downloaded
How to Configure Language Settings
UI
- In Desktop Mode, open mGBA
- At the top, click
Tools
, clickSettings
- Click the
Interface
tab - To the right of
Language
, select your preferred language in the drop-down menu
In-Game
Languages are cartridge-specific. For example, if you want to play Golden Sun in French, you will need to dump a Golden Sun cartridge from France.
How to Create Multiple Save Files for a Game
If you would like to create multiple saves for a game in games where multiple save options are not available (the Pokemon games for example), you can do so by creating unique save files for the game.
- While in game, press
Start
+L3
- At the top, click
File
- Click
Save Games
- Select your preferred save slot,
Use Player # save game