PogoShell GBA

From GameBrew

AuthorSasq (Jonas Minnberg)
Last Updated2004/07/12
TypeFile Browsers
Version2.0 Beta 4

Pogoshell is a replacement for the menu-program you get when you put several roms on your flash cart. But it's more than that since it actually uses a filesystem with directories so you can put roms along with other files just like you would on your computer. Pogoshell can be extended to handle different file types (like playing music, running nes and spectrum games, viewing pictures etc), almost like on a real OS.

It also has an SRAM filesystem that lets you have much more than 4 saves at a time on your flashcart.


Copy some games/roms/texts to the root folder.

Run BUILD.BAT to build a rom from your root directory Now you can either:

  • Run TEST.BAT to test your rom in Visual Boy Advance.
  • Flash flashme.gba to your cart.


  • If you have a Turbo FA or XG1, double click BUILD.BAT to generate the rom you need.
  • If you have an XRom cart, double click BUILD_XROM.BAT.
  • A lot of games doesnt start on XRom if you haven't sram-patched them.
  • If you've generated a file larger than 256MBit (32MByte) it won't work in the emulator since VBoy Advance doesn't handle it.

User guide


You don't have to bother with users if you don't want to, but L+SELECT lets you choose between the users that are defined in .shell/users.

Different users will not see each others sram-saves, but you can use Copy/Paste to copy a file from one user to another.

User 100 is the textreader and all generated indexes are saved as that user.


Right now, ".shell/default.theme" is loaded - rename one of the others to use that. The themes basically define the GUI components - feel free to experiment.

The tool bmp2bm is used to create icons and backround bitmaps.

It's extremely primitive at the moment, just bmp2bm <infile> <outfile> and pure green becomes transparent.

Also note that the theme-file actually defines the whole GUI so you can't change it any way you want - the basic components must be there.

File extentsion


  • Normal GBA-roms.


  • Also gba-roms, and the recommended extention for pogoshell plugins.
  • BIN-files are treated somewhat differently by MAKEFS (they are never patched in anyway and are sorted so they appear before other files in the adress-space of the rom-image).


  • Simple bitmap files used by pogoshell. The format is
    • HEADER (8 Bytes)
    • "BM".w bpp.w width.w height.w
    • Followed by width*height*(bpp/8) bytes of pixeldata
  • Normally bpp=16.


  • Potoshells font files, more later.


  • Multiboot files - executable files that are loaded into WRAM to be executed.
  • Can be run even on unsupported carts since they don't require changing the romstart.


  • Compressed Multiboot files (Use DCMP to compress).
  • Both MB and MBZ can be used as plugins.
  • (A good idea since it both saves space and makes those plugins work on non-supported carts).


  • Describes the layout and look of PogoShells gui.
  • Pogoshell always loads "default.theme" from the Theme-dir defined by pogo.cfg.


  • Nintendo 8bit music-files, check Zophar's Domain for a lot of these.
  • Can be played by the nsf.bin plugin (but that plugin only works reliably on Turbo FA like carts).


  • Textfiles, can be read by PogoShells internal text-reader.
  • The textreader also handles text-files with extra formatting characters in them, which can be produced using the HTML2POGO tool.


  • Amiga music modules, playable by PogoShell's internal module-player.


  • Windows Bitmap files, can be displayed by PogoShells BMP-viewer.


D-Pad - Navigate

A - Enter, Execute

B - Back

L+Select - Switch user

L+Start - Settings

L+A - Reset cart

R+A - Start with introskip


pogoshell3.png pogoshell4.png pogoshell5.png


Carts supported for version 2.0 beta 4: Visoly/F2A, XG1, XRom.

Note that PogoShell can be used with any flaschart, but only supported carts can start roms and use SRAM.


v2.0 Beta 4

  • Large (more than 256MBit) cart support - only tested for XRom 512MBit.
  • Fixed whitescreen bug.
  • Cleaned up makefs and other tools, now works better.
  • A few more bugfixes and cleanup
  • NOTE: The large cart support works by putting all GBA-files last in the cart image and making sure pogoshell doesn't need to read those before starting a game, which means that the total size of non-games still can't be larger than 256MBit (so if you had your heart set on making a cart with 60 Megs of nes-roms you're still out of luck).

v2.0 Beta 3 + Source

  • X-Rom support.
  • Small bugfixes.
  • Source release (full source for libpogo, pogoshell and tools).
  • This release is mainly for X-Rom support and to get the source out (so more carts can be supported).
  • Many thanks to the following companies for sending me flashcarts to test on: XGFlash, Easybuy2000.com, EZ-FLASH.

v2.0 Beta 2

  • Auto SRAM conversion.
  • More compatible romstart.
  • New config layout.
  • Settable SRAM size.
  • Icon size can be changed.
  • Color of marked line can be changed.
  • Some othe minor fixes.

v2.0 Beta

  • XG1 Support.
  • Unified SRAM (one big bank).
  • Completely themable (new GUI system) with background graphics and scrollbars.
  • Color fonts.
  • 16bit graphics.
  • Internal BMP viewer.
  • Simple multiuser (to have multiple saves for one game).
  • Preliminary RTC Support.
  • A big thanks to XGFlash for sending me carts to test on.


  • Much improved text-reader.
  • Halts and turns off sound, should drain much less battery.
  • Simple splashscreen functionality.
  • Included the previously released new mod & bmp plugins.
  • Sets up hardware to default values before starting games, should be much more compatible (allthough I can not get Pinball Deluxe to start without reset, grrr.
  • Merged in about half of Hergs changes (most settable options except scroll arrows).
  • Experimental XG/EZFlash support with "pluggable" rom switching code (can be replaced to support other carts).
  • Save files are now connected to plugin instead of the selected file - this is usually the best behaviour.


  • Added option to sort alphabetically.
  • Added option to hide filesizes.
  • Added option to show scroll indicators.
  • Fixed scaling bug.
  • Fixed multiboot bug added in v1.11.
  • Included updated bmp plugin written by Sasq.
  • Included jpg plugin written by Chuck Chilton.
  • Included PogoNes v8u6 written by Loopy and Flubba (with Link Transfer fix by Herg).


  • Fixed invalid header problem.


  • Added Send via Multiboot feature.
  • Added Always Introskip setting.
  • Added ability to load raw save files from /.saves directory in ROM.
  • Multiboot ROMs (*.mb) now save to sram filesystem.


  • Plugins (including PogoNES) can now save to sram filesystem.
  • Added Auto manage SRAM banks setting.
  • Old save is not removed if new one won't fit.
  • Games without SRAM don't save empty file any more.


  • Source released.
  • Save files from long ROM names should work now.
  • Texts couldn't be longer than 128 bytes, the limit is now 256 bytes.
  • SRAM bank is now set to first even when starting a plugin.
  • A bug in reading keys in the textviewe is fixed.


  • Added SRAM consistency check.
  • Added fgcolor to gui.cfg.
  • Fixed bug in Easter-egg.


  • Fixed a bug that trashed the SRAM-system bank 1 when you started a game without loding a save-file.
  • Added start with Reset (L+A) that should fix roms that wont start normally (like TOD). Intro-skip is now on R+A.
  • MAKEFS now fixes all roms it adds to the filesystem, except plugins.


  • New savefiles (savename does not have to match romname).
  • Text changable (for translations).
  • Better themes (you can make your own icons).
  • Bugfixes.
  • An Easter-egg. see if you can find it.


  • Configuration system.
  • Remade SRAM file operations.
  • Intro skipper.
  • Help screens.
  • MAKEFS changes:
    • (Experimental) support for turbo carts.
    • Fixes filenames (cuts basename and lowercases extention).


  • Modplayer now handles codewave songs, and lz77 compressed songs.
  • Gamma correction in BMP viewer.
  • An optional 2D (Icons) layout instead of list.
  • Recompiled in THUMB (Duh!) for much smaller bin-size.
  • Some bugfixes.


  • Checks if SRAM is full.
  • Fixed a bug that dropped the last byte of save-files.
  • FIxed a bug that crashed the text-reader.
  • Halts the CPU to save batteries.

External links