Difference between revisions of "Emulator:MESS"

From Wah!ki
Jump to navigation Jump to search
Line 35: Line 35:
 
Let start with some key fundamentals you will benefit from understanding when approaching mess for the first time.
 
Let start with some key fundamentals you will benefit from understanding when approaching mess for the first time.
  
 +
==== Terminology ====
 
{| class="wikitable" width="100%"
 
{| class="wikitable" width="100%"
 
|-
 
|-
Line 45: Line 46:
 
| Partial Emulation
 
| Partial Emulation
 
| Just like Full Emulation this is a ''runtime'' state for MESS, when in this mode the emulator returns control of the Keyboard to the host even if you are using a machine with a full keyboard that has a TAB key assigned as part of the input configuration, the TAB key operation will interact with you host not the emulator internally. In this case pressing tab will open the MESS UI and allow you manage attached devices, disks, tapes, inputs etc.
 
| Just like Full Emulation this is a ''runtime'' state for MESS, when in this mode the emulator returns control of the Keyboard to the host even if you are using a machine with a full keyboard that has a TAB key assigned as part of the input configuration, the TAB key operation will interact with you host not the emulator internally. In this case pressing tab will open the MESS UI and allow you manage attached devices, disks, tapes, inputs etc.
 +
|-
 +
| Driver
 +
| A driver is the main software defined machine configurations, states etc, it may define multiple systems and/or machines
 
|-  
 
|-  
 
| System
 
| System
| A system is equivilent in all respects to a machine, although multiple machine versions may be grouped under a system.
+
| A system is equivalent in all respects to a machine, although multiple machine versions may be grouped under a system.
 
|-
 
|-
 
| Machine
 
| Machine
Line 66: Line 70:
 
|}
 
|}
  
 +
==== Information ====
 +
Obtaining information about machine is fairly simple once you understand the above. There are 3 major command line options to enquire on a system
 +
{| class="wikitable" width="100%"
 +
|-
 +
! width="20%" | Term
 +
! width="80%" | Description
 +
|-
 +
|
 +
-listslots
 +
| This will show you the available slots for the machine, as per the terminology table these are generally internal slots of the machine (e.g. ISA slots)
 +
|-
 +
|
 +
-listdevices
 +
| Displays all the applicable devices for the machine including vga, cpu, ram, speaker devices etc. This command is useful when configuring a machine from the command line. It can be used to understand how to map an device so the slots are made available
 +
|-
 +
|
 +
-listmedia
 +
| Displays all compatible media, the device it is compatible with and what filetypes the machine will accept.
 +
|}
 +
You can call each of the above without a machine name and MESS will output information for all know systems
  
 +
===== Examples =====
 +
Finding the media supported for the ct486 driver
 +
'''
 +
<nowiki>
 +
$./mame64 ct486 -listmedia
  
 +
SYSTEM          MEDIA NAME      (brief)    IMAGE FILE EXTENSIONS SUPPORTED
 +
---------------- --------------------------- -------------------------------
 +
ct486            floppydisk1      (flop1)    .dsk  .ima  .img  .ufi  .360  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi 
 +
                floppydisk2      (flop2)    .dsk  .ima  .img  .ufi  .360  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi 
 +
                harddisk        (hard)    .chd  .hd  .hdv  .2mg  .hdi 
 +
                printout        (prin)    .prn 
 +
</nowiki>
 +
'''
  
  
  
 
[[Category:Emulator|MESS]]
 
[[Category:Emulator|MESS]]

Revision as of 13:23, 25 January 2020

About

MESS stands for Multi Emulator Super System, the goal of the project was simlar to MAME where MAME only emulated arcade systems MESS took the MAME source code and extended it to include support for consoles, computer systems and calculators. That is not to say the scope was limited to only these 3 classes of device, The MESS project was happy to emulate any non-arcade system, leaving the arcade work up to the MAME project.

Being based on the same source code oas the MAME project means the project shared similar goals, that is accuracy and documentation over playability with the byproduct of accurate emulation being the ability to load ROMs.

As of MAME 0.167 the MESS source code was integrated into the main MAME source tree and the projects unified. This made sense because of the lot of the contributors to MESS were also MAME developers and the projects shared a common codebase.

The default MAME compilation as of 0.167 will build a unified MAME/MESS project (commonly referred to as UME) although as of MAME 0.217 it is still possible to build MESS alone by passing a SUBPROJECT variable during compilation.

Project Homepage

Configuration

Platform Version Device Exec Type commandline_format
Linux 000000 N/A README D N.A


Usage

Some general usage notes are listed here, due to the scope of the MESS project these should get you most of the way when using any system that isn't explicitly covered in its own article.

Fundamentals

Let start with some key fundamentals you will benefit from understanding when approaching mess for the first time.

Terminology

Term Description
Full Emulation This term does not relate to the status of the emulation of the device nor machine but is instead a runtime state for MESS and as it happens the default state for MESS when you launch a machine/device. When in Full Emulation the MESS UI is no longer accessible using the standard keys and if the machine you are running supports a keyboard all applicable keys (TAB) will be assigned to the machine NOT your host when the emulator has focus.
Partial Emulation Just like Full Emulation this is a runtime state for MESS, when in this mode the emulator returns control of the Keyboard to the host even if you are using a machine with a full keyboard that has a TAB key assigned as part of the input configuration, the TAB key operation will interact with you host not the emulator internally. In this case pressing tab will open the MESS UI and allow you manage attached devices, disks, tapes, inputs etc.
Driver A driver is the main software defined machine configurations, states etc, it may define multiple systems and/or machines
System A system is equivalent in all respects to a machine, although multiple machine versions may be grouped under a system.
Machine A machine is an emulated device (e.g. an Atari 2600 or an MSX). Machines are defined in drivers by stipulating their specific hardware. They may as be as complicated as they need to or just a clone/branding change (e.g. CreatiVision as Dick Smith Electronics Wizzard). You start a machine, that machine may be configured with slotted devices and software. Some machines require software or slotted devices be filled (e.g. Amstrad CPC464) before they will do anything, MESS should warn you of this as you start the machine.
Interface An Interface just like on a real device is somewhere you connect external items, a cartridge interface is a good example of this. This is different from a slot in so far it is externally facing, interfaces depending on how they are defined may still show up in the Slot Devices UI menu.
Slot A slot just like on a real device is somewhere you connect devices, taking a relatable example on the ct486 device you can add ISA cards to a slot. Internal slots are available for expanding the machine. This is different from an interface where an interface is externally facing.
Media Media is the supported forms for software that the machine can handle, this is different for every machine, and example of this would be the Nintendo N64 machine with a game cartridge. The media that is supported will be assigned to a type and accept various types of file. So looking at the N64 again, the cartridge media type will support files of .v64, .z64, .rom, .n64, .bin.
Software List A software list is a predefined XML for a system that is able to recognise known good working version of a ROM, Disk Images, CD-ROM etc. These are specific to the machine to which they built for and are built to define compatible software for specific interfaces within that machine definition.

Information

Obtaining information about machine is fairly simple once you understand the above. There are 3 major command line options to enquire on a system

Term Description

-listslots

This will show you the available slots for the machine, as per the terminology table these are generally internal slots of the machine (e.g. ISA slots)

-listdevices

Displays all the applicable devices for the machine including vga, cpu, ram, speaker devices etc. This command is useful when configuring a machine from the command line. It can be used to understand how to map an device so the slots are made available

-listmedia

Displays all compatible media, the device it is compatible with and what filetypes the machine will accept.

You can call each of the above without a machine name and MESS will output information for all know systems

Examples

Finding the media supported for the ct486 driver

$./mame64 ct486 -listmedia

SYSTEM           MEDIA NAME       (brief)    IMAGE FILE EXTENSIONS SUPPORTED
---------------- --------------------------- -------------------------------
ct486            floppydisk1      (flop1)    .dsk  .ima  .img  .ufi  .360  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi  
                 floppydisk2      (flop2)    .dsk  .ima  .img  .ufi  .360  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi  
                 harddisk         (hard)     .chd  .hd   .hdv  .2mg  .hdi  
                 printout         (prin)     .prn