User Tag List

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

Тема: Конвертация музыки Savage

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.09.2007
    Адрес
    Чехов
    Сообщений
    70
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как и обещал, выкладываю перевод информации Тима Фоллина о кодировании 5-канальной музыки. Информация была проверена и подтверждена в ходе дизассемблирования плеера "Future Games". Итак,

    Программа работает с испозованием 5 регистров Z80 (C, D, E, H, L) в цикле генерации, в течение которого все они уменьшаются до 0. Когда они обнуляются, я делаю щелчок на определенной громкости (которая зависит от задержки между моментом включения и моментом выключения спикера) и загружаю в регистры их изначальные значения. Через каждые 256 повторений цикла, я перехожу за его пределы, чтобы изменить ноты и эффекты. Чтобы добиться максимальной скорости, я использую модификацию кода в цикле генерации. Он содержит простые команды, к примеру ‘LD H,110’, в то время как код за пределами цикла генерации изменяет код внутри этого самого цикла путем записи поверх него новых значений [переменных]. Один лишь недостаток состоит в том, что все это звучит как пылесос, набитый гвоздями.

    Уточнение Barmaley_m: звук формируется короткими импульсами, этим объясняется его характерный тембр.

    Программа состоит из компактного цикла генерации, играющего примерно 1/30 секунды, после чего он прерывается, чтобы изменить параметры внутри него самого (записываются прямо поверх кода, для увеличения общей скорости работы). В момент прерывания программа также проверяет, не нажата ли клавиша, и играет спецэффекты. В цикле генерации имеется 3 или более переменных [счетчиков], в зависимости от количества каналов (регистры b, c, d, e, и пр.), уменьшающихся до тех пор, пока они не обнулятся. В этот момент спикер включается, либо выключается. Задержка между моментом включения и моментом выключения спикера определяет громкость. Очевидно, что пауза между щелчками должна регулироваться другим циклом задержки, чтобы полное время исполнения цикла в тактах оставалось неизменным. Также очевидно, что это замедляет весь цикл в целом на некую величину. Но всё получается! Это работает… Вроде.

    Barmaley_m приводит следующие технические данные для Future Games music:
    69 тактов занимает цикл при условии, что ни по одному из каналов не идет импульс;
    выполняется цикл 256 раз;
    частота дискретизации (на каждый канал) - 50724Гц;
    время работы цикла - 1/198 секунды,
    то есть 200 раз в секунду идут "прерывания";
    я думаю, что рабочие частоты, которые воспроизводит этот цикл, не превышают пары кГц;
    Это значит, что в среднем по каждому каналу идет не более 10 импульсов за один "блок" работы цикла.
    Даже можно принять, что в целом по всем каналам идет 10 импульсов за один блок. Ну может 20.
    Требуется "ремастеринг" 5-канальных треков Follin'а без шумов. Цена - не вопрос!

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

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

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

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

Похожие темы

  1. Savage - Remastered
    от Barmaley_m в разделе Музыка
    Ответов: 57
    Последнее: 17.06.2013, 15:08
  2. Savage 4
    от Art_S в разделе Игры
    Ответов: 18
    Последнее: 28.04.2007, 23:14
  3. Savage и Dynamite Dan
    от tmp_online в разделе Игры
    Ответов: 2
    Последнее: 05.03.2007, 21:44
  4. конвертация и эмуляция
    от jimon в разделе Эмуляторы
    Ответов: 12
    Последнее: 25.02.2006, 21:19
  5. Коллекция музыки из +D
    от ^m00h^ в разделе Музыка
    Ответов: 2
    Последнее: 31.05.2005, 23:15

Ваши права

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