Difference between revisions of "Game Boy Advance emulators"

From Emulation General Wiki
Jump to navigation Jump to search
m (GH56734 moved page Nintendo Game Boy Advance emulators to Game Boy Advance emulators over redirect: nvm, I'm stupid - meant to move the GC one)
(Emulation issues)
Line 184: Line 184:
 
[https://github.com/libretro/vbam-libretro/blob/master/src/libretro/gbaconv/gbaconv.c command line tool] to convert libretro-VBA .srm save files to raw .sav save data for other emulators. You can just drag and drop a .srm onto the executable and it will output raw .sav. The same can be done in reverse. A precompiled Windows 64-bit binary of this tool can be found  
 
[https://github.com/libretro/vbam-libretro/blob/master/src/libretro/gbaconv/gbaconv.c command line tool] to convert libretro-VBA .srm save files to raw .sav save data for other emulators. You can just drag and drop a .srm onto the executable and it will output raw .sav. The same can be done in reverse. A precompiled Windows 64-bit binary of this tool can be found  
 
[https://www.mediafire.com/?6bg8ag0bjs1b7ng here].
 
[https://www.mediafire.com/?6bg8ag0bjs1b7ng here].
 +
 +
==Connectivity==
 +
===GBA Link Multiplayer (2~4GBA)===
 +
* VBA-M: This doesn't work with old VBA versions. Just disable "Pause when Inactive", configure all four joypads each with their own button layout, and open again VBA-M to have 2 to 4 windows.
 +
 +
* No$GBA: This method also works with DS roms, and that's the actual way to see the incomplete non-functional local Wi-Fi DS multiplayer implementation. (todo)
 +
 +
===GameCube Connectivity===
 +
The GBA unit can connect to a GameCube.
 +
 +
====Dolphin and VBA-M====
 +
 +
Game Boy connection support can be supported via joybus emulation. Such requires VBA-M (r947 or newer) and a dump of a GBA BIOS.
 +
* Open Dolphin and VBA-M (duh). Make sure neither are blocked by your firmware.
 +
* '''Dolphin:''' Start your game and play until you get to the in-game menu where you're asked to connect a GBA. Under the GC controller options (earlier "Config, Gamecube", now it's with the GC/Wii controller options). You have 4 GC controller ports: change how much you need to "GBA". Leave the game and its music running :)
 +
* '''VBA-M:''' You'll need to uncheck "Options, Emulator, Pause When Inactive". Then, under "Options, Link, Joybus Options", Make sure to enable "Enable Joybus Connection" and set "IP/Hostname" to use default settings, that is (127.0.0.1) or (localhost) - without the brackets.
 +
* THEN, Dolphin will freeze. You'll want to not have the system sound too high if you're using headphones.
 +
* '''VBA-M''': Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. There will be that splash screen but it will stutter a bit.
 +
* Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA unit was connected.
 +
* To connect other GBA units, open another VBA-M instance and repeat what you did with VBA-M.
 +
 +
Notable games that work:
 +
* The Legend of Zelda Four Swords Adventures: Both two modes available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well, but the game crashes after the naming screen due to a bug in the GC/GBA connectivity.
 +
* Final Fantasy Crystal Chronicles
 +
* Billy Hatcher: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
 +
* Kururin Squash
 +
* Sonic Adventure 2 (buggy)
 +
 +
Don't work:
 +
* The Legend of Zelda Wind Waker: Tingle Trainer connection always fails, though some messages do display on VBA-M.
 +
* Drill Land
 +
* lots more
 +
====Dolphin and other emulators====
 +
Dolphin devs are working at rewriting the entire GBA connectivity code in a far better way from scratch with more accurate emulators. They did a video using the higan emulator. Nothing of the sort is published at the moment.
 +
 +
===e-Reader Support===
 +
* No$GBA (todo)
 +
* VBA 1.7.2 (special e-Reader build) (todo)
 +
 +
For a few cases, with games like Super Mario Advance 4, one can simply get a sav file with the e-Reader levels already stored and Action Replay cheats being used to get e-Reader effects already stored in-game.
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]

Revision as of 19:23, 20 January 2015

The Gameboy Advance handheld console

The Game Boy Advance (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on March 21, 2001; in North America on June 11, 2001; in Australia and Europe on June 22, 2001.

Emulators

PC
Name Operating System(s) Latest Version GB/GBC GBA NDS Game Link Support Libretro Core Recommended
Visual Boy Advance-M (VBA-M) Multi-platform r1231
mGBA Multi-platform 0.1.0 ?
higan Windows, OS X, Linux 0.94
iDeaS Windows, Linux 1.0.4.0
MESS Multi-platform 0.264 ?
Meteor Linux 1.4
No$GBA Windows, MS-DOS 2.7b
Consoles
Name Operating System(s) Latest Version GB/GBC GBA NDS Game Link Support Libretro Core Recommended
TempGBA4PSP PlayStation Portable 26731013
Visual Boy Advance-M (VBA-M) Wii, Gamecube r1229 ✓ (as VBA-Next)
gpSP PlayStation Portable 0.9

Comparisons

  • gpSP last official version was 0.9 by Exophase. There are, however, two superior forks: gpSPmod and gpSP-J. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai.
  • Visual Boy Advance-M (VBA-M) is the best emulator for the GBA. RetroArch's VBA-Next is based off an older revision of VBA-M with added speedhacks and tweaks, making it a bit less accurate in some respects, though it fixes a few games such as Advance Wars 2.
  • higan's GBA core is cycle-accurate, but is otherwise very much a WIP and not as compatible as either version of VBA.
  • mGBA is a GBA emulator that aims to be accurate while maintaining speed.

Emulation issues

Oversaturation

Left showing the default game, and right showing VBA-M in "Gameboy Colors" mode

The original GBA screen was not backlit, which would render the screen rather dark. To compensate for this, games would be overly saturated. The bright overly saturated colors would appear rather normal on the GBA. In emulation however, this over saturation is not needed. Some games made after 2003 may look better with the backlit colors, however, as they were designed with the GBA SP in mind. For everything else, there are several ways to deal with this:

No$GBA

Under "Emulation Options", select "GBA Mode. There are four modes.

- GBA (no backlight) = strong desaturization

- GBA SP (backlight) = strong desaturization

- Nintendo DS in GBA mode = some desaturization

- VGA Mode (poppy bright): zero desaturization

VBA-M

- (VBA-M for Windows only) Under "Options->Gameboy" you will find the options:

- "Real Colors": no desaturization

- "Gameboy Colors": strong desaturization

Shaders

gameboy-colors.cgp

A .cgp shader preset can be loaded in OpenEMU or RetroArch that is meant to (sort-of) replicate the "Gameboy Colors" option in VBA-M using the image-adjustment Cg shader. The settings are parameters that are stored in the cgp and can be adjusted at runtime. The relevant parameters set for this effect are:

Target Gamma = 2.4

Monitor Gamma = 2.16

Saturation = 0.5

Luminance = 0.9

The colors will not be exactly the same as what VBA-M produces (a bit brighter and no washed out blacks) but it will get you the desaturation effect. Can be adjusted to fit your tastes, and you can get the washed out blacks by increasing "Brightness Boost" and decreasing Luminance a bit.

Save file issues

There are a number of different save formats for GBA games. With raw save data, it's very hard to detect what save type it is just by looking at it. Visual Boy Advance tries to autodetect save type but often is incorrect and this causes issues. A fix to this issue is to use a file called "vba-over.ini" to tell VBA what each game's proper save type is, which eliminates most issues regarding save type. Current VBA-M versions come with vba-over.ini by default, but older versions of VBA like VBA 1.7.2 and VBALink did not.

The libretro versions of VBA, libretro-VBA-Next and libretro-VBA-M, come with vba-over.ini baked into the binary so it is able to load raw .sav files, but also changes the save file output to be a 136KB .srm file for every save type, with save type info contained within the file. This completely avoids any save type issues, but makes its save files incompatible with standalone VBA and most other emulators.

Libretro devs created a command line tool to convert libretro-VBA .srm save files to raw .sav save data for other emulators. You can just drag and drop a .srm onto the executable and it will output raw .sav. The same can be done in reverse. A precompiled Windows 64-bit binary of this tool can be found here.

Connectivity

GBA Link Multiplayer (2~4GBA)

  • VBA-M: This doesn't work with old VBA versions. Just disable "Pause when Inactive", configure all four joypads each with their own button layout, and open again VBA-M to have 2 to 4 windows.
  • No$GBA: This method also works with DS roms, and that's the actual way to see the incomplete non-functional local Wi-Fi DS multiplayer implementation. (todo)

GameCube Connectivity

The GBA unit can connect to a GameCube.

Dolphin and VBA-M

Game Boy connection support can be supported via joybus emulation. Such requires VBA-M (r947 or newer) and a dump of a GBA BIOS.

  • Open Dolphin and VBA-M (duh). Make sure neither are blocked by your firmware.
  • Dolphin: Start your game and play until you get to the in-game menu where you're asked to connect a GBA. Under the GC controller options (earlier "Config, Gamecube", now it's with the GC/Wii controller options). You have 4 GC controller ports: change how much you need to "GBA". Leave the game and its music running :)
  • VBA-M: You'll need to uncheck "Options, Emulator, Pause When Inactive". Then, under "Options, Link, Joybus Options", Make sure to enable "Enable Joybus Connection" and set "IP/Hostname" to use default settings, that is (127.0.0.1) or (localhost) - without the brackets.
  • THEN, Dolphin will freeze. You'll want to not have the system sound too high if you're using headphones.
  • VBA-M: Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. There will be that splash screen but it will stutter a bit.
  • Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA unit was connected.
  • To connect other GBA units, open another VBA-M instance and repeat what you did with VBA-M.

Notable games that work:

  • The Legend of Zelda Four Swords Adventures: Both two modes available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well, but the game crashes after the naming screen due to a bug in the GC/GBA connectivity.
  • Final Fantasy Crystal Chronicles
  • Billy Hatcher: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
  • Kururin Squash
  • Sonic Adventure 2 (buggy)

Don't work:

  • The Legend of Zelda Wind Waker: Tingle Trainer connection always fails, though some messages do display on VBA-M.
  • Drill Land
  • lots more

Dolphin and other emulators

Dolphin devs are working at rewriting the entire GBA connectivity code in a far better way from scratch with more accurate emulators. They did a video using the higan emulator. Nothing of the sort is published at the moment.

e-Reader Support

  • No$GBA (todo)
  • VBA 1.7.2 (special e-Reader build) (todo)

For a few cases, with games like Super Mario Advance 4, one can simply get a sav file with the e-Reader levels already stored and Action Replay cheats being used to get e-Reader effects already stored in-game.