несколько моментов.
1. учёт и выборка потока данных для psg
2. потактовая чётность плеера
...
3. 300 тактов не нужны
несколько моментов.
1. учёт и выборка потока данных для psg
2. потактовая чётность плеера
...
3. 300 тактов не нужны
О как активизировались то)
- - - Добавлено - - -
ld c,#FD ; один раз, 7 тактов
ld de,#BFFF ; 10 тактов
;-----------------
; Вывод в один регистр HL = данные в формате <1байт номер регистра>, <1байт данные>;<1байт номер регистра>, <1байт данные>;<1байт номер регистра>, <1байт данные>;....
ld b,e ; 4
outi ; 16
ld b,d ; 4
outi ; 16
;----------ВСЕГО: 40 тактов
Запись в 11 регистров - всего 440 тактов. И данные с кодом мешать не надо! Класс!
Мозги вы тут собрались!)
Если не управлять громкостью - то достаточно 8 регистров, то есть 320 тактов.
А если учесть, что не каждые 1/50 секунды меняются все регистры, то достаточно ограничиться изменением
6 регистров за раз (240 тактов). И все.
Конечно, конвертор будет не очень простой. Нужен дамп регистров и анализ их изменения, чтобы генерировать
последовательность только тех, что меняются. Но это реально.
- - - Добавлено - - -
Задача чисто "ради интереса"
Последний раз редактировалось SfS; 01.08.2017 в 10:58.
Ну вот. Меня в троллинге обвиняют чтоли?) Ну стало мне интересно - написал. Заодно и более-менее оптимальное решение быстренько выяснилось.
и что выйдет из решения? пердеж и бэквокал в виде огибающей? .psg проигрывателя иногда хватало за глаза
не обязательно обновляеть все регистры за один фрейм (одна строка звучит от 3 фреймов и более...)
это критично только для орнаментов
но и они тоже могут быть на пониженной частоте 25ГЦ и не плохо звучить
качество инструментов конечно снизится но не на столько уж прям
правда могут всплыть дополнительные щелчки и булькания
изза того что в этом фрейме не успели обновится 2-й рег частоты или если должен был быть большой перепад громкости и включение шума
само же отставание в обновлении разных групп регистров услышать не реально
сильно короткий интервал
Последний раз редактировалось NEO SPECTRUMAN; 01.08.2017 в 16:16.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
в орнаментах они меняются с частотой 50Гц
сами инструменты тоже могут менять частоту каждый фрейм так же как и громкость
но когда важно уложится в такты на это можно подзабить
(хотя орнаменты придется замедлять ручками в редакторе перед конвертированием)
а супер навороты чувствительны к времянкам настолько что
сами будут через раз работать на реале (тк нет переинициализации счетчиков у тона)
не говоря уже о разных машинах с разными частотами процов\интов и Ау-ков
Последний раз редактировалось NEO SPECTRUMAN; 01.08.2017 в 20:02.
Есть еще вариант - перемежение кода отрисовки графики и звука. Например: рисуем одну линию - выводим один канал; рисуем вторую - выводим второй канал и т.д. В таком случае не очень важно, сколько тактов займет работа с AY в сумме; достаточно, чтобы эти такты хотя бы во фрагментированном виде были в наличии. В программах, выравненных по времянкам, часто встречаются задержки. Вот можно часть задержек перепилить на работу со звуком.
- - - Добавлено - - -
Во многих играх встречалась музыка с обновлением не каждый кадр. Например: во время игры Marauder выводит один раз за 3 кадра. А по музыке и не скажешь, что она технически ограничена. Хорошо постарался композитор, грамотно распорядился возможностями. Также один раз за 3 кадра обслуживается музыка на 4-м уровне Batman The Movie (уровень называется "Gotham City Parade"). И здесь музыка весьма неплохая.
- - - Добавлено - - -
Можно еще представить себе такой плеер, который каждый кадр обновляет только один канал. Музыка останется трехканальной. Композиторы вздохнут свободнее, а программист - уложится в 100 тактов за кадр
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)