# MESS Configuration Files

This section deals with configuration files used by MESS. You will find an explanation on how to find create configuration files for your games and where to put them.

## Introduction

In MESS you have always been able to configure each game individually MESS GUI is the same. This is of great use if for instance you are having performance issues with systems or say want to run certain systems in windows and others in full screen. The command line version of MESS or Mame never had this option so you had to change the command line for each game you wanted different settings on.

Now with the latest versions of MESS and Mame you can have configuration files for any system or clone system you want and when MESS starts it will automatically load the settings for you.

## Creating The Files

The settings files are based on the MESS.ini file that is created when MESS starts. The easiest way to create a new config file is to simply duplicate the original file and remove/change the stuff you don't want.

Open you MESS folder and find the MESS.ini file. It'll look someting like this...

Right click on the file and select copy. Now right click on a blank area and select paste and you will see a file "copy of MESS" appear. Right click over this file and select rename. In the box type the name of the sysem as it appears on the original BIOS zip file e.g. Atari 2600 = a2600.

It will keep things a lot tidier if you move your new config file to the ini folder. MESS will by default look there anyway.

Double click your config file and it should open up in notepad. Below you can see the default MESS.ini file.

    ### mess.ini ###

    ### Frontend Related ###
    clones 1

    ### Windows path and directory options ###
    biospath bios
    softwarepath software
    CRC_directory crc
    samplepath samples
    inipath ini
    cfg_directory cfg
    nvram_directory nvram
    memcard_directory memcard
    input_directory inp
    hiscore_directory hi
    state_directory sta
    artwork_directory artwork
    snapshot_directory snap
    diff_directory diff
    ctrlr_directory ctrlr
    cheat_file cheat.dat
    sysinfo_file sysinfo.dat
    messinfo_file messinfo.dat

    ### Windows video options ###
    autoframeskip 1
    frameskip 0
    waitvsync 0
    triplebuffer 0
    window 1
    ddraw 1
    direct3d 0
    hwstretch 1
    cleanstretch auto
    resolution auto
    zoom 2
    refresh 0
    scanlines 0
    switchres 1
    switchbpp 1
    maximize 0
    keepaspect 1
    matchrefresh 0
    syncrefresh 0
    throttle 1
    full_screen_brightness 1.000000
    frames_to_run 0
    effect none
    screen_aspect 4:3
    sleep 0
    rdtsc 1
    high_priority 0

    ### Windows Direct3D 2D video options ###
    d3dtexmanage 1
    d3dfilter 1
    d3dfeedback 0
    d3dscan 100
    d3deffectrotate 1
    d3dprescale auto
    d3deffect auto
    # d3dcustom <NULL> (not set)
    # d3dexpert <NULL> (not set)

    ### Windows sound options ###
    audio_latency 1

    ### Input device options ###
    mouse 0
    joystick 0
    lightgun 0
    steadykey 0
    keyboard_leds 0
    a2d_deadzone 0.300000
    ctrlr Standard

    ### MESS specific options ###
    newui 1
    # cartridge <NULL> (not set)
    # floppydisk <NULL> (not set)
    # harddisk <NULL> (not set)
    # cylinder <NULL> (not set)
    # cassette <NULL> (not set)
    # punchcard <NULL> (not set)
    # punchtape <NULL> (not set)
    # printer <NULL> (not set)
    # serial <NULL> (not set)
    # parallel <NULL> (not set)
    # snapshot <NULL> (not set)
    # quickload <NULL> (not set)
    # cartridge_dir <NULL> (not set)
    # floppydisk_dir <NULL> (not set)
    # harddisk_dir <NULL> (not set)
    # cylinder_dir <NULL> (not set)
    # cassette_dir <NULL> (not set)
    # punchcard_dir <NULL> (not set)
    # punchtape_dir <NULL> (not set)
    # printer_dir <NULL> (not set)
    # serial_dir <NULL> (not set)
    # parallel_dir <NULL> (not set)
    # snapshot_dir <NULL> (not set)
    # quickload_dir <NULL> (not set)
    # ramsize <NULL> (not set)
    threads 0
    natural 0
    min_width 200
    min_height 200
    writeconfig 0

    ### Mame CORE video options ###
    norotate 0
    ror 0
    rol 0
    autoror 0

As you can see most of the lines mimic the command line options use by MESS and you can find detailed explanantions of these commands on the MESS W32 Commands page. The only difference is the 1 or 0 that follows the command. These mean yes (1) or no (0) on most commands but check on the setup page as they may refer to a value. The lines starting with # are comments and are ignored by MESS.

Remember no matter what changes you make you cant mess up MESS, just change the setting back or delete the config file and start again.

## Types Of Config Files

There are four types of config types. You have one for vector games called vector.ini and one for specific drivers for games e.g. cps2.ini or neogeo.ini You can also create files for specific parent rom sets that will be used by all of the clones or you can make config file for specific clones.

To find out what drivers a game uses you can add the -verbose option to your command line. e.g. MESS a2600 -verbose and will give you something like the following...

    parsing mess.ini...OK.
    parsing /a2600.ini...N/A
    parsing root.ini...N/A
    parsing a2600.ini...N/A
    Using DirectInput 5
    Keyboards=1 Mice=1 Joysticks=1 Lightguns=0
    Mouse support disabled
    Joystick support disabled
    Keyboards=1 Mice=0 Joysticks=0
    Initialising DirectDraw & Direct3D 7 blitter (58.81MB video memory
    available)
    Rendering to an off-screen surface and using blt()
    Primary surface created: 1280x1024x32 (R=00ff0000 G=0000ff00 B=000000ff)
    Managed texture surface created: 256x256x16 (R=00007c00 G=000003e0 B=0000001f)
    Pre-process texture surface created: 1024x1024x16
    RGB effects surface created: 1280x1024x32
    Scanline surface[0] created: 2x2x32
    Scanline surface[1] created: 4x4x32
    Blitter initialisation complete (46.78MB video memory free)
    Primary buffer: 44100 Hz, 16 bits, 1 channels
    SSE supported

If you look at the first couple of lines you can see the ini files that MESS is looking for. MESS always loads the MESS.ini file first but in this instance it looks for the a2600.ini file (system file). If I had used a clone system MESS would also look for the .ini file for that as well. Each of these files would override the previous one and MESS would only use the commands in the final config file.

As an example of a config file, here is one that I have made up for the Atari 2600 system. The reason behind it was that I wanted it to run fullscreen as it was easier to see. The d3d option made MESS use my 3D card to draw the graphics as it's faster on my system.

    #Atari 2600 Fullscreen
    window 0
    direct3d 1

Once you are happy with your file save it and run MESS and it will use your new settings.