Как ошибка в звуковом чипе Commodore 64 подарила ему голос, о котором инженеры даже не думали

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

В 1984 году игроки нажимали пробел во вступлении к Ghostbusters на Commodore 64 и слышали то, чего физически не должно было существовать. Чёткое, узнаваемое «Ghostbusters!» — произнесённое голосом, а не пиликнувшее синтезаторной трелью. Для домашнего компьютера середины восьмидесятых это звучало как чудо.

Чуда не было. Была ошибка в чипе — причём такая, о которой инженеры Commodore, скорее всего, даже не подозревали, когда проектировали звуковую систему машины.

Автор: Taras Young / CC BY-SA 4.0 Источник: commons.wikimedia.org

Регистр, который никто не планировал использовать так

В основе звука Commodore 64 лежал чип MOS 6581, известный под именем SID — Sound Interface Device. У него был регистр по адресу $D418, отвечавший за общую громкость звука. Использовались там только четыре младших бита — то есть теоретически регистр давал всего 16 градаций уровня, от полной тишины до максимума.

Каждое изменение значения в этом регистре сопровождалось лёгким щелчком. Само по себе это не считалось поломкой — просто побочный эффект резкого скачка амплитуды сигнала, вполне ожидаемое поведение для любой цепи такого рода.

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

Причина, по которой этот трюк вообще получался, лежала в постоянном напряжении на аналоговом выходе чипа. У 6581 это напряжение задавалось напрямую от питания в 5 вольт, и именно эта особенность делала результат разборчивым и достаточно громким для игр. Позже, когда Commodore выпустила обновлённую версию чипа — 8580, инженеры де-факто исправили эту недоработку: новое постоянное напряжение формировалось через делитель и получалось чуть ниже, около 4,75 вольта. Разница выглядит незначительной, но она заметно ослабляла эффект — на 8580 тот же самый трюк с $D418 звучал тише и хуже, а иногда требовал от программистов дополнительных ухищрений, чтобы речь вообще стала разборчивой.

Автор: Olimar / CC BY-SA 4.0 Источник: commons.wikimedia.org

Как случайная лазейка превратилась в культовую технологию

Первыми, кто вывел этот приём на публику, стали разработчики двух игр 1984 года — Ghostbusters от Activision и Impossible Mission от Epyx. Обе включали оцифрованную речь персонажей, и обе вышли в тот самый год, когда для домашнего компьютера без поддержки PCM это казалось невозможным трюком.

При этом чистый баг регистра $D418 — это только половина истории. Речь в этих играх дополнительно обрабатывала технология компании Electronic Speech Systems, основанной инженером Форрестом Мозером. Их программное сжатие позволяло уместить произнесённые фразы в крайне скромный объём памяти Commodore 64. Получается двухслойная инженерия: аппаратный баг открыл саму физическую возможность вывести оцифрованный звук через чип, никогда не предназначенный для этого, а программная обработка сделала результат компактным и разборчивым для конечного игрока.

Дальше эта техника не осталась историческим курьёзом — она превратилась в настоящую культурную традицию. Демосценеры и композиторы чиптюн-музыки продолжают использовать приём с $D418 десятилетия после выхода Commodore 64, постепенно выжимая из него всё больше качества — от простых нескольких килогерц с четырёхбитным разрешением до куда более амбициозных экспериментов с честным семибитным звуком на частотах около 16 килогерц с использованием широтно-импульсной модуляции. Современные эмуляторы и программные плееры до сих пор аккуратно воспроизводят именно эту особенность оригинального чипа 6581 — потому что без неё половина легендарных звуковых эффектов золотой эры C64 просто не заиграла бы так, как её запомнили миллионы игроков.

Изображение в превью:
Автор: Taras Young / CC BY-SA 4.0
Источник: commons.wikimedia.org
Другое
Автор не входит в состав редакции iXBT.com (подробнее »)

1 комментарий

Shoewreck
Звуковой чип воспроизводит звук, ну кто бы мог подумать!

Добавить комментарий

Сейчас на главной

Новости

Публикации

Почему водители останавливаются после поворота, хотя основной светофор разрешал проезд, и правильно ли они поступают

На регулируемых перекрёстках нередко складывается ситуация, когда разрешающий сигнал основного светофора позволяет выполнить поворот направо, а сразу после поворота располагается пешеходный...

Почему на советском ЗИЛ-157 водитель специально спускал колёса прямо во время движения

Представьте, что тяжёлый грузовик едет по грунтовой дороге, впереди глубокая грязь или рыхлый снег. Казалось бы, перед таким участком нужно проверить, хорошо ли накачаны колёса. Но...

Сколько весит выдох планеты: метаболизм всех людей на Земле производит 2 миллиарда тонн CO₂ в год

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

Боком в Темзу: как гигантский пароход Great Eastern спускали на воду

Осенью 1857 года на берегу Темзы стоял корабль, который уже до первого плавания оказался слишком большим для привычных правил судостроения. Great Eastern растянулся почти на 211 метров —...

Зачем Grundig объединил кремний и германий: схемотехника катушечника TK 121

Завод Grundig выпускал катушечный магнитофон TK 121 с 1969 по 1973 год. В части сервисных каталогов указан период с 1969 по 1972 год. Размеры корпуса составляют 39,0 x 16,0 x 29,0 см при массе...

Почему беспроводная зарядка убивает аккумулятор смартфона быстрее кабеля

Беспроводная зарядка это чертовски удобно: пришел домой, бросил смартфон на «блинчик» на столе или тумбочке, и никаких поисков провода в темноте. Маркетологи годами продавали нам эту технологию как...