How to Set Up mGBA — Complete Game Boy Advance Emulator Guide 2026

Low4 solutions

I want to set up mGBA to play Game Boy Advance games (Pokémon, Zelda, Metroid) on my PC. I downloaded it but I'm not sure if I need a BIOS, what graphics settings to use, and how to fix save file issues.

Last updated 1 week ago0 users reported this issue3
Sign in to interact

Solutions

solution #1581

download-bios-and-first-launch (sortOrder=1, isMostHelpful)

Download mGBA:

Get mGBA only from the official site: mgba.io/downloads/

  • Windows: download the .7z archive (64-bit). Extract anywhere — mGBA is portable, no installer needed. Double-click mGBA.exe and it opens ready to load a game.
  • macOS: download the .dmg. Drag mGBA.app to Applications.
  • Linux: sudo apt install mgba-qt or the AppImage from the site.
  • Android: search "mGBA" on Google Play. The official app is by Jeffrey Pfau — avoid lookalikes.

Supported game formats:

  • .gba — Game Boy Advance ROM
  • .gbc — Game Boy Color ROM
  • .gb — original Game Boy ROM
  • .zip / .7z — compressed archives (mGBA opens these directly, auto-detecting the ROM inside)

Dump your games from physical cartridges using a device like the GB Operator (Epilogue) or Retrode 2. mGBA does not download ROMs.

BIOS file (optional but recommended):

mGBA includes high-level emulation (HLE) that boots most games without a BIOS. For best accuracy, add the real GBA BIOS:

  • Filename: gba_bios.bin (16,384 bytes, MD5: a860e8c0b6d573d191e4ec7db1b1e4f6)
  • Open mGBA → Tools → Settings → BIOS → Game Boy Advance BIOS file → browse to your file → confirm.
  • Check "Use BIOS when available".
  • Optional: gb_bios.bin (Game Boy accuracy) and gbc_bios.bin (Game Boy Color boot screen).

HLE boots ~99% of games correctly. The main reason to add the real BIOS: the Game Boy Player startup disc and a handful of edge-case titles that check for it explicitly.

See also: Emulator BIOS files — which you need and where they go

To load a game: File → Load ROM → select your .gba / .gbc / .gb file (or compressed archive). The game starts immediately.

solution #1582

graphics-settings-and-controller-setup (sortOrder=2)

Graphics settings:

Open Tools → Settings → Video.

Resolution (integer scaling): mGBA's native GBA resolution is 240×160. Scale up in whole multiples for sharp pixels:

  • 2× (480×320) — compact, fine on a small monitor
  • 3× (720×480) — good middle ground
  • 4× (960×640) — recommended for 1080p monitors
  • 6× (1440×960) — fits a 1440p/4K display cleanly

Set via View → Scale. Integer scaling keeps pixels sharp — avoid "stretch to window" unless you want it.

Renderer: mGBA defaults to the OpenGL renderer on modern systems. It's fast and accurate. If you see visual glitches (sprite tearing, color issues), try Software (accurate) — it's slower but bit-exact.

Shaders / Filters (optional): Tools → Settings → Video → Shader:

  • Dot Matrix — simulates the GBA's non-backlit pixel grid (nostalgic)
  • Color Correction (GBA) — applies the color curve that matches the real hardware's washed-out screen. Many emulation purists prefer it.
  • Set to None to disable.

Controller setup:

  • Xbox / XInput controller: plug in before launching mGBA. It auto-maps standard GBA buttons. Verify via Tools → Settings → Keybindings.
  • DualSense / DualShock on Windows: use DS4Windows or the Sony Windows driver to expose it as XInput. Then mGBA sees it as a standard controller.
  • Manual rebinding: Tools → Settings → Keybindings → click any button row and press the key/button you want.
  • Keyboard defaults: A=Z, B=X, Start=Enter, Select=Backspace, L=A, R=S, D-pad=Arrow keys.
  • Turbo (fast-forward): assign via Keybindings. Holding it runs the game at max speed. Default: Tab. Useful for grinding in Pokémon or skipping cutscenes.

solution #1583

save-types-cheats-and-gb-gbc (sortOrder=3)

Save files and the save type problem:

mGBA auto-detects save types for most cartridges (EEPROM, Flash, SRAM) and saves to a .sav file in the same folder as the ROM. However, some ROMs are incorrectly detected, causing lost saves.

Symptoms of wrong save type: saves lost on close; "save file is corrupted" message; Pokémon or Zelda games report no save card detected.

Fix:

  1. Tools → Game Overrides → find your ROM.
  2. Set the correct Save type manually:
    • Pokémon Ruby/Sapphire/Emerald: Flash 128KB (Flash 1M)
    • Pokémon FireRed/LeafGreen: Flash 128KB (Flash 1M)
    • Pokémon Mystery Dungeon: Flash 64KB (Flash 512k)
    • Most Zelda titles: Flash 64KB (Flash 512k)
    • Mario Kart, other titles: SRAM 64KB (check community override database)
  3. Delete the old corrupted .sav file before restarting — it stores the wrong format.

See also: mGBA save file lost / wrong save type fix

Save states: F1–F9 to save, Shift+F1–F9 to load. 10 slots per game. Keep battery saves (.sav) alongside save states for cross-session persistence.

Importing real cartridge saves: place the .sav file dumped from your physical cart in the same folder as the ROM with the same filename. mGBA loads it automatically.

Cheats (GameShark / Action Replay / CodeBreaker):

  1. Load your game.
  2. Tools → Cheats → Add Action Replay or Add GameShark.
  3. Paste the cheat code, give it a name, tick the checkbox to enable.
  • Action Replay v3: 8+8 hex pairs. Most Pokémon modifier codes are this format.
  • GameShark (GS): 8+4 hex pairs. Older format, works the same.
  • CodeBreaker: 8+8 format, different encoding — use the CodeBreaker option specifically.

Game Boy Color and original Game Boy: mGBA plays GB and GBC games out of the box — just load a .gb or .gbc file. Set the Game Boy model in Tools → Settings → Game Boy → Model:

  • Game Boy Pocket — grey monochrome
  • Game Boy Color — colorized
  • Super Game Boy — SNES color palettes

solution #1584

performance-link-cable-and-common-issues (sortOrder=4)

Performance:

mGBA runs the GBA at full speed on virtually any PC made in the last 15 years (the GBA is a 16 MHz ARM7TDMI — even a Raspberry Pi 4 handles it). If you see slowdown:

  • View → Show FPS — should lock at 59.7 fps.
  • Set OS power plan to High Performance (not Power Saver).
  • On a laptop: force the discrete GPU via Nvidia Control Panel / AMD Software.
  • The Software (accurate) renderer is intentionally slower — switch to OpenGL if you enabled it for testing.
  • Close background apps — antiviruses scanning ROM files in real-time can cause micro-stutters.

For general emulator slowdown: Emulator running slow despite strong PC

Link cable emulation (Pokémon trading, multiplayer):

  • Local (same PC): open two mGBA windows with the same ROM → File → Start GBA Link Server (one window) / File → Connect to GBA Link (other window) → connect via 127.0.0.1:7110.
  • Over LAN / Internet: the link server accepts remote connections. Share your IP (or use ZeroTier for internet play). Latency is a factor — works best on a local network.

Common issues:

  • Game boots to white screen / freezes — missing or wrong BIOS. Add real gba_bios.bin; verify MD5.
  • Save file lost after closing — wrong save type (especially Pokémon). Set correct save type in Game Overrides, delete old .sav. See mGBA save type fix.
  • Audio crackling / popping — sample rate mismatch. Match Audio → Sample rate to system output (usually 48000 Hz).
  • Black screen with no audio — OpenGL driver issue. Switch renderer: Settings → Video → Renderer → Software.
  • Controller not responding — not mapped / DirectInput issue. Check Keybindings; use DS4Windows for DualSense.
  • Cheat codes not working — wrong code type selected. Re-enter with correct type (ARv3 vs GameShark vs CodeBreaker).
  • Game Boy Player startup crashes — HLE incompatibility. Add real BIOS → Settings → BIOS → Use BIOS when available.
  • Link cable trade fails — instances not synced. Confirm both use same ROM + both connected before starting trade animation.
  • GBC game shows no color — model set to GB (monochrome). Settings → Game Boy → Model → Game Boy Color.

For GPU driver issues: GPU driver clean-install guide

Quick-start summary:

  1. Download mGBA from mgba.io/downloads/ (portable, no installer)
  2. Optional: add gba_bios.bin in Tools → Settings → BIOS for best accuracy
  3. File → Load ROM → select your .gba file
  4. View → Scale → 4× for a sharp 1080p window
  5. If saves are broken in Pokémon: Tools → Game Overrides → Flash 128KB
  6. For Pokémon trading: open two mGBA windows + use link server on 127.0.0.1:7110
Experiencing a different problem?Report a new issue to help the community find solutions.

Comments (0)

No other comments yet. Be the first to share your thoughts.

Sign in to_leave_comment

On This Page