Author Topic: MAME is a Multiple Arcade Machine Emulator for old arcade games! MOST Systems.  (Read 2757 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4281
MAME is a Multiple Arcade Machine Emulator for old arcade games! MOST Systems.



Quote
MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with an arcade game's data files (ROMs, CHDs, samples, etc.), MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose system. MAME can currently emulate many thousands of classic arcade video games from the the very earliest CPU-based systems to much more modern 3D platforms.

The ROM and CHD images that MAME requires are "dumped" from arcade games' original circuit-board ROM chips, hard disks, and CD-ROMs. MAME becomes the "hardware" for the games, taking the place of their original CPUs and support chips. Therefore, these games are NOT ports or rewrites, but the actual, original games that appeared in arcades, complete with all the bugs, glitches, slowdowns, and subtleties of the original game as it appeared in the arcade.

MAME's purpose is to preserve these decades of video-game history. As gaming technology continues to rush forward, MAME prevents these important "vintage" games from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the games are playable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully)?

 Is MAME a simulator or an emulator?

That depends entirely on the definition of those words. In electrical engineering, the word "emulation" has traditionally been used to mean a very low-level reproduction of real life electrical signals. For example, professional microprocessor emulator software comes with a processor-shaped connection, which you can actually plug into a motherboard and run instructions with it.

MAME runs simulated CPU instructions on top of simulated memory maps and I/O spaces. If simulation had to be defined, there could be three levels:

    * Signal level. At this level, all the inputs and outputs of each chip on the board would be simulated. Believe it or not, given current processing power available, this would likely not run at anything close to full speed even for the simplest games. Simulation at the signal level would be required to produce a truly accurate emulation of microprocessor-less games such as Pong and Monaco GP.
    * Logical level. At this level, there is an assumption that one or more CPUs is running the show, and those CPUs are emulated as a single unit, as accurately as possible based usually on the specs for the CPU, and sometimes based on actual probing of the CPU itself. Furthermore, mapping of memory and behaviors of other chips (audio/video) are replicated to varying degrees of accuracy. All games in MAME currently run simulations at this level.
    * HLE level. At this level, a High Level Emulation of large portions of the game are used to simulate the behavior of multiple chips and often even entire CPUs. Simulation at this level is usually very game-specific and often behaves in noticeably different ways than the original. For the most part, MAME tries to avoid using HLE unless necessary, and it definitely does not support its use as a means of accelerating the emulation.

Most people make the simulation/emulation cut based on a couple of factors. One such factor is determining whether you can support all the same games the original hardware did without any game-specific hacks. MAME's CPU and sound cores pass that test literally every day as new games are added. Some other emulators that rely on a HLE approach fail it badly. A descriptive comment about the detail level of MAME's drivers is "if someone can make an FPGA version of the game, the driver documents it well enough", and that's actually happened for Pacman using MAME as a reference.

In other words, MAME is against simulating games, but it's not against simulating components. The only way you can emulate a game is to simulate all the components. All those chips weren't really created in C.


What do I need to run MAME?

MAME is written in fairly generic C, and has been ported to numerous platforms. Over time, as computer hardware has evolved, the MAME code has evolved as well to take advantage of the greater processing power and hardware capabilities offered.

The official MAME binaries are compiled and designed to run on a standard Windows-based system. The minimum requirements are:

    * Any MMX-capable AMD or Intel processor (Pentium III or later recommended for current versions)
    * Windows 98 or later (Windows 2000 or later preferred)
    * DirectX 5.0 or later (included with all versions of Windows 98 or later)
    * A DirectDraw or Direct3D capable graphics card
    * Any DirectSound capable sound card

Of course, the minimum requirements are just that: minimal. You may not get optimal performance from such a system, but MAME should run. Modern versions of MAME require more power than older versions, so if you have a less-capable PC, you may find that using an older version of MAME may get you better performance, at the cost of lowered accuracy and fewer supported games.

As of MAME 0.106 and later, MAME will take advantage of 3D hardware for compositing artwork and scaling the games to full screen. To make use of this, you should have a modern Direct3D 8-capable video card with at least 16MB of video RAM.

Around the same time, MAME added minimal multi-processor support, if you use the -mt flag. This means that some of the video processing can be done on a second CPU core if it is available. To take advantage of this, you should run MAME on a dual core (or greater) system.

Keep in mind that even on the fastest computers available, MAME is still incapable of playing some games at full speed. The goal of the project isn't to make all games run playably on your system; the goal is to document the hardware and reproduce the behavior of the hardware as faithfully as possible.


What platforms does MAME run on?

SDLMAME is an SDL-targeted port of MAME maintained by R. Belmont. SDL is a platform-independent library, and so SDLMAME can be configured to run on Linux, Windows, MacOS X, and many other platforms.

MAME OS X is a native MacOS X port of MAME maintained by Dave Dribin.

A number of additional MAME ports are available, but not updated as frequently. These include:

MacMAME, a MacOS X port of MAME maintained by Brad Oliver. Also Links to Mac Classic Versions!

AdvanceMAME, a DOS/Linux port of MAME optimized for arcade monitors that was maintained by Andrea Mazzoleni.  The last official release was on 01-11-2009, AdvanceMAME v0.106.1 .


 http://mamedev.org/  

Download MAME for the following platforms:

SDLMAME is an SDL-targeted port of MAME maintained by R. Belmont. SDL is a platform-independent library, and so SDLMAME can be configured to run on Linux, Windows, MacOS X, and many other platforms.

MAME OS X is a native MacOS X port of MAME maintained by Dave Dribin.

A number of additional MAME ports are available, but not updated as frequently. These include:

MacMAME, a MacOS X port of MAME maintained by Brad Oliver. Also Links to Mac Classic Versions!

AdvanceMAME, a DOS/Linux port of MAME optimized for arcade monitors that was maintained by Andrea Mazzoleni.  The last official release was on 01-11-2009, AdvanceMAME v0.106.1 .


Categories: Games - Emulator - Arcade Games - Macintosh Classic - Mac System X - Panther - Tiger - PPC - MacIntel - LINUX - Windows - Leopard
« Last Edit: June 12, 2010, 01:56:17 PM by Software Santa »

 

email