|
Linux. Небольшой обзор эмуляторов
Сегодня речь пойдет про эмуляцию старых компьютеров. Почему и нафига это все? По моему глубокому убеждению usability компьютерных программ, а в особенности игровых, не связана напрямую с разрешением графики, fps или мега(гига)герцами CPU. Несмотря на обилие и разнообразие игр сегодня хочется заметить, что демонстрируя всю свою навороченность и реалистичность графики, многие современные игры утратили нечто такое, что было в старых 2D квестах и аркадах. И если у кого-то из вас пылится в шкафу самодельный ZX Spectrum или старенькая "Амига", то эта статья для вас.
ZX Spectrum
Если для Win32 существует довольно много качественных эмуляторов, то в
Linux с этим сложнее. Я сразу отбрасываю программы, которые не умеют
эмулировать TR-DOS или музыкальный процессор AY 8910/12 или
эмулируюшие только 48K модель ZX.
Первая программа всем хороша, но автор в силу каких-то своих убеждений включил поддержку TR-DOS только в платной версии и зачем-то исковеркал исходники того что можно скачать бесплатно. Поэтому я расскажу про установку второй программы. Несмотря на свое название все довольно неплохо, вот краткий feature список:
Установка glukalka# ./configure glukalka# make'make install' не предусмотрен, поэтому просто копируем все например в '/usr/local/glukalka': glukalka# mkdir -p /usr/local/glukalka glukalka# cp -a ./* /usr/local/glukalkaЗапускать нужно из домашней директории (cd /usr/local/glukalka; ./glukalka). Если все прошло успешно, то открываем наш любимый .TRD, выбираем в конфигурации 'Pentagon' и жмем 'Reset' (левая пиктограмма в меню).
Commodore Amiga
Эта платформа довольно мало известна в России. Высокая стоимость, невозможность заменить оригинальные микросхемы другими аналогичными, не способствовали популярности. А жаль! Для своего времени в компьютерах Commodore Amiga было применено много новаторских идей. Звуковой процессор, графический сопроцессор, аппаратно работающий со спрайтами (столкновения обсчитываются аппаратно!) и другие решения позволяли на CPU с десятком мегагерц получить великолепную плавную графику в сочетании с качественной музыкой. Даже если Amiga не попала в поле вашего внимания, я очень рекомендую взглянуть на старые добрые игры, запущенные в амижном эмуляторе. До недавнего времени качественной эмуляции этого компьютера не было. Причина в том, что для полной эмуляции всех чипов требуются значительные вычислительные ресурсы, которые стали доступны совсем недавно.
UAE - Unix Amiga Emulator uae-0.8.22# ./configure --prefix=/usr/local/uae uae-0.8.22# make && make installДля запуска необходимы образы ROM оригинальной машинки. Эти файлы не включены в архив по соображениям копирайта, поэтому кликаем здесь и выкачваем с любого сайта. Редактируем .uaerc файл и набираем 'uae'. Далее выбираем kickstart rom 1.3, именно он подходит для большинства программ, выбираем образ диска и отжимаем кнопку 'Pause'. Я завел в UAE две директории - 'rom' и 'games', в rom положил все kickstart. Мой .uaerc получился примерно такого содержания. Есть статья, где работа в настройками разжевана более подробно.
Старый добрый MS-DOS
Несмотря на то, что существует множество способов запуска MS-DOS программ в эмуляторах, я хочу обратить ваше внимание на сравнительно недавно появившийся эмулятор с незатейливым названием DOSBox. Почему именно он ведь есть же dosemu или VMware наконец? А дело в том, что довольно много игр хотят поддержку DPMI или доступа к звуковой карте. DPMI работает не лучшим образом в dosemu, а со вторым не очень дружна VMware. Кроме того, нужно иметь дистрибутив DOS, устанавливать ее и разбираться с настройками. DOSBox позволяет запускать большинство программ, написанных под MS-DOS, включая всевозможные DPMI-like расширения, нормально поддерживает звук и кроме того, содержит все компоненты самой ОС, то есть дополнительно устанавливать ничего не потребуется. Скачиваем исходники, далее все как обычно: dosbox-0.63# ./configure dosbox-0.63# make && make installЗапускаем и просим создать конфигурационный файл (сказать из dosbox'а) > config -writecong dosbox.conf, который потом нужно как минимум просмотреть и отредактировать нужные части.
MAME - Multiple Arcade Machine Emulator
Впервые я увидел аркады году так в 89. Какая-то контора, коих в конце славных 80х расплодилось великое множество, установила на Витебском вокзале несколько машин Sega. В основном это были простенькие двухходовые стрелялки, но одна игра очень привлекла мое внимание. Красивейшая 3D графика, сделанная из обыкновенных 2D спрайтов, многоголосая музыка, отличный gameplay. Но главное не это! Скорость, с которой все отрисовывалось, просто поражала воображение. Напомню, что в те времена основной игровой платформой в России был ZX Spectrum, а в IBM PC (8086/88 4..8MHz) устанавливался графичесий адаптер CGA (320x200x2bpp). Позже я видел инкарнации этой игры на различных платформах, даже на том же ZX, но все это было довольно тускло после Сеги. И вот оказывается тема эмуляции аркадных машин живет и процветает! В сети я наткнулся на грандиозный проект такого рода под названием MAME (Multiple Arcade Machine Emulator). Изначально все было написано под DOS/Win32, но теперь доступен UNIX порт - Xmame. Поддерживается эмуляция десятка платформ, что в итоге дает возможность запустить более 2000 игр. Забираем исходники (на сегодняшний день это 0.97 весом примерно 13M), распаковываем. Для вывода на экран Xmame может использовать как X11 (по умолчанию), так и SDL или SVGAlib с 3Dfx. Для X11 делаем так: xmame-0.97# make -f makefile.unix xmame-0.97# make installХочу сказать что компиляция занимает значительное время. GCC 2.95 не подходит (у меня обламывается с signal 9 на одном и том же месте), но я с успехом использовал 3.4.4. Размер ELF бинарника получается 40M (мегабайт!). Если у кого-то не получилось, то тут можно взять зазипованный (8M) для glibc >=2.1.3.
Для запуска потребуются ROM образы игр. Тут есть небольшая
проблема. Все или почти все игры защищены copyright и в связи с этим
не распространяются вместе с Xmame. Но умелых и настойчивых отправляю
к Образы ROM нужно положить в ROM каталог Xmame (/usr/local/share/xmame/roms по умолчанию). Причем там нужно создать директорий, совпадающий с именем игры, куда и распаковать все ROMs из скачанного архива. в случае со Space Harrier к примеру нужно распаковать весь архив в /usr/local/share/xmame/roms/sharrier. Поскольку на аркадах зачастую устанавливалось несколько CPU, то соответственно может быть несколько ROM образов. Xmame знает что и как нужно грузить, поскольку содержит всю необходимую информацию в ELF. Если чего-то непонятно с настройками, то можно сказать 'xmame.x11 -showconfig' чтоб посмотреть текущие. Xmame поддерживает кучу параметров при старте, 'xmame.x11 -help' поможет понять что и как. В нашем случае просто запускаем Space Harrier, набрав > xmame.x11 sharrier -antialias -ef 3 -artwork_scale 2 Пара слов про управление. Да, стрелочки работают и стрелять можно клавишей 'Space', но при старте мы видим сообщение 'Insert coins'. Что делать? Жмем '5', потом '1'. Приостановить игру можно нажав 'P', а 'F12' записывает snapshot в png. Полный список кнопок описан в FAQ на страничках MAME.
Ну и в заключение несколько ссылок
Успехов!
|
| Copyright (c) 1999-2008 Alexey Semenoff |