How to Set Up mGBA — Complete Game Boy Advance Emulator Guide 2026
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.
Solutions
solution #1581
Download mGBA:
Get mGBA only from the official site: mgba.io/downloads/
- Windows: download the
.7zarchive (64-bit). Extract anywhere — mGBA is portable, no installer needed. Double-clickmGBA.exeand it opens ready to load a game. - macOS: download the
.dmg. Drag mGBA.app to Applications. - Linux:
sudo apt install mgba-qtor 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) andgbc_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:
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 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:
- Tools → Game Overrides → find your ROM.
- 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)
- 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):
- Load your game.
- Tools → Cheats → Add Action Replay or Add GameShark.
- 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:
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:
- Download mGBA from mgba.io/downloads/ (portable, no installer)
- Optional: add
gba_bios.binin Tools → Settings → BIOS for best accuracy - File → Load ROM → select your
.gbafile - View → Scale → 4× for a sharp 1080p window
- If saves are broken in Pokémon: Tools → Game Overrides → Flash 128KB
- For Pokémon trading: open two mGBA windows + use link server on 127.0.0.1:7110
Comments (0)
Sign in to_leave_comment