russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Объясните, с чем я имею дело (что за алгоритм сжатия)?
MetafalicaДата: Суббота, 21.09.2019, 11:43 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 6
Статус: Оффлайн
Всем привет. Делаю тулзы для порта перевода Dragon Quest 5 с NDS на PS2.
Запрогал репакер главного архива, извлек из него кучу файлов с расширением .lz, но что-то тамошний lz не похож на те, с которыми я имел дело раньше.
Там через 8 байт повторяется байт FF, а иногда через 8 байт идет не он, а нечто близкое к нему, типа FC.
А иногда странные байты воткнуты в текст не через 8 байт, а ближе.
Думаю, это весь специфично для какого-то метода сжатия. Скажите, что это, чтобы я погуглил да почитал, что делать с этой хренью.

Если что, то файл прикладываю. Интересует, каким макаром пожат текст в самом его конце.
Прикрепления: shido.chaindata.lz (278.7 Kb)
 
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

Было бы неплохо, если бы кто-то помог добить этот алгоритм...
Прикрепления: 1820096.png (265.6 Kb)


Сообщение отредактировал 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 ()
Какое название этой программы ?


Их много. Смотрите тут.



Вот так.
 
  • Страница 1 из 1
  • 1
Поиск: