ZX Spectrum заставили выдавать цифровой звук через 1-битный бипер

Digital Audio on the ZX Spectrum's 1-Bit Beeper

Автор завершает серию статей о ZX Spectrum, показывая, как заставить простой 1-битный бипер всех моделей Spectrum воспроизводить высококачественный цифровой звук. Демо проверено на реальном 48K Spectrum и современном клоне Omni 128, а также в эмуляторах Fuse, EightyOne, Zesarux, Spectaculator и Clock Signal. Техника требует точных временных задержек и прямого доступа к регистрам, а для сэмплов нужно практически вся оперативная память. Автор описывает две неудачные попытки и путь к рабочему решению.

Мне пришлось дважды полностью переписать код, прежде чем я получил хоть что-то работающее, и даже тогда он едва укладывался в временные ограничения, которые я себе поставил.
  1. socializer

    Заниматься подобными вещами в эпоху 8-битных машин было не так уж и сложно. Сложность была в том, чтобы делать это, а потом ещё что-то, потому что для синтеза звука тебе нужен практически весь CPU. В играх существовал очень реальный компромисс между расчётом видео, игрового состояния и звука, и звук часто оказывался на вторых ролях.

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

  2. urbandw311er

    У меня в памяти осталось, как какая-то игра для Spectrum воспроизводила через динамик что-то вроде синтезированной речи, что казалось невероятно опережающим своё время. Кажется, игра называлась iBall. И в сэмпле было что-то вроде «Fight iBall!» Я что, неправильно запомнил? Это был горячечный сон?

  3. musha68k

    Из-за всех этих ограничений ZX Spectrum — фантастическая система для программирования ради удовольствия; жаль, что я пропустил последнюю партию Spectrum Next в прошлом году.

Ещё за этот день

2026-09-29