Осреднённые таблицы напряжений AY/YM

Железо для спектрум-совместимых машин

Postby introspec » Wed, 08.04.2015 11:18:36

Недавно я занимался воспроизведением цифрового звука на AY/YM и с некоторым изумлением осознал, что таблицы напряжений для разных уровней громкости, использованные во многих эмуляторах, довольно сильно расходятся между собой, а заодно, в случае AY, - ещё и с официальной документацией на чип. Мы сейчас говорим об разбросе напряжений до 10% в некоторых случаях. Так как я пытался получить вывод звука с определённой точностью, было заведомо ясно, что ошибки в 10% для моих целей недопустимы. Поэтому я занялся разбором источников этих расхождений.

  • Я не понимаю железо, но из объяснений специалистов удалось выяснить, что выходные цепи AY устроены так, что AY является не источником напряжения, а источником тока. Например, таблица сравнительных напряжений, приведённая в руководстве General Instruments (далее GI), более-менее верна, если вместо напряжений измерять ток между выходом чипа и землёй (проверено TSL). Это означает, что если не реализовать "правильную" схему подключения, относительные напряжения полученные на выходе чипа могут очень существенно зависеть от схемы подключения чипа. В случае реалистичных (распространённых) схем подключения, AY выдаёт СУЩЕСТВЕННО более линейный сигнал чем описано в документации на чип, что не вполне соответствует задумке авторов чипа, но очень помогает всем желающим выдавать оцифрованный сигнал.
  • В классических спектрумах распространена схема включения, в которой все выхода чипа закорочены вместе и нагружены на резистор от 800 Ом до 2.2 кОм. Исключение из этого правила - в британских 128К и +2. Существуют измерения напряжений, которые Gasman сделал на живом +2; они достаточно близки к результатам на нагрузке в 1К, поэтому я думаю, что можно не выделять 128К и +2 в отдельную категорию. Схемы включения в старых отечественных клонах я не смотрел; но я знаю, что Pentevo выдаёт именно напряжения на нагрузке 1кОм.
  • Выходной каскад YM устроен иначе чем у AY, кажется, никто не знает как именно, но для распространённых схем включения он выдаёт более-менее стабильные относительные напряжения, что означает, что YM обеспечивает более легко воспроизводимые результаты на выходе, т.е. легче и надёжнее эмулируется.
Таким образом, из-за высокой чувствительности AY к схеме включения, единичные измерения напряжений на выходе оказываются довольно ненадёжны. Я думаю что именно это объясняет разброс данных в классических таблицах. Кроме этого, сравнивая таблицы друг с другом, делается ясно, что измерения делались несколькими методами. Таблицы Hacker KAY, R80/V_Soft и RamSoft все выглядят существенно линейнее чем результаты более новых тестов; мне сложно сказать, связано ли это с их методикой измерений (методику никто из них нигде не описывал), но, возможно, они измеряли уже усиленные сигналы; дешёвый усилитель мог по идее нелинейно трансформировать выходные напряжения. В интернете удалось найти 2 набора хорошо документированных данных, описывающих в т.ч. и методику измерений: старые измерения DDp и сравнительно недавние измерения Couriersud, проделанные им для проекта MAME. Глядя на эти данные сделалось ясно, что следует также принять во внимание различия между индивидуальными чипами и даже между каналами на одном чипе. Поэтому я решил что самым лучшим способом составить современную таблицу должно быть осреднение максимально возможного количества данных, собранных для максимально возможного количества каналов в максимальном числе чипов при единой схеме подключения.

Мне удалось подбить двух человек на дополнительные измерения: 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 выглядит вот так:

Image

(линейная шкала икс отображает значение громкости чипа, логарифмическая шкала игрек - выходное напряжение, отнормированное на диапазон 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. Хочу отдельно поблагодарить TSL, которому я реально вынес мозг со всей этой белибердой, а также, особенно, поблагодарить DDp, который проделал реально грандиозную работу по разработке схемы полуавтоматического тестирования чипов и собрал основной набор данных для этой заметки.

P.S.S. DDp удалось измерить напряжения для такого большого числа чипов благодаря тому, что он автоматизировал процедуру измерения. Конкретнее, он написал программу для спектрума "AYVOLM", которая генерирует сигнал со всеми уровнями напряжений. Итоговый сигнал он записал используя звуковую карту своего пк и обработал итоговый wav файл ещё одной специальной программой, вычисляющей уровень основной гармоники и сохраняющий результаты в текстовый файл. Мы прикладываем обе программы в надежде, что кто-то ещё сможет сделать дополнительные измерения на своих реалах, чтобы пополнить уже имеющися данные.
Last edited by introspec on Thu, 09.04.2015 19:07:08, edited 3 times in total.
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby MVV » Wed, 08.04.2015 12:37:06

Молодцы, работа проведена экспериментально, описана методика измерения, что очень важно. Т.к. существуют soft-core чипов на vhdl и verilog, на основе заявленных данных можно соответственно внести изменения в таблицы преобразований и ссылаться на данные проведенного вами эксперемента.
MVV
 
Posts: 411
Joined: Sun, 01.12.2013 22:48:17

Postby MC68k » Wed, 08.04.2015 20:29:04

эмуляторщики они как пидарасы, только эмуляторщики.
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby introspec » Wed, 08.04.2015 21:03:52

MC68k wrote:эмуляторщики они как пидарасы, только эмуляторщики.

А по существу можно?
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby TS-Labs » Thu, 09.04.2015 01:21:34

Спасибо, таба пойдет в дело =)
User avatar
TS-Labs
 
Posts: 4760
Joined: Thu, 26.07.2012 01:29:56

Postby VBI » Thu, 09.04.2015 16:11:25

Добавлю сюда, что очень хотелось бы подрегулировать уровень звука в эмуле.
Похоже, что он звучит тихо относительно системы у всех.
User avatar
VBI
 
Posts: 1776
Joined: Mon, 03.06.2013 09:20:29

Postby MC68k » Thu, 09.04.2015 16:54:49

introspec wrote: MC68k wrote:эмуляторщики они как пидарасы, только эмуляторщики.


А по существу можно?

было бы чипов 20 из разных батчей, обмеряных по одиаковой методике поверенными приборами, а так тред ни о чем.
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby introspec » Thu, 09.04.2015 17:07:59

MC68k wrote:было бы чипов 20 из разных батчей, обмеряных по одиаковой методике поверенными приборами, а так тред ни о чем.

Поэтому так и будем пользоваться таблицей Hacker Kay до скончания веков? И кто из нас после этого пидорас?

Здесь уже собрано 8 чипов AY, все из разных батчей. Общее число измеренных каналов - 21 шт. Измерения сделаны по двум методикам, согласующихся друг с другом. Но хочется больше, я согласен. Вот взял бы и померял.
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby introspec » Thu, 09.04.2015 19:01:04

Отредактировал пост: добавил данные для YM, поменял график для AY, чтобы было понятнее сколько наборов данных реально фигурирует в тесте, а также добавил пару слов о том, как DDp собственно говоря справился с таким объёмом измерений и приложил программы DDp, позволяющие сделать дополнительные замеры на вашей машине.
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby TS-Labs » Thu, 09.04.2015 20:00:58

У YM первые 2 значения 0000?
User avatar
TS-Labs
 
Posts: 4760
Joined: Thu, 26.07.2012 01:29:56

Postby MC68k » Thu, 09.04.2015 22:20:43

introspec wrote: И кто из нас после этого пидорас?

две шт. YM2149F и один YM2203C
olololololo

introspec wrote:8 чипов AY

МАЛО. статистика штука упрямая. намекну - если нет денег на поверенные приборы, хотя бы меряйте ОДНИМ прибором.
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby introspec » Thu, 09.04.2015 22:22:08

MC68k, здравый смысл - ещё более упрямая вещь. 8>1, каприш?

Я даже больше того тебе скажу. 3>1! шокирует, да?
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby MC68k » Fri, 10.04.2015 08:28:27

продолжайте выдавать желаемое за действительное, вы уже почти достигли уровня алония.
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby introspec » Fri, 10.04.2015 09:56:26

MC68k wrote:продолжайте выдавать желаемое за действительное, вы уже почти достигли уровня алония.

Т.е. конструктива за пределами "ололо" от тебя так и не будет, я верно всё понял? Тогда ответь, пожалуйста, на простые вопросы уровня "да"/"нет" - хоть на это-то ты способен я надеюсь?
  • Осознаёшь ли ты, что 2 самые популярные на данный момент таблицы AY (Hacker Kay и Fuse/Gasman) основаны на измерении 1 чипа каждая?
  • Осознаёшь ли ты, что методология измерений Hacker Kay нам неизвестна, а таблицу Gasman во Fuse подогнали, чтобы она была больше похоже на первую?
  • Осознаёшь ли ты, что если не считать данных DDp от 2008 года, всего, во всём мире, были опубликованы результаты замеров для 5 чипов, по 1 каналу на каждый?
  • Осознаёшь ли ты, что методология измерений была документирована только для 2х из этих замеров?
Такое ощущение, что ты с луны свалился. Прямо сейчас, здесь, опубликован набор измерений, который увеличивает набор известных данных в несколько раз. Измерений чётко описанными методами, хорошо согласующимися друг с другом. Есть возможность и желание расширять набор. А у тебя чисто из школы звенит в голове, если сэмпл маленький, он не репрезентативный. Ну так будь мужиком, посмотри на дисперсию. Или замерь напряжения на своём чипе. Ну или нет, конечно, лучше ололокать, это тебе обычно больше всего удаётся.
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby VBI » Fri, 10.04.2015 10:04:55

я попробую замерить свой YM вечером
User avatar
VBI
 
Posts: 1776
Joined: Mon, 03.06.2013 09:20:29

Postby MVV » Fri, 10.04.2015 13:11:45

introspec, не трать время на разъяснения тому, кто не хочет понять и разобраться, это его личное дело. У вас есть статья, представлена и описана методика измерений. Если у кого-то есть возражения, пусть практически проведет замеры по вашей методике и сравнит результаты. Если не в состоянии провести измерения, то тогда пусть предоставит микросхемы для измерения, статьи, ссылки на другие или аналогичные измерения. Иначе возражения MC68k высосаны из пальца. Как говорится, где ваши практические доказательства, что это не так? Перепроверьте и покажите.
MVV
 
Posts: 411
Joined: Sun, 01.12.2013 22:48:17

Postby DDp » Fri, 10.04.2015 19:46:08

Некоторые мои WAV-ы, результаты измерений из которых попали в колекцию измерений introspec-а. :qu: (SC1 и SC2 - звуковые карты, 1 и 2)
Четвёртая колонка в логах - это количество интервалов по которым было усреднено значение. Были случаи, когда одна ступенька огибающей определялась дважды (напр. 2 и 8, вместо 10...11).
--- upd ---
Первые три колонки, собственно уровни (float нормированный к 1.0 и целочисл. Нормированный к 65535) от 15 к 0.
Last edited by DDp on Sat, 11.04.2015 09:16:02, edited 1 time in total.
D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F
User avatar
DDp
 
Posts: 97
Joined: Fri, 03.08.2012 20:41:33

Postby MC68k » Sat, 11.04.2015 07:32:50

introspec wrote:Тогда ответь, пожалуйста, на простые вопросы уровня "да"/"нет" - хоть на это-то ты способен я надеюсь?

вы уже почти достигли уровня алония.
MVV wrote:не трать время на разъяснения тому, кто не хочет понять и разобраться, это его личное дело.

эльфам слова не давали.

выборка маленькая, поэтому низачот. еще и спорите, как студенты двоечники на защите курсовой.
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby introspec » Sat, 11.04.2015 11:05:44

MC68k wrote:выборка маленькая, поэтому низачот. еще и спорите, как студенты двоечники на защите курсовой.

Бла-бла, как я и думал. Ну чо, пока, до свидания!
User avatar
introspec
 
Posts: 578
Joined: Sun, 14.07.2013 15:36:47

Postby MC68k » Sat, 11.04.2015 20:53:22

на слабо берешь? пытайся лучше, а лучше пытайся на этом вашем хайпе :3
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
Location: 3rd planet from sun

Postby moroz1999 » Fri, 24.04.2015 08:53:31

MC68k, ты не прав. Новые данные явно точнее старых.

Думаю, что нужно составить список активных эмуляторов и их авторов, и связаться с ними по этому поводу.
User avatar
moroz1999
 
Posts: 1853
Joined: Wed, 01.08.2012 11:23:51


Return to Hardware

Who is online

Users browsing this forum: No registered users and 1 guest

x