Сообщение от
Vitamin
Неужели я давал оценки ненаписанному коду типа "ламерство" или "индусский код"? Не припомню...
А вот оценку трудоемкости всех вариантов предлагаю выполнить самостоятельно.
Загрузить трек в Vortex Tracker и записать продолжительноть музона в фреймах из окошка прям над окном редактирования, конечно наиболее трудоемко, чем вставить более 200 пустых паттернов в конце трека в Sound Tracker..
Проблема с хранением этих данных в табличках тоже надуманна: никто не мешает добавить эти данные прям перед данными трека и брать их по offset-2 при/перед инициализацией плеера. В добавок прям в эти данные можно и заглушку на бесконечные музоны вставить (0 - трек зациклен, иначе - длина трека во фреймах)
Загружаем модули:
Код:
stc1 defw stc1_len: incbin "1.stc"
stc2 defw stc2_len: incbin "2.stc"
// повторять пока не закончатся треки (или память)
инициализируем:
Код:
ld hl,stc1
ld e,[hl]: inc hl: ld d,[hl]: inc hl
ex de,hl: ld [count+1],hl: ex de,hl
// тут переходим в стандартную процедуру инициализации
Плеер типа:
Код:
count
ld hl,0
ld a,h: or l: jr z,playnote // ловушка для зацикленных треков
dec hl
ld a,h: or l: jr z,exit // не вызывать проигрыватель если трек отыграл
ld [count+1],hl
playnote
call player.play
exit
ps. при желании можно даже нагуглить формат stc файлов и понять как для них вычислить продолжительность музыки кодом.. но там кода будет явно побольше чем 20 байт "табличек"