ListGen Documentation

About ListGen
ListGen Command Line Options
Files Used by ListGen
Frontends Supported by ListGen
ListGen and MAME Movie Maker
Advanced List Generation
ListGen .NET

About ListGen

ListGen came about as a program to generate game lists for front end applications. Here are some of the reasons I created it.

ListGen Command Line Options

You can get a list of command line options by running ListGen with the -showusage option. Here are the options (default value in center column)
-output <string> output filename
-secondary_output <string> secondary output filename
-filter <string> filter.sql filter SQL filename
-frontend <string> moviebatch frontend name
-[no]verbose 0 verbose screen output
-[no]strip_description 0 Strip extra text from game descriptions
-us_version_priority <int> 0 set priority of US versions
-world_version_priority <int> 0 set priority of World versions
-japan_version_priority <int> 0 set priority of Japan versions
-euro_version_priority <int> 0 set priority of Euro versions
-[no]silent <0> no screen output at all
-[no]reuse_mame_data 0 Reuse MAME-generated data files each time program is run
-[no]use_clones 0 Include clones in list
-[no]unique 0 Include only unique games
-[no]audit_roms 0 remove game with roms not in rom path
-rompath <string> . set ROM path
-mamepath <string> . set MAME path
-mamename <string> mame.exe set MAME executable name
-catverpath <string> . Set path for catver.ini
-gameplaypath <string> . Set path for gameplay.ini
-nplayerspath <string> . Set path for nplayers.ini
-input <string> input filename (for listfilt)
-showusage / -su Show options
-version show version number
-boundary_path <string> . path to file of start and end frames
-boundary_file <string> filename of start and end frames
-[no]force_uppercase_romnames 0 force rom names in output to be upper case
-[no]force_lowercase_romnames 0 force rom names in output to be lower case
-[no]skip_final_step 0 use SQL result file as final output

Files Used by ListGen

External Files

catver.ini
The catver.ini file contains category information about all games in MAME.
Link to catver.ini website
Here's a short excerpt from catver.ini:

19xxj=Shooter / Flying Vertical
19xxjr1=Shooter / Flying Vertical
2020bb=Sports / Baseball
2020bba=Sports / Baseball
2020bbh=Sports / Baseball
280zzzap=Driving / 1st Person
3countb=Wrestling
3in1semi=Multiplay
3kokushi=Puzzle / Match *Mature*
3stooges=Shooter / Field
3wonders=Multiplay
3wonderu=Multiplay
40love=Sports / Tennis
47pie2=Tabletop / Mahjong *Mature*
47pie2o=Tabletop / Mahjong *Mature*
4dwarrio=Shooter / Flying Horizontal
4enraya=Tabletop
4in1=Multiplay
4in1boot=Multiplay
4psimasy=Tabletop / Mahjong *Mature*

Catver.ini contains the necessary information if you want to filter out certain categories, such as all mahjong games, or all mature-themed games, or all trackball games, and so on.

nplayers.ini

Here's what the authors of nplayers.ini had to say about their file:

"NPlayers.ini fills the "Players" column of your favourite MAME frontend letting you know how many players the game supports and if it's simultaneous play or not. You'll find more info in the text file included in the zip archive."

Here's an excerpt from nplayers.ini:

2020bb=2P sim
2020bba=2P sim
2020bbh=2P sim
280zzzap=1P
3countb=2P sim
3in1semi=???
3kokushi=2P sim
3stooges=3P sim
3wonders=2P sim
3wonderu=2P sim
40love=2P alt
47pie2=1P
47pie2o=1P
4dwarrio=2P alt
4enraya=2P sim
4in1=2P alt
4in1boot=2P sim
4psimasy=1P
600=2P alt
64streej=2P sim
64street=2P sim
720=2P alt
720g=2P alt

As you can see, the rom name is followed by a description of how many players can play, and whether gameplay is simultaneous (sim) or alternating (alt).

gameplay.ini

Gameplay.ini is distributed with the Kymaera front end application.

Here's what PacManFan, the maintainer of gameplay.ini, has to say:
"This file can be used by many MAME frontends to help in generating game lists based on :

   
    MNOP <- Max Number Of Players
    NOSP <- Number Of Simultaneous Players
    GamePlay <- One of several types 
    ControlLayout <- Basic Control Panel Layout

For the latest version of Gameplay.ini, go to: Kymaera home page"

Here's a short excerpt from gameplay.ini:

[puckman]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

[puckmana]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

[pacman]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

[puckmod]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

[pacmod]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

[hangly]
NOSP=1
MNOP=2
GamePlay=Alternating
ControlLayout=Single Player

As you can see, this file has more complete information on it than the nplayers.ini does.

ssf.txt

The SSF initials in the ssf.txt file stand for Skip Startup Frames.

boundary.txt

The boundary.txt file is maintained by a BYOAC member named Silver, and is used by MAME Movie Maker. Although MAME Movie Maker creates accurate attract mode loops for a great majority of games within MAME, some games could use a little tweaking. This file contains a list of rom names, each with a starting frame number and ending frame number. When fed into MAME Movie Maker, a movie will be created between those two specified frame numbers.

Files Generated by MAME

gamelist.txt

listfull.txt

Front Ends Supported

MAMEWah

ListGen and MAME Movie Maker

Advanced List Generation

ListGen.NET