4 подписчика

DOSBOX и как его "приготовить".

227 прочитали

Доброго времени суток. В прошлой статье я упомянул о таком эмуляторе, как DOSBOX. Как и любой эмулятор, этот программный продукт предназначенный в первую очередь для запуска старых PC игр, имеет как свои недостатки, так и свои плюсы.

Доброго времени суток. В прошлой статье я упомянул о таком эмуляторе, как DOSBOX.

Давайте попробуем разобраться, в чём плюсы и минусы DOSBOX. Сразу предупреждаю - статья не будет короткой.

Из плюсов я бы хотел отметить достаточную лёгкость в освоении (если не брать в расчёт желание тонкой настройки эмулятора, о чём будет написано ниже), не нужно изучать десятки страниц текста и лазить по форумам в поисках информации как это всё запустить. Как правило, достаточно запомнить несколько команд и вы сможете запустить почти любую игру эпохи DOS на любом относительно современном ПК. Например для запуска такой игры как WarCraft2 мне хватает ноутбука 2006-го года выпуска, на базе процессора Intel Pentium-M с частотой 2ГГц. При этом ничего не тормозит и играется просто отлично, особенно летними вечерами на даче в беседке. Сам по себе DOSBOX умеет работать с геймпадами и джойстиками, не требует какой либо настройки мыши и самое главное, умеет эмулировать большое количество звуковых карт из конца 80-х и 90-х годов.

Из минусов отмечу не самое удобное конфигурирование самого эмулятора, настройка производиться путём редактирования конфигурационного файла. DOSBOX может эмулировать достаточно обширный круг устройств, но для получения хорошего результата необходимо его настроить. И на этапе настройки как правило и возникает основная масса вопросов. Как я уже писал выше, почти все игры можно запустить с настройками "по умолчанию". Но такие настройки далеко не всегда оптимальны. Особенно это касается настроек звука. Дело в том, что на рубеже 80-х и 90-х годов на рынке PC звука было несколько крупных игроков. Одни дожили до наших дней, например Creative и Roland, другие к сожалению нет, примером могут быть канадские компании Ad Lib inc и Advanced Gravis Computer Technology. Весь этот "зоопарк" звуковых устройств того времени звучал абсолютно по разному. Для примера можете послушать, как звучит заглавная композиция одной из моих любимых игр на разных устройствах через DOSBOX.

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

Давайте теперь пробежимся по основным настройкам DOSBOX. После скачивания архива и установки, в случае если Вы используете OS Windows, в меню "Пуск" появиться вот такой пункт:

DOSBOX в меню "Пуск" Windows 10
DOSBOX в меню "Пуск" Windows 10

Нас интересует DOSBOX Options. Открываем его и видим следующее:

Файл конфигурации DOSBOX.
Файл конфигурации DOSBOX.

Сейчас постараюсь объяснить, что тут для чего. Итак, как написано на второй строке, все строки которые начинаются с символа # это строки с комментариями, в них описано, какая настройка за что отвечает. Строки выделенные квадратными скобками, это блоки, они объединяют настройки относящиеся к одному типу. Например в блоке [cpu] указываются параметры относящиеся к настройкам эмулируемого процессора и скорости работы DOSBOX в целом. Блок [midi] отвечает за настройку музыки, и так далее.

Первый блок называется SDL и отвечает за то, как будет взаимодействовать DOSBOX с Вашим реальным "железом". Если не углубляться в эти настройки - можно оставить всё по умолчанию, всё будет работать и так.

Второй блок - [dosbox]. Он отвечает за основные настройки эмулятора.

language - выбор языка для внутренней справки DOSBOX. Не уверен, что будет работать, т.к. последний файл с русской локализацией справки был выпущен для версии 0.74. Текущая актуальная версия эмулятора 0.74-3.

machine - тут можно было бы предположить, что это выбор типа компьютера, но нет. Тут выбирается тип видеокарты. По умолчанию указано svga_s3 и можно ничего не менять, т.к. сами видеоадаптеры производства S3 Graphics имели отличную совместимость с более старыми стандартами vga и ega и в большинстве случаев всё и так прекрасно работает. Отдельно стоит упомянуть про вариант "tandy", когда дойдём до настройки звука, я чуть подробнее там опишу что и зачем, но указав тут вместо "svga_s3" "tandy" можно будет послушать как звучал во второй половине 80-х 3-голосый синтезатор устанавливаемый на копьютеры Tandy 1000.

captures - указывается папка в которую будут сохраняться по умолчанию скриншоты и аудиозаписи. DOSBOX может записывать музыку и звуки из игр а так же сохранять скриншоты. Всё это будет появляться в указанной папке.

memsize - указывается количество оперативной памяти которая будет доступна внутри эмулятора. 16 мегабайт в большинстве случаев хватит для всех игр. Из того что не запуститься с таким количеством ОЗУ на вскидку могу вспомнить первый Fallout, ему нужно 32Мб и польскую игру Pyl, ей нужно 64Мб. Однако для получения приемлемой производительности в игре Pyl нужно иметь в системе процессор уровня I5-4xxx на частоте порядка 4Ггц, чтобы получить в DOSBOX производительность уровня Pentium III на частоте 500Мгц.

[render] - блок в котором настраиваются параметры вывода графики в эмуляторе.

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

aspect - настройка позволяет сохранять "правильные" пропорции при запуске игр у которых соотношение сторон не равно 4:3. Например куча игр работающих в разрешении 320*200. без включения этой настройки будут выглядеть как широкоформатные. Для примера 2 скриншота игры DOOM. Первый вариант без включенной настройки, второй с включенной. Как видите второй вариант больше похож на изображение с монитора у которого соотношение сторон 4:3. Я лично предпочитаю включать данную настройку.

aspect=false
aspect=false
aspect=true
aspect=true

scaler - настройка которая определяет, будет ли использоваться увеличение разрешения выводимой картинки и различные "улучшалки" изображения. Я предпочитаю оставлять по умолчанию - normal2x. Но Вы можете попробовать изменить данный параметр и подобрать то, что подойдёт именно Вам.

[cpu] - тип эмулируемого процессора. Тут как правило можно ничего не менять. Всё работает как говориться "из коробки".

[mixer] - ну вот и добрались до одних из самых главных блоков настройки эмулятора. Именно этот и следующие несколько блоков отвечают за то, как будут звучать игры. Первый блок отвечает за настройки звука в эмуляторе в целом.

nosound - настройка позволяет отключить звук в DOSBOX. Однако эта настройка не отключит сам процесс эмуляции звука.

rate - частота дискретизации эмулируемого звука. Должна совпадать с частотой дискретизации эмулируемых звуковых устройств. Чем выше указана частота, тем выше требования к Вашему "железу".

blocksize - размер блока микширования. Можно оставить как есть.

prebuffer - время задержки вывода блока микширования. Рекомендую так же оставить как есть.

[midi] - MIDI это стандарт при помощи которого могут обмениваться информацией различные устроства. Например ПК и внешний синтезатор. Именно в данном разделе можно указать на различные устройства подключенные к Вашему ПК. Если у Вас таких синтезаторов нет, установите эмулятор. Например MUNT для эмуляции Roland MT-32.

mpu401 - режим работы интерфйса mpu401. По умолчанию указан intelligent, его и оставляем.

mididevice - тут надо указать, через что музыка будет выводиться. Если у Вас Windows - оставляем default или win32

midiconfig - тут указываем на какое MIDI устройство в системе будет посылаться поток данных. Указывать нужно ID MIDI устройства в самом DOSBOX. Для того чтобы узнать ID в эмуляторе наберите mixer /listmidi

DOSBOX с запущенным одновременно MUNT
DOSBOX с запущенным одновременно MUNT

Как видно выше, в системе теперь есть два MIDI устройства, Microsoft GS Wavetable Synth и MT-32 Synth Emulator. Запоминаем номер "1" и указываем его в файле настроек. Всё, теперь можно запускать игры с поддержкой синтезатора MT-32. Если указать "0" можно запускать игры с поддержкой GeneralMIDI.

[sblaster] - блок в котором можно указать какую звуковую карту производства компании Creative будет эмулировать DOSBOX.

sbtype - настройка в которой указывается тип звуковой карты. По умолчанию указано sb16, что соответсвует карточкам SoundBlaster16, которые выпускались c 1992-го года. Для DOS игр я рекомендую изменить эту настройку и указать sbpro2.

sbbase, irq, dma, hdma - тут указываются настройки для прерывания, базовый порт ввода-вывода и каналы DMA для эмулируемой карты. Можно не менять, но нужно запомнить эти настройки. Некоторые игры не умеют автоматически определять настройки звуковой карты и их надо указать руками.

sbmixer - настройка позволяющая микшеру SoundBlaster изменять микшер DOSBOX.

oplmode - на картах производства компании Creative до определённого времени устанавливались чипы FM синтеза производства Yamaha. По умолчанию указано auto, что соответсвует типу FM синтезатора который был установлен на звуковой плате. Например SB16 использовал так называемый OPL3 синтезатор, а SB Pro два OPL2 чипа.

oplemu - настройка для эмуляции FM синтеза. Влияет только на точность этой эмуляции - можно оставить default.

oplrate - частота дискретизации для FM синтеза. Для исключения ошибок должна быть равна настройке rate из блока [mixer].

[gus] - блок в котором указываются настройки для эмуляции карт производства компании Advanced Gravis Computer Technology.

gus - изменив эту настройку с false на true можно включить эмуляцию звуковой карты GUS

gusrate - частота дискретизации эмулируемого звука. Должна быть равна настройке rate из блока [mixer].

gusbase, gusirq, gusdma - настройки аналогичные тем, которые указывались для эмуляции карт Creative. Тут надо добавить, что в DOSBOX возможна эмуляция сразу нескольких карт одновременно. Но в таком случае номера каналов DMA, запросов на прерывание и базовые порты не должны пересекаться. По умолчанию в настройках уже всё настроено таким образом, чтобы ничего не пересекалось. Данные настройки можно не менять, но опять же запомнить надо, не все игры умеют автоматически определять настройки, иногда нужно всё прописывать руками.

ultradir - тут нужно указать папку где храняться файлы от драйверов карточек GUS. Помимо того, что в папке есть необходимый для запуска софт, в этой папке ещё должны храниться так называемые саундпатчи. Файлы которые на реальном "железе" должны подгружаться в память звуковой карты для проигрывания музыки. Для эмуляции данные файлы так же нужны, поэтому нужно скачать себе архив с установленными драйверами и патчами и подложить в папку, например где у Вас храняться ДОС игры. Чуть ниже покажу как сделано у меня.

[speaker] - Последний блок отвечающий за эмуляцию звука. Как понятно из названия, тут настраивается так называемый спикер. Тот самый, что после прохождения процедуры POST подаёт один звуковой сигнал. Если процедура POST не пройдена, спикер должен выдать другие звуки, например если есть неполадки с оперативной памятью, как правило подаётся сигнал состоящий из попеременно звучащих коротких и длинных сигналов. Однако во второй половине 80-х годов, программисты научились через спикер воспроизводить музыку в играх. Для компьтеров производства компании IBM и клонов появившихся позднее это была самая первая музыка.

pcspeaker - включает и выключает эмуляцию спикера. Аналогично настройке gus из предыдущего блока.

pcrate - частота дискретизации звука, как обычно должна равняться настройке rate из блока [mixer].

tandy - в ноябре 1984 года компания Tandy Corporation выпустила свой первый ПК совместимый с компьютером IBM PCjr. Этот компьютер работал под управлением операционной смстемы MS-DOS. Самое интересное в нём было то, что вместо обычного спикера, на материнской плате был распаян простенький синтезатор на базе микросхемы SN76496 производства компании Texas Instruments. Этот чип имел целых три голоса и 1 канал для создания так называемого шума. Обычный спикер при этом был одноголосым. При этом как такого спикера на компьютерах Tandy небыло. Все звуки создавались при помощи чипа и проигрывались через втроенный динамик. Поэтому логично, что звук использовавшийся в этих компьютерах отнесён именно в блок спикера. Настройка по умолчанию стоит в "auto", это значит, что для включения эмуляции нужно изменить настройку

Компьютер Tandy 1000 собственной персоной. Фотография взята с сайта https://www.vintagecomputer.net
Компьютер Tandy 1000 собственной персоной. Фотография взята с сайта https://www.vintagecomputer.net

tandyrate - частота дискретизации звука Tandy 1000. Вы уже точно знаете чему должна равняться ))

disney - ещё один пример довольно странного звука из 80-х годов прошлого века. Изначально простейший цифро-аналоговый преобразователь на резисторах в 1987 году выпустила компания Covox Inc. Устройство подключалось к параллельному порту компьютера и позволяло через себя выводить звук. Именно звук а не музыку. В начале 90-х годов компания Disney выпустила свой вариант этого ЦАП с усилителем и динамиком идущим сразу в комплекте. Можете попробовать включить данну настройку и послушать как звучат Duke Nukem 3D или Wolfenstein 3D.

[joystick] - блок для настройки джойстиков и геймапод для работы в DOSBOX. Честно говоря никогда не настраивал этот блок, ибо небыло необходимости. Однако судя по перечисленным настройкам, DOSBOX по умолчанию должен работать с тем устройством которое присутствует в системе. Если устройство не найдено - ничего эмулироваться не будет.

[serial] - ещё 1 интересный блок, позволяющий настраивать для DOSBOX реальные COM порты. Может быть полезно в случае использования модемов или соединения двух ПК через последовательные порты. Вдруг вы захотите в приятелем поиграть во второй Варкрафт через нульмодемный кабель? И да, кабели до сих пор можно купить в магазине новые )). Опять таки, сам не настраивал, но если будет интерес, могу сделать потом отдельный пост про настройку.

[dos] - блок настройки DOS окружения.

xms и ems включают или отключают поддержку меденжеров памяти для работы с объёмами ОЗУ больше 1 мегабайта. По умолчанию обе настройки включены и не требуют к себе никакого внимания, однако есть небольшое количество игр и софта, которые не работают при наличии в системе того или иного менеджера памяти. Списков такого програмного обеспечения я не знаю, тут к сожалению только опытным путём разбираться, если что-то из совсем старого не запускается, можно попробовать отключить один менеджер, другой менеджер или оба.

umb - включает возможность эмуляции ОЗУ которая находиться за пределами 640Кб (Которых в будущем хватит всем) и до первого мегабайта. На реальных ПК того времени туда загружались различные драйвера и часть операционной системы MS DOS. Рекомендую оставить включённой.

keyboardlayout - настройка для указания раскладки клавиатуры. У меня стоит в "auto" и в DOSBOX работает английская раскладка. Меня устраивает такой вариант.

[ipx] - блок для настройки поддержки локальных сетей. Никогда не настраивал. Опять же - будет спрос, сделаю разбор и этой настройки.

[autoexec] - а в этом блоке можно настроить параметры с которыми будет запускаться эмулятор. Например, на диске D у Вас есть папка OldGames, куда Вы сохраняете все старые игры в которые хотите поиграть. Если просто запустить DOSBOX то можно увидеть следующее:

DOSBOX запущенный безt numo настроек в блоке autoexec
DOSBOX запущенный безt numo настроек в блоке autoexec

Как видно, тут вообще указан диск Z , которого по факту нигде нет. Это виртуальный диск создаваемый эмулятором при запуске. При этом, сам DOSBOX не "знает" ничего про Ваши диски и папки. Всё нужно будет указывать руками. Для того чтобы в эмуляторе появился каталог с играми попробуйте прописать в командной строке следующее: mount c d:\Oldgames, если Ваши игры действительно лежат в такой папке на диске D. Если диск или папка другие, укажите свои. В результате эмулятор напишет следующее:

Диск C смонтирован как локальный каталог по адресу F:\oldgames
Диск C смонтирован как локальный каталог по адресу F:\oldgames

Теперь набираем команду c: и попадаем на нужный нам диск

Доброго времени суток. В прошлой статье я упомянул о таком эмуляторе, как DOSBOX.-10

Далее командой dir убеждаемся, что мы попали именно в нужный нам каталог.

Тут у меня для примера есть 2 игры.
Тут у меня для примера есть 2 игры.

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

Добавил 2 строки а втозапуск
Добавил 2 строки а втозапуск

Ну и напоследок надо наверное ещё рассказать про CD-ROM. К середине 90-х годов игры начали повсеместно распространяться на компакт дисках. DOSBOX пусть и ограниченно, но может так же эмулировать устройства для чтения компакт дисков. На самом деле именно DOSBOX не умеет работать напрямую с образами этих самых дисков, но по аналогии с подключением папок на жестком диске, DOSBOX может подключать и CD-ROM. При этом самому эмулятору абсолдютно без разницы, привод будет реальным (сомневаюсь, что кто-то ещё держит у себя в компьютере такое устройство) или виртуальным. Для получения в системе виртуального CD/DVD/BD ROM я лично уже почти 20 лет использую бесплатную утилиту Daemon Tools Lite. Её легко установить и настройка виртуального устройства не займёт много времени и сил. Но зато после этого, можно подгружать в виртуальный привод образ нужного диска и далее всё это можно использовать в DOSBOX.

Для подключения виртуального привода в DOSBOX нужно ввести команду: mount d f:\ -t cdrom в случае, если буква вашего виртуального устройства именно F. Если виртуальный привод имеет другую букву, замените её в команде. после выполнения команды, в системе появиться ещё один диск и его содержание будет точно таким же как в образе диска. При этом сразу рекомендую эту команду прописать так же в конец файла настройки. Таким образом у Вас сразу будет добавлен и CD-ROM.

И ещё, в блоке про эмуляцию звука от компании Gravis я писал что нужно положить папку с драйверами в ту же папку где лежат игры. Подключая папку с играми, автоматом будет подключаться и папка с драйверами Грависа. По умолчанию папка указана как c:\ultrasnd так вот это не папка на Вашем ПК, это папка которую должен видеть эмулятор!

Вот собственно и всё на сегодня. Удачной игры!

Готов ответиьь на вопросы если таковые возникнут.

Спасибо за внимание, подписывайтесь, а я буду и дальше писать про старые игры и копьютерное "железо".

#ретро игры #компьютерное железо #компьютерные игры