Сыграем, Пингвин?

Эмуляторы игр и Linux -- что между ними общего?

[Константин Литвинов, Георгий Корсаков]

Сыграем, Пингвин?

Если с шекспировским определением нашей жизни еще можно пробовать спорить, то для домашнего компьютера игра (а точнее, игры) - это его (ДК) все.

В самом деле, изымите из него игры, что останется - скучная помесь пишмашинки и калькулятора.

Да что там компьютер! Едва лишь микрокалькуляторы вошли в наш дом, как тут же под них стали создавать игровые программы. "Полет на Луну", "Слалом"... Кому не лень, могут полистать журналы "Наука и Жизнь" соответствующих годов.

Стоит ли удивляться тому, что 9 из 10 компьютеров, купленных для дома, используются, главным образом, как игровые автоматы.

Не удивительно и то, что в последнее время возникла миграция с ПК на игровые приставки. Так, сосед одного из авторов данной статьи легко обменял беушный Pentium III на Sony Playstation2. Сынок писал кипятком.

Впрочем, анализ тинейджеровских пристрастий лежит за пределами данной статьи. Потому вернемся к ПК.

В периодически возникающих спорах "Windows vs. anyOS" поклонники первой частенько любят козырять обилием доступных игр, доказывая преимущества их избранницы перед другими операционными системами. На первый взгляд, дело, действительно, обстоит так. Загляните в любую точку, торгующую софтом - лицензионным ли, пиратским, - и поинтересуйтесь: нет ли игр под Linux? Ответом, скорее всего, будет что-нибудь типа: "Не выпендривайся, парень!"

Однако, если приглядется внимательнее, изобилие windows-игр окажется не более, чем иллюзией. У тех, кого "подоконники" презрительно именуют "красноглазыми", возможностей куда больше.

Но прежде, чем доказывать это, зададимся вопросом: откуда взялся миф о "windows-изобилии" или, если угодно,

В чем причина "бессмертия" Windows?

Детальный анализ лежит за рамками данной статьи. Остановимся лишь на одной из главных составляющих: хоть и неполной, но реальной бинарной совместимости приложений с несколькими поколениями ОС в течение более чем 20 лет.

Для прикладных программ это свойство не является критичным. В самом деле, кто сейчас пользуется "Лексиконом", хоть он был и хорош в свое время?

Другое дело - игры. Авторы до сих пор не прочь, отдыхая от работы, запустить что-нибудь 10-15-летней давности. Ностальгия.

До недавнего времени подобное положение дел позволяло Windows (и соответственно Microsoft) смотреть на конкурентов свысока. Кто бы что ни говорил, но машины других архитектур, сохранив название имеют мало общего с предшественниками. Достаточно вспомнить историю Apple.(Хотелось бы посмотреть на того мужика, который с гордым видом ходил на первом из Комтеков с плакатом "Хорошую вещь писюком не назовут".)

Конец "прекрасной" эпохи

Однако сегодня ситуация начинает меняться. Производительность сегодняшних компьютеров такова, что львиная доля ПО, частичную совместимость с которым обеспечивает платформа wintel (Windows + процессоры Intel x86), может выполнятся в режиме "чистой" эмуляции на любом железе, под какой угодно ОС. Без потерь в скорости от эталона и с куда более высокими качеством и стабильностью.

Например, получить звук в DOS играх под WinXP можно только в эмуляторе. Да, обратной совместимости от MS достаточно, чтобы ограничится лишь эмуляцией собственно звука и защищенного режима DOS (программа vdmsound). Однако, качество исполнения самого кода оставляет желать лучшего. Незначительных отличий, реализованных в современных x86, оказалось достаточно, чтобы старые программы, написанные на Pascal вываливались с "ошибкой 200". Полная же эмуляция таких проблем не имеет.

Таким образом, очевидно, что обеспечение совместимости посредством внешнего эмулятора куда преспективнее, чем реализация таковой на уровне самой ОС с добавлением в последнюю ненужного многим, нестабильного уровня совместимости. Более того, модель обратной совместимости Windows лишает ОС переносимости, а производителей железа возможности маневра. Трансляция же на уровне процесорного кода, а-ля Crusoe, которую недавно анонсировал Intel - громоздкая полумера, грозящая новыми проблемами в области совместимости.

Смена вех

Эмуляторы существенно влияют на рынок. Ими поддерживается гораздо больше ПО, чем (хоть как-то) средствами Windows.

Если году в девяносто пятом лишь предпринимались робкие попытки запустить под DOS игрушки от приставки NES (Dendy), то сейчас эму-сообщество достигло впечатляющих успехов. За прошедшие годы мы не раз становились свидетелями того, как качественная эмуляция игровых систем достигалась на самом пике коммерческого успеха последних.

Приставки Sony Playstation и Nintendo 64, игровые автоматы Impact, карманные консоли Game Boy Advance - игры для всех этих платформ становились доступными пользователям PC практически синхронно с официальным релизом. Естественно, производители игрового обрудования не были в восторге от таких событий. И Sony и Nintendo обращались в суд, обе безрезультатно.

Сейчас они с куда большим интересом рассматривают неожиданно возникший рынок. Возможно, после того как в 1999 году фирма Apple выпустила свой первый i-Mac в комплекте с эмулятором Sony PS. В результате, покупатели новинки, не имеющей собственных игр, сразу стали обладателями сотен титлов для Playstation, совершенно легально.

Впрочем вопросы легальности мы рассмотрим чуть ниже, а сейчас вернемся к эмуляторам.

MAME

Увы, железо не код и не подлежит клонированию в неограниченных количествах. "Не дать исчезнуть и забыться" стало девизом команды разработчиков мультиситемного эмулятора MAME (Multi Arcade Machine Emulator). Этот проект с открытым исходным кодом стартовал в 1997 году с целью создания программы, эмулирующей железо игровых автоматов (Arcade).

Цель MAME - сохранение "на века" игровых программ, аппаратура для которых физически исчезает с течением времени. В настоящий момент MAME поддерживает более 5000 игр для машин с конца семидесятых до текущего момента.

Создавать такой проект с закрытым кодом было бы абсурдом. Более того, портирование программы под новые платформы всячески поощряется.

...И другие

MAME далеко не единственный и не всегда достаточный вариант. Во-первых, акцент сделан именно на автоматы. Во-вторых, далеко не все игры работают с нормальной скоростью на современных машинах.

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

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

Даже игры с изначальным разрешением порядка 320x240 с легкостью маштабируются до 1280x1024 на 19" ЖК-монитор. Полигональная же графика современных 3D игр вообще обретает новый "движок" и выглядит на порядок качественней.

В настоящий момент большинство популярных консолей, кроме новейших Xbox и подобных им, эмулированы вполне полно.

Следует отметить и удобство пользования.

Как вам кнопка "Play" на панели задач? Вставили диск, нажали... Даже абсолютно неподготовленный пользователь в силах купить в магазине диск для известной ему системы (скажем, Sony - нетрудно запомнить) и нажать такую кнопку. Ни в какое сравнение с нехваткой места для инсталляции, и прочими "плясками с бубном" такое элегантное решение не идет. Проще только настоящая приставка.

Те, кто коллекционирует игры на жестком диске, тоже жаловаться не станут. Многие эмуляторы содержат пронумерованную базу названий, что значительно облегчает запуск игр. Единым стандартом для компрессии является zip, с которым, благодаря открытой кроссплатформенной библиотеке zlib, могут работать практически все эмуляторы...

Читатель уже, наверняка, задался вопросом:

А при чем здесь Линукс?

Впрочем, внимательный читатель уже все понял.

Да, та же самая аппаратная независимость, та же независимость от платформ. Другими словами, идеология эмуляторов абсолютно совпадает с идеологией Linux.

И здесь мы подошли к ключевому моменту ответа на вопрос, почему линуксоиды имеют больше возможностей, нежели приверженцы Windows.

У внимательного читателя уже давно вертится на языке вопрос: коль скоро эмуляторы не привязаны ни к чему, то что мешает использовать их в тех же Windows? Вот она-то и мешает - идеология. Редкий "подоконник", если только он не поработал в MS-DOS, а еще лучше - с предшественниками домашнего PC типа Spectrum или БК - будет возиться с эмуляторами.

Технология Plug&Play, которая, в свое время, способствовала продвижению ПК в массы, на определенном этапе повернулась негативной стороной. Она практически снивелировала пользователя до уровня потребителя, превратив компьютер в электробытовой прибор, мало чем отличающийся от телевизора или видеомагнитофона. Самое сложное, что сегодня требуется от пользователя Windows, это "умение" вставить нужный диск в соответствующий привод.

Здесь, думается, уместно будет представить некий автомобиль, который целиком и полностью управляется "бортовым компьютером". Да, такой автомобиль будет четко держать дистанцию, не станет разворачиваться через "две сплошные" и вообще откажется ехать, пока вы не пристегнетесь ремнем безопасности... Да, он повезет вас оптимальным маршрутом (точнее, тем, который он сочтет оптимальным). Да, возможно, количество ДТП значительно снизится... Только... захотите ли вы стать собакой, которой вертит хвост?

А ведь, по сути, именно это предлагает пользователям Microsoft в новой версии своей ОС - Windows Vista.

Конечно, жить "чужим умом" легко (в том смысле, что ответственность "на дяде"). Однако жить "чужим умом" весьма трудно, поскольку все шишки сыпятся, в первую очередь, на вас.

А теперь о главном -

О законе.

Эмуляция сама по себе абсолютно законна. Проблема в защищенном авторскими правами коде: файлах игр, BIOS и.т.д. И здесь все очень неоднозначно.

Скажем так: никаких препятствий стать законным обладателем игр в эмуляторе нет, но так поступит далеко не всякий. Как не всякий устанавливает КОРОБОЧНЫЕ игры в ЛИЦЕНЗИОННУЮ Windows.

Международное законодательство вполне определенно описывает эту ситуацию: если вы являетесь обладателем любого ЛЕГАЛЬНОГО носителя, то имеете право сделать его копию. Т.е. имея брелок для ключей, сделанный из микросхемы BIOS от Sony Playstation вы уже можете отправляться в магазин за лицензионными играми. А имея плату для автомата - играть в MAME на абсолютно законных основаниях. К слову сказать, разработчики MAME, люди зачастую далеко не бедные, добавляют новые игры именно со свежекупленных на каком нибудь e-Bay платах.

Так что, пока Еврокомиссия не ввела запрет (а судя по последним решениям в области ПО, она не скоро созреет для этого), берите, люди, пользуйтесь. Коллекционирование высокотехнологичных "игрушек" - модно и вполне в духе времени. Пользуйтесь.

Коротко об авторах

Константин Литвинов - профессиональный журналист, в 1996-98 гг. сотрудничал с компьютерными изданиями "Computerworld-Russia", "Компьютер дома", "Компьютер и мы". С 1997 г. по сегодняшний день сотрудничает как автор с компьютерным журналом "Мир ПК". E-mail konstantin.litvinov@gmail.com

Георгий Корсаков - компьютерщик, с 2002 г. по сегодняшний день сотрудничает как автор с компьютерным журналом "Мир ПК". E-mail george.korsakov@gmail.com

Некоторые эмуляторы популярных систем для Linux

ЭмуляторМодель распространенияПереносимостьКомментарии
XMAME - UNIX версия многосистемного эмулятора MAME
http://x.mame.net/
Open SourceДаОфициальная версия MAME. Более 5000 игр в базе.
Advance MAME - Неофициальная версия с множеством улучшений графики и оптимизацией.
http://advancemame.sourceforge.net
Open Source Да На сайте разработчиков есть также удобный fronend - Advance Menu
RAINE - эмулятор автоматов на базе процессора Motorola 68xx, таких как Capcom CPS1 & 2.
http://www.rainemu.com/
Open Source Нет, NASM Скорость гораздо выше чем у MAME. В настоящий момент к разработке подключился HAZE - разработчик MAME. Добавлены новые игры.
XE - Многосистемный эмулятор. Поддержка Neo-Geo, Megadrive, PCEngine, NES(Dendy), Game Boy и других консолей.
http://www.xe-emulator.com
Программа бесплатна. Код закрыт. x86 бинарники Отличные скорость и совместимость.
EPSXE - Самый известный эмулятор Sony Playstation.
http://www.epsxe.com/
Программа бесплатна. Код закрыт. x86 бинарники Совместимость практически 100%.
PCSX - Практически полный аналог предыдущей программы, но с открытыми исходниками.
http://www.pcsx.net/
Open Source Да. Помимо отличной совместимости и открытых исходников, привлекает наличием собственного HLE BIOS`а, что позволяет во многих случаях не применять оригинальный BIOS от Playstation.
ZINC - Эмулятор систем ZN1, ZN2 и подобных.
http://www.emuhype.com/
Программа бесплатна. Код закрыт. x86 бинарники Наследник легендарного эмулятора Impact. В базе 71 игра. Скорость гораздо выше чем у MAME - некоторые 3D игры вполне работоспособны даже на PIII/GeForce2.
PCSX2 - Эмулятор Sony PS2
http://www.pcsx2.net/
Open Source Да. Разработка довольно быстро продвигается, версия 0.8 выдавала до 15 FPS на Athlon 64 в некоторых играх.
Mupen 64 - Эмулятор Nintendo 64.
http://mupen64.emulation64.com/
Open Source Да. Отличные скорость и совместимость. Некоторые плагины, такие как Rice Video существуют только в бинарном виде.
GnGeo. Эмулятор Neo-Geo.
http://m.peponas.free.fr/gngeo/
Open Source Да. NASM как опция. Скорость гораздо выше чем у MAME. Много настроек и графических фильтров.
ZSNES - самый толковый эмулятор Super Nintendo.
www.zsnes.com
http://www.ipherswipsite.com/zsnes/
Open Source Нет, NASM Много настроек и графических фильтров. Отличная совместимость.
Gens - эмулятор Megadrive/Mega CD/32x
http://sourceforge.net/projects/gens/
Open Source Нет, NASM Отличные скорость и совместимость.
Cedega CVS - Бесплатная версия эмулятора API Windows и DirectX для запуска Win игр.
www.transgaming.org
Open Source Нет, игры - бинарники для win x86. В последней версии значительно улучшена совместимость. Игры для DirectX 9 работают без ощутимых потерь в скорости.
DOSBox - эмулятор PC с DOS. С поддержкой звука и джойстиков.
dosbox.sf.net
Open Source Да В последней версии улучшена совместимость с DPMI. На мощных машинах работают даже такие "тяжелые" игры, как Syndicate Wars.
QEMU - Быстрый эмулятор x86, PPC, ARM и SPARC с открытым исходным кодом.
http://fabrice.bellard.free.fr/qemu/
Open Source Да Позволяет, к примеру, запускать windows на хостах Linux x86 и Linux PPC. Самый быстрый из открытых эмуляторов PC. Помимо этого, существует модуль Accelerator - добавляющий функции виртуализации.

Полезные ссылки:

[ опубликовано 09/11/2005 ]

Константин Литвинов, Георгий Корсаков - Сыграем, Пингвин?   Версия для печати