Как ошибка в звуковом чипе 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
Звуковой чип воспроизводит звук, ну кто бы мог подумать!

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

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

Новости

Публикации

Почему AI-агенты тратят тысячи токенов на простые задачи и можно ли это исправить

Недавно обратил внимание на интересную особенность AI-агентов. Просишь нейросеть исправить небольшую ошибку в коде или найти информацию в нескольких документах, а в итоге она делает десятки...

✦ ИИ  Как выбрать робот-пылесос в 2026 году: 7 характеристик, которые важнее цифр на коробке

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

Почему зайчиха бросает зайчат в снегу сразу после родов

Первый выводок самка зайца-беляка приносит весной, нередко ещё до схода снега, когда по ночам держатся заморозки, а в лесу не найти ни одного надёжного укрытия. Вскоре после родов она покидает...

✦ ИИ  Как выбрать паяльную станцию для дома: 7 характеристик, на которые стоит обратить внимание

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

Из чего состоит темная материя: почему физика выбирает между частицами и волнами

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