Difference between revisions of "MAME"
(→Command line arguments) |
(MAME and MESS have been merged in 0.162) |
||
Line 1: | Line 1: | ||
− | [[File:Mess sysinfo.png|thumb|upright=1.2|The | + | [[File:Mess sysinfo.png|thumb|upright=1.2|The MAME system info box for the CPC6128]] |
− | [[File:Mess gx4000 pang.png|thumb|upright=1.2| | + | [[File:Mess gx4000 pang.png|thumb|upright=1.2|MAME also has (still somewhat glitchy) support for the GX4000 and CPC+ series. Note the strange blue bar at the bottom in ''[[Pang (cartridge)|Pang]]''.]] |
− | ''' | + | '''MAME''' (Multiple Arcade Machine Emulator) is an emulator for arcade games, vintage computers, gaming consoles, chess computers, calculators, etc. MAME 0.162 merged the previously separate MAME and MESS (Multi Emulator Super System) codebases into one, so that one executable now combines the emulation capabilities of pre-0.162 MAME/MESS. |
+ | |||
+ | The most important goal of MAME is highly accurate emulation, not speed. MAME is mainly a preservation project that aims to reproduce the behaviour of the real hardware perfectly, so performance may be slightly worse than many dedicated CPC emulators. | ||
==Emulated systems== | ==Emulated systems== | ||
− | Currently, [http://www.progettoemma.net/mess/sysset.php over a thousand systems are supported] by | + | Currently, [http://www.progettoemma.net/mess/sysset.php over a thousand systems are supported] by MAME, including the CPC and CPC Plus ranges and the GX4000. This is probably the main reason for using MAME: A single download is enough to emulate more or less every home computer and gaming console that ever existed in the late 1970s and 1980s—provided one can find a ROM set that works (see below). |
− | + | MAME does not have the depth of other CPC emulators, but it sure has enormous breadth. Its flexible input mapping and pixel shader effects make MAME particularly suited for gaming. | |
==Installation== | ==Installation== | ||
− | + | MAME runs on Windows, Mac OS X, Linux, and FreeBSD. You can get Windows binaries from [http://mamedev.org/release.html mamedev.org]. | |
− | + | ||
− | + | ||
− | On OS X, you can install | + | On OS X, you can install MAME via [http://brew.sh/ Homebrew]: |
brew tap homebrew/games | brew tap homebrew/games | ||
− | brew install | + | brew install mame |
− | On Windows and OS X, the | + | On Windows and OS X, the MAME binary is called '''mame''', on Linux '''sdlmame'''. On some Linux distros such as Arch Linux you have to use absolute paths for disk images or ROMs because /usr/bin/sdlmame is a wrapper script that will cd to the directory with the MAME binary. Or you could simply skip the wrapper script and run /usr/share/sdlmame/sdlmame directly: |
− | alias | + | alias mame=/usr/share/sdlmame/sdlmame |
==Command line arguments== | ==Command line arguments== | ||
− | Typical command line to start | + | Typical command line to start MAME in CPC mode: |
− | + | mame cpc6128 -skip_gameinfo -window -flop1 /path/to/disk.dsk | |
;Device options for the CPC from [http://www.progettoemma.net/mess/extra.html sysinfo.dat] | ;Device options for the CPC from [http://www.progettoemma.net/mess/extra.html sysinfo.dat] | ||
Line 60: | Line 60: | ||
You can use zipped disk images too. If there is more than one DSK image in the zip file, treat the zip file like a directory, e.g. | You can use zipped disk images too. If there is more than one DSK image in the zip file, treat the zip file like a directory, e.g. | ||
− | + | mame cpc6128 -flop1 disk.zip/disk0.dsk | |
==Keyboard layouts== | ==Keyboard layouts== | ||
− | + | MAME supports two keyboard modes: | |
* '''emulated''' (the default; keys are assigned based on key position on the emulated hardware) | * '''emulated''' (the default; keys are assigned based on key position on the emulated hardware) | ||
* '''natural''' (command line option "-natural"; based on the character generated by a key, e.g. pressing "z" will always generate a "z" on the emulated system) | * '''natural''' (command line option "-natural"; based on the character generated by a key, e.g. pressing "z" will always generate a "z" on the emulated system) | ||
− | To use a German keyboard in emulated keyboard mode, start | + | To use a German keyboard in emulated keyboard mode, start MAME e.g. with (key map path on Linux): |
− | + | mame cpc6128 -keymap -keymap_file /usr/share/sdlmess/keymaps/km-de.txt | |
− | In emulated mode, keys can also be remapped in the emulator menu. First press ''Scroll Lock'' to enable the | + | In emulated mode, keys can also be remapped in the emulator menu. First press ''Scroll Lock'' to enable the MAME control keys, then ''Tab'' to open the menu, and finally select ''Input (this system)''. ''Return, Esc'' clears an assigned key. |
Note that the ''Delete'' and ''Backspace'' keys are swapped on the emulated keyboard because of the CPC keyboard layout. So you may want to reassign those. Escape on the CPC is mapped to the key left of "1" on the PC keyboard. Alt-Enter switches between windowed and full screen mode. | Note that the ''Delete'' and ''Backspace'' keys are swapped on the emulated keyboard because of the CPC keyboard layout. So you may want to reassign those. Escape on the CPC is mapped to the key left of "1" on the PC keyboard. Alt-Enter switches between windowed and full screen mode. | ||
Line 77: | Line 77: | ||
==ROMs and extension hardware== | ==ROMs and extension hardware== | ||
− | [[Media:CPC_ROMs_for_MESS.zip|CPC ROMs for | + | [[Media:CPC_ROMs_for_MESS.zip|CPC ROMs for MAME]]. Just unzip the file and move the ZIPs inside into the MESS ROM folder. |
− | ;General notes about | + | ;General notes about MAME and ROMs |
− | + | Some MAME ROMs have parent ROMs that also need to be installed. E.g., <tt>cpc6128.zip</tt> also requires <tt>cpc464.zip</tt> to run. (See the links section for CPC ROM files for MAME.) | |
− | ROMs often only work with a specific version of | + | ROMs often only work with a specific version of MAME. This does not seem to affect CPC ROMs, but other systems sometimes give an error message when ROM filenames or checksums do not match what MAME expected. |
;Slot options (extension hardware) | ;Slot options (extension hardware) | ||
Line 89: | Line 89: | ||
You can get a list of slot options with | You can get a list of slot options with | ||
− | + | mame cpc6128 -lslot | |
− | These are (as of | + | These are (as of MAME 0.162): |
*for "-centronics" | *for "-centronics" | ||
Line 117: | Line 117: | ||
|[[Digiblaster]] (DIY) | |[[Digiblaster]] (DIY) | ||
|} | |} | ||
− | [[File:MESS with Dobbertin Smart Watch.png|thumb|upright=1.7|| | + | [[File:MESS with Dobbertin Smart Watch.png|thumb|upright=1.7||MAME with the Dobbertin Smart Watch ROM loaded (-exp smartwatch)]] |
*for "-exp" | *for "-exp" | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 159: | Line 159: | ||
The ROM Box expansion can be used to load external ROMs such as [[MAXAM]]: | The ROM Box expansion can be used to load external ROMs such as [[MAXAM]]: | ||
− | + | mame cpc6128 -exp rom -rom1 /path/to/MAXAM.ROM | |
Up to 8 external ROMs (-rom1 to -rom8) are supported this way. | Up to 8 external ROMs (-rom1 to -rom8) are supported this way. | ||
Line 165: | Line 165: | ||
==GUI front-ends== | ==GUI front-ends== | ||
− | Various GUI front-ends for | + | Various GUI front-ends for MAME exist for Windows, Linux, and OS X—see this list: [http://www.mess.org/mess:howto#frontends] |
[[File:Messmenu.png|thumb|none|650px|MessMenu on OS X with a CPC ROM selected. Currently, seven different CPC models are supported, including some regional variants (French and Swedish).]] | [[File:Messmenu.png|thumb|none|650px|MessMenu on OS X with a CPC ROM selected. Currently, seven different CPC models are supported, including some regional variants (French and Swedish).]] | ||
Line 172: | Line 172: | ||
[[File:Cpc shader mess.png|thumb|upright=1.5|GLSL shader example]] | [[File:Cpc shader mess.png|thumb|upright=1.5|GLSL shader example]] | ||
[[File:Cpc hlsl shader mess detail.png|thumb|HLSL "1980s" shader (detail)]] | [[File:Cpc hlsl shader mess detail.png|thumb|HLSL "1980s" shader (detail)]] | ||
− | + | MAME can use shaders to simulate typical CRT graphics artifacts such as scanlines, colors bleeding into each other, jitter, and display curvature. | |
− | + | Some example configurations: | |
*Windows (using HLSL shaders) | *Windows (using HLSL shaders) | ||
**A scripted setup with separate "1980s" and "1990s" CRT configs: [http://shmups.system11.org/viewtopic.php?f=6&t=45026&start=240] (huge post is halfway down the page) | **A scripted setup with separate "1980s" and "1990s" CRT configs: [http://shmups.system11.org/viewtopic.php?f=6&t=45026&start=240] (huge post is halfway down the page) | ||
Line 182: | Line 182: | ||
==Remaining issues with CPC emulation== | ==Remaining issues with CPC emulation== | ||
− | * | + | *MAME may fail to read DSK images with certain kinds of copy protection. Speedlock seems to work fine though. |
− | * | + | *MAME cannot write to disc images in DSK format; only MFI (MESS floppy image) and MFM (HxCFloppyEmulator floppy image) are supported for writing. |
− | *Some demo tricks may be broken in | + | *Some demo tricks may be broken in MAME, e.g. overscan pictures are horizontally misaligned (i.e., shifted to the right). |
*CPC+/GX4000 emulation still has some obvious graphics glitches. | *CPC+/GX4000 emulation still has some obvious graphics glitches. | ||
*The emulated CPC464 has the AMSDOS ROM loaded which is a problem with early 464-only programs that rely on the 464's larger free memory. | *The emulated CPC464 has the AMSDOS ROM loaded which is a problem with early 464-only programs that rely on the 464's larger free memory. | ||
Line 195: | Line 195: | ||
*{{EnWiki}} | *{{EnWiki}} | ||
− | *[http:// | + | *[http://mamedev.org/ Official site] |
*[http://www.mess.org/mess:howto MESS user's manual] | *[http://www.mess.org/mess:howto MESS user's manual] | ||
− | *[[Media:CPC_ROMs_for_MESS.zip|CPC ROMs for | + | *[[Media:CPC_ROMs_for_MESS.zip|CPC ROMs for MAME]] |
[[Category:Emulator]] | [[Category:Emulator]] |
Revision as of 10:16, 31 May 2015
MAME (Multiple Arcade Machine Emulator) is an emulator for arcade games, vintage computers, gaming consoles, chess computers, calculators, etc. MAME 0.162 merged the previously separate MAME and MESS (Multi Emulator Super System) codebases into one, so that one executable now combines the emulation capabilities of pre-0.162 MAME/MESS.
The most important goal of MAME is highly accurate emulation, not speed. MAME is mainly a preservation project that aims to reproduce the behaviour of the real hardware perfectly, so performance may be slightly worse than many dedicated CPC emulators.
Contents
Emulated systems
Currently, over a thousand systems are supported by MAME, including the CPC and CPC Plus ranges and the GX4000. This is probably the main reason for using MAME: A single download is enough to emulate more or less every home computer and gaming console that ever existed in the late 1970s and 1980s—provided one can find a ROM set that works (see below).
MAME does not have the depth of other CPC emulators, but it sure has enormous breadth. Its flexible input mapping and pixel shader effects make MAME particularly suited for gaming.
Installation
MAME runs on Windows, Mac OS X, Linux, and FreeBSD. You can get Windows binaries from mamedev.org.
On OS X, you can install MAME via Homebrew:
brew tap homebrew/games brew install mame
On Windows and OS X, the MAME binary is called mame, on Linux sdlmame. On some Linux distros such as Arch Linux you have to use absolute paths for disk images or ROMs because /usr/bin/sdlmame is a wrapper script that will cd to the directory with the MAME binary. Or you could simply skip the wrapper script and run /usr/share/sdlmame/sdlmame directly:
alias mame=/usr/share/sdlmame/sdlmame
Command line arguments
Typical command line to start MAME in CPC mode:
mame cpc6128 -skip_gameinfo -window -flop1 /path/to/disk.dsk
- Device options for the CPC from sysinfo.dat
Name | Argument | Allowed file extensions |
Printer | -prin | .prn |
Snapshot | -dump | .sna |
Disk drive A | -flop1 | .dsk; .d77; .d88; .1dd; .dfi; .imd; .ipf; .mfi; .mfm |
Disk drive B | -flop2 | |
Tape | -cass | .wav; .cdt |
Cartridge | -cart | .cpr; .bin (Plus series and GX4000 only) |
Supported file types can also be shown with the "-listmedia" command line option.
You can use zipped disk images too. If there is more than one DSK image in the zip file, treat the zip file like a directory, e.g.
mame cpc6128 -flop1 disk.zip/disk0.dsk
Keyboard layouts
MAME supports two keyboard modes:
- emulated (the default; keys are assigned based on key position on the emulated hardware)
- natural (command line option "-natural"; based on the character generated by a key, e.g. pressing "z" will always generate a "z" on the emulated system)
To use a German keyboard in emulated keyboard mode, start MAME e.g. with (key map path on Linux):
mame cpc6128 -keymap -keymap_file /usr/share/sdlmess/keymaps/km-de.txt
In emulated mode, keys can also be remapped in the emulator menu. First press Scroll Lock to enable the MAME control keys, then Tab to open the menu, and finally select Input (this system). Return, Esc clears an assigned key.
Note that the Delete and Backspace keys are swapped on the emulated keyboard because of the CPC keyboard layout. So you may want to reassign those. Escape on the CPC is mapped to the key left of "1" on the PC keyboard. Alt-Enter switches between windowed and full screen mode.
ROMs and extension hardware
CPC ROMs for MAME. Just unzip the file and move the ZIPs inside into the MESS ROM folder.
- General notes about MAME and ROMs
Some MAME ROMs have parent ROMs that also need to be installed. E.g., cpc6128.zip also requires cpc464.zip to run. (See the links section for CPC ROM files for MAME.)
ROMs often only work with a specific version of MAME. This does not seem to affect CPC ROMs, but other systems sometimes give an error message when ROM filenames or checksums do not match what MAME expected.
- Slot options (extension hardware)
You can get a list of slot options with
mame cpc6128 -lslot
These are (as of MAME 0.162):
- for "-centronics"
pl80 | COMX PL-80 |
ex800 | Epson EX-800 |
lx800 | Epson LX-800 |
lx810l | Epson LX-810L |
ap2000 | Epson ActionPrinter 2000 |
printer | Centronics Printer |
digiblst | Digiblaster (DIY) |
- for "-exp"
ssa1 | Amstrad SSA-1 Speech Synthesizer |
dkspeech | Dk'tronics Speech Synthesizer |
rom | ROM Box |
multiface2 | Multiface II |
pds | Programmers Development System (CPC Target) |
rs232 | Pace RS232C interface |
amsrs232 | Amstrad RS232C interface |
sf2 | SYMBiFACE II |
amdrum | Amdrum |
playcity | PlayCity |
smartwatch | Dobbertin Smart Watch |
- Loading external ROMs
The ROM Box expansion can be used to load external ROMs such as MAXAM:
mame cpc6128 -exp rom -rom1 /path/to/MAXAM.ROM
Up to 8 external ROMs (-rom1 to -rom8) are supported this way.
GUI front-ends
Various GUI front-ends for MAME exist for Windows, Linux, and OS X—see this list: [1]
CRT simulation
MAME can use shaders to simulate typical CRT graphics artifacts such as scanlines, colors bleeding into each other, jitter, and display curvature.
Some example configurations:
- Windows (using HLSL shaders)
- Linux (using GLSL shaders): MAME tutorial [4]
Remaining issues with CPC emulation
- MAME may fail to read DSK images with certain kinds of copy protection. Speedlock seems to work fine though.
- MAME cannot write to disc images in DSK format; only MFI (MESS floppy image) and MFM (HxCFloppyEmulator floppy image) are supported for writing.
- Some demo tricks may be broken in MAME, e.g. overscan pictures are horizontally misaligned (i.e., shifted to the right).
- CPC+/GX4000 emulation still has some obvious graphics glitches.
- The emulated CPC464 has the AMSDOS ROM loaded which is a problem with early 464-only programs that rely on the 464's larger free memory.
JSMESS, a JavaScript port
There is an experimental port to JavaScript, see the JSMESS article for details.
Links
- MAME at the English-language Wikipedia
- Official site
- MESS user's manual
- CPC ROMs for MAME