Welcome Guest ( Log In | Register )


 
Reply to this topicStart new topic
> Multiple Arcade Machine Emulator, MAME
NickTheGreek
post 1 May 2007, 10:21 AM
Post #1


Administrator
Group Icon

Group: Admin
Posts: 111157
Joined: 3-June 05
From: Athens, Greece
Member No.: 1
Zodiac Sign: I'm a leo!
Gender: I'm a m!



[center]user posted image[/center]

On December 24th, 1996, Nicola Salmoria began working on his single hardware emulators (for example Multi-Pac), which he merged into one program during January 1997. He named the accomplishment by the name of Multiple Arcade Machine Emulator, or MAME for short (pronounced as the word 'maim' in English, other languages may differ).

The first official release was MAME 0.1, which was released on the evening of February 5th, 1997. Using a modular and portable driver oriented architecture with an open source philosophy, it soon grew into immense proportions. The current version recognizes over six thousand ROM sets. Because MAME releases happen whenever they are ready, at one point the wait between new versions was almost 4 months. To help the agony of the users, a public beta system was used, with a beta release happening every 2-3 weeks on an average. However, now the beta designation has been removed in favor of a good old 0.xx version number. Also a work-in-progress -page exists, if you really want to know the latest information.

Even though MAME allows people to enjoy the long-lost arcade games and even some newer ones, the main purpose of the project is to document the hardware (and software) of the arcade games. There are already many dead arcade boards, whose function has been brought to life in MAME. Being able to play the games is just a nice side-effect. The huge success of MAME would not be possible without the talent of the programmers who joined to form the MAME team. At the moment, there are about 100 people on the team, but there is a large number of contributors outside the team too. Aaron Giles is the current coordinator of the project.

user posted image

[source]mame.net[/source]

MAME is an emulator application designed to recreate the hardware of arcade game systems in software, with the intent of preserving gaming history and preventing vintage games from being lost or forgotten. The name is an acronym for Multiple Arcade Machine Emulator.

The first public MAME release (0.1) was on February 5, 1997, by Nicola Salmoria. As of version 0.114 (actually the 158th proper release), released April 2, 2007, the emulator now supports 3557 unique games and 6579 actual ROM image sets and is growing all the time. However, not all of the games in MAME are currently playable; 779 ROM sets are marked as not working in the current version, and 29 are not actual games but BIOS ROM sets. The project is currently coordinated by Aaron Giles.

How MAME works

MAME contains several components: a central processing unit (CPU) emulator which duplicates the behavior of the CPUs of many original arcade machines; an input emulator which maps arcade buttons, joysticks, and other controls to PC keyboards, joysticks and other devices; and an emulator for the arcade game display and sound equipment. The only thing missing from MAME is the ROM image, which contains the game code itself, along with accompanying data files. When the game is played in MAME, the game should run just as it did on its original hardware.

Emulation philosophy

The stated aim of the project is to document hardware, and so MAME takes a somewhat purist view of emulation, prohibiting programming hacks that might make a game run improperly or run faster at the expense of emulation accuracy (see UltraHLE, a project aimed to run games at a playable speed). In MAME every emulated component is replicated down to the smallest level of individual registers and instructions. Consequently, MAME emulation is very accurate (in many cases pixel- and sample-accurate), but system requirements can be high. Since MAME runs mostly older games, a large majority of the games run well on a 2 GHz PC. More modern arcade machines are based on fast pipelined RISC processors, math DSPs, and other devices which are difficult to emulate efficiently. These systems may not run quickly even on the most modern systems available.

The MAME team has not diverged from this purist philosophy to take advantage of 3D hardware available on PCs today. It is a common but incorrect assumption that performance problems are due to some games' use of 3D graphics. However, even with graphics disabled, games using RISC processors and other modern hardware are not emulated any faster. Thus taking advantage of 3D hardware would not speed these games up significantly. In addition, using 3D hardware would make it difficult to guarantee identical output between different brands of cards, or even revisions of drivers on the same card, which goes against the MAME philosophy. Consistency of output across platforms is very important to the MAME team.

MAME releases

There are several types of MAME release depending on how frequently users wish to update and the level of code maturity each user feels comfortable running:

* The major releases of MAME occur approximately once a month. These releases are given a version number, e.g. 0.99. The Unix numbering scheme is used, i.e. the version after 0.99 is 0.100, which differs from standard decimal numbering. These major releases are the most mature and least frequent ones so are aimed at the average computer user who wants to try MAME. An executable version for Windows & DOS is released from the MAME Home Page.
* Smaller, incremental releases are released between major releases. These releases are denoted by a "u" number after the version number of the previous major release, e.g. 0.99u1 is the first development release after major version 0.99. There are usually about 5 new "u" releases in between major releases. These minor releases are not intended for average MAME users. Instead, they are aimed at people who take a close interest in MAME development and have access to compiler tools. As such, these minor releases are not made officially available as executables. They are available only as diffs against the MAME source code.
* For those users who wish to keep up with day-to-day MAME development, the MAME source code is kept on the public Mess.org CVS server for those who wish to access it. This is intended only for those who have access to compiler tools and feel comfortable building software from source code.

MAME has been ported to many different platforms. The X11 port for Unix-like systems is named XMAME. The Mac OS X port is named MacMAME.

ROM images

In most arcade machines, the data (consisting of the game program, graphics, sounds, etc.) is stored in read-only memory chips (hence the name "ROM"), although other devices such as cassettes, floppy disks, hard disks, laserdiscs, and compact discs are also used. Most of these devices can be copied to computer files, in a process called "dumping". The resulting files are often generically called ROM images or ROMs regardless of the kind of storage they came from.

To play a particular game, MAME requires a set of files called a ROM set. They contain all the data from the original machine; however, MAME itself does not include any of these files. For analog media, such as laserdiscs and magnetic tapes with audio/video data, it is impossible to make a 100% accurate digital copy. The process necessarily involves an analogue-digital conversion and the resultant reduction in quality.

Storage types

MAME uses two different file types for storing ROMs depending on the original medium:

* The majority of ROM dumps are stored in raw format and contained in ZIP archives, one for each game.
* For arcade machines which use hard disks or CDs, MAME uses CHD (Compressed Hunks of Data) files which contain the entire contents of the original hard disk, CD or Laserdisc. Due to the large size of these media, the CHD files derived from them also tend to be large.

ROM set types

* Original ROM sets ("parent"): the games which the MAME development team has decided are the "original" versions of each game. Except for the files contained in BIOS ROMs (if needed; see below), the ROM files for these games contain everything those games need to run. The "original" set is generally defined as the most recent revision of the game, and if multiple regional versions are available, the "World" or US revision.
* Clone ROM sets: different versions or variants of the originals. For example, Street Fighter II Turbo is considered a variant of Street Fighter II Champion Edition.
* BIOS ROM sets: the ROMs in common between all games on various standardized arcade systems (e.g. Neo-Geo). They basically boot the hardware and then allow the regular game software to take over.

Naming convention

A single supported game is usually referred to as a ROM set. Usually each game will consist of multiple ROM files, each of which represents a single device (usually ROM, but sometimes other devices such as PALs). The MAME developers assign each ROM set an 8-letter name for identification as well as a description associated with that 8-letter name. Examples:

* Original ROM: hyperpac "Hyper Pacman" - MAME expects all required ROM images in a folder (or ZIP file) called hyperpac.
* Clone ROM: hyperpcb "Hyper Pacman (bootleg)" - MAME will look in both the parent folder (hyperpac) and the clone folder (hyperpcb) for the files.

Individual ROM files are often named after labels found on the ROM chips and the position they are located on the board in the format "label.position". Sega for example use a standard labeling scheme for all the ROMs found on their arcade boards giving each unique ROM chip a unique label. "mpr12380.b2" is a ROM from the Golden Axe romset. This implies that the rom was labeled "mpr12380" and located in position "b2" on the PCB. By using such a naming scheme it makes it easy to use MAME to identify, and often help repair, non-working PCBs.

The 8-letter identification tags are less standardized and usually left to the discretion of individual developers. Although some standards do exist, the descriptive long names often follow naming conventions set by the original game manufacturers. For example, Sunset Riders by Konami:

* ssriders "Sunset Riders (4 Players ver EAC)"
* ssrdrebd "Sunset Riders (2 Players ver EBD)"
* ssrdrebc "Sunset Riders (2 Players ver EBC)"
* ssrdruda "Sunset Riders (4 Players ver UDA)"
* ssrdreaa "Sunset Riders (4 Players ver EAA)"
* ssrdruac "Sunset Riders (4 Players ver UAC)"
* ssrdrubc "Sunset Riders (2 Players ver UBC)"
* ssrdrabd "Sunset Riders (2 Players ver ABD)"
* ssrdradd "Sunset Riders (4 Players ver ADD)"
* ssrdrjbd "Sunset Riders (2 Players ver JBD)"

Konami gave each revision of their later games a very specific and clearly visible version number, from the mid 90s onwards. As these represent an easy way to identify each version of the game, including the region in which it was available and the revision of the code, MAME uses this information to identify each set. UAA is American revision A, while ABD is Asian revision D. For companies where it is less clear sets are often simply labeled as "(set 1)" and "(set 2)". Unreleased games as labeled as "(Prototype)" and non-original versions of games are labeled as "(Bootleg)"

Front ends

Although the main MAME program is only made available as a command-line application for Microsoft Windows and Linux, there are several popular front ends, such as GXMame and kxmame for Linux, which allow MAME to be launched from a more familiar, graphical environment as well as providing facilities such as auditing ROMs. MAME32 for Windows (not a front end, but a full port) also offers this functionality.

Additionally, the front ends make available more information about the games themselves, contributing significantly to the experience, such as history information and images of the arcade cabinets.

Some frontends have the sole purpose to launch games and hide the operating system. These frontends are generally used in MAME arcade cabinets, to enhance the illusion that the cabinet is a real arcade machine.

Legal status of MAME

Owning and distributing MAME itself is legal in the US, as it is merely an emulator. Some companies (notably Sony) have attempted in court to prevent emulators from being sold, but they have been ultimately unsuccessful.[1] As yet, no legal action has been brought against the MAME team.

The situation regarding ROM images of games is less clear-cut. Most arcade games are still covered by copyright.

Some copyright holders have been indecisive regarding making licensed MAME ROMs available to the public. For example, in 2003 Atari made MAME-compatible ROMs for 27 of its arcade games available through the internet site Star ROMs. However, a status check in March 2006 revealed a reversal of that decision, and the ROMs are no longer being sold there.

Other copyright holders have released games which are no longer commercially viable free of charge to the public. Games including Alien Arena, Gridlee, Robby Roto and Teeter Torture have been released by their copyright holders under non-commercial licenses. These games may be downloaded legally from the official MAME web site.

However, the majority of games emulated in MAME at this time are copyrighted but no longer commercially available in any form. The legality of distributing or downloading such games depends greatly upon the laws in each country. Many national copyright laws include language which limits offenses to those which cause material harm to copyright holders. An argument could be made that where a game is no longer being manufactured or sold, this could not be the case.

A peculiar legal situation exists with regard to games which are covered by copyright but where there no longer exists a copyright holder. Such games are termed orphan works. They are covered by copyright but, since they have no legal owner, do not make money for anybody. Copyright reformers such as Lawrence Lessig believe that such works no longer have a reason to be copyrighted and should be in the public domain. On January 31, 2006, the United States Copyright Office released the results of its study of this issue.[2]

MAME license

While MAME is available at no cost, including its source code, it is not open-source software or free software because commercial use and redistribution are prohibited. That is, its license does not meet the conditions of the Open Source Definition, nor is it "free software" as defined by the Free Software Foundation.

In particular, MAME may be redistributed in source or binary form, either modified or unmodified, but: "Redistributions may not be sold, nor may they be used in a commercial product or activity." The main goal of this is to prevent arcade operators installing MAME cabinets and profiteering from the works of the original manufacturers of the game.

Also, redistributions of modified versions (derivative works) must include the complete corresponding source code (similar to a copyleft).

There exist, however, a number of derivative versions that violate the license by not releasing the full and complete source code, including multiplayer builds that support the Kaillera server protocol, or others that add newer games.

[SOURCE]wikipedia[/source]




--------------------

c:\ When the going gets tough, the tough get going ...
Go to the top of the page
 
Bookmark this: Post to Del.icio.usPost to DiggPost to FacebookPost to GooglePost to SlashdotPost to StumbleUponPost to TechnoratiPost to YahooMyWeb
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 29th March 2024 - 01:48 AM
Skin and Graphics by Dan Ellis and Anubis. Hosting by Forums & More © 2005-2011.
InvisionGames - Your #1 Arcade Games Repository | AllSigs - Signatures for all | Rock Band + Guitar Hero = RockHero ! | The Remoters - Remote Assistance | FileMiners - You ask, We find