Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MGBA 3DS

From GameBrew
Revision as of 06:06, 12 October 2022 by HydeWing (talk | contribs)
mGBA
Mgba3ds2.png
General
Authorendrift (Jeffrey Pfau)
TypeHandheld
Version0.10.0
LicenseMPL 2.0
Last Updated2022/10/11
Links
Download
Website
Source

mGBA is an emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. It also supports Game Boy and Game Boy Color games.

The project started in April 2013 with the goal of being fast enough to run on lower end hardware than other emulators support, without sacrificing accuracy or portability. Even in the initial version, games generally played without problems. mGBA has only gotten better since then, and now boasts being the most accurate GBA emulator around.

Features

  • Highly accurate Game Boy Advance hardware support.
  • Game Boy/Game Boy Color hardware support.
  • Fast emulation. Known to run at full speed even on low end hardware, such as netbooks.
  • Qt and SDL ports for a heavy-weight and a light-weight frontend.
  • Local (same computer) link cable support.
  • Save type detection, even for flash memory size.
  • Support for cartridges with motion sensors and rumble (only usable with game controllers).
  • Real-time clock support, even without configuration.
  • Solar sensor support for Boktai games.
  • Game Boy Camera and Game Boy Printer support.
  • A built-in BIOS implementation, and ability to load external BIOS files.
  • Turbo/fast-forward support by holding Tab.
  • Rewind by holding Backquote.
  • Frameskip, configurable up to 10.
  • Screenshot support.
  • Cheat code support.
  • 9 savestate slots. Savestates are also viewable as screenshots.
  • Video, GIF, WebP, and APNG recording.
  • e-Reader support.
  • Remappable controls for both keyboards and gamepads.
  • Loading from ZIP and 7z files.
  • IPS, UPS and BPS patch support.
  • Game debugging via a command-line interface and GDB remote support, compatible with IDA Pro.
  • Configurable emulation rewinding.
  • Support for loading and exporting GameShark and Action Replay snapshots.
  • Cores available for RetroArch/Libretro and OpenEmu.
  • Community-provided translations for several languages via Weblate.
  • Many, many smaller things.

Installation

Available in 3DSX and CIA formats.

  • CIA - Install the .cia with the CIA manager of your choice.
  • 3DSX - Use the .3dsx provided with the Homebrew Launcher.

Roms can be placed anywhere on your SD card.

User guide

Supported formats

Supported formats include GBA, GB, GBC, ELF, AGB, MB, ROM, BIN and SGB.

It can also load games that are in ZIP and 7z formats.

Compatibility List

mGBA compatibility list for 3DS can be found here.

FAQ

Q. On loading a game I only get a white screen.

Try changing the audio driver in settings.

If all else fails turn on Sync to video and off Sync to audio.

Q. I did something and now the game always runs too fast!

Make sure Fast forward is unchecked under emulation and at least one of Sync to audio or Sync to video is checked.

It is recommended to use Sync to audio only.

Q. Gameplay or audio is stuttery.

Try adjusting your sync settings (Sync to audio only is recommended) or your audio buffer settings.

Sometimes switching the audio driver also helps.

Q. Audio isn’t working in the 3DS version.

Current versions of mGBA for 3DS require the DSP blob to be dumped for audio to work. You can use DSP1.

Q. What does the m stand for?

It doesn't. mGBA was originally going to be named miniGBA but as the project grew the "mini" appellation became less accurate.

Initially the name was intended to be temporary, other working names for mGBA included GBAc and Gerboa, but nothing else stuck.

Controls

Menu:

D-Pad/Circle Pad - Navigate

A - Run rom

In game:

X - Settings

Y - Change screen scaling

Screenshots

mgba3ds5.png mgba3ds6.png

Compatibility

Recommend for N3DS.

Known issues

Current bugs can be found on GitHub for GBA, GB/C and DS (only for medusa branch).

Changelog

0.10.0: (2022-10-11)

  • Preliminary Lua scripting support
  • Presets for Game Boy palettes
  • Add Super Game Boy palettes for original Game Boy games
  • Tool for converting scanned pictures of e-Reader cards to raw dotcode data
  • Options for muting when inactive, minimized, or for different players in multiplayer
  • Cheat code support in homebrew ports
  • Acclerometer and gyro support for controllers on PC
  • Support for combo "Super Game Boy Color" SGB + GBC ROM hacks
  • Improved support for HuC-3 mapper, including RTC
  • Support for 64 kiB SRAM saves used in some bootlegs
  • Discord Rich Presence now supports time elapsed
  • Additional scaling shaders
  • Support for GameShark Advance SP (.gsv) save file importing
  • Support for multiple saves per game using .sa2, .sa3, etc.
  • Support for GBX format Game Boy ROMs
  • New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2)

Emulation fixes:

  • ARM7: Fix unsigned multiply timing
  • GB: Copy logo from ROM if not running the BIOS intro (fixes mgba.io/i/2378)
  • GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250)
  • GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925)
  • GB Audio: Properly apply per-model audio differences
  • GB Audio: Revamp channel rendering
  • GB Audio: Fix APU re-enable timing glitch
  • GB I/O: Fix writing to WAVE RAM behavior (fixes mgba.io/i/1334)
  • GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557)
  • GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
  • GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402)
  • GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290)
  • GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339)
  • GBA: Improve timing when not booting from BIOS
  • GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/2450)
  • GBA: Fix booting multiboot ROMs with no JOY entrypoint
  • GBA: Fix 1 MiB ROM mirroring to only mirror 4 times
  • GBA Audio: Adjust PSG sampling rate with SOUNDBIAS
  • GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency
  • GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes mgba.io/i/1059)
  • GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141)
  • GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/2410)
  • GBA I/O: Redo internal key input, enabling edge-based key IRQs
  • GBA I/O: Disable open bus behavior on invalid register 06A
  • GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307)
  • GBA Video: Fix OpenGL rendering on M1 Macs
  • GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391)
  • GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310)
  • GBA Video: Fix rare crash in modes 3-5
  • GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476)
  • GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443)
  • GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/1631)
  • GBA Video: Fix sprite layer priority updating in GL

Other fixes:

  • ARM: Disassemble Thumb mov pseudo-instruction properly
  • ARM: Disassemble ARM asr/lsr #32 properly
  • ARM: Disassemble ARM movs properly
  • Core: Don't attempt to restore rewind diffs past start of rewind
  • Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451)
  • Core: Fix crash if library can't be opened
  • Debugger: Fix crash with extremely long CLI strings
  • Debugger: Fix multiple conditional watchpoints at the same address
  • FFmpeg: Fix crash when encoding audio with some containers
  • FFmpeg: Fix GIF recording (fixes mgba.io/i/2393)
  • GB: Fix temporary saves
  • GB: Fix replacing the ROM crashing when accessing ROM base
  • GB: Don't try to map a 0-byte SRAM (fixes mgba.io/i/2668)
  • GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396)
  • mGUI: Fix FPS counter after closing menu
  • Qt: Fix some hangs when using the debugger console
  • Qt: Fix crash when clicking past last tile in viewer
  • Qt: Fix preloading for ROM replacing
  • Qt: Fix screen not displaying on Wayland (fixes mgba.io/i/2190)
  • Qt: Fix crash when selecting 256-color sprite in sprite view
  • Qt: Fix coloration of swatches on styles with distinct frame backgrounds
  • VFS: Failed file mapping should return NULL on POSIX

Misc:

  • Core: Suspend runloop when a core crashes
  • Core: Add wallclock offset RTC type
  • Debugger: Save and restore CLI history
  • Debugger: GDB now works while the game is paused
  • Debugger: Add command to load external symbol file (fixes mgba.io/i/2480)
  • FFmpeg: Support dynamic audio sample rate
  • GB: Support CGB0 boot ROM loading
  • GB Audio: Increase sample rate
  • GB MBC: Filter out MBC errors when cartridge is yanked (fixes mgba.io/i/2488)
  • GB MBC: Partially implement TAMA5 RTC
  • GB Video: Add default SGB border
  • GBA: Automatically skip BIOS if ROM has invalid logo
  • GBA: Refine multiboot detection (fixes mgba.io/i/2192)
  • GBA Cheats: Implement "never" type codes (closes mgba.io/i/915)
  • GBA DMA: Enhanced logging (closes mgba.io/i/2454)
  • GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276)
  • GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240)
  • GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962)
  • GBA Video: Fix highlighting for sprites with mid-frame palette changes
  • mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/871)
  • mGUI: Autosave less frequently when fast-forwarding
  • Qt: Rearrange menus some
  • Qt: Clean up cheats dialog
  • Qt: Only set default controller bindings if loading fails (fixes mgba.io/i/799)
  • Qt: Save converter now supports importing GameShark Advance saves
  • Qt: Save positions of multiplayer windows (closes mgba.io/i/2128)
  • Qt: Add optional frame counter to OSD (closes mgba.io/i/1728)
  • Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780)
  • Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754)
  • Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074)
  • Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455)
  • Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295)
  • Qt: Add e-Card passing to the command line (closes mgba.io/i/2474)
  • Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941)
  • Qt: Improve cheat parsing (fixes mgba.io/i/2297)
  • Qt: Change lossless setting to use WavPack audio
  • Qt: Use FFmpeg to convert additional camera formats, if available
  • Qt: Resume crashed game when loading a save state
  • Qt: Include cheats in bug report
  • SDL: Support exposing an axis directly as the gyro value (closes mgba.io/i/2531)
  • Windows: Attach to console if present
  • VFS: Early return NULL if attempting to map 0 bytes from a file
  • Vita: Add bilinear filtering option (closes mgba.io/i/344)

0.9.3 2021/12/17

Emulation fixes:

  • GB I/O: Fix incrementing SGB controller when P14 is low (fixes mgba.io/i/2202).
  • GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes mgba.io/i/2261).
  • GBA SIO: Fix SI value for unattached MULTI mode.
  • GBA Video: Fix backdrop color if DISPCNT is first set to 0 (fixes mgba.io/i/2260).
  • GBA Video: Don't iterate affine backgrounds when disabled.
  • GBA Video: Delay enabling backgrounds in bitmap modes (fixes mgba.io/i/1668).

Other fixes:

  • ARM Decoder: Fix decoding of lsl r0 (fixes mgba.io/i/2349).
  • FFmpeg: Don't attempt to use YUV 4:2:0 for lossless videos (fixes mgba.io/i/2084).
  • GB Video: Fix memory leak when reseting SGB games.
  • GBA: Fix out of bounds ROM accesses on patched ROMs smaller than 32 MiB.
  • GBA: Fix maximum tile ID in caching for 256-color modes.
  • GBA Video: Fix cache updating with proxy and GL renderers.
  • Libretro: Fix crash when using Game Boy codes (fixes mgba.io/i/2281).
  • mGUI: Fix crash if autosave file can't be opened (fixes mgba.io/i/2268).
  • Qt: Remove potentially deadlocking optimization.
  • Qt: Fix corrupted savestate and fatal error text.
  • Qt: Fix sprite compositing when sprite tiles go out of bounds (fixes mgba.io/i/2348).

Misc:

  • GBA I/O: Update KEYINPUT in internal I/O memory (fixes mgba.io/i/2235).
  • SDL: Use SDL_JoystickRumble where available.
  • Wii: Add adjustable gyroscope settings (closes mgba.io/i/2245).

External links

Advertising: