## AdvanceMENU Frontend

## 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:

- Simply download and run. Copy the executable and run it!
- Auto update of the rom info.
- Vertical and horizontal orientation.
- Support for any TV/Arcade Monitor like AdvanceMAME but it's good also for a normal PC monitor.
- Static and Animated image and clip preview (PNG/PCX/ICO/MNG). Up to 192 images at the same time!
- Sound preview. (MP3/WAV). You can select a special sound for every game played when the cursor move on it.
- Sound backgrounds (MP3/WAV). Play your favorite songs or radio records in background.
- Sound effects (MP3/WAV) for key press, program start, game start, program exit...
- Support for zipped images and sounds archives.
- Screen-saver. A slide show of the game images.
- Selectable background and help images with translucency.

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
|  |  | 5.7.8 misc_sync
| 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

#### 5.7.8 misc_sync

This helps prevent filesystem corruption in case of an unexpected power loss.

On desktop systems, if other applications are actively writing to disk, enabling this option may cause a slight delay before the game starts.

AdvanceMENU already performs all necessary steps, according to each operating system, to ensure safe disk writes. However, this option provides an additional layer of protection in case the underlying system does not fully comply with expected standards.

    misc_sync yes | no

Options:

| yes | Enables filesystem syncronization.
| no | Disables (default).

## 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.

## 8 Copyright

This file is Copyright (C) 2003, 2004, 2005, 2012 Andrea Mazzoleni, Randy Schnedler.