Covox - недооцененный девайс для ZX Spectrum?
Решил тут ещё копнуть древних технологий и посмотреть - что же ещё я в детстве на своём Спектруме не использовал. И докопаться я решил до очень простого девайса под названием Covox. У меня его не было на Спектруме, а на IBM PC-совместимых я вообще пропустил эру 8-битного звука - у меня почти сразу появился Sound Blaster AWE 32 (32 - это не битность, а количество голосовой полифонии при воспроизведении MIDI).
В общем-то, захотелось это устройство слепить на макетке из всякого электрического барахла, которое у меня завалялось, и посмотреть на что оно способно и как применялось в своё время.
Теория и практика
Само по себе устройство крайне простое и, если верить многочисленным статьям - собирается на коленке из нескольких резисторов, куда просто подцеплены сигналы данных:
Но сигналы данных не напрямую подцеплены, а через порт принтера, поэтому устройство также часто называют LPT-COVOX. Пример "цепляния" через КР580ВВ55 приведен в статье "Covox - Что из себя представляет COVOX (схема)".
Однако, как всегда есть один (и даже не один) нюанс, которые влияют на качество звука. Во-первых, сами резисторы. Они должны быть высокоточные и очень близкие по значениям сопротивлений. Покопавшись в своих закромах я такого добра не обнаружил. Если ставить стандартные, то качество (которое и так не фонтан) "стремительным домкратом" будет обрушиваться вниз. Для улучшения звука, как выяснилось, лучше использовать специализированные микросхемы цифро-аналогового преобразования (ЦАП), например, 572ПА1 (аналог AD7520). Схема может быть такой (из статьи Звук - схема и описание Covox для Спектрума):
Я по такой схеме собрал устройство на макетной плате, и оно успешно заработало, но тут выплыло "во-вторых": звук снимаемый с микросхемы (как и с резисторов) будет очень тихий. Я б даже сказал - настолько тихий, что "подружить" выход Covox и AY нельзя без категорического зарезания AY. Ну и выкручивать колонки чтоб послушать Covox, а потом убавлять чтоб слушать AY - ну такое. И пришлось думать, как его усилить? Ну и выяснилось, что существуют варианты применения данной микросхемы с использованием операционного усилителя (из статьи Железо - Запись-воспроизведение цифрового звука - цифро-аналоговый преобразователь (Covox). 2 классических схемы ковокса):
![]() |
![]() |
Первый вариант это примерно то, что я и реализовал, а вот второй, с двухполярным питанием, как раз соответствует схеме подключения операционного усилителя. Ну и, собственно, в даташите на эту микросхему это прям-таки штатный режим:
Играть, да, будет громче и шума сильного не добавит. Но и минус у данного решения тоже есть - ему нужно доп.питание. И, желательно, побольше и разнополярного. Смотрим, как оно реализовано в АТМ:
Таки-да: кроме +5В, надо ещё +12В и -12В! То есть недостаточно простого блока питания, нужен специфический, на разные вольтажи. И такой у меня есть, я его для Пентагона как раз использую (поместив в коробку от блока питания МС 9016 для БК), и не только, кстати, ради ВГ93 (её и на аналог заменить можно), а в основном для питания дисковода.
В-третьих, надо не забывать, что всё-таки нам надо озвучивать не весь вывод данных (иначе Covox будет "попердывать"), поэтому для адресного вычисления конкретных данных звука нужна дешифрация нужного нам порта вывода звука для Covox. Как такового прям стандартного стандарта конечно же нет и связано это с различными клонами Спектрум-совместимыми ПК. Наиболее "правильным" для своего Спектрума я буду считать порт #FB (251), поэтому дальше буду ориентироваться на него. Если посмотреть на биты, то можно увидеть что-то типа 11111011, то есть для упрощенной дешифрации нам надо проверять сигнал A2 на ноль. Кроме этого сигналы WR и IORQ должны быть в нуле. Это мы и видим в той схеме, которую я реализовал - там микросхема ЛЕ4 берет сигналы A2, WR, IORQ, и по правили ИЛИ-НЕ возвращает 1, только если все сигналы были в нуле. Но в такой упрощенной дешифрации возможны проблемы и они тут же проявились: при работе с DivMMC в канал ковокса шёл сигнал при чтении SD-карты. Пришлось реализовать полноценную адресацию: с помощью ЛА2 мы можем получить выход 8И-НЕ, и на вход ей достаточно подать A0, A1, A3, A4, A5, A6, A7 и инвертированный A2 (тут либо потребуется ещё микросхема ЛН1, либо можно использовать свободные пины ЛЕ4, подав на один из трёх входов A2, остальные два входа подключить к земле, а с выхода снять как раз инверсию A2). Выход с ЛА2 можно будет подать вместо A2 на ЛЕ4. Таким образом, мы получили адресацию по 8 битам, т.е. полноценный порт #FB реализован. Ну и да, при использовании DivMMC Ковокс перестал мерзко хрюкать. Итоговая схема у меня получилась примерно следующая:
Ну и внешний вид на макетке примерно такой:
![]() |
![]() |
Но всё-таки, неудобно использовать три напряжения, поэтому я вернулся к первому варианту и сигнал с 15 ноги подал на дешевый усилитель с Алиэкспресс:
Выдаёт он не такой громкий звук, как операционный усилитель (всё-таки 5 вольт, а не 12!), поэтому при совмещении со звуком от AY пришлось уменьшить резисторы до 820 Ом, но зато теперь не надо сложного блока питания, а качество звука осталось таким же - сложно испортить Ковокс современными усилителями даже за 50 рублей ?
Использование и выводы
А как же всё-таки использовать эту цифровую "звуковую карту"? Если поискать, например, на сайте zxart.ee, то по отфильтрованному списку ПО с поддержкой Covox #FB находится несколько игр, демо, проигрывателей и даже трекеров для создания музыки. Но вот буквально по каждому направлению представителей, которые нормально работают, можно пересчитать по пальцам одной руки. Чтобы можно было ознакомится с представителями всех направлений я записал несколько видеороликов. Первый, с демками, позволяет понять - какое всё-таки качество можно получить по "цифре" на Спектруме. И в начале я как раз сравниваю, как одна и та же цифровая музыка играет через AY, а потом уже через Covox. Обращаю внимание, что запущено это было на Ленинграде-2 с 48 Кб памяти:
А вот для игр, проигрывателей и трекеров уже надо от 128 Кб. Понятно почему - сэмплы даже в низкой дискретизации (а Z80 в штатном режиме без разгона больше 11 кГц в моно не прокачает) требуют много памяти. Примеры игр, в которых использование Covox вполне оправдано:
В игре The Way of the Exploding Fist задействовано всего пару эффектов. Но качество у них весьма приличное и, если бы расширить их количество на каждый удар бойца, получилось бы очень хорошо, тут применение Covox, однозначно, улучшило бы игру. В Laser Squad эффектов побольше, но сделано на тяп-ляп: плохо подходят к действию или слишком часто повторяются. Ведь, к сожалению, все эти игры, по сути "хаки" оригинальных. Можно было бы сделать гораздо лучше, если бы это разработчик сам закладывал в ПО и сам придумывал сэмплы этих звуков. Сейчас в ходу всякие ремастеринги старых игр, почему было бы этим не заниматься ещё тогда? А что же с отечественными играми? В 1997 году вышел порт Mortal Kombat, там и анимация хорошая, и эффектов больше, и музыка на AY, но вот попытка стянуть абсолютно один-к-одному сыграла не очень - на цветном фоне невысоких бойцов видно плохо, хотя игра вполне себе играбельна.
И сейчас выходят новые релизы, но под стандартный ZX Spectrum я ничего с Ковоксом не нашел, только Street Fighter 2 под ZX Evolution. Но опять же это порт, хотя и максимально близкий к оригиналу. Но всё-таки хотелось бы что-то оригинального и в большем количестве игр.
С трекерами ситуация неоднозначная. То что появились отечественные трекеры именно для цифровой музыки это замечательно, но вот с качеством сэмплов не очень... Поэтому и качество трека получается соответствующее:
По обоим представителям сразу понимаешь, что тут и памяти бы неплохо бы иметь больше 512 Кб и вообще хранить всё это добро на жестком диске. Тогда, возможно, и качество, и количество сэмплов можно было бы увеличить.
Хотя, теоретически, для игры на 128 Кб, с хранением сэмплов и музыки на дискете вполне можно было бы выкрутиться и сделать прям хорошо - с отличной трекерной музыкой на заставке, с шикарными цифровыми эффектами и озвучкой голосом ключевых сцен. Я позволю себе процитировать статью Обзор музыкального устройства Covox на Спектруме:
Считаю, что Covox является одним из самых недооцененных устройств на Спектруме, использование которого подняло бы звуковое оформление программ на совершенно новый уровень. С одной стороны это можно объяснить упомянутыми выше недостатками Covox: значительная нагрузка на центральный процессор и большой расход оперативной памяти. С другой стороны, память более 128 Кб, стала появляться на клонах Спектрума с первой половины 90-х годов – вот оно место до 1 Мб под качественный звук. Проблема высокой нагрузки на центральный процессор может решаться использованием «турбо режима», который имеется на большинстве отечественных клонов. А так же организационными мерами – качественными звуками можно озвучивать те места, когда в игре уже нет иного большого расхода процессорного времени, например «фаталити» или гибель главного героя, подбор предметов в играх типа «Диззи» и т.п. При этом если на компьютере не установлено устройство Covox, эти же эффекты можно вывести на AY, пусть и в худшем качестве. Совместное использование AY и Covox способно открыть совершенно новые горизонты. Например: музыка, в которой будет использованы оба устройства, не только позволит совместить достоинства обоих, но увеличит общее число независимых голосов.
И я согласен со всем вышесказанным. Covox вполне мог стать отличным дополнением для любого Спектрума. Ведь он добавлял новые возможности и практически бесплатно, т.е. входной порог был минимальным. Спаять его мог, наверное, любой кто может держать паяльник. С усилением сигнала сложнее, но и тогда можно было выкрутиться минимальными усилиями.
По поводу "низкого" качества звука - тут я бы поспорил. Нормальный звук для того времени. Аналогичные машины в то время и не могли выдать что-то сильно лучшее. Да, на 16 битных системах с более быстрым процессором можно было сделать и лучше. Но, понятно, что стоимость того же пресловутого Sound Blaster была значительно выше любого Ковокса, а ведь в первых поколениях частота дискретизации там была всего 22 кГц! Ну и MIDI-синтезатор был тоже добавлен туда не сразу, а чип AY в ZX Spectrum был уже давным-давно. И вообще, если бы ZX Spectrum развивали, а не доили: перешли бы на более быстрый процессор (тот же Z180), нарастили видеорежимы, добавили цифровой звук, полноценные слоты расширений, и всё это с сохранением обратной совместимости, то неизвестно кто бы мог ещё победить в гонке на рынке ПК (ведь когда смотришь что впаривал IBM - то это же лютый оверпрайс за такие характеристики!). А вместо этого сэр Клайв занялся провальным Sinclair QL, а в компании Amstrad видели в ZX Spectrum только возможность быстро и выгодно продавать его, но не разрабатывать.
- dukeyusupov
- 0
- 810