DOSBox для пользователей
Настройка звука в DOSBox
DOSBox эмулирует следующие звуковые карты: PС-Speaker, CMS/Gameblaster, AdLib, Sound Blaster, Gravis Ultrasound, MPU-401 и Roland MT-32.
То есть в программе настройки игры вы можете выбрать любую из них. Обычно предлагается выбрать отдельно карту для воспроизведения оцифрованного звука и карту для воспроизведения музыки, хотя бывает, что надо только одну. Ниже описывается настройка эмуляции звуковой карты Sound Blaster, в качестве альтернативы можно использовать карту Gravis Ultrasound - ее настройка описана в руководстве для "экспертов". В качестве музыкального устройства можно использовать General Midi – MPU-401, значение IO для него по умолчанию - 330.
Настройка эмуляции Sound Blaster
Практически все DOS-игры 90-х годов имеют поддержку Sound Blaster, так что выбирать советую именно его, к тому же эмуляция "бластера", по словам самих разработчиков, наиболее завершённая. Значения по умолчанию стоят такие:
- IO (Port) - 220
- IRQ (Interrupt Request) – 7
- DMA Channel (Direct memory access) - 1
- DMA 16-bit – 5.
Видео
В основном игра сама определяет используемый видеорежим, хотя иногда его предлагают выбрать. Обычно это:
Последний режим требует больше всего ресурсов. Также неофициальные версии 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 +\-). Возможно, игре не хватает памяти, хотя для большинства DOS-игр дефолтных 16-ти мегабайт хватит с головой. В этом случае нужно изменить параметр memsize.
Дополнительные функции
С помощью DOSBox'а вы можете снимать скриншоты, записывать звук (в том числе и midi) и даже сохранять видео. Все труды пользователя отправляются в подпапку Capture в папке с DOSBox.[1]
Список горячих клавиш:
- CTRL-ALT-F5 - Начать/Закончить создание видеоролика в формате AVI (для воспроизведения может понадобиться установка кодека - он приложен к дистрибутиву программы).
- CTRL-F5 - Сохранить скриншот в формате *.PNG.
- CTRL-F6 - Начать/закончить запись аудиофайла в формате *.WAV.
- CTRL-ALT-F8 - Начать/закончить запись команд *.MIDI.
Параметры и разделы файла dosbox.conf
Естественно, для каждой игры лучше всего настраивать конфигурацию DOSBox'а отдельно. Оптимальным решением будет использование отдельного .conf файла для каждой игры (с максимально подходящими для неё настройками). Для удобства можно запускать DOSBox с помощью ярлыков (shortcut) следующим образом:
"DOSBox.exe -conf "DOSbox-GameName.conf"
При создании данного руководства использовалась информация из [2].
[sdl]
Этот раздел содержит все низкоуровневые настройки, с помощью которых DosBox взаимодействует с вашим реальным железом. Вы можете настроить разрешения, которые будут эмулироваться, как DosBox будет вести себя при возникновении ошибок и как он будет реагировать на действия, произведённые с помощью вашей мыши, клавиатуры и джойстика. Вы можете достигнуть высокого уровня оптимизации, изменяя эти настройки, однако в большинстве случаев стандартные настройки являются лучшим решением. Эти настройки изменяют параметры библиотеки SDL, которая на низком уровне работает с входными данными, а также позволяют изменить приоритет DOSBox'а.
- fullscreen = true | false (полный экран = истинно | ложно)
Запускать DOSBox в полноэкранном режиме.
По умолчанию false (ложно).
(Начиная с версии: 0.??)
- fulldouble = true | false (полный двойная = истинно | ложно)
Использовать двойную буферизацию в полноэкранном режиме. Смотрите [1]
По умолчанию false (ложно).
(Начиная с версии: 0.??)
- fullresolution = width x height | original (полноэкранное разрешение = ширина х высота | оригинальное)
Изменение размеров приложения до указанного размера, если устройство вывода изображения поддерживает аппаратное масштабирование (hardware scaling) (то есть любые методы вывода изображения, за исключением метода surface).
Original (оригинальное) - разрешение игры по умолчанию либо выбранное (с помощью Setup.exe или через игровое меню) разрешение. Если оригинальное разрешение меньше, чем разрешение рабочего стола, DOSBox постарается переключиться на разрешение, максимально близкое к требуемому игрой или приложением. Например, если игра, запущенная с помощью DOSBox'а, требует разрешение 320x240, в то время как на вашем рабочем столе установлено разрешение 1920x1200, DOSBox переключится на 320x240 либо следующее максимальное разрешение, поддерживаемое драйверами вашей видеокарты (скажем, 800x600, если оригинальное разрешение недоступно).
Разрешение многих игр ниже минимального поддерживаемого на современных видеокартах разрешения, поэтому DOSBox отмасштабирует разрешение, используемое игрой, до поддерживаемого минимума.
Примечание: настройка scaler (преобразователь масштаба) в разделе [render] также способна увеличить до определённого уровня масштаб оригинального разрешения. Эти настройки инициируются перед дополнительным масштабированием, осуществляемым настройкой fullresolution (полноэкранное разрешение).
Настройка по умолчанию: original (оригинальное).
(Начиная с версии: 0.62)
- windowresolution = width x height | original (разрешение в оконном представлении = ширина х высота | оригинальное)
Изменение размеров окна до указанного размера, если устройство вывода изображения поддерживает аппаратное масштабирование (hardware scaling) (то есть любые методы вывода изображения, за исключением метода surface).
Original (оригинальное) - разрешение игры по умолчанию либо выбранное (с помощью Setup.exe или через игровое меню) разрешение.
Примечание: настройка scaler в разделе [render] также способна увеличить до определённого уровня масштаб оригинального разрешения. Эти настройки инициируются перед дополнительным масштабированием, осуществляемым настройкой windowresolution (разрешение в оконном представлении).
Настройка по умолчанию: original (оригинальное).
(Начиная с версии: 0.62)
- output = surface | overlay | opengl | openglnb | ddraw (вывод изображения = поверхность | перекрытие | opengl | openglnb | ddraw)
Какой режим использовать для вывода изображения.
Surface - не поддерживает масштабирования и коррекции соотношения сторон.
Настройка по умолчанию: surface.
(Начиная с версии: 0.??)
- autolock = true | false (захват мыши = истинно | ложно)
Мышь будет автоматически захвачена после того, как вы щёлкните в окне DOSBox'а.
Настройка по умолчанию: true (истинно).
(Начиная с версии: 0.??)
- sensitivity = 1..1000 (чувствительность = 1..1000)
Чувствительность мыши.
Настройка по умолчанию: 100.
(Начиная с версии: 0.??)
- waitonerror = true | false (ждать после возникновения ошибки = истинно | ложно)
Не завершать работу DOSBox'а, если произошла ошибка.
Настройка по умолчанию: true (истинно).
(Начиная с версии: 0.??)
- priority = when-focused,when-minimzed (приоритет = когда-развёрнуто, когда-свёрнуто)
Степень приоритета DOSBox'а. Второй параметр (после запятой) используется, когда окно DOSBox-а свёрнуто. Возможные значения: lowerest (низший), lower (низкий), normal (нормальный), higher (высокий), highest (высочайший) и pause (пауза).
Настройка по умолчанию: higher, normal.
(Начиная с версии: 0.??)
- mapperfile = path-to-mapper-file (файл раскладки = путь к файлу раскладки)
Файл для изменения раскладки (mappings) кнопок/событий.
Настройка по умолчанию: mapper.txt.
(Начиная с версии: 0.??)
- usescancodes = true | false
Избегайте использования комбинаций с клавишей SYM (symkeys на мобильных устройствах), они могут не заработать на всех операционных системах.
Настройка по умолчанию: true.
(Начиная с версии: 0.??)
Устаревшие (не рекомендованные к изменению) параметры.
- fullfixed = true | false (полноэкранное фиксирование = истинно | ложно)
Устарело к версии 0.65. Смотрите параметр fullresolution.
(Начиная с версии: 0.??)
- fullwidth = width (полноэкранная ширина = ширина)
Устарело к версии 0.62. Смотрите параметр fullresolution.
(Начиная с версии: 0.61)
- fullheight = height (полноэкранная высота = высота)
Устарело к версии 0.62. Смотрите параметр fullresolution.
(Начиная с версии: 0.61)
[dosbox]
Раздел [dosbox] содержит настройки, которые не подходят ни под один другой раздел (такие, как выбор языка, используемого в справочной литературе DOSBox'а, где хранить скриншоты и. т. д.).
- language = path-to-language-file (язык = путь к файлу языка)
Выбрать другой языковой файл.
Стандартная настройка: пусто (language= ).
(Начиная с версии: 0.??)
- memsize = nn (размер памяти = двузначное число)
Размер доступной программам верхней памяти (в мегабайтах).
Примечание: DOSBox всегда располагает 1 Мегабайтом низкой памяти, поэтому общее количество памяти равно одному мегабайту низкой памяти плюс значению параметра memsize.
Стандартное значение: 16 (memsize=16).
(Начиная с версии: 0.??)
- machine = hercules | cga | tandy | cga | tandy | pcjr | ega | vgaonly | svga_s3 | svga_et3000 | svga_et4000 | svga_paradise | vesa_nolfb | vesa_oldvbe
(Начиная с версии: 0.73)
(В прошлых версиях: machine = hercules | cga | tandy | vga)
Тип machine (определение типа графического устройства), которую DOSBox пытается эмулировать.
Настройка по умолчанию: svga_s3 (machine=svga_s3) (в прошлых версиях было: vga)
Значения переменных:
- vgaonly (в прошлых версиях vga) - VGA (Video Graphics Array): Графическая система компании IBM, вышедшая вместе с PS/2. Истинное VGA поддерживает 16 цветов при разрешении 640х480 либо 256 цветов при разрешении 320х200 (но не 256 цветов при разрешении 640х480, несмотря на то, что многие люди уверены в обратном). VGA-цвета выбираются из палитры 262,144 цветов (не 16.7 миллиона), потому что VGA использует 6 битов для определения каждого цвета вместо 8 по сегодняшним стандартам (информация взята из: http://www.pcguide.com/ref/video/stdVGA-c.html. Вы можете также посмотреть на Википедии: Video Graphics Array и http://members.chello.at/theodor.lauppert/games/vga.htm).
- Tandy: Отсылка к дополнительным графическим режимам, доступным на Tandy 1000 или PCjr, которые включают в себя: 160x100x16, 160x200x16, 320x200x16 и 640x200x4. В серию Tandy RL/SL/TL также добавлен режим 640x200x16 (Информация взята с: http://www.mobygames.com/attribute/sheet/attributeId,31/).
- CGA (Color Graphics Adapter): Отсылка к первой цветной графической карте компании IBM. CGA поддерживает несколько различных режимов; максимальное качество текстового режима - 85х25 символов с палитрой 16 цветов. Графические режимы начинаются от 640x200x2 (монохромный) (который более низкого качества, чем у Hercules карт) до 16 цветов при разрешении 160х200. Во всяком случае, самым распространённым режимом для игр был 320х200х4. Однако эти четыре цвета не могли свободно использовать 16-цветную палитру CGA. Были только две официальные палитры для этого режима:
- Пурпурный, голубой (magenta, cyan), белый и цвет фона (чёрный по умолчанию). Они больше всего подходили для игр.
- Красный, зелёный, коричневый и цвет фона (чёрный по умолчанию). Иногда есть возможность выбора в качестве альтернативной палитры в некоторых играх.
Примечание: VGA полностью поддерживает большинство CGA-режимов, поэтому вы можете оставить DOSBox в режиме VGA для игры в большинство CGA-игр.
- Hercules: Отсылка к графическим картам, которые были разработаны компанией Hercules Computer Technology в качестве конкурента CGA для монохромных мониторов. Системы Hercules генерируют изображения высокого разрешения - как для текста, так и графики. Разрешение 720x348x2 (один цвет + цвет фона).
(Начиная с версии: 0.??)
- captures = path-to-capture-directory (захваты = путь к директории захвата)
Директория (папка), куда складывается захваченная информация (музыка - wave и midi, скриншоты) после нажатия кнопок CTRL+F5 и CTRL+F6. Скриншоты будут захвачены и сохранены в качестве (PNG) файлов с разрешением 320x200.
Примечание: Директория (папка) для хранения захваченных данных не будет создана автоматически - вы должны создать её сами, прежде чем начать захват музыки и скриншотов, иначе ничего не будет сохраняться. Начиная с версии 0.73 (возможно, ранее), она создается автоматически после первого использования.
Стандартное значение: capture (captures=capture).
(Начиная с версии: 0.62).
[render]
Раздел [render] (прорисовка) методами, которые использует DOSBox для увеличения скорости и качества, отображаемого на экране, графики. Например, он может пропустить каждый третий кадр(что сбережёт время), либо, попробует сгладить грубое изображение, низкого разрешения, которое было использовано на старых мониторах, но плохо выглядит на современных мониторах с экранами высокого разрешения.
- frameskip = nnn (пропуск кадров = целое число)
Сколько кадров пропустит DOSBox, прежде, чем нарисует один.
Настройка по умолчанию: 0.
- aspect = true | false(пропорции = истинно | ложно)
Делать-ли коррекцию пропорций. Настройка действует только на режимы, где используются не квадратные пиксели, например VGA Mode 13h, разрешение которого 320x200 и используется многими DOS играми(DOOM и. т. д.). Рекомендуется для тех игр, которые были рассчитаны на 4:3 мониторы, но без коррекции пропорций будут заметны искажения, которые не были предусмотрены разработчиками.
Настройка по умолчанию: false.
- scaler = none | normal2x | normal3x | tv2x | tv3x | rgb2x | rgb3x | scan2x | scan3x | advmame2x | advmame3x | advinterp2x | advinterp3x | 2xsai | super2xsai | supereagle | hq2x | hq3x
Определяет, какой scaler будет использоваться для увеличения и улучшения режимов с низким разрешением, ПЕРЕД какими-либо дополнительными операциями с помощью настроек fullresolution и windowresolution в разделе [sdl].
Доступные scaler'ы:
- none: scaling не используется.
- normal: nearest-neighbour scaling (большие, квадратные пиксели).
- scan: Работает так же, как и 'normal', но с горизонтальными чёрными линиями.
- tv: Работает так же, как и 'scan', но с затенённым вариантом соседних пикселей, вместо чёрных линий.
- rgb: Симулирует фосфоры на dot trio CRT(ЭЛТ).
- advmame: Сглаживает углы и зазубрины с диагональных линий.
- advinterp: Идентично 'advmame'.
- sai: Идентично 'advmame', но с гораздо более мягкими цветовыми переходами и краями.
- supersai: Идентично 'sai' но чётче.
- hq: 'high quality'(высокое качество) scaler который выдаёт более чистое и чёткое изображение, чем 'advmame' или 'sai' scaler-ы.
Настройка по умолчанию: normal2x.
Поддерживаемые scaler-ы, для которых требуется описание: supereagle
[cpu]
Раздел CPU управляет методом эмуляции CPU (центрального процессора) с помощью DOSBox'а, насколько быстрой должна быть эмуляция и её настройки.
DOSBox поддерживает несколько различных методов эмуляции:
- core = simple | normal| dynamic | auto(ядро = простое | нормальное | динамическое | автоматическое).
Используемое в эмуляции ядро CPU (Центрального процессора). Выбор изменяет эффективность DOSBox'а и в очень редких случаях влияет на стабильность.
- normal - Программа интерпретируется как инструкция за инструкцией. Этот метод гораздо более требователен к ресурсам CPU, чем dynamic, но производит гораздо более точную эмуляцию и требуется для платформ, для которых у DOSBox'а нет настройки dinamic.
- simple - Примерно то же самое, что и normal, но оптимизированное для real-mode- (старых) игр. В случае запуска protected-mode-игр DOSBox автоматически переключается в режим ядра normal.
- dynamic - Программные инструкции находятся в блоках, которые переводятся в инструкции, понятные центральному процессору, и выполняются напрямую. В большинстве случаев этот подход более эффективен, чем интерпретация, за исключением тех программ, которые содержат слишком много самомодифицируемого кода. Эта настройка присутствует не на всех платформах.
- auto - Real-mode-программы запускаются с настройкой normal. Для protected-mode-программ DOSBox переключается на настройку dynamic, если она доступна.
- full - не рекомендована.
Настройка по умолчанию: auto.
- cputype = auto | 386 | 386_slow | 486_slow | pentium_slow | 386_prefetch (Тип CPU)
Тип CPU, используемый во время эмуляции. Настройка "auto" - быстрейший выбор.
Настройка по умолчанию: auto.
(Начиная с версии: 0.73)
- cycles = fixed nnnn | max [default%] [limit cycle limit] | auto [realmode default] [protected mode default%] [limit "cycle limit"]
Количество инструкций, которые DOSBox пытается эмулировать каждую миллисекунду.
Поставьте настройку на max, чтобы автоматически увеличить количество циклов (cycles) на максимально возможное. Настройка auto переключается на max, когда это необходимо.
- fixed nnnn (фиксированное число) - ставит скорость эмулируемого CPU на фиксированное количество циклов (nnnn). Значение 3000 приравнивается 3-м MIP-ам. Если это значение слишком велико, некоторые игры будут работать слишком быстро либо аварийно завершаться. Максимальное значение зависит от мощности вашего CPU. Если значение будет привосходить возможности вашего CPU, эмуляция будет идти медленно и появятся прерывания звука.
- max (максимальное) - автоматически ставит количество циклов, приближенное к default% процентам вашего физического центрального процессора. Если значение default% не определено, оно приравнивается к 100%. Дополнительный параметр limit ограничивает максимальную скорость до указанного значения.
- auto (автоматический) - для real-mode-игр этот параметр переключается на значение параметра "realmode" либо на 3000 циклов, если значение не определено. Когда идёт переключение в protected-mode, параметр cycles автоматически переключается в режим max, используя остальные дополнительные параметры.
Значение по умолчанию: auto.
Примеры:
cycles=fixed 5000, cycles=5000
Все игры, которые вы начнёте, будут работать с фиксированной скоростью ~5 MIP-ов. Полезно для чувствительных к скорости игр или игр, для которых требуется постоянная скорость CPU. Вы можете изменять текущее значение с помощью комбинаций клавиш Ctrl+F11 и Ctrl+F12 во время работы DOSBox'а.
cycles=max
Все игры, которые вы начнёте, будут работать на максимально доступной вашему CPU скорости. Используйте Ctrl+F11 и Ctrl+F12 для изменения процента использования мощности вашего CPU.
cycles=max limit 50000
Все игры, которые вы начнёте, будут работать со скоростью до 50000 циклов - в зависимости от мощности вашего CPU.
cycles=max 50%
Будет использовано около 50% мощности вашего CPU.
cycles=auto
Real-mode-игры будут работать на скорости 3000 циклов. Protected-mode-игры будут работать на настройке cycles=max.
cycles=auto 5000 50% limit 50000
Real-mode-игры будут работать на фиксированной скорости 5000 циклов, protected-mode-игры - на настройке cycles=max 50% limit 50000.
- cycleup = nnn (увеличить количество циклов = число)
Количество увеличиваемых с помощью комбинации клавиш циклов. Значение по умолчанию: 10. Значения меньше 100 будут изменять процентное соотношение текущего значения.
- cycledown = nnn (уменьшить количество циклов = число)
Количество уменьшаемых с помощью комбинации клавиш циклов. Значение по умолчанию: 20. Значения меньше 100 будут изменять процентное соотношение текущего значения.
[mixer]
(смотрите раздел: Sound)
Здесь вы можете определять качество эмулируемого аудио.
[midi]
(Смотрите раздел: Sound)
Здесь вы можете определять настройки MIDI. Термин MIDI чаще всего используется как определение фоновой музыки в старых играх, но в данном случае он означает аудио-синтезатор (который направлен напрямую от эмулируемых игр к современному железу).
- mpu401 = intelligent | uart | none
Определяет, какой тип MIDI Processing Unit эмулировать.
- intelligent (умный): (информация из Википедии) MPU-401 может работать в двух режимах: в нормальном режиме и режиме UART (Универсальный Асинхронный Приёмопередатчик). "Нормальный режим" использует 8-канальный секвенсером, MIDI clock, SYNC 24, Tape Sync и метроном; благодаря этим возможностям этот режим часто называют "умным режимом" (intelligent mode).
- uart (Универсальный Асинхронный Приёмопередатчик): этот режим просто эмулирует режим UART, то есть ретранслирует в-/исходящие MIDI-байты данных.
- none: MIDI не эмулируется.
- mididevice = default | win32 | alsa | oss | coreaudio | coremidi | none
Немного сбивающее с толку название настройки, потому что она определяет не столько то, какое MIDI-устройство использовать, сколько то, какой MIDI-интерфейс использовать. Так как на данный момент DOSBox не эмулирует MIDI, он вместо этого пропускает его через интерфейс, который поддерживает воспроизведение MIDI. Эта настройка объясняет DOSBox'у, через какой MIDI интерфейс пропускать данные.
- default: Для воспроизведения используется стандартное воспроизводящее MIDI устройство.
- win32: Используется Win32 MIDI-устройство воспроизведения.
- alsa: Используется Linux-овский Advanced Linux Sound Architecture интерфейс воспроизведения.
- oss: Используется Linux-овский Open Sound System интерфейс воспроизведения.
- coreaudio: MacOS X's framework для визуализации музыки через встроенный в OS X синтезатор.
- coremidi: MacOS X's framework для направления MIDI-команд на устройство, которое было настроено в Audio MIDI Setup.
- none: MIDI отключено.
- midiconfig = id of MIDI device
Используется описанным ранее MIDI-интерфейсом. Эта настройка определяет ID, которое идентифицирует особое MIDI устройство для воспроизведения MIDI. Может быть определено на Windows, используя MIXER /LISTMIDI, либо на Linux, используя pmidi -l в консоли.
[sblaster]
(Смотрите раздел: Sound) Настройки, связанные с Sound Blaster.
[gus]
(Смотрите раздел: Sound) Настройки, связанные с Gravis Ultrasound.
[speaker]
(Смотрите раздел: Sound) Настройки, связанные с PC Speaker.
[joystick]
(Смотрите раздел: Sound) Настройки джойстика.
[serial]
- serialX = device [parameter:value]
device может быть: dummy | modem | nullmodem | directserial parameter (параметр): irq value (значение):
- Для directserial: realport (обязательно), rxdelay (дополнительно).
- Для modem: listenport (дополнительно).
- Для nullmodem: server, rxdelay, txdelay, telnet, usedtr, transparent, port, inhsocket (все дополнительны).
Значения по умолчанию:
- serial1=dummy
- serial2=dummy
- serial3=disabled
- serial4=disabled
Пример настройки реальной serial port для использования I/O:
serial1=directserial realport:com1
[dos]
- xms=true/false
Значение по умолчанию: "true"
- ems=true/false
Значение по умолчанию: "true"
- umb=true/false
Значение по умолчанию: "true"
- keyboardlayout=auto/none/XY
Значение по умолчанию: "auto" (Начиная с версии: 0.73. В прошлых версиях: "none"), смотрите KEYB для поддерживаемых значений (keyboard layout codes/ids)
[ipx]
ipx=true/false
Значение по умолчанию: "false"
Смотрите раздел Connectivity для подробностей использования IPX, когда он включён.
[autoexec]
Здесь вы можете определить содержимое файла AUTOEXEC.BAT(которые выполняются сразу после запуска DOSBox-а). Таким образом, каждый раз, при запуске DOSBox-а, будет выполняться каждая команда, записанная в этом разделе.
Примечания
- ↑ По умолчанию, можно переназначить в файле конфигурации.
- ↑ http://www.dosbox.com/wiki/Dosbox.conf