OK a few of you may know that yeeeeeaars ago I created a multi-emulator frontend called
GameBase. It's mostly been used for
GB64 (C64 games) and
GameBase Amiga (Commodore Amiga games), but more recently there have been quite a few other
databases for other systems emerging ranging from consoles to very old 8-bit computers. One of the main things with the GameBase databases is that most of them have been specifically created to enable automated running of the games as perfectly as possible in their emulators (i.e. with the best possible settings). This is especially important (and used to great effect) in GameBase Amiga where the sheer number of WinUAE options makes it hard (without using GameBase) to run all the games correctly without constant config fiddling etc. The other thing with GB databases is that there are usually lots of screenshots, info, and other extras for each game, making them just as much an encyclopedia as opposed to something that just launches games. My own interest in the GameBase databases is really for GB64 (over 20000 C64 games) and GB Amiga (I think over 3000 amiga games). Now I have
my cab up and running, I naturally want to play all those C64/Amiga games on it, via an arcade frontend instead of via my aging 'windowed' frontend.
There are 2 problems.
The first is that no current frontend I know of can easily get games running in an emulator the same way that GameBase does. GameBase uses a combination of game settings (from the database) and a custom script that tells it to do stuff like add command line parameters, write to ini/config files etc. Currently the only way to run games how they are configured in GameBase is from GameBase.
The second problem is how to get the game lists (and roms/game-files, screenshots) exported from GameBase and imported into the popular cab frontends. GameBase "roms" can be stored in subfolders (the rom path for each game is stored in the database), and so can the screenshots. GameBase stores all its game information in an MS Access (.mdb) database.
I think I've sorted the first problem. I've just created a small app, called GBLauncher, that will take command line parameters and run a GameBase game using all the correct emulator settings and the desired script file. It has no UI so can be used as a proxy emulator launcher in an arcade frontend (such as MaLa). For those interested you can grab a beta copy here:
http://www.leesti.com/GBLauncher.exe . You will need to put it in your GameBase frontend folder and call it with the following command line parameters:
GBLauncher.exe db=X id=Y emu=Z
where: X is the database name (e.g. GB64), Y is the game ID (e.g. 1234), and Z (optional) is the emulator index (if omitted it uses the default emulator, same as pressing the "Play Game" button in GameBase). Each time you run it, a log will be created in GBLauncher.log (in your GB folder).
I've tested it on my cab and it works pretty well, so if anyone else would like to beta test it I'd be grateful to get some feedback. NOTE: You will (currently) get UI elements pop up if you have game rezipping turned on, or your GEMUS script is set to prompt for user interaction (i.e. asking a question or showing the current emulator command line for editing).
As for the second problem, I'm thinking of adding an "Export to RomLister XML" option in the GameBase frontend, which will take the current Gamelist/view and output an XML file compatible with RomLister. RomLister could then be used to generate gamelists for the popular arcade frontends.
I'm thinking this might be the easiest way of getting GB databases on people's cabs (if there is any interest for it, of course
), but if anyone has a better idea please let me know. I use MaLa myself, but I'm pretty unclear how MaLa is expecting the rom path and screenshot/snap paths to be setup (can you have sub-paths?). As for the other frontends I have no idea as I don't use them. Basically I need to know if I'll have to write something that "moves/copies" the GameBase-structured game-file/screenshot paths to something simpler (like a single folder for each).
Sorry for rambling, hopefully there will be some interest, but if there isn't I won't be offended.