Chief-NET

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

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


Вы здесь » Chief-NET » Экстрим хакинг » Dragon Quest IV (NDS)


Dragon Quest IV (NDS)

Сообщений 1 страница 20 из 42

1

кто-нибудь сможет помочь разобраться с поинтерами и заодно устроить проект для круптара?   :)

вроде бы простые по структуре файлы, а понял только, что первые 4 байта - сингатура  alcoholic
закрепил три файла разом http://www.datafilehost.com/d/edcf9220

Отредактировано el_pedro (2014-03-22 02:09:29)

2

Здесь бы мог помочь dnd, который частенько у Антона на форуме бывает.

3

Могу ошибаться, но похоже, что (файл b0054000.mpt, например):
h1E - адрес первого пойнтера.
Размер 4 байта, интервал между пойнтерами - 2 байта.

Отредактировано Anton299 (2014-03-22 16:22:27)

4

чего-то не сходится, да и расстояние там 1 байт вроде как

5

Если выставить отображение в хекс редакторе, как на скрине (см). (6 колонок от 0 до 5) то хорошо видна закономерность и упорядоченность байт.

Зеленым показал предполагаемые пойнтеры, красным - расстояние между ними.

Пойнтеры явно идут по возрастающей, блоками.
Вот, например, второй байт - 00. Везде, где он 00, явно по возрастающей идут значения. Потом идет следующий блок, где второй байт 01 - тоже пошло по возрастанию. И т.д. до блока, где второй байт 03. Потом сразу начинается текст.
Явно ж похоже на пойнтеры.

6

Pedro, разобрался с указателями?

7

еще нет, все еще нуждаюсь в помощи. предложенные антоном значения оказались не ими, а какой-то другой инфой.
я до сих пор так почти ничего не понял из файлов, нарыл только

первые 4 байта - сингатура "MPT0"
потом 4 байта - размер файла

Отредактировано el_pedro (2014-04-21 00:01:15)

8

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

9

Pedro, дай ссылку на необходимый ром.

10

http://www.emuparadise.me/Nintendo_DS_ROMs...ARDiAN%29/48744

11

Саня, не смотрел? Отсутствие результата тоже результат. :)

12

Вот-вот-вот, присоединяюсь к Мефистотелю.

Есть ли какие-то продвижения?

Отредактировано KenshinX (2014-04-28 16:41:32)

13

У меня пока нет нормального доступа к сети, чтобы скачать образ.
Отпишусь сразу, как образ стяну.

14

Меня сегодня Mefistotel направил сюда, взглянул ща на файлики, вот что есть на данный момент:

Инфо блок:
-------------
0х0 - заголовок (4 байта)
0х4 - размер файла (4 байта)
далее неизвестные 12 байт
0х14 - указатель на блок поинтеров (или размер инфо блока) (4 байта)
0х18 - размер блока поинтеров (4 байта)

Поинтеры:
------------
0х20 - начало блока (указан в 0х14)
Поинтер (6 байт):
X - неизвестное число UInt16 (2 байта)
S - размер текстового сообщения (2 байта)
P - относительный указатель на сообщение (2 байта)

Поинтер вычисляем по следующей формуле:
P * 4 + "размер блока поинтеров" + "размер инфо блока"

Замечание: так как поинтеры в файле поделены на 4, то значит значения всех указателей кратны 4, а это значит, что сдвиги на все текстовые сообщения выравнены относительно байта, кратного 4

БАЙТ ВЫРАВНИВАНИЯ: "FE"

Обрати внимание еще на то, что в начале каждой реплики указан кто читает между символами @ (0x40).
В общем виде сообщения имеют структуру:
@<Имя>@b<ТЕКСТ>"0A"@<Команда>@
ну и между ними если нужно FE в нужном количестве.

Осталось понять Х параметр...  :(  прости...

15

И после этого без толкового скриптера для переводчика просто не обойтись.;)

16

И после этого без толкового скриптера для переводчика просто не обойтись.;)

Скриптер могу... но тогда после выходных или кто-то другой.
На счет Круптара сомневаюсь, мне просто страшно его открывать...

А пока поправка по структуре фалов (чтоб не забыть):
из 12 неизвестных:
0х08 - X1 - целое 32бит (4 байта)
0х0C - Х2 - целое 32бит (4 байта)
0х10 - Количество текстовых сообщений (4 байта)

По поводу Х - не совсем понятно, заметил только то, что Х2 - Х1 = Х (последнего поинтера)

еще уточнения:
0х14 - указатель на блок поинтеров (4 байта)
0х18 - относительный указатель на начало текстового блока (относительно начала блока поинтеров) (4 байта)
0х1С - размер текстового блока (4 байта)

17

Написал плагин для поддержки МРТ0-файла к своему софту.
Может помочь переводчику... мне Pedro в личку кидать? Он тут?

18

воу, хотелось бы глянуть :o
а плагин для чего?

19

Написал плагин для поддержки МРТ0-файла к своему софту.
Может помочь переводчику... мне Pedro в личку кидать? Он тут?

Сюда всё прикрепляй. Переводчик для этого проекта - Mouse.

20

Итак, попробовал вставить текст в ром, что выяснилось по тексту:

1. Слова переносятся автоматически по пробелу (в доказательство скрин №1)
видно, что текст, который я вбил у себя в проге после фразы "В чем дело?" перешел на новую строчку.

2. Добавляя новые строки, видно новые строки, не вмещающиеся в 3 исходные, появляются после нажатия на кнопку, а старые строчки при этом уезжают вниз. (скрин №2)

Вывод, можно добавлять сколько угодно строк (по п. 2), а можно и не добавлять их вовсе, сами перенесутся (по п.1). Однако как и в моей ФФ, не следует писать одно длинное слово, длинной в строку.


Вы здесь » Chief-NET » Экстрим хакинг » Dragon Quest IV (NDS)