Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Фоновое проигрывание AY/YM музыки в меню Aeon

  1. #1
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    867
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Фоновое проигрывание AY/YM музыки в меню Aeon

    Есть вопрос к специалистам!
    Была идейка в главное меню Aeon добавить какую нибудь AY музычку!
    Сначала хотел просто записать в 8 бит моно WAV, но размер уж больно
    большой получается. Потом подумал, а что если взять и записать с эмуля
    все обращения к AY и просто повторить их?
    Меня интересует вот что:
    каким образом формируется AY музыка? Каждое /INT прерывание грузятся
    регистры AY или както подругому?
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    Каждое /INT прерывание грузятся
    регистры AY
    ага. можешь в AY емуль любой музон скинуть в PSG (дамп регистров), размер будет 50-200кб.

  4. #3
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    867
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    ага. можешь в AY емуль любой музон скинуть в PSG (дамп регистров), размер будет 50-200кб.
    Ага, дамп сделать получилось!

    Только теперь осталось разобраться с форматом PSG
    Может есть инфа какая нибудь о формате этих PSG-файлов???

    Добавлено через 5 минут
    Уже нашел!!!!!!!!
    Последний раз редактировалось ILoveSpeccy; 04.05.2009 в 22:45. Причина: Добавлено сообщение
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  5. #4
    Veteran Аватар для molodcov_alex
    Регистрация
    13.03.2006
    Адрес
    Колпино
    Сообщений
    1,250
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В AY_emul в хелпе есть описание.

    Скрытый текст

    Существуют как обычные PSG, так и расширенные EPSG. Кроме того, существуют PSG2-файлы, аналогичные ZX50-файлам (их описание можно найти на сайте RDOSPLAY), но поддерживать их в данном Эмуляторе автор не видит смысла. В интернете немало PSG файлов эмулятора БК, но они пока не поддержаны в Ay_Emul.

    PSG

    Данные файлы создаются эмулятором Speccy 'x128' by James McKay, а также эмулятором fMSX, которым пользоваться не приходилось. Что касается первого, то он при создании PSG файлов допускает ошибки. Поэтому лучше всего пользоваться эмулятором Speccy “Z80 Stealth” Кирилла Колпакова (Mr.Kirill). Кирилл в своё время охотно внедрил в свой эмулятор некоторые предложенные мной функции, сильно упрощающие процесс создания PSG файлов. Кроме того, последние версии Z80 Stealth позволяют с легкостью создавать PSG-файлы, используя возможности встроенного отладчика. Скачать эмулятор можно с http://z80.da.ru/.

    Ниже предложено всё, что удалось найти в Интернете.

    Смещение Число байт Описание

    +0 3 Идентификатор 'PSG'
    +3 1 Маркер, равный "1Ah"
    +4 1 Номер версии
    +5 1 Частота прерываний (для версий 10+).
    +6 10 Неизвестно

    Далее следуют строки байтов, начинающиеся с 0FFh или 0FEh. Байт 0FFh – маркёр начала прерывания. Если вслед за ним идёт байт от 0 до 15, то это номер регистра АY, в который произошёл вывод значения, следующего за этим байтом. Далее идёт следующая двойка байт, первый байт которой – номер регистра, а второй – значение. И так пока не встретится маркер следующего прерывания, конец файла или байт 0FEh. Байт, следующий за 0FEh, помноженный на 4 даст количество прерываний, в течении которых не было вывода на сопроцессор. Если в PSG-файле встретится номер регистра от 16 до 252 – не расстраивайтесь. Этот и следующий за ним байт можно просто проигнорировать (это вывод на другие устройства MSX).

    Согласно документации RDOSPLAY, байт 253 является маркером конца музыки, но данный маркер не поддержан в данном Эмуляторе.
    Немного дополнительной информации. Как удалось узнать, некоторые эмуляторы сохраняют более простой заголовок – только первые четыре байта, то есть вывод на AY начинает сохраняться уже со смещения +4. Данный же Эмулятор не приспособлен для загрузки PSG с таким заголовком, но в большинстве случаев такие PSG играются (конечно, теряются первые несколько выводов). Поэтому, если вы занимаетесь конвертированием модулей PSG, созданных с таким заголовком, в другие форматы (VTX или YM6) с помощью данного Эмулятора, вам нужно вручную подкорректировать заголовки этих PSG и привести их к описанному выше виду.

    EPSG

    Данные файлы создаются эмулятором Speccy “Z80 Stealth” Кирилла Колпакова (Mr.Kirill). В отличие от обычных PSG, EPSG хранит информацию не только о выводе в конкретные регистры, но и о времени вывода, в связи с чем, EPSG, также как OUT и ZXAY, может хранить вывод на AY с точностью до такта Z80.
    Далее слегка отредактированный текст из z80s.faq:

    Q: What is it - this EPSG format?
    A: It's PSG format improved just a bit to handle output of digitized samples

    Here's the description:

    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
    [свернуть]
    Последний раз редактировалось molodcov_alex; 06.05.2009 в 08:34.
    ZX Spectrum forever!

  6. #5
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а протрекер не лучшели проиграть? хотя мне кажется щас начнётся холивар по поводу обхождения стороной других трекеров
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  7. #6
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    867
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне нужен самый "простой" формат хранения AY музыки
    так как проигрываться он будет не процессором а напрямую из памяти
    стэйт-машиной в FPGA.
    Посмотрел описания разных форматов в хэлпе AY emul.
    Формат PSG на мой взгляд очень хорошо для этого подходит.
    Правдя пришлось его нечного "под себя" переделать.
    2 минуты музыки упаковываются в 70кб.

    Подробности позже, когда идея "заработает".
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  8. #7
    Master Аватар для key-jee
    Регистрация
    16.01.2005
    Адрес
    Пермь
    Сообщений
    514
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    PSG - очень удобный формат. В отличие от PT3 и прочих трекерных форматов его практически невозможно проиграть неправильно (например из-за неверной обработки команд плеером). К тому же не нужно делать абсолютно никаких вычислений. В противовес этому идёт только размер проигрываемого файла (хотя PSG пакуется неплохо)

  9. #8
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я высказал своё ИМХО, что протрахер лучшее...
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  10. #9
    Veteran
    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,527
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не знаю насчет простоты, но в природе ходят еще и .AY и .YM форматы, размерчик небольшой, и к треккерам кажется не привязаны.

  11. #10
    Master Аватар для key-jee
    Регистрация
    16.01.2005
    Адрес
    Пермь
    Сообщений
    514
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    Мне нужен самый "простой" формат хранения AY музыки
    так как проигрываться он будет не процессором а напрямую из памяти
    стэйт-машиной в FPGA.
    Посмотрел описания разных форматов в хэлпе AY emul.
    Формат PSG на мой взгляд очень хорошо для этого подходит.
    Правдя пришлось его нечного "под себя" переделать.
    2 минуты музыки упаковываются в 70кб.

    Подробности позже, когда идея "заработает".
    Вообще-то 2 минуты на 70 кб это черезчур много. Это даже чистый дамп по 14 байт на фрейм выходит 82кб, а PSG намного компактнее: обычно 2 минуты в PSG занимает порядка 40-50 килобайт.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Aeon, v1.0
    от ILoveSpeccy в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 167
    Последнее: 19.03.2010, 17:39
  2. AEON vs OldSpeccy concept.
    от Mad Killer/PG в разделе ZX Концепции
    Ответов: 16
    Последнее: 01.02.2009, 06:11
  3. AEON by triebkraft & 4th Dimension
    от diver в разделе Демо
    Ответов: 86
    Последнее: 31.01.2009, 17:51
  4. Сервисное меню Пентагона-1993
    от Sonic в разделе Оси
    Ответов: 6
    Последнее: 16.05.2007, 01:25
  5. Проигрывание SoundTrackerPro музыки
    от Jukov в разделе Программирование
    Ответов: 5
    Последнее: 26.02.2006, 05:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •