У раннего ZX Spectrum не было полноценного звукового чипа, но программисты умудрялись выжимать музыку даже из динамика, который понимал буквально два состояния: включено и выключено. Разработчик Майкл Мартин решил заново разобрать эту магию и добился трёхголосного звучания на модели с процессором Z80 частотой 3,5 МГц.
Эксперимент касается оригинальных ZX Spectrum с 16 и 48 КБ памяти. Более поздний Spectrum 128 получил отдельный звуковой чип AY-3-8912, поэтому задача была принципиально проще. Интерес к подобным ограничениям жив и сегодня: энтузиасты продолжают строить ретрокомпьютеры на технологиях, которые современная электроника давно оставила позади.
Главная проблема раннего Spectrum заключалась в однобитном выходе. Программа могла лишь быстро включать и выключать динамик, формируя последовательность импульсов. Мартин попробовал воспроизводить 1-битный PCM со скоростью около 16 кГц. Такой поток занимает примерно 2 КБ в секунду, что для машины с 48 КБ памяти уже заметно, а качество остаётся очень грубым.
Гораздо интереснее оказался трёхголосный синтез. Программа одновременно ведёт три счётчика частоты, складывает их состояния и на каждом проходе решает, включать динамик или выключать. Один цикл микширования занимает 338 тактов процессора. Подобные эксперименты хорошо показывают, насколько многое зависит не от мощности железа, а от понимания его ограничений. Другой энтузиаст недавно собрал компьютер в духе 1980-х вокруг современных компонентов и той же философии осознанного минимализма.
Мартин также проверил широтно-импульсную модуляцию, при которой громкость имитируется длительностью очень коротких импульсов. Теоретически такой подход способен дать более качественный звук, поскольку механическая часть динамика не успевает мгновенно реагировать на переключения. На практике эксперимент закончился в основном высокочастотным писком, поэтому разработчик продолжил работу с программным смешиванием каналов.
Сам приём не появился в 2026 году. Ещё разработчики игр для Spectrum создавали удивительно сложную музыку без отдельного аудиочипа. Особую известность получили композиции Тима Фоллина для Agent X, Agent X II, Chronos и других игр. Современный разбор старых приёмов снова показал, насколько далеко программисты 1980-х заходили ради нескольких дополнительных голосов.
Мартин опубликовал код и записи получившегося звука, а в подробном эксперименте разобрал подсчёт тактов Z80, PCM, программное смешивание и неудачные попытки заставить PWM работать достаточно чисто. По словам разработчика, удачный вариант с тремя каналами звучит настолько насыщенно, что уже слабо напоминает однобитную систему.
Старые игровые платформы вообще оказываются гораздо гибче паспортных характеристик. Летом разработчики запустили Linux на Sega MegaDrive 1988 года, где основной процессор Motorola 68000 работает на частоте всего 7,6 МГц. Недостающую память машине предоставил современный картридж с FPGA.
Ностальгия иногда работает и в обратную сторону, когда современное железо специально приспосабливают под эстетику прошлого. Проект 240-MP превратил Raspberry Pi в ретро-медиаплеер для кинескопного телевизора с интерфейсом в духе видеомагнитофонов 1990-х.
