# Using MESS at the Command Line

This section deals with configuring and running MESS for Win32. It includes where to start, an in depth look at the command line and a section looking at the MESS.ini file.

## Where to start...

The beauty of MESS for Win32 is the fact although it looks like a DOS file it is actually a windows based program. Therefore you don't have to mess around configuring drivers as it uses DirectX and your windows drivers.

All you need to do to run it is to open a command prompt. Either go to the start button, press run and type command or you can run the command prompt from the start/programs/accessories menu.

Once you are in a DOS box type in this command

cd C:\MESS

You should see the prompt

C:\MESS>

If it is the first time you have run MESS type MESS -cc. This will create a file called MESS.ini which holds all the default MESS settings.

## Command Line Options

MESS for Win32 uses a straightforward command format to execute. Heres what it looks like...

MESS <system> <device> <software_name> -options

System - Is the name of the system to be used which can be found here .

Device - Is the name of the device MESS need to emulate to load the software. This option is relevant to the system you want to use for example an Atari 2600 uses a cartridge therefore this option would say -cart

Heres a breakdown of the device names...

-cartridge / -cart | Cartridge based software
-floppydisk / -flop | Floppy disk based software
-quickload / -quik | Quick Saved Memory
-printer / -prin | Output to printer
-snapshot / -dump | Memory dump (e.g. exact copy of a systems memory that can be reloaded and run)
-cassette / -cass | Cassette tape image
-harddisk / -hard | Hard drive image
-parallel / -parl | Data normally loaded through a parallel (printer) port.
-punchcard / -pcrd | Punch card data
-punchtape / -ptap | Punch tape data
-serial / -serl | Data normally loaded through a serial port
-cylinder / -cyln | Data loaded from a metal cylinder (really old computers used these)

You can find out the devices used and what file extensions can be used by typing

MESS <System> -listdevices

From there it's up to you to decide what the software is. The way to look at it is that most consoles used cartridges, most computers used cassettes or floppy disks and newer computers used harddisks. You probably wont find many hard disk images about and most of the other devices (e.g. punchcard) are very obselete. Snapshot is probably the most commonly found file especially in home computer emulation as it is a complete system dump and when loaded will run software from exactly the point that it was saved from.

Software_Name - is the name of the file that you want to run in MESS. You must remember that you need the whole file name including the file extension (e.g. frogger.a26 or frogger.zip)

Options - Finally you have the options. Most of the options are exactly the same as Mame but there are a few exclusives.

These are all the command line options that MESS uses...

*** Frontend Related ***
-help / -h ./ -? | Show the help message
-list / -ls | List supported games matching gamename, or all, gamename may contain * and ? wildcards
-listfull / -ll | Lists all games as short name, full name
-listgames | Lists all games as year, manufacturer and full name
-listdetails | Lists all games with detailed info
-gamelist | Outputs the gamelist.txt file
-listsourcefile | Lists all sourcefile names
Lists all the games in a sourcefile
-listinfo / -li | Lists all available info on a driver
Lists all available info on a driver in XML format
-listclones / -lc | Lists only clones
-listsamdir | Lists the shared sample folder
-listcrc | Lists rom checksums
Lists the checksums used in hard disk based games
Lists all roms using tha sha1 checksum
-listdupcrc | Lists roms with duplicate crc's
-listwrongmerge / -lwm | Lists roms with wrong merge attempts done on them
-listromsize / -lrs | Lists rom sizes
Lists the distribution of roms MESS support by year and size
Lists games by how many roms they contain
Lists games by name, year and how many colours it supports.
-listcpu | Lists cpu's used in drivers
Lists by year how many games have 8, 16 or 32bit processors.
Lists game that don't support sound yet
Lists how many games support the different sound chips emulated in MESS
Lists how many game support NVRAM data saving
-wrongorientation | Lists games with wrong screen orientation
-wrongfps | Lists games with wrong fps
-[no]clones | Enable/disable clones in generated lists
Lists the devices used by a system in MESS
Lists the file extensions used by a system in MESS
-listroms | Displays ROMs required by the specified game
-listsamples | Displays samples required by the specified game
-verifyroms | Checks specified game(s) for missing and invalid ROMs.
-verifysets / -vset | Checks specified game(s) and reports its status.
-verifysamples | Checks that all samplesets have the correct samples in them.
Check that an individual sampleset has the correct samples in it.
-romident | Checks an unknown romset against MESS romsets to see what it belongs to
-isknown | Same as above but with less info
-sortname | Sort by descriptive name (e.g. Pacman (Japan))
-sortdriver | Sort by driver name (e.g. puckman)
*** Windows path and folder options ***
-biospath / -bp | Specify path for bios files
-softwarepath / -swp | Specify path for system software
Specify path for software crc check files
Specify path for game ini files
Specify path for system samples
-cfg_directory | Specify the folder to save configurations
-nvram_directory | Specify the folder to save nvram contents
-memcard_directory | Specify the folder to save memory card contents
-input_directory | Specify the folder to save input device logs
-hiscore_directory | Specify the folder to save hiscores
-state_directory | Specify the folder to save states
-artwork_directory | Specify the folder for Artwork (Overlays etc.)
-snapshot_directory | Specify the folder for screenshots (.png format)

Heres an example of running MESS at the command line...

MESS a2600 -cart defender.a26 -now

This will run defender on an Atari 2600 using the full screen. As you can see it's not too hard once you've got over the amount of options available to you. If your brain is frazzled and you want an easier MESS use the GUI version as it's much easier to configure.

##
MESS.ini File

Rather than using the command line to set up the options you want to use in MESS you can adjust a file called MESS.ini. This is where MESS stores it's default configuration information.

To edit the file in windows find the MESS.ini file in the C:\MESS folder (it will have an icon next to it that looks like a text pad with a yellow stamp on it) and then double click it. This will automatically bring up the MESS.ini file in notepad. There are several parts to it and as you can see they relate to the command line options above.

The format of the file is simple to follow, most things with a yes / no answer are denoted by 0 for no and 1 for yes. there are also a few numerical options (e.g. gamma) and a few that require a text answer (e.g. rom path)

If you configure this file correctly you wont need to add options onto the command line.

Don't worry if you muck the whole file up because if you can delete it and, if you run MESS -cc again it will make another.

### 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
autorol 0
flipx 0
flipy 0
debug_resolution auto
gamma 1.000000
brightness 1.000000
pause_brightness 0.650000

### Mame CORE vector game options ###
antialias 1
translucency 1
beam 1.000000
flicker 0.000000
intensity 1.500000

### Mame CORE sound options ###
samplerate 44100
samples 1
resamplefilter 1
sound 1
volume 0

### Mame CORE misc options ###
artwork 1
use_backdrops 1
use_overlays 1
use_bezels 1
artwork_crop 0
artwork_resolution 0
cheat 0
debug 0
# playback <NULL> (not set)
# record <NULL> (not set)
log 0
maxlogsize 10000
oslog 0
skip_disclaimer 0
skip_gameinfo 0
crconly 0
bios 0

### Configuration options ###
readconfig 1
verbose 0