Не, я с Круптаром не работаю.
Расширить LoROM вряд ли получится.
И убирать сжатие из-за этого не следует.
Phantom 2040 (SNES)
Сообщений 21 страница 40 из 319
Поделиться212012-03-21 04:21:25
Поделиться222012-03-21 05:24:03
Тогда нужна вставлялка и вынималка для текста, чтобы с указателями работала.
Отредактировано Mefistotel (2012-03-21 05:25:54)
Поделиться232012-03-22 05:15:46
Для начала нужно декомпрессор написать, а потом результат можно будет и круптаром обрабатывать (наверно )
Поделиться242012-03-22 05:31:07
Я то думал об этом. Но если круптару кормить, то надо в одном блоке и текст и указатели.
Поделиться252012-03-22 06:07:15
Не обязательно. Я как делал - просто сшивал 2 файла с указателями и с текстом в один файл, переводил, а потом опять их разбирал на 2 файла...
Поделиться262012-03-22 08:50:22
Ага, и у тебя отдельно была таблица указателей. А на снес, как правило, указатели по всему рому валяются. И как ты их сшивать будешь?
Я веру в Алекса, он знает, что делает.
Поделиться272012-03-24 05:52:54
Хех, вон оно как
Я на неделю уезжаю, поэтому распаковщиком займусь немного попозже.
Буду пока дальше Лагуну тестить.
Поделиться282012-04-25 13:27:06
Ну что там, Санёк? Я скоро лагуну всю пройду уже)
Поделиться292012-04-25 14:47:50
Да пока со скрипом, я нашел начало пакета, нашел код декомпрессора в игре, но разобраться пока не могу - нужно разом большой период времени выделить, иначе (частями) у меня не получается отследить логику обработки данных: первые 17 байт пакета, по-видимому, содержат данные разметки пакета или что-то подобное, потому что распаковка начинается с 18-го и вот эти 17 не могу понять пока.
Поделиться302012-05-04 13:12:17
Небольшой прогресс: по тем 17-ти байтам строятся 2 таблицы соответствий и смещений, по которым производится копирование основных данных пакета.
Теперь нужно отследить всю программу построения таблиц.
Поделиться312012-05-05 03:51:28
Это уже радует. yess1
Поделиться322012-05-05 14:47:14
Сделал лог программы распаковки, теперь буду изучать
Кому интересно:
Отредактировано alex_231 (2012-05-05 15:42:42)
Поделиться332012-05-07 19:11:51
По выложенному выше написал анпакер (вернее попытался), но что-то не сходится: или код не полностью отследил, или при переводе накосячил. Без глубокого изучения ничего не получится
P.S.: прога получилась - помесь "бульдога с носорогом" - часть кода повторяет SNES-овский асм, часть - оптимизирована под паскаль.
Поделиться342012-05-08 00:39:39
Жесть.
А расширить ром и перенести распакованный текст в конец с заменой процедуры распаковки возможно?
Поделиться352012-05-08 11:38:39
Повторюсь: у нас LoROM размером 2Mb, как такое расширять я не знаю, потому что адресация заканчивается $BFFFFF, и при увеличении рома то, что свыше 2Mb в память не попадает.
Поделиться362012-05-08 11:55:24
Остаётся только трудный путь?
Поделиться372012-05-08 11:57:52
Перечитай наши подписи и всё встанет на свои места
Отредактировано alex_231 (2012-05-08 11:58:19)
Поделиться382012-05-08 17:31:37
Я решительно ничего не понимаю. Пока пошагово отслеживаю работу программы всё совпадает с оригиналом в эмуляторе (больше 160 байт распакованного пакета), стоит отпустить отладчик и дать программе свободно исполняться, начинаются такие глюки, что страшно становится.
Отредактировано alex_231 (2012-05-08 18:19:54)
Поделиться392012-05-08 18:19:25
Фух, декомпрессор работает, правда как он работает я так и не понимаю
Однако, до того как думать о компрессии нужно разобраться, как быть с переводом того, что получается после декомпрессии. Я уже вроде писал, что здесь используется система событий подобная Final Fantasy Adventure, однако про поинтеры пока ничего не ясно да и их здесь вообще может не быть. Нужно полностью изучить скрипт обработки событий, чтобы можно было менять длину предложений.
Поделиться402012-05-11 05:27:27
Немного покопавшись в пакете выяснил, что текст выводится по коду &0810, со стопбайтом &00, плюс перед этим всем стоит код вида &XX00, определяющий параметры вывода текста (количество и положение строк как минимум).
Однако для дальнейшего изучения необходимо либо отслеживать работу с пакетом в дебаггере, либо писать пакер и экспериментировать, изменяя пакет вручную.
Так что, прийдется разбираться в алгоритме раньше, чем предполагалось