Найти в Дзене
Дюк Юсупов

Софт для Linux: Эмуляторы. Часть 2

Оглавление

Эта статья из цикла "Линукс обычного пользователя". Продолжаем тему, начатую в предыдущей части.

DOSBox

И ещё один замечательный "недоэмулятор" для запуска программ, но уже не для Windows, а для MS DOS. Он, кстати, есть также как и Wine в версии для Windows, потому что в современных версиях Windows (ну практически всё что старше XP) запустить программы (а особенно игры) для MS DOS весьма непростая задача и режим совместимости помогает не особо. Для тех же целей можно было бы использовать и Wine, но если нужна только одна-две программы для DOS, то это как стрелять из пушки по воробьям.

Установить DOSBox в Linux Mint можно из менеджера программ:

-2

Настроить DOSBox можно только с помощью редактирования конфигурационного файла, который хранится в скрытом каталоге .dosbox в пользовательской папке:

-3

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

[autoexec]
Lines in this section will be run at startup.
You can put your MOUNT lines here.
mount c /home/duke/DOSBOX

Обычно там одна команда, которая монтирует для DOSBox один из каталогов файловой системы Linux, как один из дисков MS DOS (Диск C). Подобным образом можно смонтировать и другие диски, в том числе и диск A (дисковод иногда бывает нужен каким-то программам). Ну и можно сюда же записать другие команды, например, запуска файлового менеджера, чтобы не работать в командной строке после запуска приложения DOSBox. Я, например, рекомендую свой любимый DOS Navigator (также можно и Norton Commander использовать, если он вам больше нравится). Только для этого надо скачать его именно для DOS, а не версию для Windows. Поэтому качаем версию 1.51, распаковываем её в папку DN в каталог DOSBOX пользовательского каталога (который монтируется в диск C). После этого можно будет в конфигурационный файл DOSBox добавить новую строчку в конец файла:

[autoexec]
Lines in this section will be run at startup.
You can put your MOUNT lines here.
mount c /home/duke/DOSBOX
c:\DN\dn.com

И после запуска DOSBox у нас сразу загрузится наш любимый файловый менеджер:

-4

Ну и можно использовать DOSBox для запуска всякого разного ПО, в том числе и старых DOS-игр. Вот, например, моя любимая стратегия Settlers II запущена в окне DOSBox (на полный экран можно развернуть с помощью комбинации Alt-Enter):

-5

Я недавно писал статью про выпуск юбилейной версии этой игры 1997 года с возможностью поиграть в современных версиях Windows, но можно и через DOSBox насладиться этой же игрой. Крайне рекомендую всем любителям стратегий, на мой взгляд, она практически идеальна.

Виртуальные машины: VirtualBox

И вот "реальный" эмулятор: настоящая виртуальная машина от Oracle (куплена вместе с Sun, а та в свою очередь до этого купила Innotek, которые воспользовались исходным кодом Qemu). Несмотря на все смены владельца ПО остаётся свободным ПО, но использует проприетарную (закрытую) часть ПО, устанавливаемую в качестве расширения.

Сама по себе технология виртуальной машины (VM) позволяет иметь полностью отдельную "песочницу" с любой поддерживаемой операционной системой, связанной с исходной операционной системой только самим приложением для исполнения этой виртуальной машины. Плюс - ещё файл (виртуальный диск) для хранения данных виртуальной машины, который может лежать в любой подмонтированной папке. Подход явно отличается от подхода Wine, поскольку тут полностью эмулируется работа всей операционной системы (причём не только Windows), включая эмуляцию дисковой системы (у Wine используются каталоги самой же операционной системы). Но и заплатить за это придётся дороже: виртуальные диски с установленными полноценными ОС съедают гораздо больше места, чем "песочница" Wine (1 Гб). А также и эмуляция всего и вся тоже требует значительно больших ресурсов ПК, чем недоэмуляция Wine. Зато если у вас мощный комп, можно не задумываясь об этих потерях, запускать с помощью виртуальных машин любое требуемое вам ПО, не обращая внимания на то, под какую систему оно написано. VirtualBox даже позволяет эмулировать 64-битные системы под 32-битной ОС (но с 6-й версии отключена возможность установки VirtualBox на 32-битную систему). Требуется, конечно, поддержка процессором технологии виртуализации (VT-x), но сейчас она есть у всех актуальных моделей (а если у вас вдруг её нет - то это повод либо заглянуть в BIOS и включить её, либо поменять процессор). Причём с 6-й версии вообще отключили возможность запускать виртуальные машины на процессорах без аппаратной виртуализации, поэтому на своём тестовом стенде с Core 2 Duo я хоть и могу установить свеженький VirtualBox, но работать на нём сможет только 5-я версия.

Дополнительные (но не обязательные) закрытые расширения позволяют работать с USB-устройствами, подключенными к основной ОС (вот это бывает необходимо), и, что не очень актуально для домашнего ПК, работать с запущенной виртуальной машиной через удалённый рабочий стол (RDP) и использовать Intel PXE для загрузки ОС по сети.

Установка VM VirtualBox в Linux Mint вполне обычна и возможна прямо из менеджера программ, однако в этом случае в Linux Mint 19 мы получим устаревший VirtualBox версии 5.2.3 (но для процессоров без аппаратной виртуализации это актуальная версия). А вот если мы хотим получить свежую версию (на данный момент - 6-ю), то для установки нам сначала потребуется скачать ключи по этому адресу: https://www.virtualbox.org/download/oracle_vbox_2016.asc, установить их либо с помощью команды sudo apt-key add oracle_vbox_2016.asc, либо с помощью импорта ключей для источников приложений Synaptic:

-6

Потом добавить следующую строчку deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian <mydist> contrib (источник для VirtualBox) в дополнительные репозитории:

Где вместо <mydist> для Linux Mint 19 надо указать bionic.

Ну и после этого осталось обновить кэш приложений с помощью команды sudo apt-get update и установить ПО с помощью команды sudo apt-get install virtualbox-6.1 или проделать это всё с помощью того же Synaptic:

-8

После этого мы получаем следующее окно:

-9

И можем приступать к добавлению новых виртуальных машин:

Потом можно поменять настройки созданной виртуальной машины:

И вот запущенный ReactOS:

-12

Можно установить и многочисленные варианты Windows, и весь софт написанный для Windows скорее всего будет работать отлично, я, по крайней мере, с проблемами не сталкивался. Очень удобно держать несколько виртуальных машин для разных нужд. Например, у меня есть специальная виртуальная машина для текущей разработки под .NET, в которой установлена последняя версия Visual Studio Community и сервера СУБД MySQL. Мне не очень нравится, когда основная домашняя ОС забита специальным ПО, которое используется для других целей, поэтому у меня есть несколько виртуальных машин, каждая из которых настроена под конкретную конфигурацию проекта.

Но вот использовать VM VirtualBox для игр - это, скажем так, не лучшая идея. Несмотря на то, что появилась экспериментальная поддержка 3D-ускорения, однако DirectX работает фактически на коде Wine, поэтому смысла ставить виртуальную систему с ОС Windows, чтобы поиграть в игру, попросту нет - проще использовать Wine или его форки.

Для виртуализации в Linux можно использовать и другие программные продукты, тот же Qemu, или KVM, или даже платный вариант: VMWare (а вот Parallels Workstation приказал долго жить...). Но для дома вполне достаточно VM VirtualBox, а поскольку его я в основном и использую, то и пишу, про то что знаю и могу рекомендовать.

Эмуляторы ZX Spectrum

Поскольку первым компьютером у меня был Pentagon 128, один из многочисленных клонов ZX Spectrum'а, и я практически вырос на играх для него и с помощью него научился программировать на бейсике и ассемблере, я не могу обойти тему эмулирования этого замечательного ПК. Поэтому посмотрим, что нам может предложить Linux для запуска ПО, написанного для ZX Spectrum.

Фактически, под Linux есть только один актуальный и всё ещё развивающийся эмулятор ZX Spectrum - это FUSE (Free Unix Spectrum Emulator). Причём это вообще один из лучших эмуляторов XZ Spectrum, и я его использую и под Windows. Установить его в Linux Mint 19 проще всего из его менеджера программ, но выбрать лучше SDL-версию:

-13

GTK-версия, конечно же, выглядит привычнее (есть главное меню, а вот в SDL-версии меню надо вызывать кнопкой F1), но обладает одним огромным недостатком - в ней пока невозможно переключить изображение на полный экран. А вот в SDL-версии такой переключатель появился и как раз в доступной версии в менеджере программ (1.5.1). Самая актуальная версия 1.5.7, но установить её можно только либо с помощью компиляции исходных кодов, либо с помощью ручного скачивания пакетов для Debian: для ветки buster надо будет скачать и установить пакеты libspectrum8, fuse-emulator-common, fuse-emulator-sdl и spectrum-roms. Особой разницы с 1.5.1 я особо не заметил, исправления скорее касаются мелких багов и доработок.

И вот запущенный эмулятор:

-14

По этому скриншоту видно, что эмулятор поддерживает и кассеты и дискеты, но это подразумевает только эмуляцию этих устройств, т.е. чтение данных из соответствующих файлов (TAP и TZX для кассет, TRD, SCL, FDI - для дискет, плюс поддержка снепшотов Z80, SNA - мгновенных снимков памяти). Это, безусловно, удобнее чем запускать магнитофон и дожидаться загрузки программы, и даже удобнее дискеты, которая может выйти из строя, но просто так прочитать реальные кассеты и дискеты, которые могли сохраниться за прошедшие 30 лет с помощью эмуляторов не удастся.

Зато есть возможность скачать кучу игр и программ из интернета (а вот в 90-е такой возможности не было...). Есть, например, зарубежный сайт World of Spectrum, на котором просто уйма всего для ZX Spectrum, а есть и российские сайты-сборники, например, ZX Spectrum Old Demos, с которого можно выкачать просто огромное количество всякого добра, хватило бы только времени всё это разобрать. Преимущество отечественных сайтов, конечно же, в том, что там, во-первых, представлены и российские разработки под ZX Spectrum, а, во-вторых, можно найти то, что на западе до сих пор запрещено распространять бесплатно.

Если вышеприведённый скриншот вас смутит своим размером, то могу уверить, что это реальные 256 на 192 точки, которые будучи растянутыми на весь экран телевизора были максимумом того, что в качестве ПК было доступно обычному гражданину в начале 90-х. В эмуляторе же с этим проще, в FUSE есть много режимов, с помощью которых можно выбрать размер и качество изображения:

Варианты с имитацией ТВ-изображения - это, конечно, для настоящих тру-спектрумистов, которые всё детство и юность провели за экранами телевизоров, к которым были подключены их спектрумы. Изображение же без сглаживания даёт идеальную картинку, которой она должна была бы быть, если бы лет 30-40 назад её можно было бы вывести на современные ЖК-мониторы или телевизоры по цифровому кабелю. Использование сглаживания даёт более гладкую картинку, на которой меньше заметны пиксели, но главное с этим не переборщить. Мне в FUSE больше нравится вариант AdvMAME, чем HQ.

Ну и собственно вопрос - зачем же всё это надо? Конечно же - для того чтобы играть в те игры, на которые и в молодости потратил многие часы. Для того, чтобы опять проходить те самые хиты 80-х и 90-х, ну и играть в современные игры для Спектрума - и такие тоже есть, да-да!

Вот, например, Last Battle 1995 года выпуска:

На мой взгляд, это лучшая пошаговая стратегия для ZX Spectruma, созданная разработчиками из России. Графика (и особенно меню), конечно, смотрится уже слабовато для середины 90-х и навевает воспоминания о Laser Squad, но геймплей затягивающий: оторваться от очередной попытки рассеять "туман войны" и захватить мир невозможно. Я и сейчас иногда поигрываю в неё, действительно - не в графике счастье.

Или вот - игра, образца 1991 года, пошаговая RPG-like игра Hero Quest:

Отличная и тоже затягивающая игра про приключения отряда варвара, эльфа, гнома и мага в подземельях и поисках приключений на свою... голову. Играется довольно быстро, но уровней в двух частях аж 24, так что не один вечер придётся потратить.

И я уж молчу про многочисленные Dizzy и подобные им игры (например, "48 утюгов" - однозначно играть всем любителям подобного жанра). Квест "Звёздное наследие", тактическая стратегия "Space Crusade", древняя, но захватывающая стратегия Nether Earth... И из нового тоже есть много интересного: тот же Castlevania: Spectral Interlude (2015), Mighty Final Fight (2018) и ремейк 2017 года Dizzy VII - Crystal Kingdom Dizzy. Много в общем всего есть, во что я готов поиграть и прямо сейчас, не взирая на имеющиеся залежи всякого добра в Steam. Ну и ностальгия понятное дело. Играя во всё это "старьё", я вспоминаю себя гораздо моложе, когда и трава была зеленее и небо голубее (и это не носило никаких отрицательных коннотаций!).

Я не собираюсь в рамках данной статьи проводить обзор всего ПО для ZX Spectrum, лучше это сделать в рамках отдельной серии, поэтому идём дальше.

Эмуляторы Dendy

Ну и закончу тему эмуляторов игровой приставкой, известной в России как Dendy, а за рубежом Famicom или NES (Nintendo Entertainment System). У меня самого её не было (между Денди и Спектрумом я выбрал последний), но она была у многих друзей и родственников, поэтому в неё я тоже поиграл в своё время вдосталь.

-18

Для Linux есть несколько эмуляторов NES, но я бы рекомендовал FCEUX, поскольку он более стабильный и обладает неплохим набором опций. Например, в настройках видео можно выбрать OpenGL и установить размер экрана (scaling factor) - в Dendy, как в ZX Spectrum, он мелковат для современных экранов:

-19

Ну и скачиваем на просторах интернета (например, тут) образ нужной нам игры (с расширением ROM) и открываем с помощью меню "Open ROM" и наслаждаемся любимыми "танчиками" (да-да, только недавно это сокращение закрепилось за World of Tanks):

-20

В общем, любители ретро-гейминга под Linux не обижены.

Итого

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

Подытоживая. Если кровь из носу требуется какая-либо программа для Windows, аналога которой не удаётся подобрать в Linux - стоит выбрать Wine. Если в Wine программа не работает, то ваш выбор - виртуальная машина VirtualBox. Если вы хотите поиграть под Linux в Windows-игры, то проще всего это делать с помощью Steam и технологии Valve Proton. А если же вы любитель тряхнуть стариной и вспомнить молодость, то вам помогут DOSBox (для старых DOS-овских игр), FUSE (для игр под ZX Spectrum) и FCEUX (для дендевских игрушек).

P.S. Эта статья из цикла "Linux обычного пользователя" и, если она вас заинтересовала, то вы можете прочитать и другие статьи по этой теме. Если понравилось - ставьте палец вверх, ну а не понравилось - ставьте палец вниз и пишите в комментарии, что именно. Если возникнут вопросы - тоже пишите в комментарии, обязательно постараюсь ответить. Ну и подписывайтесь, если эта тема вам интересна.