This FAQ was written to support MESS. If you have any changes, suggestions or additions please contact the MESS team. Changes will be made as time is available. If you have a question that is not answered in this FAQ, try the searching the MESS message boards. There is a wealth of information there already.
MESS is an acronym that stands for Multi Emulator Super System. MESS will more or less faithfully reproduce computer and console systems on a PC. MESS can currently emulate over 250 systems from the last 5 decades.
MESS emulates the hardware of the systems and sometimes utilizes ROM images to load programs and games. Therefore, these systems are NOT simulations, but the actual emulations of the hardware.
The primary purpose of MESS is to preserve decades of computer and console history. As technology continues to rush forward, MESS prevents these important "vintage" systems from being lost and forgotten. MESS is based on MAME . Additional information about MESS or MAME can be found at www.mess.org or www.mamedev.org.
An emulator attempts to recreate the original functions of the hardware. Software run on a emulator should perform exactly as if it were being run on the original hardware.
A simulator attempts to recreate the original functions of the software, essentially imitating the game or software. The end results may look very similar between emulation and simulation but they are very different in how they are implemented.
MESS and MAME are both emulators. MESS emulates computer and console systems, and MAME emulates arcade games. This may include bugs or flaws that were on the original system.
The primary objective of MESS is to accurately emulate multiple systems. Most stand alone emulators/simulators often focus on letting you play games on your PC. They often include speed hacks or fudge things to make them look right. The philosophy of MESS is to behave exactly like the original hardware, even if it is slower, so that all software for the original machine will work as it would on the original hardware. The focus on accuracy tends to make MESS a bit slower than other emulators, but this is not always true.
Yes, MESS is really free. The source code is freely available, too. It is illegal to sell MESS or its source.
No. MESS is based on MAME, and uses the same underlying engine, but its goals are different. To put it simply, MAME is for arcade machines, and MESS is for home computers and video game consoles.
It is could be possible in the future but right now each is targeting a set of systems to emulate. MESS is built on top of the MAME infrastructure and they share many of the same CPU code. The teams work very close and many developers contribute to both projects. Many arcade systems emulated in MAME are based on or related to consoles emulated in MESS. There is a mutual benefit in testing and development of these related drivers.
The MESS project keeps up-to-date with changes to the core MAME system, and generally releases shortly after each major MAME release.
The MESS developers receive a large volume of email, and also suffer from "Real life syndrome", and thus might not be able to reply, particularly when such questions are answered in this FAQ. Your best bet is to ask a question on the MESS message board at http://www.mess.org/
In general a PC with a decent processor should run most of the systems at a decent speed. There are an enormous variety of systems emulated and each system has its own requirements. The best thing to do is try the system you are interested in. But remember accuracy is the primary goal not speed.
First, it is important to note that in the emulation world, the term ROM is used to refer to two different things:
In MESS, #1 are also termed as "BIOS", after what they are typically called in Intel PC systems. The term "cartridge image" is used to refer to #2, where "image" is a generic term that applies to downloaded images of removable media, whether they be a cartridge, a floppy drive, or a hard disk.
In most cases, old software is physically incompatible with modern computers. No matter how hard you push, an Atari cartridge just plain won't fit in your computer's floppy drive. Folding up old 5 1/4" diskettes so they fit in a 3 1/2" drive will only break your disks. Obviously there is a problem here - how do I get that software into my PC so an emulator can use it?
It is possible to build special cartridge reading devices for console systems and hook up old computers to new ones to transfer floppy disks. These media get transferred into files on the new computer.
Now, originally emulation was just for hobbyists who had all this special equipment, but some of them put these BIOSes and images up on the Internet for people to download, on the honor system that people would only download the BIOSes and images that they owned the original software for. Unfortunately, a lot of people came along who just wanted to download free games and did not care about preservation, and gave the emulation community a bad name among software companies. There are many BIOSes/images sites on the Internet, using a search engine should turn up the ones you want. But remember: downloading pirated BIOSes/images that you do not own is illegal. Some people say that the copyrights have expired or that you can download it if you delete it after 24 hours, but they are wrong. It is up to you whether you want to ignore the law, as most of the games are not and will not ever be sold again.
Most systems require BIOSes. MESS is very picky about its BIOSes - they must be exactly the ones it is expecting, otherwise it may not work.
BIOSes should go, still zipped, in the "roms" subfolder of wherever you put MESS (create it if it doesn't exist). Game images can go anywhere, although by default the GUI will look in the software\[system name] subfolder of your MESS folder. They can still be zipped, but only one image per zip file.
For DOS, type "mess [system] [device] [game] [options]", where [system] is the system driver name, [device] is the type of ROM, [game] is the filename of the ROM, and options are command line options. Valid [device] names (eg -cart and -flop) can be found by using "mess -listdevices".
For example:
mess nes -cart C:\ROMs\NES\zelda.nes -nosound
This will run the Zelda game on the Nintendo system without sound.
For UNIX/Linux, do the same thing except the name of the program is xmess.
For Macintosh or Windows OS, run the MacMESS or messgui.exe application and click on the system or software you want to run.
There is a message board you can go to for help at http://www.mess.org. But first, make sure you read this FAQ and the rest of the documentation. The answers can often be found there. Also check out the MAME FAQs at http://www.mamedev.org --it is a very good resource for things common to MAME and MESS, such as sound and graphics setup. Also search through the message board to see if somebody already had the same problem. And at least put some effort into fixing it yourself. People on message boards can get very annoyed with people who ask questions that have already been answered elsewhere, especially in config.txt and windows.txt.
MESS' goal is compatibility over speed. Some computers might not be able to provide the needed power for full speed emulation. Many other emulators perform shortcuts that sacrifice compatibility in favor of performance, which is a valid tradeoff given a different set of design goals. With MESS, your CPU is doing the jobs of the CPU(s), graphics chip(s), sound chip(s), as well as any other special hardware present in the original machine, so it can be bogged down fairly easily, especially by the relatively unoptimized MESS core. MESS is written almost entirely in C, not assembly, for compatibility and portability reasons. Additionally, there is a level of overhead required to get the level of modularity that it takes to have the myriad components in the emulation be usable across a broad set of drivers.
There are some tweaks you can do to speed up the performance a bit (see the MAME FAQ), but if you need a big boost, there is not much you can do except buy a faster computer. Some speed issues can be solved by selecting an appropriate display method. Refer to CONFIG.TXT to set MESS to run in the windowed mode and in the lowest resolution available. If it runs at a good speed systematically try different video options (e.g. resolution, yuvmode etc.) for the fullscreen mode until you get a satisfying result. As computers differ a lot in their graphical capabilities, there is no "best" configuration for all systems. You will have to find the best one for your system yourself.
In MESS for Win32, there are two UIs use at runtime. There is the "Classic UI" which is derived from MAME's UI enabled by default. There is the optional "New UI" which uses a standard Windows menu bar to operate the emulation. By default, the New UI is disabled, and it may be removed in the future. To use the "New UI", perform one of the following steps:
The snapshot (aka screenshot) folder is the place to store images to be displayed in the GUI. It can display in-game/software images and system images, or anything else as long as it is named correctly.
The snapshot folder can be configured in the Directories... window under the Options menu in the GUI. The default screen folder is snap. Store system images with the system name. Store software/game snapshots in a folder under the system they belong to.
For example:
mess/snap/a2600.png <<< This is a picture of an Atari system. The name needs to match the driver.
mess/snap/a2600/junglehunt.png <<< This is an in-game screenshot of the game Jungle Hunt. The name needs to match game name.
You can take your own screen shots by selecting the 'Save Screenshot' option in the file menu while in emulation. This will save an image in the png format with the name of the driver (if one does not exist already). If an image already exists an a sequential number will be added to the name (for example coco.png, coco0000.png, coco0001.png etc...).
You can also find many images on various emulation or download images from the internet at various sites. Try your favorite search engine.
For Windows, see the How to compile MESS (Win32) document. Compiling MESS for Windows requires the MinGW toolkit, a variant of GCC. MinGW comes with a variant of GDB for debugging.
You can invoke the build with MSVC_BUILD=1 and the build will use Visual C instead of MinGW. Note that MinGW is still required as GNU make is used rather than nmake. Using the Microsoft compilers allows one to use the Visual C debugger to debug MESS, but one does not get the full benefits of the IDE.
See SDLMESS.
If you have programming skills, you can download the source and fix bugs, improve emulation on existing systems or add a new one! If you fix anything, be sure to submit the fixes so they can be included in the source. Be advised that corrections or additions may not be accepted if they are hackish in nature; MESS strives for accuracy both in emulation and in the source code. Another major concern is the verifiability of the changes. One major obstacle in MESS that often the MESS maintainer may understand the system much less than you do, and it can be very difficult for the MESS maintainer to validate any changes, so changes submitted to MESS should be accompanied with instructions on how to run the system and how to run specific software that failed to run before, but runs after the changes. It generally does not suffice to simply say "Look at page XYZ. It provides complete information on how to run the WowieZowie system." The MESS developers need to know the specifics, and cannot run around how to use a very obscure system just to save the time of a submitter.
As an alternative, one way to contribute is to modernize drivers. Over MAME's/MESS's lifetime, there have been core improvements for which not all drivers have been modified to take advantage. These techniques include:
If you do not have programming skills, you can help by documenting emulated systems and software, adding FAQ entries, reporting bugs, submitting artwork and so on - anything to assist those with programming skills and improve the project.
If you are comfortable programming C, you can download the MESS source code and attempt to fix it yourself. If you have questions about the MESS source, ask them on the MESS message board.
If you are not comfortable programming C, the best thing for you to do is to create a bug report at MESS Bugzilla. When reporting a bug, make sure to include as much information as possible, including snapshots, links, descriptions, and instructions. Keep in mind that MESS emulates hundreds of systems and the reader may not be familiar with the system or driver you are reporting a bug in. A bug report with simple, clear instructions and a reproducible case is much more likely to get fixed. Also, if you know a previous version of MESS that worked correctly please include that information.
If you ask for help on the message board, post it in both English and your native language. Many people there speak more than one language and may be able to help you in your native language. Also, visit http://babelfish.altavista.com. They have a translation program that can translate between English and most European languages as well as a number of other languages.