AWE64 Legacy – новый облик классики

Введение

Как известно, лучшее – враг хорошего. Звуковые карты Creative семейства AWE64 были очень популярны среди геймеров во второй половине 90-х годов, поскольку при доступной цене предоставляли качественный WT-синтез MIDI с возможностью загрузки дополнительных банков, поддерживали классический метод FM-синтеза и не слишком шумели при воспроизведении цифрового аудио. Но требовательный пользователь, даже заполучив в руки флагманский продукт, неизбежно начнёт выискивать недостатки и возможности для улучшения/расширения функционала.

Данный материал посвящён уникальному проекту по разработке новой и продвинутой версии легендарной звуковой карты Creative AWE64. Новинка по имени AWE64 Legacy не только вобрала в себя всё лучшее, что предлагала Creative в далёком 1996 году, но и получила новые важные функции, без которых сложно представить себе настоящий ретро-гейминг.

Ниже изложены всё ключевые моменты и предпосылки проекта «реконструкции» AWE64. В проекте приняли участие: Александр «Alex_NsD», Александр «CoolTweak», Дмитрий «H_Rush», Алексей «hard1k». Проследить за ходом работ, а также пообщаться с авторами и ретро-единомышленниками можно в теме проекта на Vogons.

В этой статье определяются задачи разработки, функции новой звуковой карты и способы их реализации, рассматривается первый прототип с его недостатками, подробно описывается второй (текущий) прототип. Но чтобы сформировать понимание, что представляет собой музыка в ретро-гейминге, какой она бывает и как работает, начать стоит с небольшой теории.

 

Музыка в старых играх: FM или WaveTable

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

До массового прихода в каждый дом стандарта MPC (Multimedia PC) и распространения приводов CD-ROM, предоставивших разработчикам колоссальный по тем временам объём для хранения игровых данных и оцифрованных аудиодорожек, основным методом экономии дискового пространства с точки зрения аудио был синтез музыки непосредственно на компьютере пользователя. И это логично, ведь для синтеза нужна инструкция по воспроизведению музыкальной композиции, где были бы указаны ноты, инструменты и различные параметры (тон, время звучания и др.) её воспроизведения. Такая информация займет в сотни раз меньше места на диске, чем полноценный оцифрованный звук, представляющий собой дискретизированную синусоиду.

Наиболее популярным форматом описания таких инструкций стал MIDI (англ. Musical Instrument Digital Interface – цифровой интерфейс музыкальных инструментов) – одновременно и стандарт цифровой звукозаписи, и формат обмена данными между электронными музыкальными инструментами. Остаётся только найти подходящий синтезатор, который «прочитает» инструкцию и превратит её в музыку. При этом очевидно, что звучание такой синтезированной композиции будет напрямую зависеть от реализации синтезатора.

Основным критерием классификации синтезаторов является тип синтеза. Каждый источник может приводить свой перечень известных вариантов синтеза, по-разному группируя конкретные его имплементации, но среди производителей звуковых/музыкальных карт наибольшее распространение (и, соответственно, поддержку в играх) получили три типа синтеза:

  • FM (Frequency Modulation) – синтез на основе частотной модуляции.
  • LA (Linear Arithmetic Synthesis) – совмещённый тип синтеза, где атака берётся из сэмплов, а остальная часть сигнала генерируется.
  • WaveTable – синтез на основе таблицы цифровых сэмплов (звуковой таблицы).

Метод FM-синтеза использует два генератора колебаний, один из которых (модулятор) изменяет частоту сигнала, получаемого от другого (носителя). FM-синтез может генерировать как синусоидальные волны, так и негармонические сигналы. Для синтеза синусоидальных волн модулирующий сигнал должен иметь гармоническое отношение к исходному несущему сигналу. По мере увеличения частоты модуляции звук становится всё более сложным. Для создания негармонических сигналов, например, колоколообразных и ударных, используются модуляторы, частоты которых не являются целыми числами, кратными несущему сигналу.

Наиболее известными устройствами, использующими FM-синтез, являются Yamaha YM3812 (также известный как OPL2 – FM Operator Type-L), представленный в 1985 году, и его преемник – YMF262 (OPL3), выпущенный в 1990 году.

 

 

OPL2 представляет собой набор из 244 доступных только для записи регистров. Данный синтезатор может генерировать 9-канальный звук, при этом каждый канал имеет по два генератора. Генераторы создают синусоидальные колебания, из которых затем можно получить другие формы: полупериод, двойной полупериод или пилообразный сигнал. Каждый генератор частоты имеет собственный генератор амплитудной огибающей ADSR-типа. Для оператора-носителя данные огибающей определяют громкость сгенерированной ноты, а для оператора-модулятора – тембр сгенерированной ноты. Буквой β на рисунке ниже обозначен индекс частотной модуляции.

 

 

Совершенно иначе функционирует WT-синтез. В этом случае звуковая карта воспроизводит заранее записанные цифровые звуки, называемые сэмплами. Как правило, сэмплы хранятся в памяти устройства или загружаются в системную оперативную память. Сэмпл каждого записанного музыкального инструмента состоит из фрагментов под разные диапазоны нот. Во время воспроизведения эти фрагменты подвергаются дополнительной обработке «на лету», например, модуляции и фильтрованию. При этом высота звука регулируется изменением скорости воспроизведения сэмпла.

Неким промежуточным вариантом выступает LA-синтез, совмещающий сэмплы с частотной генерацией. Наиболее известным потребительским устройством, использующий данный тип синтеза, является легендарный «многотембровый звуковой модуль» Roland MT-32.

Основное достоинство WT перед другими типами синтеза – теоретическая предельная реалистичность звучания, которая главным образом зависит от загруженного набора (банка) сэмплов. Кроме того, на большинстве моделей звуковых карт с WT-синтезаторами пользователю доступна возможность загружать собственные банки сэмплов и таким образом кардинально менять звучание MIDI-файлов.

 

 

Процессор обработки MIDI (MPU-401)

Для обработки музыки, записанной на жёстком диске компьютера в виде MIDI-сообщения, её надо отправить на принимающее устройство – блок обработки MIDI (MIDI Processing Unit, MPU). Компания Roland, которая в 80-е годы была одним из пионеров и лидеров индустрии цифрового аудио, разработала специальный интерфейс под названием MPU-401 для подключения аудиоаппаратуры и обработки MIDI. Он быстро стал стандартом всей индустрии.

Оригинальный MPU-401 был выпущен в 1984 году и представлял собой внешний блок с собственным процессором, памятью и программной прошивкой. Всё это было необходимо, поскольку у центральных процессоров того времени не хватало производительности для обработки запросов ввода/вывода своими силами, без использования сопроцессора.

Внешний блок MPU-401 предполагалось подключать к платам расширения, выполненным для ПК различных архитектур, среди которых были и IBM PC/XT с шиной XT-Bus (8-битный вариант ISA). Позднее, когда степень интеграции компонентов возросла, содержимое внешнего блока MPU было перенесено на ту же печатную плату ISA-контроллера. Также он получил совместимость с более новыми системами IBM PC/AT и поддержку дочерних карт с разъёмом WaveBlaster.

 

Первой компанией, которая научилась использовать возможности сопроцессора MPU-401 для обработки MIDI, стала Sierra Entertainment. Она реализовала эту функцию в своих популярных квестах.

Со временем производители звуковых карт для ПК интегрировали в свою продукцию электрический интерфейс, совместимый с процессором обработки MIDI MPU-401, однако без поддержки его функций по обработке запросов ввода/вывода. Поскольку центральные процессоры в начале 90-х стали мощнее, необходимость иметь полноценный аппаратный сопроцессор отпала. Так появился «облегчённый» вариант MPU-401, реализованный на базе UART (универсального асинхронного приемопередатчика). В частности, компания Creative использовала его на звуковых картах Sound Blaster.

Такой вариант работы интерфейса был назван «глупым» (Dumb Mode) – в противовес полноценной аппаратной реализации MPU-401, которая получила название «умного режима» (Intelligent Mode) и поддержку всех изначальных функций оригинального устройства от Roland.

В звуковом оборудовании в качестве физического разъема интерфейса MIDI традиционно использовался классический 5-контактный коннектор DIN, однако он был слишком большим по диаметру и не влезал на заднюю панель звуковой карты. Поэтому производители договорились задействовать для передачи MIDI-сообщений свободные контакты игрового порта (GamePort), который изначально предназначался для подключения джойстиков и геймпадов. Таким образом, изначально сложный и дорогой MPU-401, фактически, представлявший собой целый компьютер, упростился до простого UART, заведённого на пару контактов в разъёме для джойстика.

 

 

Синтез музыки на ПК сегодня

Современные дискретные звуковые карты и интегрированные на материнских платах звуковые чипы лишены собственных синтезаторов. К примеру, для воспроизведения файлов формата .MID в операционных системах семейства Windows применяется программная эмуляция Microsoft GS Wavetable Synth, основанная на сэмплах от компании Roland. Функции FM-синтеза отсутствуют. Более того, в ОС Windows Vista и более современных системах от Microsoft функция выбора синтезатора MIDI и вовсе исчезла из настроек устройств воспроизведения звука. Таким образом, для активации альтернативных синтезаторов MIDI в современных операционных системах приходится пользоваться сторонним программным обеспечением, например, утилитой MIDI Out Setter.

 

 

Программный синтезатор Microsoft справляется с воспроизведением MIDI-файлов, однако обеспечивает невысокое качество звучания из-за скудного набора сэмплов и не очень удачного их подбора. Если пользователь желает насладиться качественной музыкой формата MIDI, ему в обязательном порядке необходима звуковая карта с качественным WaveTable-синтезатором (или его программный эмулятор). С другой стороны, для максимальной совместимости со старыми компьютерным играми такая звуковая карта должна быть дополнительно оснащена FM-синтезатором OPL2/3.

 

Creative AWE

Серию звуковых карт AWE (Advanced Wave Effects – улучшенные волновые эффекты) компания Creative представила в марте 1994 года с выпуском модели AWE32. Замысел компании был в том, чтобы совместить на одной печатной плате с интерфейсом ISA 16 звуковую часть от Sound Blaster 16 и музыкальную (MIDI) часть от WaveBlaster.

 

Специально для AWE был разработан звуковой процессор EMU8000, , главной особенностью которого стал 32-голосный (откуда и число 32 в названии звуковой карты) MIDI-синтез по методу WaveTable (WT). EMU8000 использовал 16-разрядные сэмплы с частотой дискретизации до 45,4 кГц и умел применять различные эффекты, вроде реверберации, хора или задержки.

Поддержку классического метода FM-синтеза Creative тоже сохранила для совместимости со старыми играми. Ради удешевления производства компания начала отказываться от оригинального синтезатора Yamaha OPL3 в поздних моделях AWE32, заменяя его собственным аналогом под названием CQM (CT1978).

Также в линейке AWE Creative реализовала важную функцию загрузки сторонних банков WT-сэмплов. Изначально на плате AWE32 распаяны 1 МБ ПЗУ, где хранятся сэмплы из набора GM (General MIDI), и ещё 512 кБ ОЗУ, куда пользователь может загружать дополнительные банки стандарта SoundFont. При этом  на плате также были предусмотрены два слота для планок памяти SIMM-30, что позволяло расширять объём ОЗУ до 32 МБ (однако максимальный адресуемый объём памяти у AWE составляет 28 МБ).

В ноябре 1996 года Creative выпустила обновлённую линейку AWE64. Место флагмана в ней заняла модель AWE64 Gold, а в бюджетном сегменте обосновалась AWE64 Value. За счёт более высокой степени интеграции удалось существенно уменьшить количество электронных компонентов на плате, сделать её компактной и снизить стоимость изготовления (по сравнению с AWE32). Это также положительно сказалось на качестве звучания, поскольку путь сигнала и, соответственно, электромагнитные наводки сократились.

 

Глядя на название звуковой карты, AWE64, можно предположить, что число аппаратных голосов у неё выросло вдвое, однако это не так. Их осталось 32, а дополнительные 32 голоса эмулировались на программном уровне. За эту эмуляцию отвечает WT-синтезатор WaveGuide, который самостоятельно генерирует звучание инструмента вместо того, чтобы брать его из сэмпла в памяти. Он устанавливается в систему в качестве драйвера и создаёт дополнительное MIDI-устройство с 32-мя голосами. Всего MIDI-процессору доступны 128 инструментов, совместимых со стандартами GS (General Synth) и GM (General MIDI), и 10 наборов ударных.

 

 

Для проекта по разработке современной и «заряженной» версии AWE64 была выбрана не старшая модель Gold, а младшая Value, что обусловлено исключительно её распространенностью и сравнительно низкой стоимостью. Отличия между данными моделями во многом косметические, при этом их объединяют следующие особенности:

  • Имеют многофункциональный MIDI-процессор EMU8000 с качественным WT-синтезатором.
  • Поддерживают загрузку пользовательских банков инструментов.
  • Имеют встроенный FM-синтезатор CQM, ограниченно совместимый с классическим Yamaha OPL3.
  • Полностью поддерживают MS-DOS и стандарт Plug & Play в Windows 95/98, 2000/XP.

Характеристики AWE64 Value:

Звуковой процессор CT8920-NBQ
Разрядность 16 бит
Голоса (инструменты) MIDI 32 аппаратных + 32 программных
Частота воспроизведения 44.1 кГц стерео
Частота записи 44.1 кГц стерео
Объем памяти 512 кБ ОЗУ + 1 МБ ПЗУ
Синтезатор EMU8000 (WT) + FM на базе CQM
Системный интерфейс ISA 16 бит
Выходы Line-Out, Speaker-Out (Jack 3.5мм)
Входы GamePort, Line-In, Mic-In (Jack 3.5мм)
Соотношение сигнал/шум 90 дБ
Поддержка PnP Есть

 

Недостатки оригинальной AWE64 и их устранение

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

  1. Отсутствие «умного режима» работы MPU-401

Как было описано выше, более современные реализации MIDI-контроллеров в звуковых картах (т.н. «совместимые с MPU-401») не работают в «умном режиме».

Может возникнуть вопрос, зачем нужен полноценный Intelligent Mode, если есть более простая имплементация через UART? Мощностей современных процессоров более чем достаточно для обработки MIDI-сообщений, и в сопроцессорах компьютер тоже больше не нуждается. Дело в том, что ранние игры, которые умеют разгружать ЦП через сопроцессор MPU-401, не будут нормально работать в Dumb Mode. Единственный способ добиться от них корректного воспроизведения MIDI – задействовать полноценный Intelligent Mode, а для этого нужно реализовать его либо на совместимом аппаратном контроллере, либо на полноценном эмуляторе этого контроллера.

До 2013 года ретро-энтузиасты были вынуждены приобретать дорогостоящие оригинальные изделия от Roland или совместимые с ними аппаратные клоны производства MIDIMAN, MusicQuest, Voyetra и других, но затем появился программный эмулятор SoftMPU, существенно облегчивший им жизнь. Это утилита позволяет эмулировать Intelligent Mode на любом UART, даже на COM-порте (RS-232).

  1. Отсутствие оригинального FM-синтезатора OPL3

Как уже было отмечено, Creative в линейке AWE отказалась от внешнего FM-синтезатора Yamaha OPL3 в пользу собственного интегрированного аналога под названием CQM. В большинстве случаев OPL2/3 и CQM совместимы, однако они различаются по звучанию, что нравится далеко не всем ретро-энтузиастам.

При воспроизведении MIDI через FM-синтезатор звуковой сигнал у AWE64 проделывает следующий путь:

Порт I/O 220/388 => CQM => EMU8000 => DAC => MIXER => LINE-OUT, где:

  • EMU8000 – звуковой процессор;
  • DAC – цифро-аналоговый преобразователь;
  • MIXER – стереомикшер;
  • LINE-OUT – разъем линейного вывода на задней панели звуковой карты.

Отсюда возникла задача – сделать так, чтобы сигнал с порта I/O 220/388 поступал на OPL3, а не на встроенный синтезатор CQM. Решением стала установка OPL3 в параллель с CQM с дальнейшим переводом CQM на другой порт. Таким образом, порт 388 остаётся свободным для работы OPL3. При желании использовать для FM-синтеза родной синтезатор Creative CQM на 388-м, внешнюю микросхему OPL3 можно электрически изолировать от схемы при помощи DIP-переключателя.

*Следует отметить, что во втором прототипе AWE64 Legacy дискретный синтезатор OPL3 доступен только на порту 388, поэтому при запуске игр и приложений, использующих FM-синтез на базовом порту Sound Blaster (220 или 240), пользователь получит звук от CQM.

  1. Отсутствие поддержки дочерних MIDI-плат

Creative лишила AWE64 возможности подключения дочерних MIDI-модулей, убрав с платы соответствующую 26-контактную колодку. Очевидным решением при разработке AWE64 Legacy стало вернуть штырьковый разъём на его законное место.

  1. Малый объём ОЗУ

Подсистема памяти оригинальной AWE64 состоит из одной микросхемы ROM объёмом 1 МБ и одной микросхемы EDO DRAM объёмом 512 кБ. При этом звуковой чип поддерживает до 32 МБ ОЗУ (из которых пользователю для загрузки банков будут доступны 28 МБ). На оригинальных картах AWE64 Gold и Value, помимо использования дорогих оригинальных модулей производства Creative, память можно было расширить при помощи переходника SIMMCONN, на котором располагался слот SIMM-72.

 

 

Для AWE64 Legacy было выбрано более простое решение – сразу распаять на плате максимальный объём в 32 МБ памяти. В качестве памяти была выбрана быстрая EDO DRAM от Micron.

  1. Спорная по нынешним меркам разводка печатной платы и скверное качество элементной базы

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

Что касается элементной базы, в выходном звуковом тракте оригинальной AWE64 Value применяются обыкновенные алюминиевые конденсаторы с жидким электролитом, у которых есть три важных недостатка. Первый – возможные отклонения от номинальной ёмкости до 20%, второй – деградация ёмкости со временем, и третий – риск протечки и выхода из строя.

Для устранения помех и улучшения качества полезного аналогового сигнала, при проектировании печатной платы AWE64 Legacy было решено использовать только танталовые конденсаторы или качественные японские электролиты Nichicon. Они имеют меньшие допуски по номинальной ёмкости и значительно более высокую надёжность.

Еще один важный компонент, непосредственно отвечающий за качество звука, это усилитель мощности. Весь старый аналоговый тракт AWE64 Value был отправлен на свалку истории и собран заново с применением 2-канальных малошумящих операционных усилителей Texas Instruments TL072CD.

  1. Неоптимальная конфигурация задней панели

Если на AWE64 Gold для вывода стереозвука использовались позолоченные разъёмы 2RCA, то бюджетная AWE64 Value получила обычный Jack 3.5 мм в пластиковом корпусе. Конечно же, первым делом было решено вернуть на место золотые RCA, а рядом с ними добавить цифровой вывод S/PDIF.

Что интересно, на плате оригинальной Value присутствует контактная группа для подключения разъёма S/PDIF. Размещение S/PDIF на задней панели позволяет забирать сигнал с синтезатора EMU8000 и подключенного через его вход CQM и передавать его на оцифровку на внешнее звуковое оборудование в обход ЦАП и стереомикшера . Таким образом удаётся добиться максимального качества звука. К сожалению, чип CT8920 не умеет транслировать цифровой аудиопоток (Wave) по S/PDIF, поэтому данный интерфейс может использоваться только для синтезированной музыки.

В первом прототипе AWE64 Legacy трио разъёмов Jack 3.5 мм для линейного входа, микрофона и наушников было сохранено. На втором прототипе из этой троицы остался один только Line-In, тогда как наушники и микрофон переехали на панель AC97 (передняя панель корпуса ПК). На освободившееся же место вернулся классический GamePort, используемый для подключения джойстиков и/или внешних MIDI-устройств.

 

 

Предшественник AWE64 Legacy – проект AWEsome

Идея разработать улучшенную версию AWE64 не нова. Так, 19 мая 2017 года один российский энтузиаст Антон «zx-c64″ представил на форуме сайта vogons.org свой проект AWEsome, посвящённый модификации звуковой карты AWE64 Value. При создании инженерного образца AWEsome он взял за основу эталонный дизайн от Creative, но внёс в конструкцию платы несколько существенных изменений: добавил слот для установки модулей памяти SIMM 72-pin, разъём для подключения дочерних плат Wavetable-синтеза и коннектор S/PDIF для вывода синтезированной музыки на внешний ЦАП.

 

 

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

 

Инженерный анализ (реверс-инжиниринг)

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

Инженерный анализ – сложный и поэтапный процесс. Применительно к собранной печатной плате он делится на несколько этапов:

  • Фотографирование платы до начала процесса разборки, чтобы потом, после снятия с неё всех компонентов, можно было посмотреть изначальный вариант.
  • Снятие всех микросхем. На плате остаются только пассивные компоненты (резисторы, конденсаторы, индуктивности и т.п.).
  • Снятие пассивных компонентов и замер их номиналов при помощи LC-метра.
  • Зачистка платы от остатков припоя и отмывка платы.
  • Определение общего количества слоев платы. Скорее всего, визуально получится определить, что их 2, 4 или более 4.

В случае с AWEsome их 4. Исходя из этого, плата новой звуковой карты может быть скомпонована по одной из двух схем (стеков):

  • сигнальный слой – земля – питание – сигнальный слой;
  • земля – сигнальный слой – сигнальный слой – питание.

Это самое разумное расположение слоёв. Если слоёв больше 4, то их последовательность будет иметь примерно схожий характер. В общем случае, земля и питание будут чередоваться с сигнальным слоем.

  • Отрисовка слоёв платы с использованием рентгеновского сканирования.

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

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

 

Первый прототип

После создания детальной электронной схемы необходимо перенести её на печатную плату в программе Altium Designer.

В первую очередь устанавливаются разъёмы и прочие компоненты, с которыми будет взаимодействовать пользователь устройства. Они должны располагаться так, чтобы обеспечивать пользователю максимальное удобство.

 

 

Следом за разъёмами размещается блок ОУ с фильтрами и проходными конденсаторами звукового тракта. При этом важно соблюдать требования производителей и руководствоваться личным опытом и здравым смыслом. В общем и целом полигоны земли и питания не должны быть «рваными» и содержать узких соединений. Дорожки должны проходить по оптимальному пути и иметь как можно меньшую длину. Число пересечений с другими объектами и количество переходов со слоя на слой также необходимо минимизировать.

У первого прототипа отсутствовали MPU-часть и GamePort, а вместо танталовых конденсаторов применялись твердотельные электролиты, рассчитанные на поверхностный монтаж. Всего было заказано 5 печатных плат первого прототипа у китайского производителя JLCPCB. Одна из них была собрана для проведения тестов.

 

 

Как выяснилось во время тестов, первый прототип оказался не лишён ошибок. Вот некоторые из них:

  • Неверное расположение отверстия для крепления дочерней MIDI-платы

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

  • Перепутанные каналы CD-In и Line-In

Оказалось, что на плате проекта AWEsome у интерфейсов CD-In и Line-In было перепутано по одному каналу. Левый канал в разъёме Line-In был от линейного входа, а правый – от CD-входа. Аналогично и у CD: левый канал принадлежал ему самому, а на правый был заведён Line-In. Из-за этого, в частности, не работали ползунки изменения громкости канала в микшере.

  • Замкнутые между собой левый и правый каналы Line-In

На оригинальной AWE64 (как на Value, так и на Gold) присутствует одна недоработка – левый и правый канал линейного входа электрически замкнуты в единый моно-канал. Это значит, что записать звук на AWE64 в стерео невозможно. Судя по всему, Creative просто перепутала посадочные места линейного входа и микрофона.

  • Изменение посадочных мест под электронные компоненты

Из-за растянувшейся по времени работы над прототипом, некоторые изначально заложенные в устройство компоненты оказались недоступны для приобретения, а те, что подходили, имели иные посадочные места. Поэтому на втором прототипе требовалось учесть изменения спецификаций материалов (англ. BOM – Bill of Materials) и внести корректировки в расположение посадочных мест под новые/изменившиеся компоненты. В частности, пришлось переместить кварцевый генератор, FM-синтезатор, ЦАП синтезатора и инвертор.

  • Отсутствие изоляции по линии MIDI_RX

Линия входа MIDI-сигнала у первого прототипа не была заизолирована для защиты внутренних цепей звуковой карты от короткого замыкания. Такая защита окажется полезна в том случае, если подключенное к игровому порту устройство вдруг окажется дефектным или выйдет из строя во время работы.

Также изолятор используется для согласования уровней сигналов, поскольку логические элементы от Creative работают при напряжении 5 В, а напряжение на внешнем подключенном устройстве может отличаться от него в бόльшую или меньшую сторону.

 

Изучение общественного мнения

Подобные ретро-проекты, как правило, выполняются в сотрудничестве с сообществом и активно полагаются на отзывы потенциальных пользователей. Чтобы обозначить области, требующие улучшения, на популярной ретро-площадке Vogons была создана тема с прикреплённым бланком открытого голосования за функции, которые, по мнению посетителей, необходимо добавить в AWE64 Legacy. Так, например, ниже показаны результаты голосования за предпочтительный способ реализации MPU-401 (у первого прототипа он отсутствовал).

 

Реализация полноценной поддержки MPU-401 через HardMPU

Максимально качественную музыку во многих старых играх можно получить с использованием внешнего MIDI-секвенсора Roland MT-32, который может подключаться к игровому порту звуковой карты при помощи соответствующего переходника.

Как уже было упомянуто выше, звуковые карты Creative используют режим UART для эмуляции MPU-401. При этом некоторые старые игры требуют поддержки режима Intelligent Mode. Исправить проблему можно при помощи программного эмулятора SoftMPU, однако у него есть свои недостатки:

  • потребляет много ресурсов центрального процессора;
  • требует поддержки менеджера расширенной памяти EMM386;
  • функционирует только в DOS.

Очевидно, что для максимальной совместимости со старыми играми звуковой карте требуется аппаратная поддержка Intelligent Mode, что возможно только посредством интеграции полноценного дискретного контроллера, совместимого с MPU-401.

К счастью, один энтузиаст с Vogons по имени Алекс «ab0tj» придумал изящное решение под названием HardMPU – промежуточный вариант между полностью аппаратным контроллером MPU-401 и его программной эмуляцией. HardMPU представляет собой портированную версию SoftMPU под 8-битный микроконтроллер Atmel AtMega1284. Он дешёвый, занимает мало места на плате и разгружает ЦП от обработки MIDI-сообщений (что актуально для ретро-систем). Именно такое решение и было использовано в AWE64 Legacy.

 

 

Псевдо-стерео для OPL3

После установки синтезатора OPL3 на плату первого прототипа оказалось, что тестовая утилита играет в оба канала, тогда как драйвер – только в один. Чтобы понять причину такого поведения, нужно немного углубиться в историю и вспомнить, что первой звуковой картой для ПК, построенной на базе FM-синтезатора Yamaha OPL, был оригинальный Adlib. Он использовал синтезатор OPL2 и выдавал только моно-сигнал. Соответственно, если драйвер в программе или игре написан под возможности классического Adlib, он будет задействовать порты 388-389 для моно-канала и 388-38B для стерео.

Стереозвук появился в более поздних звуковых картах PAS 8-bit и Sound Blaster Pro rev.1 (CT1330), причём реализован он был на двух синтезаторах OPL2, по одному на канал. В звуковых картах Adlib Gold и Sound Blaster Pro rev.2 (CT1600) уже применялся стерео-синтезатор OPL3, обратно совместимый с OPL2.

Проблема в том, что для получения стереозвука к синтезатору OPL3 нужно обращаться по зеркальному порту Sound Blaster, однако на AWE64 Legacy этот порт занят интегрированным в чип FM-синтезатором Creative CQM. То есть по порту 388 звуковая карта AWE64 Legacy работает в точности как оригинальный Adlib – выдаёт моно-звук в оба канала.

 

 

Разводка печатной платы второго прототипа

Основной причиной увеличения числа слоев с 4 до 6 стала реализация полноценного аппаратного MPU-401 при стремлении сохранить габариты карты в рамках форм-фактора Half ISA. Добавить дорожки от компонентов MPU на уже имеющиеся слои не представлялось возможным, так как один слой был занят основными компонентами звуковой карты, а второй – разводкой памяти. Поскольку стек слоев должен быть симметричным, добавлять слои можно только парами. По этой причине их число выросло с 4 до 6 штук.

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

 

 

Задние панельки

Небольшой, но важный атрибут качественной платы расширения – новые задние панельки. Поскольку конфигурация разъёмов изменилась, оригинальные панельки от AWE64 Value уже не подходили к новой карте, поэтому пришлось проектировать и изготавливать панельку с нуля. 3D-модель была подготовлена в пакете SolidWorks, после чего отдана на лазерную резку и гибку из стального листа толщиной 1 мм. Затем готовые панельки были тщательно отмыты и покрыты слоем чёрного цинка методом гальванизации.

 

Обзор AWE64 Legacy

Ниже представлен полностью функциональный второй прототип AWE64 Legacy. Всего было собрано 5 таких карт.

Сразу стоит отметить, что Creative не стала продлевать права на торговую марку AWE64 после истечения срока их действия, поэтому её использование в данном проекте не нарушает никаких авторских прав.

 

Звуковая карта выполнена на довольно компактной печатной плате с матово чёрной маской текстолита. Все контактные площадки покрыты золотом. Размеры платы составляют 18,5 x 12 см, а это значит, что она поместится даже в компактные корпуса формата mATX или baby AT.

Сразу над разъёмом ISA-16 установлен звуковой чип Creative CT8920, а над ним – микросхема ПЗУ EMU8011, в которой хранится оригинальный банк семплов. Слева от ПЗУ находится микроконтроллер AtMega, реализующий функционал MPU-401, под ним – штатная микросхема ОЗУ NN514256J-60, а над ним – универсальная программируемая матрица Cypress PALCE16V8-7JC. На левом краю платы вертикально в столбик расположены 8 дополнительных микросхем памяти EDO DRAM от Micron с маркировкой MT4C4M4E8DJ-6 (время доступа – 60 нс).

 

Рассмотрим три колодки на лицевой стороне:

  • Колодка X12 предназначена для прошивки микроконтроллера AtMega. При работе карты она не используется.
  • Колодка X10 позволяет задать коммутацию MIDI-сигнала для устройства, подключенного к гребёнке WaveBlaster. Можно выбрать либо HardMPU (положение 1-2), либо интегрированный UART в чипе Creative (положение 2-3).
  • Колодка X11 позволяет задать коммутацию MIDI-сигнала для устройства, подключенного к разъёму GamePort. Можно выбрать либо HardMPU (положение 1-2), либо интегрированный UART в чипе Creative (положение 2-3).

Справа от звукового процессора приютился оригинальный синтезатор Yamaha OPL3 YMF262-M. Вся область выше него занята аналоговой частью – тут находятся усилители Texas Instruments и элементы логики. На верхний торец платы выведены разъёмы Line-In, CD-In, PC_Speaker и AC97. Между ними установлена 26-контактная колодка WaveBlaster для подключения дочерних MIDI-плат.

С обратной стороны платы расположены ещё 8 микросхем памяти, цифровой компаратор LS688, а также четыре DIP-переключателя. На них стоит остановиться отдельно.

  • Переключатель MFBEN ON/OFF

Функция MIDI FeedBack ENable (разрешение перехвата MIDI-сообщений) была возвращена с оригинальной звуковой карты Creative CT4520. Она используется для активации режима эмуляции виртуального MPU-401 с «подключенным» к нему синтезатором EMU8000.

Тут стоит отметить, что положение переключателя MFBEN важно только при использовании звуковой карты в «чистом» DOS. В ОС Windows 95/98 перехватом сообщений из сеансов MS-DOS занимается виртуальный драйвер, который не реагирует на изменение положения переключателя MFBEN.

 

 

  • Переключатель OPL3 On/OFF (по порту 388)

Позволяет отключать дискретный синтезатор OPL3.

  • Переключатели выбора прерываний HardMPU_IRQ_Select и адресов HardMPU_IO_Select

Первый позволяет выбрать прерывание IRQ (Interrupt request) для работы HardMPU (2/9 или с 3 по 7), а второй задаёт порт ввода-вывода I/O для HardMPU (300, 310, 320 или 330).

 

 

AWE64 Legacy определяется в системе как модель Value и работает с драйверами от неё без каких-то отличий от оригинала. По звучанию MIDI-музыки в режиме WT-синтеза со стандартными банками она ничем не отличается от AWE32 или AWE64 (не считая, конечно, гораздо более качественного аналогового тракта). Для теста было решено воспользоваться одним из преимуществ AWE64 Legacy перед Gold – наличием 32 МБ памяти – и загрузить качественный банк сэмплов Masterpiece размером 28 МБ.

Характеристики AWE64 Legacy:

Звуковой процессор CT8920-NBQ
Разрядность 16 бит
Голоса (инструменты) MIDI 32 аппаратных + 32 программных
Частота воспроизведения 44.1 кГц стерео
Частота записи 44.1 кГц стерео
Объём постоянной памяти 1 МБ
Объем оперативной памяти 512 кБ + 32 МБ (доступно 28 МБ) EDO
Синтезатор EMU8000 + CQM + YMF262-M
Системный интерфейс ISA 16 бит
Входы Line-In, микрофон AC97, PC_Spk, CD-In
Выходы 2RCA Line-Out, наушники AC97, S/PDIF
Работа с MIDI Через GamePort и гребёнку WaveBlaster.

Возможна коммутация на HardMPU или

на основной чип CT8920.

Соотношение сигнал/шум 90 дБ
Поддержка PnP Есть

 

Результаты тестов

Приведённые ниже композиции были проиграны в плеере Winamp с использованием звукового банка Masterpiece, записаны при помощи звуковой карты ESI Juli@, нормализованы и сконвертированы в формат .MP3 320 kb/s для уменьшения объёма.

Battle Isle 2 Theme

Day of the Tentacle — Opening

Doom — e1m1

Duke Nukem 3D — Intro

Legend of Kyrandia 2 — Dragonflight

Lemmings — Intro

Monkey Island — Intro

Settlers — Intro

Runescape — 08

Space Quest 3 — Introduction

Tyrian 2000 — Asteroid Dance Part 1

WarCraft II — Orc Theme 2

 

Благодарности

Команда выражает благодарность следующим энтузиастам, оказавшим помощь в реализации проекта:

  • Антону «zx-c64» за общую идею и её частичную реализацию в прототипе AWEsome;
  • Alex «ab0tj« за HardMPU;
  • Эдуарду «mrDraud» за логотип AWE64 Legacy.
  • TexElec за RESOUND OPL3;
  • Beijing Luck Star Power Machines Co LTD за SIMMConn;
  • Serge Defever «Serdaco» за помощь с GAL;
  • JazeFox за UNISOUND и помощь с EEPROM;
  • Руслану «LANRUS» за тесты.

 

Ответы на вопросы

Конечно, столь уникальный проект может вызвать много вопросов, поэтому ниже приведены заблаговременные ответы на некоторые из них:

  • Сколько стоит AWE64 Legacy и где/как её заказать?

На данный момент AWE64 Legacy существует в виде второго прототипа. Однако он полностью работоспособен и практически готов к запуску в серию – осталось только провести ещё некоторые тесты и устранить мелкие недостатки.

Цена серийного экземпляра ожидается в районе $300. Да, это немало и сопоставимо с современными флагманскими звуковыми картами, однако это лишь чуть выше себестоимости производства (без учёта трудозатрат).

Если вы хотите «забронировать» себе один экземпляр, пишите в теме на Vogons или через форму обратной связи здесь.

  • Есть ли вариант подешевле?

«Голая» печатная плата + инструкция по сборке. В таком случае поиск донорского процессора, ПЗУ и всех электронных компонентов ложится на плечи покупателя.

  • Вам нужны доноры?

У нас есть некоторый запас карт, но если у вас завалялась ненужная AWE64 Value модели CT4520, пишите через форму обратной связи.

  • Когда будут готовы серийные экземпляры?

Точные сроки назвать трудно, поскольку вирус ломает планы. Но в любом случае, какие-то кардинальные изменения в прототип уже вноситься не будут.

  • Каким будет комплект поставки, планируется ли бокс?

Нет, бокса не планируется, как и комплекта. Только карта в антистатическом пакете. Мануал будет выпущен в электронном виде.

  • Как реализованы несколько устройств на одной плате?

Параллельно, интеграции нет. Аналоговые выходы заведены на микшер AWE64.

  • Нужны ли особые драйверы?

Для второго прототипа полностью подходят стандартные драйверы от AWE64 Value, однако в работе карты имеются нюансы при инициализации и использовании стандартного микшера.

У серийной карты планируется модифицировать EEPROM для изменения названия на AWE64 Legacy при детектировании карты в Windows, а также внести модификации в драйвер, чтобы в Диспетчере устройств она тоже отображалась как AWE64 Legacy. Так или иначе, новый драйвер будет доступен для скачивания.

Баги с частотой дискретизации в Duke Nukem 3D и DMA-клиппингом в Prince of Persia отсутствуют. Смотрите в видеообзоре от Артура OLD ROBOT.