Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

MAME (первоначально аббревиатура от Multiple Arcade Machine Emulator ) - это бесплатный эмулятор с открытым исходным кодом, предназначенный для воссоздания аппаратного обеспечения аркадных игровых систем в программном обеспечении на современных персональных компьютерах и других платформах. [2] Его цель - сохранить историю игр, не допуская потери или забывания старых игр. Это достигается путем имитации внутренней работы эмулируемых игровых автоматов; возможность играть в игры считается «приятным побочным эффектом». [3] Joystiq включил MAME в список приложений, которые должны быть у каждого геймера Windows и Mac .[4]

Первый публичный выпуск MAME был выпущен Никола Салмориа 5 февраля 1997 года. Сейчас он поддерживает более 7 000 уникальных игр и 10 000 наборов реальных ROM-образов , хотя не во все игры можно играть. MESS , эмулятор для многих игровых консолей и компьютерных систем, основанный на ядре MAME, был интегрирован в MAME в 2015 году.

История и обзор [ править ]

Проект MAME был начат итальянским программистом Никола Салмориа. Он начинался как проект под названием Multi-Pac, предназначенный для сохранения игр семейства Pac-Man, но название было изменено, поскольку в его структуру было добавлено больше игр. Первая версия MAME была выпущена в 1996 году. [5] В апреле 1997 года Салмориа ушел в отставку по обязательствам национальной службы , передав руководство проектом итальянцу Мирко Буффони на полгода. В мае 2003 года Дэвид Хейвуд занял должность координатора проекта; а с апреля 2005 г. по апрель 2011 г. проект координировал Аарон Джайлс. [6] Анджело Салезе стал новым координатором. [7] В 2012 году Миодраг Миланович вступил во владение. [8]Проект поддерживают сотни разработчиков по всему миру и тысячи сторонних участников.

Сначала MAME разрабатывался исключительно для MS-DOS , но вскоре был перенесен на Unix-подобные системы (X / MAME), Macintosh (MacMAME, а затем MAME OS X) и Windows (MAME32). С 24 мая 2001 года, с версией 0.37b15, [6] MAME в основном разрабатывала платформу Windows, а большинство других платформ поддерживаются через проект SDLMAME , который был интегрирован в основное дерево исходных кодов разработки в 2006 году. [9] MAME также был перенесен на другие компьютеры, игровые консоли, мобильные телефоны и КПК, а в какой-то момент даже на цифровые камеры. [10] В 2012 году Google перенес MAME на собственный клиент , что позволяет запускать MAME в Chrome.. [11]

Основные выпуски MAME выходят примерно раз в месяц. Исполняемые файлы Windows как в 32-битной, так и в 64-битной версиях публикуются на официальном веб-сайте группы разработчиков вместе с полным исходным кодом. [12] Меньше, добавочное «и» (для обновления) высвобождает были выпущены еженедельно (до версии 0.149u1) в качестве источника файлов изменений против самой последней основной версии, чтобы сохранить код синхронизации среди разработчиков. [13] Исходный код MAME разработан в общедоступном репозитории GitHub . [14] Это позволяет тем, кто обладает необходимыми знаниями и инструментами, создавать самую последнюю версию кода и вносить улучшения в форме запросов на вытягивание.. Исторические номера версий 0,32 и 0,38–0,52 включительно не существуют; первое было пропущено из-за схожего наименования варианта MAME32 (который с тех пор был переименован в MAMEUI в связи с переходом на 64-битные сборки), в то время как последние числа были пропущены из-за многочисленных выпусков в бета-цикле 0.37 (эта версия числа с тех пор были отмечены рядом с их эквивалентами бета-версий 0.37 на официальном сайте MAMEdev). [15]

Архитектура MAME за эти годы значительно улучшилась. В первые шесть месяцев проекта в MAME была добавлена поддержка как растровых, так и векторных дисплеев , а также нескольких процессоров и звуковых чипов. Была реализована гибкая система таймера для координации синхронизации между несколькими эмулируемыми ядрами ЦП, и образы ПЗУ начали загружаться в соответствии с их хэшем CRC32 в файлах ZIP, в которых они хранились. [6] MAME является пионером в области обратного проектирования многих недокументированных систем. архитектуры, различных процессоров (таких как производный от M6809 пользовательский процессор Konami с новыми инструкциями) и звуковые чипы (например,Звуковые чипы Yamaha FM ), а разработчики MAME сыграли важную роль в обратном проектировании многих проприетарных алгоритмов шифрования, используемых в аркадных играх. Примеры включают Neo Geo , CP System II , CP System III и многие другие. [ необходима цитата ]

Популярность MAME с тех пор стала мейнстримом: энтузиасты создают свои собственные игровые шкафы, чтобы заново пережить старые игры, а также компании, производящие незаконные производные работы MAME для установки в игровых автоматах . Шкафы могут быть построены либо с нуля, либо путем разборки и модификации настоящего шкафа для аркадных игр, который когда-то использовался с реальным оборудованием внутри. [16] [17] Шкафы, вдохновленные классическими аркадными играми, также можно приобрести и собрать (с опциональной предустановкой и MAME). [18]

Хотя MAME содержит элементарный пользовательский интерфейс, использование MAME в аркадных игровых автоматах и домашних кинотеатрах требует специальных приложений запуска, называемых внешними интерфейсами, с более продвинутыми пользовательскими интерфейсами. Интерфейсы обеспечивают различную степень настройки - позволяя видеть изображения шкафов, историю игр и советы о том, как играть, и даже видео игры или режима привлечения внимания .

Информация, содержащаяся в MAME, бесплатна для повторного использования, и известно, что компании используют MAME при воссоздании своей старой классики в современных системах. Некоторые дошли до того, что наняли разработчиков MAME для создания эмуляторов для своих старых свойств. Примером этого является пакет Taito Legends, который содержит ПЗУ, читаемые в некоторых версиях MAME. [19]

С 2012 года MAME поддерживается руководителем проекта MESS Миодрагом Милановичем. [8]

27 мая 2015 г. (0.162) игровая консоль и эмулятор компьютерной системы MESS были интегрированы с MAME (поэтому руководство пользователя MESS по-прежнему является наиболее важной инструкцией по использованию не аркадных частей MAME). [20]

В мае 2015 года было объявлено, что разработчики MAME планируют повторно лицензировать программное обеспечение под более распространенной бесплатной лицензией с открытым исходным кодом , отличной от исходной лицензии MAME . Разработчик MAME Миодраг Миланович объяснил, что это изменение призвано привлечь больший интерес разработчиков к проекту, позволить производителям игр распространять MAME для эмуляции своих собственных игр и сделать программное обеспечение «обучающим инструментом для разработчиков, работающих над досками для разработки» . Переход с лицензирования MAME на лицензии BSD / GPL был завершен в марте 2016 года. [21] [22] С изменением лицензии большая часть исходного кода MAME (90% +) доступна в соответствии с тремя пунктами.Лицензия BSD и весь проект находятся под лицензией GNU General Public License версии 2 или более поздней. [21] [23]

24 февраля 2016 г. (0.171) MAME встроил интерфейс MEWUI (и разработчик присоединился к команде), предоставив MAME гибкий и более полнофункциональный пользовательский интерфейс. [24]

Дизайн [ править ]

Ядро MAME координирует эмуляцию нескольких элементов одновременно. Эти элементы повторяют поведение аппаратного обеспечения оригинальных игровых автоматов . MAME может эмулировать множество различных центральных процессоров (ЦП) и связанного с ними оборудования. Эти элементы виртуализированы, поэтому MAME действует как программный слой между исходной программой игры и платформой, на которой работает MAME. MAME поддерживает произвольные разрешения экрана, частоту обновления и конфигурации дисплея. Также поддерживаются несколько эмулируемых мониторов, как того требует, например, Darius .

Индивидуальные системы аркадных определяются драйверами , которые принимают форму C препроцессор макросов . Эти драйверы определяют отдельные компоненты, которые должны быть эмулированы, и то, как они взаимодействуют друг с другом. Хотя MAME изначально был написан на C , потребность в объектно-ориентированном программировании заставила команду разработчиков начать компилировать весь код как C ++ для MAME 0.136, используя в процессе дополнительные возможности этого языка.

Хотя подавляющее большинство ядер эмуляции ЦП являются интерпретирующими , MAME также поддерживает динамическую перекомпиляцию с помощью промежуточного языка, называемого универсальным машинным языком (UML), для увеличения скорости эмуляции. Поддерживаемые серверные цели - x86 и x64. Серверная часть AC также доступна для дальнейшей проверки правильности. Таким образом эмулируются процессоры SH-2, MIPS R3000 и PowerPC.

Данные игры [ править ]

Для эмуляции игры необходимо наличие исходного программного кода, графики и звуковых данных. В большинстве игровых автоматов данные хранятся в микросхемах памяти только для чтения (ПЗУ), хотя также используются другие устройства, такие как кассеты , гибкие диски , жесткие диски , лазерные диски и компакт-диски . Содержимое большинства этих устройств можно скопировать в компьютерные файлы в процессе, называемом «дампинг». Полученные файлы часто обычно называют образами ПЗУ или ПЗУ, независимо от типа хранилища, из которого они были получены. Игра обычно состоит из нескольких образов ROM и PAL ; они все вместе хранятся в единомZIP-файл , составляющий набор ПЗУ. В дополнение к «родительскому» набору ПЗУ (обычно выбираемому в качестве самой последней «мировой» версии игры) игры могут иметь «клонированные» наборы ПЗУ с другим программным кодом, текстом на разных языках, предназначенным для разных рынков и т. Д. Например, Street Fighter II Turbo считается вариантом Street Fighter II Champion Edition . Системные платы, такие как Neo Geo, которые имеют ПЗУ, совместно используемое несколькими играми, требуют, чтобы ПЗУ хранились в наборах ПЗУ «BIOS» и назывались соответствующим образом.

Жесткие диски, компакт-диски и лазерные диски хранятся в формате, специфичном для MAME, который называется CHD (сжатые блоки данных). [25] Некоторые игровые автоматы используют аналоговое оборудование, такое как лазерные диски, для хранения и воспроизведения аудио / видеоданных, таких как саундтреки и кинематографии. Эти данные должны быть записаны и закодированы в цифровые файлы, которые могут быть прочитаны MAME. MAME не поддерживает использование внешних аналоговых устройств, которые (наряду с идентичными динамиками и корпусами динамиков) потребуются для 100% точного воспроизведения аркадных игр. В ряде игр используются звуковые чипы, которые еще не были успешно эмулированы. Этим играм требуются образцы звука в формате файла WAV для имитации звука. MAME дополнительно поддерживает файлы обложек в формате PNG для лицевых панелей и наложения графики.

Философия и точность [ править ]

Заявленная цель проекта - документировать оборудование, и поэтому MAME придерживается несколько пуристического взгляда на эмуляцию, запрещая программные хаки, которые могут заставить игру работать некорректно или работать быстрее за счет точности эмуляции. Компоненты, такие как процессоры, эмулируются на низком уровне (то есть эмулируются отдельные инструкции), когда это возможно, а эмуляция высокого уровня (HLE) используется только тогда, когда микросхема полностью недокументирована и не может быть детально реконструирована. Эмуляция уровня сигнала используется для имитации звуковой схемы, состоящей из аналоговых компонентов.

Мы хотим задокументировать оборудование. Теперь многие люди скажут; «Где ваш документ? Вы просто пишете кучу исходного кода». И да, это правда. Я понял, что синхронизировать документацию с исходным кодом практически невозможно. Лучшее доказательство правильности вашей документации - это «работает ли этот код».

-  Аарон Джайлз, California Extreme, 2008 [26]

MAME эмулирует более тысячи различных игровых плат , большинство из которых полностью недокументированы и специально разработаны для запуска либо одной игры, либо очень небольшого их количества. Подход MAME к точности является постепенным; системы эмулируются настолько точно, насколько это возможно. Загрузочные копии игр часто эмулируются первыми, а надлежащие (и защищенные от копирования) версии эмулируются позже. Помимо шифрования, аркадные игры обычно защищались специальными микроконтроллерами (MCU), которые реализовывали часть игровой логики или некоторые другие важные функции. Эмуляция этих фишек предпочтительна, даже если они практически не оказывают видимого эффекта на саму игру. Например, поведение монстра вBubble Bobble не был доведен до совершенства до тех пор, пока код и данные, содержащиеся в настраиваемом MCU, не были сброшены посредством снятия метки с чипа. [27] Это приводит к изменению требований к набору ПЗУ по мере того, как игры эмулируются все более и более точно, в результате чего старые версии набора ПЗУ становятся непригодными для использования в новых версиях MAME.

Переносимость и универсальность также важны для MAME. В сочетании с бескомпромиссным подходом к точности это часто приводит к высоким системным требованиям. Хотя процессора с частотой 2 ГГц достаточно для запуска почти всех 2D-игр, более современные системы и особенно системы с 3D-графикой могут быть невыносимо медленными даже на самых быстрых компьютерах. MAME в настоящее время не использует аппаратное ускорение для ускорения рендеринга 3D-графики, отчасти из-за отсутствия стабильного кроссплатформенного 3D API, [ необходима цитата ] и отчасти потому, что программный рендеринг теоретически может быть точным воспроизведением различных пользовательских подходов к 3D-рендерингу, которые использовались в аркадных играх.

Правовой статус [ править ]

Владение и распространение самого MAME законно в большинстве стран, поскольку это просто эмулятор. Такие компании, как Sony , пытались в суде воспрепятствовать продаже другого программного обеспечения, такого как Virtual Game Station , эмулятора Sony PlayStation , но в конечном итоге безуспешно. [28] Само МАМЭ до сих пор не было предметом судебных дел.

На большинство аркадных игр по-прежнему распространяется авторское право. Загрузка или распространение защищенных авторским правом ПЗУ без разрешения правообладателей почти всегда является нарушением законов об авторских правах. Однако некоторые страны (включая США) [29] позволяют владельцу платы передавать данные, содержащиеся в его микросхемах ПЗУ, на персональный компьютер или другое устройство, которым он владеет. Некоторые правообладатели изучали возможность сделать ПЗУ аркадных игр общедоступными посредством лицензирования. Например, в 2003 году Atari сделала MAME-совместимые ПЗУ для 27 своих аркадных игр, доступных на интернет-сайте Star ROMs . Однако к 2006 году ПЗУ там уже не продавались. В какой-то момент различные игры Capcom продавались с аркадным джойстиком HotRod производства компанииHanaho , но и эта аранжировка была прекращена. Другие правообладатели выпустили игры, которые больше не являются коммерчески жизнеспособными, бесплатно для публики по лицензиям, запрещающим коммерческое использование игр. Многие из этих игр можно загрузить легально с официального веб-сайта MAME. [30] Испанский разработчик аркад Gaelco также выпустил World Rally для некоммерческого использования на своем веб-сайте. [31]

Сообщество MAME дистанцировалось от других групп, распространяющих ПЗУ через Интернет или физические носители, утверждая, что они грубо нарушают авторские права и наносят вред проекту, потенциально навредив ему репутации. [32] Несмотря на это, незаконное распространение ПЗУ широко распространено в Интернете, и также существует множество «полных наборов», которые содержат полную коллекцию ПЗУ конкретной версии. [33] [34] Кроме того, многие системы контрафактных игр, такие как аркадные мульти-тележки, часто используют версии MAME для запуска своих игр. [ необходима цитата ]

Исходная лицензия MAME [ править ]

MAME раньше распространялся по индивидуальной самописной лицензии с авторским левом , называемой «MAME-лицензия» или «MAME-подобная лицензия», которая также была принята другими проектами, например Visual Pinball . Эта лицензия гарантирует доступность исходного кода лицензионной программы , в то время как распространение программы в коммерческих целях запрещено. В связи с этим пунктом, лицензия несовместима с OSI «s определением Open источника и FSF » s определением свободного программного обеспечения , и как таковой не считается открытым исходным кодом или бесплатным программным обеспечениемлицензия соответственно. Оговорка о некоммерческой деятельности была разработана с целью запретить операторам игровых автоматов устанавливать шкафы MAME и извлекать выгоду из работ оригинальных производителей игр. [22] Неопределенность определения «коммерческий» приводит к юридическим проблемам с лицензией. [35] [36]

С марта 2016 года с версией 0.172 сама MAME перешла путем двойного лицензирования на общие лицензии свободного программного обеспечения , новую лицензию BSD и GNU GPLv2 (или более позднюю версию ) . [37]

См. Также [ править ]

  • Эмулятор аркады
  • БЕСПОРЯДОК
  • Список бесплатных программных пакетов и пакетов с открытым исходным кодом
  • Список эмуляторов игровой приставки

Ссылки [ править ]

  1. ^ "Релизы - мамедев / маме" . Проверено 14 апреля 2021 г. - через GitHub .
  2. Herz, JC (5 марта 1998 г.). «С программной ловкостью рук видео-призраки ходят» . Нью-Йорк Таймс . Архивировано 14 апреля 2019 года . Проверено 3 июля 2013 года .
  3. ^ "МАМЭ | О МАМЭ" . Mamedev.org . Проверено 11 апреля 2011 года .
  4. ^ Квилти-Harper, Conrad (16 декабря 2005). «Приложения для ПК и Mac, которые должен иметь каждый геймер» . Joystiq . Архивировано из оригинала на 6 января 2006 года . Проверено 3 июля 2013 года .
  5. ^ Марагос, Nich (25 июля 2015). «Загробная жизнь: мир эмуляции консольных игр» . 1UP.com . Архивировано из оригинала 25 июля 2015 года . Проверено 21 августа 2018 года .
  6. ^ a b c "История проекта MAME" . Проверено 23 апреля 2011 года .
  7. Джайлз, Аарон (5 апреля 2011 г.). «Смена режима» . Mamedev.org . Проверено 3 июля 2013 года .
  8. ^ a b Миланович, Миодраг (26 апреля 2012 г.). «Передача факела» . Mamedev.org . Проверено 26 апреля 2012 года .
  9. ^ "Домашняя страница SDLMAME" . Rbelmont.mameworld.info. 13 октября 2006 . Проверено 11 апреля 2011 года .
  10. ^ IGN Staff (3 ноября 1999). «Но подождите, это же камера ...» IGN . Архивировано 22 февраля 2014 года . Проверено 3 июля 2013 года .
  11. ^ Wawro, Alex (3 января 2012). «МАМЭ запускается в Google Chrome, играет во все ваши любимые аркадные игры» . Мир ПК . Архивировано 7 сентября 2013 года . Проверено 3 июля 2013 года .
  12. ^ "MAME Последний выпуск MAME" . Проверено 23 апреля 2011 года .
  13. ^ "MAME Source Updates" . Архивировано из оригинального 20 апреля 2011 года . Проверено 23 апреля 2011 года .
  14. ^ "GitHub - mamedev / mame: MAME - Эмулятор нескольких аркадных автоматов" . Проверено 19 мая 2016 года .
  15. ^ "MAME Предыдущие выпуски" .
  16. ^ Сент-Клер, Джон (2004). Project Arcade: создайте свою собственную аркадную машину . Индианаполис, ИН: Wiley. ISBN 0764556169.
  17. ^ Roush, Джордж (16 апреля 2008). «Создайте свою собственную машину MAME» . IGN . Архивировано 16 декабря 2012 года . Проверено 3 июля 2013 года .
  18. Перейти ↑ Harris, Craig (30 ноября 2005 г.). «Коктейльный набор Dream Arcade» . IGN . Архивировано 22 февраля 2014 года . Проверено 3 июля 2013 года .
  19. ^ "Руководство Taito Legends" (PDF) . Sega . Проверено 23 апреля 2011 года . [ постоянная мертвая ссылка ]
  20. ^ "МАМЭ 0.162" . MAMEDEV.org .
  21. ^ a b Вавро, Алекс (4 марта 2016 г.). «10 месяцев спустя MAME завершает переход на открытый исходный код» . Гамасутра . Архивировано 22 апреля 2016 года . Проверено 5 марта 2016 года .
  22. ^ a b Вавро, Алекс (15 мая 2015 г.). «MAME собирается стать« учебным пособием для разработчиков »с открытым исходным кодом » . Гамасутра . Архивировано 16 мая 2015 года . Проверено 27 мая 2015 года .
  23. ^ «MAME теперь является бесплатным программным обеспечением с открытым исходным кодом» . MAMEdev.org . Проверено 5 марта 2016 года .
  24. ^ http://mamedev.org/releases/whatsnew_0171.txt
  25. ^ "MAME | src / lib / util / chd.h" . Mamedev.org. Архивировано из оригинала на 4 июля 2013 года . Проверено 20 декабря 2012 года .
  26. Джайлз, Аарон (17 июля 2009 г.). «Аарон Джайлс на California Extreme 2008 - Часть 2» . YouTube . Проверено 20 декабря 2012 года .
  27. ^ Salmoria, Nicola. "Бродяги Николая МАМЕ" . Проверено 3 июля 2013 года .
  28. ^ Glasner, Джоанна (10 февраля 2000). «Суд поддерживает PlayStation Rival» . Проводной . Архивировано из оригинала 18 июня 2001 года . Проверено 26 сентября 2006 года .
  29. ^ "17 Кодекса США § 117 (а)" . Бюро авторских прав США . Проверено 8 февраля 2014 года .
  30. ^ "MAME ROMs для бесплатной загрузки" . Проверено 3 июля 2013 года .
  31. ^ "Gaelco Games at Home!" . Архивировано из оригинального 18 мая 2013 года . Проверено 3 июля 2013 года .
  32. ^ «FAQ: Ромы» . Сайт разработки MAME . Проверено 28 декабря 2013 года .
  33. ^ "Сделайте все возможное" . Журнал ПК . Vol. 26 нет. 17. 4 сентября 2007 г. с. 61 . Проверено 28 декабря 2013 года .
  34. ^ «Игра началась» . Популярная наука . Vol. 270 нет. 4. апрель 2007. с. 78 . Проверено 28 декабря 2013 года .
  35. ^ «Домашняя страница Дэвида Хейвуда» Теория «Уже мертва» ». 31 октября, 2013. Архивировано из оригинального 31 октября 2013 года .
  36. ^ "Так почему это меня так сильно раздражает?" . mameworld.info . 22 октября 2013 . Проверено 29 октября 2017 года .
  37. ^ «MAME теперь является бесплатным программным обеспечением с открытым исходным кодом» . MAMEDEV.org .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • MAMEworld MAME ресурс и новостной сайт
  • База данных Arcade База данных, содержащая подробную информацию о любой игре, поддерживаемой Mame, включая прошлые версии. Есть изображения, видео, программы для загрузки дополнительных файлов, расширенный поиск, графика и многие другие ресурсы.