Changes

MAME

2,419 bytes added, 18 April
Pang screenshot caption modification. MAME emulation is not “glitchy” anymore.
[[File:Mess sysinfo.png|thumb|upright=.9|The MAME system info box for the CPC6128]]
[[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 Here is shown ''[[Pang (cartridge)|Pang]]''for the GX4000.]]
'''MAME''' (Multiple Arcade Machine Emulator) is a multi-platform emulator for arcade games, home computers, gaming consoles, chess computers, calculators, etc. MAME 0.162 (released on May 27, 2015) merged the previously separate MAME and MESS (Multi Emulator Super System) projects into one, so that a single executable now combines the emulation capabilities of pre-0.162 MAME/MESS.
On OS X, you can install MAME via [http://brew.sh/ Homebrew]:
brew tap homebrew/games
brew install mame
==Starting MAME; command line arguments; MAME menu; quitting==
[[File:MAME menu CPC.png|thumb|upright|The MAME menu]]
First get the [[Media:CPC_ROMs_for_MAME.zip|CPC ROMs for MAME]] and unzip them into the MAME roms folder.
Supported CPC models are cpc464, cpc464p, cpc664, cpc6128, cpc6128p, gx4000, cpc6128f (French), cpc6128s (Swedish), and the clones kccomp ([[KC Compact]]) and al520ex ([[Aleste 520EX]]; hold Shift during boot to go to Basic).
Press ''Scroll Lock'' to toggle partial keyboard emulation mode. Now you can use ''P'' to pause MAME, ''Tab'' to enter the MAME menu, and ''Escape'' to quit MAME. ''Alt-Return'' toggles fullscreen mode. (See also [http://docs.mamedev.org/usingmame/defaultkeys.html default keys].) You can use the "-ab" commandline option to type text into MAME, e.g. mame cpc6128 -flop1 disk.dsk -ab "run\"disc\n"will boot the disc.
;===Device options for the CPC from [http://www.progettoemma.net/mess/extra.html sysinfo.dat]===
{|class="wikitable"
|'''Name'''
mame cpc6128 -flop1 disk.zip/disk0.dsk
===Python script to start MAME in CPC mode===
On Linux, you can also set your file manager (e.g. Nautilus or Konqueror) to open .dsk files with the following Python script:
<pre>
# "cpcn" : natural
import os, os.path, zipfile
from sys import argv
nat = ''
s = "/usr/share/sdlmame/sdlmame cpc6128 -skip_gameinfo -window %s -keymap -keymap_file /usr/share/sdlmame/keymaps/km-dekm_de_LINUX.txtmap" % nat def checkzip(t): "Check if file is a ZIP file; use the first file in the archive" if t[-4:].lower() == '.zip': a = zipfile.ZipFile(t).namelist() t = os.path.join(t, a[0]) return t
if len(argv) > 1:
for x in range(1, len(argv)):
s += ' -flop%u "%s"' % (x, checkzip(argv[x]))
os.system(s)
</pre>
This script should open a MAME window with the disc inserted in drive A. (Note that this uses also selects the German keymap.) You can also use this to open ZIP files containing disc images, e.g. "cpc mydisc.zip" will try to insert the first file in the ZIP archive. ==GUI front-ends==[[File:Mameui.png|thumb|MAMEUI64 on Windows]] Several GUI front-ends for MAME/MESS exist for Windows, Linux, and OS X: *[http://www.mameui.info/ MAMEUI64] (Windows)*[http://qmc2.arcadehits.net/ QMC2] (Windows, OS X, Linux)
==Keyboard layouts==
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/sdlmame/keymaps/km-dekm_de_LINUX.txtmap You can also put these settings in your mame.ini like this: keymap 1 keymap_file /usr/share/sdlmame/keymaps/km_de_LINUX.map
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.
 
==CPC artwork==
[[File:MAME with CPC artwork.png|thumb|MAME window with monitor type set to green and optional CPC artwork]]
You can add optional bezel artwork to MAME to simulate a CPC monitor:
*[[Media:Cpc6128 mame artwork.zip|MAME artwork]] (CPC6128/GT65 bezel)
 
Rename this file to cpc6128.zip and put it in MAME's artwork folder (~/.mame/artwork/ on Linux).
==ROMs and extension hardware==
[[Media:CPC_ROMs_for_MAME.zip|CPC ROMs for MAME]]. Just unzip the file and move the ZIPs inside into the MAME ROM folder.
;===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 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)===
[[File:MESS with Dobbertin Smart Watch.png|thumb|upright=1.4||MAME with the Dobbertin Smart Watch ROM loaded (-exp smartwatch)]]
[[File:Brunword mame.png|thumb|upright=1.4||BrunWord MK4 (ROM) main menu in MAME 0.162 (-exp brunword4)]]
mame cpc6128 -lslot
These are (as of MAME 0.163168):
*for "-centronics"
|hd20
|[[Dobbertin Harddisc]]
|-
|doubler
|[[Draysoft Doubler]]
|-
|transtape
|HM [[Transtape]]
|}
;===Loading external ROMs===
The ROM Box expansion can be used to load external ROMs such as [[MAXAM]]:
Up to 8 external ROMs (-rom1 to -rom8) are supported this way.
;===[[Dobbertin Harddisc]]===
From the [http://www.cpcwiki.eu/forum/emulators/got-bored-again/msg102272/#msg102272 forum post]:
See http://mahlemiut.marpirc.net/cpc_hd20.avi, a quick demo loading a game from HD.
==GUI front-endsCRT simulation==[[File:MameuiMAME BGFX Linux detail.png|thumb|MAMEUI64 on Windows]][[File:Messmenu.png|thumb|MessMenu on OS X BGFX output with a CPC ROM selected. Currently, seven different CPC models are supported, including some regional variants (French and Swedish).default shader settings]]
Various GUI front-ends for MAME/MESS exist for Windowscan use shaders to simulate typical CRT graphics artifacts such as scanlines, Linuxcolors bleeding into each other, jitter, and OS X:display curvature.
*[http://www.mameui.info/ MAMEUI64] (Windows)*[http://qmc2.arcadehits.net/ QMC2] (Windows, OS X, Linux)===BGFX===
==CRT simulation==[The easiest way to do this (works on Windows, OS X, and Linux) since MAME 0.172 is to enable [Filehttps:Cpc shader mess//github.png|thumb|GLSL com/bkaradzic/bgfx BGFX] video output: Put this in your mame.ini:  video bgfx bgfx_screen_chains hlsl (You may also have to set bgfx_path to the bgfx directory if MAME cannot find the shaders.) Check with F11 if you still get 100% performance. If not, adjust frame skip with F8/F9. Also, if you press the tilde (~) and then cursor up/down, you can adjust the shader example settings (Linuxthey are also under Slider Controls in the MAME menu). These are not saved at the moment though.[http://docs.mamedev.org/advanced/bgfx.html]] If you edit bgfx/chains/hlsl.json in a text editor, you can change the default values. E.g., to reduce the Moiré pattern, search for "Shadow Mask Amount" and change it to:  "default": 0.20 ===HLSL and GLSL===
[[File:Cpc hlsl shader mess detail.png|thumb|HLSL "1980s" shader (Windows); MAME config used is on image description page]]
MAME can use shaders to simulate typical CRT graphics artifacts such as scanlines, colors bleeding into each other, jitter, and display curvature.
Some example Older methods for CRT simulation are manual HLSL and GLSL configurations, here are some examples:
*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)
*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 Compiling to JavaScript port==
There is an experimental port of Since MAME/MESS 0.168 (released in November 2015), MAME can compile to JavaScript, see the using Emscripten's emmake command.[http://mamedev.org/releases/whatsnew_0168.txt] [[JSMESS]] article is therefore no longer necessary to compile e.g. the MAME/MESS CPC emulator for detailsweb browsers.
==Links==
*[http://www.mess.org/mess:howto MESS user's manual]
*[[Media:CPC_ROMs_for_MAME.zip|CPC ROMs for MAME]]
*[https://linux-user.gr/t/one-retro-cumputers-emulator-to-rule-them-all/1302 one-retro-cumputers-emulator-to-rule-them-all-(in-greek-language)]
[[Category:Emulator]]
9
edits