MAME — эмулятор разработанный для воссоздания электронного оборудования аркадных автоматов с целью сохранения истории игр и предотвращения исчезновения старых игр. Название эмулятора является акронимом для Multiple Arcade Machine Emulator (эмулятор множества аркадных машин), первый публичный выпуск MAME (версия 0.1), автором которого был Никола Салмориа, состоялся 5 февраля 1997 года. Эмулятор поддерживает 4266 уникальных игр и 8286 ром-сет (каждая игра может иметь один или несколько клонов).
Архитектура кода MAME включает несколько компонентов, это отдельные программные эмуляторы разных типов процессоров, микросхем генерации звука, видео-контроллеров и других стандартных элементов. Для эмуляции каждой игры или унифицированной аркадной системы (типа Neo-Geo) пишутся отдельные «драйвера», использующие код эмуляции стандартных компонентов и добавляющие код, эмулирующий остальные устройства и связывающий компоненты. В состав эмулятора не включены образы ПЗУ, содержащих код и данные игр.
Главной целью эмулятора является документирование аппаратного обеспечения аркадных автоматов, сохранение их данных для истории, поэтому запрещено вносить в код изменения и хаки, которые могут заставить игры работать неправильно или быстрее, ценой точности эмуляции. В MAME каждый эмулируемый компонент эмулируется на программном уровне до каждого регистра и инструкции. Поэтому эмуляция в MAME очень точна (в многих случаях до каждого пиксела), но системные требования могут быть довольно высокими.
MAME эмулирует в основном старые автоматы, игры идут на приемлемой скорости на компьютере с 1 ГГц процессором. Современные же аркадные автоматы достаточно сложны, основаны на быстрых RISC процессорах, математических DSP, и прочих элементах, которые достаточно сложны для точной эмуляции, и поэтому эти системы могут не работать достаточно быстро даже на самых современных компьютерах.
Существует несколько версий MAME, которые предназначены для разных пользовательских аудиторий. Основные выпуски происходят раз в месяц и им дается номер версии, небольшие, инкрементные выпускаются между основными.
Эмулятор аркадных игровых автоматов MAME стал свободным проектом
4 марта 2016 года проект MAME объявил о завершении процесса перелицензирования.
Вместо ранее используемой несвободной лицензии "MAME License" выбрана модель двойного лицензирования: весь продукт теперь поставляется под лицензией GPLv2+, но 90% исходных текстов также доступны и под лицензией BSD (некоторые драйверы опубликованы только под GPL).
Ранее применяемая лицензия "MAME License" была основана на свободной лицензии BSD, в которую было внесен пункт, запрещающий продажу продуктов на основе MAME и их использование в коммерческих целях. Подобный запрет перевёл "MAME License" в разряд собственнических лицензий, не отвечающих критериям открытого и свободного ПО из-за наличия ограничений дискриминационного характера. При этом код проекта всегда был доступен и разрабатывался на GitHub.
Модифицированная лицензия была выбрана чтобы защитить проект от нелегального использования, но, кроме невозможности обмена кодом с открытыми проектами, данный шаг привёл к возникновению ряда непредвиденных ограничений, таких как невозможность использования MAME для демонстрации старых игр в музеях (если посетители покупают билет) или для повторного выпуска старых игр их создателями.
Процесс перелицензирования занял 10 месяцев, в ходе которых потребовалось найти всех разработчиков, когда-либо передававших свой код проекту, и получить от них одобрение. С учётом того, что проект развивается сообществом с 1997 года, возможность проведения подобного процесса оценивалась скептически и инициатива по перелицензированию несколько лет откладывалась.
Разработчики MAME надеются, что смена лицензии станет для владельцев прав на старые компьютерные игры стимулом, чтобы организовать бесплатное распространение игр, а также позволит использовать наработки проекта в качестве обучающего пособия для разработки и понимания принципов работы классических игр. Кроме того, изменение лицензии приведёт к интеграции MAME с параллельно развиваемым проектом MESS (Multi Emulator Super System), занимающимся документированием старого оборудования.