Объясните, с чем я имею дело (что за алгоритм сжатия)?
|
|
Metafalica | Дата: Суббота, 21.09.2019, 11:43 | Сообщение # 1 |
Рядовой
Группа: Проверенные
Сообщений: 6
Статус: Оффлайн
| Всем привет. Делаю тулзы для порта перевода Dragon Quest 5 с NDS на PS2. Запрогал репакер главного архива, извлек из него кучу файлов с расширением .lz, но что-то тамошний lz не похож на те, с которыми я имел дело раньше. Там через 8 байт повторяется байт FF, а иногда через 8 байт идет не он, а нечто близкое к нему, типа FC. А иногда странные байты воткнуты в текст не через 8 байт, а ближе. Думаю, это весь специфично для какого-то метода сжатия. Скажите, что это, чтобы я погуглил да почитал, что делать с этой хренью.
Если что, то файл прикладываю. Интересует, каким макаром пожат текст в самом его конце.
|
|
| |
TLT | Дата: Суббота, 21.09.2019, 17:17 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 2365
Статус: Оффлайн
| Если ты этим занимаешься, то вряд ли есть кто-то, кто лучше тебя с этим знаком.
Цитата Metafalica ( ) тулзы для порта перевода Dragon Quest 5 с NDS на PS2
В чём задача, вытащить скрипт из NDS игры?
Неужели сжали текст? Обычно на NDS встречается графика сжатая LZ77...
Tinke не поможет в данном случае?
Вот так.
|
|
| |
Metafalica | Дата: Понедельник, 23.09.2019, 15:04 | Сообщение # 3 |
Рядовой
Группа: Проверенные
Сообщений: 6
Статус: Оффлайн
| Задача научиться перепаковывать файлы с текстом из PS2 версии. Нужно портировать перевод с NDS на PS2. За эти дни многое прояснилось с этим алгоритмом, но единственное, что вызывает недоумение - так это система адресации ссылок. Первая же ссылка указывает невесть куда, вместо начала словаря.
Похоже, это разновидность LZ. Здесь периодически расставлены контрольные байты (которые я называл FF, FC и т.д.), а их биты значат, чем являются следующие 8 сущностей (дословными байтами или ссылками).
Т.е. байт FC (11111100) значит что у нас сразу за ним идет две двухбайтовых ссылки одна за другой, а затем 6 дословных байт. А затем следующий контрольный байт.
Я описал все, что мне известно об этом алгоритме на картинке. И прикладываю сжатый файл и распакованный, который я выдрал из RAM эмулятора. Я уже даже запрогал типа распаковщик, который правильно распаковывает только дословные байты, а из-за проблем с адресацией все ссылки пишут в распаковываемый поток невесть что, но правильного размера. Сжатый файл: https://www.dropbox.com/s/bw53z2qp9qsw2n1/cdf3b.chaindata.lz?dl=1 Распакованный файл: https://www.dropbox.com/s/hd0hvbnaevszh76/cdf3b.chaindata.lz_decompr?dl=1
Было бы неплохо, если бы кто-то помог добить этот алгоритм...
Сообщение отредактировал Metafalica - Понедельник, 23.09.2019, 15:12 |
|
| |
Genesis16 | Дата: Воскресенье, 06.10.2019, 09:41 | Сообщение # 4 |
Майор
Группа: Проверенные
Сообщений: 81
Статус: Оффлайн
| Где-то видел утилиту, в которой собраны разные варианты распаковщиков и запаковщиков LZ, на romhacking.net, вроде.
|
|
| |
77xx | Дата: Понедельник, 20.01.2020, 18:17 | Сообщение # 5 |
Рядовой
Группа: Проверенные
Сообщений: 3
Статус: Оффлайн
| Цитата Genesis16 ( ) паковщиков и запаковщиков LZ Какое название этой программы ?
############### Metafalica Скорей всего запись в словарь начинается не с 0 а с более позднего адреса, и всё надо просто подобрать правильное начало записи в словарь.
Сообщение отредактировал 77xx - Понедельник, 20.01.2020, 18:41 |
|
| |
TLT | Дата: Вторник, 21.01.2020, 16:18 | Сообщение # 6 |
Генералиссимус
Группа: Администраторы
Сообщений: 2365
Статус: Оффлайн
| Цитата 77xx ( ) Какое название этой программы ?
Их много. Смотрите тут.
Вот так.
|
|
| |