Спасибо!
Прочитал описание формата ay. Сверился с файлами которые у меня есть. Чет не соответствует. Понял что ничего не понял. Lha это формат хранения word , типа low, hi? Есть ли у тебя описание формата?
Спасибо!
Прочитал описание формата ay. Сверился с файлами которые у меня есть. Чет не соответствует. Понял что ничего не понял. Lha это формат хранения word , типа low, hi? Есть ли у тебя описание формата?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
lha это архиватор древний, популярен на атари, откуда формат ym родом.Внутри архива будет один файл формата ym6. Там сколько-то заголовков (LeOnArD! итд) из которых важно только количество записей, допустим их 100. Дальше идет 100 байт регистр 0, затем 100 байт регистр 1 итд до регистра 15 (регистры 14 и 15 не используются, но пишутся).
Больше игр нет
parallelno(21.08.2022)
Да, тяжело с мертвыми форматами работать ...
Скрипт твой заработал. Спасибо!
- - - Добавлено - - -
svofski, ты этот формат по памяти знаешь или есть описание?
- - - Добавлено - - -
svofski, ещё вопрос про модель звукового чипа
Я ковертнул вот эту песенку
https://zxart.ee/eng/authors/m/mmcm/...bit-pops-acid/
И она нормально играет. Но в странице с описанием написано что тип чипа YA-2149f. Но в твоём примере на базыре написано что чип AY 8910. Они аналоги, можно музыку для любого из них конвертить?
есть описание, поищи ym6 leonard. я сейчас далеко от компа.
ay-3-8910 и ym-2149 логически вроде эквивалентны, но в деталях там есть отличия и звучат они, говорят, по-разному.
Больше игр нет
А если буфера и стеки вынести на квазидиск в подэкранные области? Кстати сжатые стримы с окном 256 прилично сжимаются zx0 без окна.
То есть можно музыку держать дважды сжатой в игре. Потом распоковывать на квазидиск в подэкранные области и оттуда проигрывать в теории. По крайней мере у меня такой план. Или тут есть какие подводные камни?
Камней особых вроде нет.
Если не так критичен каждый такт, а память в цене, то может быть все же один из stc плееров, или плеер pt2 могут лучше подойти. Там степень сжатия будет самая высокая.
Больше игр нет
память как раз не в цене так как квазидиск есть. Нужно кстати сравнить pt2, stc и zx0 по памяти.
- - - Добавлено - - -
Кстати музон который я конвертировал для тестов
В pt3 занимает 5.4kB, дважды пожатый в zx0 4kB.
svofski, ещё хочу сказать большое спасибо за гига Чад плеер. Очень классно написан!
Я так понимаю, что дважды пожатый zx0 -- это регистровые дампы сжатые для гигачада закатанные потом вместе со всем остальным без ограничения окна. pt3 тогда тоже надо сравнивать аналогично -- в замаринованном виде.
Спасибо, мне и самому понравилось. Забавно получилось, я думал чисто ржаки ради сделать акробатический трюк, а получилось вполне практично.
Но все равно было бы здорово как-нибудь сочинить полноценный плеер для 8080 без портов и рекомпиляций.
Больше игр нет
Oleg N. Cher(14.10.2022)
ivagor, я попытался обновить zx0 чтобы он мог распаковывать в квазидиск, но что-то пошло не так и он портит данные. Совсем чуть чуть. Не могу понять в чем беда. Помоги найти баг пожалуйста.
Код:; unpack to the ram-disk $8000-$FFFF ; in: ; de - compressed data addr ; bc - uncompressed data addr ; a - ram-disk activation command dzx0RD: sta @ramDiskCmd1+1 sta @ramDiskCmd2+1 lxi h, $ffff push h inx h mvi a,$80 @literals: call @Elias call @ldir jc @newOffset call @Elias @copy: xchg xthl push h dad b xchg call @ldirUnpacked xchg pop h xthl xchg jnc @literals @newOffset: call @Elias mov h, a pop psw xra a sub l rz push h rar mov h, a ldax d rar mov l, a inx d xthl mov a, h lxi h, 1 cnc @EliasBacktrack inx h jmp @copy @Elias: inr l @EliasLoop: add a jnz @EliasSkip ldax d inx d ral @EliasSkip: rc @EliasBacktrack: dad h add a jnc @EliasLoop jmp @Elias @ldir: push psw @ldirLoop: ldax d push psw ; turn on the ram-disk @ramDiskCmd1: mvi a, TEMP_BYTE out $10 pop psw stax b ; turn off the ram-disk xra a out $10 inx d inx b dcx h mov a, h ora l jnz @ldirLoop pop psw add a ret @ldirUnpacked: push psw ; turn on the ram-disk @ramDiskCmd2: mvi a, TEMP_BYTE out $10 @ldirUnpackedLoop: ldax d stax b inx d inx b dcx h mov a, h ora l jnz @ldirUnpackedLoop ; turn off the ram-disk xra a out $10 pop psw add a ret
Мне не хватает данных об условиях применения. Если упакованные данные и распакованный блок не пересекаются, то просто включаем кваз в нужное состояние перед распаковкой и используем обычный распаковщик. Специальный распаковщик нужен если пересекаются.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)