Skip to content

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

  1. Getting Started with mGBA

  2. Common Issues

  3. mGBA Tips and Tricks


Getting Started with mGBA

Back to the Top

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 or Nintendo Game Boy Advance - mGBA
  • Emulators

mGBA Configuration

Back to the Top

  • 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
  • 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

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

Back to the Top

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

mgba
├── cheats
├── patches
└── screenshots

How to Download mGBA (Standalone)

Back to the Top

  1. In Desktop Mode, open the EmuDeck application
  2. Click the Manage Emulators button
  3. Click mgBA
  4. Click Install
  5. mGBA (Standalone) will be installed

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 or Nintendo 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
  • Use Steam ROM Manager and select the ES-DE parser

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

Back to the Top

How to Update mGBA

  • Through the Update your Emulators & Tools section on the Manage Emulators page in the EmuDeck application
  • Manual file replacement of mGBA.AppImage
  • 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
    • 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
  • Through binupdate.sh in Emulation/tools/binupdate, double click to launch

How to Launch mGBA in Desktop Mode

Back to the Top

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 the Emulators parser in Steam ROM Manager

mGBA File Formats

Back to the Top

  • .gb
  • .gbc
  • .gba
  • .dmg
  • .zip
  • .7z

mGBA Hotkeys

Back to the Top

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


Common Issues


Special Characters

Back to the Top

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

  • é in Pokémon

If you used Steam ROM Manager previously, re-run Steam ROM Manager after renaming your ROMs.


mGBA Tips and Tricks

Back to the Top


How to Configure Multiplayer

Back to the Top

This section is strictly referring to local multiplayer. mGBA multiplayer on the Steam Deck can only be done in Desktop Mode.

  1. In Desktop Mode, open mGBA
  2. Click File, click New multiplayer window
  3. On each window of mGBA, click Tools, Settings
  4. 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
  5. 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

Back to the Top

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 mGBA
  1. Open /home/deck/.config/mgba
    • ~/.config is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, click View hidden files
  2. Right click config.ini, click Open with Kate or a text editor of your choice
  3. Under gba.input-profile.03000000de280000ff11000001000000, use the following template:

        tiltAxisY=4
        gyroAxisX=3
        gyroAxisZ=3
        gyroSensitivity=2.2e+09
        tiltAxisX=2
        gyroAxisY=1
    
  4. Save the file and exit out

  5. Open mGBA
  6. Click Tools at the top
  7. Click Game Pak sensors...
  8. Set the sensitivity in the bottom right to 34
How to Configure Steam Input
  1. In Game Mode, select the WarioWare: Twisted! ROM or the mGBA emulator
  2. Click the Controller icon
  3. Change the layout to EmuDeck - mGBA
  4. Click Edit Layout
  5. Select Gyro on the left
  6. Gyro Behavior: As Joystick
  7. Click the Gear icon
  8. 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
    
  9. Back out, and select Joysticks on the left

  10. Click the Gear icon to the right of Right Joystick Behavior
  11. Set Deadzone Type to Default

How to Configure the Gyro Sensor for Non Steam-Deck Controllers

  1. In Desktop Mode, connect your non-Steam Deck controller
  2. Open mGBA in Desktop Mode
  3. Click Tools
  4. Click Settings
  5. Click Controllers on the left
  6. Select your controller in the drop-down menu
  7. Click OK
  8. Click Tools, Game Pak Sensors, and test your controller

Post-Configuration

To restore the default Steam Deck controls:

  1. Open mGBA in Desktop Mode
  2. Click Tools
  3. Click Settings
  4. Click Controllers on the left
  5. Select Microsoft X-Box 360 pad 0 in the drop-down menu

How to Use the Tilt Sensor

Back to the Top

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

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.


How to Configure the Tilt Sensor for Non Steam-Deck Controllers

  1. In Desktop Mode, connect your non-Steam Deck controller
  2. Open mGBA in Desktop Mode
  3. Click Tools
  4. Click Settings
  5. Click Controllers on the left
  6. Select your controller in the drop-down menu
  7. Click OK
  8. Click Tools, Game Pak Sensors, and test your controller

Post-Configuration

To restore the default Steam Deck controls:

  1. Open mGBA in Desktop Mode
  2. Click Tools
  3. Click Settings
  4. Click Controllers on the left
  5. Select Microsoft X-Box 360 pad 0 in the drop-down menu

How to Use Cheats

Back to the Top

Cheat Resources

This list is not comprehensive

Desktop Mode

  1. In Desktop Mode, open mGBA
  2. Load a game
  3. Click Tools at the top
  4. Click Cheats
  5. Click Add New Code
  6. Add your cheat

Game Mode

  1. While in game, use the left Trackpad and select the Cheats icon
  2. Select which cheats you would like to use

How to Roll Back mGBA to an Older Version

Back to the Top

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 to 1349. When you download version 1349, you could rename it to EMULATORNAME-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.

How to Roll Back mGBA

  1. Download the version of the emulator you would like to use from mGBA's GitHub: https://github.com/mgba-emu/mgba/releases
  2. Move the downloaded emulator from Step 1 to /home/deck/Applications
  3. (Optional) Rename or delete the original emulator file
  4. Right click the newly downloaded emulator, click Properties, click Permissions, check Is executable
  5. Your games will now launch using the version of the emulator you downloaded

How to Configure Language Settings

Back to the Top

UI

  1. In Desktop Mode, open mGBA
  2. At the top, click Tools, click Settings
  3. Click the Interface tab
  4. 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

Back to the Top

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.

  1. While in game, press Start + L3
  2. At the top, click File
  3. Click Save Games
  4. Select your preferred save slot, Use Player # save game