Linux. Небольшой обзор эмуляторов
Сегодня речь пойдет про эмуляцию старых компьютеров. Почему и нафига это все?
По моему глубокому убеждению usability компьютерных программ, а в
особенности игровых, не связана напрямую с разрешением графики, fps или
мега(гига)герцами CPU. Несмотря на обилие и разнообразие игр сегодня
хочется заметить, что демонстрируя всю свою навороченность и реалистичность
графики, многие современные игры утратили нечто такое, что было в
старых 2D квестах и аркадах. И если у кого-то из вас пылится в шкафу
самодельный ZX Spectrum или старенькая "Амига", то эта статья для вас.
ZX Spectrum
Думаю что не ошибусь, если скажу, что это самый массовый компьютер в России начала 90x
прошлого (теперь уже) века. Количество самодельных клонов и вариантов
просто огромно. Несмотря ни на что эта платформа жива и сегодня, хотя
и нет на ней прежней
активности. На сегодняшний день существует несколько тысяч игровых
программ для ZX Spectrum, практически все более или менее стоящее
адаптировано под дисковую систему TR-DOS.
Если для Win32 существует довольно много качественных эмуляторов, то в
Linux с этим сложнее. Я сразу отбрасываю программы, которые не умеют
эмулировать TR-DOS или музыкальный процессор AY 8910/12 или
эмулируюшие только 48K модель ZX.
Из программ, отвечающих таким требованиям, мне известны только две:
Первая программа всем хороша, но автор в силу каких-то своих убеждений
включил поддержку TR-DOS только в платной версии и зачем-то исковеркал
исходники того что можно скачать бесплатно. Поэтому я расскажу про
установку второй программы.
Несмотря на свое название все довольно неплохо, вот краткий feature
список:
- Поддержка 48/128K, "Пентагон"
- Лента (.TAP/.TZX), Beta Disk (.TRD/.SCL), snapshots (.Z80)
- Поддержка звука как 48K, так и AY-8910/12
Установка
Для сборки потребуются библиотеки OSF/Motif(R). Неплохо если уже установлен
LessTif, если нет, то я
рекомендую сразу использовать Open
Motif, тем более, что он наверняка пригодится при сборке других
программ. Скачиваем
отсюда или
отсюда
(в полях формы регистрации можно ничего не
вводить) исходники (~5M), компилим, ставим. Далее разбираемся в
глюкалкой. Для того, чтобы 'Super_L' кнопка (обычно это левая win)
была замаплена на Kempston fire,
применяем вот этот
патч. Далее:
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
Довольно точная эмуляция Commodore
Amiga 500/1000/2000. Поддерживает образы floppy - .ADF и .ADZ (.ADF,
сжатые gzip'ом).
GUI написан на GTK+ 1.2 (2.0 в версии 0.8.24). Для нормальной работы
нужен P4 >= 1Ghz.
Скачиваем,
распаковываем, далее как обычно:
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 получился
примерно такого содержания.
Есть
статья,
где работа в настройками разжевана более подробно.
Вот так у меня выглядит амижная версия игры Dizzy2. Как вам графика по
сравнению с ZX Spectum ;-)
Смею уверить, что музыка тоже не оставит равнодушным.
|
|
Старый добрый 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 -writeconf dosbox.conf
, который потом
нужно как минимум просмотреть и отредактировать нужные части.
И вот Prince вновь бродит по подземельям.
|
|
|
LBA - Little Big Adventure. Красивейший квест со множеством непростых загадок.
|
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. Но умелых и настойчивых отправляю
к eDonkey
eMule
, много ROMs
можно легко найти используя слово 'mame' для поиска.
Образы 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.
Вот спецификация Сеги:
CPUs:
2 x 68000 10MHz
Z80 4 MHz
8751 8MHz
Музыка:
YM2203 4MHz
Все выводится в разрешении 304x224x60Hz
|
|
|
Bonus stage - это когда можно летать на драконе, сметая все подряд ;)
|
Ну и в заключение несколько ссылок
- trd.speccy.cz
Много софта и игр для ZX Spectrum, TR-DOS версии. На русском языке.
- www.worldofspectrum.org
"Официальный" ZX Spectrum архив.
В кавычках, так как я бы его лучше назвал "Мега-" ;)) (а если
серьезно - никак не пойму, откуда такое словечко "официальный"). Будьте
осторожны с FTP - при большом трафике сервер банит и выставляет IP
напоказ на некоей cgi страничке. Маразм!
- www.amiga.org
Commodore Amiga. Море инфы и ссылок.
- www.back2roots.org
Много игр в виде .ADF/.ADZ для Commodore Amiga.
- www.dosgamesarchive.com
Архив игр для MS-DOS.
Успехов!
Tags: linux emulators amiga zx spectrum sega
Назад в оглавление
|