Exporting GameBases to Other Frontends

This page shows you how to get GameBase databases to run on arcade/mame/other frontends, using GEMUS as a backend for launching games so that they run correctly/optimally in emulators.


This all came about because I wanted to run some GameBase databases on my Arcade Cabinet.

Lets say, like me, you have built, or aquired an Arcade Cabinet, or a “MAME” machine, and you want to get GB64, or GameBase Amiga, or GBST, etc. to run on them. Well now you can! As of v1.3 of GameBase, it's possible to browse through your favourite GB databases running on your favourite arcade frontend, while still using GEMUS (Gamebase EMUlator Script) as a backend to run the games.

Why not just run the emulators directly from my arcade frontend? Good question. For many of the more popular GameBase databases, such as GB64 and GameBase Amiga, a load of work has been done to get the games running in the emulators as best as possible, with all the correct settings and controls. Emulators can be fiddly things, and some games just refuse to play ball unless everything is configured perfectly. GB64 and GameBase Amiga are great examples of this. So, by using GameBase (or more specifically GEMUS) to run the games, you're getting rid of a big potential headache, and saving yourself countless hours trying to figure our why game X doesn't run in emulator Y, etc.

Why do I need GameBase databases on my cab? Well, you don't really need them, but since *I* needed them, I thought there might be others out there with the same desires. Going back to the popular GB64, there's 20000 fully configured C64 games right there, with game info all collated as accurately as possible over a number of years (year, manufacturer/publisher, genre, etc). All the games have screenshots too, and that's just the tip of the iceberg really. GameBase Amiga is the same, thousands of games, all fully emulator-configured, with game info and screenshots. There are others, too. Sure, you don't need GameBase databases on your cab, but for a number of old retro systems you might just be missing out if you don't.


There are 2 stages involved:

  1. Convert your GameBase data into the format understood by your chosen arcade frontend.
  2. Setup your arcade frontend to launch the games using GameBase's GBLauncher.exe.

You will need

  • The GameBase frontend v1.3 or newer must be installed on your system
  • Your chosen databases must be setup correctly in the GameBase frontend
  • RomLister build 021 or newer - for converting gamelists to your arcade frontend's format

Supported Frontends

As of build 021 of RomLister:

  • Atomic FE
  • HyperSpin
  • Khameleon
  • MaLa
  • MAMEWah
  • Maximus Arcade
  • MultiFE

Exporting from GameBase

Select the View to Export

First step is to export your current view in GameBase, so load up your chosen GB database, and select the view you wish to export. You can export multiple views from GameBase, for example on my cab I exported the <All Games> view and the <Favourites> view, but you can export as many as you like. Lets start with the <All Games> view first (you'll see why in a minute)…

Export the View

Once you have your view displayed (only the list of games is important, the 2nd column is ignored as all needed data is read from the database during the export), select “View→Export to RomLister…” from the menus, or press CTRL+F7. You have the option of using the GameBase Game ID as the 'Rom Name', or the Game Filename. Either is fine, but if your chosen arcade frontend requires that the rom files actually exist when attempting to run emulators, then you should choose the Game Filename option.


You'll also want to tick the “Convert Screenshots” checkbox, and then click and select the destination folder that you want your converted screenshots to go. Most arcade/mame frontends expect the screenshots (or snaps) to be located in a single folder, with the same filename as the game/rom name. That's what this does; it copies them all to your specified folder, and renames them all using the game ID/Filename as the new filename (e.g. ”[screenshot-path]\p\pitfall2.png” may become ”[dest-path]\2944.png”).We're using the game ID/Filename as the screenshot name because we'll be using it as the “rom name” also, and we'll be passing this id/filename to GBLauncher.exe to run the games in the emulators. This is the reason it's best to export the <All Games> view first, because all of your screenshots will be converted, and you won't need to convert them again with any other views.

Exported Files

When finished exporting, you should have a new folder full of renamed screenshots and an XML file containing the exported view's data. The XML file will be in your GameBase frontend folder and will be named in this format:

[database-name]-[view-name]-(Game ID|Filename)-romlister-export.xml

In my case it was:

GameBase Amiga-All Games-(Game ID)-romlister-export.xml

Creating Gamelists in RomLister

Fire up RomLister and set the Input XML File to the exported one that GameBase just generated. Then all you should need to do is click “Go!” and choose your arcade frontend from the dropdown, then save the gamelist to a file.

Filtering in RomLister - You can't use *all* the filtering stuff in RomLister, as the exported XML file from GameBase doesn't contain all the usual MAME fields. This shouldn't matter much though as you can pre-filter stuff in GameBase anyway (i.e. create the exact filtered view you want to export). The category filtering checkboxes won't work for example, as GB Genres don't match up to MAME categories. You *can* however manually filter the list by using the search command at the bottom of the RomLister window.

Configuring your Arcade Frontend

I've only configured MaLa (that's what I use), but in theory the other frontends should all be quite similar in what's needed. Basically you have to import your newly generated gamelist (the one RomLister generated, not the one GameBase generated), set your screenshot/snap path to where your converted screenshots are, then configure the emulator executable and command line (we'll use GBLauncher.exe for that!)…

Using GBLauncher.exe

In MaLa, I chose GBLauncher.exe (it's in the GameBase frontend folder) as my emulator executable, I didn't assign a Rom Path (GBLauncher handles that!) and the command line I set to: db=“GameBase Amiga” id=%rom% wait=1

This tells MaLa to run GBLauncher.exe as the emulator, and pass to it the database name (GameBase Amiga), the %rom% (which MaLa grabs from the gamelist) as the GameBase game ID, and the wait flag (we want GBLauncher to wait until the emulator it launches has closed before quitting and returning to MaLa).

So the command line arguments for GBLauncher are as follows: -

  • db=gamebase-database-name (surround with quotes if contains spaces)
  • id=gamebase-game-id or fn=gamebase-game-filename
  • emu=emulator-index (the emulator index in GameBase's Emulator.ini - default is -1 [default emulator])
  • wait=1/0 (1 = wait for emulator to close before quitting, 0 [default] = quit immediately after running emulator)

Full GBLauncher.exe Documentation

Guides for other arcade frontends

Other Configuration

If you're running on an arcade cabinet, or using real arcade controls, you may need to tweak the GEMUS script of your chosen emulator to get it running correctly, mapping keys to joysticks, setting arcade monitor resolutions etc. I used a small program called Joy2Key to map emulator commands/keys to my arcade controls for both GB64 and GameBase Amiga, so maybe that will work for you, too. There's probably other similar utilities out there too.