M.A.M.E. - Le Bottin des Jeux Linux

M.A.M.E.

🗃️ Specifications

📰 Title: M.A.M.E. 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Emulation 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Emulation ➤ Engine ➤ Multi 🌍️ Browser version:
🔖 Tags: Emulation; Multi-platform; libretro compatible; Flagship; Multi Emulation; ARCADE CABINET; namco; sega system; taito; ATARI; atari 2600; atari 7800; APPLE; apple2; apple3; macintosh 2; macintosh 128k; COMMODORE; plus/4; MICROSOFT; msx; msx2; msx2+; NEC; pc engine; supergrafx; SEGA; sg-1000; sms; megadrive; saturn; SNK; neo-geo 📦️ Package Name: mame
🐣️ Approx. start: 1997-02-05 📦️ Arch package: ✓
🐓️ Latest: 2024-02-28 📦️ RPM package: ✓
📍️ Version: Latest: 💥️ 0.263 / Dev: ca431df 📦️ Deb package: ✓
🏛️ License type: 🕊️ Libre 📦️ Flatpak package: ✓
🏛️ License: GPL-2 & BSD-3-Clause 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package: ✓
👁️ Visual: 2D & 3D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single & Multi 📱️ PDA support: ✓
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 5 stars 👫️ Contrib.: goupildb & Louis
🎰️ ID: 11833 🐛️ Created: 2010-08-20
🐜️ Updated: 2024-03-02

📖️ Summary

[en]: M.A.M.E. (for "Multiple Arcade Machine Emulator") is a libre and multi-platform emulator, single-player / multi-player (up to 10 in hotseat, with several gamepads), of arcades machines and of a large number of game consoles, microcomputers and other calculators (since the absorption of its sister project called M.E.S.S., for "Multi Emulator Super System"). The objective is to faithfully reproduce the functioning of arcade games and systems in order to preserve the history of video games and thus avoid that certain titles sink into oblivion. It has a graphical interface and can work in command line. The content is huge (several tens of thousands of games) and of very high quality. Most of them are commercial and require the ROM of the game + the ROM of the emulated game machine (e.g.: neogeo). [fr]: M.A.M.E. (pour "Multiple Arcade Machine Emulator") est un émulateur libre et multi-plateforme, solo/multi (jusqu'à 10 en hotseat, avec plusieurs gamepads), de bornes d'arcades et d'un grand nombre de consoles de jeux, micro-ordinateurs et autres calculatrices (depuis l'absorption de son projet sœur dénommé M.E.S.S., pour "Multi Emulator Super System"). L'objectif est de reproduire fidèlement le fonctionnement des jeux et systèmes d'arcade afin de préserver l'histoire du jeu vidéo et ainsi éviter que certains titres ne sombrent dans l'oubli. Il dispose d'une interface graphique et peut fonctionner en ligne de commande. Le contenu est immense (plusieurs dizaines de milliers de jeux) et de très grande qualité. La plupart sont commerciaux et nécessitent la ROM du jeu + la ROM de la borne émulée (ex.: neogeo).

🚦 Entry status

💡 Lights on: ✓ 🦺️ Work in progress:
📰 What's new?: 🍎️ (Stable) Major upgrade New version published (to be updated):
🎨️ Significant improvement: ✓ 🚧️ Some work remains to be done:
🕳️ Not used2: 👔️ Already shown:

🎥️ Videos


🦝️ From Users: (201901),


📰 Progress: 💥️ (0.263/202402), 💥️ (0.262/202402), 💥️ (0.261/202330),


🎮️ Showcase:
• Mame/Arcade Top 300 Games (201911), Mame top 40 games (201604), All Capcom Arcade Games (201610),


• MAME with RetroArch: (201608), (201607), (201606),


• Self made MAME Arcade Cabinet: (201108), (201104), (201509),


🐧 Linux plays: Hak5 (201607),


🏺️ Its story: (201712),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos hg(201712) t(202xxx) gd(202xxx) gu(201901) gu(201108) gu(201104) gu(201509) r(201203) r(201408) lp(201607) lp(201405) ht(201503) ht(201204) ht[fr](201610) d(201608) d(201607) d(201606) d(201911) d(201604) d(201610) d(201609) d(201611) d(201601) d(201410) d(201401) d(201110) d(201011) d(200802) d(201107) g[fr](201805) g[fr](201109) g[de](201406) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI 1 2] [FAQ] [RSS] [Changelog 1 2(latest file versions) 3 4]

💰 Commercial: (empty)

🍩️ Resources
Resources for it's UI (optional)
• MAME game information database (✔)(history.xml, To be copied to the directory you created & set in General Settings➜Configure Folders➜DATs): [GaminGHistory.com (history.dat)]
• MAME emulator information database (✔)(mameinfo.dat, To be copied to the directory you created & set in General Settings➜Configure Folders➜DATs): [MAMEWorld (mameinfo.dat)]
• MAME Snapshots (✘)(Screenshots to install under MAME (Snap.7z, To be copied to the directory you created & set in General Settings➜Configure Folders➜Snapshots) ⚠️ Beware, they slow down considerably the loading of the interface because the file is very big - 1,4Go. Instead, I recommend that you take a screenshot of the games you use by defining a key in General Settings➜Input Assignments➜User Interface➜Save Snapshot): [progetto-SNAPS (MAME Snapshots)]
• Progetto-SNAPS (Other Artworks & resources for MAME): [Progetto-SNAPS]
• MAME Screenshots (✔)(Screenshots of games to view under your file manager): [GameTronik (Snapshots pack (Gametronik_07-2015).zip )]
• MAME icons (icons & others resources for MAME): [MameUI (Icons Pack)]
• MAME categories & versions (catver.ini): [Progetto-SNAPS (CatList, CatVer & Genre, unofficial)]
• MESS machine information database (sysinfo.dat - a dat file for obtaining information about the systems emulated by MAME, located between the History and the MAMEinfo/MESSinfo): [Emu-france (sysinfo.dat)]
• MESS emulator information database (messinfo.dat): [Progetto-SNAPS (messinfo.dat)]
• MESS categories (category.ini): [Progetto-SNAPS (category.ini)] [SourceForge (Direct Download : category.ini)]

Tools
• Arcade manager (manage your rom collection by removing unwanted, bad, & unplayable games): [Arcade manager] [AppImage]
• mame2016-libretro (Port of this emulator to libretro): [mame2016-libretro] [mame2014-libretro] [mame2013-libretro] [mame2003-libretro]

Games
• MAME resources (✔)(free games): [MAME (ROMs for Free Download)]
• 🗿️Abandonware sites (Overview, demo or abandonware, ROMs or Windows deliverable, for contents extraction or information): [Internet Archive]

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [EMU GEN] [FantasyAnime (Mame)]

🦣️ Social
Devs (MAME Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Nicola Salmoria [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums 1 (official) 2] [mastodon] [Facebook] [imgur] [Instagram] [YouTube Unofficial (examples) (versions)]

🐝️ Related
[Wikipedia (MAME) [fr] [en] [de]]
[Wikipedia (Borne d'arcade / Arcade cabinet) [fr] [en] [de]]
[Wikipedia (Système d'arcade / Arcade system board) [fr] [en] [de]]
[HOLaRSE [de]] [Wiki ubuntu-fr [fr]] [The Linux Game Tome] [Planet Emulation [fr]]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: M.A.M.E.
🦊️ What's: A libre emulator of video game arcade cabinet, game consoles, ..
🏡️ https://mamedev.org
🐣️ https://github.com/mamedev/mame
🔖 #LinuxEmulation #Flagship #ArcadeMachine
📦️ #Libre #Arch #RPM #Deb #Flatpak #Snap
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 0.263
⚗️ Major upgrade (Stable) 🍎️
📌️ Changes: https://www.mamedev.org/
🦣️ From: 📶️ https://github.com/mamedev/mame/releases.atom
📰 (0.263) https://www.youtube.com/embed/oKk_yX25rQ8

🦝️ https://www.youtube.com/embed/JJef1ZK23MY
🎲️ https://www.youtube.com/embed/8Mr4MsJBbPo
🐧 https://www.youtube.com/embed/Q37p6xJawI0

🕶️ A view of its built-in UI in version 0. 246 with a simplified menu (favorites, save, search, information and exit) at the top of the screen, underneath on the left a pre-defined ROMs ranking (Favorites is selected), in the center a scrolling list of found ROMs (the one of the game Metal Slug Super Vehicle is selected), on the right the screenshot of the selected game (Metal Slug Super Vehicle), at the bottom of the UI the result of the test (by the UI) of the selected ROM (date, function: Overall, Graphics, Sound).

M.A.M.E. (for "Multiple Arcade Machine Emulator") is a libre and multi-platform emulator, single-player / multi-player (up to 10 in hotseat, with several gamepads), of arcades machines and of a large number of game consoles, microcomputers and other calculators (since the absorption of its sister project called M.E.S.S., for "Multi Emulator Super System"). The objective is to faithfully reproduce the functioning of arcade games and systems in order to preserve the history of video games and thus avoid that certain titles sink into oblivion. It has a graphical interface and can work in command line. The content is huge (several tens of thousands of games) and of very high quality. Most of them are commercial and require the ROM of the game + the ROM of the emulated game machine (e.g.: neogeo).

📕 Description [en]

📕🐧"A libre emulator of video game arcade cabinet, game consoles, microcomputers, ..."🐧📕

What is MAME

MAME originally stood for Multiple Arcade Machine Emulator.

MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software 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 software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.

License

The MAME project as a whole is distributed under the terms of the GNU General Public License, 2 (GPL-2.0), since it contains code made available under multiple GPL-compatible licenses. A great majority of files (over 90% including core files) are under the BSD-3-Clause License and we would encourage new contributors to distribute files under this license.
Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo or wordmark.

Image Files

ROM, CD, and hard disk images are all copyrighted material. They cannot be distributed without the explicit permission of the copyright owner. They are not "abandonware", nor have any of the games supported by MAME passed out of copyright.

MAME is not intended to be used as a tool for mass copyright infringement. Therefore, it is strongly against the authors' wishes to sell, advertise, or link to resources that provide illegal copies of ROM, CD, or hard disk images.


🍥️ Debian:

MAME is a hardware emulator: it faithfully reproduces the behavior of many arcade machines (it is not a simulation). This program is not a game but can directly, through ROM images, run the complete system of these old arcade machines. These ROMs are subject to copyright and it is in most of the cases illegal to use them if you do not own the arcade machine.


🌍️ Wikipedia:

MAME (an acronym of Multiple Arcade Machine Emulator) is a free and open source emulator designed to recreate the hardware of arcade game systems in software on modern personal computers and other platforms. The intention is to preserve gaming history by preventing vintage games from being lost or forgotten. The aim of MAME is to be a reference to the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect". Joystiq has listed MAME as an application that every gamer should have.

The first public MAME release (0.1) was on February 5, 1997, by Nicola Salmoria. The emulator now supports over seven thousand unique games and ten thousand actual ROM image sets, though not all of the supported games are playable. MESS, an emulator for many video game consoles and computer systems, based on the MAME core, has been integrated into MAME in 2015.

History and overview

The project was started by the Italian programmer Nicola Salmoria. MAME traces its roots to an earlier emulator project called Multi-Pac, but the name was changed as more and more games started to be emulated within the MAME framework. In April 1997, Salmoria stepped down for his national service commitments, handing stewardship of the project to fellow Italian Mirko Buffoni for a period of half a year. In May 2003, David Haywood took over the job of the coordinator. From April 2005 to April 2011, the project was coordinated by Aaron Giles. Angelo Salese stepped in as the new coordinator. In 2012, Miodrag Milanovic took over. The project is supported by hundreds of developers around the world and thousands of outside contributors.

At first, MAME was developed exclusively for MS-DOS, but it was soon ported to Unix-like systems (X/MAME), Macintosh (MacMAME and later MAME OS X) and Windows (MAME32). Since 24 May 2001 with version 0.37b15, the main development occurs on the Windows platform, and most other platforms are supported through the SDLMAME project, which was integrated into the main development source tree in 2006. In addition, different versions of MAME have been ported to other computers, game consoles, mobile phones and PDAs, and at one point even to digital cameras. In 2012, Google ported MAME to Native Client, which allows MAME to run inside Chrome.

Major releases of MAME occur approximately once a month. Windows executables in both 32-bit and 64-bit fashion are released on the official web site of the development team, along with the complete source code. Smaller, incremental "u" (for update) releases were released weekly (until version 0.149u1) as source diffs against the most recent major version, to keep code in synchronization among developers. The MAME source code is developed on a public GitHub repository. This allows those with the required expertise & tools to build the most up-to-date version of the code and contribute enhancements in the form of Pull Requests.

The architecture of MAME has been extensively improved over the years. Support for both raster and vector displays, as well as multiple CPUs and sound chips, were added to MAME in the first six months of the project. A flexible timer system to coordinate the synchronization between multiple emulated CPU cores was implemented, and ROM images started to be loaded according to their CRC32 hash in the ZIP files they were stored in. MAME has pioneered the reverse engineering of many undocumented system architectures, various CPUs (such as the M6809-derivative custom Konami CPU with new instructions) and sound chips (for example the Yamaha FM sound chips), and MAME developers have been instrumental in the reverse engineering of many proprietary encryption algorithms utilized in arcade games. Examples of these include the Neo Geo, CP System II, CP System III and many others.

The popularity of MAME has well since broken through to the mainstream, with enthusiasts building their own arcade game cabinets to relive the old games, and with companies producing illegal derivative works of MAME to be installed in arcades. Cabinets can be built either from scratch or by taking apart and modifying a genuine arcade game cabinet that was once used with the real hardware inside. Cabinets inspired by classic arcade games can also be purchased and assembled (with optional PC and MAME preinstalled).

Although MAME contains a rudimentary user interface, the use of MAME in arcade game cabinets and home theater PCs necessitates special launcher applications called front ends with more advanced user interfaces. Front ends provide varying degrees of customization – allowing one to see images of the cabinets, history of the games and tips on how to play, and even video of the game play or attract mode of the game.

The information contained within MAME is free for re-use, and companies have been known to utilize MAME when recreating their old classics on modern systems. Some have gone as far as to hire MAME developers to create emulators for their old properties. An example of this is the Taito Legends pack.

Since 2012 MAME is maintained by then MESS project leader Miodrag Milanović.

On May 27, 2015 (0.162), the games console and computer system emulator MESS was integrated with MAME.

In May 2015, it was announced that MAME's developers were planning to re-license the software under a more common free and open source license, away from the original MAME-license. MAME developer Miodrag Milanovic explained that the change is intended to draw more developer interest to the project, allow the manufacturers of games to distribute MAME to emulate their own games, and make the software a "learning tool for developers working on development boards". The transition of MAME's licensing to the BSD/GPL licenses was completed in March 2016. With the license change, most of MAME's source code (90%+) is available under a three-clause BSD license and the complete project is under the GNU General Public License version 2 or later.

On Feb 24, 2016 (0.171), MAME embedded MEWUI front-end (and developer joined the team), providing MAME with a flexible and more full-featured UI.

Design

The MAME core coordinates the emulation of several elements at the same time. These elements replicate the behavior of the hardware present in the original arcade machines. MAME can emulate many different central processing units (CPUs) and associated hardware. These elements are virtualized so MAME acts as a software layer between the original program of the game, and the platform MAME runs on. MAME supports arbitrary screen resolutions, refresh rates and display configurations. Multiple emulated monitors, as required by for example Darius, are supported as well.

Individual arcade systems are specified by drivers which take the form of C preprocessor macros. These drivers specify the individual components to be emulated and how they communicate with each other. While MAME was originally written in C, the need for object oriented programming caused the development team to begin to compile all code as C++ for MAME 0.136, taking advantage of additional features of that language in the process.

Although a great majority of the CPU emulation cores are interpretive, MAME also supports dynamic recompilation through an intermediate language called the Universal Machine Language (UML) to increase the emulation speed. Back-end targets supported are x86 and x64. A C backend is also available to further aid verification of the correctness. CPUs emulated in this manner are SH-2, MIPS R3000 and PowerPC.

Game data

The original program code and graphics and sound data need to be present so that the game can be emulated. In most arcade machines, the data is stored in read-only memory chips (ROMs), although other devices such as cassette tapes, floppy disks, hard disks, laserdiscs, and compact discs are also used. The contents of 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. A game usually consists of multiple ROM and PAL images; these are collectively stored inside a single ZIP file, constituting a ROM set. In addition to the "parent" ROM set (usually chosen as the most recent "World" version of the game), games may have "clone" ROM sets with different program code, different language text intended for different markets etc. For example, Street Fighter II Turbo is considered a variant of Street Fighter II Champion Edition. System boards like the Neo Geo that have ROMs shared between multiple games require the ROMs to be stored in "BIOS" ROM sets and named appropriately.

Hard disks, compact discs and laserdiscs are stored in a MAME-specific format called CHD (Compressed Hunks of Data). Some arcade machines use analog hardware, such as laserdiscs, to store and play back audio/video data such as soundtracks and cinematics. This data must be captured and encoded into digital files that can be read by MAME. MAME does not support the use of external analog devices, which (along with identical speaker and speaker enclosures) would be required for a 100% faithful reproduction of the arcade experience. A number of games use sound chips that have not yet been emulated successfully. These games require sound samples in WAV file format for sound emulation. MAME additionally supports artwork files in PNG format for bezel and overlay graphics.

Philosophy and accuracy

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. Components such as CPUs are emulated at a low level (meaning individual instructions are emulated) whenever possible, and high-level emulation (HLE) is only used when a chip is completely undocumented and cannot be reverse-engineered in detail. Signal level emulation is used to emulate audio circuitry that consists of analog components.

We want to document the hardware. Now a lot of people will say; "Where's your document? You just write a bunch of source code." And yes, that's true. One thing I've learned is that keeping documentation synced with source code is nearly impossible. The best proof that your documentation is right is "does this code work".
— Aaron Giles, California Extreme 2008

MAME emulates well over a thousand different arcade system boards, a majority of which are completely undocumented and custom designed to run either a single game or a very small number of them. The approach MAME takes with regards to accuracy is an incremental one; systems are emulated as accurately as they reasonably can be. Bootleg copies of games are often the first to be emulated, with proper (and copy protected) versions emulated later. Besides encryption, arcade games were usually protected with custom microcontroller units (MCUs) that implemented a part of the game logic or some other important functions. Emulation of these chips is preferred even when they have little or no immediately visible effect on the game itself. For example, the monster behavior in Bubble Bobble was not perfected until the code and data contained with the custom MCU was dumped through the decapping of the chip. This results in the ROM set requirements changing as the games are emulated to a more and more accurate degree.

Portability and genericity are also important to MAME. Combined with the uncompromising stance on accuracy, this often results in high system requirements. Although a 2 GHz processor is enough to run almost all 2D games, more recent systems and particularly systems with 3D graphics can be unplayably slow even on the fastest computers. MAME does not currently take advantage of hardware acceleration to speed up the rendering of 3D graphics, in part because of the lack of a stable multi-platform 3D API, and in part because software rendering can in theory be an exact reproduction of the various custom 3D rendering approaches that were used in the arcade games.

Original MAME-license

MAME was formerly distributed under a custom own-written copyleft license, called "MAME license" or "MAME-like license", which was adopted also by other projects, e.g. Visual Pinball. This old "MAME license" ensures the source code availability, while the redistribution in commercial activities is prohibited. Due to this clause, the license is incompatible with the OSI's Open source definition and the FSF's Free software definition. The non-commercial clause was designed to prevent arcade operators from installing MAME cabinets and profiting from the works of the original manufacturers of the games. The ambiguity of the definition "commercial" lead to legal problems with the license. In March 2016 with version 0.172 MAME itself switched to common free and open source software licenses, the BSD and GPL licenses.

📕 Description [fr]

Un émulateur de bornes d'arcades et d'un grand nombre de consoles de jeux et micro-ordinateurs, par la MAME Team, initié par Nicola Salmoria.

M.A.M.E. (pour "Multiple Arcade Machine Emulator") est un émulateur libre et multi-plateforme, solo/multi (jusqu'à 10 en hotseat, avec plusieurs gamepads), de bornes d'arcades et d'un grand nombre de consoles de jeux, micro-ordinateurs et autres calculatrices (depuis l'absorption de son projet sœur dénommé M.E.S.S., pour "Multi Emulator Super System"). L'objectif est de reproduire fidèlement le fonctionnement des jeux et systèmes d'arcade afin de préserver l'histoire du jeu vidéo et ainsi éviter que certains titres ne sombrent dans l'oubli. Il dispose d'une interface graphique et peut fonctionner en ligne de commande. Le contenu est immense (plusieurs dizaines de milliers de jeux) et de très grande qualité. La plupart sont commerciaux et nécessitent la ROM du jeu + la ROM de la borne émulée (ex.: neogeo).

• Un fork du source (voir la section "Resources" ci-dessus) le rend compatible avec libretro (pour plus de précision concernant l'application libreto, voir la fiche "Libretro (& RetroArch)"
• Cet émulateur vous permet de jouer sous Linux avec des ROMS téléchargées sur internet.
• Attention : le téléchargement de ROMS commerciales est illégal à moins de les avoir acquises financièrement.
• Ces émulateurs fonctionnant en ligne de commande, et leur paramétrage n'étant pas très intuitif (et parfois soumis à variation au fil des versions), différentes interfaces externes prennent en charge cette fonction (voir ci-après).

Interfaces externes dédiées (mais plus vraiment nécessaires): Gelide, GNOME Video Arcade, Libretro (& RetroArch), Lutris, QMC2, Wah!Cade,

Consoles émulées pour M.A.M.E. (avec doc Bottin): Bornes d'arcades, CPS1, CPS2, Multi,

Consoles émulées pour M.E.S.S. (avec doc Bottin):
ACORN BBC Micro, ACORN Electron, Amstrad CPC, ATARI 2600, ATARI 400, ATARI 800, ATARI 5200, ATARI 7800, ATARI Jaguar, ATARI Lynx, ATARI ST, BANDAI WonderSwan Color, Coleco ColecoVision, Commodore 64, Commodore 128, Commodore Amiga, Commodore VIC 20, Commodore C16, C116 & Plus/4, Dragon Data Dragon 32/64, Intelligent Software Enterprise 64/128, Magnavox Odyssey2 (Philips Videopac G7000 / C52), MGT SAM Coupé, MSX, NEC PC-FX, NEC SuperGrafx, Nintendo 64, Nintendo Game Boy Advance, Nintendo Game Boy, Nintendo Game Boy color, Nintendo NES (Famicom), Nintendo Pokémon Mini, Nintendo Super Nintendo (SNES, Super NES), Nintendo Virtual Boy, Pioneer LaserActive (console de jeux Laserdisc), PC Engine (PCE, TurboGrafx 16), SEGA Dreamcast, SEGA Game Gear, SEGA Master System (SMS, Mark3), SEGA Megadrive (Genesis), SEGA Pico, SEGA SG-1000 (Mark I, SEGA Game-1000), SEGA Saturn, Sinclair ZX80 & ZX81, Sinclair ZX Spectrum, SNK NeoGeo CD, SONY Playstation 1 (PSX), Tandy Radio Shack TRS-80 Color Computer (CoCo), Tandy Radio Shack TRS-80 Model I, Tangerine Oric 1, Emulation - Thomson MO5, Emulation - Thomson TO8D, Emulation - Thomson TO9+

Exemples de ROMS utilisables: voir les liens au paragraphe "Resources" ci-dessus et la fiche "Ressources - Emulation Bornes d'arcades".


Qu'est-ce que MAME

MAME signifiait à l'origine : Multiple Arcade Machine Emulator.

L'objectif de MAME est de préserver des décennies d'histoire de logiciel. À mesure que la technologie électronique continue de se précipiter, MAME empêche que cet important logiciel "vintage" ne soit perdu et oublié. Ceci est réalisé en documentant le matériel et sa fonction. Le code source de MAME sert de documentation. Le fait que le logiciel est utilisable sert principalement à valider la précision de la documentation (de quelle autre manière pouvez-vous prouver que vous avez recréé le matériel fidèlement?). Au fil du temps, MAME a absorbé son projet sœur MESS (Multi Emulator Super System), de sorte que MAME documente maintenant une grande variété d'ordinateurs, de consoles de jeux vidéo et de calculatrices (principalement vintage), en plus des jeux vidéo d'arcade qui ont été au centre de leur attention.

Licence

Le projet MAME dans son ensemble est distribué selon les termes de la Licence Publique Générale GNU, 2 (GPL-2.0), puisqu'il contient des codes disponibles sous plusieurs licences compatibles GPL. Une grande majorité des fichiers (plus de 90%, y compris les fichiers principaux) sont sous la licence BSD-3-Clause et nous encourageons les nouveaux contributeurs à distribuer des fichiers sous cette licence.
Veuillez noter que MAME est une marque déposée de Gregory Ember, et une autorisation est requise pour utiliser le nom, le logo ou le mot-symbole "MAME".

Fichiers d'image

Les ROM, CD et images de disque dur sont tous des documents protégés par des droits d'auteur. Ils ne peuvent pas être distribués sans l'autorisation explicite du titulaire du droit d'auteur. Ils ne sont pas "abandonnés", ni aucun des jeux pris en charge par MAME ne se substitue aux droits d'auteur.

MAME n'est pas destiné à être utilisé comme un outil pour une violation massive des droits d'auteur. Par conséquent, il est fortement contraire aux souhaits des auteurs de vendre, de faire de la publicité ou de lier des ressources qui fournissent des copies illégales de ROM, de CD ou d'images de disque dur.



🍥️ Debian (traduction du Bottin):

Multiple Arcade Machine Emulator (MAME)

MAME est un émulateur de matériel : il reproduit fidèlement le comportement de nombreuses machines d'arcade (ce n'est pas une simulation). Ce programme n'est pas un jeu mais peut directement, à travers des images ROM, exécuter le système complet de ces anciennes machines d'arcade. Ces ROM sont soumises au droit d'auteur et il est dans la plupart des cas illégal de les utiliser si vous ne possédez pas la machine d'arcade.


🌍️ Wikipedia :

Développeurs : Nicola Salmoria et l'équipe MAME

MAME, acronyme signifiant « Multiple Arcade Machine Emulator », est un logiciel d'émulation pour PC dont le but est de reproduire fidèlement le fonctionnement des jeux et des systèmes d'arcade afin de préserver l'histoire du jeu vidéo et ainsi éviter que certains titres ne sombrent dans l'oubli.

MAME est officiellement disponible pour les systèmes d'exploitation Windows et DOS, mais a été porté sur différents systèmes. Une version nommée SDLMAME, utilisant la bibliothèque portable Simple DirectMedia Layer (SDL), est développée pour être compatible avec les systèmes de type UNIX et Mac OS X.

La première version publique (0.1) de MAME, par Nicola Salmoria, est sortie le 5 février 1997. Sortie le 21 octobre 2010, la version 0.140 de l'émulateur supporte plus de 4510 jeux uniques et plus de 9012 ROM sets, ce nombre grandissant sans cesse. Toutefois, de nombreux jeux ne fonctionnent pas, sans compter que certains jeux émulés peuvent devenir non fonctionnels à la suite des évolutions du logiciel. Il faut alors se procurer la dernière image (ROM) des jeux concernés.

MAME est utilisé par certains particuliers afin de réaliser de véritables bornes d'arcade multi-jeux reposant sur du matériel informatique.

Fonctionnement

MAME contient différents composants :

• plusieurs émulateurs de matériel imitant le comportement des processeurs et des cartes mères des jeux d'arcade supportés ;
• un émulateur de contrôle simulant les différents dispositifs (manette de jeu) par les claviers ou d'autres périphériques ;
• un émulateur pour simuler et rediriger les sorties audio et vidéo des bornes d'arcades vers les sorties respectives de l'ordinateur.

Pour des raisons légales, les différents BIOS des jeux d'arcade émulés ainsi que les ROM des jeux originaux ne sont pas distribués avec l'émulateur.

Philosophie de l'émulation

Le but dicté de MAME est de documenter le matériel et adopte une vue plutôt puriste de l'émulation, interdisant des modifications pouvant faire fonctionner un jeu correctement ou plus rapidement qui compenserait sur la précision de l'émulation. Dans MAME, chaque composant est émulé le plus fidèlement possible, des registres aux jeux d'instructions. Par conséquent, l'émulation des jeux réalisée par MAME est très précise, mais le système minimum requis pour exécuter le logiciel devient ainsi plus élevé que d'autres émulateurs. Ne faisant généralement tourner que des jeux anciens, la loi de Moore assure que la majorité des jeux fonctionnent bien sur un ordinateur avec un processeur se situant dans les 2 GHz. Cependant, l'émulation des jeux d'arcade utilisant de l'électronique plus récente, comme des processeurs RISC ou des DSP dédiés aux opérations mathématiques, nécessite une machine bien plus puissante.

Stockage des jeux

Dans la plupart des jeux d'arcade, les données (comprenant le programme, les graphismes, les sons…) sont entreposées dans de la mémoire morte ou ROM (Read-Only Memory). Par différentes méthodes, ces supports peuvent être lus pour créer des images numériques fidèles, sauvées ensuite dans des fichiers. Par abus de langage, ces derniers sont appelés ROMs, parfois à tort car d'autres support de stockage comme les cassettes, disquettes, disques durs ou CD-ROM sont également utilisés.

Le stockage d'un jeu est ainsi réalisé en 2 parties :

• un fichier d'archive ZIP, contenant les données principales du jeu ;
• un fichier CHD (Compressed Hunks of Data), contenant les données d'un disque dur ou d'un CD-ROM.

Pour jouer à un jeu en particulier, MAME doit donc utiliser un ensemble de ROM (appelé ROM set) contenant toutes les données du jeu original. Le nom de chaque fichier image a été normalisé, permettant à l'émulateur de s'y retrouver.

Types de ROM sets

Il existe trois types de ROM sets :

• Le ROM set du jeu original (au nombre des jeux que l'équipe de MAME a décidé de nommer « versions originales »). Excepté pour les fichiers ROM BIOS (voir ci-dessous), les fichiers ROM pour ces jeux contiennent tout ce qui est nécessaire au fonctionnement du jeu. L'ensemble original (appelé ROM parent) est jugé comme étant la révision la plus récente et si de multiples versions régionales sont disponibles, est utilisée la révision world (internationale) ou US (américaine).
• Les ROM sets clones, qui sont différentes versions ou variantes d'un même jeu (par exemple, Street Fighter II Turbo est considéré comme variante de Street Fighter II Champion Edition).
• Les ROM sets du BIOS, qui sont les ROM communes utilisées par tous les jeux d'une même machine (comme Neo-Geo MVS). Ce sont les programmes utilisés au démarrage de la machine, et qui exécutent ensuite le logiciel.

Statut légal

La possession et la distribution d'un émulateur, comme MAME, sont légales aux États-Unis, à la condition d'être distribué seul sans ROM. Certaines compagnies, dont Sony, ont tenté d'empêcher la distribution d'émulateurs en justice, mais leurs tentatives furent infructueuses. Pour l'instant, aucune action en justice n'a été prise à l'encontre de l'équipe du projet MAME. Toutefois, bien que l'émulation soit légale, les ROM sont soumises aux droits d'auteurs.

Licence

MAME est un programme à code source ouvert et gratuit. Il est distribué sous une licence BSD modifiée depuis le 20 mai 2015.

Avant cette date, il possédait sa propre licence, qui n'était pas considéré comme une licence libre par la Free Software Foundation, car des contraintes sur la redistribution et sur la vente existaient.

Le code source, pouvait être librement redistribué et modifié sous réserve :

• d'une utilisation non commerciale ;
• d'une consultation possible des codes sources modifiés (open source) ;
• de ne pas toucher au code désactivant l'utilisation de certains jeux (pour empêcher que l'équipe de MAME ne soit dénoncée comme faisant concurrence a une vraie borne d'arcade).

Comme tous les projets open source, MAME encourage la contribution au projet plutôt qu'au développement de projets parallèles.

Depuis le 4 mars 2016, les conditions de modifications et de distribution sont modifiées. MAME passe sous licence GPL à partir de la 0.172.

SDLMAME

Développeurs Olivier Galibert et R. Belmont

SDLMAME est un portage de MAME utilisant la bibliothèque portable Simple DirectMedia Layer. SDLMAME suit les principes de développement suivants : le logiciel doit pouvoir s'exécuter sous Linux, Mac OS X, les systèmes de type Unix et d'autres systèmes d'exploitation supportés par la bibliothèque SDL, en ne modifiant le moins possible le code source de base. Ainsi, SDLMAME peut suivre l'évolution de MAME plus rapidement que des portages plus conventionnels comme MacMAME ou xMame. Les développeurs maintiennent également ce qu'ils appellent la « compatibilité Firefox », qui signifie que l'apprentissage de l'application sur un système d'exploitation est valorisée sur les autres plateformes, par exemple si un utilisateur sait utiliser MAME en ligne de commande sous Windows, il saura utiliser SDLMAME de cette façon sur toutes les autres plateformes.

Pour les développeurs de SDLMAME, le développement réalisé sur MAME est important : le fait d'avoir une version de SDLMAME rapidement à jour permet aux non utilisateurs de Windows de proposer des modifications directement sur le code de MAME. Par exemple, les développeurs de SDLMAME ont proposé des implémentations natives d'un débogeur avec interface graphique multi-fenêtrée pour MAME à la fois pour Linux, Unix et Mac OS X.

Depuis la version 0.136u1 (16 janvier 2010), SDLMAME est directement inclus dans MAME. Les sources ne sont donc plus disponibles séparément et sont intégrées aux sources de MAME.
Plateformes supportées

SDLMAME supporte officiellement toutes les plateformes Linux, FreeBSD, Mac OS X 10.4 « Tiger » ou 10.5 « Leopard » (10.3 « Panther » fonctionne également bien que non officiellement pris en charge), sur les microprocesseurs d'architecture PowerPC et x86, 32 ou 64 bits. La plateforme Windows est également supportée bien que n'ayant peu d'intérêt à être utilisée, l'implémentation de base de MAME fonctionnant nativement sous ce système.

Auteurs du portage

Olivier Galibert a eu l'idée originale du portage et a réalisé la plupart des portages originaux. R. Belmont a pris part à ces portages et à la plupart des portages récents. Olivier Galibert a écrit la version Linux GTK+ du débogueur multi-fenêtré. Ernesto Corvi écrira la version Mac OS X Carbon. Hans de Goede a contribué à d'innombrables nettoyages, améliorations et optimisation du code source, et Tim Lindner a rendu le débogueur Mac OS X plus agréable à utiliser. Beaucoup de grandes améliorations ont été apportées par Couriersud et Antoine Mine, et presque tout le code OpenGL (Open Graphics Library) a été écrit par Sven Gothel. L'assurance qualité a été assurée par MooglyGuy et Firewave, parmi tant d'autres.

SDLMAME est actuellement maintenu par R. Belmont et Couriersud.

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire

📦️ Installation à partir du paquet Manjaro/Arch :
• Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s).

📄️ Installation à partir du source

• Source non testé.


🚀️ LANCEMENT DE L'ÉMULATEUR

▸ Classique :
• Si vous l'avez installé à partir d'un paquet, ou l'avez compilé puis installé dans les répertoires système : [Alt+F2] puis saisissez : mame


📑️ Paramétrage

• Quelques répertoires utilisés par MAME :
⚬ Les fichiers de paramétrage (si MAME venait à ne plus démarrer - peu probable, effacez ce répertoire et recommencez la configuration): ~/.mame/
⚬ Les fichiers que vous avez mis en favoris et les jeux disponibles : ~/ui/
⚬ Les copies d'écrans prises sous vos jeux (voir la touche ci-après. Si vous souhaitez changer celle affichée par défaut sous l'interface, remplacez le fichier "000.png" par celui de votre choix): ~/snap/nom-de-la-rom/*.png

Sous l'interface de MAME :
• Où se trouvent les ROMs des jeux ? : General Settings ➜ Configure Folders ➜ ROMs
• Où se trouvent les BIOS (voir ci-après) nécessaires à certains jeux ? (même répertoire que celui des jeux): General Settings➜Configure Folders ➜ ROMs
• (Optionnel) Où se trouvent les fichiers de base de données des jeux (history.xml et mameinfo.dat, voir la section "Resources" ci-avant, permet d'avoir des infos sur chaque jeu) ? : General Settings ➜ Configure Folders➜DATs
• (Optionnel) Où se trouve la base de donnée des copies d'écrans (snap.7z de 1,4Go, voir la section "Resources" ci-avant, permet d'avoir la copie d'écran de presque tous les jeux disponibles ; PAS RECOMMANDE car ralenti énormément l'émulateur à chaque fois qu'il charge l'interface - soit au démarrage soit au sortir d'un jeu): General Settings ➜ Configure Folders ➜ Snapshots

📟️ Installation des BIOS :
Certains jeux requièrent des BIOS spécifiques pour fonctionner, faute de quoi le lancement de la ROM produira une erreur.
Le plus connu d'entre eux est le BIOS de Neogeo (correspondant à la console de jeux éponyme avec laquelle MAME est compatible).
L'installation est facile, il suffit de copier la ROM du BIOS au format ".zip" dans le répertoire des ROMs de jeux :
• neogeo : on la trouve en général sur les sites de distribution de ROM,
• autres ROMs : les autres ROM nécessaires sont en général précisées soit au lancement du jeu, soit sur les sites consacrés aux ROMS.
Certains BIOS sont livrés au format ".rar" contenant eux-mêmes les fichiers ".zip". Dans ce cas décompressez le fichier ".rar" et copiez les fichiers ".zip" obtenus (sans les décompresser) dans le répertoire des ROMS (voir ci-après).


⌨️🖱️🎮️ CONTRÔLES:

Gamepad de test : Microsoft Xbox Elite Wireless Controller Series 2

💡 Nota:
• Recherche de jeux : à gauche de l'interface se trouve de nombreux filtres de jeux (Available, Unavailable, Favorites, ...). Sauf si vous vous trouvez sur le filtre "Favorites", sinon si vous cliquez sur n'importe quel filtre, en haut de l'interface apparaît sous le titre de l'interface le libellé "Search:_" vous permettant de rechercher un jeu dans la liste des ROMs.


• Il se contrôle au clavier, à la souris ou au gamepad.
• Les touches sont re-définissables sous l'interface.

Il y a des tonnes de réglages possibles - notamment si vous avez divers périphériques exotiques et/ou plusieurs gamepads.

Je vous présente ci-après mes réglages personnels (basés sur l'utilisation d'un seul gamepad), valables pour une grande partie des jeux, en général :
• les touches de direction du stick gauche du gamepad (vous pouvez paramétrer les 2 sticks de votre gamepad, et paramétrer jusqu'à 10 périphériques/gamepads)
• la touche pour mettre 1 pièce virtuelle dans la machine (nécessaire pour démarrer les jeux d'arcade, chaque joueur doit mettre au moins 1 pièce - valable pour 1 partie),
• la touche pour sélectionner le joueur 1 (nécessaire pour démarrer les jeux d'arcade),
• la touche pour tirer
• la touche pour sauter

Dans General Settings➜Input Assignments➜Player 1 Controls :
• P1 Up : UP or Joy 1 Up
• P1 Down : DOWN or Joy 1 Down
• P1 Left : LEFT or Joy 1 Left
• P1 Right : RIGHT or Joy 1 Right
(...)
• P1 Button 1 : Joy 1 Button 1 (correspond au bouton "A" du gamepad de la Xbox)
• P1 Button 2 : Joy 1 Button 3 (correspond au bouton "X" du gamepad de la Xbox)
• P1 Button 3 : Joy 1 Button 10 (correspond au bouton gauche sur la tranche du gamepad de la Xbox)
• P1 Button 4 : Joy 1 Button 4 (correspond au bouton droite sur la tranche du gamepad de la Xbox)
(...)

Dans General Settings➜Input Assignments➜Other Controls :
• 1 Player Start : Joy 1 Button 2 (correspond au bouton "B" du gamepad de la Xbox)
(...)
• Coin 1 : Joy 1 Button 4 (correspond au bouton "Y" du gamepad de la Xbox)
(...)

Dans General Settings➜Input Assignments➜User Interface
(...)
• Save Snapshot (permet de faire une copie d'écran du jeu courant - utile pour visualiser ensuite les jeux sur la liste des ROMs de jeux): Joy 1 Button 5 (correspond au bouton avec un logo de "fenêtres" sur le dessus du gamepad de la Xbox)
(...)
• UI Cancel (équivalent de la touche Cancel dans les menus, et permet de quitter un jeu rapidement): Joy 1 Button 7 (correspond au bouton avec un logo de "menu" sur le dessus du gamepad de la Xbox)

Enjoy !

🕵️ Test [fr]

📜️ Préambule :
⚬ 1ere édition : le 8 Septembre 2023 sous Manjaro. Par : goupildb. ⏱️ Durée du test : 240 minutes. 🎯️ Objectif : Rédiger/(re)mettre à jour/valider sa notice d'installation, tester son fonctionnement et partager mes premières impressions.


🫕️ Installation :
▸ (✔ v. 0.246) Paquet Arch/AUR : FONCTIONNEL.

Des copies d'écran (voir le lien "progetto-SNAPS (MAME Snapshots)" dans la section "Resources" ci-dessus) de la plupart des ROMs disponibles peuvent être installées, mais elles ralentissent considérablement le démarrage de l'interface et ensuite le retour de jeu car l'interface perd énormément de temps à consulter cet énorme fichier (1,4Go). Je déconseille de l'utiliser pour cette raison. Le plus rapide est de sélectionner vos jeux favoris (que vous aurez au préalable tagué en "Favorites" par un clic droit sur le jeu puis "Add To Favorites" et de prendre une copie d'écran en cours de jeu (touche à définir, voir la rubrique "Installation"' ci-avant), qui sera alors disponible sous l'interface.

🧪️ Tests effectués :

J'avais déjà testé cet émulateur à plusieurs reprises. L'idée était d'actualiser cette fiche avec les dernières évolutions de l'émulateur.
🟢️ Ce dernier a fait d'énormes progrès - non seulement dans l'émulation (puisqu'il ajoute la compatibilité de nombreux jeux tous les mois) mais aussi - et le plus visible, avec son interface graphique, qui a su intégrer le REX des interfaces graphiques externes - les rendant inutiles à présent, puisque tout est intégré.

🟢️ Le nombre de jeux d'arcade disponibles est très élevés.
Il ne faut pas perdre de vue que ces jeux sont pour la plupart d'anciens jeux commerciaux non libres et non gratuits.
🟢️ J'ai testé néanmoins le jeu gratuit "Fire One!" (voir le lien "MAME (ROMs for Free Download)" dans la section "Resources" ci-dessus) que j'ai trouvé très sympa (un jeu de bataille navale où l'on est à bord d'un sous-marin et l'on doit couler des navires et sous-marins alors que l'on est aussi visé par un autre sous-marin).

Je ne rentre pas davantage dans le détail, j'ai mis à jour la section "Installation" ci-avant.

🪦️ Longévité :

🟢️ Le gameplay de ces jeux et la durée de vie de ces jeux est fantastique.


🕹️ Conclusion :
Impression globale : 👍️
🟢️ L'interface fonctionne à merveille. Je n'ai fait qu'effleurer ses possibilités.
🟢️ Si vous la testez, vous risquez d'y passer des milliers d'heures ... de pur bonheur :)
👏️ ❤️ Un grand bravo et merci (notamment pour la version Linux !) à ses auteurs !