SB Live! под DOS — это просто


 

Уже канули в Лету времена, когда-то давным-давно популярной операционной системы DOS, с которой многие теперешние «ветераны» начинали свое знакомство с ПК. Многие до сих пор помнят огромную массу игровых и развлекательных приложений, написанных под эту ОС. Тем не менее, далеко не все «тогдашние» игры будут работать из-под Windows даже в режиме эмуляции MS-DOS (сеанс MS-DOS). Наверняка найдется немалое количество людей, которые постоянно играют в такие игры и не собираются бросать это занятие.

К великому счастью или сожалению для этих пользователей прогресс развития компьютерных технологий не стоит на месте, и когда-то супер-современная AWE32 или AWE64 уже не устраивает и хочется чего-то нового. Кроме того, современные системы оставили шину ISA на обочине истории, ставя конечного пользователя в безвыходное положение необходимости модернизации. Покупка новой аудио-карты в таком случае — ситуация неизбежная, и многие склоняются к выбору SoundBlaster Live! (большая просьба не рассматривать это как рекламный лозунг). Конечно сейчас уже даже она не является лидирующей в плане воплощения современных технологий аудио на ПК, но в большой популярности ей отказать трудно. Именно для обладателей аудио-карт этой серии, озабоченных совместимостью новой аппаратуры со старыми DOS играми, и посвящена данная статья.

Особенности настройки и оптимизации

Для начала необходимо отметить, что весь последующий материал касается систем, в которых присутствует как минимум операционная система DOS 6.22 (крайний случай, который рассмотрен не будет) или Windows 9x. Для остальных пользователей ПК, активно использующих все преимущества ОС Windows NT/2000/XP, OS/2, xNIX и т.д. можно порекомендовать создать отдельный раздел, куда установится DOS/Windows 9x с набором игровых приложений и возможностью загрузки (использование специальных менеджеров с поддержкой множества ОС в одной системе). В случае использования Windows 2000/XP на FAT32-разделах трудностей с присутствующей по соседству Windows 9x, думается, возникнуть не должно.

Итак, новое устройство установлено и операционная система Windows 9x загружена. После того, как ОС определила новую звуковую карту по необходимости следует установить драйверы. После проведения инициализации нового оборудования система найдет четыре устройства (например, для обладателей SBLive! Value): в системных свойствах это будут два в разделе «Creative Miscellaneous Devices» (Creative Multimedia Interface и Creative SBLive! SB16 Emulation) и два в разделе «Аудио-, видео- и игровые контроллеры» (Creative Gameport Joystic и Creative SBLive! Value).

Собственно, само программное обеспечение можно устанавливать по минимуму (минимально необходимый пакет для нормальной работы) так: сразу запускается программа установки из директории AUDIO/ENGLISH/SETUP/SETUP.EXE, находящейся все на том же компакт-диске, в результате чего появляется возможность инсталлировать Wave Studio, Soundo'LE, Creative PlayCenter, Creative Launcher, DOS Drivers и SB Live! Tour. Для достижения конечной цели совместимости аудио-карты с DOS рекомендуется отметить только DOS Drivers, если нет возможности где-либо их переписать (или просто отдается предпочтение поддержке «родного» продукта). После этого программа выполняет положенный минимум установки необходимого программного обеспечения для полноценного функционирования и конфигурирования устройства в DOS/Windows, и в правом нижнем углу появляется значок свойств SB Live!, откуда осуществляется полное управление всеми настройками. Кроме этого, в отдельной директории (по умолчанию это C:\PROGRAM FILES\CREATIVE\SBLIVE\DOSDRV) установятся файлы конфигурации и драйверы под DOS.

Полный пакет драйверов и утилит для работы SBLive! Value под DOS состоит из файлов: DOS4GW.EXE, SBECFG.EXE (информационный модуль текущей конфигурации ресурсов), SBECORE.BIN, SBEGO.EXE (утилита диагностики), SBEINIT.COM (модуль инициализации ресурсов оборудования в системе), SBELOAD.EXE (дополнительный модуль для инициализации), SBEMIXER.EXE (утилита регулирования уровня громкости выходных аудио-портов) и SBESET.EXE (утилита конфигурирования ресурсов). Минимальный пакет (определено абсолютно точно) включает в себя SBINIT.COM, DOS4GW.EXE, SBECFG.EXE, SBELOAD.EXE и SBECORE.BIN, а также банк инструментов DEFAULT.ECW для проигрывания MIDI, устанавливающийся в поддиректории SYSTEM каталога, куда установлена Windows, и файл инициализации параметров окружения CTSYN.INI (очень важный), устанавливающийся по умолчанию в корневой каталог Windows, о котором будет рассказано подробнее ниже. Пакет драйверов для SBLive! 1024 и SBLive! 5.1 в дополнение к предыдущему списку содержит еще два файла: PSBEG.BIN и SBECFG.CFG (файл конфигурации, содержащий идентификаторы поддерживаемых мостов).

Если пользователь придерживается стратегии рекомендаций производителя, обходится лишь обычными стандартными средствами конфигурирования под Windows, и использует для работы с DOS-приложениями вход в режим эмуляции MS-DOS через Windows, то последующая информация будет для него не интересной. Если же есть интерес в более глубоком и гибком конфигурировании системы, то последующая информация будет крайне полезна.

После установки, для удобства, эти файлы можно вынести в отдельную директорию (например, в C:\LIVE). Кстати сказать, следующий раз, когда появится необходимость в переустановке Windows, драйверы и ПО для SB Live! уже можно устанавливать не выбирая вообще никакого пункта из перечисляемых ранее в SETUP. Это справедливо, если указываемый выше необходимый минимум файлов был сохранен отдельно и не удален. Однако, с окончательным разнесением драйверов для DOS в случае их установки с инсталляционного диска появляются некоторые трудности: в системном реестре прописывается параметр, который автоматически модернизирует загрузочный файл AUTOEXEC.BAT строкой загрузки модуля инициализации оборудования C:\PROGRA~1\CREATIVE\SBLIVE\DOSDRV\SBEINIT.COM, и при каждом удалении данной строки из файла и перезагрузкой компьютера, она «самовосстанавливается», что крайне неудобно и, честно говоря, раздражает. Для решения этой проблемы необходимо удалить целиком при помощи программы редактирования реестра (REGEDIT.EXE) один-единственный раздел SBE по пути [HKEY_LOCAL_MACHINE\Software\Creative Tech\SBE], ссылающийся на каталог с драйверами под DOS — «SBEPath»=«C:\\PROGRA~1\\CREATIVE\\SBLIVE\\DOSDRV». Удалив этот раздел и указываемую выше строку в AUTOEXEC.BAT, необходимо перезагрузить компьютер, послу чего модернизации исчезнут. Дополнительно необходимо отметить, что указываемая выше строка загрузки прописывается в DOSSTART.BAT, находящийся в корневой директории Windows, которую для полного решения вопроса рекомендуется удалить из файла.

Для удобства желающих самостоятельно провести модернизацию системы прилагается полный комплект файлов драйверов и утилит работы SBLive! под DOS, список которых приводился ранее, а так же готовые варианты AUTOEXEC.BAT, CONFIG.SYS и CTSYN.INI для SBLive! Value, из инсталляционного диска для SBLive! 1024 и SBLive! 5.1, а также последняя версия комплекта драйверов под DOS для всей серии SBLive!, идущих в составе LiveWare 3.0. Также отдельно предлагается файл DOS4GW и двухмегабайтный банк DEFAULT.ECW с набором инструментов, необходимый для воспроизведения MIDI (2 Megabyte Waveset Version 2, 2MEG_R_2.ECW). Оба этих файла необходимы для работы, однако предлагаются отдельно ввиду экономии объема дистрибутива предлагаемых драйверов, поскольку DOS4GW при наличии в системе DOS-приложений не является большой редкостью, а банк DEFAULT.ECW стандартно поставляется с драйверами под Windows.

Совместимость с DOS-приложениями сохранилось и в следующих после SBLive! продуктах от Creative — семейство Audigy/Audigy2. Поэтому рекомендации, данные в статье, действительны и для обладателей этих аудиокарт, используя соответствующий комплект драйверов для работы Audigy под DOS, плюс указываемые выше дополнительные файлы DOS4GW и банк инструментов DEFAULT.ECW. Данный комплект имеет обратную совместимость и может также применяться для аудиокарт семейства SBLive!. Разница в контенте этого комплекта заключается в более новых версиях модулей Sbecfg.exe, Sbecore.bin, Sbego.exe, Sbeinit.com и Sbeload.exe, а также в дополнительном специальном патче (Audigy12.exe) инициализации аппаратуры аудиокарт Audigy/Audigy2, разработанного PDSoft. Если уже имеется основной комплект драйверов под DOS, то можно загрузить патч отдельно и содержимое архива распаковать в каталог с установленными DOS-драйверами. И самое главное: НИКАКОЙ DOS-ЭМУЛЯЦИИ ПОД WINDOWS – ТОЛЬКО «ЧИСТЫЙ» DOS!

Далее производится модификация основных загрузочных файлов системы (на уровне AUTOEXEC.BAT и CONFIG.SYS окончательно разносится загрузка DOS и Windows раз и на всегда) следующим образом:

Начало файла CONFIG.SYS с поддержкой раздельной загрузки DOS и Windows


[Menu]

MenuItem Win, WINDOWS

MenuItem Dos, DOS

MenuDefault Win,3

MenuColor 10,0

[Win]

NumLock=Off

Files=90

Buffers=45

Device=C:\WINDOWS\HIMEM.SYS /testmem:off

Dos=High,Umb

Device=C:\WINDOWS\COMMAND\DISPLAY.SYS con=(ega,,1)

Country=007,866,C:\WINDOWS\COMMAND\COUNTRY.SYS

[Dos]

NumLock=Off

Files=90

Buffers=45

Device=C:\WINDOWS\HIMEM.SYS /testmem:off

Device=C:\WINDOWS\EMM386.EXE ram noems novcpi

Dos=High,Umb,NoAuto

Конец файла CONFIG.SYS с поддержкой раздельной загрузки DOS и Windows

Строка «MenuDefault Win,3» указывает загружаемый по умолчанию пункт меню (WINDOWS) после 3-секундной паузы ожидания. Значения переменных Files и Buffers задаются сугубо индивидуально, и приведены для примера.

Параметры для EMM386.EXE выбраны из соображения максимального освобождения общей памяти (Conventional Memory, первые 640KB), причем загрузка Extended Memory Manager (менеджер расширенной памяти, следующие 384KB) в случае работы в DOS строго обязательна и требуется драйверами. Особо искушенные пользователи могут попробовать использовать другой драйвер верхней памяти (например, QEMM) для более тонкой настройки разнесения резидентного кода, однако разработчик в этом случае не гарантирует работоспособность и делать этого не рекомендует, настаивая на использовании именно EMM386.EXE. В некоторых материалах, посвященных вопросу работы SBLive! под DOS, встречается прямо-таки утверждение, что параметры NOEMS и NOVCPI в строке инициализации EMM386.EXE ставить крайне не рекомендуется. Необходимо отметить, что эта «проблема» надумана, поскольку на самом деле все прекрасно работает, высвобождая дополнительно хоть и небольшой участок памяти. Кроме чего, некоторые игровые DOS-приложения требуют обязательного присутствия этих ключей.

Параметр NoAuto в строке инициализации Dos исключает загрузку резидентов (IFSHLP.SYS и SETVER.EXE), загружаемых Windows по умолчанию, экономя общую память. Этот параметр является разделяющим «намертво» загрузки, поэтому переход из DOS в Windows обязательно должен осуществляться посредством перезагрузки системы (комбинация клавиш Ctrl+Alt+Del или кнопка Reset — «горячий» или «жесткий» сброс), а не простым выходом из оболочки VC (Volkov Commander), NC (Norton Commander) или DN (DOS Navigator), а также его «разновидность» — NDN (Necromancer DOS Navigator). Его использование, разумеется, не обязательно, но рекомендовано, и может присутствовать по усмотрению. Также рекомендуется изменить параметр BootGUI=0 в файле MSDOS.SYS, чтобы запретить загрузку Windows после выхода из файлового менеджера DOS, окончательно решая вопрос о «разделении» загрузки DOS и WINDOWS.

Начало файла AUTOEXEC.BAT с поддержкой раздельной загрузки DOS и Windows


@Goto %config%

:Win

PATH= C:\;C:\WINDOWS;C:\WINDOWS\COMMAND

Mode Con CodePage Prepare=((866) C:\WINDOWS\COMMAND\EGA3.CPI)

Mode Con CodePage Select=866

Keyb Ru,,C:\WINDOWS\COMMAND\KEYBRD3.SYS

WIN.COM

:Dos

PATH=C:\;C:\WINDOWS

SET BLASTER=A220 I5 D1 H5 P330 T6

SET CTSYN=C:\LIVE

C:\LIVE\SBEINIT.COM

C:\LIVE\AUDIGY12.EXE

lh MOUSE.COM

lh RK.COM

Goto end

:End

Prompt $p$g

C:\VC\VC.COM

Конец файла AUTOEXEC.BAT с поддержкой раздельной загрузки DOS и Windows

Пути конкретно каждый пользователь определяет самостоятельно, поэтому за изменениями необходимо внимательно следить. Загрузка драйверов манипулятора типа мышь (MOUSE.COM, возможно любой другой — их множество) и русского языка (RK.COM, возможно любой другой — вплоть до 866 кодовой страницы) осуществляется сугубо индивидуально, но рекомендуется делать именно через строковый параметр lh, который загружает резиденты в верхнюю память (действительно только при использовании EMM386.EXE). Пример использования «сторонних» драйверов «русской» клавиатуры типа RK, Mkey или Keyrus обусловлен исключительно элементарной экономией памяти — 2KB каждый против почти 7KB в случае KEYB.COM в случае 866 кодовой страницы. Командную оболочку каждый пользователь также выбирает индивидуально, однако стоит учесть, что из распространенных VC, NC и DN только две первых можно порекомендовать загружать в верхнюю память через lh, поскольку они занимают почти 14KB общей памяти, а DN — лишь менее полутора килобайт.

Значения переменного окружения «SET BLASTER=…» программа установки драйверов (под DOS) сама прописывает в AUTOEXEC.BAT автоматически, и когда будет производиться «разнос» загрузки DOS и Windows, эти параметры рекомендуется сохранить. В силу целого ряда обстоятельств и условий указанные выше значения переменного окружения могут не совпадать с ресурсами, занимаемыми SB Live! на другом конкретном ПК. Если же драйвера ставятся не с инсталляционного диска, а в ручную, то значения параметров данного переменного окружения определяются при помощи конфигурирования, которое производится специальными утилитами и будет рассмотрено подробно ниже. Строго говоря, соблюдение обязательного соответствия параметров, указываемых в переменном окружении BLASTER, действительно занимаемым ресурсам совсем не обязательно.

Если возникло желание добавить еще и поддержку кэширования дисков, то загрузку утилиты SMARTDRV.EXE настоятельно рекомендуется производить после отработки модуля инициализации оборудования SBEINIT.COM. Собственно, все необходимые резидентные программы, запускаемые через AUTOEXEC.BAT, рекомендуется загружать после SBEINIT.COM.

Загрузка патча AUDIGY12.EXE опциональна и выполняется в случае использования в системе аудиокарт семейства Audigy/Audigy2. Если в системе установлена аудиокарта семейства SBLive!, то загрузку данного модуля производить нет никакой необходимости. Отработку патча следует производить строго после загрузки модуля инициализации SBEINIT.COM.

Желающие добавить поддержку CD-ROM в DOS должны дописать по одной строке инициализации устройства чтения компакт-дисков в файлы CONFIG.SYS и AUTOEXEC.BAT. Драйвер инициализации CD-ROM в CONFIG.SYS рекомендуется загружать по DEVICEHIGH после загрузки менеджера верхней памяти EMM386.EXE, чтобы освободить как можно больше места в общей памяти для размещения исполняемого участка кода программ. Загрузку драйвера MSCDEX.EXE инициализации интерфейса CD-ROM, выполняемую в цикле AUTOEXEC.BAT, необходимо производить после отработки модуля инициализации SBEINIT.COM с рекомендуемым ключом lh (в верхнюю память). Если при этом необходимо осуществлять еще и дисковое кэширование, то утилиту SMARTDRV.EXE рекомендуется загружать после драйвера MSCDEX.EXE. В случае необходимости, сам модуль инициализации SBEINIT.COM также можно загрузить в верхнюю память через lh, освободив 4KB основной. Таким образом, участки рассматриваемых выше файлов CONFIG.SYS и AUTOEXEC.BAT, касающиеся загрузки DOS, с поддержкой CD-ROM и кэшированием дисков будут выглядеть следующим образом:

Участок CONFIG.SYS, определяющий порядок загрузки под DOS с поддержкой CD-ROM и кэшированием


[Dos]

NumLock=Off

Files=90

Buffers=45

Device=C:\WINDOWS\HIMEM.SYS /testmem:off

Device=C:\WINDOWS\EMM386.EXE ram noems novcpi

DEVICEHIGH=C:\SSCDROM.SYS /D:SSCD001

Dos=High,Umb,NoAuto

Участок AUTOEXEC.BAT, определяющий порядок загрузки под DOS с поддержкой CD-ROM и кэшированием


PATH=C:\;C:\WINDOWS

SET BLASTER=A220 I5 D1 H5 P330 T6

SET CTSYN=C:\LIVE

lh C:\LIVE\SBEINIT.COM

lh C:\LIVE\AUDIGY12.EXE

lh C:\WINDOWS\MSCDEX.EXE /D:SSCD001

lh SMARTDRV.EXE

lh MOUSE.COM

lh RK.COM

Goto end

Месторасположение драйвера инициализации CD-ROM и утилиты SMARTDrive, а также используемые при этом ключи необходимо подбирать индивидуально в зависимости от используемого драйвера устройства CD-ROM и опций загрузки. Утилита кэширования дисков может настраиваться особенно тонко.

Как говорилось выше, загрузка патча AUDIGY12.EXE опциональна и выполняется строго после загрузки модуля инициализации SBEINIT.COM в случае использования в системе аудиокарт семейства Audigy/Audigy2. Если в системе установлена аудиокарта семейства SBLive!, то загрузку данного модуля производить нет никакой необходимости.

Отдельного упоминания заслуживает переменная «SET CTSYN=…», использующаяся в примере AUTOEXEC.BAT, которая указывает на размещение файла инициализации CTSYN.INI. Хотелось бы особо подчеркнуть, что файл CTSYN.INI и задание его месторасположения при помощи переменной CTSYN является самым главным моментом во всем процессе инициализации и корректной работы SBLive! под DOS. Следует заметить, что расположение данного файла никакой роли не играет — будь это каталог Windows или какой другой. Главное и единственное требование — это наличие в каталоге, указываемом в пути переменной CTSYN, самого CTSYN.INI. Данный файл определяет текущую конфигурацию используемых ресурсов аудио-картой и параметры настройки. Вот пример содержимого файла CTSYN.INI, с параметрами, используемыми в режиме эмуляции MS-DOS под Windows:

Начало файла CTSYN.INI с параметрами, используемыми в режиме эмуляции MS-DOS под Windows


[ctsyn.drv]

SBEnable=true

JoyEnable=true

Waveset=C:\LIVE\DEFAULT.ECW

PCIPort=e400

PCIIRQ=12

OPLPort=388

MPUPort=330

SBPort=220

SBIRQ=5

SBDMALO=1

SBDMAHI=5

JoyPort=200

Конец файла CTSYN.INI с параметрами, используемыми в режиме эмуляции MS-DOS под Windows

Здесь параметр SBEnable управляет режимом эмуляции (true/false соответственно как включить/выключить), JoyEnable управляет интерфейсом Gameport/Joystick, Waveset=[путь] указывает на размещение банка с набором инструментов для возможности проигрывания формата MIDI (также, как и в случае с CTSYN.INI, наличие банка в каталоге C:\LIVE обязательным не является, однако правильный путь к банку является обязательным требованием — в противном случае работа SBLive! под DOS будет невозможна), PCIPort задает адрес порта устройства в шестнадцатиричной системе, PCIIRQ определяет занимаемое устройством аппаратное прерывание, OPLPort указывает адрес ввода/вывода интерфейса эмуляции Adlib, MPUPort указывает адрес ввода/вывода MPU-401 UART интерфейса, SBPort определяет базовый адрес ввода/вывода устройства, SBIRQ задает номер занимаемого прерывания, SBDMALO и SBDMAHI определяют первый и второй каналы DMA (ПДП, прямого доступа к памяти) соответственно, а JoyPort указывает базовый адрес интерфейса Gameport/Joystick. Для ручного конфигурирования ресурсов аудио-карты в «чистом» DOS необходимо использовать либо специальную утилиту SBESET.EXE, либо «разносить» параметры в отдельную секцию руками — подробнее об этом немного ниже.

Основной программой определения используемых эмуляцией ресурсов является модуль SBEINIT.COM, который проводит инициализацию оборудования, согласно данным, указываемым в файле CTSYN.INI, месторасположение которого, в свою очередь, определяет переменная SET CTSYN. Повторю, что правильное определение переменного окружения CTSYN и пути к банку *.ECW являются, наиглавнейшими моментами в инициализации оборудования SBLive! под DOS — без выполнения этих требований работа аудио-карты под DOS будет невозможна. Для выяснения текущих ресурсов можно использовать утилиту диагностики SBEGO.EXE (SBE_GO! Diagnostic SB Emulation), обладающую удобным графическим интерфейсом, и позволяющую произвести сканирование и тест портов вода/вывода, и аудио-интерфейсов звуковой карты. При помощи конфигурационной утилиты-монитора SBECFG.EXE можно узнать текущие системные ресурсы, используемые звуковой платой. Изменить же параметры можно через менеджер управления (Device Manager) под Windows, однако они могут быть сконфигурированы и в ручную под DOS при помощи утилиты SBESET.EXE. Эта программа позволяет определять занимаемые системные ресурсы и переназначить их. Возможности данной утилиты включают:

  • Задание базового адреса ввода/вывода параметром -Axxx с возможными значениями 220, 240, 260, 280.
  • Задание прерывания, использующегося аудио-интерфейсом, параметром -Ix с возможными значениями 5, 7, 9, 10.
  • Задание первого канала прямого доступа к памяти (DMA), использующегося аудио-интерфейсом, параметром -Dx с возможными значениями 0, 1, 3.
  • Задание второго канала прямого доступа к памяти (DMA), использующегося аудио-интерфейсом, параметром -Hx с возможными значениями 5, 6, 7.
  • Определение при помощи параметра -Pxxx адреса ввода/вывода для General MIDI, Roland MT-32/LAPC-1 интерфейсов с возможными значениями 300, 310, 320, 330.
  • Конфигурирование базового адреса ввода/вывода интерфейса Gameport/Joystick параметром -Jxxx с возможными значениями 200, 208, 210, 218, …, 800, …
  • Управление интерфейсом Gameport/Joystick при помощи параметра -jx с возможными значениями 1 (включен) и 0 (выключен).
  • Управление режимом эмуляции при помощи параметра -dx с возможными значениями 1 (включен) и 0 (выключен).
  • Управление распределением ресурсов при помощи параметра -wx с возможными значениями 1 (загрузка значений, сконфигурированных в Windows) и 0 (загрузка параметров, сконфигурированных вручную).
  • Вывод информации о текущей конфигурации интерфейсов устройства ключом -c.

Например, содержимое раздела [ctsyn.drv] рассматриваемого выше файла CTSYN.INI определяет текущую конфигурацию ресурсов аудио-карты в режиме эмуляции MS-DOS. Если это каким-то образом не устраивает пользователя (или в таком состоянии возможен конфликт аппаратных ресурсов), то, загрузившись в «чистый» DOS, можно переназначить необходимые параметры, полностью или частично перепрограммируя интерфейсы оборудования.

Например командная строка SBESET.EXE -A240 -I7 -D3 -H6 -J218 -w0 определяет установку базового адреса ввода/вывода в значение 240, 7-го прерывание для аудио-интерфейса, 3-го и 6-го адреса для первого и второго канала ПДП соответственно, 218 адрес интерфейса игрового порта и управление распределениями ресурсов в ручную. Отдельно необходимо отметить, что все ключи чувствительны к регистру (т.е. для утилиты очевидна разница, например, между -J и -j), опущенные опции будут адаптированы к ранее заданным значениям, сам ключ и его значение синтаксически должны быть неразрывны, а пробелом разделяются между собой только непосредственно неразрывные пары «ключ-значение».

Отработкой этой командной строки утилита конфигурирования предупредит о необходимости перезагрузки, чтобы новые параметры вступили в силу. После перезагрузки в файле инициализации CTSYN.INI появятся две дополнительные секции [SBEINIT] и [SBESET.CFG] с новыми запрограммированными параметрами, определяющими конфигурацию интерфейсов для работы в DOS. Таким образом, содержимое CTSYN.INI с новыми параметрами теперь будет следующим:

Начало файла CTSYN.INI с перепрограммированным интерфейсом для работы под DOS


[ctsyn.drv]

SBEnable=true

JoyEnable=true

Waveset=C:\LIVE\DEFAULT.ECW

PCIPort=e400

PCIIRQ=12

OPLPort=388

MPUPort=330

SBPort=220

SBIRQ=5

SBDMALO=1

SBDMAHI=5

JoyPort=200

[SBEINIT]

CONFIG=SBESET.CFG

[SBESET.CFG]

SBPORT=240

MPUPORT=330

SBIRQ=7

SBDMALO=3

SBDMAHI=6

OPLPORT=388

SBENABLE=TRUE

JOYPORT=218

JOYENABLE=TRUE

WAVESET=C:\LIVE\DEFAULT.ECW

PCIPORT=E400

PCIIRQ=12

Конец файла CTSYN.INI с перепрограммированным интерфейсом для работы под DOS

Теперь, чтобы в очередной раз перепрограммировать интерфейсы SBLive! для работы под DOS, можно уже не запускать утилиту конфигурирования, а просто редактировать в ручную содержимое секции [SBESET.CFG] файла CTSYN.INI, устанавливая необходимые значения. Более же осторожные пользователи могут продолжать пользоваться модулем SBESET.EXE.

Зачем все это нужно

Пришло время сказать несколько слов о конкретном использовании SBLive! под DOS. Например, для того, чтобы проиграть файлы формата WAV в «чистом» DOS (работа SBLive! в Windows не вызывает абсолютно никаких проблем, например, для DOS-игр), рекомендуется записать программу SEA версии 1.3, поскольку более ранние возможностью проигрывания звуковых форматов не обладают. Минимальный пакет SEA состоит из файлов: SEA.EXE, DOS4GW.EXE и SEA.DAT.

Далее необходимо набрать в командной строке: SEA.EXE /irq:x /port:xxx /dma:x /dma16:x , где irq:x — прерывание (обычно 5 или 7), port:xxx — системны адрес, используемый аудио-картой (обычно 220 или 240), dma:x — канал DMA (обычно 1 или 3) и dma16:x — 16-разрядный канал DMA (используется только 100%-совместимыми со стандартом SB16 аудио-картами и обычно бывает 7). Однако, если необходимые параметры точно неизвестны, то для их определения нужно запустить программу SBECFG.EXE, которая подробно укажет все необходимые данные. Следует учесть, что программа SEA не может проигрывать файлы формата WAV при работе под Windows в окне DOS или в сеансе MS-DOS — только в «чистом» DOS.

В игровых приложениях при работе под DOS полностью гарантируется работоспособность звуковой карты SB Live!, если интерфейс программы поддерживает:

  • Отдельно определение SFX (SBPro или SB16 или AWE32) и MIDI (WaveBlaster или GeneralMIDI или MPU-401 или Roland SoundCanvas). Если есть в параметрах MIDI сразу все, то в данном случае они расположены по рекомендуемому приоритету определения. Если же возникают трудности (иногда случается), то придется выбирать из всех перечисляемых экспериментально. Определение в SFX-параметрах SB16/AWE32 на слух не дает никакой разницы.
  • Совместное определение SFX и MIDI, увы, однозначно указывает на использование SB Live! как SB16. Яркий пример — игра Descent2.

Остальные задачи, решаемые пользователями в DOS с применением звуковой карты, оставим нерассмотренными, поскольку это не так уж и важно, да и стратегия установки, настройки и применения SBLive! под DOS, думается, очерчена с лихвой.

В заключение отмечу, что все описываемые выше варианты настроек в CONFIG.SYS и AUTOEXEC.BAT от самых минимально необходимых до включения поддержки CD-ROM и кэширования дисков (загрузка SMARTDrive) тщательно, долго и кропотливо проверялись на довольно большом количестве распространенных игровых приложений под DOS, среди которых были и оригинальные версии с поддержкой CD-ROM. При этом «произвольно» менялись настройки аудио-параметров как звуковой карты (либо ручной правкой файла CTSYN.INI, либо при помощи утилиты конфигурирования SBESET.EXE), так и непосредственно аудио-интерфейса самого приложения (проверялась совместимость с SBPro/SB16/AWE32 по части эффектов и WaveBlaster/GeneralMIDI/MPU-401/SoundCanvas в плане воспроизведения музыки).

Данное практическое исследование показало почти 100% работоспособность SBLive! под DOS. Своего рода «исключение» составляют приложения, использующие 3D звуковые эффекты типа реверберации, эхо и т.д. — например, это игры Shadow Warrior и DukeNukem 3D от 3D Realms, и Blood от Monolith. Проблема заключается не только конкретно в SBLive!, а и в некоторых других аудио-картах, использующих шину PCI, когда в определенных местах игры, где должен быть использован некий звуковой 3D-эффект, возникает крах приложения с последующим зависанием или моментальным выходом из игры, причем до этого программа работает совершенно нормально. Разработчики такой игры учитывают подобные ошибки, и пишут корректирующие эти досадные моменты поправки (patch), которые можно загрузить со странички поддержки конкретного игрового приложения (исключение составляет игра Blood, для которой такого рода патч до сих пор, увы, не вышел).

 

Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.