GBA Movie Player

From PHWiki

This article is about version 2 of the GBA Movie Player. For version 3 of the GBAMP, see M3.

The GBA Movie Player, or GBAMP for short, is a peripheral that connects to the GBA cartridge slot of a GBA or DS. It uses a CompactFlash or Secure Digital card to store data and comes with Windows-only software to convert video, audio, and images into special formats the device can read.

The GBAMP is a media device and not a full-fledged flash card for running roms or homebrew applications. It's much too slow to play regular GBA roms, but it can use nearly all multiboot compatible roms as well as emulators like PocketNES, Goomba and SMSAdvance to play NES, Game Boy and Master System games with some limitations. The newer SD version of GBAMP is even more limited than the previous CF version.

Contents

Technical Specifications

  • CompactFlash or Secure Digital card for storage
  • 512KB internal flash for firmware
  • Saving only with special versions of PocketNES and Goomba

Features

  • Video playback with sound
  • Audio playback, optionally with synchronous lyrics
  • Viewing images (uncompressed BMP format)
  • E-Book (text file) viewer, with bookmarking.
  • Playing NES, GB, SMS, and GBA multiboot, with some limitations; see List of GBA multiboot games

Versions

1st CompactFlash

GBAMP 1st CF version
Enlarge
GBAMP 1st CF version

The first version of the GBAMP was large, black, and clunky, and also had a GBA cartridge slot. You needed a GBA cartridge in the slot in order for it to work. A switch on the side lets you play the GBA game without having to remove the device.

2nd CompactFlash

GBAMP 2nd CF version
Enlarge
GBAMP 2nd CF version

The second version was much smaller and didn't require a GBA cartridge to work. Also, the CF card is inserted in the side of the device, meaning it is impossible to remove the card while the GBAMP is inserted, reducing the possibility of corrupting your CF card.

Secure Digital

GBAMP SD version
Enlarge
GBAMP SD version

The Secure Digital version of GBAMP was released in 2006. It is much less compatible with homebrew applications than the previous CF version. With an update from the official website, some DS homebrew works with it, although support is limited. Physically, it's about 1cm shorter than the 2nd CF version.

The M3, while also having "GBA Movie Player" on the label is a very different product from the 1st and 2nd versions of the GBAMP and works more like a conventional GBA flash card.

Media Features

Video playback, while passable, tends towards the blocky side. The framerate is also quite limited.

Audio quality sounds almost FM radio quality at the best setting - decent, but not better than, say, a 64kbit MP3 stream.

Reading text with the GBAMP works quite well. While it only supports plain text files, you can listen to audio and read text at the same time, and bookmark your place before turning off the GBA. Multiple font sizes are available, as well as support for European language encodings, Cyrillic, Hebrew, Turkish, Greek, Hebrew, and Vietnamese.

Emulation on GBA

The GBAMP is just an adaptor for CF/SD flash cards and these are much too slow to play regular GBA ROMs. It can run some software that's loaded completely into the GBA RAM before executing, but as the name implies, the GBAMP really is made primarily for audio and video playback.

By using the PocketNES, Goomba and SMSAdvance emulators you can play NES, GB and SMS games. The first GBAMP versions of these emulators were adapted from emulators designed to run on GBA flash cards. Because they needed to be fully loaded into RAM to run, they are limited to using ROMs small enough to fit into the GBA RAM, roughly 224KB for NES and 192KB for GB.

Later, customized versions of PocketNES, Goomba and SMSAdvance were released that can overcome the size restrictions through virtual memory techniques, by "paging" parts of the games in and out of the GBA's RAM. This only works with the CF version of GBAMP, and often with reduced speed and noticeable load times. These versions can also save a game's SRAM to a file on the CF card.

Nintendo DS Homebrew

To run DS Homebrew on any GBA Movie Player, you will need NoPass or PassMe. PassMe2 does not work, and original PassMe works only with an old DS. FlashMe users can force GBA mode by holding Select while powering on the DS.

GBAMP CF: With the GBAMP NDS Firmware Hack, a DS booted with NoPass, PassMe, or FlashMe will attempt to load the file _BOOT_MP.nds from the CF card.

GBAMP SD: With the latest version of official GBAMP firmware, a DS booted with NoPass, PassMe, or FlashMe will attempt to load the file _BOOT_MP_1234.nds from the SD card. Programs designed for the CF version will have to be recompiled in order to read from the SD card, and they currently cannot write to the SD card.[1]

Nintendo DS Piracy

There is a GBAMP hack of Max Overload (originally for the MAX Media Player) that can patch some commercial roms to work on the GBAMP CF version.

General Limitations

The GBAMP is nothing more than an interface to a CF/SD card (used much like a PC disk drive) and 512KB of built in movie playback software. Everything related to emulators has to be done entirely within the GBA's 384KB of total memory. With an emulator running, there is usually 192KB to 256KB of memory left, depending on which emulator it is. (Only Pocketnes_compy can fit 256KB games in memory at once.)

Using a flash cartridge, there's this nice huge 32,768KB of ROM that's directly accessable. Games can run directly from there, and you can fit tons of them on there.

Using the GBAMP, there's 256KB or less RAM available, and there's the equivalent of a disk drive, the CF card. So it has to load stuff off the disk (the CF). Portions of the game have to be juggled around between disk and memory, and it must load pages off the disk as needed. Loading off a CF card is slow, you can see the load times. If there's less than enough memory to hold the game's "working set" (the parts that the game keeps using over a period of about a second), then it starts to "thrash", or run really slowly.

The main reason there are special versions is that the GBAMP software itself assumes you are using the version originally designed for NOR flash cartridges, which can also load games on in Multiboot Mode, where a game must fit into the available RAM. The special versions use file system and sector reading code to directly access the CF card, bypassing the GBAMP's built in software, so they can load bigger games.

SNES Advance will never be able to run with the GBAMP. This is because the GBAMP provides no extra addressable memory to the GBA, so the emulator's code, work space, and game must fit within the GBA's 384k of total memory.
SNES Advance is heavily bound by the GBA's limitations, and will never work on any GBAMP, since there is no way to directly address a SNES rom. The development work on SNES Advance has been redirected to SNES DS, which is much better thanks to the enhancements of the DS hardware versus the GBA.

See also articles NAND and NOR and block device for more info on the different types of flash chips and why the GBAMP is too slow.

SD Version Limitations

With a GBAMP SD, your options are very limited.

GBAMP SD does not support writing to the card at all. The firmware hack needed to run DS homebrew is only for the CF version; the SD version uses a different hack.

Some emulators for GBA do work, but in a very limited fashion. You CAN play NES games up to 256 KB in size. Ignore the misleading 257 KB figure from Windows Explorer, that's from adding the 16 byte iNES header[2] to 256 KB and rounding up. Go download Pocketnes_compy from the Unofficial Pocketnes Versions Here thread, add the pocketnes.gba file to the root of your CF/SD card (replacing an older one if necessary), and use the included NesPack tool to compress your NES roms.

You can also play Game Boy roms up to 128 KB in size with Goomba or Goomba Color. There are very few GBC roms that small, and the only small GBC rom worth playing is the freeware game Sqrxz.

You can also play SMS or Gamegear games up to 128 KB in size using SMSAdvance and a rom builder to create a single GBA file for each rom. Most Cologne games work fine. MSXAdvance can be used with almost every game, and there are very few games that are too large. PCEAdvance can works with the few games that are 129 KB or smaller, but version 7.5 will not work, a previous version is needed.

The main reason for all the limitations is that as of December 2006, nobody in the GBA homebrew community has recompiled the CF-aware emulators to read disk sectors from the SD drive on the GBAMP SD, and the manufacturer has released information on how to read, not write.

Homebrew Utilities

Unless otherwise specified, these tools are for the GBAMP CF version only.

Some DS utilities:

Some GBA utilities:

See Also

Playing GBAMP videos on a PC, M3, SuperCard

External Links