Кіріспе

Аркадтық ойын эмуляциясы бағдарламасы, эмулятор

MAME (бұрынғы Multiple Arcade Machine Emulator аббревиатурасы) – қазіргі заманғы жеке компьютерлер мен басқа да платформаларда аркадтық ойын жүйелерінің аппараттық құрамын бағдарламалық түрде қайта құруға арналған тегін және ашық кодты эмулятор. Оның мақсаты – көне ойындардың жоғалып кетуіне немесе ұмытылуына жол бермей, ойын тарихын сақтау. Бұл эмуляцияланатын аркад машиналарын ішкі жұмысын модельдеу арқылы жүзеге асырылады; ал ойын ойнау мүмкіндігі «құбалаңқы пайда» деп есептеледі. Joystiq MAME-ді әрбір Windows және Mac ойыншысының құралдарында болуы тиіс бағдарлама ретінде тізімдеген. MAME-дің алғашқы жарияланған нұсқасын Никола Салмория 1997 жылдың 5 ақпанында шығарды. Қазір ол 7000-нан астам бірегей ойынды және 10000 нақты ROM жиынтығын қолдайды, бірақ барлық ойындарды ойнау мүмкін емес. 2015 жылы MAME өзегіне негізделген көптеген бейне ойын консольдары мен компьютерлік жүйелерге арналған MESS эмуляторы MAME-ке біріктірілді. OTVDM (WineVDM) арқылы MAME-дің нұсқасы x64 және AArch64 Windows нұсқаларында 16 биттік DOS және Windows бағдарламаларын эмуляциялау үшін қолжетімді. Microsoft компаниясының NTVDM тек Windows-тың 32 биттік нұсқаларын ғана қолдайды.

Тарих және жалпы түсінік

MAME жобасын итальяндық бағдарламашы Никола Сальмория бастады. Ол Pac Man отбасына жататын ойындарды сақтау мақсатымен құрылған Multi Pac деп аталған жоба ретінде басталды, бірақ оның негізіне көбірек ойындар қосылғанда атауы өзгертілді. MAME-тің алғашқы нұсқасы 1996 жылы жарық көрді. 1997 жылдың сәуір айында Сальмория әскери міндеттемелерін орындау үшін қызметтен босатылып, жобаны жарты жылға итальяндық әріптесі Мирко Буффониге тапсырды. 2003 жылдың мамырында Дэвид Хейвуд жобаның үйлестірушісі болды, ал 2005 жылдың сәуірінен 2011 жылдың сәуіріне дейін Аарон Джайлс жобаны үйлестірді. Содан кейін Анджело Салезе үйлестіруші болып тағайындалды, ал 2012 жылы Миодраг Миланович осы қызметке келді. Жобаны әлемнің жүздеген бағдарламашылары және мыңдаған сыртқы үлес қосушылар қолдайды. Алғашқыда MAME тек MS DOS үшін жасалды, бірақ көп ұзамай Unix сияқты жүйелерге (X/MAME), Macintosh (MacMAME және кейін MAME OS X) және Windows (MAME32) жүйелеріне көшірілді. 2001 жылдың 24 мамырынан бастап, 0.37b15 нұсқасымен MAME басқа компьютерлерге, ойын консольдарына, ұялы телефондарға және PDA-ларға, тіпті бір кезде сандық камераларға да көшірілді. 2012 жылы Google MAME-ті Chrome-да іске қосуға мүмкіндік беретін Native Client жүйесіне көшірді. MAME-тің жаңа нұсқалары айына шамамен бір рет шығады. Windows-тың 32 биттік және 64 биттік орындалатын файлдары, толық бастапқы кодпен бірге, әзірлеушілер тобының ресми сайтында жарияланады. Шағын, үдемелі "u" (жаңарту) нұсқалары апта сайын (0.149u1 нұсқасына дейін) шығарылды, өйткені кодты әзірлеушілер арасында синхрондау үшін соңғы жаңартпа нұсқасымен салыстырылатын өзгерістер болды. MAME-тің бастапқы коды GitHub-тың ашық репозиторийінде сақталады, бұл қажетті білімі мен құралдары барларға ең соңғы нұсқаны құрастыруға және өзгеріс ұсыныстары арқылы жақсартуларға үлес қосуға мүмкіндік береді. 0.32 және 0.38-ден 0.52-ге дейінгі тарихи нұсқалар жоқ; біріншісі GUI интерфейсі бар MAME32 нұсқасының ұқсас аталуына байланысты (кейіннен 64 биттік құрастыруларға көшуге байланысты MAMEUI деп аталды), ал соңғы нөмірлер 0.37 бета циклында көптеген шығарылымдар болғандықтан өткізілді (бұл нұсқалардың нөмірлері ресми MAMEdev сайтында олардың 0.37 бета нұсқаларымен қатар көрсетілген). MAME архитектурасы жылдар бойына жақсартылды. Жобаның алғашқы алты айында растрлық және векторлық дисплейлерді, бірнеше процессорларды және дыбыс чиптерін қолдау қосылды. Бірнеше эмуляцияланған процессорлық ядролардың арасындағы синхрондауды үйлестіру үшін икемді таймер жүйесі енгізілді, ал ROM кескіндері олар сақталған ZIP файлдарындағы CRC32 хэш кодына сәйкес жүктеле бастады. Классикалық ойындардан шабыттанған шкафтарды сатып алып, құрастыруға болады (MAME алдын ала орнатылған күйде болуы мүмкін). MAME-де қарапайым пайдаланушы интерфейсі болғанымен, MAME-ді аркадалық ойын шкафтарында және үй кинотеатрларында пайдалану үшін арнайы іске қосу бағдарламалары, яғни "фронт-эндтер" қажет, олар кеңейтілген мүмкіндіктерге ие. Олар ойын шкафтарының суреттерін, тарихын, ойын кеңестерін, ойындарға арналған ерекше логотиптерді және ойынның немесе тарту режимінің бейнесін көруге мүмкіндік беретін әртүрлі деңгейде бейімдеуге мүмкіндік береді. MAME-дегі ақпаратты қайта пайдалануға болады, ал компаниялар MAME-ті ескі классикалық ойындарды заманауи жүйелерде қайта жасау үшін пайдаланады. Кейбіреулері тіпті MAME бағдарламашыларын ескі өнімдері үшін эмулятор жасау үшін жалдаған. Мысалы, MAME-тің белгілі бір нұсқаларында оқуға болатын ROM-дар бар Taito Legends жинағын атауға болады. 2015 жылдың 27 мамырында (0.162 нұсқасы) MESS ойын консолі мен компьютерлік жүйе эмуляторы MAME-ке біріктірілді (сондықтан MESS пайдаланушы нұсқаулығы әлі де MAME-тің аркадалық емес бөліктері үшін ең маңызды пайдалану нұсқаулығы болып табылады). Бұл акронимнің алынып тасталуына да әкелді, өйткені MAME қазір аркадалық автоматтарынан гөрі көп нәрсені эмуляциялай алады. 2012 жылдан бері MAME-ті бұрынғы MESS жобасының жетекшісі Миодраг Миланович күзеп келеді. MAME-тің бастапқы кодының көп бөлігі (90%+) қазір BSD 3 Clause лицензиясы бойынша қол жетімді, ал жобаның толық бөлігі GPL 2.0 немесе одан кейінгі нұсқасы бойынша лицензияланған. 2016 жылдың 24 ақпанында (0.171 нұсқасы) MAME MEWUI фронт-эндін енгізді (және оның бағдарламашысы командаға қосылды), бұл MAME-ге икемді және толыққанды UI интерфейсін ұсынды. 2021 жылдың 30 желтоқсанында Akai Katana және DoDonPachi SaiDaiOuJou ойындарының батыстық авторлық құқықтарының иелері exA Arcadia, осы ойындардың эмуляторға енгізілуіне байланысты MAME бағдарламашыларына тоқтату туралы хабарлама жіберді. MAME бір күннен кейін сұранысты орындады, осылайша 0.240 нұсқасынан бастап оларды эмуляторда командалық жолсыз ойнату мүмкін болмайды.

Дизайн

MAME өзегі бірнеше элементтің эмуляциясын бір уақытта үйлестіреді. Бұл элементтер бастапқы аркад машиналарын құраған аппараттық құрылғылардың қызметін қайталайды. MAME көптеген әртүрлі орталық процессорларды (CPU) және олармен байланысты жабдықтарды эмуляциялай алады. Бұл элементтер виртуалдандырылған, сондықтан MAME ойынның бастапқы бағдарламасы мен MAME іске қосылған платформа арасында бағдарламалық қабат ретінде жұмыс істейді. MAME кез келген экран ажыратымдылығын, жаңару жылдамдығын және дисплей конфигурациясын қолдайды. Мысалы, Darius сияқты ойындарда қажет болатын бірнеше эмуляцияланған мониторлар да қолдауға ие. Аркад жүйелерінің жеке түрлері C препроцессоры макростары түріндегі драйверлермен анықталады. Бұл драйверлер эмуляцияланатын жеке компоненттерді және олардың бір-бірімен қалай байланысатынын көрсетеді. MAME бастапқыда C тілінде жазылған болса да, объектіге бағытталған бағдарламалау қажеттілігінен туындап, жасаушылар командасы MAME 0.136 нұсқасы үшін барлық кодты C++ тілінде құрастыруға кірісті, соның арқасында осы тілдің қосымша мүмкіндіктерін пайдаланды. CPU эмуляциялық ядроларының көп бөлігі интерпретациялық болғанымен, MAME эмуляция жылдамдығын арттыру үшін Universal Machine Language (UML) деп аталатын аралық тіл арқылы динамикалық қайта құрастыруды да қолдайды. x86 және x64 артқы мақсаттары қолдауға ие. Дұрыстығын тексеруге көмектесу үшін C тіліндегі артқы интерфейс те бар. Осылай эмуляцияланатын процессорлар: SH 2, MIPS R3000 және PowerPC.

Философия, дәлдігі мен сапасы

Жобаның мақсаты аппараттық құжаттау болып табылады, сондықтан MAME эмуляцияға қатысты таза көзқарас ұстанады, эмуляцияның дәлдігінен айырылып, ойынды оңайырақ іске қосуға мүмкіндік беретін бағдарламалық тәсілдерге тыйым салады. CPU сияқты компоненттер мүмкіндігінше төменгі деңгейде эмуляцияланады (яғни, жеке нұсқаулар эмуляцияланады), ал жоғары деңгейлі эмуляция (HLE) тек чип толыққанды құжатталмаған және егжей-тегжейлі кері инженерияға келмейтін жағдайларда қолданылады. Аналогтық компоненттерден тұратын аудио схемаларын эмуляциялау үшін сигнал деңгейінде эмуляция қолданылады. MAME мыңнан астам түрлі аркадалық жүйелік тақшаларды эмуляциялайды, олардың көпшілігі құжатталмаған және бір ойынды немесе өте аз ойындарды іске қосу үшін арнайы жасалған. Дәлдікке қатысты MAME ұстанатын тәсіл кезеңдік болып табылады; жүйелер мүмкіндігінше дәл эмуляцияланады. Ойынның пираттық көшірмелері көбінесе бірінші болып эмуляцияланады, ал түпнұсқа (және көшірмеден қорғалған) нұсқалары кейінірек эмуляцияланады. Шифрлаудан басқа, аркадалық ойындар көбінесе ойын логикасының бір бөлігін немесе басқа да маңызды функцияларды жүзеге асыратын арнайы микроконтроллерлер (MCU) арқылы қорғалған. Олардың ойынға тікелей көрінетін әсері болмаса да, осы чиптерді эмуляциялауға басымдық беріледі. Мысалы, Bubble Bobble ойынындағы монстрлердің мінез-құлқы, чиптің қаптамасын ашу арқылы оның ішіндегі код пен деректер алынғанға дейін толыққанды жетілдірілмеген. Бұл ойындардың дәлдігі арта түскен сайын ROM жиынтығының талаптарының өзгеруіне әкеледі, соның салдарынан ROM жиынтығының ескі нұсқалары MAME-тің жаңа нұсқаларында қолданылмайды. MAME үшін портативтілік және жалпыламалық та маңызды. Дәлдікке қатысты келісімсіз ұстаныммен бірігіп, бұл көбінесе жоғары жүйе талаптарына әкеледі. 2 ГГц процессордың көбінесе барлық 2D ойындарды іске қосуға жеткілікті болса да, жақында жасалған жүйелер, әсіресе 3D графикасы бар жүйелер тіпті ең жылдам компьютерлерде де ойнауға қиын болуы мүмкін. MAME қазіргі уақытта 3D графиканы жылдамдату үшін аппараттық үдетуді пайдаланбайды, себебі тұрақты кросс-платформалық 3D API-дың болмауы және бағдарламалық рендеринг теориялық тұрғыдан алғанда аркадалық ойындарда қолданылған әртүрлі 3D рендеринг тәсілдерін нақты көшіруге мүмкіндік береді.

Құқықтық мәртебе

MAME-ге иелік ету және тарату көптеген елдерде заңды, себебі ол тек эмулятор. Sony сияқты компаниялар сот арқылы Virtual Game Station, Sony PlayStation эмуляторы сияқты басқа бағдарламалық жасақтаманың сатылуына кедергі келтіруге тырысты, бірақ олар ақырында сәтсіз болды. MAME-ның өзі әзірге ешқандай сот ісіне тартылмаған. Көптеген аркадалық ойындар әлі де авторлық құқықпен қорғалған. Авторлық құқық иелерінің рұқсатынсыз авторлық құқықпен қорғалған ROM-дарды жүктеу немесе тарату авторлық құқық заңдарын бұзу болып табылады. Дегенмен, кейбір елдер (соның ішінде АҚШ) тақта иесіне ROM-чиптердегі деректерді жеке компьютерге немесе өзге де құрылғыға көшіруге рұқсат береді. Кейбір авторлық құқық иелері аркадалық ойын ROM-дарын лицензия арқылы жұртшылыққа ұсыну мүмкіндігін қарастырды. Мысалы, 2003 жылы Atari Star ROMs интернет-сайтында 27 аркадалық ойынына MAME-ге үйлесімді ROM-дарды жариялады. Бірақ 2006 жылға қарай бұл ROM-дар онда сатылмады. Бір кезде Capcom-тың әртүрлі ойындары Hanaho-ның HotRod аркадалық джойстигімен бірге сатылды, бірақ бұл келісім де тоқтатылды. Басқа авторлық құқық иелері коммерциялық тұрғыдан тиімділігін жоғалтқан ойындарды коммерциялық пайдалануға тыйым салатын лицензиялар бойынша тегін шығарды. Бұл ойындардың көпшілігін ресми MAME веб-сайтынан заңды түрде жүктеуге болады. Испандық Gaelco ойын автоматтарын жасаушы компаниясы World Rally ойынын өз веб-сайтында коммерциялық емес мақсатта пайдалануға арналған ретінде жариялады. MAME қауымдастығы басқа топтардан, ROM-дарды интернет немесе физикалық тасымалдағыштар арқылы қайта тарататындардан қашықтап, олардың авторлық құқықтың айқын бұзушылығы екенін және жобаның беделін түсіру арқылы зиян келтіретінін мәлімдеді. Бұған қарамастан, ROM-дардың заңсыз таралуы интернетте кең таралған, сондай-ақ белгілі бір нұсқаның ROM-дарының толық жинағын қамтитын көптеген "Толық жиынтықтар" бар. Сонымен қатар, көптеген заңсыз ойын жүйелері, мысалы, аркадалық көп картридждер, көбінесе өздерінің ойындарын іске қосу үшін MAME нұсқаларын пайдаланады.

Түпнұсқа MAME лицензиясы

MAME бұрын, "MAME лицензиясы" немесе "MAME сияқты лицензия" деп аталатын, авторлық құқығы сақталған, өздігінен жазылған copyleft лицензиясы бойынша таратылған. Бұл лицензияны басқа жобалар да, мысалы Visual Pinball қабылдаған. Бұл лицензия лицензияланған бағдарламаның бастапқы кодының қолжетімділігін қамтамасыз етеді, бірақ бағдарламаны коммерциялық қызметте қайта таратуға тыйым салады. Осы шартқа байланысты лицензия OSI-ның Ашық код анықтамасына және FSF-тің Ерін бағдарламалық қамтамасыз ету анықтамасына сәйкес келмейді, сондықтан ол тиісінше ашық кодты немесе еркін бағдарламалық қамтамасыз ету лицензиясы болып саналмайды. Коммерциялық емес талап, ойын автоматтары операторларына MAME кабинеттерін орнатудан және ойынның түпнұсқа дамытушыларының еңбегінен пайда табуға жол бермеу үшін жасалған. 2016 жылдың наурыз айынан бастап, 0.172 нұсқасымен MAME өзі екі лицензиялау арқылы, BSD 3 Clause лицензиясы және GPL 2.0 немесе одан кейінгі нұсқалары сияқты, кең таралған еркін бағдарламалық жасақтама лицензияларына көшті. Дегенмен, ескі нұсқалар бастапқы лицензия бойынша лицензияланады.