На GitHub появился DIY-проект, автор которого провёл reverse engineering звуковой карты 1990-х годов Sound Blaster 1.0. Рассказываем, в чем особенности устройства.
Проект Snark Barker
Проект со схемой и прошивками для создания клона звуковой карты Sound Blaster (SB) опубликовали под названием Snark Barker. Реплика на 100% совместима со старыми компьютерами, которые поддерживает оригинальное устройство, но построена на современных электронных компонентах.
SB 1.0 выходила в 1990-х годах, а теперь встречается довольно редко, из-за чего на интернет-аукционах её цена может достигать сотен долларов. Проект Snark Barker даёт любителям винтажных компьютеров опробовать когда-то популярное устройство в деле и потратить в разы меньше: самая дорогая часть системы — плата — стоит около $45.
Почему именно Sound Blaster 1.0?
Оригинальную SB 1.0 выпустила в 1989 году компания Creative Technology. Sound Blaster стала не первой аудиокартой для ПК на рынке, но первой, которая объединила поддержку цифрового звука, два различных типа синтеза и MIDI-интерфейс.
В других устройствах за синтез звука отвечали аналоговые осцилляторы с частотной модуляцией волн. В SB 1.0 появился новый способ, за который отвечал контроллер Intel 8051. Для создания цифрового звука использовалась импульсно-кодовая модуляция. При этом карта обеспечивала естественное звучание инструментов.
Благодаря своим достоинствам Sound Blaster 1.0 стала популярной в компьютерах начала 1990-х. Карту поддержала сама Microsoft. В корпорации отмечали, что устройство в наибольшей степени соответствовало стандарту Multimedia PC, который определял рекомендуемую конфигурацию ПК.
О реплике
Автор проекта воспроизвёл все функции оригинальной карты: FM-синтез, поддержку входящих сигналов от компьютера, MIDI-инструментов и микрофонов. Учтены и два способа воспроизведения звука, поддерживаемые оригинальной Sound Blaster.
Принцип действия первого похож на тот, что использовался в устройстве Covox Speech Thing: звук регулировался драйвером, который по очереди отправлял на карту информацию о сэмплах. Во втором случае звуком управлял DMA-контроллер на материнской плате. Он предоставлял аудиокарте прямой доступ к памяти, после чего Sound Blaster с заданной периодичностью получала информацию о сэмплах.
Оригинальная Sound Blaster не имела аналого-цифрового преобразователя. Для записи звука использовался метод последовательного приближения, который реализовывался с помощью сигнального процессора и компаратора. Автор проекта привел на своем сайте код, который реализует этот алгоритм:
mov p1,#80h ; Start DAC at the halfway point, 1000 0000
mov c,t1 ; 1 Put comparator output into carry bit
mov p1.7,c ; 2 If greater, then leave MSB as is. If less, clear MSB
setb p1.6 ; 1 Set DAC to upper or lower halfway point
mov c,t1 ; 1 Check comparator output again
mov p1.6,c ; 2 Rinse and repeat
setb p1.5
mov c,t1
mov p1.5,c
setb p1.4
mov c,t1
mov p1.4,c
setb p1.3
mov c,t1
mov p1.3,c
setb p1.2
mov c,t1
mov p1.2,c
setb p1.1
mov c,t1
mov p1.1,c
setb p1.0
mov c,t1
mov p1.0,c
mov a,p1 ; We are done, copy DAC code into accumulator.
Автор точно воспроизвёл характеристики карты на современных компонентах. В качестве контроллера для обработки звука автор предлагает использовать любой микроконтроллер из семейства 80C51. Оригинальную прошивку для него можно найти в репозитории проекта.
На GitHub выложен список и других компонентов, которые необходимы для создания реплики SB 1.0, — почти все из них доступны в онлайн-магазинах электроники. Для удобства в таблице указаны номера по каталогу Mouser. Однако одну запчасть — переключатель громкости — приобрести уже нельзя. Его автор предлагает самостоятельно распечатать на 3D-принтере.
Новость о создании реплики SB 1.0 стала популярной на Hacker News. Комментаторы оценили проект как важный, с культурной и образовательной точки зрения — он помогает познакомить новые поколения людей с историей компьютеров и культурой создания аудиооборудования своими руками. По словам DIY-любителей, которые собрали Snark Barker, реплика по характеристикам и звучанию ничем не отличается от оригинала.
Аналогичные проекты
Автор Snark Barker ранее создавал реплику другой популярной звуковой карты начала 1990-х — AdLib Music Synthesizer Card, более известной как просто AdLib. Устройство в своё время было одним из аналогов SB 1.0, которые поддерживали только аналоговый синтезатор звуков.
По словам автора, реплика AdLib потребовалась ему для ремонта компьютера серии IBM XT 1980-х годов. Инженеру удалось создать карту по фотографиям и воспроизвести не только функции AdLib, но и её внешний вид. Результат полностью совместим со старыми компьютерами того времени. Код прошивки и фотографии устройства вы можете найти в репозитории GitHub.
Ещё один проект от другого аудиоэнтузиаста был посвящен Gravis Ultrasound (GUS). Карта отличалась от аналогов тем, что она синтезировала звук на основе семплов реальных музыкальных инструментов. Звучание GUS казалось менее искусственным, чем у других карт, и поэтому Gravis Ultrasound пользовалась спросом у музыкантов.
Проект по созданию реплики Gravis Ultrasound стартовал в 2015 году и получил название ARGUS. За два года автору удалось создать работающую копию GUS и начать её продавать.
Процесс развития проекта отражен в специальном треде на форуме о старых играх и компьютерах VOGONS. В теме можно найти схемы звуковой карты и информацию о необходимом для её создания оборудовании. Тред по-прежнему активен: в нём энтузиасты предлагают идеи по улучшению устройства. В целом участие в подобных проектах — это отличная возможность поностальгировать и узнать больше об устройстве компьютеров ушедшей эпохи.
О чем мы пишем в «Мире Hi-Fi» и Telegram-канале:
Звук на проволоке: история телеграфона
Как превратить ноутбук в радио?
Что нужно знать перед тем, как начать карьеру в аудиоиндустрии
DSD-конвертация: фейк или благо?
Автор: Audioman