Datfiles

If you want to use ClrMamePro with other emulators you can write a datfile or - if the emulator has an option to create a romlist- modify the engine.cfg.  Datfiles for a lot of emulators can be already found on my homepage.

It's easy to write a datfile for a different emulator. Just take a look at M.A.M.E.'s -listinfo output. ClrMamePro parses the following tags:

Standard tags:

set, name, cloneof, description, rom (name, size, crc, crc32), sample, sampleof and manufacturer

The order and the case doesn't matter ! The space between a tagname and its attribute or a '(' or ')' is important. The description name has to be in quotation marks. If you're using quotation marks within a name, use '\"'.

Example:

set (
name pacman
cloneof pacman
description "PuckMan (Japan set 1)"
rom ( name namcopac.6e size 4096 crc fee263b3 )
sample shot.wav
sampleof galaxian
)


ClrMamePro is able to read ROMCenter datfiles, too. Use them on your very own risk. ROMCenter is (C) by Eric Bole-Feysot.

ClrMamePro specific tags

ClrMamePro uses some datfile flags. These are:

game (
...
    rebuildto namco\english
...
)

rebuilds the files of this set to: rebuilderdestinationpath + "namco/english"


Engine.cfg

Normally you shouldn't modify engine.cfg !!! If you want to add a new emulator or new biosroms, you should contact me. But anyway...here is a short description of the engine.cfg syntax:

engine ( )

Each engine starts with this keyword. Be sure to keep spaces between the keyword and the brackets.

name

Name of the current engine. This name will be displayed in the settings window.

cachefile

Filename of the cache-file in the <clrmamepro>\cache folder.

command

Parameter for the binary to produce a romlist. E.g. MAME.EXE produces a romlist when calling MAME.EXE -listinfo. If no command keyword is given, the engine will be a datfile engine. The enginename isn't a binary and will be handled as a pure datfilename.

replace x y

Means that special keywords x in the romlist will be replaced by new keywords y. For example: replace crc32 crc will replace crc32 tags with crc. Of course you can only replace keywords. Available keywords for y are:

cloneof
description
game
name
crc
romname
size
rom
sampleof
sample
manufacturer


biosset ( ... )

Biossets are separate rom sets which normally contain BIOS roms. Like neogeo.zip in MAME has all neogeo BIOS roms.

name

The name of the file/folder where the emulators look for the biosfiles. E.g. neogeo

description

This name will be displayed in the scanner / rebuilder.

rom ( name ... crc ... size)

name of a bios roms, crc32 of a bios rom and size of a bios rom.

hidein

Use this instead of a name tag if the bios is a modified version of a different set. Clone sets are activated or deactivated if their parent is activated or deactivated. The name after cloneof is the name of the parent biosset.

Example:

The current MAME engine looks like this:

engine (
name MAME
cachefile _mamedat
command -listinfo
biosset (
name neogeo
description "NeoGeo"
rom ( name neo-geo.rom crc 0x9036d879 size 131072 )
rom ( name ng-sfix.rom crc 0x354029fc size 131072 )
rom ( name ng-sm1.rom crc 0x97cf998b size 131072 )
)
biosset (
hidein neogeo
description "irrmaze NeoGeo BIOS 'im_bios.rom'"
rom ( name im_bios.rom crc 0x853e6b96 size 131072 )
rom ( name ng-sfix.rom crc 0x354029fc size 131072 )
rom ( name ng-sm1.rom crc 0x97cf998b size 131072 )
)
biosset (
name playch10
description "Nintendo Playchoice 10"
rom ( name pch1-c.8k crc 0x9acffb30 size 8192 )
rom ( name pch1-c.8m crc 0xc1232eee size 8192 )
rom ( name pch1-c.8p crc 0x30c15e23 size 8192 )
rom ( name pch1-c.8t crc 0xd52fa07a size 16384 )
rom ( name 82s129.6f crc 0xe5414ca3 size 256 )
rom ( name 82s129.6e crc 0xa2625c6e size 256 )
rom ( name 82s129.6d crc 0x1213ebd4 size 256 )
)
biosset (
name cvs
description "Century Electronic Video System"
rom ( name 5b.bin crc f055a624 size 2048 )
rom ( name 82s185.10h crc c205bca6 size 2048 )
)
)