# 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
-listgamespersourcefile | Lists all the games in a sourcefile
-listinfo / -li | Lists all available info on a driver
-listxml / -lx | 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
-listmd5 | Lists the checksums used in hard disk based games
-listsha1 | 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
-listromdistribution | Lists the distribution of roms MESS support by year and size
-listromnumber | Lists games by how many roms they contain
-listpalettesize / -lps | Lists games by name, year and how many colours it supports.
-listcpu | Lists cpu's used in drivers
-listcpuclass | Lists by year how many games have 8, 16 or 32bit processors.
-listnosound | Lists game that don't support sound yet
-listsound | Lists how many games support the different sound chips emulated in MESS
-listnvram | 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
-listdevices | Lists the devices used by a system in MESS
-listtext | 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.
-vsam | 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
-crcpath / -crc | Specify path for software crc check files
-inipath | Specify path for game ini files
-samplepath / -sp | 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)
-ctrlr_directory name Lets you specify a folder for MESS to look in for you controller ini files.
-diff_directory name Lets you specify a folder for MESS to look in for you hard drive difference files.
-cheat_file | Specify the cheat filename
-sysinfo_file | Specify the system info filename
-messinfo_file | Specify the MESS info filename
*** Windows video options ***
-[no]autoframeskip / -[no]afs | If you game is running slow then use skip frames to speed up emulation
-frameskip / -fs | Lets you specify how many frames are skipped when playing a game. (autoframeskip needs to be off)
-[no]waitvsync | Waits for the screen to draw before drawing the next frame (reduces tearing of graphics)
-[no]triplebuffer / -[no]tb | Triple buffering (only if fullscreen) draws three screens at a time and flips them which creates smoother animation.
-[no]window / -[no]w | This option lets you run MESS in a window on your desktop or fullscreen.
-[no]ddraw / -[no]dd | Use DirectDraw for rendering (Leave on!)
-[no]direct3d / -[no]d3d | Use Direct3D for rendering (On some cards faster than direct draw)
-[no]hwstretch / -[no]hws | Stretches games to fill the screen using the hardware on your graphics card (if you have it)
-cleanstretch / -cs | Stretches the screem to integer ratios and ignores the game aspect ratio. Uses these options... -cleanstretch auto : Lets MESS decide. -cleanstretch full -cleanstretch none : Disables cleanstretch -cleanstretch horizontal : Horzontal clean stretch only -cleanstretch vertical : Vertical clean stretch only
-resolution / -r | Sets the resolution in fullscreen mode (e.g. 640x480)
-zoom / -z | Forces a specific zoom level
-refresh | Set a specific monitor refresh rate in hz
-[no]scanlines / -[no]sl | Emulates the lower resolution screenmode on monitors and TV's.
-[no]switchres | Switches the screen resolutions to best fit the game
-[no]switchbpp | Switch the color depth of a screen to match the game being played.
-[no]maximize / -[no]max | Starts a MESS window maximized
-[no]keepaspect / -[no]ka | Keep a game in the right aspect no matter what resolution is used.
-[no]matchrefresh | Attempt to match the game's refresh rate
-[no]syncrefresh | Synchronize only to the monitor refresh
-[no]throttle | Throttle MESS's speed to match the game's framerate
-full_screen_brightness / -fsb | Sets the brightness in full screen mode
-frames_to_run / -ftr | Sets the number of frames to run within the game
-effect | none - no effect (this is the default) sharp - Stretch screen without blurring scan25 - 25% scanlines scan50 - 50% scanlines scan75 - 75% scanlines rgb3 - a certain "monitor mask" rgb4 - another one rgb6 - another one rgb16 - another one. Choose the one you like best.
-screen_aspect X:Y | Where X and Y are the aspect you want. Helps configure the screen to fill your monitor. eg.g. most monitors are 4:3 though if you have a wide screen then you may have 16:9.
-[no]sleep | Lets MESS use less CPU time if it can
-[no]rdtsc | Changes the timing in a game
-[no]high_priority | Increase processor thread priority so improves performance if you have alot of programs running.
*** Windows Direct3D 2D video options ***
-[no]d3dtexmanage | Lets DirectX manage all game screen to texture operations rather than MESS.
-d3dfilter / -flt | Sets the filter (blurriness) when using D3D for rendering the game screen thus reducing jagged edges. 0 is none 1 bi-linear 2 flat bi-cubic 3 gaussian bicubic 4 anisotropic (If your card supports it)
-[no]d3dprescale | Works like sharp in the effects so doesn't blur the screen.
-d3dfeedback | Something about feedback intensity (Whatever that is)
-d3dsaturate | Over saturates the colour intensity in games.
-d3dscan | Sets the scanline intensity if you select this effect.
-[no]d3deffectrotate | Rotates the d3deffect command to work with vertically aligned monitors.
-d3deffect | Adds screen effects when the game screen is drawn. You can also use the names from the -effect option too. rgbminmask dotmedmask rgbmedmask rgbmicro rgbtiny aperturegrille dotmedbright rgbmaxbright
-d3dcustom | Dont touch unless you know what you're doing
-d3dexpert | Same as above.
*** Windows sound options ***
-audio_latency | Sets MESSs audio latency which help to reduce sound clicks and pops
*** Input device options ***
-[no]mouse | Enable mouse input
-[no]joystick / -[no]joy | Enable joystick input
-[no]lightgun / -[no]gun | Enable lightgun input
-[no]steadkey / -[no]steady | If you are having problems with pressing more than one key at a time then enable this option.
-[no]keyboard_leds / -[no]leds | uses the keyboard LED's (e.g. numlock light) to simulate the LED's on an arcade board
-a2d_deadzone / -a2d <float> | How much you have to move an analog joystick before it registers on digitally controlled games.
-ctrlr name Loads the controller ini file specified by name (e.g. -ctrlr wingman)
*** MESS specific options ***
-[no]newui / -[no]nu | Uses the new MESS windows user interface for options instead of Mames screen based one
-cartridge / -cart | Opens a software file as if it were a cartridge
-floppydisk / -flop | Opens a software file as if it were on a floppy disk
-harddisk / -hard | Opens a software file as if it were a harddisk
-cylinder / -cyln | Opens a software file as if it were on a cylinder storage device
-cassette / -cass | Opens a software file as if it were on a cassette tape
-punchcard / -pcrd | Opens a software file as if it were a on punchcard
-punchtape / -ptap | Opens a software file as if it were on punchtape
-printer / -prin | Opens a software file as if it were from a printer
-serial / -serl | Opens a software file as if it was sent through a serial port
-parallel / -parl | Opens a software file as if it was sent through a parallel port
-snapshot / -dump | Opens a system dump files straight to memory
-quickload / -quik | Opens a software file as if it were a quickload file
-cartridge_dir | Sets the default cartridge sub folder (useful if you want to separate different types of in system software folders)
-floppydisk_dir | Same as above but for floppydisks
-harddisk_dir | Same as above but for harddisks
-cylinder_dir | Same as above but for cylinders
-cassette_dir | Same as above but for cassettes
-punchcard_dir | Same as above but for punchcards
-punchtape_dir | Same as above but for punchtape
-printer_dir | Same as above but for printer files
-serial_dir | Same as above but for serial data
-parallel_dir | Same as above but for parallel data
-snapshot_dir | Same as above but for system snapshots
-quickload_dir | Same as above but for quickload files
-ramsize / -ram | Lets you set the amount of RAM a system can use (if the system supports it)
-threads / -thr | Used for parallel data
-[no]natural / -[no]nat | Determines whether a natural keyboard is being used
-min_width / -mw <int> | Sets a minimum width for the MESS screen
-min_height / -mh <int> | Sets a minimum height for the MESS screen
-[no]writeconfig / -[no]wc | Determines whether MESS writes a configuration file for a system when you close it
-createdir | Creates all the system folders in the MESS software folder
*** MESS CORE video options ***
-[no]norotate | Do not apply rotation
-[no]ror | Rotate screen clockwise
-[no]rol | Rotate screen anti-clockwise
-[no]autoror | Automatically rotates the screen clockwise for vertical games.
-[no]autorol | Automatically rotates the screen anti-clockwise for vertical games.
-[no]flipx | Flip screen upside-down
-[no]flipy | Flip screen left-right
-debug_resolution / -dr | Set resolution for debugger window
-gamma | Gamma correction is used if you find your game is too dark.
-brightness | Brightness is also used if you find your game is too dark.
-pause_brightness | Changes the brightness of the game when paused.
*** MESS CORE vector game options ***
-[no]antialias / -[no]aa | Draw antialiased vectors which smoothes out the edges.
-[no]translucency / -[no]tl | Draw translucent vectors which simulates the feel of vector games
-beam | Set beam width in vector games
-flicker | Set flickering in vector games which again adds to the realism of vector games.
-intensity | Sets the brightness of the vectors.
*** MESS CORE sound options ***
-samplerate / -sr | Set samplerate (e.g. 22050) in khz
-[no]samples | Uses samples to complete the sound systems for games which require them.
-[no]resamplefilter | Resample if samplerate does not match
-[no]sound | Enable/Disable sound and sound CPUs
-volume / -vol | Volume (range [-32,0])
*** MESS CORE misc options ***
-[no]artwork / -[no]art | Use additional game artwork
-[no]use_backdrops / -[no]backdrop | For art files that are the backdrop for games.
-[no]use_overlays / -[no]overlay | For art files that are overlayed on top of games.
-[no]use_bezels / -[no]bezel | For art files that are go around games.
-[no]artwork_crop / -[no]artcrop | Crop artwork to game screen size only.
-artwork_resolution / -artres | Sets the resolution for the artwork in a game (0 for auto)
-[no]cheat / -[no]c | Enable/disable cheat subsystem
-[no]debug / -[no]d | Enable/disable debugger (only if available)
-playback / -pb | Playback an input file
-record / -rec | Record an input file
-[no]log | Generate an error.log for debugging
-maxlogsize | Sets the maximum error.log size (in KB)
-[no]oslog | Outputs an error log to MESSs debugger
-[no]skip_disclaimer | Skips the disclaimer screen
-[no]skip_gameinfo | Skips the game info screen
-[no]crconly | Uses only roms CRC checksum for all integrity checks done.
-bios | Lets you set the country of the BIOS for Neo-Geo based games.
*** Configuration options ***
-createconfig / -cc | Create the default configuration file
-showconfig / -sc | Display running parameters in rc style
-showusage / -su | Show key help
-[no]readconfig / -[no]rc | Enable/disable loading of configfiles
-[no]verbose / -[no]v | Display additional diagnostic information

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