эх, кто бы осилил пусть даже конвертер .psg в .YM.
Нашёл сам упаковщик, и ещё нашлась изменённая версия 6.2, но алгоритм в ней тот-же и распаковщик тоже не поменялся.Где можно глянуть примеры с укороченным распаковщиком и компрессор экранов?
Здесь не нашёл https://github.com/vitamin-caig/zxtu...s/packed/trush .
Алгоритм у всех трех версий одинаковый. Разные сигнатуры.
В отдельный формат не выносил, поэтому точные места не скажу.
С помощью xtractor можешь сам найти такие блоки:
после ключа --format указывается формат начала распаковщика TRUSH. Вместо N укажи число ядер проца на твоем компе (чтоб быстрее работало). Последним параметром (files/folders) указывай путь к своей коллекции спековского софтаКод:xtractor --format "???????????01??d5ed(b0|b8)eb23(dd|fd)21??(dd|fd)39f921??11??01??d5c3??" --analysis-threads N --target-name-template Trush/[FlatPath]_[FlatSubpath] <files/folders>Рекомендую пошариться на http://zxaaa.untergrund.net/ftp.html , распаковывать нужно только 7z архивы, остальное поймет.
После этого в папке Trush у тебя будут все найденные блоки, соответствующие формату (возможно, не с начала). Можно их повторно прогнать через фильтр "d9e118063bf1d91213d9291003e10610" для выделения именно Trush блоков (не забудь поменять шаблон пути, а то будет сложно разобраться потом).
Обнаружил ошибку в распаковщике TurboLZ, при которой теряются последние байты в распакованном файле, при условии что они не сжаты, т.е. не нигде не повторяются ранее.Вот после этого токена байты и теряются. В оригинальном (Z80) распаковщике ничего не теряется, а последние байты уже лежат там где надо т.к. перед началом распаковки LDIR перекинул весь запакованный блок в самый конец буфера для распакованного блока и последние (не сжатые) байты уже попали на своё место ещё до начала распаковки.Код:if (!token) { //%00000000 - exit Decoded.push_back(Header.LastByte); return true; }
Защищённой версии у меня нет, и как в ней обстоят дела я не знаю.
Сорри за позднюю реакцию- проверял фикс. Регрессий вроде бы нет, профит небольшой есть.
Для защищенной версии то же самое. Разве что данные при этом не расшифровываются.
Можешь посмотреть дизассемблер тестового дампа (src/formats/test/tlz/packed2.bin). Надо будет его обновить- пзу в конце таки пакуется![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)