Documentation of the AdvanceMENU advmenu program.

1 Synopsis

advmenu [-default] [-remove] [-cfg FILE]
    [-log] [-version] [-help]

2 Description

AdvanceMENU is a front-end to for AdvanceMAME, AdvanceMESS, and any other emulator.

Simply run it in the same directory of the emulator and press `f1' to get the help screen or `~' for the main menu.

Press `tab' to change the display mode. Press `space' to change the preview mode.

To run a game press `enter'. Press `esc' to exit.

The major features are:

The sections of this document are:

1 Synopsis
2 Description
3 Options
4 Emulators
4.1 generic - Generic emulator
4.2 advmame - AdvanceMAME
4.3 advmess - AdvanceMESS
4.4 mame - Windows MAME
4.5 dmame - DOS MAME
4.6 dmess - DOS MESS
4.7 draine - DOS Raine
5 Configuration
5.1 Global Configuration Options
5.1.1 config
5.1.2 emulator
5.1.3 emulator_roms/roms_filter/altss/flyers/cabinets/icons/titles
5.1.4 mode
5.1.5 mode_skip
5.1.6 sort
5.1.7 preview
5.1.8 preview_expand
5.1.9 preview_default_*
5.1.10 icon_space
5.1.11 merge
5.1.12 game
5.2 Display Configuration Options
5.2.1 device_video_*
5.2.2 display_size
5.2.3 display_resizeeffect
5.2.4 display_restoreatgame
5.2.5 display_restoreatexit
5.2.6 display_orientation
5.2.7 display_brightness
5.2.8 display_gamma
5.3 Sound Configuration Options
5.3.1 device_sound_*
5.3.2 sound_volume
5.3.3 sound_latency
5.3.4 sound_buffer
5.3.5 sound_foreground_EVENT
5.3.6 sound_background_EVENT
5.3.7 sound_background_loop_dir
5.4 Input Configuration Options
5.4.1 device_keyboard/joystick/mouse
5.4.2 mouse_delta
5.5 User Interface
5.5.1 ui_autocalib
5.5.2 ui_text/bar_font/menu_font
5.5.3 ui_text/bar_size
5.5.4 ui_background
5.5.5 ui_exit
5.5.6 ui_startup
5.5.7 ui_help
5.5.8 ui_gamemsg
5.5.9 ui_game
5.5.10 ui_skiptop/bottom/left/right
5.5.11 ui_skiphorz/vert
5.5.12 ui_topbar/bottombar/scrollbar/outline
5.5.13 ui_topname
5.5.14 ui_name
5.5.15 ui_color
5.5.16 ui_clip
5.5.17 ui_translucency
5.5.18 ui_command
5.5.19 ui_command_menu
5.5.20 ui_command_error
5.5.21 ui_menukey
5.5.22 ui_console
5.6 Input Configuration Options
5.6.1 device_keyboard/joystick/mouse_*
5.6.2 input_hotkey
5.6.3 lock
5.6.4 event_assign
5.6.5 event_repeat
5.6.6 event_mode
5.6.7 event_alpha
5.7 Other Configuration Options
5.7.1 idle_start
5.7.2 idle_screensaver
5.7.3 idle_screensaver_preview
5.7.4 group/type
5.7.5 group/type/desc/info_import
5.7.6 misc_exit
5.7.7 misc_quiet
6 Formats Supported
7 Signals
8 Copyright

3 Options

-default
Add to the configuration file all the missing options with default values.
-remove
Remove from the configuration file all the options with default values.
-cfg FILE
Select an alternate configuration file. In Linux and Mac OS X the you can prefix the file name with "./" to load it from the current directory.
-log
Create the file `advmenu.log' with a lot of internal information. Very useful for bug report.
-verbose
Print some startup information.
-version
Print the version number, the low-level device drivers supported and the configuration directories.
-help
Print a short command line help.

In Linux and Mac OS X you can also use `--' before options instead of `-'. In DOS and Windows you can also use `/'.

4 Emulators

The program supports many type of emulators. The emulators AdvanceMAME, AdvanceMESS, MAME, SDLMAME, DMAME, DMESS and DRAINE are directly supported and the only thing you should do is to run the AdvanceMENU program in the same directory of the emulator.

All the other emulators are supported with the emulator type `generic'.

4.1 generic - Generic emulator

For the `generic' emulator no additional rom information is needed. Only the name and the size of the rom files are used.

You should specify all emulator information and directories with the `emulator' and `emulator_*' options in the `advmenu.rc' file.

You need to use at least the `emulator' and `emulator_roms' options to inform AdvanceMENU how to run the emulator and where to find the roms.

For example:

emulator "snes9x" generic "c:\game\snes9x\snes9x.exe" "%f"
emulator_roms "snes9x" "c:\game\snes9x\roms"
emulator_roms_filter "snes9x" "*.smc;*.sfc;*.fig;*.1"

emulator "zsnes" generic "c:\game\zsnes\zsnes.exe" "-e -m roms\%f"
emulator_roms "zsnes" "c:\game\zsnes\roms"
emulator_roms_filter "zsnes" "*.smc;*.sfc;*.fig;*.1"

The various %s, %f, %p, ... macros are explained in the `emulator' option description.

The roms are searched in the path specified with the `emulator_roms' option in the `advmenu.rc' file. For every file found (with any extension) a game is added in the menu. You can filter the files with the `emulator_roms_filter' option.

All the snapshots are searched in the directories specified with the `emulator_*' options using the same name of the rom file.

If you want, you can manually write a MAME like information file and name it as `ENUNAME.lst'. This file has the same format of the output of the `-listinfo' MAME command. Actually only the information `game', `name', `description', `year', `manufacturer', `cloneof' are used. Please note that this file is used only to add information at the existing games. The games present in this file are not automatically added at the game list.

4.2 advmame - AdvanceMAME

For the `advmame' emulator type the roms information is gathered from the file `ENUNAME.xml'. If this file doesn't exist, it's created automatically with emulator `-listxml' command.

The directories specified in the `dir_rom' option in the `advmame.rc' file are used to detect the list of the available roms. In the DOS and Windows versions of the program the `advmenu.rc' file is searched in the same directory of the emulator. In the Unix version it's searched in the `HOME/.advance' directory.

The directory specified in `dir_snap' is used to detect the list of available snapshots.

4.3 advmess - AdvanceMESS

For the `advmess' emulator the rom information is gathered from the file `EMUNAME.xml'. If this file doesn't exist, it's created automatically with emulator `-listxml' command.

The directories specified in the `dir_rom' option in the `advmess.rc' file are used to detect the list of the available bioses.

All the directories listed in the option `dir_image' are read and all the files found in the `machine' directories are inserted as software if the extension is recognized as a valid device extension for the current `machine' or if it's a `zip' file. For example if the `dir_image' options is `c:\software', AdvanceMENU scans the directories `c:\software\ti99_4a', `c:\software\sms', `c:\software\gameboy'... Files in the main directory `c:\software' are NOT checked.

When you select to run a zip file, the zip file is opened and all the files in the zip with a valid name and with a recognized device extension are added at the AdvanceMESS command line. A file is considered to have a valid name if has the same name of the zip of if it has the name of the zip with an additional char. For example in the file `alpiner.zip' the files `alpiner.bin', `alpinerc.bin' and `alpinerg.bin' have a valid name. This feature can be used to group all the required roms to play a software in a single zip file.

The file extension is also used to correctly select the device type when calling AdvanceMESS.

The directory specified in `dir_snap' is used to detect the list of available snapshots. At any exit of AdvanceMESS if a new snapshot is created, this file is moved to the correct `snap\system' directory renaming it as the software started. For example, suppose that you run the `ti99_4a' system with the software `alpiner'. If you press F12 during the emulation, the file `snap\ti99_4a.png' is created. When you return to AdvanceMENU the file is moved automatically to `snap\ti99_4a\alpiner.png'.

4.4 mame - Windows MAME

For the `mame' emulator the roms information is gathered from the file `EMUNAME.xml'. If this file doesn't exist, it's created automatically with emulator `-listxml' command.

The directories specified in the `rompath' option in the `mame.ini' file are used to detect the list of the available roms.

The directory specified in `snapshot_directory' is used to detect the list of available snapshots.

4.5 dmame - DOS MAME

For the `dmame' emulator the roms information is gathered from the file `EMUNAME.xml'. If this file doesn't exist, it's created automatically with emulator `-listxml' command.

The directories specified in the `rompath' option in the `mame.cfg' file are used to detect the list of the available roms.

The directory specified in `snap' is used to detect the list of available snapshots.

4.6 dmess - DOS MESS

For the `dmess' emulator the roms information is gathered from the file `EMUNAME.xml'. If this file doesn't exist, it's created automatically with emulator `-listxml' command.

The directories specified in the `biospath' option in the `mess.cfg' file are used to detect the list of the available bioses.

All the directories listed in the option `softwarepath' are read and all the `zip' files found in the `subsystem' directories are inserted as software. For example if the `softwarepath' options is `c:\software', AdvanceMENU scans the directories `c:\software\ti99_4a', `c:\software\sms', `c:\software\gameboy'... Zips in the main directory `c:\software' are NOT checked.

When you select one of these entries the zip is opened and is searched the first file with the same name of the zip but different extension. This file is used as the argument of the `-cart' option when running `mess'. AdvanceMENU is NOT able to use other supports like `-flop'.

All the aliases present if the `mess.cfg' are inserted as software entries. When you select one of these entries the `mess' option `-alias' is used to start the game.

You can set an arbitrary description on an alias specification adding it on the same line of the alias after the comment char '#' using this format:

ALIAS = ALIAS_DEF # Description | YEAR | MANUFACTURER

For example:

[ti99_4a]
ti-inva = -cart ti-invac.bin -cart ti-invag.bin \
    # Invaders | 1982 | Texas Instrument

At any exit of the emulator if a new snapshot is created, this file is moved to the correct `snap\system' directory renaming it as the software started. For example, suppose that you run the `ti99_4a' system with the software `alpiner'. If you press F12 during the emulation, the file `snap\ti99_4a.png' is created. When you return to AdvanceMENU the file is moved automatically to `snap\ti99_4a\alpiner.png'.

4.7 draine - DOS Raine

For the `draine' emulator the roms information is gathered from the file `EMUNAME.lst'. If this file doesn't exist, it's created automatically with emulator `-gameinfo' command.

All the directories specified in the `rom_dir_*' options are used to detect the list of the available roms.

The directory specified in `screenshots' is used to detect the list of available snapshots.

5 Configuration

The file `advmenu.rc' is used to save the current state of the front-end. It's read at startup and saved at exit. You can prevent the automatic save at the exit with the `config' option.

In DOS and Windows the configuration options are read from the file `advmenu.rc' in the current directory.

In Linux and Mac OS X the configuration options are read from the files `advmame.rc' and `advmess.rc' in the $host, $data and the $home directory. The $host directory is `$SYSCONFDIR', where $SYSCONFDIR is the `sysconfdir' directory configured with the `configure' script. The default is `/usr/local/etc'. The $data directory is `$DATADIR/advance', where $DATADIR is the `datadir' directory configured with the `configure' script. The default is `/usr/local/share'. The $home directory is `$ADVANCE', where $ADVANCE is the value of the ADVANCE environment variable when the program is run. If the ADVANCE environment variable is missing the $home directory is `$HOME/.advance' where $HOME is the value of the HOME environment variable. If both the ADVANCE and HOME environment variables are missing the $data directory became also the $home directory.

The priority of the options is in the order: $host, $home and $data.

The $home directory is also used to write all the information by the program. The files in the $host and $data directory are only read.

You can include an additional configuration files with the `include' option. In DOS and Windows the files are searched in the current directory. In Linux and Mac OS X the files are searched in the $home directory if they are expressed as a relative path. You can force the search in the current directory prefixing the file with `./'. To include more than one file you must divide the names with `;' in DOS and Windows, and with `:' in Linux and Mac OS X.

You can force the creation of a default configuration file with the command line option `-default'.

In DOS and Windows the directory name separator is `\' and the multi-directory separator is `;'. In Linux and Mac OS X the directory name separator is `/' and the multi-directory separator is `:'.

5.1 Global Configuration Options

This section describes the global options used to customize the the program.

A subset of the configuration options are saved per emulator basis to allow different configurations for different emulators. Please note that these specific emulator configurations are not activated if you select to show more than one emulator at time. In this case only the default configuration is used. Specifically these special options are `mode', `sort', `preview', `group_include' and `type_include'.

5.1.1 config

Selects if and when the configuration modified by the user at runtime should be saved.

config save_at_exit | restore_at_exit | restore_at_idle

Options:

save_at_exit Save any changes before exiting (default).
restore_at_exit Don't save the changes. At the next run, restore the previous configuration.
restore_at_idle Restore the previous configuration after the `idle' time.

You can manually save the configuration at runtime from the main menu.

5.1.2 emulator

Selects the emulators to list in the menu. You can specify more than one emulator.

WARNING! Before playing with this option, you should do a backup copy of your current `advmenu.rc' because when you remove an emulator, the game information for that emulator (like the time played) is lost.

emulator "EMULATOR" (generic | advmame | advmess | mame | dmame
    | dmess | draine) "[-]EXECUTABLE" "ARGUMENTS"

Options:

EMULATOR The name for the emulator. It must be different for every emulator defined.
generic It's a generic emulator.
advmame It's the AdvanceMAME emulator.
advmess It's the AdvanceMESS emulator.
mame It's the Window MAME emulator.
dmame It's the DOS MAME emulator.
dmess It's the DOS MESS emulator.
draine It's the DOS Raine emulator.
[-]EXECUTABLE The executable path of the emulator. In DOS and Windows you can also use a batch (.bat) file, but this prevent the automatic generation of the listing file which must be generated manually. You can put a `-' in front of the file path to ignore any error returned by the executable.
ARGUMENTS The arguments to be passed to the emulator. The arguments are required only for the `generic' emulator. For the others, AdvanceMENU automatically adds the required arguments to run a game. However, you may wish to add extra arguments.

In the emulator arguments some macros are substituted with some special values:

%s Expanded as the game name. For example "pacman".
%p Expanded as the complete path of the rom. For example "c:\emu\roms\pacman.zip".
%f Expanded as the rom name with the extension. For example "pacman.zip".
%o[R0,R90,R180,R270] Expanded as one of the R* string, depending on the current menu orientation. Note that you cannot use space in the R* string. For example "%o[,-ror,-flipx,-rol] %o[,,-flipy,]" correctly rotate the AdvanceMAME emulator.

For the `generic' emulator type you need use the % macros to tell at the emulator which game run. For all the other emulator types this information is automatically added by AdvanceMENU.

Examples for DOS and Windows:

emulator "AdvanceMAME" advmame "advmame\advmame.exe" \
    "%o[,-ror,-flipx,-rol] %o[,,-flipy,]"
emulator "MAME" mame "mame\mame.exe" "-nohws"
emulator "MESS" dmess "mess\mess.exe" ""
emulator "Raine" draine "raine\raine.exe" ""
emulator "Custom Raine" draine "raine\raine2.bat" ""
emulator "SNes9x" generic "c:\game\snes9x\snes9x.exe" "%f"
emulator "ZSNes" generic "c:\game\zsnes\zsnes.exe" "-e -m roms\%f"

Examples for Linux and Mac OS X:

emulator "AdvanceMAME" advmame "advmame" \
    "%o[,-ror,-flipx,-rol] %o[,,-flipy,]"

5.1.3 emulator_roms/roms_filter/altss/flyers/cabinets/icons/titles

Selects additional directories for the emulators. These directories are used in addition to any other directory defined in the emulator config file. The preview images and sounds files are also searched also in any `.zip' file present in these directories.

emulator_roms "EMULATOR" "LIST"
emulator_roms_filter "EMULATOR" "LIST"
emulator_altss "EMULATOR" "LIST"
emulator_flyers "EMULATOR" "LIST"
emulator_cabinets "EMULATOR" "LIST"
emulator_marquees "EMULATOR" "LIST"
emulator_icons "EMULATOR" "LIST"
emulator_titles "EMULATOR" "LIST"

Commands:

roms List of directories used for the roms. This option is used only for the `generic' emulator type. All the other emulators use the emulator-specific config file to set the rom path.
roms_filter List of pattern for the file to list. An empty pattern means all files.
altss Snapshot directory, used for snap images and sounds. If possible, the directories specified in the emulator configuration file are also used.
flyers Flyers directory.
cabinets Cabinets directory.
marquees Marquees directory.
icons Icons directory.
titles Titles directory.

Options:

EMULATOR The name for the emulator. Must be the same name of a defined emulator
LIST List of directories or patterns. In DOS and Windows use the `;' char as separator. In Linux and Mac OS X use the `:' char.

Examples for DOS and Windows:

emulator_roms "SNes9x" "c:\game\snes9x\roms;c:\game\zsnes\roms2"
emulator_roms_filter "SNes9x" "*.smc;*.sfc;*.fig;*.1"
emulator_flyers "SNes9x" "c:\game\zsnes\fly"
emulator_cabinets "SNes9x" "c:\game\zsnes\cab"
emulator_marquees "SNes9x" "c:\game\zsnes\mar"
emulator_roms "ZSNes" "c:\game\zsnes\roms"
emulator_roms_filter "ZSNes" "*.smc;*.sfc;*.fig;*.1"

5.1.4 mode

Selects the menu listing mode.

[EMULATOR/]mode full | full_mixed | text | list | list_mixed
    | tile_tiny | tile_small | tile_normal
    | tile_big | tile_enormous | tile_giant
    | tile_icon | tile_marquee

Options:

EMULATOR/ Nothing for the default value, or an emulator name for a specific emulator option.
full Full screen preview.
full_mixed Full screen preview with 4 images.
text Game list.
list Game list and preview of the selected game (default).
list_mixed Game list and 4 preview of the selected game.
tile_tiny Show the preview of 3x2 games.
tile_small Show the preview of 4x3 games.
tile_normal Show the preview of 5x6 games.
tile_big Show the preview of 8x6 games.
tile_enormous Show the preview of 12x9 games.
tile_giant Show the preview of 16x12 games.
tile_icon Special mode for icon preview.
tile_marquee Special mode for marquee preview.

5.1.5 mode_skip

Disables some menu modes when you press `tab'.

mode_skip (full | full_mixed | text | list | list_mixed
    | tile_small | tile_normal | tile_big | tile_enormous
    | tile_giant | tile_icon | tile_marquee)*

Options:

SKIP Multiple selections of disabled modes. Use an empty list to enable all the modes.

Examples:

mode_skip tile_giant
mode_skip full full_mixed list tile_small tile_giant
mode_skip

5.1.6 sort

Selects the sort order of the games displayed.

[EMULATOR/]sort parent | name | time | smart_time | play | year | manufacturer
    | type | group | size | resolution | info

Options:

EMULATOR/ Nothing for the default value, or an emulator name for a specific emulator option.
parent Game parent name (default).
emulator Emulator name.
name Game name.
time Total Time played.
smart_time Time played ignoring the first 20 minutes.
play Total Play times.
timeperplay Time per play.
year Game year release.
manufacturer Game manufacturer.
type Game type.
group Game group.
size Size of the game rom.
resolution Resolution of the game display.
info External information imported with the `info_import' option.

5.1.7 preview

Selects the type of the images displayed.

[EMULATOR/]preview snap | titles | flyers | cabinets

Options:

EMULATOR/ Nothing for the default value, or an emulator name for a specific emulator option.
snap Files in the `snap' and `altss' dir.
flyers Files in the `flyers' dir.
cabinets Files in the `cabinets' dir.
titles Files in the `titles' dir.

The `icons' and `marquees' images can be selected with the special `mode' options `tile_icon' and `tile_marquee'.

5.1.8 preview_expand

Enlarges the screen area used by the vertical games on horizontal tile (and horizontal games in vertical tile).

preview_expand FACTOR

Options:

FACTOR Expansion float factor from 1.0 to 3.0 (default 1.15)

Examples:

preview_expand 1.15

5.1.9 preview_default_*

Selects the default images. When an image for the selected game is not found, a default image can be displayed.

preview_default "FILE"
preview_default_snap "FILE"
preview_default_flyer "FILE"
preview_default_cabinet "FILE"
preview_default_icon "FILE"
preview_default_marquee "FILE"
preview_default_title "FILE"

Commands:

default Selects the default image for all preview modes.
default_TAG Selects the default image for a single preview mode.

Options:

FILE The complete PATH of the image.

Examples:

preview_default "C:\MAME\DEFAULT.PNG"
preview_default_marquee "C:\MAME\DEFMAR.PNG"
preview_default_icon "C:\MAME\DEFICO.ICO"

5.1.10 icon_space

Selects the space size between icons. The `icon' mode is available only if you set the option `emulator_icons' in the emulator config file.

icon_space SPACE

Options:

SPACE The number of pixel between icons (default 43).

In the icon display the game title is displayed in multiple rows if there is enough space.

5.1.11 merge

Selects the expected format of your romset. It's used to test the existence of the correct zips needed to run the games.

merge none | differential | parent | any | disable

Options:

none Every clone zip contains all the needed roms.
differential Every clone zip contains only the unique roms (default).
parent All the roms are in the parent zip.
any Any of the above, use this if you have a rom set that is organized poorly.
disable Check disabled.

5.1.12 game

Contains various information of the know games. A `game' option is added automatically at the configuration files for any rom found. It's used to keep some game information like the play time.

game "EMULATOR/GAME" "GROUP" "TYPE" TIME PLAY "DESC"

Options:

EMULATOR Name of the emulator.
GAME Short name of the game, generally the rom name without the extension.
GROUP Name of the group of the game or empty "".
TYPE Name of the type of the game or empty "".
TIME Time played in seconds.
PLAY Number of play.
DESC User description or empty "".

The GROUP, TYPE and DESC argument overwrite any other value imported with the `group_import', `type_import', and `desc_import' options. The imported values take effect only if the user GROUP, TYPE and DESC are empty.

Examples:

game "advmame/puckman" "Very Good" "Arcade" \
    1231 21 "Pac-Man Japanese"
game "advmame/1943" "" "" 121 4 "1943 !!"

5.2 Display Configuration Options

This section describes the options used to customize the display.

5.2.1 device_video_*

These options are used to customize the video drivers.

All the `device_video_*' options defined in the `advdev.txt' file can be used.

If you use a `System' video driver, you don't need to set these options. They are mostly ignored.

With a `Generate' video drivers these options are used to select and create the correct video mode. If missing the settings for a standard Multisync SVGA monitor are used.

5.2.2 display_size

Selects the desired size of the video mode.

display_size auto | WIDTHxHEIGHT

Options:

auto Try to autodetect the best size. Usually the current one (default).
WIDTHxHEIGHT Size in pixels of the video mode. The nearest available video mode is chosen (default 1280x1024).

Examples:

display_size 1600x1200

5.2.3 display_resizeeffect

Control the scaling transformation applied to screenshots.

display_resizeeffect auto | none | scalex | scalek | hq | xbr

Options:

auto Selects automatically the best effect (default).
none Simply removes or duplicates lines as required.
scalex It adds the missing pixels matching the original bitmap pattern. It uses a 3x3 mapping analysis with 4 comparisons. It doesn't interpolate pixels and it compares colors for equality.
scalek It adds the missing pixels matching the original bitmap pattern. It uses a 3x3 mapping analysis with 4 comparisons. It interpolates pixels and it compares colors for equality.
hq It adds the missing pixels matching the original bitmap pattern. It uses a 3x3 mapping analysis with 8 comparisons. It interpolates pixels and it compares colors for distance.
xbr It adds the missing pixels matching the original bitmap pattern. It uses a 5x5 mapping analysis with a gradient estimation. It interpolates pixels and it compares colors for distance.

5.2.4 display_restoreatgame

Selects whether to reset the video mode before running the emulator.

[EMULATOR/]display_restoreatgame yes | no

Options:

EMULATOR/ Nothing for the default value, or an emulator name for a specific emulator option.
yes Reset the video mode (default).
no Maintain the current graphics mode.

5.2.5 display_restoreatexit

Selects whether to reset the video mode before exiting.

display_restoreatexit yes | no

Options:

yes Reset the video mode (default).
no Maintain the current graphics mode.

5.2.6 display_orientation

Selects the desired orientation of the screen.

display_orientation (flip_xy | mirror_x | mirror_y)*

Options:

mirror_x Mirror in the horizontal direction.
mirror_y Mirror in the vertical direction.
flip_xy Swap the x and y axes.

Examples:

display_orientation flip_xy mirror_x

5.2.7 display_brightness

Selects the image brightness factor.

display_brightness FACTOR

Options:

FACTOR Brightness float factor (default 1.0).

Examples:

display_brightness 0.9

5.2.8 display_gamma

Selects the image gamma correction factor.

display_gamma FACTOR

Options:

FACTOR Gamma float factor (default 1.0).

Examples:

display_gamma 0.9

5.3 Sound Configuration Options

This section describes the options used to customize the sound.

5.3.1 device_sound_*

These options are used to customize the audio drivers.

All the `device_sound_*' options defined in the `advdev.txt' file can be used.

5.3.2 sound_volume

Sets the global sound volume.

sound_volume VOLUME

Options:

VOLUME The volume attenuation in dB (default -3). The attenuation is a negative value from -40 to 0.

Examples:

sound_volume -5

5.3.3 sound_latency

Sets the audio latency. The latency is the delay between a sound is generated and before you hear it. You generally want a small latency, but a bigger latency avoids sound clicks in case the audio reproduction is too slow.

sound_latency TIME

Options:

TIME Latency in seconds from 0.01 to 2.0. (default 0.1)

Increase the value if your hear a choppy audio.

5.3.4 sound_buffer

Sets the size of the look-ahead audio buffer for decoding.

sound_buffer TIME

Options:

TIME Buffer size in seconds from 0.05 to 2.0. (default 0.1)

Increase the value if your hear a choppy audio.

5.3.5 sound_foreground_EVENT

Selects the sounds played in foreground for the various events.

sound_foreground_begin none | default | FILE
sound_foreground_end none | default | FILE
sound_foreground_key none | default | FILE
sound_foreground_start none | default | FILE
sound_foreground_stop none | default | FILE

Commands:

begin Sound played at AdvanceMENU startup.
end Sound played at AdvanceMENU exit.
start Sound played at emulator startup.
stop Sound played at emulator exit.
key Sound played when a key is pressed.

Options:

none No sound.
default Use the default sound.
FILE Path of the sound file (.wav or .mp3).

5.3.6 sound_background_EVENT

Selects the sounds played in background for the various events.

sound_background_begin none | FILE
sound_background_end none | FILE
sound_background_start none | FILE
sound_background_stop none | FILE
sound_background_loop none | default | FILE

Commands:

begin Sound played at AdvanceMENU startup.
end Sound played at AdvanceMENU exit.
start Sound played at emulator startup.
stop Sound played at emulator exit.
loop Sound played in loop if no other background sound is available.

Options:

none No sound
default Use the default sound
FILE Path of the sound file (.wav or .mp3)

5.3.7 sound_background_loop_dir

Selects the background music directory to search for MP3 and WAV files. Music tracks will be played in random order.

Multiple directories may be specified by separating each with a semicolon `;' in DOS and Windows, with a double-colon `:' in Linux and Mac OS X.

Note that this directory must be used only for your music. The emulated game recordings, played when the cursor is moved on the game, are stored in the snap directory defined in the emulator configuration file or with the `emulator_altss' option.

sound_background_loop_dir "DIR"

Options:

DIR Directory for .mp3 and .wav files.

Examples:

sound_background_loop_dir C:\MP3\POP;C:\MP3\ROCK

5.4 Input Configuration Options

This section describes the options used to customize the user input.

5.4.1 device_keyboard/joystick/mouse

These options are used to customize the input drivers.

All the `device_keyboard/joystick/mouse_*' options defined in the `advdev.txt' file can be used.

As default the mouse and the joystick support is disabled. To enable it you must add the options:

device_mouse auto
device_joystick auto

in your advmenu.rc file.

5.4.2 mouse_delta

Selects the mouse/trackball sensitivity. Increase the value for a slower movement. Decrease it for a faster movement.

mouse_delta STEP

Options:

STEP Mouse/trackball position step (default 100).

5.5 User Interface

This section describes the options used to customize the user interface.

5.5.1 ui_autocalib

Enables or disables the auto joystick calibration menu. If enabled and no joystick is found, the calibration menu automatically starts.

If any keypress is detected this mechanism is automatically disabled, and you have to start the calibration menu manually.

This is intended for a joustick only configuration.

ui_autocalib yes | no

5.5.2 ui_text/bar_font/menu_font

Selects a font file for normal text, the title bar and online menus. The formats: TrueType (TTF), GRX, PSF and RAW are supported. You can find a collection of fonts in the `contrib' directory.

ui_text_font auto | "FILE"
ui_bar_font auto | "FILE"
ui_menu_font auto | "FILE"

Options:

auto Use the built-in font (default).
FILE Font file path.

The TrueType (TTF) format is supported only if the program is compiled with the FreeType2 library.

5.5.3 ui_text/bar_size

Selects the font size, if the specified font is scalable. The size is expressed in number of rows and columns of text in the screen.

ui_text_size auto | ROWS [COLS]
ui_bar_size auto | ROWS [COLS]
ui_menu_size auto | ROWS [COLS]

Options:

auto Automatically compute the size (default).
ROWS Number of text rows.
COLS Number of text columns. If omitted is computed from the number of rows.

5.5.4 ui_background

Defines a background image in .PNG or MNG format. The image is stretched to fit the screen.

ui_background FILE | none

Options:

none No image (default).
FILE File in .PNG or .MNG format to load.

For .MNG files only the first frame is used.

5.5.5 ui_exit

Defines an exit image/clip in .PNG or .MNG format displayed at the frontexit exit. The image is stretched to fit the screen.

ui_exit FILE | none

Options:

none No image (default).
FILE File in .PNG or .MNG format to load.

5.5.6 ui_startup

Defines a startup image/clip in .PNG or .MNG format displayed at the frontend startup. The image is stretched to fit the screen.

ui_startup FILE | none

Options:

none No image (default).
FILE File in .PNG or .MNG format to load.

5.5.7 ui_help

Defines an help image/clip in .PNG or .MNG format displayed when the user press F1. The image is stretched to fit the screen.

ui_help FILE | none

Options:

none No image (default).
FILE File in .PNG or .MNG format to load.

5.5.8 ui_gamemsg

One line message displayed when a game is chosen. The message is displayed only if the option `display_restoreatgame' is set to `no'.

ui_gamemsg "MESSAGE"

Options:

MESSAGE Message to display (default "Run Game"). To prevent the display of the message use the empty string "".

Examples:

ui_gamemsg "Avvio il gioco..."

5.5.9 ui_game

Selects the preview type to display when a game is run. The preview is displayed only if the option `display_restoreatgame' is set to `no'.

ui_game none | snap | flyers | cabinets | titles

Options:

none Don't display any preview.
snap, flyers, cabinets, titles Display the specified preview. (default snap).

5.5.10 ui_skiptop/bottom/left/right

Defines the border area of the screen not used by the menu. Generally it's the part of the screen used by the background image. If a `ui_background' image is specified these values refer at image size before stretching, otherwise they refer at the current video mode size.

ui_skiptop N ui_skipbottom N ui_skipleft N ui_skipright N

Options:

N Number of pixel to skip (default 0).

5.5.11 ui_skiphorz/vert

Defines the inner horizontal and vertical area between tiles.

ui_skiphorz auto | N ui_skipvert auto | N

Options:

auto Auto select depending on the tile mode and font size (default).
N Number of pixel to skip.

5.5.12 ui_topbar/bottombar/scrollbar/outline

Enables or disables the top, bottom and scroll information bars. The outline is the thin box around backdrops.

ui_topbar yes | no ui_bottombar yes | no ui_scrollbar yes | no ui_outline yes | no

5.5.13 ui_topname

Puts the game name at the top instead of at the bottom.

ui_topname yes | no

5.5.14 ui_name

Enables or disables the display of the game name in the screensaver.

ui_name yes | no

5.5.15 ui_color

Selects the user interface colors.

ui_color TAG FOREGROUND BACKGROUND

Tags:

menu_item Game menu entry.
menu_hidden Game menu hidden entry.
menu_tag Game menu highlight entry.
menu_item_select Game menu selected entry.
menu_hidden_select Game menu hidden selected entry.
menu_tag_select Game menu selected highlight.
bar Top and bottom bars.
bar_tag Top and bottom bars highlight.
bar_hidden Top and bottom bars hidden text.
grid Scrollbar marker and generic background color.
overscan Overscan area controlled by skip_top/bottom/left/right.
backdrop Backdrop outline and backdrop border/missing.
help Help.
help_tag Help highlight.
submenu_bar Submenu title.
submenu_item Submenu entry.
submenu_item_select Submenu selected entry.
submenu_hidden Submenu hidden entry.
submenu_hidden_select Submenu selected hidden entry.
icon Icon outline and missing icon.
cursor Flashing cursor. Use equal foreground and background to avoid flashing.

Options:

FOREGROUND Foreground color in RRGGBB hex format. For example FF0000 is red, 00FF00 is green and 0000FF is blue.
BACKGROUND Background color. Like foreground color.

5.5.16 ui_clip

Selects how play the video clips.

ui_clip none | single | singleloop | multi | multiloop | multiloopall

Options:

none No clip.
single Play only one clip and only one time.
singleloop Play only one clip continuously. The sound is not looped.
multi Play all the clips.
multiloop Play all the clips, and loop the clip on the cursor. The sound is not looped.
multiloopall Play all the clips, and loop all the clips. The sound is not looped (default).

5.5.17 ui_translucency

Selects the translucency of the user interface.

ui_translucency FACTOR

Options:

FACTOR Translucency factor from 0 to 1 (default 0.6).

The translucency has effect only if you have a background image.

5.5.18 ui_command

Defines the user commands. These commands are executed as shell scripts. The video mode is not changed, so they must be silent.

ui_command "MENU" SCRIPT

Options:

MENU Name of the menu entry.
SCRIPT Commands to execute. If you need to insert more command rows you can end the line with the \ char.

In the script text some macro are substituted with information of the selected game:

%s The game name. For example "pacman".
%p The complete path of the rom. For example "c:\emu\roms\pacman.zip".
%f The rom name with the extension. For example "pacman.zip".

If no game is selected the macros aren't substituted.

If the script exits with an error code, a message is displayed.

Examples:

ui_command "Delete Hiscore" \
    rm ~/.advance/hi/%s.hi
ui_command "Enable GamePad" \
    rmmod analog \
    sleep 1 \
    modprobe analog js=gamepad

5.5.19 ui_command_menu

Selects the name of the menu entry for the commands submenu.

ui_command_menu MENU

Options:

MENU Name of the menu entry (default "Command").

5.5.20 ui_command_error

Selects the message to display if a command fails.

ui_command_error MSG

Options:

MSG Message to display (default "Error running the command").

5.5.21 ui_menukey

Enables or disables the key names in the menu entries.

ui_menukey yes | no

5.5.22 ui_console

Changes the user interface behavior for the use on a game console system.

ui_console yes | no

In console mode the menu is reduced to contains only the minimal commands, and the sound volume is propagated to the emulators if possible.

5.6 Input Configuration Options

This section describes the options used to customize the user input.

5.6.1 device_keyboard/joystick/mouse_*

These options are used to customize the input drivers.

All the `device_keyboard/joystick/mouse_*' options defined in the `advdev.txt' file can be used.

5.6.2 input_hotkey

Enables or disables the recognition of the special OS keyboard sequences.

input_hotkey yes | no

Options:

no No hot key recognition.
yes Hot key recognition (default).

In DOS the hotkey recognized are:

CTRL+ALT+DEL Reset.
CTRL+ALT+END Quit.
CTRL+BREAK (Pause) Break.

In Linux the hotkey recognized generally are:

CTRL+C Break.
ALT+Fx Change virtual console.

5.6.3 lock

Locks or unlocks the user interface. When locked, the user can only browse and run games. Options can't be changed and the user cannot exit with the generic 'esc' event.

You can anyway allow the user to exit or shutdown, changing the `misc_exit' option.

lock yes | no

Options:

yes Locked mode activate.
no Locked mode deactivate (default).

5.6.4 event_assign

Customizes the input keyboard codes that trigger menu events.

event_assign EVENT EXPRESSION

Events:

up, down, left, right Movement.
home, end, pgup, pgdn Movement.
enter Main action, start.
esc Back action, exit & cancel.
space Change action, select & deselect.
ins Select all.
del Deselect all.
menu The main menu.
sort Changes the sort mode.
mode Change the display mode.
preview Change the preview mode.
emulator The emulator menu.
help Show a little help.
group Select a game group.
type Select a game type.
exclude Exclude some games with filters.
setgroup Select the group of the current game
settype Select the type of the current game
runclone Run a game clone.
exit Exit from the application.
shutdown Exit and shutdown the machine.
command The file command menu.
rotate Rotate the screen of 90°.
lock Lock/unlock the user interface.
mute Mute/unmute the audio.
calib Joystick calibration menu.
volume The volume menu.
difficulty The difficulty menu.

Options:

EXPRESSION Definition of the button expression that generates the event. It's a combination of the key, joystick or mouse button and of the operators `not', `or'. The `and' operator is implicit between consecutive codes. To not assign any input at the event, use the 'none' keyword. To completely disable the event, and to make it to disappear from the menus, use the 'hidden' keyword.
KEY The available key names are: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0_pad, 1_pad, 2_pad, 3_pad, 4_pad, 5_pad, 6_pad, 7_pad, 8_pad, 9_pad, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, esc, backquote, minus, equals, backspace, tab, openbrace, closebrace, enter, semicolon, quote, backslash, less, comma, period, slash, space, insert, del, home, end, pgup, pgdn, left, right, up, down, slash_pad, asterisk_pad, minus_pad, plus_pad, period_pad, enter_pad, prtscr, pause, lshift, rshift, lcontrol, rcontrol, lalt, ralt, lwin, rwin, menu, scrlock, numlock, capslock. You can also specify a keyboard scancode, like: scan127, scan128, ...
JOYSTICK The available joystick buttons are: joy_a, joy_b, joy_c, joy_x, joy_y, joy_z, joy_tl (top left), joy_tr (top right), joy_tl2 (second top left), joy_tr2 (second top right), joy_start, joy_mode, joy_select, joy_thumbl (thumb left), joy_thumbr (thumb right), joy_gear_down, joy_gear_up. You can also use ordinal values if the driver doesn't export the button names: joy_button0, joy_button1, joy_button2, joy_button3, ...
MOUSE The available mouse buttons are: mouse_left, mouse_right, mouse_middle, mouse_side, mouse_extra, mouse_forward, mouse_back. You can also use ordinal values if the driver doesn't export the button names: mouse_button0, mouse_button1, mouse_button2, ...

Examples:

event_assign enter lcontrol or enter or joy_a or mouse_left
event_assign menu space or joy_mode or mouse_right
event_assign command none
event_assign close hidden

The utility `advk' can be used to shown key scancodes and names. The utilities `advj' and `advm' can be used to shown the joystick and mouse button names.

5.6.5 event_repeat

Selects the repeat rate of the various events.

event_repeat FIRST_TIME NEXT_TIME

Options:

FIRST_TIME Time of the first repeat in ms.
NEXT_TIME Time of the next repeats in ms.

5.6.6 event_mode

Selects whether to wait for a complete screen update before processing the next event.

event_mode wait | fast

Options:

wait The screen is completely redrawn before processing the next event.
fast If an event is waiting, the screen drawing is interrupted (default).

5.6.7 event_alpha

Disables the alphanumeric keys for fast moving. If you have a keyboard encoder or a keyboard hack with some buttons remapped to alphanumeric keys, it's useful to disable them.

event_alpha yes | no

Options:

yes Enable (default).
no Disable.

5.7 Other Configuration Options

5.7.1 idle_start

Automatically starts a random game after some time of inactivity. You can also configure the AdvanceMAME option `input_idleexit' in the file `advmame.rc' to create a continuous demo mode.

idle_start START_TIMEOUT REPEAT_TIMEOUT

Options:

START_TIMEOUT Number of seconds to wait for the first run. 0 means never (default never).
REPEAT_TIMEOUT Number of seconds to wait for the next run. 0 means never (default never).

Examples:

idle_start 400 60

5.7.2 idle_screensaver

Selects the start time of the default screen saver. The screensaver is a slide show of the available snapshots.

idle_screensaver START_TIMEOUT REPEAT_TIMEOUT

Options:

START_TIMEOUT Number of seconds to wait for the first run. 0 means never (default 60).
REPEAT_TIMEOUT Number of seconds to wait for the next run. 0 means never (default 14).

Examples:

idle_screensaver 120 14

5.7.3 idle_screensaver_preview

Selects the preview type to use in the screensaver. Like the preview option.

idle_screensaver_preview none | exit | shutdown | play
    | snap | flyers | cabinets | titles

Options:

none Shutdown the monitor using the VESA/PM services if available. Otherwise use a black image.
exit Exit from the application.
shutdown Shutdown the machine.
snap, flyers, cabinets, titles Start a mute slide show of the specified image type.
play Start a snap slide show using the animated snapshots and the game sounds (default).

5.7.4 group/type

Selects the available `group' and `type' category names and which of them to show.

group "STRING"
type "STRING"
[EMULATOR/]group_include "STRING"
[EMULATOR/]type_include "STRING"

Commands:

group, type Define a category.
group_include, type_include Show a category.

Options:

EMULATOR/ Nothing for the default value, or an emulator name for a specific emulator option.
STRING name of the category

5.7.5 group/type/desc/info_import

Selects the automatic import of the groups, types, descriptions and extra information from an external file. The extra info are additional information displayed for every game.

The file formats supported are CATVER, CATLIST/CAT32, MacMAME and NMS. The files are read in the current directory in DOS and Windows and in the $home directory in Linux and Mac OS X.

WARNING! These options DON'T OVERRIDE any user explicit choices made with the `game' option.

desc_import (catver | catlist | mac | nms) "EMULATOR" "FILE" ["SECTION"]
info_import (catver | catlist | mac | nms) "EMULATOR" "FILE" ["SECTION"]
group_import (catver | catlist | mac | nms) "EMULATOR" "FILE" ["SECTION"]
type_import (catver | catlist | mac | nms) "EMULATOR" "FILE" ["SECTION"]

Commands:

desc_import Imports the game names shown in the menu.
info_import Imports additional information printed on bottom bar of the menu.
group_import Imports the group names of the game.
type_import Imports the type names of the game.

Options:

none Don't import.
catver Import in the CATVER format. In this format you must also specify the section to load, usually it's "Category".
catlist Import in the CATLIST/CAT32 format.
mac Import in the MacMAME format.
nms Import in the NMS format.
EMULATOR The emulator tag name as specified in the `emulator' option.
FILE The file name.
SECTION The section name (only for the `ini' format).

Examples:

group_import catver "advmame" "catver.ini" "Category"
info_import catver "advmame" "catver.ini" "VerAdded"
group_import catlist "advmame" "catlist.ini"
type_import mac "advmame" "Genre 37b14.txt"
desc_import nms "raine" "raine.nms"

The CATVER/CATLIST files can be downloaded from:

http://www.progettoemma.net/?catlist

or:

http://www.progettosnaps.net/renameset/

5.7.6 misc_exit

Selects the exit mode.

misc_exit none | esc | exit | shutdown | all

Options:

none Exit is disabled.
esc Exit is possible with the 'esc' event [ESC] if the interface is not locked (default).
exit Exit is possible with the 'exit' event [ALT-X].
shutdown Exit is possible with the 'shutdown' event [CTRL-ESC].
all All the exit events work.
menu All the exit events work but you get a menu confirmation.

To lock the interface use the 'lock' option.

5.7.7 misc_quiet

Disables the copyright text message at the startup.

misc_quiet yes | no

6 Formats Supported

This is the list of the file formats supported by AdvanceMENU.

Images:

PNG The PNG format.
PCX The PCX format.
ICO The ICON format.

Clips:

MNG The MNG-VLC (Very Low Complexity) sub format without transparency and alpha channel. Or the sub-formats generated by AdvanceMAME or by the `advmng' compression utility.

Sounds:

MP3 The MP3 format.
WAV The WAV format with a sample size of 16 bit.

Fonts:

TTF The TrueType format (with the FreeType2 library).
RAW The RAW format.
PSF The PSF format.
GRX The GRX format.

Archives:

ZIP The ZIP format.

7 Signals

The program intercepts the following signals:
SIGQUIT Exit normally.
SIGTERM, SIGINT, SIGALRM Exit restoring only the output devices.
SIGHUP Restart the program.