Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Запуск игр для DOS и Windows в Linux

Оригинал: Run DOS and Windows games on Linux
Автор: Graham Morrison
Дата публикации: 8 апреля 2016 г.
Перевод: А.Панин
Дата перевода: 17 июня 2016 г.

Расширьте вашу игровую коллекцию несколькими классическими играми для давно забытых операционных систем.

Для чего это нужно?

  • Вы сможете поиграть в замечательные игры бесплатно или за малые деньги.
  • Вы отточите навыки запуска приложений, разработанных для других платформ.
  • Вы сможете работать с другими бинарными файлами, собранными для Windows, в Linux.

Благодаря компании Valve и смене вектора интересов ее руководства с Windows на Linux, наша любимая операционная система постепенно становится одной из основных игровых платформ. Игровой портал компании Valve под названием Steam на данный момент содержит более 1100 игр для Linux, включая такие блокбастеры, как Team Fortress 2, Portal 2, Borderland 2, The Witcher 2, Bioshok Infinite и многие другие. Об этом нельзя было даже подумать несколько лет назад, причем ситуация должна лишь улучшаться, так как специалисты Valve работают над выпуском собственной платформы на основе Linux, которая должна будет конкурировать с игровыми консолями. По этой причине многие из нас обновляют аппаратное обеспечение своих машин и переносят их поближе к телевизорам.

Но наряду с новыми версиями игр для Linux существует и большое количество классических игр, в которые стоит поиграть, причем они могут отлично функционировать на любой современной машине - даже на ограниченном в плане ресурсов одноплатном компьютере Raspberry Pi или на вашем телефоне, работающем под управлением ОС Andriod. Единственная проблема заключается в том, что хотя эти игры и могут запускаться в Linux, они не предназначены для этого. Чаще всего подобные игры разрабатывались для устаревших версий ОС Microsoft Windows, а до этого - для ОС Microsoft DOS. Но в данное время у нас есть все необходимые инструменты для запуска этих игр в любой системе Linux для настольных компьютеров без необходимости создания виртуальной машины и покупки лицензионной копии ОС Windows. Поэтому обыщите ваши полки для дисков, найдите игры, в которые вы не играли около десяти лет и выделите дождливый вечер для наслаждения классикой.

Несмотря на то, что в данный момент существует версия Steam, а также версии многих игр для Linux, вы можете запустить большее количество игр с помощью версии Steam для Windows

Несмотря на то, что в данный момент существует версия Steam, а также версии многих игр для Linux, вы можете запустить большее количество игр с помощью версии Steam для Windows

DOSBox

До появления ОС Microsoft Windows (и Linux) существовала ОС DOS с классическим интерфейсом командной строки, которая, тем не менее, превращала стандартный персональный компьютер в рабочий инструмент. В 1990 годах ОС DOS (Disk Operating System - дисковая операционная система) стала основной площадкой для разработчиков игр, так как она предоставляла непосредственный доступ к аппаратному обеспечению персональных компьютеров, производительность которых постоянно возрастала, а цена - эквивалентно снижалась, особенно в сравнении с компьютерами Apple или Commodore того времени. Вычислительная мощность персональных компьютеров того времени позволила разработать игры новых типов, такие, как Doom, после чего появились графические ускорители и еще большее количество классических игр. Удивительно, но вы можете играть в большинство из них прямо в вашем веб-браузере, а сами эти игры можно найти в хранилище по адресу https://archive.org/details/softwarelibrary_msdos_games.

Daggerfall является одной из лучших игр в жанре RPG, при этом она доступна для бесплатной загрузки с веб-сайта издателя

Daggerfall является одной из лучших игр в жанре RPG, при этом она доступна для бесплатной загрузки с веб-сайта издателя

Путешествие по волнам памяти...

Программное обеспечение используемое ресурсом archive.org для запуска игр в веб-браузере, носит имя DOSBox и является отличным инструментом, распространяющимся в соответствии с условиями лицензии GPL и позволяющим запускать не только игры. DOSBox по своей сути является эмулятором устаревших компьютеров, таким же, как и CCS64, который эмулирует аппаратное обеспечение компьютера Commodore 64. Но при этом DOSBox, наряду с эмуляцией аппаратного обеспечения устаревших компьютеров, может передавать инструкции непосредственно центральному процессору для значительного повышения скорости и производительности программ. Это становится возможным благодаря тому, что центральные процессоры архитектуры x86, используемые в большинстве современных компьютеров, совместимы с центральными процессорами устаревших компьютеров и имеют множество одинаковых возможностей и инструкций. К сожалению, вы не сможете получить аналогичный прирост производительности при использовании устройства с центральным процессором другой архитектуры, такого, как одноплатный компьютер Raspberry Pi или мобильный телефон с процессором ARM, работающий под управлением ОС Android, но вы, по крайней мере, получите аналогичную совместимость с необходимым окружением исполнения.

Эмулятор DOSBox может быть установлен с помощью менеджера пакетов программного обеспечения вашего дистрибутива. Но также, как и в случае окружения исполнения DOS, для корректной работы DOSBox требуются некоторые дополнительные неочевидные действия. На первом шаге следует запустить исполняемый файл. В результате вы перенесетесь из современного мира социальных сетей, широкополосных каналов передачи данных и облачных сервисов в мир с аудиокартами Sound Blaster, драйверами HIMEM.SYS и необходимостью в ручном распределении номеров прерываний. После выполнения первой, уже написанной для вас команды "SET BLASTER=A220 I7 D1 H5 T6", осуществляющей установку значения специальной переменной окружения для перевода звуковой карты в режим максимальной совместимости, вы должны будете увидеть приветствие командной оболочки Z:\> с мигающим курсором.

Командная оболочка DOS очень похожа на командную оболочку Bash, но имеет некоторые очень важные отличия. Например, команда ls заменена на команду dir, но в то же время, команда cd также используется для изменения рабочей директории. Смонтированный эмулятором виртуальный диск отображается как диск Z и содержит простые инструменты, необходимые для запуска большинства программ для DOS - вы можете увидеть полный список этих инструментов, выполнив команду dir. Для того, чтобы сделать что-то полезное, вам придется создать портал между DOSBox и файлами из реального мира. Вы можете сделать это, выполнив следующую команду:

mount c /home/graham/games -freesize 1000

Я создал директорию games для хранения данных игр в своей домашней директории, а вам придется модифицировать приведенную выше команду для соответствия вашему окружению. Аргумент freesize используется по той причине, что объем устройств хранения данных современных компьютеров во много раз превышает объемы соответствующих устройств, которые могут корректно распознаваться DOS, поэтому мы делаем так, чтобы операционной системе казалось, что на нашем диске гораздо меньше свободного пространства. В данном случае мы монтируем директорию и предоставляем в распоряжение эмулятора 1000 МБ свободного дискового пространства, которого более чем достаточно для установки игры с диска CD. В рамках DOSBox вы можете перейти на новый жесткий диск, выполнив команду C:, после чего изучить его содержимое, выполнив команду dir - сложно не предаться ностальгии, обнаружив имена файлов, длина которых ограничена восемью символами.

Если у вас имеются файлы с установочного носителя игры, такого, как диск CD-ROM или floppy, вы можете переместить их в вашу смонтированную директорию, после чего без каких-либо сложностей получить к ним доступ таким же образом, как и к файлам с оригинального носителя. Однако, в данной статье мы будем использовать файл образа диска формата ISO одной из моих любимых игр - Daggerfall. Это игра жанра 3D RPG, являющаяся предтечей таких популярных игр, как Oblivion и Skyrim. Файл архива с установщиком игры доступен для бесплатной загрузки на веб-сайте ее издателя (www.elderscrolls.com/daggerfall). Это архив формата RAR, который может быть распакован в вашу директорию для хранения данных игр, после чего доступ к его содержимому сможет осуществляться практически также, как и доступ к содержимому смонтированного файла образа формата ISO или оптического носителя. Но в случае большинства игр из вашей коллекции, которые распространялись на оптических дисках, гораздо проще создать файл образа диска формата ISO и, так как у меня тоже имеется диск с игрой Daggerfall, мы рассмотрим этот вариант. После выполнения любых манипуляций с одной из смонтированных директорий вне DOSBox, вам придется использовать сочетание клавиш Ctrl-F4 для принудительного обновления состояния окружения на уровне DOSBox, иначе изменения не будут отображаться. После этого вы можете смонтировать файл образа диска формата ISO из DOSBox с помощью следующей команды:

IMGMOUNT D DAGGER~1.ISO -t iso

В приведенной выше команде реальное имя файла образа диска daggerfall.iso было урезано с помощью последовательности символов ~1 для соответствия ограничению, накладываемому DOS на длину имен файлов. Для того, чтобы избавить себя от необходимости угадывания и ввода этих сокращенных имен файлов следует просто нажимать клавишу Tab после ввода нескольких первых символов имени файла для активации механизма автоматического дополнения имен файлов. В результате исполнения приведенной выше команды содержимое файла образа диска формата ISO станет доступно после перехода к диску D, для осуществления которого достаточно всего лишь выполнить команду d:. Если же вы распаковали архив формата RAR, вы можете воспользоваться командой cd для перемещения в директорию DFCD. Содержимое файла образа диска формата ISO и файла архива будет идентичным.

Установка

В 1995 году цена жесткого диска Seagate указанного нами размера (1000МБ) составляла около $850 - серьезная цена, которая была доступна для большинства пользователей персональных компьютеров. Впоследствии дисковое пространство стало дешеветь и именно по этой причине все игры середины 90-х годов для DOS требовали установки. До появления стандартных тулкитов большинство установщиков программного обеспечения имело значительные отличия. Поэтому вам придется просматривать все файлы с именами README.TXT, дополнительную документацию и даже руководства пользователя, если они поставляются в комплекте с играми. В большинстве игр, включая Daggerfall, используется собственный установщик с именем install.exe, который запускается путем исполнения команды install в соответствующей директории. Установщики игр позволят вам выбрать компоненты для установки и путь к директории установки (обычно следует использовать значения, предлагаемые по умолчанию). После окончания процесса копирования файлов вам придется осуществить настройку аудиокарты. Установщик игры Daggerfall также предлагает выполнить эту операцию, но благодаря первой команде SET, которая выполняется автоматически после запуска DOSBox, звук должен корректно выводиться даже в случае выбора варианта "Auto Detect". В противном случае следует использовать стандартные установки для аудиокарты Sound Blaster 16/AWE32, Port 220, DMA 1 и IRQ 7. После завершения работы установщика вы сможете изменить эти параметры, воспользовавшись программой setup или отредактировав файл конфигурации игры (обычно это файл с расширением .cfg). Финальным шагом, который требуется выполнить в процессе установки Daggerfall и многих других игр является запуск программы для установки обновлений. Мы загрузили нашу копию игры с веб-сайта издателя, поэтому она уже содержит файл обновления, а вы наверняка найдете в сети обновления для популярных игр, которые также следует установить. В качестве обновления в архиве с игрой поставляется исполняемый файл dag123, который достаточно запустить из директории с файлами установщика, после чего можно выполнить команду dagger для непосредственного запуска игры. Имя исполняемого файла игры должно быть очевидным и выводиться ее установщиком. Просто введите его для запуска игры. Многие игры также требуют наличия установочного диска в приводе, обозначаемом той же буковой диска, которая использовалась при установке игры как с диска, так и со смонтированного файла образа диска формата ISO, так как это один из вариантов защиты файлов игры от копирования, поэтому вам придется проверять букву диска с файлами установщика перед каждым запуском игры.

Пошаговое руководство: установка игр для DOS

Запуск эмулятора DOSBox

1. Запуск эмулятора DOSBox

При запуске эмулятора DOSBox будет осуществлена автоматическая подготовка окружения для запуска игр. Вам придется смонтировать директорию с файлами установщика игры и перейти в нее.

Запуск исполняемого файла установщика install.exe

2. Запуск исполняемого файла установщика install.exe

Исполняемый файл установщика игры обычно носит имя install.exe, причем практически для каждой игры используется свой собственный установщик. В данном случае осуществляется установка игры Daggerfall.

Конфигурация

3. Конфигурация

Все игры для DOS будут требовать от вас ввода параметров аудиокарты, при этом функция автоопределения должна работать корректно практически во всех случаях.

Совет: Если вы запускаете эмулятор DOSBox в оконном режиме и желаете переместить указатель мыши за пределы его окна, вы можете воспользоваться сочетанием клавиш Ctrl-F10.

Запуск игр для Windows

Хотя в некоторые игры для DOS все еще интересно играть, у многих людей имеются коллекции игр для Microsoft Windows, гораздо больших размеров, особенно в том случае, если они переходят на Linux с операционной системы от компании из Редмонда. Кроме того, многие продающиеся с рук игры, которые будут попадаться вам на различных торговых площадках, были выпущены в течение последних десяти, а не двадцати лет, и это также обозначает, что для их запуска потребуется ОС Windows.

В данном случае можно рассматривать несколько решений, при этом простейшее из них наверняка будет заключаться в установке легальной копии ОС Windows в рамках виртуальной машины. В этом случае будут максимально точно воссозданы все интерфейсы операционной системы, но вы не сможете воспользоваться каким-либо сложными функциями аппаратного ускорения, позволяющими радикально повысить производительность игр (хотя некоторые из таких функций и будут доступны), кроме того, вам потребуется лицензионная копия операционной системы для установки. Виртуальные машины очень удобны в том случае, если вам требуется 100% совместимость с интерфейсами ОС Windows для запуска какого-либо программного обеспечения, но существует и лучшее решение с открытым исходным кодом, которое подходит для запуска игр и различных приложений под названием Wine.

Разработчики Wine называют свой проект "слоем совместимости", а не эмулятором (Wine является акронимом "Wine Is Not an Emulator" - "Wine не эмулятор"). Вместо эмулирования аппаратного обеспечения, связанного, к примеру, с программным воссозданием аудочипа компьютера Commodore 64, Wine воссоздает интерфейсы операционной системы, которые требуются для работы приложениям, обычно заменяя низкоуровневые функции Windows на функции Linux. Данные функции дополняются инструментами из состава OC Windows, которые могут загружаться и устанавливаться в систему по аналогии с Windows, такими, как DirectX для ускорения операций с графикой, кодеки для проигрывания видеороликов и шрифты, позволяющие выводить похожий текст. Рабочее окружение Wine может становиться крайне запутанным, а его конфигурация и поддержка - требовать много времени и усилий, особенно при изменении настроек, влияющих на совместимость.

PlayOnLinux

К счастью, существует простое решение для настройки Wine: PlayOnLinux является оберткой над компонентами Wine и их файлами конфигурации, предназначенной для достижения совместимости с определенными приложениями и играми. Она позволяет значительно упростить процесс установки таких программных компонентов, как игры для Windows. Пакет программного обеспечения содержится в официальных репозиториях многих дистрибутивов, причем компоненты этого пакета будут осуществлять автоматическую загрузку компонентов Wine, поэтому вам даже не придется устанавливать пакет программного обеспечения с компонентами Wine в качестве зависимости. Это объясняется тем, что определенные версии Wine были протестированы на совместимость с определенными играми и приложениями и разработчики поддерживают лишь совместимые версии. По этой причине PlayOnLinux позволяет одновременно устанавливать по нескольку версий Wine, следовательно в случае установки той или иной игры вам потребуется соединение с Интернет с большой пропускной способностью для загрузки необходимых шрифтов, библиотек и версии DirectX вместе с совместимой с игрой версией Wine.

Игры устанавливаются на отдельные виртуальные диски для предотвращения конфликтов между файлами конфигурации различных версий Wine

Игры устанавливаются на отдельные виртуальные диски для предотвращения конфликтов между файлами конфигурации различных версий Wine

При первом запуске PlayOnLinux загрузит из сети список поддерживаемых игр. После окончания процесса загрузки вы можете нажать на кнопку "Install" для ознакомления с ним. Существуют сотни совместимых с Wine игр, включая цифровые копии из сетевых магазинов, а также игры с дисков CD и DVD. Вы даже сможете найти некоторые такие игры на ресурсе GOG.com, обозначенные как совместимые с Linux, кроме того, вы можете установить клиент Steam для Windows для ознакомления с играми, которые пока не были портированы на Linux. К примеру, я установил описанным образом клиент Steam с целью установки одной из моих любимых классических игр System Shock 2, которую я уже приобретал ранее на CD. В обоих случаях в процессе установки будут выводиться инструкции, которым вам нужно будет следовать.

PlayOnLinux самостоятельно загрузит все недостающие компоненты Windows для корректной работы устанавливаемых вами игр или приложений

PlayOnLinux самостоятельно загрузит все недостающие компоненты Windows для корректной работы устанавливаемых вами игр или приложений

Установка с CD

В случае System Shock 2 нам придется вставить диск CD в привод перед установкой. Это объясняется тем, что PlayOnLinux в первую очередь предложит выбрать путь к точке монтирования оптического диска с игрой из списка путей к точкам монтирования всех разделов дисков, которые ему удастся обнаружить. Надеюсь, что один из предложенных путей будет путем к точке монтирования вашего диска с игрой. Если это не так, вы можете воспользоваться элементом списка "Other" и самостоятельно указать путь к точке монтирования диска или файлу образа диска формата ISO. После этого с диска будет запущен стандартный установщик Windows и вам придется указать все параметры установки игры, включая ее серийный номер, конечно же, если он используется в качестве механизма защиты от копирования.

Если вам будет предложено несколько вариантов установки, я рекомендую выбирать вариант "полной установки" для копирования максимально возможного количества файлов с установочного носителя на жесткий диск. Вам придется использовать клавишу Tab для переключения между элементами окна стандартного установщика Windows, при этом PlayOnLinux самостоятельно примет решение о необходимости установки дополнительных пакетов. Для большинства игр потребуется установить шрифты и DirectX, причем для игры System Shock 2 также необходим мультимедийный кодек Intel, который используется для проигрывания внутриигровых видеороликов. Вам также может пригодиться сочетание клавиш Alt-Tab для скрытия окон установщика после окончания процесса установки. Наконец, вам будет предложено настроить параметры вашей графической карты, но чаще всего единственным таким параметром является объем видеопамяти. Для достижения работоспособности клиента Steam потребуется выполнить несколько дополнительных шагов, так как сам клиент должен быть запущен несколько раз для автоматической установки некоторых обновлений, но PlayOnLinux успешно справляется с одновременной установкой всех необходимых сторонних пакетов.

После окончания процесса установки игр и приложений, пункты для их запуска будут появляться в меню запуска приложений окружения рабочего стола (если вы выберите соответствующую опцию в процессе работы с установщиком), а также в меню главного окна PlayOnLinux. Для их запуска достаточно будет нажать на соответствующий элемент меню, причем их производительность в Linux не будет значительно отличаться от производительности в Windows. С помощью клиента Steam вы можете установить другие игры, но вы наверняка столкнетесь с проблемами с совместимостью даже в последних версиях.

Если вы хотите внести изменения в установку игры для Windows, вы можете использовать правую кнопку мыши по отношению к элементу меню в окне PlayOnLinux и открыть директорию, в которую установлены файлы игры. Обычно данная директория с файлами игры для Windows изолирована от директорий с файлами остальных игр для Windows с целью поддержания совместимости. Ее следует открывать в том случае, если необходимо установить обновления, к примеру, путем замены исполняемого файла игры. Кроме того, вы можете изменить параметры установки Wine из этого же меню. Панель конфигурации Wine позволяет вам изменить путь к точке монтирования оптического диска, разрешение экрана, а также версию Windows, информация о которой передается приложению. Для лучшей совместимости обычно следует выбирать Windows 98, но вы можете попробовать разные варианты от раритетной версии Windows 2.0 до современной Windows 8.

Совет: После установки Wine вы получите возможность запускать несложные бинарные файлы для Windows путем ввода wine и имени исполняемого файла с расширением .exe.

Сохранение содержимого дисков CD и DVD на жестком диске вашего компьютера

Многие старые диски CD и DVD с играми со временем царапаются и нередко хранятся отдельно от кейсов, что еще больше сокращает их срок жизни. Так как на сегодняшний день дисковое пространство является относительно дешевым, имеет смысл переместить их содержимое на жесткий диск. Простейший метод сохранения содержимого оптического диска заключается в копировании всей структуры директорий с файлами со смонтированного диска в специально созданную отдельную директорию на жестком диске вашего компьютера. Вы можете сделать это как с помощью утилиты командной оболочки, так и с помощью файлового менеджера, указав Wine или DOSBox путь к этой директории в качестве пути к точке монтирования оптического диска, в результате чего игра должна отлично работать.

Более практичный метод заключается в создании файла образа диска формата ISO. Это отдельный файл, который будет содержать как все файлы, так и файловую систему оптического диска, что является лучшим решением в плане совместимости с играми, в которых используются специальные механизмы для установления факта вставки диска в привод. Вы можете создать файл образа диска формата ISO как с помощью инструмента с графическим интерфейсом, такого, как Brasero, так и в рамках командной оболочки с помощью утилиты dd. Если вы планируете лишь хранить созданный файл образа диска формата ISO в качестве резервной копии, вы можете дополнительно воспользоваться утилитой 7zip для его сжатия и последующей распаковки. Файл формата ISO может как непосредственно открываться эмулятором DOSBox, так и монтироваться в определенную точку файловой системы с помощью следующей команды (предварительно должна быть создана директория /mnt/iso):

sudo mount -t iso9660 -o loop cd.iso /mnt/iso/

Источники игр

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

Веб-сайт GOG.com (ранее известный, как Good Old Games) превратил увлечение старыми классическими играми в жизнеспособную бизнес-модель, предлагая купить старые игры по сниженным ценам и добавляя в комплект поставки игр такие эмуляторы, как DOSBox, позволяющие отказаться от необходимости выполнения каких-либо настроек перед игрой. Что еще более важно, данный ресурс взаимодействует напрямую с издателями оригинальных игр и с целью отказа от технологий DRM, которые обычно являются причиной многочисленных проблем при запуске старых игр и наверняка осложняют их запуск в Linux. Возможно, именно по этой причине на ресурсе GOG.com началось бета-тестирование поддержки платформы Linux.

Если вы относитесь к вопросу запуска старых игр достаточно серьезно, вам также может быть интересен проект CrossOver. Это коммерческая версия проекта Wine, в которой для создания установщиков для игр и приложений используется система профилей, аналогичная PlayOnLinux. Вы даже можете воспользоваться бесплатной бета-версией для того, чтобы проверить совместимость с той или иной игрой. Положительной чертой проекта CrossOver является то, что его разработчики вносят основной вклад в развитие проекта Wine, ведь все изменения из платной версии постепенно переносятся в бесплатную, что способствует постоянному развитию обоих продуктов.

GOG.com является сервисом распространения игр, специализирующимся в основном на старых играх и поддерживающим платформу Linux

GOG.com является сервисом распространения игр, специализирующимся в основном на старых играх и поддерживающим платформу Linux