- Я не понимаю железо, но из объяснений специалистов удалось выяснить, что выходные цепи AY устроены так, что AY является не источником напряжения, а источником тока. Например, таблица сравнительных напряжений, приведённая в руководстве General Instruments (далее GI), более-менее верна, если вместо напряжений измерять ток между выходом чипа и землёй (проверено TSL). Это означает, что если не реализовать "правильную" схему подключения, относительные напряжения полученные на выходе чипа могут очень существенно зависеть от схемы подключения чипа. В случае реалистичных (распространённых) схем подключения, AY выдаёт СУЩЕСТВЕННО более линейный сигнал чем описано в документации на чип, что не вполне соответствует задумке авторов чипа, но очень помогает всем желающим выдавать оцифрованный сигнал.
- В классических спектрумах распространена схема включения, в которой все выхода чипа закорочены вместе и нагружены на резистор от 800 Ом до 2.2 кОм. Исключение из этого правила - в британских 128К и +2. Существуют измерения напряжений, которые Gasman сделал на живом +2; они достаточно близки к результатам на нагрузке в 1К, поэтому я думаю, что можно не выделять 128К и +2 в отдельную категорию. Схемы включения в старых отечественных клонах я не смотрел; но я знаю, что Pentevo выдаёт именно напряжения на нагрузке 1кОм.
- Выходной каскад YM устроен иначе чем у AY, кажется, никто не знает как именно, но для распространённых схем включения он выдаёт более-менее стабильные относительные напряжения, что означает, что YM обеспечивает более легко воспроизводимые результаты на выходе, т.е. легче и надёжнее эмулируется.
Мне удалось подбить двух человек на дополнительные измерения: TSL, сделавшего тесты для 2х каналов одного из имеющихся у него чипов и вдобавок измерившего сравнительные значения токов для двух разных чипов, а так же DDp, реально вложившегося в этот проект и предоставившего полные результаты измерений аж с 6 разных чипов (DDp разработал для этого полуавтоматическую схему тестирования, измеряя напряжения звуковыми картами). Итого, я объединил данные Couriersud (канал B чипа 8910A), новые данные TSL (каналы A и B чипа 8910A про-ва GI) и новые данные DDp (каналы A-C, каждый измерен дважды на двух разных звуковых картах, для чипa 8910А про-ва Microchip, двух чипов 8910А про-ва GI, чипа 8912А про-ва GI и двух чипов 8912A про-ва Microchip). Сводная таблица с результатами всех этих измерений находится здесь. Итого, разброс всех этих измерений оказался меньше чем в старых тестах и уменьшился где-то примерно до +-2.3%. График с данными измеренными Couriersud, TSL и DDp выглядит вот так:
(линейная шкала икс отображает значение громкости чипа, логарифмическая шкала игрек - выходное напряжение, отнормированное на диапазон 0..255. Обратите внимание, что форум иногда обрезает изображение, т.е. не показывает полный список изученных чипов, в этом случае откройте изображение в отдельной закладке, чтобы увидеть изображение целиком)
Соответственно, по итогам этих тестов, получается сформулировать усреднённую таблицу напряжений на выходе AY, которая, в формате эмулятора Unreal, должна выглядеть примерно следующим образом:
VOLTAB.Composite.AY=0000,028F,03B3,0564, 07DC,0BA9,1083,1B7C, 2068,347A,4ACE,5F72, 7E16,A2A4,CE3A,FFFF
Схожие тесты были проделаны и для чипов YM. Количество доступных нам чипов оказалось существенно меньше - всего 3 шт (две шт. YM2149F и один YM2203C; один из чипов YM2149F измерен дважды, по разным методикам), но разброс измерений в данном случае существенно меньше и, видимо, этим данным тоже можно доверять. Набор "сырых" данных можно скачать вот здесь. Таблица, которая получается после усреднения, выглядит следующим образом:
VOLTAB.Composite.YM=0000,0000,0131,01FA, 02CE,0393,045A,0520, 063D,079A,08FA,0A57, 0C6D,0EEF,116C,13E9, 17AF,1C70,2137,2603, 2D3A,3628,3F13,47F6, 556F,6682,77A6,88D0, A29A,C20C,E142,FFFF
Если честно, я считаю что обе новые таблицы лучше старых; особенно важна новая таблица для AY; с моей точки зрения её нужно делать таблицей по умолчанию для AY. Новая таблица для YM очень похожа на любую из старых, допустим, на таблицу Hacker Kay, я не верю что кто-либо сможет услышать различия между ними. Кроме этого, я бы порекомендовал удалить из Unreal.ini таблицы BULBA_OPEN.AY, X128.AY и YASE.AY - эти три таблицы явно высосаны из пальца и не имеют ничего общего с реальностью. Тем не менее, следует учитывать контекст наших измерений:
- Мы измеряли напряжения прямо на выходе чипа, на нагрузке 1кОм. Если у вас другая нагрузка, ваши измерения будут отличаться от наших. Если ваш усилитель существенно нелинеен, вы можете обнаружить, что напряжения на его выходе опять же отличны от наших измерений. Грубо говоря, мы подразумеваем что вы используете идеальный линейный усилитель и включение на нагрузке 1кОм - именно этот сценарий воспроизводится плюс-минус идеально. Такой звук разведён, например, на Pentevo.
- Мы меряли данные индивидуальных каналов, электрически развязанных друг от друга. В классических спектрумах каналы часто замыкали вместе и вешали на общую нагрузку. Это означает, что на классических машинах каналы должны были существенно влиять друг на друга; наши измерения этот эффект игнорируют.
P.S.S. DDp удалось измерить напряжения для такого большого числа чипов благодаря тому, что он автоматизировал процедуру измерения. Конкретнее, он написал программу для спектрума "AYVOLM", которая генерирует сигнал со всеми уровнями напряжений. Итоговый сигнал он записал используя звуковую карту своего пк и обработал итоговый wav файл ещё одной специальной программой, вычисляющей уровень основной гармоники и сохраняющий результаты в текстовый файл. Мы прикладываем обе программы в надежде, что кто-то ещё сможет сделать дополнительные измерения на своих реалах, чтобы пополнить уже имеющися данные.