Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Переводы » Phantom 2040 (SNES)


Phantom 2040 (SNES)

Сообщений 21 страница 40 из 319

21

Не, я с Круптаром не работаю.
Расширить LoROM вряд ли получится.
И убирать сжатие из-за этого не следует.

22

Тогда нужна вставлялка и вынималка для текста, чтобы с указателями работала. :)

Отредактировано Mefistotel (2012-03-21 05:25:54)

23

Для начала нужно декомпрессор написать, а потом результат можно будет и круптаром обрабатывать (наверно :) )

24

Я то думал об этом. Но если круптару кормить, то надо в одном блоке и текст и указатели.

25

Не обязательно. Я как делал - просто сшивал 2 файла с указателями и с текстом в один файл, переводил, а потом опять их разбирал на 2 файла...

26

Ага, и у тебя отдельно была таблица указателей. А на снес, как правило, указатели по всему рому валяются. И как ты их сшивать будешь?:)
Я веру в Алекса, он знает, что делает.

27

Хех, вон оно как :D
Я на неделю уезжаю, поэтому распаковщиком займусь немного попозже.
Буду пока дальше Лагуну тестить.

28

Ну что там, Санёк? :) Я скоро лагуну всю пройду уже)

29

Да пока со скрипом, я нашел начало пакета, нашел код декомпрессора в игре, но разобраться пока не могу - нужно разом большой период времени выделить, иначе (частями) у меня не получается отследить логику обработки данных: первые 17 байт пакета, по-видимому, содержат данные разметки пакета или что-то подобное, потому что распаковка начинается с 18-го и вот эти 17 не могу понять пока.

30

Небольшой прогресс: по тем 17-ти байтам строятся 2 таблицы соответствий и смещений, по которым производится копирование основных данных пакета.
Теперь нужно отследить всю программу построения таблиц.

31

Это уже радует. yess1

32

Сделал лог программы распаковки, теперь буду изучать :)

Кому интересно:

Отредактировано alex_231 (2012-05-05 15:42:42)

33

По выложенному выше написал анпакер (вернее попытался), но что-то не сходится: или код не полностью отследил, или при переводе накосячил. Без глубокого изучения ничего не получится :(

P.S.: прога получилась - помесь "бульдога с носорогом" - часть кода повторяет SNES-овский асм, часть - оптимизирована под паскаль.

34

Жесть. :(
А расширить ром и перенести распакованный текст в конец с заменой процедуры распаковки возможно?

35

Повторюсь: у нас LoROM размером 2Mb, как такое расширять я не знаю, потому что адресация заканчивается $BFFFFF, и при увеличении рома то, что свыше 2Mb в память не попадает.

36

Остаётся только трудный путь?

37

Перечитай наши подписи и всё встанет на свои места :)

Отредактировано alex_231 (2012-05-08 11:58:19)

38

Я решительно ничего не понимаю. Пока пошагово отслеживаю работу программы всё совпадает с оригиналом в эмуляторе (больше 160 байт распакованного пакета), стоит отпустить отладчик и дать программе свободно исполняться, начинаются такие глюки, что страшно становится.

Отредактировано alex_231 (2012-05-08 18:19:54)

39

Фух, декомпрессор работает, правда как он работает я так и не понимаю ;)
Однако, до того как думать о компрессии нужно разобраться, как быть с переводом того, что получается после декомпрессии. Я уже вроде писал, что здесь используется система событий подобная Final Fantasy Adventure, однако про поинтеры пока ничего не ясно да и их здесь вообще может не быть. Нужно полностью изучить скрипт обработки событий, чтобы можно было менять длину предложений.

40

Немного покопавшись в пакете выяснил, что текст выводится по коду &0810, со стопбайтом &00, плюс перед этим всем стоит код вида &XX00, определяющий параметры вывода текста (количество и положение строк как минимум).

Однако для дальнейшего изучения необходимо либо отслеживать работу с пакетом в дебаггере, либо писать пакер и экспериментировать, изменяя пакет вручную.

Так что, прийдется разбираться в алгоритме раньше, чем предполагалось :(


Вы здесь » Chief-NET » Переводы » Phantom 2040 (SNES)