Не во всех играх под DOS есть настройки звука. Например, в Lemmings все просто работает. Или нет. Но там, где настройки все же имеются, они выглядят примерно так:


Когда я играл в «Принца Персии» в девяностые, моим единственным выбором была верхняя строчка, по причине отсутствия в компьютере нормальных звуковых устройств. В своем новом-старом 386-м компьютере я по умолчанию использую Sound Blaster, и вполне доволен результатом. Про другие опции в те времена я мало что знал, хотя в настройках разных игр они всплывали часто. Sound Blaster был достаточным апгрейдом: если он есть, то со звуком в твоем компьютере все в порядке.


А был ли вариант покруче? Здесь легко запутаться в определении этого самого «круче». В каких единицах должен выражаться прогресс? Сегодня я расскажу об уникальном во многих смыслах звуковом устройстве для IBM PC эпохи DOS — синтезаторе Roland MT-32. В конце восьмидесятых это был самый дорогой вариант реализации компьютерного звука. Тридцать с лишним лет спустя это недешевый коллекционный девайс, который превращает и так неплохой звук в некоторых DOS-играх в монументальный саундтрек.

Все статьи по теме:

0. 1992 год в компьютерной прессе
1. Рассматриваем материнскую плату 386-го компьютера
2. Бенчмарк 386-го процессора и лихие девяностые
3. Трудный выбор звуковой карты для DOS-игр
4. Особенности Sound Blaster Pro 2
5. Roland MT-32, альтернативный звук для DOS-игр — < — вы находитесь здесь

Дневник коллекционера старых железок я веду в Телеграмме.

Глава, в которой я испытываю трудности с терминологией


Roland MT-32 в понятных для далекого от музыкальной индустрии человека терминах — это синтезатор без клавиатуры. Он оснащен разъемами стандарта MIDI, знакомыми нам также по советской аудиотехнике и древним клавиатурам пятиштырьковыми DIN. В 1987 году MT-32 был самым бюджетным устройством в линейке синтезаторов этого японского производителя: стоил 695 долларов (1570 с поправкой на инфляцию), в то время как полноценный синтезатор Roland D-50 обошелся бы в 1895 долларов ($4290). К MT-32 можно подключить MIDI-клавиатуру и таким образом получить бюджетное решение для извлечения звуков создания музыки. Минимум кнопок на передней панели позволяет выбрать определенный тип звучания, а дальше все зависит от исполнителя.


Изучая MT-32, я обнаружил себя в своего рода провале между компьютерными и музыкальными наборами знаний. Про компьютеры мне кое-что известно: мы привыкли измерять потенциал наших больших и малых железок в мегагерцах и мегабайтах. У музыкантов другие критерии: характер и качество звучания, возможность решить определенную творческую задачу, удобство использования в студии и на выезде, интеграция с другим оборудованием. И про это я не знаю практически ничего. А хочется что-то понять за пределами стандартного «подключил к компьютеру и оно работает». С этим у MT-32 все тоже непросто, но об этом чуть позже. Если я где-то промахнулся в формулировках, помогите поправить.

Уникальность Roland MT-32 в том, что это устройство изначально создавалось для музыкантов, но для них не очень подошло. Этот синтезатор (наряду с некоторыми другими устройствами Roland конца восьмидесятых) использует технологию линейно-арифметического синтеза. Здесь мне пришлось прерваться и изучить, какие вообще бывают синтезаторы. Эти устройства делятся на аналоговые (например, Yamaha CS-80, использовавшийся Вангелисом при записи саундтрека к фильму «Бегущий по лезвию бритвы») и цифровые, моно- и мультитембральные (не путать полифонией — этот термин определяет возможность одновременно играть несколько нот, в то время как мультитембральное устройство одновременно оперирует разными «голосами»). Цифровые синтезаторы используют разные методы синтеза: аддитивный, субтрактивный, тот самый линейно-арифметический и частотный, он же широко применяемый в звуковых картах FM-синтез.


Во всех случаях цифрового синтеза итоговое звучание формируется путем последовательных вычислений, изменяющих какой-то исходный сигнал. В случае FM-синтеза «исходником» являются простые синусоидальные сигналы, но в MT-32 отправной точкой были цифровые сэмплы в формате PCM. Хочется назвать их сэмплами «реальных инструментов», но на самом деле не только: в ПЗУ этого синтезатора могут быть зашиты звуки, имеющие вовсе не музыкальную природу. В видеоролике ниже Эрик Персинг, в свое время работавший «главным дизайнером звука» в Roland, демонстрирует характерное звучание синтезатора Roland D-50, также использующего линейно-арифметический синтез, и рассказывает, откуда взялись те или иные исходники. Например, упоминается «звук падения пилки для ногтей в ванну».


Таким образом, Roland MT-32 — это цифровой, мультитембральный (одновременное воспроизведение 8 «тембров» плюс отдельный канал для ритм-секции), полифонический (одновременное воспроизведение до 32 нот) синтезатор. В память устройства записана библиотека из 128 музыкальных сэмплов плюс 30 сэмплов перкуссии. В появившейся позже (по крайней мере, в компьютерных звуковых картах) технологии таблично-волнового синтеза также используются PCM-сэмплы, но основная разница между ними заключается в длине сэмпла. Построенный по технологиям 80-х MT-32 имел крайне ограниченный объем памяти (512кБ ROM для хранения сэмплов), длина каждого — от 0,1 до 3 секунд. Каждый сэмпл содержит звук атаки определенного инструмента, первоначальный импульс звукоизвлечения, первые доли секунды нажатия на клавишу фортепиано. Да, фортепиано здесь упомянуто просто для примера, сэмплов этого инструмента в Roland MT-32 как раз нет.

Музыкальная пауза


Короче, как создать бюджетный синтезатор, если на дворе 1987 год? Берем полноценный, дорогой синтезатор, выкидываем клавиатуру, часть библиотеки сэмплов, всю периферию кроме интерфейса MIDI, экономим на цифро-аналоговом преобразователе и на схеме усиления аналогового звука. Получаем устройство в три с лишним раза дешевле, которым профессионалы пользоваться, скорее всего, не будут. Во-первых, устройство получилось шумное: наложение нескольких треков с одного синтезатора друг на друга быстро выведет этот фоновый шум за пределы разумного. Во-вторых, устройство получилось глючное: из-за особенностей работы ЦАП в некоторых случаях вместо музыки воспроизводятся щелчки и треск. Поэтому на Youtube вы не найдете демонстрацию MT-32 как музыкального устройства. Но так как есть профессиональные синтезаторы, работающие по более-менее тем же принципам, можно составить впечатление о теоретическом потенциале технологии по ним.


Мне было важно составить впечатление не только по компьютерным играм. Я не музыкант, и скорее всего буду использовать Roland MT-32, как и все, в режиме «звуковой карты», слушая только то, что записали до меня другие. На видео выше — еще одна демонстрация возможностей Roland D-50, и здесь есть не только отдельные звуки, но и примеры их использования в популярных музыкальных композициях конца восьмидесятых и начала девяностых. Например, вот этот трек Enya 1988 года (все примеры взяты отсюда):


Или интро к треку Bad Love Эрика Клэптона 1990 года:


Один из самых известных сэмплов D-50 в начале композиции Милен Фармер 1988 года:


Даже начало музыкальной темы к Симпсонам исполнено на D-50:


Впервые в своем ретрохобби я столкнулся с представителем устройств, которые впечатываются в культурный код прочнее и масштабнее, чем любая чисто компьютерная технология. В синтезаторах не столь важны чистые технические характеристики, такие как разрядность ЦАП или объем ПЗУ. Компании, их создающие, формируют кирпичики для строительства произведений искусства, как массовых, так и не очень, для эстетов и трудовой молодежи. Как и синтезатор Yamaha DX7 (видео с примерами) с технологией FM-синтеза, Roland D-50 в восьмидесятых использовался массово, частично отвечая за характер музыки того времени, от Майкла Джексона до Жана-Мишеля Жарра, от Рика Эстли до Tangerine Dream.

Почти во всех примерах выше конкретная модель синтезатора не играет главную роль. Звук инструмента всегда каким-то образом изменяется, сочетается с другими синтезаторами и живыми инструментами. Почти никогда исполнители не рассказывают, что они делали со звуком и как: это их коммерческая тайна, залог конкурентного преимущества. Тем не менее, было интересно увидеть устройство, косвенно связывающее понятное мне «компьютерное творчество» с искусством в более широком понимании. Закончим на этом музыкально-теоретическую часть и перейдем к главному блюду: второй жизни Roland MT-32 в качестве компьютерного звукового интерфейса. Тут мы тоже имеем дело с творчеством, но в другом стиле, когда пусть и многоголосый синтезатор используется сам по себе, без дополнительных примочек и обработки.

Roland MT-32 и компьютерные игры


В 1988 году Roland заключает сделку с разработчиком игр Sierra On-Line. Происходит довольно успешная трансформация MT-32 из устройства для музыкантов-любителей в компьютерную приставку, расширяющую возможности ПК по воспроизведению звука. «Расширять» тогда было особо нечего: стандарта пока нет, в 1987 году только выходят звуковые карты AdLib и тупиковая Creative Music System. Первый Sound Blaster, совместивший FM-синтез и воспроизведение цифровых сэмплов, будет выпущен годом позже, в 1989-м.


Roland с 1984 года выпускает устройства с реализацией интерфейса MPU-401, позволяющего подключить MIDI-синтезатор к компьютеру. Совместимые платы расширения доступны как для IBM PC, так и для Apple II, Commodore 64, PC-98 и других компьютерных архитектур. Соглашение с компанией Sierra On-Line — это попытка сделать управляемые компьютером синтезаторы массовыми: до этого целевой аудиторией были «создатели» музыкального контента, а тут — потребители. Попытка относительно удачная. В списке совместимых игр на Википедии упомянут десяток игр для Amiga и Atari ST и четыре сотни наименований для IBM PC. Распространению мешает высокая цена: бандл из MT-32 и интерфейса MPU-401 стоит 550 долларов. Дешевле изначальных 695, но все равно дорого — в современных деньгах это $1140. AdLib в 1987 году стоил 245 долларов. Первой игрой с поддержкой MT-32 стала King's Quest IV:


Классическим примером хорошего саундтрека для Roland MT-32 является игра The Secret of Monkey's Island 1990 года:


Эпоха MT-32 длилась всего три года. В 1991 году был принят стандарт General MIDI: разработчики договорились о единых спецификациях интерфейса, так, чтобы на любом совместимом устройстве при команде «играть на пианино» действительно играло пианино, а не балалайка. Для Roland MT-32 был выпущен патч, обеспечивающий частичную совместимость, но звук в любом случае серьезно отличался от более поздних устройств. И наоборот: наследники MT-32, в частности Roland SC-55, даже если имели режим совместимости с MT-32, звучали по-другому.

Вид из 2019 года


Когда я начал строить свой 386-й на максималках, стало понятно, что без MT-32 мне обойтись не удастся. Все признаки коллекционного устройства тут налицо: сложная история, уникальная технология синтеза, характерный звук из восьмидесятых. Надо брать! Только какой и почем? И как его подключать? Задолго до покупки я в общих чертах изучил матчасть, как это сейчас принято, по видео на Ютюбе. Рекомендую вот этот обзор Lazy Game Reviews:


И это монструозное трехчасовое видео Phil's Computer Lab, где детально описываются все особенности самих устройств, разные варианты MT-32, подключение к компьютеру всеми способами и так далее. Обязательно к просмотру перед покупкой. Рекомендую также эти два видео Дмитрия Бачило.

Сам Roland MT-32 доступен в двух ревизиях: более позднюю модель можно отличить по наличию отдельного разъема для наушников. В ней же пофикшены некоторые аппаратные баги. Помимо этого выпускались родственные модели, предназначенные только для использования с компьютером: Roland CM-32L (на фото ниже, отсюда) и CM-64.


Эти два меня интересовали в меньшей степени. Во-первых, потому что у них нет экрана. Во-вторых, они и новыми выглядели уныло, а сейчас их найти можно только в неприглядном виде с пожелтевшим корпусом. Здесь повторяется ситуация, уже испытанная мной на примере звуковых карт: устройств много, и они между собой плохо совместимы. В устройствах CM-серии расширена библиотека звуков, и некоторые игры их используют. Значит на простом MT-32 они будут звучать чуть по-другому. Более того, баги, пофикшенные в новой ревизии MT-32, иногда приводят к неправильному воспроизведению звука в другом подмножестве игр. Каждый сам для себя решает, как далеко забираться в эту кроличью нору, хотя самый упоротый радикальный способ воспроизведения игрового звука на аутентичном железе — это собрать все модификации и все ревизии, и долгими зимними вечерами сравнивать их друг с другом.


Помимо внешних устройств, MT-32-подобные синтезаторы выпускались во внутреннем исполнении. Это Roland LAPC-1: у него есть 33 дополнительных звука из CM-32L и сохраняется возможность подключения внешнего синтезатора. Не попал в вишлист по причине крайней редкости и, опять же, из-за отсутствия умеренно красивой коробочки с экраном и кнопками.

Цены на Roland MT-32 начинаются от 200 долларов за модель первого поколения (с багами). Произошло интересное сочетание моды на старое железо для компьютеров и популярности винтажных синтезаторов: за артефактами охотятся одновременно две категории коллекционеров хлама. Мой Roland MT-32 первого поколения был приобретен по нижней границе ценового диапазона, в характерном для тридцатилетней железки состоянии: чуть поцарапан от долгого хранения в чулане, слегка протерт пластик вокруг регулятора громкости. Зато рабочий и с оригинальным блоком питания огромных размеров. Давайте посмотрим, что у него внутри:


Устройство управляется 16-разрядным контроллером Intel C8095-90. В наличии две микросхемы ПЗУ. За преобразование цифрового сигнала в аналоговую форму отвечает ЦАП Burr-Brown PCM54, из категории «теплого лампового мультибита».


Потенциал ЦАПа используется не полностью: на него подается 15-битный сигнал с частотой дискретизации 32 килогерца (во второй ревизии полноценные 16 бит).


Три разъема DIN: вход, выход и passthrough, за счет последнего можно соединять несколько устройств в одну цепь, и управлять ими с одного устройства. Линейный выход на двух монофонических 6.3-мм джеках: типичный для студийного оборудования, но нечасто встречающийся в домашних условиях. Переходник на стерео-миниджек обычно подключается к линейному входу звуковой карты, чтобы комбинировать саундтрек с Roland и обычный PCM-звук. В идеале нужно бы использовать микшер, чтобы не накладывать помехи двух ретроустройств друг на друга.

Самый простой способ подключить внешний MIDI-синтезатор к компьютеру — использовать комбинированный игровой/MIDI порт звуковой карты. Проблема в том, что для 386-й системы я выбрал Sound Blaster Pro 2, а эта модель не поддерживает интерфейс MPU-401. Его поддерживает более современная Sound Blaster 16, но большинство версий этой платы имеют так называемый "баг висячей ноты" (AWE32 также ему подвержены): когда внешнее устройство MIDI используется одновременно с цифровыми PCM-сэмплами в играх, определенная нота саундтрека «подвисает» и таким образом расстраивает любителя ретротехники. Некоторые даже использовали две звуковые карты одновременно: одна из них отвечает только за передачу MIDI-данных на синтезатор, другая за все остальное.

На Creative SoundBlaster AWE64 (и на многих других звуковых картах) проблем нет, но есть нюанс. Большинство звуковых карт поддерживает урезанный стандарт MPU-401, известный как Normal или UART mode. Полноценный Intelligent Mode, позволяющий передавать расширенный набор команд, требует особого адаптера. Правильный способ подключить Roland MT-32 к компьютеру заключается в покупке того самого бандла, который в 1988 году распространяла со своими играми Sierra On-Line: это сам синтезатор, восьмибитная интерфейсная карта Roland MIF-IPC-A и внешний интерфейс-посредник MPU-401 Midi Processing Unit. И вот эта комбинация попадает в продажу из закромов еще реже, чем сам Roland MT-32:


Я конечно люблю старые железки, но не настолько богат, чтобы платить от $500 до $1500 за, по сути, альтернативную реализацию последовательного порта. Чуть позже Roland интегрировала содержимое внешнего модуля MPU-401 в плату расширения, но найти такие варианты ничуть не проще. Итого: самый простой способ подключить Roland MT-32 к старому компьютеру — это использовать gameport звуковой карты, которая хотя бы не добавляет в процесс собственные глюки. Полноценный Intelligent режим интерфейса MPU-401 реализуется в софте, при помощи современной DOS-программы SoftMPU.



Но я решил добавить еще пару градусов безумия в этот проект и купил плату HardMPU: аппаратную реализацию SoftMPU на контроллере ATMega с открытыми исходниками, восьмибитный MIDI-интерфейс с поддержкой всех особенностей работы Roland MT-32.


Отдельным приятным моментом была установка в мой ретрокомпьютер из запчастей 25-30-летней давности первой новой детали. По умолчанию HardMPU настроен на работу на втором прерывании, по адресу 330h, и именно там ожидают увидеть Roland MT-32 большинство игр.


Кстати, MIDI-интерфейс неплохо пережил четыре десятилетия эволюции персональных компьютеров. К современной системе его можно подключить с помощью USB-адаптера Roland UM-ONE или подобного. В Windows 10 устройство не требует драйверов, без проблем играет через MT-32 MIDI-файлы и достаточно легко интегрируется с DosBox.


Последний баг MT-32, который мне надо было победить, — это проблему переполнения буфера. Ранние версии MT-32 ожидают поступления системных сообщений с интервалами в 40 миллисекунд. На относительно мощных системах MIDI-данные передаются быстрее, что вызывает переполнение буфера и вот такое сообщение об ошибке. Иногда это проходит без последствий, иногда вызывает сбои при воспроизведении. Чтобы вы знали, 386-й компьютер с процессором на 40 мегагерц — это мощная система, и при загрузке «Принца Персии» переполнение буфера также происходит. HardMPU решает эту проблему путем отправки sysex-команд с задержкой, но эту фичу надо заранее включить при помощи специальной утилиты под DOS.


Как это звучит? Естественно, первое, что я запустил — это «Принц Персии», в версии 1.3 под DOS, которая поддерживает Roland. Некоторые игры используют экран MT-32 для вывода приветственного сообщения при загрузке данных. Наиболее известное из них — «Insert Buckazoid» из игры Space Quest 3 1989 года. Музыкальную тему Prince of Persia с настоящего MT-32 я записал на видео ниже. Сравнить с версией на Sound Blaster Pro 2 можно тут.


В знакомой игре MT-32 звучит непривычно. В «Принце» можно вывести на Roland и звуковые эффекты, и это непривычно вдвойне, так как серьезно отличается от традиционного варианта. Хотя и не лишено оригинальности: через Sound Blaster играются сильно пожатые монофонические сэмплы, здесь — стереозвук, да еще и с реверберацией, так что шаги главного героя звучат так, как должны звучать при перемещениях по мрачным подземельям. Не все саундтреки для Roland MT-32 одинаково хороши, и часто возникает вопрос — действительно ли создатели саундтрека писали его под Roland или просто адаптировали что-то еще? Какой вариант звучит «так, как задумано»? В случае «Принца» ответ «никакой», так как игра и музыка к ней писались вообще под Apple II. В любом случае это достойный изучения культурный слой: и в игры новые-старые поиграть, и музыку послушать «на максималках».


Пока меня больше всего впечатлили музыкальная тема для «Дюны» и звуковое сопровождение в SimCity 2000: вот в этой игре 1993 года MT-32 превращает игрушечные звуки FM-синтеза в нечто более приятное для ушей. Рекомендую этот плейлист на Ютюбе от пользователя barbarianbros, там собрано 160 примеров звука в играх, поддерживающих Roland MT-32.

Бездушная эмуляция


Стоит ли овчинка выделки? Если уж я поставил себе задачу строительства бескомпромиссной системы на 386-м процессоре, то да, стоит. Почти все игры, поддерживающие Roland MT-32, заработают на таком компьютере. Более поздние релизы, для которых мощности моего ретро-ПК будет маловато, ориентированы на General MIDI и табличный синтез. Черная коробка Roland MT-32 приятно смотрится на столе. Можно изучить, какую пасхалку предусмотрели создатели игры для вывода на дисплей синтезатора. На нем же отображаются «инструменты», используемые в саундтреке.


Но это всё не обязательно. Если основной повод для строительства ретроПК — ностальгия — то надо играть в игры с «правильным» звуком саундбластера. И главное, MT-32 со всеми своими особенностями был достоверно реализован в софте. Проект Munt оказался в странном положении из-за авторских прав: для работы с ним требуются дампы оригинальных ROM от настоящего синтезатора. На них очевидно распространяется копирайт Roland, поэтому дистрибутив программы распространяется без них. Если дампы добыть (в идеале, вытянув прошивку с микросхем собственного устройства, но можно и в интернете найти), то вы получите полноценную эмуляцию не только MT-32, но и более поздних устройств на его базе, на выбор. Munt интегрируется с DosBox, и даже может быть подключен к ретрокомпьютеру. Вместо дорогой аутентичной железки можно прикрутить где-то в глубине ретродесктопа Raspberry Pi и с нее гонять «тот самый звук».


Повторюсь, глубину погружения в ретрохобби каждый определяет самостоятельно. Железки — это круто, но изучение олдскульных игр важно само по себе, даже если для этого вы используете эмулятор. Когда я наконец соберу этот ретроПК (а потом еще один), мой план заключается в неспешном прохождении старых DOS-игр, что в принципе можно сделать без вложений, с неплохими результатами для большинства игр (но есть исключения, требующие реального железа). Хотя, если честно, после знакомства с Roland MT-32 мне было бы интереснее попробовать писать на нем музыку. Я про это совершенно ничего не знаю, и даже не понимаю, как подступиться — искать ретроредакторы для создания музыки? Использовать современный софт со старым железом? Как минимум я знаю, что у других получается писать музыку на таком древнем устройстве, и получается весьма неплохо.

Займусь этим потом. Синтезатор добавил во всю мою конструкцию больше индустриальной красоты и серьезно расширил возможности. Но это далеко не последний апгрейд: я буду вставлять в свой 386-й компьютер платы расширения, пока не закончатся свободные слоты. А потом возможно поменяю материнскую плату на другую, где слотов побольше, займу все слоты там, и вот тогда будет правильно. Следите за обновлениями, продолжение следует!

Комментарии (43)


  1. ShockwaveNN
    07.01.2020 00:24

    А я правильно понял что «просто» это устройство к компьютеру подключить нельзя, нужны или дорогие переходники, либо через аудокарту?
    Т.е формально это не альтернатива того же Soundblaster (как можно сделать вывод из меню настроек игры), а скорее дополнение к нему?


    1. f15 Автор
      07.01.2020 00:44

      Да, в большинстве случаев нужен и синтезатор, и Sound Blaster. Roland заменяет встроенный в звуковую карту FM-синтезатор (или в более поздних моделях — табличный синтез). Он не предназначен для воспроизведения оцифрованных звуковых сэмплов. Например в видео из Dune музыка играет через Roland, а речь (по сути WAV-файлы) воспроизводится через SB. В некоторых случаях (Prince of Persia) Roland воспроизводит и саундтрек, и эффекты, но не во всех.


  1. M_AJ
    07.01.2020 01:32
    +4

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


  1. composer_ondo
    07.01.2020 01:32

    Не в тему статьи но вскользь. Есть очень классная библиотека к сэмплеру контакт — Analog Dreams. Для тех.кто испытывает ментальные оргазмы от подобных звуков youtu.be/O312JIRAKCE


  1. Manwe_SandS
    07.01.2020 01:45

    Ого, HardMPU – отличная вещь! Кто бы ещё реплику Gravis UltraSound сделал. Люди часто спрашивают.



  1. s1im
    07.01.2020 10:06
    +1

    На канале LGR есть более общее и наглядное видео об эволюции звуковых систем: www.youtube.com/watch?v=a324ykKV-7Y


  1. checkpoint
    07.01.2020 10:25
    +1

    Только Covox, только хардкор!

    PS: На сколько я помню, Sound Blaster AWE32 с двумя SIMM-ами полностью закрывал все вопросы со звуком на PC, в том числе по FM и табличному синтезу, и стоил в половину комплекта от Roland. К тому же, таблицы сэмплов в AWE были загружабельными, а не прибиты насмерть как в MT-32.


    1. beduin747
      07.01.2020 11:59
      +1

      Да, авеха была крута. Сначала душил жабу, чтобы купить sb32 (на тот момент awe была дорогой для меня), потом искал пару одинаковых 30-ти пиновых симов как можно большего объёма. В итоге, накопал пару по 4 Мб. Потом начались поиски soundfonts (кажется так назывались). GM, GS и т.д. Игрухи реально преобразились. Например Doom =))).


      1. checkpoint
        07.01.2020 13:15

        Doom — эталон эталонов! :)

        Так же помню, народ сильно любил Гуся (Gravis Ultra Sound), помоему как раз за табличный синтез, но AWE32 побил всех.


        1. axe_chita
          07.01.2020 17:34

          Холивар детектед ;) всех победил Win32 & AC97 (HD Audio)
          Гуся любили за аппаратный 32-х канальный микшинг звуковых потоков на GF1, а вот что на нем крутиться будет midi синтез, модули, или что-то свое не имеющее аналогов в мире было не важно.


          1. Denis_Chernyshev
            10.01.2020 12:55

            Ага, победил. Сам AC97 играть MIDI не умеет, запускает эту порнографию — Microsoft GS Wavetable Synth. Сравнение с настоящим Wavetable никак не выдерживает.
            Попробуйте сравнить. Без железа это можно сделать с CoolSoft VirtualMIDISynth


    1. khim
      07.01.2020 16:41

      Ну дык вам же сказали: эта эпоха продолжалась три года. AWE32 — это уже 1994й год. И да — он крут, но… игры вышедшие до него, разумеется, никто не переиздавал…


    1. santiago739
      07.01.2020 17:19
      +1

      Turtle Beach Tropez Plus тоже был очень неплох, у него было 3 сима по 4Гб, что вполне хватало для бюджетного написания музыки (ну и игры, конечно =) )


      1. BubaVV
        07.01.2020 20:11

        Отличная опечатка)


        1. santiago739
          08.01.2020 18:00
          +1

          =) Мб, конечно


  1. stilic
    07.01.2020 10:42
    -1

    Примеры из игр выглядят визуально не кузяво.

    Но вот звук с нормальным аудиоустройством, оказыватся, вполне себе современен.


    1. checkpoint
      07.01.2020 13:18

      Если говорить о сравнении звука (автор акцентирует внимание именно на этом), то наверное было бы более логичным взять какой нибудь Cubic Player и прогнать одну и ту же композицию с разными вариантами железа.

      И кстати, на PC speaker-е тоже можно было выжать кое-что. Кто нибудь помнит как звучали модули S3M на стандартном спикере?


      1. khim
        07.01.2020 16:44
        +2

        Ничего путного на PC speaker'е было сделать нельзя. Очень много ресурсов уходило. Звук можно было сделать неплохой, но тогда ничего не оставалось уже на саму игру. А когда компьютеры стали достаточно мощными чтобы совмещать — звуковые карты были уже у всех.


        1. axe_chita
          07.01.2020 17:45
          +1

          Star Control 2 укоризненно качает головой, шепчет не разборчиво «Вона как, надо было писиспикер перед релизом выкинуть и сэкономить тысячу байт в экзешнике. И пусть блястеры покупают и вся не долга»
          А дикий народ колхозил усилители динамика для pcspeaker, ну а продвинутые купившие горсть резисторов (9 штук) ваяли модный ковокс.


          1. mistergrim
            07.01.2020 18:48

            Усилитель там не нужен был обычно, стандартный выход и так неплохо раскачивал колонку.
            Но надо понимать, что это было суррогатное решение с одними минусами и единственным плюсом — спикер был изначально у всех. Да даже ковокс был бесконечно лучше.


            1. axe_chita
              07.01.2020 20:11

              Естественно нельзя сравнивать pcspeaker с его 1-bit PWM (насколько я помню там было эквивалент 6бит@14кГц максимум) и Covox 8bit@22kHz.
              А про усилители я специально подчеркнул «дикий народ», Продвинутые сразу стали мастрячить ковоксы, более того самая неуемная (в творческом смысле) часть делала ковоксы в виде карт расширения с полноценным декодированием LPT порта и с ЦАП на м/с и с усилителем.


              1. Mur81
                07.01.2020 22:45

                У меня первый PC-совместимый комп был 286-й. Была это первая половина 90-х, точнее уже не вспомню (сам я 81-го года — для ориентира). А звуковуха (ESS688) появилась уже на 386-м или даже 486-м. И вот почему-то в те времена я про Covox знать не знал и не слышал ничего. Хотя паяльник умел держать уже где-то в то время и мог бы себе его спаять. Тяжело было с информацией — интернета не было, во круг про компьютеры не знал никто ничего (включая взрослых). В литературе как-то тоже видимо на глаза не попалось.
                Сейчас у меня лежит купленный лет пять назад SB 32 и два SIMM'а по 4 МБ к нему (судя по всему новых, как ни странно). Собирался поставить его в свой 386-й на максималках (прям как у автора), но жизнь так сложилась что руки не дошли. На этих праздниках опять достал всё это дело но понял, что дома нет VGA кабеля к монитору, пришлось опять отложить. И тут такая статья! После прочтения которой я внезапно осознал, что карта поколения AWE32 на 386-м исторически не достоверна и наверно на нём не так много игр получился запустить, что бы послушать табличный синтез. Хотя у меня в памяти отложилось, что я на 386-м проходил DOOM и каких-то проблем не испытывал. Запустив же сейчас DOOM на этом ретро-ПК понимаешь, что это крайне печальное зрелище.


                1. axe_chita
                  08.01.2020 07:18

                  Ковокс пришел вместе с Scream Tracker-ом в виде текстового файла, так что если коллекционирование STM-ок и MOD-ов было твоим интересом то и пайка ковокса была вопросом времени.
                  А игрушки, это было позже.


                  1. mistergrim
                    08.01.2020 13:17

                    Игрушек под Covox считанные десятки были на самом деле.


                    1. axe_chita
                      08.01.2020 17:18

                      Generic LPT DAC [x] (6 games)
                      Leather Goddesses of Phobos! 2: Gas Pump Girls…
                      Metal Mutant
                      MicroLeague Baseball IV
                      Pim-Pam-Pum
                      The Rocketeer
                      SimAnt: The Electronic Ant Colony


                      1. mistergrim
                        08.01.2020 17:55

                        Covox Sound Master это уже совсем другое, для музыки в первую очередь.
                        Игр с нативной поддержкой HGC совсем мало, в основном это просто конвертация CGA-режима в монохромный 640?200, типа
                        image


                        1. axe_chita
                          08.01.2020 18:55

                          Нельзя просто так взять и конвертировать CGA 640х200x2 в HGC 720x348x2. Организация памяти разная, частоты работы контролера другие (несмотря что там и там используется MC6845). Был конечно резидентный эмулятор CGA, который пытался выводить цветную графику на HGC, но тормоза были такие что TurboXT@12mHz плакала и просила прощения. Плюс, если особо умные «программы» начинали писать в порты МС6845, то эмуляция шла лесом.


                          1. mistergrim
                            08.01.2020 19:00

                            Ну я же не говорю, что «просто» — значит автоматически. Но, думаю, в коде изменено десяток строк максимум.


                            1. axe_chita
                              08.01.2020 19:31

                              Современный Flat доступ к памяти видеоадаптера замыливает воспоминания как это было «весело» на самом деле в те времена.

                              Видеопамять в графических режимах CGA
                              Из-за особенностей микросхемы Motorolla 6845, используемой видеоадаптером CGA, отображение видеопамяти на экран не является непрерывным: первая половина видеопамяти (начальный адрес B800:0000) содержит данные относительно всех нечетных линий экрана, а вторая половина (начальный адрес B800:2000) — относительно всех четных линий. Каждому пикселу изображения соответствуют два бита видеопамяти. За верхний левый пиксел экрана отвечают биты D7 и D6 нулевого байта видеопамяти. На рисунке 5.1 изображено соответствие видеопамяти пикселам экрана.
                              image
                              Рисунок 5.1 Структура видеопамяти для режимов 4 и 5.
                              Если вы хотите выводить информацию на экран дисплея непосредственно через видеопамять, то необходимо уметь определять биты, которые управляют каждым пикселом изображения. В общем случае по координатам пиксела нужно вычислить адрес байта видеопамяти и номера битов в нем, управляющие данным пикселом.
                              Следующие формулы позволяют определить смещение байта от начала станицы видеопамяти и номера битов в нем, управляющие пикселом с координатами (x,y):
                              Если y четное число, то смещение байта = 50h*(y/2)+(x/4)
                              Если y нечетное число, то смещение байта = 2000h+50h*((y-1)/2)+(x/4)

                              Номер первого бита = 7-mod(x/4)*2

                              В этом выражении функция mod(x/y) возвращает остаток от деления x на y.

                              Режим 6 (640х200) является режимом наибольшего разрешения для видеоадаптера CGA.
                              На рисунке 5.2 отображено соответствие видеопамяти и пикселов экрана.
                              Как и в режимах 4 и 5, первая половина видеопамяти содержит данные относительно всех нечетных линий экрана, а вторая половина — относительно всех четных линий.
                              В данном режиме на один пиксел отводится один бит видеопамяти. Таким образом каждый байт видеопамяти управляет восьмью пикселами. Если значение бита видеопамяти, отвечающего за данный пиксел, равно нулю, то пиксел имеет черный цвет, если единице — белый. За верхний левый пиксел экрана отвечает бит D7 в нулевом байте видеопамяти, то есть самый старший его бит.
                              image
                              Рисунок 5.2 Структура видеопамяти в режиме 6.
                              При непосредственном доступе к видеопамяти вы можете воспользоваться следующими формулами:
                              Если y четное число, то смещение байта = 50h*(y/2)+(x/8)
                              Если y нечетное число, то смещение байта = 2000h+50h*((y-1)/2)+(x/8)

                              Номер бита = 7-mod(x/8)

                              Эти формулы позволяют определить для пиксела, имеющего координаты (x,y), смещение от начала станицы видеопамяти байта и номер бита в нем, управляющего данным пикселом.


                              1. mistergrim
                                08.01.2020 19:38

                                Ну и по сути память-то линейная, разница только в чередовании линий растра. На что десять строк кода и уйдут. А картинка выводится один-в-один. Провёл маленький эксперимент, заменил в коде инициализацию CGA-режима 4 в 6, сохранил картинку, сравнил с Hercules:
                                image

                                Разница, в общем, примерно как между ZX Spectrum и Enterprise 128.


                                1. axe_chita
                                  08.01.2020 20:42

                                  Нелинейная организация памяти: у CGA четные/не четные строки, у HGC через четыре строки
                                  image
                                  image

                                  А вот линейный монохромный режим на VGA
                                  image
                                  Кстати в вашем скриншоте Prince of Persia на HGC геймплейная область сжимается до середины экрана, не догадываетесь из-за чего это?
                                  image

                                  Намекну
                                  128000 (16000) и 250560 (31320)
                                  А память медленная… А запись в видеопамять еще медленнее…


                                  1. mistergrim
                                    08.01.2020 20:50

                                    Нелинейная организация памяти: у CGA четные/не четные строки, у HGC через четыре строки
                                    Два ADD/SUB поменять на четыре — какая сложность.
                                    Кстати в вашем скриншоте Prince of Persia на HGC геймплейная область сжимается до середины экрана, не догадываетесь из-за чего это?
                                    А вот это к вам вопрос. Впрочем, могу и ответить — просто программист врезался в середину видепамяти, копируя туда то же, что и в CGA.
                                    Кстати смысла посыла сравнения ZX Spectrum и Enterprize я не уловил.
                                    Там то же самое. В Enterprise линейная организация памяти, в Spectrum — хитрая синклеровская (емнип, из-за прямой привязки к железу, ему так проще было). С минимальными изменениями в коде (фактически, упрощениями) получаем ту же самую картинку. То же на CPC, C64 (ну там ладно, процессор другой).


                                    1. axe_chita
                                      09.01.2020 06:42

                                      Организацию доступа к видеопамяти в Enterprise (64/128) не помню (точнее не знаю), а вот на спектруме была битовая (монохромная) область графики, и область цветовых атрибутов (цвет точек в знакоместе, цвет фона)

                                      Нелинейная адресация видеопамяти ZX Spectrum
                                      Почему экран ZX Spectrum устроен так необычно? Казалось бы, линейный экран намного проще?

                                      Для ответа рассмотрим ZX Spectrum 16K. Контроллеру дисплея требуется считывать сразу два байта подряд (На самом деле он считывает в burst’е 2+2 байт, но для объяснения это несущественно). Сначала считывается байт атрибутов, затем байт пиксельных данных. Адрес приходится выставлять дважды: адрес атрибутов и адрес пикселей.

                                      Объем DRAM 4116 составляет 16кбит или 14 бит. 14 битный адрес мультиплексирован по 7+7 бит и выставляется во времени раздельно, двумя частями. Сначала выставляются младшие 7 бит адреса, сопровождаемые сигналом RAS (row address strobe), при этом микросхема запоминает эту часть адреса внутри. Затем выставляются старшие 7 бит адреса, сопровождаемые сигналом CAS (column address strobe). При этом передача первой и второй части адреса в цикле RAS-CAS требует определённого времени, это важно.

                                      Микросхема DRAM 4116 является одной из первых микросхем PM (page mode) со страничной адресацией. Она позволяет выставлять только одну часть (7 bit) мультиплексированного адреса, оставляя предшествующую часть (выставленную RAS) неизменной. Это работает быстрее, так как не требуется каждый раз посылать обе части адреса. Вместо двух циклов RAS-CAS для передачи полного 7+7 бит адреса остаётся только один цикл CAS. В терминологии PM микросхем DRAM такая ситуация называется страничный доступ.

                                      Теперь вспомним, Z80 разделяет время с контроллером дисплея, и чем быстрее будет цикл чтения контроллера дисплея, тем меньше времени будет простаивать Z80. Ситуация на самом деле хуже, так как если бы чтение выполнялось 4мя циклами RAS-CAS-RAS-CAS, Z80 пришлось бы остановить на всё время чтения строки дисплея. Поэтому Ричарду Альтвассеру пришла мысль использовать страничный доступ 4116 и пере-использовать часть адреса контроллера дисплея. В этом заключается ещё одна маленькая хитрость устройства ZX Spectrum.

                                      Когда контроллер дисплея считывает два байта, адрес байта атрибутов выставляется полный, 14 бит двумя циклами по 7 бит RAS-CAS. Чтение байта пикселей выполняется сразу вслед за этим в страничном режиме, одним циклом CAS. При этом выставляются только старшие 7 бит адреса, младшие 7 бит используются от атрибутов. Тем самым вместо долгого цикла из RAS-CAS-RAS-CAS происходит более короткий цикл RAS-CAS-CAS.
                                      Это и есть ответ на загадку дисплея ZX Spectrum. Из-за ускорения чтения циклом RAS-CAS-CAS по 7+7+7 бит адреса, и из-за того что адрес пикселей использует часть адреса атрибутов, биты адреса пришлось разделить, перегруппировать и отсылать частями.

                                      Рассмотрим, как именно.
                                      Счётчик контроллера экрана условно представлен битами:
                                      v7,v6,v5,v4,v3,v2,v1,v0,c4,c3,c2,c1,c0
                                      где v – 8 битов vertical, пересчитывающих 0..191, c- 5 битов column, пересчитывающих 0..31. С column-частью адреса всё в порядке, перемешивание идёт с v-битами.

                                      В микросхемы DRAM адрес отсылается по 7 бит, сначала сопровождаемые RAS-стробом идут 7 младших бит адреса атрибутов: [v4,v3,c4,c3,c2,c1,c0] – при этом биты v2,v1,v0 счётчика пиксельной строки пропущены.

                                      Затем, по CAS-стробу передаются оставшиеся старшие биты адреса:
                                      [0,1,1,0,v7,v6,v5] – 7 старших бит адреса атрибутов.
                                      Отметим, что биты счётчика v7-v5 следуют за битами v4-v3, продолжая их, т.е. адрес атрибутов линейный. Биты 0,1,1,0 заданы аппаратно. После этого будет прочитан байт атрибутов.

                                      Затем, по CAS-стробу в страничном режиме должны быть переданы 7 бит старшей части пиксельного адреса.
                                      [0,v7,v6,v2,v1,v0,v5] – какова логика такой расстановки битов? Младшая часть пиксельного адреса используется от адреса атрибутов, переданного по RAS. Биты счётчика адреса v4-v3 мы уже передали, значит, следующий бит v5. Далее следуют биты v2,v1,v0, v7,v6 и аппаратный бит 0.

                                      Выставим обе части 7+7 бит пиксельного адреса в ряд:
                                      0,v7,v6,v2,v1,v0,v5,v4,v3,c4,c3,c2,c1,c0.

                                      Разобъём на две группы по 8 бит, также как биты сгруппированы в регистрах микропроцессора z80:
                                      [0,1,0,v7,v6,v2,v1,v0] [v5,v4,v3,c4,c3,c2,c1,c0]

                                      Наблюдаем знакомую картину экранного адреса. Остаётся открытым вопрос – единственный ли это способ группировки бит? Для видеоконтроллера адресация байт в памяти не особо важна. Однако логическая группировка бит адреса для конкретного микропроцессора может либо хорошо совпадать с его архитектурой, либо вызывать затруднения. При проектировании ZX Spectrum (рабочее название ZX82) учитывался опыт предыдущих продуктов Sinclair ZX81, ZX80, имевших дисплей 32 символа по 24 строки. В итоге остановились на наиболее удобной аранжировке бит для программного отображения одного символа, когда для того чтобы переходить к следующей строке достаточно инкрементировать старшую половину адреса. Заметим, что в продуктах ZX80, ZX81 дисплей отображался программно, при помощи Z80, поэтому вопрос производительности был, конечно, понятен. Вот почему, в конечном итоге, ZX Spectrum имеет такую организацию экрана. Исходная причина перестановки бит вызвана требованиями hardware. Но сама аранжировка бит, такая, а не иначе – задана требования software. Замечательная работа инженеров!


                                      1. mistergrim
                                        09.01.2020 06:50

                                        Организацию доступа к видеопамяти в Enterprise (64/128) не помню (точнее не знаю), а вот на спектруме была битовая (монохромная) область графики, и область цветовых атрибутов (цвет точек в знакоместе, цвет фона)
                                        В Enterprise был абсолютно аналогичный режим (один из), но пиксели шли построчно.
                                        А вот что объединяет ZX Spectrum и Enterprise, это что Принца Персии не было ни там ни там.
                                        Технически ничто не мешало, что впоследствии и было проделано энтузиастами



                                        1. axe_chita
                                          09.01.2020 16:04

                                          Технически ничто не мешало, что впоследствии и было проделано энтузиастами

                                          Вот только энтузиасты писали свои версии PoP с нуля, и они явно не ограничились правкой десятка строк в оригинальном исходном коде (который считался утерянным до 2012 года).
                                          Но мы удалились от стартовой точки обсуждения. По факту можно считать то что и HGC использовался в игрушках (нативно), как и COVOX (нативно). И этих игр было куда больше десятка. Плюс имелась неидеальная эмуляция позволяющая запускать на HGC игры написанные для CGA. Опять же имелась (несовершенная) эмуляция различных звуковых устройств на COVOX (примету звукового чип TANDY/PCJr).


  1. aleksandros
    07.01.2020 14:48
    +1

    Действительно, музыка звучит куда лучше чем на Sound Blaster.


  1. kovserg
    07.01.2020 17:19

    Еще же был софтовый эмулятор roland-а


    1. trolley813
      07.01.2020 19:40

      Да и сейчас есть — в виде VSTшки на Windows 10 (в том числе 64-битной) работает как более современная Sound Canvas VA с эмуляцией SC-8820, так и древняя VSC-88. В обеих, кстати, есть совместимость с тембрами MT-32


  1. corvair
    07.01.2020 19:16

    Немного не по теме: попалась Turtle Beach Tropez Classic (не PnP), какова она для игр? Что сможет раскрыть её возможности? Ставил на Pentium-133 под Windows 98 SE вместо SB Vibra 16XV, встроенные демо работают отлично (значит карта исправна), но в играх звуки воспроизводятся неверно. И VxD драйвер ожидаемо вешает систему при переходе в сон, так что максимум для неё получается Win 95.
    Пробовал с Prince of Persia, Doom 2, Hexen и Need for Speed II как SB, с которым заявлена совместимость.


  1. axe_chita
    07.01.2020 20:28

    Кстати, есть такой проект AWE64 Legacy

    a newly designed sound card built up from scratch, based on the original chipset of the 2nd gen Creative SB AWE64 Value (CT4520)
    Our project is inspired by this one made by anthony, but has gone a little further.
    So, to sum up, it's a newly designed sound card built up from scratch, based on the original chipset of the 2nd gen Creative SB AWE64 Value (CT4520): Creative CT8920-NBQ chip and Creative CT1972-UAS/EMU8011-01 WaveROM.
    New and reworked features include:
    1. The onboard 28 MB of RAM — basically, it is an integrated SIMMConn Value (credits: Xu Wang aka SIMMConn) with an integrated 32Mb SIMM72.
    2. True Yamaha OPL3 chipset (YMF262+YAC512) — the schematics were borrowed from the Resound OPL3 card (credits: TexElec). We still have to find the best way to make this function work along with the integrated CQM disabled/moved to 0x398h, we hope to get some assistance from you guys who wrote in this thread.
    3. Intelligent MPU-401 onboard — it is an integrated HardMPU (credits: ab0tj).
    4. Waveblaster header.
    5. Routable MIDI Inputs/Outputs between both CT8920 / HardMPU parts and the Waveblaster header / MIDI pins of the gameport.
    6. Redesigned analog part.
    7. Onboard S/PDIF RCA output with onboard level convertor.
    8. AWE64 Gold-styled 2xRCA analog output.
    9. AC97 Front panel header.
    10. The board complies with ISA Half-Size measures: 185 х 120 mm.
    11. PCB has 6 layers with separate Analog and Digital planes. Power supply has its own layer.


    1. Mur81
      07.01.2020 23:01

      Новодел конечно. Какое же это ретро если она сделана в наши дни?
      Причём лично мне не понятны такие проекты (подчёркиваю — это сугубо моё мнение). Старые карты доступны на барахолках за вменяемые деньги. Есть какие-то коллекционные вещи за которые попросят, но так их ценность именно в коллекционности, а не в том, что они какой-то супер звук выдают. Понятно, что оригинальные карты полны всяких аппаратных недостатков, который могут быть решены в новоделах, использующих современные технологии и элементную базу. Ну так а зачем? Вся эта ретро тема она в принципе держится на ностальгии. Интересно вернуться в детство, испытать те же эмоции (правда зачастую оказывается, что они не такие уж положительные будут — как я вон DOOM на 386-м запустил и расстроился, а в детстве казалось что ОК). Или пощупать какое-то интересное железо, которое в те времена было тебе не доступно по тем или иным обстоятельствам (чем в основном занимается автор этого цикла постов).
      Ну а делать новоделы (при условии доступности оригиналов) и пользоваться ими… Зачем?


  1. engine9
    08.01.2020 01:00

    Такое впечатление, что музыку ко множеству игр времен PS1 писали на синтезаторе из видеоролика. Звук характерный, узнаваемый.