а чем 8х8 не устраивает и зачем HEX ?
Вид для печати
Оно то так ,но потом как всегда не будет времени, прикинул ,весь плеер (пока под TR-DOS ,без винта) с оформлением должен весить примерно до 15кб.
- - - Добавлено - - -
Хочется инфу о мелодии и семплах выводить компактно ,HEX еще пригодится при отладке плеера , будет мне в экран писать чем плюется в ямаху.
По итогу 8x8 может будет правильнее если впишется в мою задумку.
Еще добавлю , вот написал поддержку тегов , при 8x8 это займет много места , при 8x4 как то компактнее.
https://b.radikal.ru/b24/1804/d8/18540751eb98t.jpg
@Mick ,когда допилю VGM к YM2612 , можно попробовать в плеер добавить поддержку твоего Moon Sound.
- - - Добавлено - - -
А потом бы с автором Wild Player договорится ,и было бы отлично впихнуть это туда.
HardWareMan, вопрос а YM2612 переваривает команды DAC если их ставить не после конфигурирования FM регистров ,а между , то есть так -
fm reg,data ; конфигурирование FM регистра
#2A,data ;вывести байт в ЦАП
fm reg,data
#2A,data
fm reg,data
#2A,data
Регистр адреса регистра общий. Так что, нельзя. Но, если каждый раз перегружать его - то можно, но с учетом BUSY флага. А зачем?
VGM формат оказался не так прост.
Суть такова ,идут себе данные для FM , а между ними приходит команда играть PCM семпл , мы начинаем испольнять команду по проигрыванию PCM ,настраиваем нужный PCM семпл, его частоту выборки , и начинаем играть выкидывая это в DAC естественно очень часто это надо делать и иногда долго если это например труба какая нибудь в цифре , но в VGM поток непрерывный и нам в это же время надо дальше записывать данные в FM регистры ,в то время как мы между ними шлем что то в DAC :v2_wacko:
Хотел попробовал проанализировать это дело на VGM плеере для MSX , но как подсказали к MSX не цепляли YM2126 и вижу что в коде плеера стоят вроде как заглушки где он PCM для YM2612 должен обрабатывать.
Все в общем движется , сейчас разбираюсь с таймингами ,так как оказалось ,что прерывания нам в этом плеере вообще не нужны , там все надо делать на отсчетах и таймерах.
Вот гитара небольшая ,это уже чисто VGM :)
https://www.youtube.com/watch?v=uBHX...ature=youtu.be
На данный момент написан полный человечески загрузчик вплоть до одной мелодии на целую дискету , построитель таблиц PCM семплов , частичный обработчик команд ,и частично плеер.
- - - Добавлено - - -
PS вот чувак через эмуляцию на MSX сделал ,но сам пишет что очень сыро - https://www.youtube.com/watch?v=2jiSclQJ-2s
Ну ничего , MOD плеер написали на 3.5мГц , это подумаю и тоже напишу :)
- - - Добавлено - - -
Вот еще один кусочек VGM
Очень интересно , анализ кода показал ,что MSX плеер и Teensy 3.5 не обрабатывают PCM команды #90-#95 которые управляют потоками ,частотой и настройками PCM , непонятно ,из за сложности реализации или еще по какой то причине. Но во всех файлах с PCM что я просматривал команды #90-#95 используются постоянно. Выходит вышеприведенные плееры просто не играют определенные звуки.
Подумал на досуге о таймере , вопрос может кто то подобное реализовывал ,что бы велосипед не изобретать.
Хочется сделать как можно более точный плеер , основная структура такова ,нам надо читать команды и исполнять их со скоростью 44.100 кГц , но на исполнение разных команд уходит разное время ,и поэтому нельзя в общем цикле поставить задержку с одинаковым временем , так как частота выборки станет плавать.
В виду этого пишу такой таймер в который после исполнения каждой команды будет заноситься число отсчета до чтения следующей команды.
Ни кто ни писал никогда подобную синхронизацию для получения четких равных "прерываний" когда между ними исполняются код с разным количеством тактов ?