Библиотека сайта rus-linux.net
DOSBox - многоплатформенный эмулятор PC
Оригинал: DOSBox, a multiplatform PC emulator
Автор: Michael Reed
Дата: 5 июня 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 16 июня 2008
DOSBox - свободно распространяемый кроссплатформенный эмулятор PC. В отличие от продвинутых окружений виртуализации наподобие VMWare или Qemu, DOSBox не стремится быть лидером технологии, а вместо этого нацелен преимущественно на наиболее правдоподобный запуск старых игр. Среди этих функций - точная эмуляция звуковых карт, средства управления скоростью работы и многие другие функции, предназначенные для корректной работы старых игр в защищенном окружении.
В чем проблема?
Многие старые игры не работают (или работают некорректно) на современных компьютерах. До прихода Windows самым популярным окружением для запуска игр была операционная система DOS. Запуск старых DOS-игр, к примеру, в Windows XP сопровождается проблемами, причем большинство игр вообще вряд ли будет запускаться.
Кто-то может сказать, что при наличии потребности со стороны пользователей можно написать аналогичную программу, однако это плохо соотносится с играми. В какой-то мере игры - это произведения искусства, а ведь как известно, нельзя подменить одно произведение искусства другим.
Зачем запускать старые игры?
Нужно признать, что не все старые игры достойны возвращения к ним. В общем, около 80% всех старых игр представляют из себя мусор. Говоря более мягким языком, они настолько привязаны к своему времени, что не могут существовать в будущем.
В то же время, есть такие игры, которые стоит найти и пройти заново.
Игровой процесс в какой-нибудь старой игре может быть настолько уникальным, что у него нет аналогов в современных играх, а может быть, старая игра просто вызывает у кого-нибудь ностальгические воспоминания. Иногда игрок хочет попробовать старую игру, если в то время он не смог ее достать. Наконец, некоторые старые игры сами по себе великолепны и стоят того, чтобы в них поиграть.
К сожалению, большое количество замечательного игрового материала пропадает из-за невозможности его использования. Элементы игры, которые делают ее действительно впечатляющей и запоминающейся - а именно персонажи, сценарий, музыка и т.д. - могут оказаться недоступными из-за технологического устаревания. Это препятствует как личному удовлетворению от игры, так и распространению своих впечатлений от игры с кем-то еще.
Решение - эмуляция
Эмулятор - это программа, полностью симулирующая функции другой системы. Теоретически любую компьютерную систему можно программно сэмулировать. Недостатком эмуляции является производительность. Эмулирующая система должна быть значительно более мощной, чем эмулируемая.
Все эмуляторы можно разделить на два типа: они предназначены либо для запуска серьезных приложений, либо для запуска игр. Эмуляторы, нацеленные на доступ к библиотекам серьезных приложений на целевой платформе, обычно делают ставку на скорость выполнения. Эмуляторы, ориентированные на игры, естественно придают особую важность внешним эстетическим моментам и точности воспроизведения.
К слову, целевую платформу PC относительно легко сэмулировать.
Когда в самом начале IBM создавали свой PC, они решили собирать компьютер из готовых компонентов. Таким образом, архитектура IBM PC стала относительно открытой, что позволило другим производителям создавать клоны PC. В конце концов, архитектура PC оказалась чрезвычайно хорошо задокументирована.
Эмулятор или реальная аппаратура
Любой, кто хочет запустить старую игру, приходит к дилемме: стоит ли эмулировать ее программно, или стоит раздобыть где-нибудь настоящий компьютер и запустить ее по-настоящему?
Для многих хобби, связанных с коллекционированием, сам по себе физический объект является объектом радости, так что в этом случае эмуляция - неподходящий вариант.
С другой стороны, эмулятор типа DOSBox предлагает удобства, которые невозможны при использовании настоящего, физического PC: в отличие от настоящего компьютера, DOSBox бесплатен, не занимает места и не требует какого-либо ухода; DOSBox позволяет пользователю указать систему с любыми возможными дополнениями, без дополнительных денежных трат; пользователь может выполнять любые изменения файловой системы виртуального компьютера из своей операционной системы.
К тому же DOSBox может улучшить некоторые аспекты оригинальных игр.
Познакомьтесь с DOSBox
DOSBox пытается воссоздать функциональность и поведение того самого PC.
DOSBox - это кроссплатформенное приложение, т.е. может быть запущено на системах Mac OS X, GNU/Linux, Windows и некоторых других. Пользователи всех платформ могут скачать последнюю версию DOSBox с официального сайта. Программа присутствует и в репозиториях популярных дистрибутивов, так что можно установить ее с помощью вашего любимого менеджера пакетов.
Стоит упомянуть, что за DOSBox стоит активное сообщество энтузиастов. В случае затруднений лучше сразу спросить помощи на форуме - они сразу помогут.
Сайт DOSBox также содержит базу данных игр, которые удается запустить с помощью DOSBox или которые работают не совсем корректно.
Что именно эмулируется?
Компьютер можно разделить на три части: аппаратное обеспечение, операционная система и приложения. DOSBox воссоздает аппаратуру i486-совместимого ПК, оснащенного звуковой картой и видеокартой VGA. Помимо этого эмулятор содержит встроенную операционную систему - замену DOS.
Центральный процессор
Верхний предел производительности DOSBox зависит от средней мощности процессора на эмулирующей машине. По моим субъективным оценкам, мой старенький компьютер с одноядерным процессором AMD на 1.7 ГГц позволяет DOSBox эмулировать компьютер, эквивалентный по производительности 486 машине. Иными словами, можно без проблем играть в такие игры как Doom.
Теоретически, не существует предела эмулируемого ПК, лишь бы у вас была эмулирующая машина достаточной производительности.
DOSBox может работать в двух режимах эмуляции процессора: "Normal" и "Dynamic". Нормальный режим медленнее, но зато строго эмулирует процессор. Динамический режим дает заметное прибавление производительности, но некоторые игры могут с ним не заработать.
При запуске старых игр весьма полезной может оказаться функция замедления эмуляции. Многие старые игры разрабатывались исключительно из расчета на конкретные процессора, в итоге вышло так, что на более быстрых процессорах они работают слишком уж быстро. В DOSBox можно указать клавиатурную комбинацию для ускорения или замедления эмуляции.
Память
Компьютеры времен DOS имели сложное распределение памяти, так что игроку в DOS-игры приходилось быть немного экспертом в конфигурировании памяти. DOSBox автоматически симулирует различные стандарты памяти, так что практически каждая игра найдет достаточно памяти для своего запуска, причем без каких-либо ручных настроек эмулятора. Это еще одно преимущество эмулятора DOSBox перед реальным компьютером.
Поддержка графики
DOSBox успешно эмулирует все традиционные графические адаптеры, начиная с 4-цветного CGA и заканчивая VGA и Super-VGA. Эта всесторонняя поддержка графики означает, что в DOSBox можно запускать практически все игры - начиная со старейших PC-игр и заканчивая последними DOS-играми.
Фильтрация графики
Более того, DOSBox может улучшить качество исходной игровой графики. Используются различные методы (фильтры), способные увеличить разрешение исходной игровой картинки. В DOSBox присутствует поддержка фильтров многих типов, выбор конкретного фильтра - это всегда компромисс между производительностью и качеством картинки. Некоторые фильтры намного лучше ранней технологии "texture blur" и могут значительно улучшить четкость изображения.
Это еще одно преимущество использования эмуляции над запуском игр на реальной аппаратуре.
Рисунок 1: Исходная и отфильтрованная картинки
Нажмите на рисунок 1 и вы заметите, насколько лучше делает изображение применение фильтра. На левой картинке отчетливо видны пиксели в диагональных линиях текста, а на правой все сглажено.
Звук
В первых ПК был простой одноголосный динамик. Производители быстро поняли, что к чему, и выпустили платы расширения, улучшающие качество звука.
DOSBox способен эмулировать наиболее популярные звуковые карты того времени:
- Ad Lib. Очень успешный ранний стандарт. Эта карта имела встроенный музыкальный синтезатор и поддерживала простые звуковые эффекты.
- Sound Blaster. Эта карта - преемник звуковой карты Ad Lib. Более того - она стала стандартом для звука в играх ПК. В ней появилась функция простого цифрового воспроизведения в сочетании с традиционными функциями карты Ad Lib.
- Sound Blaster 16. Улучшенное качество звука.
- MIDI pass-through - поддержка MIDI (Musical Instrument Digital Interface) в DOSBox позволяет перенаправлять игровой звук на внешний MIDI-синтезатор или на высококачественный программный синтезатор на эмулирующей операционной системе.
DOSBox способен эмулировать работу этих и многих других карт, и пользователю будет из чего выбрать и подобрать ту, с которой игра будет "звучать".
Если в игре есть поддержка карт Sound Blaster, стоит выбирать именно ее, потому что она содержит в себе все функции Ad Lib. Карты Sound Blaster 16 поддерживаются в последних играх и содержит все функции обычных Sound Blaster и Ad Lib.
Если игра поддерживает MIDI, то скорее всего этот выбор будет лучшим с точки зрения качества звука.
Заметьте, что DOSBox так эмулирует ПК, как будто все эти звуковые карты установлены одновременно. Большинство DOS-игр содержат в своем комплекте утилиту setup, в которой нужно указать тип используемой звуковой карты. Ее нужно будет запустить самостоятельно.
Эмуляция звука в DOSBox - это высший класс. Давно я играл на компьютерах с этими звуковыми картами и могу подтвердить, что эмулированный DOSBox звук весьма точно повторяет оригинальный. Большинство старых звуковых карт имели не очень качественное звучание, так что вполне возможно, что звук DOSBox, выводимый через современные звуковые карты, по качеству будет даже превосходить оригинальный.
Если звук DOSBox будет заедать, попробуйте уменьшить скорость эмуляции на несколько процентов. Это освободит немного ресурсов компьютера для эмуляции звука.
DOS
В DOSBox имеется встроенная версия DOS, аналогичного классическому MS-DOS, который использовался при запуске большинства старых игр. Такая замена DOS содержит как достаточное количество функций оригинального DOS, так и специфические средства, нужные для работы эмулятора.
DOSBox в использовании
При первом запуске эмулятора появляется типичное приглашение командной строки DOS, а также предварительная справочная информация.
Рисунок 2: Запуск DOSBox в системе Kubuntu Linux
Игры запускаются также, как и в старые добрые времена, а именно с помощью командной строки. Сначала нужно перейти в каталог с игрой, затем набрать имя программы.
Управление эмулятором
Управлять эмулятором можно через специальные DOS-команды, комбинации клавиш и конфигурационный файл. Это один из недостатков DOSBox, ведь большинство современных эмуляторов предоставляют пользователю куда более сложные графические интерфейсы. К примеру, возможно совсем застрять в эмуляторе, если позволить эмулятору захватывать как клавиатуру, так и мышь (если не знать клавиатурной комбинации для отмены захвата мыши).
Разработчикам DOSBox приходилось делать выбор между упрощением программы и новыми функциями, с помощью которых можно было бы запустить больше игр. Я бы не назвал DOSBox неуклюжей программой. Однако глядя на другие эмуляторы и средства виртуализации, понимаешь, что средства управления DOSBox весьма убоги.
Оболочки
Относительное неудобство интерфейса командной строки привело к тому, что сторонние разработчики занялись созданием различных оболочек к DOSBox. Обычно эти оболочки представляют из себя дружественный графический интерфейс к настройкам DOSBox, и помимо этого упрощают управление игровой коллекцией. Утилиты, подобные DOS Shell (не путать с одноименным старым файловым менеджером времен MS-DOS), упрощают процесс запуска игр до действий типа "навел и нажал". Помимо глобальных настроек и запуска игр, DOS Shell способен запускать отдельные игры со своими собственными настройками.
Рисунок 3: Оболочка DOS Shell, работающая в Windows
Графические оболочки DOSBox существуют практически для всех поддерживаемых платформ. Многие признают правоту разработчиков DOSBox в том, что нужно концентрироваться на функциональности ядра, а не на красивом интерфейсе пользователя. К сожалению, ни одна графическая оболочка не может улучшить управляемость эмулятором во время его работы.
Интерфейс командной строки
Если ввести intro
в командной строке, будет выведено несколько страниц полезной информации о том, как пользоваться DOSBox.
Сразу же у пользователя возникнет вопрос, как указать DOSBox расположение своих DOS-игр. Сопоставление виртуального диска внутри DOSBox с реальным каталогом на эмулирующей машине осуществляется с помощью команды mount
. В Linux команда mount c ~/dos_games
отобразит каталог dos_games
в моем домашнем каталоге на диск C: эмулятора.
Команда mount позволяет пользователю получить доступ к CD-ROM из эмулятора. Этот отображаемый CD-ROM может быть как настоящим, так и каталогом на жестком диске или ISO-образом диска. Также DOSBox может монтировать образы дискет и жестких дисков.
В документации подробно описаны команды DOSBox, в том числе и mount.
Сохранение состояния
DOSBox не хватает способности управления состояниями. В некоторых эмуляторах есть средства заморозки эмуляции и сохранения текущего состояния эмулятора в файл. Позднее пользователь может восстановить состояние из файла и продолжить работу как ни в чем ни бывало.
Некоторые могут возразить, что в реальном ПК не было возможности такого сохранения. Если игра не позволяет сохраняться в любой момент времени, значит так было задумано разработчиками игры, и такая функция была излишне бы упрощала жизнь игрока. Но все равно, это было бы полезной функцией.
Где взять игры
Чтобы получить какое-никакое удовольствие от DOSBox, нужно сначала достать какие-нибудь игры. К сожалению, в настоящее время практически невозможно приобрести новые копии тех старых DOS-игр. Можно достать их в магазинах "секонд-хенд", таких как eBay.
Но если сможете найти новые коробочные версии, тогда обращайтесь к документации DOSBox, где подробно описано, как примонтировать реальные физические носители.
Abandonware
Если не удалось найти физическую копию игры, можно попробовать поискать ее в интернете. Коммерческие программы, которые стали бесплатными для скачивания, часто называют abandonware, и правовой статус таких программ недостаточно определен. В любом случае, большинство компаний по производству игр закрывают глаза на все это, ведь старые игры не приносят какой-нибудь прибыли.
Начать поиски конкретной игры можно путем ввода запроса в Google с названием игры и словом "abandonware" - наверняка она сразу найдется.
Если вы ищете не какую-то конкретную игру, тогда для вас могут быть полезны такие сайты как The Home Of The Underdogs и C-DOS Abandonware, содержащие каталоги старых игр. Для каждой игры есть оценка, описание и, конечно, ссылка для скачивания.
Что не нужно запускать на DOSBox
Как бы ни был хорош DOSBox, но есть игры, которые нужно запускать другими методами.
Adventure-игры
ScummVM и Free SCI - два эмулятора, предназначенные исключительно для запуска графических adventure-игр от Lucas Arts и Sierra. Эти специализированные эмуляторы требуют меньше компьютерных ресурсов, ведь эмулируются лишь немногие функции движка игры, а не весь компьютер. Такие эмуляторы имеют дополнительные функции и интерфейс, заточенные под этот конкретный тип игр.
В ScummVM есть поддержка и других игр, которые не созданы Lucas Arts. Так что если вы хотите запустить подобную adventure-игру, сперва попробуйте эти два эмулятора, а если не получится - тогда обращайтесь к DOSBox.
Если вас привлекают текстовые квесты, тогда тоже стоит поискать специализированный текстовый эмулятор. Программирование текстового квеста по сути просто, и многие компании для своих игр использовали какой-либо один интерпретатор. Большинство популярных интерпретаторов с тех пор были переписаны заново и теперь доступны как свободное ПО. Как и в случае с эмуляторами графических adventure-игр, эти эмуляторы относительно легковесны и предоставляют функции, специфические для игр подобного класса.
Стрелялки от первого лица
Для многих классических стрелялок от первого лица были переписаны графические движки так, чтобы в них можно было играть на современных компьютерах. Такие переделки движков есть для игр Doom, Duke Nukem 3D и Quake, а также для многих других. Как и в случае с adventure-играми, обновленные игровые движки стрелялок содержат многочисленные улучшения оригинальной игры - повышенное разрешение, сглаживание текстур, трехмерный звук и т.п.
Windows-игры
У некоторых умельцев получилось установить и запустить Windows внутри DOSBox. Тем не менее, я не рекомендую DOSBox для запуска Windows-игр. DOSBox оптимизирован именно для запуска DOS-игр, а для запуска Windows-игр существуют более подходящие эмуляторы, и нужно использовать их.
Если вы хотите запускать Windows-игры из эмулируемого окружения, я порекомендую вам эмулятор типа Qemu или VMware. Эти эмуляторы при запуске Windows-приложений показывают большую производительность, чем DOSBox. Как упоминалось выше, DOS-игры требуют точной эмуляции аппаратного обеспечения, в то время как Windows-приложениям это не требуется, ведь в данном случае программные интерфейсы Windows слабо зависят от "железа".
К сожалению, некоторые старые игры, запускавшиеся в первых версиях Windows, перестали запускаться, к примеру, в Windows XP. Поэтому даже пользователи Windows найдут для себя пользу в использовании подобных эмуляторов.
Заключение
DOSBox предоставил людям возможность играть в игры DOS-эпохи на современных компьютерах. Без чего-то подобного многие эти игры были бы доступны лишь людям, у которых есть настоящий старый ПК.
Помимо простого запуска игр в защищенном современном окружении, DOSBox еще и улучшает некоторые аспекты оригинальных игр. Хотя в DOSBox ставка делается не на производительность, а на точность воспроизведения, тем не менее современных компьютеров (даже 2-3 лет давности) вполне хватает для запуска всех DOS-игр.
Можно упрекнуть разработчиков DOSBox лишь в двух вещах: все-таки интерфейс пользователя должен быть более продвинутым, и явно недостает функции сохранения текущего состояния.
DOSBox можно взять с веб-сайта проекта.