MAME (à l'origine un acronyme de plusieurs émulateurs de machines d'arcade) est un émulateur gratuit et open-source conçu pour recréer le matériel des systèmes de jeux d'arcade dans des logiciels sur des ordinateurs personnels modernes et d'autres plateformes. [2] L'intention est de préserver l'histoire du jeu en empêchant les jeux vintage d'être perdus ou oubliés. L'objectif de MAME est d'être une référence au fonctionnement interne des machines d'arcade émulées; La capacité de jouer aux jeux est considérée comme "un bel effet secondaire". [3] Joystiq a répertorié MAME comme une application que chaque joueur Windows et Mac devrait avoir. [4]
La première version publique de Mame a été de Nicola Salmoria le 5 février 1997. L'émulateur prend maintenant en charge plus de 7 000 jeux uniques et 10 000 ensembles d'images ROM réels, bien que tous les jeux pris en charge ne soient pas jouables. Mess, un émulateur pour de nombreuses consoles de jeux vidéo et systèmes informatiques, basés sur le noyau MAME, a été intégré en amont dans Mame en 2015.
MAME (Multiple Arcade Machine Emulator) est un émulateur gratuit et open source conçu pour recréer le matériel du système de jeu Arcade dans des logiciels sur des ordinateurs personnels modernes et d'autres plateformes. MAME.NET est un émulateur d'arcade basé sur C #, et il maintient la même architecture de MAME. En utilisant C # et le puissant environnement de développement intégré - Microsoft Visual Studio, il n'y a pas de macro et vous pouvez déboguer le jeu d'arcade pris en charge n'importe où. Il existe des cartes classiques soutenues par maintenant: M72, M92, CPS-1, CPS-1 (QSOUND), CPS2, NEO GEO, NAMCO System 1, IGS011, PGM (Polygame Master).
MAME.NET s'exécute aux étapes suivantes: Chargez les ROM, initialisez la machine, réinitialisez Soft la machine et boucle "CpueXec_Timeslice". L'opération "cpuexec_timeslice" signifie exécuter séquentiellement chaque CPU pour une tranche de temps et exécuter des rappels de minuterie. Les rappels de minuterie contient: mise à jour vidéo, réinitialisation logicielle, interruption du processeur, mise à jour sonore, réinitialisation de Watchdog et autres interruptions. Selon ces étapes, mame.net émule avec succès la carte Arcade. MAME.NET a plus de fonctions: Enregistrer et charger l'état, enregistrer et rejouer l'entrée, Cheat, Cheat Search, IPS (Patch Main Rom), Board Debugger, CPU Debugger.



Lorsque les ROM d'un jeu sont chargées, l'émulateur est assorti automatiquement. Appuyez sur P pour continuer.
* Parfois, une erreur GDI + se produit et une croix rouge est montrée. Vous pouvez cliquer sur "File-Ressest Picturebox" pour gérer l'erreur.
1 HISTOIRE ET APPERMANDE 2 Conception 2.1 Données de jeu 3 Philosophie et précision 4 Statut juridique 5 MAME-LICENCE ORIGINAL 6 Voir aussi 7 Références 8 Liens externes
Le projet a été lancé par le programmeur italien Nicola Salmoria. Mame retrace ses racines à un projet d'émulateur antérieur appelé Multi-Pac, mais le nom a été modifié car de plus en plus de jeux ont commencé à être émulés dans le cadre de Mame. La première version est publiée en 1996. [5] En avril 1997, Salmoria a démissionné pour ses engagements de service national, remettant l'intendance du projet à son collègue Mirko Buffoni italien pendant une période d'un demi-année. En mai 2003, David Haywood a repris le travail du coordinateur. D'avril 2005 à avril 2011, le projet a été coordonné par Aaron Giles. [6] Angelo Salese est intervenu en tant que nouveau coordinateur. [7] En 2012, Miodrag Milanovic a pris le relais. [8] Le projet est soutenu par des centaines de développeurs à travers le monde et des milliers de contributeurs extérieurs.
Au début, MAME a été développé exclusivement pour MS-DOS, mais il a rapidement été porté sur des systèmes de type UNIX (X / MAME), Macintosh (MacMame et plus tard MAME OS X) et Windows (MAME32). Depuis le 24 mai 2001 avec la version 0.37b15 [6], le développement principal se produit sur la plate-forme Windows, et la plupart des autres plates-formes sont prises en charge via le projet SDLMame, qui a été intégré dans l'arbre source de développement en 2006. [9] De plus, différentes versions de MAME ont été portées vers d'autres ordinateurs, consoles de jeux, téléphones mobiles et PDA, et à un moment même vers des caméras numériques. [10] En 2012, Google a porté MAME vers le client natif, qui permet à Mame de s'exécuter à l'intérieur de Chrome. [11]
Les principales versions de MAME se produisent environ une fois par mois. Les exécutables Windows dans la mode 32 bits et 64 bits sont publiés sur le site Web officiel de l'équipe de développement, ainsi que le code source complet. [12] Les versions "U" (U "(pour la mise à jour) plus petites ont été publiées chaque semaine (jusqu'à la version 0.149U1) alors que la source diffère contre la version majeure la plus récente, pour maintenir le code en synchronisation entre les développeurs. [13] Le code source MAME est développé sur un référentiel GitHub public. [14] Cela permet à ceux qui ont l'expertise et les outils requis pour créer la version la plus à jour du code et contribuer des améliorations sous forme de demandes de traction. Les numéros de version historique de 0,32 et 0,38 à 0,52 inclusivement n'existent pas; Le premier a été ignoré en raison de la dénomination similaire de la variante MAME32 (qui elle-même a depuis été renommée Mameui en raison du passage à des versions 64 bits), tandis que les derniers numéros ont été ignorés en raison des nombreuses versions du cycle bêta 0.37 (ces numéros de version ont depuis été marqués à côté de leurs relances de 0,37 bêta équivalentes dans le site officiel de Mamedev). [15]
L'architecture de MAME a été largement améliorée au fil des ans. La prise en charge des écrans raster et vectoriels, ainsi que plusieurs processeurs et jetons sonores, ont été ajoutés à Mame au cours des six premiers mois du projet. Un système de minuterie flexible pour coordonner la synchronisation entre plusieurs cœurs de processeur émulés a été implémenté, et les images ROM ont commencé à être chargées en fonction de leur hachage CRC32 dans les fichiers zip dans lesquels ils ont été stockés. [6] MAME a été lancé par la recherche de l'ingénierie inverse de nombreuses architectures de système sans papiers, divers processeurs (tels que le processeur konami personnalisé à la M6809 avec de nouvelles instructions) et des jetons sonores (par exemple le Yamaha FM Sound Chips), et les développeurs de MAME ont été instrumentaux dans les jeux Arcades. Des exemples de ceux-ci incluent le NEO GEO, le Système CP II, le système CP III et bien d'autres. [Citation nécessaire]
La popularité de Mame a bien entretenu depuis le courant dominant, les passionnés créant leurs propres armoires de jeu d'arcade pour revivre les anciens jeux, et avec des entreprises produisant des œuvres dérivées illégales de MAME à installer dans des arcades. Les armoires peuvent être construites à partir de zéro, soit en démontant et en modifiant une véritable armoire de jeu d'arcade qui a été utilisée avec le vrai matériel à l'intérieur. [16] [17] Les armoires inspirées des jeux d'arcade classiques peuvent également être achetées et assemblées (avec des préinstallés en option et mame). [18]
Bien que MAME contient une interface utilisateur rudimentaire, l'utilisation de MAME dans les armoires de jeu Arcade et les théâtres à domicile nécessite des applications de lanceur spéciales appelées extrémités frontales avec des interfaces utilisateur plus avancées. Les extrémités frontales offrent différents degrés de personnalisation - permettant de voir des images des armoires, l'histoire des jeux et des conseils sur la façon de jouer, et même la vidéo du jeu ou l'attrait du mode du jeu.
Les informations contenues dans Mame sont gratuites pour la réutilisation, et les entreprises sont connues pour utiliser MAME lors de la recréation de leurs anciens classiques sur des systèmes modernes. Certains sont allés jusqu'à embaucher des développeurs MAME pour créer des émulateurs pour leurs anciennes propriétés. Un exemple de ceci est le pack Taito Legends qui contient des ROM lisibles sur certaines versions de Mame. [19]
Depuis 2012, MAME est maintenu par le chef de projet alors Mess Miodrag Milanović. [8]
Le 27 mai 2015 (0,162), le désordre de l'émulateur de la console de jeux et du système informatique a été intégré à MAME (le manuel d'utilisation du mess est toujours l'instruction d'utilisation la plus importante pour les parties non arcade de MAME). [20]
En mai 2015, il a été annoncé que les développeurs de Mame prévoyaient de réprimer le logiciel sous une licence gratuite et open-source plus courante, loin de la licence MAME d'origine. Le développeur de MAME, Miodrag Milanovic, a expliqué que le changement est destiné à attirer plus d'intérêt des développeurs pour le projet, à permettre aux fabricants de jeux de distribuer MAME pour imiter leurs propres jeux et faire du logiciel un "outil d'apprentissage pour les développeurs travaillant sur des tableaux de développement". La transition des licences de Mame aux licences BSD / GPL a été achevée en mars 2016. [21] [22] Avec le changement de licence, la majeure partie du code source de MAME (90% +) est disponible en vertu d'une licence BSD à trois clauses et le projet complet est sous la licence publique générale GNU version 2 ou version ultérieure. [21] [23]
Le 24 février 2016 (0,171), le front-end Mewui intégré à MAME (et le développeur a rejoint l'équipe), offrant à Mame une interface utilisateur flexible et plus complète. [24]
Cette section contient peut-être des recherches originales. Veuillez l'améliorer en vérifiant les réclamations faites et en ajoutant des citations en ligne. Les déclarations composées uniquement de recherches originales doivent être supprimées. (Juillet 2019) (Apprenez comment et quand supprimer ce message de modèle) Le Core MAME coordonne l'émulation de plusieurs éléments en même temps. Ces éléments reproduisent le comportement du matériel présent dans les machines d'arcade d'origine. MAME peut imiter de nombreuses unités de traitement central différentes (CPU) et matériel associé. Ces éléments sont virtualisés, donc MAME agit comme une couche logicielle entre le programme original du jeu, et la plate-forme MAME fonctionne. MAME prend en charge les résolutions d'écran arbitraires, les taux de rafraîchissement et les configurations d'affichage. Les moniteurs émulés multiples, comme l'exigent par exemple Darius, sont également pris en charge.
Les systèmes d'arcade individuels sont spécifiés par les conducteurs qui prennent la forme de macros de préprocesseur C. Ces moteurs spécifient les composants individuels à émuler et comment ils communiquent entre eux. Alors que MAME a été initialement écrit en C, la nécessité d'une programmation orientée objet a fait commencer à compiler tout le code de l'équipe de développement en tant que C ++ pour MAME 0.136, profitant des fonctionnalités supplémentaires de ce langage dans le processus.
Bien qu'une grande majorité des noyaux d'émulation du CPU soient interprétatifs, Mame prend également en charge la recompilation dynamique à travers un langage intermédiaire appelé langage de la machine universelle (UML) pour augmenter la vitesse d'émulation. Les cibles arrière prises en charge sont x86 et x64. Le backend AC est également disponible pour aider à la vérification de l'exactitude. Les processeurs émulés de cette manière sont SH-2, MIPS R3000 et PowerPC.
Le code du programme d'origine, les graphiques et les données sonores doivent être présents afin que le jeu puisse être émulé. Dans la plupart des machines d'arcade, les données sont stockées dans des puces de mémoire en lecture seule (ROM), bien que d'autres appareils tels que les bandes de cassette, les disquettes, les disques durs, les laserdiscs et les disques compacts soient également utilisés. Le contenu de la plupart de ces appareils peut être copié sur des fichiers informatiques, dans un processus appelé "Dumping". Les fichiers résultants sont souvent appelés génériquement des images ROM ou des ROM, quel que soit le type de stockage dont ils proviennent. Un jeu se compose généralement de plusieurs images ROM et PAL; Ceux-ci sont collectivement stockés dans un seul fichier zip, constituant un ensemble ROM. En plus de l'ensemble ROM "Parent" (généralement choisi comme la version "Monde" la plus récente du jeu), les jeux peuvent avoir des ensembles ROM "Clone" avec un code de programme différent, un texte de langue différent destiné à différents marchés, etc. Par exemple, Street Fighter II Turbo est considéré comme une variante de Street Fighter II Champion Edition. Des cartes système comme le Neo Geo qui ont des ROM partagées entre plusieurs jeux exigent que les ROM soient stockées dans des ensembles ROM "BIOS" et nommés de manière appropriée.
Les disques durs, les disques compacts et les laserdiscs sont stockés dans un format spécifique au nom appelé CHD (heurts compressés de données). [25] Certaines machines d'arcade utilisent du matériel analogique, comme les laserdiscs, pour stocker et lire des données audio / vidéo telles que les bandes sonores et les cinématiques. Ces données doivent être capturées et codées dans des fichiers numériques qui peuvent être lus par Mame. MAME ne prend pas en charge l'utilisation de dispositifs analogiques externes, qui (ainsi que des enclos de haut-parleur et de locuteurs identiques) seraient nécessaires pour une reproduction à 100% fidèle de l'expérience d'arcade. Un certain nombre de jeux utilisent des puces sonores qui n'ont pas encore été émulées avec succès. Ces jeux nécessitent des échantillons de son dans le format de fichiers WAV pour une émulation sonore. MAME prend également en charge les fichiers d'art au format PNG pour la lunette et les graphiques de superposition.
L'objectif indiqué du projet est de documenter le matériel, et MAME a donc une vision quelque peu puriste de l'émulation, interdisant les hacks de programmation qui pourraient faire fonctionner un jeu indûment ou fonctionner plus rapidement au détriment de la précision de l'émulation. Des composants tels que les CPU sont imités à un niveau bas (ce qui signifie que les instructions individuelles sont émulées) chaque fois que possible, et une émulation de haut niveau (HLE) n'est utilisée que lorsqu'une puce est complètement sans papiers et ne peut pas être ingérée en détail. L'émulation au niveau du signal est utilisée pour imiter les circuits audio qui se compose de composants analogiques.
Nous voulons documenter le matériel. Maintenant, beaucoup de gens diront; "Où est votre document? Vous écrivez juste un tas de code source." Et oui, c'est vrai. Une chose que j'ai apprise, c'est que le synchronisation de la documentation avec le code source est presque impossible. La meilleure preuve que votre documentation est correcte est "ce code fonctionne-t-il".
- Aaron Giles, Californie Extreme 2008 [26] Mame émule bien plus de mille conseils de systèmes d'arcade différents, dont la majorité sont complètement sans papiers et sur mesure pour exécuter un seul jeu ou un très petit nombre d'entre eux. L'approche que Mame prend en ce qui concerne la précision est incrémentielle; Les systèmes sont émulés aussi précisément que possible. Les copies de bootleg des jeux sont souvent les premières à être émulées, avec des versions appropriées (et protégées) imitées plus tard. Outre le cryptage, les jeux d'arcade étaient généralement protégés par des unités de microcontrôleur personnalisées (MCU) qui ont implémenté une partie de la logique de jeu ou d'autres fonctions importantes. L'émulation de ces puces est préférée même lorsqu'elles ont peu ou pas d'effet immédiatement visible sur le jeu lui-même. Par exemple, le comportement des monstres dans Bubble Bobble n'a pas été perfectionné tant que le code et les données contenus avec le MCU personnalisé ont été jetés par le décapage de la puce. [27] Il en résulte que les exigences de l'ensemble ROM changent à mesure que les jeux sont imités à un degré de plus en plus précis, provoquant des versions plus anciennes de l'ensemble ROM devenant inutilisable dans les versions plus récentes de MAME.
La portabilité et la généricité sont également importantes à en créer. Combiné avec la position sans compromis sur la précision, cela entraîne souvent des exigences élevées du système. Bien qu'un processeur à 2 GHz soit suffisant pour exécuter presque tous les jeux 2D, des systèmes plus récents et en particulier des systèmes avec des graphiques 3D peuvent être incompatibles, même sur les ordinateurs les plus rapides. Mame ne profite pas actuellement de l'accélération matérielle pour accélérer le rendu des graphiques 3D, en partie en raison de l'absence d'une API 3D multiplateforme stable, et en partie parce que le rendu logiciel peut en théorie être une reproduction exacte des diverses approches de rendu 3D personnalisées qui ont été utilisées dans les jeux Arcade.
Posséder et distribuer Mame lui-même est légal dans la plupart des pays, car il s'agit simplement d'un émulateur. Des sociétés comme Sony ont tenté en cour pour empêcher d'autres logiciels tels que Virtual Game Station, un émulateur Sony PlayStation d'être vendu, mais ils ont finalement échoué. [28]. Mame lui-même n'a jusqu'à présent pas fait l'objet d'aucune affaire de justice.
La plupart des jeux d'arcade sont toujours couverts par le droit d'auteur. Le téléchargement ou la distribution des ROM protégés par le droit d'auteur sans l'autorisation des détenteurs de droits d'auteur est presque toujours une violation des lois sur le droit d'auteur. Cependant, certains pays (y compris les États-Unis) [29] permettent au propriétaire d'une carte de transférer des données contenues dans ses puces ROM à un ordinateur personnel ou à un autre appareil qu'ils possèdent. Certains détenteurs de droits d'auteur ont exploré la mise à la disposition du public de la mise à disposition du public par le public. Par exemple, en 2003, Atari a fabriqué des ROM compatibles MAME pour 27 de ses jeux d'arcade disponibles sur le site Internet Star Roms. Cependant, en 2006, les ROM ne y étaient plus vendues. À un moment donné, divers jeux Capcom ont été vendus avec le Hotrod Arcade Joystick fabriqué par Hanaho, mais cet arrangement a également été interrompu. D'autres titulaires de droits d'auteur ont publié des jeux qui ne sont plus commercialement viables gratuitement au public en vertu de licences qui interdisent l'utilisation commerciale des jeux. Beaucoup de ces jeux peuvent être téléchargés légalement à partir du site Web officiel de Mame. [30] Le développeur de jeux d'arcade espagnol Gaelco a également publié un rallye mondial pour une utilisation non commerciale sur leur site Web. [31]
La communauté MAME s'est éloignée des autres groupes redistribuant les ROM via Internet ou les médias physiques, affirmant qu'ils enfreignent manifestement le droit d'auteur et nuisent au projet en le ramenant potentiellement. [32]. Malgré cela, les distributions illégales de ROM sont répandues sur Internet, et de nombreux "ensembles complets" existent également qui contient une collection complète des ROMS d'une version spécifique. [33] [34] De plus, de nombreux systèmes de jeux Bootleg, tels que Arcade Multi Carts, utilisent souvent des versions de MAME pour exécuter leurs jeux.
MAME a été auparavant distribué sous une licence Copyleft Copyleft personnalisée, appelée "Licence Mame" ou "Licence de type Mame", qui a également été adoptée par d'autres projets, par exemple Visual Pinball. Cette ancienne «licence MAME» garantit la disponibilité du code source, tandis que la redistribution des activités commerciales est interdite. En raison de cette clause, la licence est incompatible avec la définition open source de l'OSI et la définition du logiciel libre du FSF. La clause non commerciale a été conçue pour empêcher les opérateurs d'arcade d'installer des armoires MAME et de profiter des travaux des fabricants d'origine des jeux. [22] L'ambiguïté de la définition "commerciale" entraîne des problèmes juridiques avec la licence. [35] [36]
Depuis mars 2016 avec la version 0.172, Mame lui-même est passé aux licences logicielles gratuites et open source, les licences BSD et GPL. [37]