IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

 IZONE 


Компьютеры, играющие в игры

ViV
viv@ok.ru
 

У каждого человека есть свое маленькое хобби. Одним нравится коллекционировать марки, другие впадают в щенячий восторг при виде красивой пуговицы, кто-то так вообще не может пройти мимо любой, пусть даже самой грязной пепельницы, и не положить ее себе в карман. Хобби бывают разные, приличные и безобразные, с психологической подоплекой и совсем без оной, более-менее постоянные и очень даже сиюминутные. Но для всех увлеченных людей справедливо общее правило: хобби одного человека (группы людей) привлекательно лишь для него самого, и глупо доказывать увлеченному человеку, что розовые крокодилы не летают, а баня 31 декабря – та же пьянка, вдобавок плохо воздействующая на распаренный организм. Не поймет, пошлет и дальше пойдет. У меня тоже есть хобби. И прямо сейчас я буду о нем рассказывать. Речь пойдет об эмуляции. 

Что за зверь на букву "Э"?

Для самых любопытных и скрупулезных сразу же отвечу на главный вопрос: что такое эмулятор и на кой черт он вам сдался. Техническое определение, как и следовало ожидать, представляет собой скучный набор непонятных слов: эмулятор – программа, позволяющая исполнять на компьютере программный код, написанный для другой платформы. Если по-нашему, по-простому, то это такая маленькая программка, притворяющаяся другим компьютером и активно пудрящая мозги всем программам, чтобы они ей поверили и нормально работали. Самый простой пример – DOS-окно в Windows NT. При загрузке DOS -приложения операционная система запускает в выделенной области памяти командный интерпретатор MS-DOS и передает ему управление, после чего все программы думают, будто они работают под обычным DOS. Опять же, переводя на общедоступный язык, эмулятор заменяет собой вышедший из строя Spectrum, сгоревшую еще при жизни прабабушки Амигу или 32-х битную приставку Sony Playstation. И все это богатство достается вам без каких-либо капиталовложений, то есть абсолютно бесплатно. Или если совсем вкратце: "Халява, сэр!".

Написать работающий эмулятор чего-либо проще простого. Совсем другое дело - создать полностью функциональную программу, "пародирующую" какую-нибудь мультимедийную приставку. Почему?

Объясняется все очень просто. Берем машинку с процессором Pentium (семейство 8086) и пытаемся написать эмулятор. Идем туда, где "найдется все", выуживаем описание команд процессора и подыскиваем им аналоги из числа команд Pentium. Если не получается, то заменяем одну команду эмулируемого процессора несколькими командами 8086, делающими то же самое. Каждая команда виртуального процессора может эмулироваться не одной, а двумя-тремя или даже десятью командами 8086. С другой стороны, особенности пентиумной архитектуры, всякие там суперскалярности и мультиконвейерности, значительно повышающие скорость выполнения программы, мы тоже не учли. Но дело даже не в этом. Представьте: первая команда выполняется за один такт, вторая – за четыре, третья заменена целым десятком инструкций; соответственно, и скорость работы виртуального процессора скачет, как паяц на ниточках. Естественно приходится синхронизировать его по времени исполнения самой длинной команды. И тут как раз начинаются проблемы с производительностью.

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

Итак, этап второй: PPU – Picture Processing Unit (графический сопроцессор). Причем один черт знает, с какой стороны к нему подступиться. Возьмем, к примеру, SNES (Super Nintendo) Ведь над его разработкой в течение года трудился целый отдел инженеров. И всяких недокументированных возможностей у него выше крыши. Да и документированные-то реализовать не так уж и просто, ибо какое-либо описание сего куска кремния отсутствует даже в проекте. И известно только, что вот сюда поступают какие-то данные, а на выходе получается картинка. А еще "оно" выводит до 128 спрайтов на экран (от 16 х 16 до 64 х 64), обрабатывает до трех независимых фонов, умеет вращать их по осям Х и Y, масштабировать, сжимать и накладывать на геометрические фигуры. Плюс ко всему каким-то непонятным образом (при своих-то 64 Кб памяти!) отображает до 32 768 различных цветов и оттенков. И вот вы начинаете по крупицам собирать информацию об интересующей вас микросхеме, в течение двух-трех месяцев вникаете, КАК она работает, и испытываете неимоверную радость, добившись лишь того, чтобы на экране появилась одна-единственная точка. Ну и чтобы жизнь медом не казалась, вспомним про звуковой сопроцессор, разработанный фирмой Sony. Это еще один чип, со своей собственной областью памяти и своим набором команд, прозванный знающими людьми "кошмар программиста". А ведь в конце все это надо еще собрать, заставить работать вместе, синхронизировать. И даже если после всех этих действий ваш второй Pentium сможет исполнять команды на 20 % от скорости настоящей SNES, это уже прогресс. Огромный прогресс. Титаническая работа, заслуживающая уважения.

Большая историческая справка

Первые эмуляторы, как уже говорилось, появились в середине 80-х. Первым эмулированным компьютером можно смело провозгласить Spectrum. А вот эмуляция игровых приставок началась сравнительно недавно, году эдак в 93–94. И первой эмулированной приставкой Gameboy, где тоже стоял старый добрый Zilog80.

Все эмуляторы изначально писались программистами-одиночками либо группами кодеров, которых медом не корми – дай только сложную программу написать. В начале 1995 года появились первые игровые ласточки – программки, позволявшие запускать игры для NES (“Денди”) на PC. Информация с картриджей считывалась при помощи специального устройства – копира. Аппарат подключался к компьютеру через параллельный порт и записывал информацию с микросхемы в файл на диске. Эпоха таких вот аппаратов совпала с эпохой бесплатных BBS, и совсем не удивительно, что все ROM (Read-Only memory – тот самый файл с игрой) новых игр можно было скачать на любой крупной BBS станции. Как результат, у программистов была богатая почва для тестирования и отладки своих программ. Собственно, тестировать-то и нечего было, ибо первый работающий эмулятор приставки SNES появился лишь в конце 1996 года.

Пик популярности эмуляция игровых приставок пережила в начале 1997 года. Год прошел под знаком нового NES эмулятора – Nescticle. Это творение неизвестного и таинственного программиста Sardu переваривало 70% всех доступных NES игрушек. В то же время появился первый многофункциональный аркадный эмулятор – MAME, воспроизводящий такие признанные шедевры, как Pac Man, Galaxian, Defender. К слову, на данный момент MAME превратился в настоящего монстра, поддерживающего практически все известные аркадные аппараты. Феномен эмуляции стали замечать, а в некоторых журналах появились краткие заметки о тусовке игроков, коллекционирующих старые игры.

С момента своего рождения и по сей день эмуляция движется по жизни семимильными шагами. И если в 1997 году никто не верил в возможность 100 % эмуляции SNES, довольствуясь глючными и медленными версиями Snes96 и shareware-версией VSMC (представьте себе картинку в 16 градациях желтого), то в 1998-м уже появились полностью функциональные версии эмуляторов для всех восьмибитных платформ. Тогда же материализовались KGEN и Genecyst – две программы, открывшие и тут же закрывшие главу эмуляции Genesis (за каких-то полгода авторам удалось добиться 99% совместимости).

Вместе с популярностью появились и первые серьезные проблемы. Сами посудите: когда маленькая кучка личностей коллекционирует нелицензионные копии видеоигр с тем, чтобы потом помучиться с ними на глючных программах ради самого процесса – это незаконно, но компании – держатели авторских прав не сильно страдают от такого “пиратства”. Другое дело программы, полностью заменяющие собой приставку, плюс миллионы пользователей, учуявших сладкий вкус халявы и рыскающих по интернету в поисках пиратских ROM. Это уже ни в какие ворота не лезет. Последней каплей, переполнившей чашу терпения антипиратских организаций, стали участившиеся случаи продажи целых сборников на компакт-дисках. Заботливые люди пихали туда же и последние версии эмуляторов, тем самым ставя их на одну ступень с пиратским софтом. Начались гонения на сайты, распространяющие ROM, и какое-то время найти в интернете хотя бы один сервер с видеоиграми было достаточно проблематичным. Меч правосудия задел и авторов отдельных эмуляторов – несколько проектов было полностью прикрыто. Затем накал спал, а шум вокруг эмуляции на время утих.

Следующим значительным потрясением в истории эмуляции стало появление программы (причем даже не программы, а целого направления) Ultra-HLE (Ultra-High Level Emulator). Программа в буквальном смысле этого слова опередила свое время, предоставив всем желающим возможность запускать на PC игры, написанные под новейшую 64-битную консоль Nintendo 64. И все благодаря новаторскому подходу авторов. Все существовавшие ранее эмуляторы честно претворялись необходимым куском железа, интерпретируя все его запросы. Вспомните пример со Спектрумом, и попытайтесь представить, какая машина потребуется для эмулятора N64 (тактовая частота 90 МГц). В ближайшие года два таких компьютеров еще не придумают. Однако программисты по натуре своей существа хрупкие и консервативные. И игрушки предпочитают писать исключительно на C++. А С++ - он и в Африке с двумя плюсами. Так зачем же эмулировать все внутренности приставки, когда можно попытаться перехватывать целые куски высокоуровневого кода и подменять их другими кусками, выполняющими те же сами функции. Результат налицо – эмулятор 64-х битной приставки со свистом работает на 300-ом целероне!

И снова "любители старых игр" оказалась в центре внимания – пожалуй, ни один крупный игровой сайт не обошел стороной этот эпический момент. Да еще к тому времени стали появляться первые коммерческие легальные эмуляторы. Самый известный - Bleem!, при цене в $30 с успехом заменявший приставку за $120. Sony, конечно, приличия ради посудилась с разработчиками Bleem, но потерпела полное фиаско.

Последний год миллениума тоже принес немало сюрпризов. Все 8-ми и 16-ти битные приставки получили свое второе рождение на платформе PC. Выбились в люди и достигли приемлемой совместимости два эмулятора Sony Playstation. Долгое время держалась Sega Saturn, но и ее в конце концов тоже "посчитали". Игрушки для Nintendo 64 выглядят на экранах мониторов лучше, чем в телевизоре. И даже для Dreamcast существуют два-три "эмулятора" с претенциозными названиями (к сожалению, все три – обыкновенные трояны или вирусы). Веселая получается ситуация! Приставки превращаются в мультимедийные бытовые компьютеры, с возможностью выхода в интернет и всем остальным, а компьютеры заменяют собой все приставки вместе взятые. Попробуй теперь разберись, что именно тебе нужно.

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

http://www.retrogames.com/  – один из старейших новостных сайтов. Здесь всегда можно узнать о выходе новых версий любого эмулятора, почитать новости о разработке новых консолей и даже обзорные аналитические материалы. Пожалуй, на данный момент – лучший новостной сайт.

http://www.zophar.net/  – весьма популярный сайт среди фанатов эмуляции. Есть разделы, посвященные различным системам, причем можно найти информацию практически о любой существующей приставке. Очень богатая коллекция ссылок, в том числе и на сайты с ROM. Сайт постоянно дополняется и обновляется.

http://www.davesvgc.com/  – когда-то здесь был самый большой архив аркадных ROM. После очередной волны охоты на такие сайты владельцу пришлось снять все игры и даже съехать на другой домен. Тем не менее, это довольно-таки интересный сайт.

geoshock.dhs.org – очень интересный сайт, посвященный эмуляции Neo-Geo. Здесь вы также можете скачать ROM практически всех игр, выпущенных на данной платформе. В силу специфики маркетинговой политики распространения NEO-GEO SNK не имеет ничего против этого сервера.

http://www.back2theroots.net/ – все для Амиги. Эмуляторы, демки, программы, музыка и многое другое. Есть даже подборка журналов и всяческая графическая информация по теме. Кусочек истории одного "очень умного компьютера".

http://www.mame.net/ – сайт самого известного аркадного эмулятора. Полное техническое описание, грамотный help и, что немаловажно - список всех поддерживаемых игр. Несколько вариантов документации на разных языках.

http://www.emulation.zone.ru/ – всем тем, кто не умеет читать по-английски, посвящается. Но отнюдь не рекомендуется. Неплохая коллекция игр и большая подборка самих эмуляторов. Больше никаких достоинств замечено не было. И это отнюдь не самый плохой российский сайт по этой теме.

Да и поисковики, естественно, никто не отменял. Магическое словосочетание: "Emulation + videogames".

Источник: http://www.computery.ru/upgrade/

 


Copyright © "Internet Zone"info@izcity.com
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/. При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас.