DOSBox
Общая информация
Описание
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.73. Неофициальные версии программы (DOSBox имеет открытый исходный код) выходят чуть ли не каждую неделю.
Эмулируемая аппаратура
DOSBox эмулирует:
- процессор до 386 (в режимах 286/386 realmode/protected mode, под WinCE только 286)
- файловую систему
- образы CD-дисков (.iso и .cue/.bin), жёстких дисков и дискет (.img)
- XMS/EMS/UMB память
- графику Tandy/Hercules/CGA/EGA/VGA/VESA (VESA - некоторые режимы SVGA)
- внутренний PC-динамик (PC Speaker)
- звуковые платы Creative CMS/Gameblaster, Tandy 3 voice, Tandy DAC, AdLib, Sound Blaster 16/Sound Blaster Pro 1&2/Sound Blaster 1&2, Disney SoundSource, Gravis Ultrasound, MPU-401.
Неофициальные билды
Тут надо что-то написать про корейский билд, про всякие там "йогурты" и т.п.
Сборка отличается: Интерфейсом для настройки. Эмуляцией 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 с шейдерными фильтрами.
Сводка информации
- DOSBox - виртуальная машина, эмулятор, после запуска можно считать что вы работаете в досе. Подробнее о командах написано ниже.
- Виртуальная машина требует для работы с конкретным софтом настроек для вашего софта, это значит что есть фактически два основных этапа настройки.
- Первый - нужно сделать чтобы досбокс видел вашу папку с игрой или играми, подробнее об этом описано в описании команды mount ниже. В DOSBox нельзя просто перейти в папку на вашем диске, для начала вам нужно указать какую папку/диск вы собираетесь использовать.
- Для некоторых игр необходимо так же чтобы виделся образ с диском. Команда mount понимает не все типы образов, соответственно вам необходимо наличие любого эмулятора CD, вроде Daemon Tools, в который надо запихнуть образ и смонтировать виртуальный уже CD в досбоксе как обычный CD-ROM (как диск + ключи -cdrom -ioctl).
- Для ОЧЕНЬ старых игр требуется правильно выставить СКОРОСТЬ эмуляции - смотрите описание параметра cycles в файле конфигурации.
- Для удобства навигации и запуска нелишне поместить в монтируемою директорию файловый менеджер для DOS, и прописать его в автозапуске.
- Ну и остальное - тонкие и в основном необязательные настройки, играйте!
Основные команды
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) <toggledisplay showtext="Показать примеры монтирования с относительными путями" hidetext="Скрыть примеры монтирования с относительными путями"> Пример структуры директорий:
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 ..." не сработает.)
</toggledisplay>
Таким же образом вы можете изменять "на лету" значения различных настроек программы, например набрав в командной строке 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 архивов (для тех кому лень идти по ссылке) <toggledisplay showtext="Показать список файлов" hidetext="Скрыть список файлов">
- Файл настроек банков инструментов 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. Весит много, но по словам знающих людей, оно того стоит. <toggledisplay showtext="Показать ссылки" hidetext="Скрыть ссылки">
- Utopia Sound Bank ISO - part 1 (100 Mb)
- Utopia Sound Bank ISO - part 2 (100 Mb)
- Utopia Sound Bank ISO - part 3 (100 Mb)
- Utopia Sound Bank ISO - part 4 (48 Mb)
</toggledisplay>
Видео
В основном игра сама определяет используемый видеорежим, хотя иногда его предлагают выбрать. Обычно это:
Последний режим требует больше всего ресурсов. Также неофициальные версии DOSBox поддерживает Glide для DOS игр.
Фильтры изображения
В DOSBox существует встроенная возможность выводить изображения на экран, налагая на него различные фильтры. Это бывает полезно, когда игра использует низкое разрешение, например 320х200. С помощью фильтров можно увеличить его в два или три раза, применить различные варианты сглаживания картинки.
Включается это в файле dosbox.conf, на строчке Scaler, а если вы используете ykhwong build, то это можно сделать "на лету", выбрав нужный вариант из выпадающего меню.
Производительность
С подавляющим большинством игр 80-х и начала 90-х проблем не возникнет, появляться они начнут при запуске игр использующих продвинутую 3D-графику (шутеры, симуляторы) или VESA-графику.
Сразу оговорюсь, что системные требования для DOSBox весьма условные: если для простеньких игр середины 80-х хватит Pentium 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: <toggledisplay> Смонтируем в 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
</toggledisplay>
The Elder Scrolls: Arena
Попробуем теперь запустить игру TES: Arena, которая имеется на компакт-диске. <toggledisplay> Подключим диск 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) и запустим игру из папки, в которую её установили. </toggledisplay>
Установка Windows 95/98 на DOSBox
Для этого понадобится, дистрибутив Windows95/98, образ загрузочной дискеты с FDISK.EXE и FORMAT.EXE (в формате ".IMG"), утилита bximage, и WinImage.
- Утилитой bximage создать фиксированный образ жесткого диска на 504mb.
- В настройке 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. В место "ХХХ" вписать количество цилиндров)
- Запустить DOSBox. После загрузки с образа загрузочной дискеты, создать раздел на образе жесткого диска (FDISK.EXE), и отформатировать его под fat (FORMAT.EXE (команда "FORMAT C:")). Закрыть DOSBox.
- На только что отформатированный образ жесткого диска, перенести с помощью WinImage дистрибутив Windows.
- Смонтировать отформатированный образ жесткого диска как "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
(В место "ХХХ" вписать количество цилиндров.)
- Запустить DOSBox. После загрузки с образа загрузочной дискеты, запустить инсталлятор Windows (setup.exe), и начать установку ОС (если запустить setup во встроенном ДОСе, повиснет скандиск, а если его пропустить (setup.exe /is), установочные файлы будут копироваться с ошибками).
- После того как на стадии "перезагрузка компьютера" DOSBox закроется, установить загрузку с "c". Для этого в настройке DOSBox-а, пункт [autoexec], заменить команду:
BOOT "путь к директории\образ загрузочной дискеты.IMG"
На:
BOOT -l c
Снова запустить DOSBox (Если на "завершение работы Windows" DOSBox повиснет – закрыть вручную.).
Примечания к установке: <toggledisplay showtext="Показать примечания к установке" hidetext="Скрыть примечания к установке">
Устанавливалось на версию 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).
Работа с утилитой:
- Выбрать создания образа жесткого диска "hd" (по умолчанию), или дискеты "fd".
- Выбрать тип образа жесткого диска, фиксированный "flat" (по умолчанию), или динамический "growing".
- Ввести размер жесткого диска, в мегабайтах.
- Ввести имя файла образа ("c.img" по умолчанию).
- Ввести подтверждения на создания образа "yes" ("no" по умолчанию).
- Запомнить количество цилиндров "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" можно не указывать, должны автоматически определится) </toggledisplay>
Ссылки
- Обсуждение проблем запуска игр под DOSBox на форуме Old-Games.RU.
- Официальный сайт DOSBox.
- Раздел с DOSBox на Old-Games.RU.
- Неофициальный (корейский) билд DOSBox.
Примечания
- ↑ В некоторых случаях может понадобиться указать размер свободного места на диске т.к. игра будет отказываться видеть свободное пространство и писать о недостатке места, делается это ключом -freesize и указанием дискового пространства в мегабайтах.
- ↑ С версии 0.73 это исправляется по умолчанию.
- ↑ По умолчанию, можно переназначить в файле конфигурации.