Железные призраки прошлого

Компьютерная история

СтатьиСтатьиСтатьи
Cтарое железо и софт

МузейМузейМузей
Старые компьютеры

ФорумФорумФорум
Полигон призраков

ОбщалкаКонкурсыКонкурсы
Статьи и фото



Искать на сайте:
CS4281 или не краткая и не увлекательная история про хардкорный sex



Эта статья прислана на конкурс.

Alekokot (автор играет на конкурсе под псевдонимом)

CS4281 или секс это когда нас двое, это забавный процесс...
(с) Слепаков, анонимный китайский программист и Я


Жил себе терминатор (я так называю все старые системники до 450 MHz, ну еще иногда роботами), старенький такой, имел процессор Intel 166 MMX, ну и прочее железное окружение того же периода выпуска. И имел этот робот звуковую карту SB Audio PCI 128. Почему не ISA? Да просто не было в наличии свободной. Карта исправно хрюкала в колонки, пока не крякнула. Ну, умерла - и бог с ней, не Turtle Beach и не коллекционный Roland, в конце-то концов, мне кто-то когда-то подарил креативовскую звуковушку, пылилась она долго на полке, и тут пришел ее звездный час.

Ей неслыханно повезло — я про нее вспомнил! =)) Это оказалась обычная Creative Ensoniq AudioPCI на чипсете Ensoniq 1371 и имела маркировку Creative CT 4810 и прочее положенное SB.




Драйвера идентичные SB PCI 128 под DOS. Воткнув ее в разьем, я со спокойной совестью запустил сетап Warcraft 2 и удивился, поскольку карта не инициализировалась. Чистка контактов, смена слота не помогли. Запустив Astra for Dos (аналог Aida 64), обнаружил, что карта имеет ID - Crystal Sound 4281. При тщательном осмотре увидел, что кодек вместо Sigmatel - Crystal Sound.




Удивительно было другое, карта была распаяна на качественном текстолите со всеми положеными надписями, чипом, в общем, не отличалась от остальных собратьев по креативу, кроме кодека.




Я видел много левых 744 Ямах и Креативов с перемаркированными чипами и софтовыми кодеками, но столь качественную подделку - никогда не доводилось. Текстолит, маркировки, все надписи указывали, что это CT4810. Гугление показало, что драйверов под DOS для CS4281 в природе не существует, но есть под Win 95-98. Под Windows драйвера – это, конечно, хорошо, но под нее у меня стоит замечательный Aureal Diamond MX300, который отлично работает под Windows и столь же отвратно под DOS, а мне ведь нужно под DOS! Причем 6.22 и никак иначе, значит, придется разбираться с этим УГ. При распаковке сетапа драйвера в глаза бросился файлик cwrdos.exe. Похоже, что это драйвера для DOS ceссии. Извлекаю, запускаю, но звук так и не появился, качаю другую версию драйвера, этого файла нет вообще. Всего их оказалось 3 версии, Одна размером 45КБ, вторая 60КБ, третья 183КБ. Устанавливаю Windows 98, драйвера для CS, перегружаюсь в DOS сессию, звук есть.

Потирая ручки и делая как (Дед Мороз, Санта Клаус, Елопуки - нужное подчеркнуть) ХО-ХО-ХО, сохраняю всю папку драйвера, удаляю Windows, ставлю DOS 6.22, запускаю сетап Warcraft 2, поочередно пробуя все три версии драйвера - звука нет. Опять ставлю Windows 98 - звук есть, устанавливаю рядом 6.22 - нет. Делаю 2 идентичные дискеты с 6.22 и 7.10 соответственно и звуковым драйвером, загружаюсь с них. Результат тот же. 6.22 - нет, 7.10 - звук появляется. После четырех переустановок Windows 98 подряд на медленной машине левый глаз начал ощутимо подергиваться. Стал искать дальше в инете, перерыв кучу ненужной информации и скурив даташит по CS4281 на английском языке, в котором утверждалось, что данный кодек 100% поддерживает эмуляцию SB, опять ушел в дебри инета, в итоге наткнулся на немецкий сайт, у парня была та же проблема, ему нужен был звук под DOS 6.22 и карта была тоже CS4281, но судя по всему оригинальный, но решения проблемы я там так и не нашел. http://www.dosforum.de/viewtopic.php?t=7100&p=24937

На другом сайте аналогичная ситуация, немцы предложили изменить код драйвера и даже указали, где и что менять. Провозился час с дебаггером, но не заработало тоже, пошел по другому пути замены переменных, SET WINBOOTDIR=C:\ в autoexec.bat — тоже не помог (потом в голову добрела мысль что DOS 6.22 и соответственно, в msdos.sys ничего не прописывалось, в отличие от 7.10, и 6.22 эту системную переменную просто не понимала). Вспомнив возню с запуском звука под DOS Monster MX300 и SF256, по опыту борьбы с FM-801 перенес из папки c:\sound\ в папку по умолчанию, c:\windows\cwcdata\ - звук появился. Бинго! В итоге в DOS 6.22 заработала только версия драйвера, которая 183КБ. Но основная проблема драйвера оказалась в том, что писал его "уникальный" кодер, у которого обе руки видимо были левые, в этом и заключалась его уникальность... Зачем понадобилась жесткая привязка к DOS 7.10, в частности к переменным файла msdos.sys, я так и не понял, ведь и так все работает и не зависает, тем более что проверяет не версию ОС, а просто наличие папки Windows. Наверное, это была защита от DOS 6.22 =))

В итоге, потратив половину дня, с дергающимся глазом и бубня себе под нос всякие обидные и нехорошие слова в адрес инженеров и программистов, состряпавших это чудо и забравших уйму моего времени, нашкрябал на коленке батник для автоматической проверки наличия папки c:\windows и файлов драйверов, ну и для первичной инсталляции:


REM CRYSTAL SOUND 4281
@ECHO ON
SET BLASTER=A220 I5 D1 H5 P330 T4 J200
C:\
CD \
IF EXIST C:\WINDOWS GOTO COPY
MKDIR C:\WINDOWS
IF EXIST C:\WINDOWS\CWCDATA GOTO INIT
:COPY
C:\
CD \
CD CS4281
CD DOS
XCOPY.EXE WINDOWS C:\WINDOWS /S /Y
:INIT
C:\
CD \
CD WINDOWS
CD CWCDATA
cwrdos.exe /v
:END


Теперь все у робота работает, карточка хрюкает себе тихонечко в колонки под DOS 6.22. Правда, звук эмулирует не во всех играх, в более старых отказывается, например, в Duke Nukem 3D (его сетап всегда был проблемным, как и у Redneck Rampage для более новых карт чем SB 16, даже патчи отдельно выпускали) увы, идет конфликт по DMA 16 bit — музыка есть, а звуков выстрелов нет, это связано с тем, что карточка поддерживает в эмуляции только DMA 8 bit. Обидно, досадно, но ладно. В War Craft II все определяется прекрасно, звук и музыка играют...






...играют отлично благодаря более продвинутому сетапу и улучшенной интеграции с промежуточными звуковыми драйверами более новой версии производства Miles Sound System, mp3 играет, CD диски воспроизводятся, в более новых играх вся озвучка присутствует, (например HOMM II, War Craft II, C&C, RA ), звук на уровне SB PCI 128, как по мне, и получше будет чем у ESS 1868 и ALS 1000 и прочих шумелок, довольно-таки неплохой результат.
Теперь эти драйвера можно использовать и для звука под MS DOS 6.22 для оригинальной платы Crystal Sound 4281 и карт на базе кодека Crystal CS4281, как например Genius Sound Maker 32X.

Вот такой вот хардкор и хеппи энд. Кто-то спросит — а зачем все это было нужно, ведь есть куча беспроблемных звуковых карт для DOS?

Два чаю этому господину! — "Это просто забавный процесс.." =))


Скачать драйвер и BAT-файл.


Обсудить статью в специально созданной ветке форума. Эта статья прислана на конкурс.

© Текст, фотографии - Alekokot (автор играет на конкурсе под псевдонимом)

© Железные призраки прошлого - 2017 г.

Опубликовано 23.04.2017 г.


Дополнения или поправки на phantom@sannata.ru

 


На главную страницу сайта

На страницу конкурсов



Авторские права и условия копирования материалов