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

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

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

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

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

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



Искать на сайте:
Цифровой звук S/PDIF в MS-DOS



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

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

Вашему вниманию предлагается статья о моей звуковой системе DOS, в которой я также кратко перечисляю все известные мне карты ISA, не вошедшие в мою сборку, которые имеют цифровой выход стандарта S/PDIF и которые можно использовать в играх под DOS (кроме TB Pinnacle WT). Интересен будет пользователям, любящим нагружать много стандартов ISA звука в одном компьютере, с точки зрения распределения ресурсов.


Стиль изложения вольный, хронологический по отношению к процессу поиска и решений. Написан уже целиком в середине 2014 года, но впоследствии несколько раз дополнялся, после Нового 2015 года первая её часть приняла текущий и окончательный вид. Единственное несоответствие первой части сегодняшней действительности - ЦП в компьютере представлен как Pentium D, в настоящее время заменён на Core 2 Duo, но в контексте данного обзора это не имеет значения. Вторая часть написана целиком в марте 2017 года.


Часть 1


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

- Sound Blaster + Sound Blaster Pro

- FM (просто FM, без уточнения версий OPL и прочих заморочек)

- Sound Blaster 16

- Gravis UltraSound GF1 (со своим WT)

- WT EMU8000

- WT Roland LA

- WT Roland GM

- WT Yamaha GM


Сам собой напрашивается резонный вопрос, а что же здесь особенного? Это же джентльменский набор, который решительно ни у кого не вызовет возражений или особого интереса. Конечно, это так, поэтому автообзор моей работы касается совсем других вопросов, и первое место среди них занимает непосредственно качество звука как таковое. Смею позиционировать своё решение как один из наиболее качественных «многоэтажных» мультиформатных вариантов в отношении чистоты звучания, полученных когда-либо в нативном DOS. Есть ещё две особенности, на которые или просто редко, или даже почти никогда пользователи не идут. Это а) разведение SBpro и SB16 «по разным полочкам» и б) отказ от использования внешнего микшера благодаря удачному сквозному проведению суммарного звукового сигнала через целых две (!) карты без потерь. Я не описaлся и не преувеличил. Не с минимальными потерями, а именно без потерь. Такие понятия, как потеря битов звукового потока и алгоритмы их замещения – отдельная тонкая тема, и затрагивать её здесь я не буду, тем более, что теоретическое нарушение целостности сигнала PCM – ничто в сравнении с умножением шумов при аналоговой передаче. Вот вкратце сублимированы все «фишки» того, над чем пришлось побиться и поломать голову не месяц и не два. Удивительно? Читайте ниже, и удивляться перестанете, всё только выглядит просто на первый взгляд. Если же не хотите читать разбор особенностей каждой платы в отдельности, разбирать всю «воду» и желаете остановиться сразу лишь на аспектах сборки и настройки готовой системы, то перемещайтесь в самый конец обзора.

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

modlabs.net/old-games.ru - dizzydevil, White, Geryon, easy_john, aleksej

vogons.org - gerwin, bjt, elianda, Locutus

Конечно, есть и отдельная благодарность человеку под ником LLC за программные правки, позволившие преодолеть ограничения в совместимости собираемой системы. Хотя выбор уровня производительности материнской платы с шиной ISA в контексте данного обзора находится на заднем плане, в жизни он далеко не второстепенен, без этих правок было бы невозможно всё собрать на системе под управлением i865+Pentium-4/D, и пришлось бы пересесть на гораздо более слабую ISA-платформу, либо отказаться от части карт по причине невозможности совместного запуска. Я, отчаявшись, уже почти склонялся ко второму варианту, как вдруг появился LLC и поправил положение дел.

Итак, в начало. А в начале я располагал лишь парой-тройкой бластеров/совместимых и хорошим ямаховским WT, модель SW60XG. Все всегда знали, что большинство старых ISA-карт безбожно фонит из-за отвратительного качества аналоговых трактов. Ранее я всегда воспринимал это как должное. Однако, когда ТЕ времена отдалились, разговоров об экзотических и дорогих (или просто дорогих) железяках тех лет прибавилось и всё это стало гораздо доступнее, я начал всё чаще и чаще задумываться над тем, как можно улучшить качество звучания в DOS и что для этого требуется. Вся эпопея началась с того, что в 2011 я обратил внимание на звуковую карту AWE64Gold, а точнее на её стандартный цифровой выход COAX 75 Ohm.



Рис. 1


Все вокруг нахваливали эту плату и все недоумевали, в т.ч. и люди на rom.by, почему меня так сильно интересует цифра на этой плате. Ведь она и по аналогу звучит великолепно. И сейчас тоже многие скажут: 64Gold + Ace + SCC-1 + хороший микшер, и голову ломать не надо! И будут правы по-своему, это путь наименьшего сопротивления и отличный результат на выходе. Однако я хотел сделать ещё лучше, чем просто несколько хороших карт и хороший микшер! И я тоже был прав по-своему: мой результат, хотя и был на тот момент только ожидаемым и почти что мифическим, обещал поднять планку чистоты звучания на недосягаемую доселе высоту для ретрогеймерской DOS-машины. Масла в огонь подливало то, что я последние несколько лет активно пользовался X-Fi, и пользовался именно исключительно через S/PDIF. Меня потрясала чистота звучания, и мне не давала покоя мысль, что в DOS может быть точно так же. Но никто из владельцев платы 64Gold не только не мог ответить на этот вопрос, никто даже не мог / не хотел это тестировать. В конце года я покупаю CT4390 для тестов. И… допускаю первую серьёзную промашку. Миди я даже не слушал, цифра с миди есть на любой AWE32, и этим меня было не удивить. Я захотел получить звук кодека, SFX, в винде у меня получилось, а в досе нет. Я сразу сник, когда-то раньше такой же результат у меня был и на SB Live! Но 64Gold – это всё-таки ISA-карта, имеющая нативную поддержку в DOS, и вдруг такой удар. Настоящий облом. Я очень расстроился и отложил карту в «дальнюю» коробку, на время забыв о ней. Но только на время, позже я узнaю, что миди на ней всё же работает, и стану её использовать как придаток для получения цифрового E-MU8k (это удобнее, чем от AWE32 с переходником 5В-0,5В). Более того, SFX тоже, как оказалось верным, работает. Как верным оказалось и то, что я недостаточно тщательно её обследовал. Но работает звук кодека не «в винде», как я тогда подумал, а при проигрывании сэмплов, изначально соответствующих условиям 16bit/44,1kHz. Многие знают, что на практике это бывает нечасто, если говорить о стандарте SB16. И здесь вина не столько фирмы Креатив, сколько сторонних разработчиков. Очень многие производители DOS-игр использовали способность SB16-карт играть «урезанный» по битности и/или частоте звук, используя HighDMA. Даже если исходные сэмплы являлись «честными» 16/44, драйверы игр зачастую (и даже в большинстве случаев) умудрялись «резать» их, при этом сохраняя поддержку формата SB16. Иногда, чтобы сохранить честные 16бит 44кГц стерео, требовалось вводить дополнительные ключи при запуске. Но часто и эта возможность отсутствовала. (Спасибо за информацию, данную Geryon.) Именно здесь кроется одна из основных причин того, что стандарт SB16 частенько проигрывал «гусю», считавшемуся негласным чемпионом по части SFX. Для «гуся» играми чаще реализовывались настоящие 16бит 44кГц стерео, нежели для SB16. Помимо того, «гусь» обладает лучшими возможностями по части панорамирования звуков в общей стереокартине. Но это уже немного из другой оперы. Как бы там ни было, для снятия SFX-звука по S/PDIF карта 64Gold не подходила в львиной доле случаев, и я искал другие возможности. Здесь отмечу, что в этих поисках я не руководствовался ревностными мотивами многих ретрогеймеров, направленными на непременную аутентичность и соблюдение авторского бренда. Я совершенно не сковывал себя этой условностью и ставил единственное условие: найденная «SPDIF-карта» должна поддерживать искомый стандарт. Без проблем поддерживать, и более ничего.

В начале 2012 года я наткнулся на ebay на карту Turtle Beach Malibu, но упустил её, о чём жалею. Не договорился с продавцом. Больше после этого такую в продаже не встречал. Для справки и для полноты информации, раз уж обзор касается темы S/PDIF в DOS, – карта совместима с WSS, SB Pro, имеет коаксиальный выход, на который отправляются потоки SFX, FM и собственный WT.



Рис. 2


Насчёт работоспособности S/PDIF в чистом DOS на сегодняшний день ничего точно сказать не могу, однако убеждён на 90%, что работает. Продавец на этот вопрос ответить, как всегда, не мог. Чему я уже не удивлялся.

Тот же 2012 год. Во время очередного блуждания по молотку.ру я вижу какого-то монстра, выполненного точь-в-точь в стиле SB Live! Platinum, но, по-видимому, выпущенного в свет задолго до такового у Креатив. Шина ISA, нативная поддержка DOS, поддержка SB Pro и OPL3 благодаря чипу Crystal CS4236B, а также собственный WT Dream SAM9407 от французов, работающий с RAM (как «гусь»), поддерживается память до 64(!)Мбайт. Но главное – на пятидюймовом расширении есть S/PDIF. Причём как выход, так и вход! Я даже боюсь надеяться на удачу.



Рис. 3


Имя сего чуда – EWS64XL от немецкой фирмы Terratec Promedia. И снова продавец не в курсе, работает ли цифра под досом. Переговоры ни к чему не приводят, тестировать он не хочет ни в какую, а я покупать вслепую тоже не хочу ни в какую. Не помогает даже то, что я по своей доброй воле поднимаю исходный ценник «Купить сейчас» (где это видано???), не помогает даже то, что она не продаётся несколько месяцев. В итоге я разозлился на то, что человек ради успешной продажи не хочет палец о палец ударить, плюнул на это дело и пошёл искать на ebay. Там я её нахожу вместе с доставкой из Штатов даже ещё дешевле, чем та на молотке без доставки. Иду на риск и покупаю, всё равно к этому моменту я начинаю чётко осознавать, что все тесты с цифрой я должен выполнить сам, что никто ни на какие вопросы по этой теме мне не ответит. Звуковуха приезжает ко мне, и я после первого же запуска на седьмом небе от счастья. DOS-мечта! Она является центральной фигурой моей нынешней сборки и потому заслуживает отдельного пристального внимания.

Разумеется, S/PDIF работает, и из-под вынь, и из-под дос. Качество на слух сопоставимо с линейным выходом AWE64Gold, а на большой громкости хорошо слышно, что уровень шума ещё ниже, чем у «голды». Но, как говорится в рекламе, и это ещё не всё! И на этот раз это не пустые слова. Архитектура данной карты просто приводит в восхищение своей немецкой основательностью подхода. Обычно все ISA-карты, имеющие на борту собственный WT, не претерпевают значительных перемен в своём устройстве, просто WT вливается в общий микшер, «усаживаясь» на бегунок MIDI/SYNTH вместе с каналом FM или сепаратно.



Рис. 4


Но только не Терратек! Здесь всё сделано с точностью до наоборот. Весь микшер карты через АЦП отправляется на WT Dream, оснащённый не только выходом, но и входом.



Рис. 5


На входе WT Dream выполнен коммутатор, который переключает его между микшером карты либо внешними источниками. Соответственно, при переключении на микшер внешние источники недоступны (разумеется, за исключением Line In самого микшера), а при переключении на один из внешних источников, недоступно звучание всего микшера. Небольшое отступление: внешние источники, предусмотренные раздельно для WT, служат по замыслу разработчиков для обработки и записи в определённом формате. Дело в том, что карта является профессиональным сэмплером. Однако наличие у WT сепаратного цифрового входа в контексте поднятой темы было использовано мной позднее для принятия сигнала с другого источника S/PDIF. Того самого, который я отложил в самом начале, посчитав бесперспективным. В паре с EWS64 перспектива у AWE64Gold появилась вновь :-).

Таким образом, на EWS64 мы слышим не истинно цифровой звук, а оцифрованный микшер карты. Когда это до меня дошло, я вдруг неожиданно для себя отметил, что, несмотря на эту на первый взгляд неприятную особенность, цифровой выход всё равно приятно удивляет своей отменной чистотой. Когда слушаешь аналог Line Out на этой же EWS64, бросает в дрожь. Присутствует вся «красочная» палитра привычного фона звуковой карты ISA: гудение, как от трансформаторной будки. Здесь я уже подошёл к пониманию того, что в основном ложка дёгтя в качестве звука находится на этапе выходного усилительного каскада, который почти у всех ISA-карт весьма посредственный, а вовсе не из-за шумов, накопленных микшером. Во всяком случае, применительно к EWS64 это относится в полной мере. И, наконец, я понял, какую громадную выгоду можно извлечь из этого обстоятельства. До сих пор в мою призрачную схему никак не укладывались источники звука, не имеющие версии с цифровыми выходами. И это было головной болью. Я знал, что в природе существуют, хотя и совсем немного, сбпро-совместимые карты с цифрой, что надо искать, ищущий да обретёт. Но я даже на йоту себе не представлял, как это увязать с имеющимся немалым аналоговым хозяйством, а именно: миди-«дочки», GUS Ace и, возможно, в перспективе внешние тонгенераторы. А теперь карта Терратек снимала этот трудный вопрос одним махом. Микшер у Терратека, как я уже отметил, вне использования Line Out очень малошумящий, и грамотный подбор и настройка бегунками аналоговых девайсов действительно дали очень достойный результат. Во всяком случае, здесь можно уже успокоиться, потому что второго решения тут и быть не может. Я подключил GUS Ace и «дочку» Roland SCB-55, сбалансировал их в программе микшера, исходный фон микшера практически не увеличился. Во всяком случае, я не уловил. А вот, например, использование «дочки» NEC XR-385 не столь желательно, она заметно прибавляет шумов общей картине.

Одна из первых проблем, с которой я столкнулся при настройке Терратека, оказалась очень странной и экзотической. Я уже и не знал, что думать, грешил и на ляпы в архитектуре карты, и на брак моего экземпляра. Оказалось, что это огрехи не фирмы Терратек, а фирмы Кристал. Проблема заключается в следующем: при активации режима SB/SBpro, т.е. фактически при запуске любой игры, весь микшер глушится, кроме канала WAVE и, может быть, FM (точно сейчас не вспомню). Решение подсказал Locutus с сайта vogons.org, а ссылку на это дал elianda, тоже с вогонс. Данная проблема известна как SB Pro Mute Bug на всех платах под управлением DSP Crystal CS423x, или, может быть, только CS4236B. Решается очень просто: после инициализации в обязательном порядке запустить микшер cs32mix.exe с необходимыми ключами-уровнями громкости, желаемыми для каждого канала.

Для справки: существует ещё одна карта, сделанная по абсолютно такой же философии, как и Terratec EWS64, и обладающая очень сходной с ней архитектурой. Это французская Guillemot Maxi Sound Home Studio Pro 64.



Рис. 6


К сожалению, пощупать своими руками и послушать своими ушами мне такую карту не довелось.

Итак, появление Terratec EWS64XL настолько облегчило задачу, дало такой классный звук, собрало вместе столько девайсов, что я чувствовал уже одну маленькую победу! А может быть, даже и не маленькую. Но впереди был новый ребус – Sound Blaster 16. Ведь Crystal-4236 – это только SB Pro. И я вернулся к рассматриванию AWE64Gold, потому что о существовании других SB16 с цифровым выходом я на тот момент и не догадывался. Я писал на rom.by, изложил проблему, дескать, S/PDIF не пашет, просил совета, помощи. Думаю, меня посчитали за сумасшедшего. Вообще, большинство людей очень падки на новое и модное, при этом часто им не столь уж и важно, насколько оно хорошо. А немногочисленных ценителей лучшего прошедших эпох, да, пусть даже и лучшего, это большинство любит насмешливо называть некрофилами.

Сейчас очень многие могут заметить, что моё успешное предприятие под именем Терратек в их глазах ставит крест на дальнейших поисках «бластеров» и что одного «бластера» (любого) в системе вполне достаточно. Другие скажут, что одного «бластера» в самом деле достаточно, но лучше бы это был SB16, а не SB Pro, для равной поддержки всех форматов. Эти две точки зрения достаточно часто высказываются любителями ретро. Я позволю себе не согласиться ни с первыми, ни со вторыми. Моя версия – карты обоих стандартов желательны к одномоментному присутствию в ретрокомпе, потому что исчерпывающе они друг друга, к сожалению, не заменяют. В общем и целом траблы известны: если производитель игры использовал реальные преимущества SB16, то разница в звучании очевидна, это раз; ну а с другой стороны, в типичном случае на большинстве карт SB16 в старых играх, написанных под SB/SBpro, почему-то пропадает часть звуков, это два. (Кому интересно – есть результаты беглых тестов на режим SBpro у разных ревизий SB16, полученные easy_john.) Причину я не знаю, однако факт остаётся фактом. Эти два обстоятельства привели меня к убеждению, что необходимо всё-таки иметь раздельно оба стандарта. Я к тому времени уже успешно осуществил совместный запуск EWS64XL и AWE32, а также EWS64XL и AWE64Gold. Опытным путём было доказано, что в одном компьютере под управлением DOS вполне могут уживаться два «бластера» от разных брендов. Здесь стоит соблюсти лишь пару условий, чтобы всё было без проблем. Дело в том, что старые игры, ориентированные на эпоху «до-SB-16», частенько не имеют расширенное меню настроек звука, и такие игры при существующей возможности выбора «бластера» либо ориентируются на переменную SET BLASTER, либо жёстко «пришиты» к порту ввода-вывода 220, либо то же к DMA1, либо выбирают ресурс от 220, первый попавшийся по возрастанию, т.е. с наименьшим значением. Исходя из этого, эта пара условий такова:

1) ресурсы платы SB/SBpro установить как IO=220 и DMA=1;

2) обязательно в autoexec.bat прописать SET BLASTER=A220 I7(5) D1 T4.

Оставшиеся ресурсы уже присваиваем SB16, например A240 I5(7,2) D0 H5. Игры, вышедшие позднее и поддерживающие SB16, редко бывают капризны и имеют хорошо проработанное функциональное меню настроек. Такие игры обычно очень гибкие в выборе ресурсов, чихать хотели на SET BLASTER и садятся без проблем на тот из «бластеров», который вы сохраняете в их настройках.

Итак, я вернулся к рассматриванию AWE64Gold как наиболее предпочтительного кандидата. Ведь даже если проблему с цифровым выходом не обойти, эта карта обладает одним из достаточно качественных аналоговых выходов среди карт на шине ISA. Но всё-таки подключать по аналогу в EWS64 – всё равно что подключать в обычный микшер. Меня очень расстраивало, почти бесило обстоятельство бесполезности выхода S/PDIF. Можно, конечно, завести S/PDIF на цифровой вход EWS64, но мы получим только миди, вместо Sound FX будет тишина. Многочисленные болтания по форумам и выискивание информации в один прекрасный день дали делу совершенно иной оборот. Как-то в апреле-2013 easy_john вскользь упомянул о немногочисленных в природе клонах SB16 и даже дал ссылку на соответствующую тему на вогонс. Я и раньше что-то читал или слышал о чипах ALS, о том, что каким-то образом, несмотря на закрытую лицензию Creative, в этих чипах, совместимых с SB, открыта возможность использовать HighDMA. Без особого энтузиазма, а скорее из любопытства я последовал по этой ссылке, после первого же прочтения темы я онемел и долго не мог прийти в себя от мигом нахлынувшего альтернативного решения. В центре обсуждения были вовсе не чипы ALS. В центре обсуждения была именно та карта, которая была мне очень нужна и о существовании которой я даже не мечтал. Спасибо easy_john!

Эта карта – Avance Logic AV310 на базе чипа C-Media CMI8330A. Тема на вогонс о клонах SB16, но фактически эта тема на первых страницах в основном об этой карте. Автор-топикстартер и тестер – gerwin, и это был тот редкий случай, когда автор разложил всё по полочкам. После прочтения вопросов у меня почти не осталось. Осталось лишь громадное желание найти и купить такую карту.



Рис. 7


Если взглянуть на её фото, то никогда в жизни не может прийти в голову, что она по качеству звучания SFX благодаря своему цифровому выходу способна заткнуть за пояс саму AWE64Gold. Обыкновенная узенькая платка, геймпорт на отдельном шлейфу, свой WT-синтез отсутствует. Единственный приятный бонус – WT-коннектор для «дочки». Словом, таких бюджетных плат в природе есть миллион. Но если искать на ней совсем другое, то непременно найдёте. Это два неприметных двухпиновых разъёмчика с надписями SPDIFI и SPDIFO. Да, эта плата, подобно Терратеку, превзошла все ожидания, на ней есть не только выход, но и вход, и если этот вход работает, то эта плата просто бесценна! На вогонс gerwin очень ясно расписал особенности и подробно протестировал эту плату, а также описал её «глюки». (Я уже при первом прочтении понял, что эти «глюки» относятся к эпохе старых «сбпро-игр» и заключаются в отсутствии части звуков геймплея. Так что AV310 странным образом повторяет особенность родных Creative Sound Blaster 16/AWE. Позднее, когда карта приехала ко мне, я проверил – действительно так. Интересно, с чем вообще может быть связан такой баг.) Более того, он обратил внимание на неё именно благодаря цифре, собрал по такому случаю специально конвертер TTL->COAX и какое-то время юзал. Но в дальнейшем отказался от неё, видимо, потому что звук S/PDIF, хоть и был лучшим, давал ему только каналы WAVE и FM. Он не мог таким образом получить звук от дочки или от Line In, например. Я начал с ним плотно общаться на эту тему и изложил своё видение, сразу же родившееся после знакомства с его обзором по AV310. Это видение базировалось на прочном фундаменте уже хорошо знакомой платы Терратек. Я предложил соединить S/PDIF IN карты AV310 с S/PDIF OUT другой платы, а именно Terratec EWS64.



Рис. 8


Я ему сказал, что EWS64 собирает на цифру весь свой микшер, и проблема снятия звука с тех аналоговых источников, которым нет цифровой альтернативы (например, миди-«дочки»), решается на архитектуре EWS64 сама собой, и довольно качественно. Он отреагировал очень положительно на такой вариант, но ответа на вопрос, а работает ли на AV310 цифровой вход, не знал.

Ну и ладно, gerwin и так дал много потрясающей приятной информации. Благодаря нему я знал главное: AV310 звучит через S/PDIF OUT всегда, в любой ситуации, невзирая ни на какие условия. Оставалось её приобрести, чтобы протестировать вход S/PDIF IN. Благо, с покупкой здесь проблем не возникло. За эту карту никто не борется на аукционах, её не надо подстерегать «из-за куста» и бить в нужный момент. Мало кому придёт в голову, что оснащение стандартом S/PDIF ставит её в особенное положение. Ретрогеймерская общественность вообще, думаю, воспринимает её как очередной «недобластер», лишённый надписи Creative и, следовательно, не аутентичный. Кого-то всегда преследует задняя мысль, что в клоне обязательно что-то реализовано не так, у кого-то просто присутствует пунктик оригинальности бренда, потому что «так должно быть», и никакие возражения ими не принимаются. Но меня волновало другое, то, что эта карта целиком и полностью совместима со стандартом SB16, больше мне ничего не надо было. Карта эта появляется в продаже не очень часто, однако ажиотажа никогда не вызывает, купить её легко за копейки. Мне повезло, я очень быстро нашёл.

Получив карту, я запустил её на тестовой платформе i440ZX и вдоволь насладился потрясающим звуком, гонял в DOOM, REDNECK RAMPAGE и радовался, как ребёнок. Звуки геймплея возникали и затухали в колонках как будто из полной тишины, а не как обычно сквозь привычное лёгкое шипение/писк, а то и гудение. Это не потому, что в цифре фона нет. Он, конечно, обязательно есть, просто он достаточно низкий и, что немаловажно, очень ровный с минимумом возмущений во всём частотном диапазоне. Кто слушал 16бит/44кГц через S/PDIF на хорошем ресивере; или по аналогу, но на дорогом качественном CD-плеере, тот ясно представляет себе, что такое «качество CD Audio» в полном смысле этого слова, и тот поймёт меня. Можете себе представить восторг, когда слышишь звук такого уровня от обычной исовой звуковухи. (Если кого-то интересует не только пространное описание моих или чьих-либо ощущений при прослушивании цифры, но и точные измерения, обратитесь к исследованиям easy_john.) Настала очередь проверить цифровой вход, и… не тут-то было. Он попросту не работал, и я не знал, в какую сторону копать. В программе-микшере пункт digital in присутствует, но недоступен для включения, это первое, и я не был уверен, что мой цифровой брекет к карте подходит, это второе. Хорошо, откладываю в сторону брекет и подсоединяю напрямую к TTL-выходу CD-ROM. Всё равно не заработало. «Печально завершала блиц» рекомендательная запись в мануале: «используйте цифровой вход только для записи с цифровых источников, для воспроизведения не рекомендуется во избежание возможных цифровых помех при открытии и закрытии дверцы CD ROM» (вход изначально предназначается для проигрывания CD по цифре). Я снова в тупике. Бред какой-то там написан. Но надежда не умирает, я временно бросаю думать об этой проблеме и устанавливаю карту в свой основной ретрокомп. Удар страшнее некуда! Плата, на которую возлагались такие большие надежды, на чипсете ICH5 просто не работает в DOS. Хоть тресни, а ресурсы ей не выделяются, как будто она нарочно в чёрном списке разработчиков. Я совершенно расстроен перспективой возвращения на аналоговый выход AWE64Gold. Всё забрасываю, и абсолютно нет желания заниматься дальше, я просто устал от проблемы за проблемой, и возвращаться к старому варианту тоже не хочу. Наступили полнейшая апатия и безразличие к создавшейся ситуации, повторно к своей «цифровой» проблеме я вернулся не скоро.

Ранее, ещё в 2012 году обращаю внимание на замечание aleksej о том, что среди многообразия плат под E-MU8000 существует так называемая Goldfinch CT1920. Копаю на эту тему и вижу на фотографиях, что она оснащена выходом S/PDIF.



Рис. 9


Немедленно решаю одну такую взять и покрутить на предмет юзабельности. Ехала долго, и всё это время я не подходил к старым компам. Когда Goldfinch уже была у меня на руках, я установил её в свой основной комп – результат нулевой. Она также не работает на ICH5, но тут уже всё гораздо печальнее, похоже не на проблемы с биосом, как позже в случае с AV310, а на настоящую несовместимость с чипсетом. Открылись два пути: 1) отказаться от этой материнки и установить другую; 2) отказаться от AV310 и CT1920 и установить AWE64Gold. Я решил временно остановиться на втором варианте, кроме CT1920, с которой возиться больше не было желания. В конце концов, 64Gold прекрасно играет миди через свой цифровой выход. А вот отказ от AV310 действительно временный, я просто «забрасывал удочку» везде, где мог, и стал ждать, не заинтересуется ли кто. Много позже, но такой человек действительно появился. Это LLC. И я премного благодарен прежде всего White за то, что тот привлёк его на modlabs.net, изначально для решения собственной не менее интересной проблемы по исправлению кривого биоса на своей исключительно интересной плате, плате-чемпионке среди всех наших ISA-платформ.

Пара слов о моей материнской плате. Мои игровые интересы заканчиваются приблизительно на уровне 2004-2006 гг. Это – времена первых двухъядерников на сокетах 775 и 939, времена расцвета Windows XP. Этому периоду соответствует закат чипсета i865/875 от Intel и последние тиражи материнских плат, поставивших наконец точку во всём многообразии его долгой жизни. В чипсете i865/875+ICH5 соединились два удивительных обстоятельства. С одной стороны, это последнее, что поддерживает DOS-звук и оснащается ISA. С другой стороны, это последнее, что без проблем и официально поддерживается со стороны Windows 9X. Наверное, уже всё понятно? Платформа i865 в качестве ретрогейминга – лучшее изделие для убиения трёх «зайцев»: DOS, Windows 9X и не очень позднего Windows XP. Говорю «не очень позднего XP» сознательно потому, что шина AGP накладывает известные ограничения на использование достаточно мощных видеокарт для этой операционки (пределом здесь является Radeon HD3850 или Radeon HD4670). Разумеется, сокет-775 и многоядерник, если у него не возникает проблем со стабильностью в DOS и WIN9X, предпочтительнее. В моём случае это материнская плата Itox/DFI G7S620-N-G и процессор Pentium-D.



Рис. 10


И сейчас многие возразят. Скажут: зачем городить такой огород? Можно отлично юзать 486DX, P-3 Tualatin и т.д., каждый в своей временной категории и с лучшей совместимостью. Эти люди правы, и их с таким мнением очень много. Я возражу, и тоже буду прав: затем, чтобы не городить огород из нескольких ретромашин. Меня всегда привлекали интегральные решения. Я много раз отмечал ранее и отмечу сейчас, что платформа i865/875 почти на 100% отвечает эпохе 1993-2006. И это, скажу я вам, чертовски хорошо! При этом достаточно уверенно такой комп держит также и гейминг 1988-1992, но тут уже возможна масса сюрпризов со знаком минус. С другой стороны, часть из этих сюрпизов иногда проявляет себя и на «386-железе» того времени. Но я уже отклоняюсь от основной темы. Вопрос с материнской платой кратко освещён и закрыт.

По ходу своей работы LLC оказал мне попутно (наверное, сам того не подозревая) ещё одну колоссальную услугу, а именно фактически написал альтернативный инициализатор для звуковой карты AV310. Когда работа над правкой биоса материнки была завершена и звуковуха наконец запустилась, я вдруг осознал, что этот консольный инициализатор, написанный им как одно из временных сподручных средств для работы с картой, обладает гораздо более гибкими возможностями по её настройке, чем родной инициализатор cminit.exe. Так как дефолтно карта потребляет много ресурсов (об этом ниже) и родной инит не позволяет многое отключить или перенастроить, я теперь использую эту альтернативную программу постоянно, из autoexec.bat. Следующей нерешённой задачей значилась активация цифрового входа, чтобы запустить в него EWS64 со всем остальным analog-in-хозяйством. Карта работает на нужной материнской плате, мотивация появилась вновь! Потратив один вечер, я нашёл необходимый ключ запуска, и сигнал с цифрового входа действительно зазвучал на выходе. Сначала проверено с CD-ROM. Когда дошла очередь до EWS64, встала задача другая: как выход COAX 0,5V преобразовать в TTL 5V, необходимые для AV310? Ведь у EWS64 выход уровня TTL отсутствует. Выяснено, что обычный цифровой брекет с задачей не справляется, его амплитуда колеблется в пределах 2-3V, а CD-ROM, например (который успешно звучит), выдаёт в среднем уверенные 4V, не меньше. После некоторого вялого ковыряния информации и раздумий на тему конвертеров меня вдруг как током бьёт догадка: выход с амплитудой TTL присутствует на любой звуковой карте с интерфейсом S/PDIF изначально, и только после этого он делится до амплитуды 0,5V. Даже если коннектор 5V на плате не разведён, стоит лишь поискать по близлежащим конденсаторам, на каком-нибудь контакте сигнал TTL обязательно отыщется. И он действительно нашёлся! Я к нему «подпаялся» и врезал прямо в свободный участок текстолита двухпиновый коннектор. Выглядит это так:



Рис. 11


И никаких преобразователей. Как говорится, дёшево и сердито!

Теперь дело оставалось за малым. Устанавливается AWE64Gold, снимается звук EMU8k через S/PDIF и заводится на цифровой вход EWS64.



Рис. 12


Именно здесь мы имеем сигнал, проходящий через две карты без потерь (то, о чём я говорил в самом начале). Если мы переключаемся на микшер и, соответственно, аналоговые источники, то вопрос потерь в этом случае имеет смысл лишь в теории, т.к. все сигналы не претерпевают повторное постмикшерное усиление и связанные с ним увеличение шума и искажения. Фактически любой аналоговый сигнал, попавший в микшер EWS64, сразу же подвергается оцифровке. Это было хорошо видно на данной мной выше схеме сообщений сигналов у Терратек.

Последнее, о чём хочется сказать, в принципе не имеет прямого отношения к рассматриваемой теме. И всё-таки заслуживает внимание. В мае-2013 человек с вогонс bjt написал программу, эмулирующую MPU-401 Intelligent Mode, на основе кода эмулятора от DOSBOX. (Спасибо за информацию aleksej.) Называется она SoftMPU. Программа умеет гнать миди-потоки через любой MPU-канал. Для работы требуется присутствие в системе SB-совместимой звуковой карты (используется её прерывание). Но присоединять тонгенератор вовсе не обязательно именно через этот «бластер», MPU-канал можно использовать любой другой. Эта программа простимулировала меня наконец на покупку MT-32. С ней всегда экономишь ISA-слот, т.к. настоящий контроллер MPU-401 Роланд или а-ля Роланд не нужен. Версии регулярно обновляются, на сегодняшний день SoftMPU умеет работать даже с COM-портом.

Система готова в сборе. Я намеренно опустил вопрос разведения ресурсов между всеми картами, решив представить его отдельно. Разумеется, этот вопрос решался параллельно, а не оставлялся на потом. Промежуточных вариантов перепробована тьма, и я сейчас их перебирать не буду, это совершенно бесцельно. Окончательный вариант один, на нём и остановлюсь с небольшими пояснениями. Итак, имеем 4 карты, 4 допустимых играми прерывания (значения не более 7) и 6 допустимых для ISA-звука каналов DMA (три 8-битные, три 16-битные). Эти карты:

1) Terratec EWS64XL – WSS, SB Pro, FM, 2xMPU

2) AV310 – WSS, SB16, FM, MPU

3) AWE64Gold – SB16, EMU8000, FM, MPU

4) GUS Ace – GF1 SFX, GF1 WT

С прерываниями всё просто: 4 на 4, IRQ7 получает SB Pro, IRQ5 получает SB16 в лице AV310, IRQ3 для «гуся», IRQ2 для AWE64Gold. Почему именно так, а не иначе, думаю, никому объяснять не нужно. Особо отмечу для владельцев EWS64: карта не садится на IRQ7, если его занимает LPT! Инициализация не проходит. Требуется пересадить LPT с 7 на 5. С DMA чуть сложнее, но тоже по сути своей всё просто. Напоминает старую загадку: «два отца и два сына поймали трёх зайцев, и каждому досталось по одному». Low DMA – 0, 1, 3. High DMA – 5, 6, 7. «Гусю» 8-битный канал не нужен, так что распределение таково: DMA1 – SBpro (EWS64), DMA0 – SB16 (AV310), DMA3 – AWE64G. В свою очередь, сбпро не нуждается в 16-битном канале, здесь распределение таково: DMA5 – SB16 (AV310), DMA6 – AWE64G (опционально, почему – см. ниже), DMA7 – GUS Ace. Здесь на ресурсах остановлюсь немного подробнее. Как всем известно, конфигурация инициализации PnP-карт SB16/AWE фирмы Creative в среде DOS7 жёстко привязана к настройкам Windows. Поэтому, прежде чем разруливать карты в DOS7 с участием Creative, требуется покопаться в винде. Когда я начал перебирать возможные конфиги у AWE64G в Windows, очень приятно удивился. Раньше я об этом не знал, на форумах знатоки утверждали, что у любой AWE невозможно отключить канал FM. Я принимал это на веру. Оказывается, что у AWE64G можно отключить: FM, MPU-401, HighDMA (!) и если карту использовать только ради цифрового EMU8k, то такая возможность очень полезна для экономии адресов. Сепаратное отключение только лишь одного FM тоже весьма не помешает, если пользоваться FM-синтезом другой платы. Я для себя остановился на отключённых FM и MPU, оставив HighDMA. В этом случае ctcm.exe у меня выдаёт отчёт: A2x0 I9 D3 H6 E6x0. Если бы я через Windows отключил ещё и HighDMA, то отчёт ctcm.exe имел бы такой вид (проверено): A2x0 I9 D3 H3 E6x0.

Была и некоторая заморочка с DMA на карте AV310. Дело в том, что её родной инициализатор не позволяет использовать один LowDMA и для WSS, и для SB16 одновременно (хотя физически на этой карте это возможно, что ныне проверено с альтернативным консольным инициализатором). Приходилось выделять карте два LowDMA и один из них делить также и с AWE64. Конфликт не приводил к зависанию системы, но и стабильной работы не было, в ряде случаев отсутствовал звук. В принципе было решаемо рокировками, как-то уживалось, но осадок, как говорится, оставался. А с альтернативным инициализатором от LLC – совсем другое дело! Он мне позволил посадить AV310 не на два, а на один LowDMA, поделив его между WSS и SB16 без глюков, более того, он позволяет при желании вообще независимо отрубить стандарт WSS, оставив работоспособным SB16, более того, он позволяет назначить для FM любой адрес в диапазоне от 100 до 3FF (кажется). Например, назначаем адрес 398, и игры не используют FM этой звуковухи, если надо. Надо вернуть играм FM именно на этой плате – нет проблем, переназначаем 388. Всё это было невозможно с родным DOS-инициализатором, поэтому особая благодарность выражается в адрес LLC ещё раз!

Несколько слов об адресах ввода-вывода. Здесь, как я уже успел убедиться, также присутствуют свои небольшие хитрости. Выше при описании совмещения разных «бластеров» я отмечал, что для SB Pro желательно назначать 220. Остаётся добавить немногое. Для всех «бластеров» вообще предпочтительны адреса с чётным вторым числом, т.е. 220, 240, 260. У меня так и вышло, три карты сели на эти адреса, EWS64=220, AV310=240, AWE64G=260. Впрочем, здесь AWE64G я воспринимаю как аналоговый довесок к цифровому EMU8k, и использование этой карты как Sound Blaster 16 в данном случае изначально не предполагалось и пока не предполагается (хотя работает без проблем). У меня этому «бластеру», использующему адреса A260 I9, отводится роль другая – предоставлять IRQ2 программе SoftMPU для работы с MT-32, это обеспечит максимальную совместимость для игр под MT-32, требующих значение IRQ, равное двум.

И последнее, насчёт GUS. Я не претендую на полноту информации, полученной мной, может быть, это проявляется конкретно на моей конфигурации, на моей материнской плате. Но взять на заметку это нужно. «Гусь» в принципе садится на любой доступный адрес. Но: если в системе два и более звуковых устройств, для Gravis UltraSound желательно оставлять адрес последний или предпоследний по возрастанию. Например, две карты и третьим «гусь»:

[1] = 220 [2] = 230 [гусь] = 240

[1] = 220 [2] = 240 [гусь] = 230

– так годится, работать будет без проблем.

[1] = 220 [2] = 240 [гусь] = 210

– а так нежелательно, возможны глюки.

Или три карты и четвёртым «гусь» (как у меня):

[1] = 220 [2] = 240 [3] = 260 [гусь] = 230

[1] = 220 [2] = 240 [3] = 260 [гусь] = 210

– не годится.

[1] = 220 [2] = 240 [3] = 260 [гусь] = 250

– годится!

Инициализацию GUS следует производить в первую очередь. Если делать это после «бластеров», особенно PnP, инит «гуся» может ошибочно идентифицировать свободные ресурсы как занятые.

В завершение привожу наглядно полную картину разведения ресурсов, как это сделано у меня.


Name

IO

IRQ

LowDMA

HighDMA

MPU

FM

EMU8k

EWS64

(SB+WSS)

220

534/544

7

1

-

300, 320

388/100

-

AV310

(SB16+WSS)

240

530/540

5

11

0

5

330

388/398

-

AWE64G

260

9(2)

3

6/off

off

off

640

GUS Ace

250

3

-

7

-

off

-

Табл. 1



Roland GM используется в виде «дочки» SCB-55, установленной на карту EWS64. Планируется использование Yamaha GM, модель и способ подключения пока не определены. Модуль Roland MT-32 соединён с MPU карты AV310 по адресу 330. Intelligent Mode в случае надобности обеспечивается резидентной программой SoftMPU, используется прерывание 2 от AWE64G. Соединять MT-32 по миди с EWS64XL на мой взгляд нецелесообразно, т.к. в среде DOS интерфейс MIDI-1 не работает, а в среде Windows выдаётся сообщение, что он занят другим драйвером или устройством. Что касается канала MIDI-2, то его использование всегда омрачается синхронным звучанием «дочки».

Если кто-то озадачится созданием такого бутерброда карт для получения мультиформатного S/PDIF в голом DOS, могу сразу отметить, что у карт AV310 и CT1920-Goldfinch нет никаких проблем с работой на старых чипсетах под Pentium-2/3 и ранний Athlon (i440, VIA694, VIA KT133, AMD750). А так как достать такие платы с шиной ISA намного проще, чем под сокет-478/775, то смело могу рекомендовать на них следующую схему:


Name

IO

IRQ

LowDMA

HighDMA

MPU

FM

EMU8k

EWS64

(SB+WSS)

220

534/544

5/7

1

-

300, 320

388/100

-

AV310

(SB16+WSS)

240

530/540

9(2)

11

0

3

5

330

388/398

-

CT1920

-

-

-

-

-

-

640

GUS Ace

250/260

3

-

6/7

-

off

-

Табл. 2



Как видно из этой схемы, без карты AWE64G высвободится один LowDMA канал, и его можно будет спокойно отдать карте AV310, а также высвободится IRQ7, которое можно будет вернуть LPT (хотя я бы не стал этого делать, т.к. у стандарта SBpro традиционно использовалось именно прерывание 7). В качестве «опорного бластера» для программы SoftMPU отлично годится и карта AV310, можно смело сажать её на прерывание 9. В играх с поддержкой SB16 проблем с IRQ2 не будет. И ещё, обратите внимание, что адрес EMU8k по второй цифре у меня всегда соответствует используемому SB16, т.е. SB16=240 и EMU8k=640, а если, к примеру, SB16=220, то и EMU8k=620. Дело в том, что в некоторых играх при выборе MIDI AWE32 надо указывать ввод-вывод не синтезатора, а именно базовый «бластера», поэтому лучше, если вторая цифра адресов будет у них совпадать.

В данном описании опущены многие подробности, связанные с устройством рассматриваемых звуковых карт (особенно EWS64), не имеющие ключевой роли в свете этого обзора. Всё вышесказанное справедливо и проверено в нативном DOS. В среде Windows:

- у карты AV310 проявляются свои небольшие проблемы (решаемые), здесь говорить о них не имеет смысла;

- у карты EWS64XL появляется странный очень заметный и неприятный шум на слайдере CD/SYNTH2, причину не знаю. Крайне рекомендовано к приглушению. Вообще микшер 64XL в винде больше шумит при
прочих равных и ощутимо реагирует даже на движения мыши. Лучше мою схему использовать в чистом DOS, тогда результат действительно отвечает ожидаемому.

Настройки AV310 в DOS абсолютно независимы от Windows в отличие от AWE64G. Все настройки карты EWS64 зашиваются жёстко в EEPROM платы своим конфигуратором, как, например, у GUS PnP. Для того, чтобы один из «бластеров» смог работать с IRQ9, этот ресурс освобождён от системы ACPI, теперь ей присваивается прерывание 10 при использовании правленого биоса. Эту задачу разрешил и сделал необходимое редактирование не кто иной, как LLC. Ещё одна важная лепта внесена этим человеком, ещё раз спасибо ему! Ранее приходилось для загрузки DOS с инициализацией ISA-звука отключать опцию ACPI в биосе, и это было страшно неудобно. Не исключено, что и на более старых материнских платах, на которых уже есть поддержка ACPI, может всплыть такая же проблема.

Все карты объединены через райзер ISA о пяти слотах. Почти всё железо добыто из-за границы через ebay, Америка, Германия, Англия, Италия, Китай. «Гусь» выигран на молотке.ру из Санкт-Петербурга, благодарность бывшему хозяину easy_john, сохранившему карту в лучшем виде. «Голда» куплена в Москве у незнакомца.

Выражается благодарность dizzydevil за то, что благодаря нему я впервые обрёл мощную материнскую плату с шиной ISA, за то, что впоследствии он же открыл для меня существование платы G7S620-N.
Выражается благодарность White за гигантский энтузиазм, упорство и настойчивость, любовь к оригинальным решениям, за привлечение к работе LLC, за то, что подвигнул меня на написание настоящей статьи.

Всем спасибо за внимание.

13.01.15



Часть 2


На дворе март 2017 года, я и не подозревал, что история эта получит относительно небольшое по объёму, но большущее по значимости продолжение. Сначала, по традиции, благодарности, добавившиеся к прежним:

modlabs.net/old-games.ru - zx-c64

vogons.org - jwt27

peratron.narod.ru - создателю WBA040 MkIV

kxproject.com - создателям проекта kx

И вновь отдельная благодарность в адрес LLC!!!

А продолжение она получает по двум причинам. Первая причина - это найденный продукт от Yamaha, к которому умельцы прикрутили S/PDIF (в первой части я упоминал, что планируется использование Yamaha GM, но модель и способ подключения пока не определены). А точнее, умелец с vogons под ником jwt27. Он подробнейшим образом расписал и показал, буквально ткнул носом, какие компоненты взять и что куда припаять. Вероятно, что это его собственная авторская разработка. Так как я с паяльником не очень в ладах, попросил помощи, откликнулся на это дело форумчанин zx-c64. Это человек, виртуозно владеющий ремонтом и моддингом. На моей плате NEC XR385 он мне по рецепту jwt27 соорудил следующее:



Рис. 13


Этот мод прекрасно работает. Звучит лучше, чем DB50XG по аналогу. Даже и сравнивать нечего, и говорить не о чем! Я в первой части обзора не упомянул, что у карты Terratec EWS64XL не один, а два переключаемых цифровых входа (активен только один). Один из них занимает WT EMU8000 с карты AWE64G (или Goldfinch), если Вы внимательно читали. На второй как раз "отправилась" карта NEC XR385, получившая цифровой выход.

Вообще, позволю себе некоторую вольность в отношении уклонения от темы, но не могу не отметить великолепные проекты zx-c64, сделанные своими руками и по аппаратной, и по программной части, в числе которых:

- установка PCI-ISA моста на плату ASRock ConRoe865, полная поддержка "бластеров", "гусей". Т.о., эта плата, поддерживающая Core 2 Quad 65/45нм, FSB up to 1200, DDR up to 600, является гораздо более мощной платформой с ISA для разных ОСей, нежели моя плата Itox/DFI G7S620-N, поддерживающая "лишь" Core 2 Duo 65нм, FSB800, DDR400. Если не ошибаюсь, сейчас она у него работает на FSB1066 с памятью DDR533.

- моддинг плат 3dfx на чипах VSA-100 (Voodoo4/5). Лично мне он превратил мою карту AGP Voodoo4500 в карту Voodoo4800, которая существовала только в виде прототипа и в серию так и не пошла, а именно установил на плату память 64мб и выход DVI. (Если помните, PCB у обеих карт идентичны.) Помимо этого, он меняет чипы VSA-100 на последние ревизии с частотой 200/210МГц и память на самую быструю. Я знаю только о двоих людях, занимающихся подобным. Второй виртуоз - некто Oskhar из Испании, но за его услуги последние штаны снимешь.

- установка разъёма WaveBlaster на карты AWE64.

Также я благодарен zx-c64 за то, что он любезно предоставил мне на тесты звуковую карту Turtle Beach Malibu (см. рис. 2). На сегодня уже с уверенностью могу заявить, что все вопросы с этой картой снимаются. Например, у карт AWE32/64, AV310 интерфейс S/PDIF интегрирован в звуковой чипсет и активируется, грубо говоря, вместе с включением питания, всегда активен без всяких настроек регистров и роутов. У карты же TB Malibu он выполнен сепаратно, как у EWS64XL, и его активация требует специальной поддержки со стороны драйвера. Так вот, в DOS такой поддержки со стороны родного драйвера НЕТ, так что моя уверенность "на 90%", как я писал, потерпела фиаско. В Windows, естественно, есть, я послушал и сразу понял: надрываться для его активации в DOS смысла нет никакого. Реализован криво, шумит страшно.

Итак, Yamaha с цифровым выходом установлена! Если посмотреть, что я выше указывал в таблице, то можно увидеть, что ввод-вывод для General MIDI я выбрал 300 и 320, потому что адрес 330 занимает Roland MT-32 по вполне понятным причинам. Так почему же именно 300 и 320? Ответ кроется в играх: нет ни одной игры с поддержкой GM, которая не работала бы с адресами 300 и 320. В то же время есть масса игр, которые не предлагают в меню выбора адреса 310, 340, 350, 360, а предлагают выбрать только 300, 320, 330. Адрес 330 я решил оставить безраздельно для MT-32. Адрес 300 оккупировал чип Dream SAM9407, параллельного выхода нет. Для оставшегося адреса 320 было решено "запараллелить" карты NEC XR385 (цифра) и Roland SCB-55 (аналог). При выборе GM IO320 они всегда работают обе синхронно, но звук получаем с одной из них переключением. Для "запараллеливания" выбран малотиражный "полусамопальный" внешний бокс Ператроника WBA040 MkIV (благодарность автору Евгению Петрову), существование которого для меня открыл aleksej. Подключён бокс с картой SCB-55 к каналу MIDI2 карты EWS64XL, на этом же канале MIDI2 "сидит" карта XR385, установленная непосредственно в 5-дюймовое расширение EWS64XL. Дополненная композиция имеет такой вид:



Рис. 14


И напоследок о принципиально новом в моём проекте, о второй причине продолжения статьи. О семействе E-MU10000.

Я несколько раз пытался безуспешно найти цифровой микшер за вменяемые деньги. Это совершенно невозможно. На них, помимо стандарта S/PDIF, присутствует полный набор AES/EBU, продвинутый аналог, часто процессоры эффектов и ещё чёрт знает что. Стоит это всё конских денег и занимает места, как конь.

А нужен-то микшер только для того, чтобы просто микшировать цифровые сигналы от разных карт. Другого назначения тут не надо. Так вот, все звуковые карты с цифрой, которые можно завести в DOS, имеют ОДИН рабочий S/PDIF вход (или переключаемый, что суть почти то же), и поэтому в состоянии смешивать входящий сигнал на выходе лишь со своим собственным. Т.о., цепочка из соединённых последовательно цифровым способом карт может быть только линейной и не может ветвиться. При переключаемом входе может ветвиться, но с глушением одной ветки в пользу другой. Если же какие-то карты вообще не имеют входа, а только один выход, то они могут исключительно замыкать цепочку, быть последними в ней, и никак иначе.

Если в наличии есть или микшер хотя бы с двумя входами, или звуковая карта под DOS хотя бы с двумя независимыми входами, то можно сделать её первым звеном и подключить к ней две ОДНОВРЕМЕННО звучащие цепочки, т.е. потенциально удвоить возможности. Такие карты есть давно, но в DOS цифровая часть их сильно урезана драйвером. Это все карты Live! и Audigy1/2.



Рис. 15


Я уже давно озадачился тем, чтобы активировать на какой-нибудь из этих карт цифровой тракт полностью в нативном "чистом" DOS. Первая древняя и неудачная проба сначала отвратила меня от использования карт на чипах E-MU10k. Но впоследствии я разжился тремя ревизиями Live! и, скачав различные версии драйвера под DOS, приступил к тестам. Оказалось, что по умолчанию цифровой выход у них всё же работает, но это зависит как от ревизии карты, так и от версии драйвера. Последний драйвер (до Audigy), написанный во времена выпуска уже ревизий 5.1, работает с любыми картами Live! и на некоторых из них с этим драйвером активируются: SPDIF OUT выход и CD SPDIF вход. У меня побывали CT4670, SB0060, SB0220. Расклад таков: на CT4670 и на SB0220 цифра в DOS включается, на SB0060 не включается. Также на vogons я читал информацию, что и на ревизии SB0100 цифра в DOS не включается. При этом второй SPDIF IN вход не работает в DOS ни на одной ревизии. А ведь целью затеи является именно микширование ДВУХ цифровых источников. Я решил взять карту, на которой хотя бы выход и один из двух входов изначально активны в DOS (хотя далее практика показала, что можно взять любую), и обратился за помощью к LLC. Он не перестаёт меня удивлять. Практически за пару дней была написана программа, сканирующая все регистры чипа E-MU10k и делающая их снимок (дамп). В течение недели и нескольких промежуточных "бета" версий программа была полностью отлажена. Программа эта также может заранее заготовленные дампы "перезаливать" в чип, программируя текущую конфигурацию роутов, которая у E-MU10k весьма сложна. Логика была проста: загрузить Windows, где драйвер активирует все возможности карты, настроить её из микшера искомым образом, сделать снимок регистров и сравнить его со снимком из-под DOS. Камнем преткновения стал... win-драйвер Live! фирмы Creative. Он, оказывается, блокирует все прямые обращения к чипу от сторонних программ. И дамп с содержимого регистров заполняется в основном только значениями FFFF FFFF. У меня было много поводов для лютой ненависти к политике этой компании, настоящее обстоятельство присоединилось к ним. И тогда я вспомнил о проекте kx. Он просто стал настоящей палочкой-выручалочкой! Микшер в kx project драйвере обладает гораздо более гибкими возможностями по настройке всех входов-выходов, ну и никаких проблем со снятием дампа регистров чипа нет. Я вообще всегда жалел, что проект kx предлагает нам только WDM-драйвер. Из-за этого обстоятельства я всю жизнь под Windows 9X использовал родные VXD-драйверы от Creative. Всем ретроманам давно известно, что для геймерской машины под управлением Windows 9X лучший вариант - это VXD.

С помощью очередной консольной программы от LLC я сделал снимок регистров чипа E-MU10k в Windows с ОБОИМИ активированными цифровыми входами. Оказалось, что просто "залить" этот дамп в среде DOS не годится. Пришлось делать дефолтный снимок в DOS и скрупулёзно сравнивать его со снимком, сделанным в Windows. В итоге сработал только комбинированный вариант, а именно часть значений регистров подставлена от "досовского" дампа, часть от "виндового". На сегодняшний день мне удалось активировать на карте SB Live CT4670 одновременно оба цифровых входа в DOS, этой картой я заменил карту AV310. Экспериментальная схема сейчас выглядит так:



Рис. 16


Но, разумеется, со вторым входом можно соединить не только цифровой выход CD ROM, но и любой другой источник. Это очень развязывает руки, ведь цифровой вход на Live не переключаемый, как на Terratec, а именно существует в двух экземплярах, работающих независимо друг от друга. Однако: на карте Live присутствуют не только два независимых цифровых входа, но ещё и целых три аналоговых входа, и они также работают независимо. Так же, как и на Audigy. Эти входы - Line In, CD In, AUX In. И следующим этапом логично представляется активировать в DOS их все! Тогда до трёх устройств с аналоговыми выходами, которые на данный момент подключены к Terratec EWS64, можно будет соединить напрямую с Live и уже не заботиться об их переключении. Надо сказать, что все входные аналоговые тракты у Live и у Audigy довольно качественные, чего не скажешь об их выходных аналоговых трактах. Налицо параллель с Terratec, у которой ситуация аналогичная: основные шумы (на слух около 90%) привносятся на аналоговом усилении Line Out. Но мы-то здесь рассматриваем исключительно цифровой выход, из-за этого в общем-то и вся затея, и об этом же данная статья. Впереди предстоит копаться с регистрами для активации всех входов на E-MU10k, выглядеть это может примерно так:



Рис. 17


На этом рисунке я отметил уже карту "SB16" не как Live, а как Live/Audigy. В эти дни, пока я пишу вторую часть данного обзора, уже готова новая версия программы, работающей с регистрами процессоров E-MU10k. Эта версия теперь умеет работать не только с Live, но и с Audigy1/2. Или, как сказали бы в рекламе, Audigy Ready!

С ресурсами ничего хитрого нет. Всё так же, как и раньше. Только у карт 10k есть одна неприятная особенность, на них невозможно отключить канал FM, а канал этот всё время норовит звуками эмуляции OPL3 воспроизводить (дублировать) потоки General MIDI, инициализируемые по любому адресу 3x0. Поэтому я просто приглушаю этот канал через досовский программный микшер.


Name

IO

IRQ

LowDMA

HighDMA

MPU

FM

EMU8k

EWS64

(SB+WSS)

220

534/544

7

1

-

300, 320

388/100

-

Live/Audigy

(SB16)

240

5

0

5

330

388

muted

-

AWE64G

260

9(2)

3

6/off

off

off

640

GUS Ace

250

3

-

7

-

off

-

Табл. 3



Напоминаю, что прерывание, назначенное слоту PCI, в который установлена карта Live/Audigy, не должно совпадать с прерыванием эмуляции Sound Blaster 16. С другими устройствами на шине ISA оно вполне пересекаться может. Конфликтов быть не должно.

Главным недостатком карт Live/Audigy в контексте DOS по мнению многих является привязанность драйвера к менеджеру памяти EMM386.EXE, и это обстоятельство часто отвращает геймеров от их использования в DOS. Здесь я могу отметить, что программа для работы с регистрами чипов E-MU10k от LLC обладает незаменимым свойством: ей вообще не нужен никакой драйвер. Именно так! Т.о., можно не загружать EMM386.EXE, можно не загружать драйвер под DOS, программа будет работать всё равно! И использовать 10k можно будет в DOS не как звуковую карту, а исключительно как микшер до двух цифровых и до трёх аналоговых стереопотоков (ну и ещё один монопоток TAD, но он вряд ли когда-то кому-то пригодится), отправляющий смешанный сигнал (надо признать, очень качественно смешанный) на цифровой выход S/PDIF:



Рис. 18


В этом случае карта Live/Audigy вообще не использует НИКАКИЕ ресурсы, кроме одного прерывания, выделяемого слоту PCI, в который она установлена. И в этом случае её можно использовать как микшер совместно с любыми звуковыми картами с любой конфигурацией ресурсов. В моём примере их использование возвращается к вариантам, показанным выше в табл. 1, 2. Но проявляется один нюанс: тот дамп, что правильно настраивает карту с загруженным драйвером, совершенно не годится без загруженного драйвера (звука или нет, или его забивает сильный посторонний шум, или он присутствует только в одном левом/правом канале), и перелопачивать регистры нужно по-новому. В настоящее время я только подхожу к решению этой проблемы. Впереди разгадка правильных комбинаций значений регистров, сам LLC советует использовать для этого открытую документацию kx project. Я не обладаю соответствующей грамотностью, чтобы раскусить эти премудрости, и не стесняюсь призвать всех заинтересованных, кого данная затея тронула, так сказать, за живое, подключаться к настоящему проекту и как следует "распотрошить" максимум возможностей карт Live/Audigy под голым досом.

Вторым недостатком, хотя если выразить моё личное мнение, то для DOS-игр весьма сомнительным недостатком, является опорная частота 48 кГц, в которую передискредитизируются все входящие потоки прежде, чем чип сможет ими оперировать, в т.ч. смешивать и отправлять на выход. Я, как ни старался услышать искажения, не смог. Хотя сравнивал не раз то, как звучат цифровые 44 кГц напрямую в ресивер, и то, как они звучат "через Live" после передискретизации в 48 кГц. В картах Audigy2 существует также частота на выходе 96 кГц. Возможно, она настраивается не иначе, как через те же регистры её чипа E-MU10k3, в таком случае эту частоту можно будет получить и в нативном DOS. Это я ещё тоже не проверял. Но в Сети проскакивали высказывания, что при выборе 96 кГц опорной частотой всё равно остаётся 48 кГц, а после всех вычислений над потоками результирующий поток на выходе просто удваивает данные путём примитивного дублирования. Ничего на сей счёт точно сказать не могу.


Ну, как говорится, WIP (work in progress)...


"Дочки" NEC XR385 приобретены через ebay в Китае в 2011 году у продавца double-fish1981, "дочка" Roland SCB-55 приобретена через ebay в США в 2012 году у продавца ninostuff.

Выражаю благодарность в адрес aleksej, именно у него куплен внешний бокс Ператроника WBA040 MkIV.

Отдельная благодарность LLC, что уже, впрочем, стало традиционным. Его программная часть сделала возможной проделать всю эту работу во всём прокомментированном здесь объёме.

Спасибо администрации сайта phantom.sannata.ru за организацию текущего конкурса.

И заранее огромное спасибо всем тем, кто, возможно, изъявит желание внести свою лепту по доработке карт на чипах E-MU10k, E-MU10k2, E-MU10k3 и превращению их в полноценные многоканальные микшеры в нативном DOS. Отмечу ещё раз, весьма и весьма качественные микшеры с двумя цифровыми и тремя аналоговыми входящими потоками. И легко доступные сегодня на вторичном рынке. Пишите мне по этой теме на адрес nickruspushkino{}mail.ru или в личку на форуме phantom.sannata.ru, пользователь RUS.


Впереди будет статья, посвящённая центральной платформе, одной из немногих единичных в мире ретромашин на базе процессоров Core 2 с полной нативной поддержкой Windows 9X и звука ISA+DMA, а также с прекрасной производительностью в операционных системах Windows XP и Windows 7.

Всем спасибо за внимание!

12.03.17



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

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

© Первая часть статьи - modlabs.net

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

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


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

 


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

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



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