DOSBox

Материал из Old-Games.RU Wiki
Перейти к навигации Перейти к поиску

Общая информация

Описание

DOSBox - кроссплатформенный эмулятор x86-систем с открытым исходным кодом, создающий DOS-образную среду для запуска MS-DOS ориентированных приложений. Основной упор делается на запуск игр, хотя есть возможность запуска различных приложений, в том числе и оболочек наподобие MS Windows 3.1. В настоящее время он работает на таких системах как Linux, OpenBSD, FreeBSD, Windows, Mac OS, OS/2, Palm OS, RISC OS, BeOS. Так же существуют порты для КПК PocketPC под управлением Windows Mobile и карманных приставок PlayStation Portable и GP2X.

Чтобы запустить его и приступить к работе достаточно два раза кликнуть на .exe файле - никаких дополнительных действий не требуется. Все сведения о настройках программы содержатся в файле dosbox.conf, который можно изменить в любом текстовом редакторе. Последняя официальная версия на данный момент - 0.74. Неофициальные версии программы (DOSBox имеет открытый исходный код) выходят чуть ли не каждую неделю.

Эмулируемая аппаратура

DOSBox эмулирует:

Неофициальные билды

Тут надо что-то написать про корейский билд, про всякие там "йогурты" и т.п.

DOSBox CVS

Сборка отличается: Интерфейсом для настройки. Эмуляцией GLide, и Roland MT-32. Вертикальной синхронизацией. Режимом вывода картинки через direct3d с шейдерными фильтрами изображения.

Для эмуляции GLide использует OpenGLide. Включается в dosbox.conf, пункт [glide]. Настраивается в OpenGLid.ini.

Для эмуляции Roland MT-32 нужно найти РОМы с семплами, и положить их в директорию DOSBox. После запуска выбрать Sound>midi>device>MT32.

Все выше указанные отличия есть в сборке 11/28/2007. В сборке 09/28/2008 и 05/19/2009 отсутствует вывод через direct3d с шейдерными фильтрами. В сборке 04/11/2010 отсутствует эмуляция GLide и MT32, и вывод через direct3d с шейдерными фильтрами.

Сводка информации

  1. DOSBox - виртуальная машина, эмулятор, после запуска можно считать что вы работаете в досе. Подробнее о командах написано ниже.
  2. Виртуальная машина требует для работы с конкретным софтом настроек для вашего софта, это значит что есть фактически два основных этапа настройки.
  3. Первый - нужно сделать чтобы досбокс видел вашу папку с игрой или играми, подробнее об этом описано в описании команды mount ниже. В DOSBox нельзя просто перейти в папку на вашем диске, для начала вам нужно указать какую папку/диск вы собираетесь использовать.
  4. Для некоторых игр необходимо так же чтобы виделся образ с диском. Команда mount понимает не все типы образов, соответственно вам необходимо наличие любого эмулятора CD, вроде Daemon Tools, в который надо запихнуть образ и смонтировать виртуальный уже CD в досбоксе как обычный CD-ROM (как диск + ключи -cdrom -ioctl).
  5. Для ОЧЕНЬ старых игр требуется правильно выставить СКОРОСТЬ эмуляции - смотрите описание параметра cycles в файле конфигурации.
  6. Для удобства навигации и запуска нелишне поместить в монтируемою директорию файловый менеджер для DOS, и прописать его в автозапуске.
  7. Ну и остальное - тонкие и в основном необязательные настройки, играйте!

Основные команды

cd – команда для смены директории.
cd .. - перейти на один уровень вверх.
cd foldername перейти к подпапке данного каталога.
Для смены диска надо ввести X:, где X – буква диска.
dir – команда, для отображения содержимого директории, можно также использовать с ключами /w (вывод по столбцам), (пауза после каждого экрана).
mount - команда для подключения дисков в DOSBox.
Можно подмонтировать целый диск:

mount c d:\

Где c - это буква диска в Досбоксе, а d:\ - буква подключаемого диска.

А можно подмонтировать и директорию:

mount c d:\games

В данном случае папка games на физическом диске D будет использоваться как диск C в DOSBox.[1][2]

Также можно подключить CD-ROM и floppy-дисковод. Для подключения CD-ROM:

mount d e:\ -t cdrom

Можно подключить и папку с файлами на жёстком диске как CD-ROM. Если диск в CD-ROM'е должен иметь специальную метку, то можно обозначить её ключом -label. Для некоторых игр с CD-Audio треками может понадобиться параметр -ioctl.

Для того, чтобы подключить floppy-дисковод введите:

mount a a:\ -t floppy

Можно использовать как реальный дисковод, так и папку с файлами.

При монтировании можно использовать относительные пути (относительно расположения DOSBox.exe)

Пример структуры директорий:

C:
Program Files
   DOSBox
      Games
      DOSBox.exe
   DOS-games
      Blood


mount C .

Монтируется директория "DOSBox".

mount C .\Games

Монтируется директория "Games" в директории "DOSBox".

mount C ..

Поднимется выше директории "DOSBox", и смонтирует директорию "Program Files".

mount C ..\DOS-games

Поднимется выше директории "DOSBox", и смонтирует директорию "DOS-games".

mount C ..\DOS-games\Blood

Поднимется выше директории "DOSBox", и пойдёт ниже в директорию "DOS-games", смонтирует директорию "Blood".

("mount C ..." не сработает.)



Таким же образом вы можете изменять "на лету" значения различных настроек программы, например набрав в командной строке memsize=24, вы измените количество количество эмулируемой памяти до 24 мегабайт. Удобно тем, что не надо каждый раз выходить из DOSBox'а и править файл настроек.


Настройка

Звук

DOSBox эмулирует следующие звуковые карты: PС-Speaker, CMS/Gameblaster, AdLib, Sound Blaster, Gravis Ultrasound, MPU-401 и Roland MT-32.
То есть в программе настройки игры вы можете выбрать любую из них. Обычно предлагается выбрать отдельно карту для воспроизведения оцифрованного звука и карту для воспроизведения музыки, хотя бывает, что надо только одну.

Настройка эмуляции Sound Blaster

Практически все дос-игры 90-х годов имеют поддержку Sound Blaster, так что выбирать советую именно его, к тому же эмуляция бластера, по словам самих разработчиков, наиболее завершённая. Значения по умолчанию стоят такие:
IO (Port) - 220
IRQ (Interrupt Request) – 7
DMA Channel (Direct memory access) - 1
DMA 16-bit – 5.
В качестве музыкального устройства наиболее совместимым является General Midi – MPU-401, значение IO по умолчанию 330.

Настройка эмуляции Gravis Ultrasound

Как альтернативу можно использовать Gravis Ultrasound (GUS), в чём-то превосходивший SB по качеству звучания.

Для начала необходимо скачать все файлы, которые потребуются нам для настройки GUS под DOSBox:

  • Набор инструментов для воспроизведения музыки. Для DOSBox рекомендуется использовать набор GUS General MIDI Patch Set, который можно взять например здесь. Патч состоит из 9 архивов (для тех кому лень идти по ссылке)
  • Файл настроек банков инструментов ultrasnd.ini для вышеуказанного набора инструментов. Взять можно здесь.
  • Файлы loadpats.exe и patches.ini для инициализации и загрузки инструментов в память. Эти файлы я взял из игры Frontier: First Encounters.

Распаковываем loadpats.zip, patches.zip и ultrasnd.zip в папку C:\ULTRASND.
Распаковываем GUS General MIDI Patch Set в папку C:\ULTRASND\MIDI.

Теперь необходимо настроить DOSBox.
В файле настроек dosbox.conf есть такой раздел:

[gus]
# gus -- Enable the Gravis Ultrasound emulation.
# base,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the 
#            Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
# rate -- Sample rate of Ultrasound emulation.
# ultradir -- Path to Ultrasound directory.  In this directory
#             there should be a MIDI directory that contains
#             the patch files for GUS playback.  Patch sets used
#             with Timidity should work fine.

gus=false
rate=22050
base=240
irq1=5
irq2=5
dma1=3
dma2=3
ultradir=C:\ULTRASND>

Чтобы включить эмуляцию GUS'а присваиваем переменной gus значение true. Переменной rate присваиваем без объяснений с моей стороны значение 44100 (кто понял о чем речь, тот поймет, кто не понял, знать необязательно).
Некоторые игры для воспроизведения музыки требуют порт 220 для GUS'а. Так что будьте готовы к тому, что параметр base придется изменить на 220.
Переменная ultradir указывает на путь к банкам звуков относительно СМОНТИРОВАННОГО ДИСКА, смотрите не запутайтесь. Поскольку обычно первым диском монтируют диск C, то путь мы не меняем.

После внесенных изменений раздел [gus] должен принять следующий вид:

[gus]
# gus -- Enable the Gravis Ultrasound emulation.
# base,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the 
#            Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
# rate -- Sample rate of Ultrasound emulation.
# ultradir -- Path to Ultrasound directory.  In this directory
#             there should be a MIDI directory that contains
#             the patch files for GUS playback.  Patch sets used
#             with Timidity should work fine.

gus=true
rate=44100
base=220 # ставим 220 только если игра требует именно 220
irq1=5
irq2=5
dma1=3
dma2=3
ultradir=C:\ULTRASND

Переходим к загрузочной части dosbox.conf
В разделе [autoexec] добавляем следующие строки:

@echo off
mount c C:\
set path=c:;c:\ultrasnd;
c:
loadpats

Вот и всё! Можно загружать DOSBox и пытаться запустить нужную вам игру. Для звука выбирайте Sound Blaster 16 или Sound Blaster Pro, а для музыки - Gravis Ultrasound или его модификации.

P.S. Для эстетов могу посоветовать отыскать банк инструментов Utopia. Весит много, но по словам знающих людей, оно того стоит.


Видео

В основном игра сама определяет используемый видеорежим, хотя иногда его предлагают выбрать. Обычно это:

  • CGA (4 цвета)
  • EGA (16 цветов)
  • VGA (16 или 256 цветов)
  • SVGA (VESA).

Последний режим требует больше всего ресурсов. Также неофициальные версии DOSBox поддерживает Glide для DOS игр.

Фильтры изображения

В DOSBox существует встроенная возможность выводить изображения на экран, налагая на него различные фильтры. Это бывает полезно, когда игра использует низкое разрешение, например 320х200. С помощью фильтров можно увеличить его в два или три раза, применить различные варианты сглаживания картинки.
Включается это в файле dosbox.conf, на строчке Scaler, а если вы используете ykhwong build, то это можно сделать "на лету", выбрав нужный вариант из выпадающего меню.

Производительность

С подавляющим большинством игр 80-х и начала 90-х проблем не возникнет, появляться они начнут при запуске игр использующих продвинутую 3D-графику (шутеры, симуляторы) или VESA-графику.
Сразу оговорюсь, что системные требования для DOSBox весьма условные: если для простеньких игр середины 80-х хватит Pentium III или Celeron 500MHz, то для запуска 3D-шутеров может понадобится Athlon 2800+.
Для увеличения производительности игры можно увеличить скорость виртуального процессора (Ctrl-F12\Ctrl-F11 +\-). Возможно игре не хватает памяти, хотя для большинства ДОС-игр дефолтных 16-ти мегабайт хватит с головой. В этом случае нужно изменить параметр memsize.

Дополнительные функции

С помощью DOSBox'а вы можете снимать скриншоты, записывать звук (в т.ч. и midi) и даже сохранять видео. Все труды пользователя отправляются в папку Capture в папке с DOSBox.[3]
Список горячих клавиш:

  • CTRL-ALT-F5 - Начать/Закончить создание видеоролика в формате AVI (для воспроизведения может понадобиться установка кодека - он приложен к дистрибутиву программы).
  • CTRL-F5 - Сохранить скриншот в формате PNG.
  • CTRL-F6 - Начать/закончить запись аудиофайла в формате WAV.
  • CTRL-ALT-F8 - Начать/закончить запись команд MIDI.

Примеры настройки

Dune II

Попробуем запустить с помощью DOSBox игру Dune II:

Смонтируем в DOSBox директорию C:\Dosgames, где в папке Dune2 будет находиться сама игра (можно смонтировать и напрямик папку с игрой - как кому нравится):

mount C C:\Dosgames

Кстати, лучше выделять для игр отдельную папку, а не подключать в ДосБоксе целый диск, чтобы позже не возникало путаницы. Также можно вписать эту строчку в раздел autoexec файла dosbox.conf и она будет исполняться каждый раз при включении автоматически.

Далее переходим к нужной нам папке – Dune2:

cd Dune2

После этого нам понадобиться настроить игру – выбрать устройства для воспроизведения звука и музыки и, возможно, что-то ещё. Так, что запускаем файл настройки программы, в данном случае он называется setup.exe. Для того, чтобы запустить *.com, *.bat и *.exe файлы в Досе, равно как и Досбоксе, надо набрать их имя и нажать ввод:

setup.exe

В появившемся окне выбираем 1. Setup Questions, далее выбираем аудиокарту Sound Blaster Pro (можно и любую другую, поддерживаемую DosBoxом), в следующем окне нас спрашивают относительно того, хотим ли мы использовать "дополнительную" xms память. Отвечаем положительно (грех не воспользоваться возможностью). После этого говорим "ДА!" на вопрос об использовании мыши и жмём Y для сохранения настроек. Жмём 2, чтобы выйти из программы настройки. Хотя различные игры используют разные программы настроек, интерфейсом они почти не отличаются.

Ну и наконец находим исполняемый файл игры – DUNE2.EXE, и запускаем игру:

dune2.exe


The Elder Scrolls: Arena

Попробуем теперь запустить игру TES: Arena, которая имеется на компакт-диске.

Подключим диск C:

mount C C:\Dosgames

и CD-ROM

mount D F:\ -t cdrom

Перейдём на другой диск набрав:

D: 

Запустим программу для установки игры:

install.exe

Далее выберем путь установки и настроим игру (Configure Game). Выберем устройство для воспроизведения звука - Sound Blaster Pro Or 16. Замечу, что в данном случае программа сама определяет IO\IRQ\DMA- настройки устройства, и ничего выбирать не надо. Выберем устройство для воспроизведения музыки General Midi or MPU-401.

Далее выйдем из программы установки (Exit) и запустим игру из папки, в которую её установили.

Если у вас много DOS-игр, не требующих уникальных настроек для каждой

Можно скачать DOS-файловый менеджер типа Volkov Commander и распаковать её, например, в C:\DOSGAMES\VC. Остальные DOS-игры поместить в подпапки DOSGAMES. Далее, откройте в Блокноте или другом текстовом редакторе файл (путь для Windows 7/Vista) C:\Users\имя_вашего_пользователя\AppData\Local\DOSBox\dosbox-0.74.conf и напишите после [autoexec] и комментариев (начинающихся с #) следующее:

mount c: c:\dosgames
c:
\vc\vc
exit

После этого при запуске DOSBox у вас сразу появится Volkov Commander (VC), в которой стрелками можно перемещаться по папкам и запускать любые исполняемые файлы. Это избавит вас от необходимости печатать пути к играм и названия исполняемых файлов вручную. Запущенный VC отнимает совсем немного DOS-памяти. для подавляющего большинства (или даже всех?) игр это не помеха. Менять диски в VC можно кнопками Alt-F1 и Alt-F2, переключаться между двумя окнами - кнопкой Tab.

Установка Windows 95/98 на DOSBox

Для этого понадобится, дистрибутив Windows95/98, образ загрузочной дискеты с FDISK.EXE и FORMAT.EXE (в формате ".IMG"), утилита bximage, и WinImage.

      1. Утилитой bximage создать фиксированный образ жесткого диска на 504mb.

      2. В настройке DOSBox`а, в пункте [cpu] сменить "cputype=auto" на "cputype=pentium_slow" (С "auto" глючит драйвер "S3 Trio32/64 PCI", не устанавливается DirectX, после загрузки Win98SE завершается с ошибкой explorer.exe и ещё несколько компонентов), после [autoexec] прописать команды монтирования созданного образа жесткого диска, и загрузки с образа загрузочной дискеты:

imgmount 2 "путь к директории\образ жесткого диска.img" -size 512,63,16,ХХХ -t hdd -fs none
BOOT "путь к директории\образ загрузочной дискеты.IMG"

(2 = master, 3 = slave. В место "ХХХ" вписать количество цилиндров)

      3. Запустить DOSBox. После загрузки с образа загрузочной дискеты, создать раздел на образе жесткого диска (FDISK.EXE), и отформатировать его под fat (FORMAT.EXE (команда "FORMAT C:")). Закрыть DOSBox.

      4. На только что отформатированный образ жесткого диска, перенести с помощью WinImage дистрибутив Windows.

      5. Смонтировать отформатированный образ жесткого диска как "c", в настройке DOSBox`а, после [autoexec], заменить команду:

imgmount 2 "путь к директории\образ жесткого диска.img" -size 512,63,16,ХХХ -t hdd -fs none

на:

imgmount c "путь к директории\образ жесткого диска.img" -size 512,63,16,ХХХ -t hdd -fs fat

(В место "ХХХ" вписать количество цилиндров.)

      6. Запустить DOSBox. После загрузки с образа загрузочной дискеты, запустить инсталлятор Windows (setup.exe), и начать установку ОС (если запустить setup во встроенном ДОСе, повиснет скандиск, а если его пропустить (setup.exe /is), установочные файлы будут копироваться с ошибками).

      7. После того как на стадии "перезагрузка компьютера" DOSBox закроется, установить загрузку с "c". Для этого в настройке DOSBox-а, пункт [autoexec], заменить команду:

BOOT "путь к директории\образ загрузочной дискеты.IMG"

На:

BOOT -l c

Снова запустить DOSBox (Если на "завершение работы Windows" DOSBox повиснет – закрыть вручную.).


Примечания к установке:


Устанавливалось на версию 0.73 официальной сборки.

При загрузки сторонней ОС, будут доступны только образы жестких дисков и дискет. К примеру:

imgmount c "c.img" -size 512,63,16,1024 -t hdd -fs fat
imgmount f "d.img" -size 512,63,16,1024 -t hdd -fs fat
imgmount d "Gold Soft 7.iso" -t iso -fs iso
mount e "l:\" -t cdrom -usecd 0
mount y "DOS-Games"
BOOT "DOS622_1.IMG" "DOS622_2.IMG" "DOS622_3.IMG" -l c

Монтируются 2 образа жестких дисков, образ СД, СД-РОМ, директория, 3 образа дискет (переключения CTRL+F4), и загружается с диска "c". Но после загрузки ОС, будут доступны только образы жестких дисков (как "c" и "d"), и дискет (как "a"). Поэтому придётся файлы на образы жестких дисков через WinImage переносить.


bximage v1.32 - Утилита для создания виртуальных жестких дисков, и дискет, формата ".img", входит в состав эмулятора Bochs (Также в архиве пустой образ на 504mb, отформатированный под fat).

Работа с утилитой:

  1. Выбрать создания образа жесткого диска "hd" (по умолчанию), или дискеты "fd".
  2. Выбрать тип образа жесткого диска, фиксированный "flat" (по умолчанию), или динамический "growing".
  3. Ввести размер жесткого диска, в мегабайтах.
  4. Ввести имя файла образа ("c.img" по умолчанию).
  5. Ввести подтверждения на создания образа "yes" ("no" по умолчанию).
  6. Запомнить количество цилиндров "cylinders".

DOSBox не поддерживает динамические образы, и более 1024 цилиндров (что = 504mb), а также работает только с fat.

Не отформатированные образы монтируются так:

imgmount 2 "c.img" -size 512,63,16,ХХХ -t hdd -fs none

(2 = master, 3 = slave. В место "ХХХ" вписать количество цилиндров)

Отформатированные монтируются так:

imgmount c "c.img" -size 512,63,16,ХХХ -t hdd -fs fat

(параметры "-size 512,63,16,ХХХ" и "-fs fat" можно не указывать, должны автоматически определится)


Ссылки

Примечания

  1. В некоторых случаях может понадобиться указать размер свободного места на диске т.к. игра будет отказываться видеть свободное пространство и писать о недостатке места, делается это ключом -freesize и указанием дискового пространства в мегабайтах.
  2. С версии 0.73 это исправляется по умолчанию.
  3. По умолчанию, можно переназначить в файле конфигурации.