подскажите, а чем можно вышеуказанный ayphas.ay сконвертить в PSG или EPSG формат на линуксе?
подскажите, а чем можно вышеуказанный ayphas.ay сконвертить в PSG или EPSG формат на линуксе?
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Он в PSG не конвертируется. Там идёт многократная перезапись одних регистров в рамках одного фрейма (а точнее - в рамках наносекунд).
ZXMAK(28.11.2024)
хм, а я уже в ay_emul сконвертил в psg и тестирую...теперь понятно, почему я мелких деталей не вижу. Любопытно, что звучит на слух похоже.
А в epsg можно его сконвертить? Там-же такт записи есть...
И чем, чтото не вижу в ay_emul 2.9 сохранения в epsg, хотя где-то на сайте было написано что поддерживает.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Там есть фрагменты со сбросом таймера тона, записывается 0 в делитель, и сразу другое значение. Что такое EPSG я не в курсе. .AY/.SNA как правило хватало.
мне для тестов нужно чтобы был просто набор данных - время, номер регистра, значение, когда и что записывать в регистры, без эмуляции Z80
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
ZXMAK, насколько понимаю нет такого формата, в котором время бы кодировалось в условных наносекундах, а не прерываниях. А epsg нигде даже не описан.
EPSG вот тут описан: https://documentation.help/AY-3-8910...m/ay_e9zqf.htm
грубо говоря EPSG сигнатюра вначале и 5 байт на запись описывающую в какой регистр на каком такте что писать, 0xFFFFFFFFFF для прерывания. Насколько понимаю такт задается внутри фрейма (от начала прерывания), т.к. на него выделено всего 3 байта.Код:Offset Length Value ============================ Header ============================ 0 4 'EPSG' 4 1 0x1A marker 5 1 Machine type: 0x00 – ZX Spectrum 128 0x01 – Pentagon 0xFF – Other machines 6 4 Zero for machine type 0x00 and 0x01 or Number of Z80 tacts between interrupt markers for other machines 10 6 zeroes ============================ AY(YM) log during 1 frame ============================ 16 1 AY(YM) register number 17 1 value written to this register 18 3 T-state ..... ?? 5 0xFFFFFFFFFF – interrupt marker
Последний раз редактировалось ZXMAK; 28.11.2024 в 18:53.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
ZXMAK, гуглом такое не нашел (или плохо искал). В таком формате да, что угодно можно дампануть. Но формат сильно экзотический. И видимо ayemul его не особо поддерживает (для сохранения по крайней мере).
как мне кажется epsg гораздо удобнее для эмуляции AY например на контроллерах - не нужно эмулировать z80, только и знай что значения в регистры подкидывай в нужное время... странно, что он не получил широкого распространения.
Есть еще формат ZXAY: https://documentation.help/AY-3-8910...m/ay_e65a1.htm
может в него можно чем-то AY сконвертить?
Последний раз редактировалось ZXMAK; 28.11.2024 в 23:05.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Как оказалось, AY_EMUL поддерживает преобразование в ZXAY. Прилагаю файл теста в формате ZXAY в аттачменте.
Описание формата ZXAY не раскрывает всех деталей и не без приколов.
Структура соответствует описанию, файл начинается с символов ZXAY, далее идут записи по 4 байта, структура записи:
Однако время Time, как оказалось, указывается как значение глобального счетчика тактов Z80 обрезанного с помощью AND 0xFFFFF до 20 бит (довольно неожиданный подход).Код:Bit numbers Name 0–19 Time 20–23 Register 24–31 Data
Для каждого переполнения счетчика записывается специальная метка 0xFFF00000. При чтении файла такую метку следует интерпретировать как добавление +0x100000 к последующей нормальной записи, все поля такой метки следует игнорировать. Меток может быть несколько подряд, тогда к последующей нормальной записи нужно добавить соответствующее число раз 0x100000 к значению Time.
Запись значений в регистры AY, которая не меняет значение регистра, кроме регистра 13, формат игнорирует и не включает такие записи. Начальное состояние регистров как после сброса. Поэтому в этом формате идут только те записи в регистр, которые меняют содержимое регистра.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)