Chief-NET

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

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


Вы здесь » Chief-NET » Базовый хакинг » TNMT III - Radical Rescue [GB]


TNMT III - Radical Rescue [GB]

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

1

В поисках игры про черепах, воспоминания о которой у меня сохранились из детства, я наткнулся на TNMT III - Radical Rescue для GB.
Что меня удивило и заинтересовало - в отличие от других игр серии, эта абсолютно не вписывается в концепцию бит-эм-апов. Это скорее метроидвания в сеттинге черепах. Начинаем мы одним героем, постепенно освобождая остальных.
Ещё хотел бы отметить, что каждый из персонажей имеет собственный уникальный навык, без которого просто невозможно пройти некоторые места, ну и рпг элементы - ключи, лечилки, "прокачка" здоровья.
Прошел игру на одном дыхании (правда пользовался сейв стейтами) и был поражён, тем, что в 1993 году была выпущена такая игра.

Теперь по теме: захотел перевести и первым делом полез искать шрифт. Нашёл. Но! Символы идут не в алфавитном порядке. Поганил - шрифт тот, что надо, да ещё и есть место (иероглифы) для недостающих букв кириллицы. Как составить к нему таблицу я не представляю :/ Соответственно и текст искать не могу. Не говоря обо всём остальном.
Прошу технической помощи.
Ром, традиционно, US региона (брал на эму-ленде), 1bpp, оффсет 0x18041.

Отредактировано lupus (2013-04-05 13:00:34)

2

Такие вещи очень легко искать в эмуляторе bgb. Загрузил ром, дошёл до нужного места, выбрал:

Other -> Vram Viever

Смотришь вкладку BG map и наводишь на текст курсор, Tile No - это и есть твои тайлы.

http://s2.uploads.ru/b4trz.png

К примеру, слово YEAR - 3A 23 29 31

http://s3.uploads.ru/DiaIE.png

Ищешь в хексе значения - и вуаля!

П.С. Этот пример подойдёт и для той, второй игры, о Флинстоунах. Так что я там писать не буду...

3

Только для Флинстоунов не так очевидно - там алфавит-то по порядку, а таблица - нет. Но каждую букву можно узнать, какой у неё код. По вышеописанному способу. И потом уже в хексе можно увидеть по составленной таблице что-то осмысленное...

4

Спасибо, с таблицей вроде разобрался, текст нашёл. Заметил такую особенность: в начале каждой строки стоит байт, в котором указано количество символов в строке. Это как-то в круптаре можно обрабатывать?

5

Это к Джинну. Я обычно вручную всё обрабатываю. Тем более, текста у тебя мало.

Но это очень распространнный пример, к нему должен быть плагин. Или даже в круптар это встроено. К джинну обратись...

6

Подключаются как обычные строки, но в проекте нужно выбрать плагин ShortString.kpl.
После этого, первые байт не будут показываться в тексте, и программа сама будет пересчитывать длины строк.
Сам если не разберёшься, то пиши - помогу сделать проект.

Отредактировано Mefistotel (2013-04-07 09:58:08)

7

Подключаются как обычные строки, но в проекте нужно выбрать плагин ShortString.kpl.
После этого, первые байт не будут показываться в тексте, и программа сама будет пересчитывать длины строк.
Сам если не разберёшься, то пиши - помогу сделать проект.

Буду весьма признателен, если поможешь с проектом, т.к. я толком так и не разобрался в поинтерах GB.
По ссылке архив с всеми необходимыми файлами (оригинальный ром, ром с русским шрифтом и немного поправленной графикой, таблицы en/ru, скрипт с переводом, вытянутый poreporevod'ом.) Скрипт для ознакомления, может какие замечания будут. Пока не перевёл имена некоторых боссов и несколько должностей в титрах.
Да ещё заметил, что в первом блоке (заставка с копирайтами и т.п.) в тексте встречаются какие-то спец. байты)
https://dl.dropbox.com/u/57975554/GB/tmntIII.7z

8

Ок. На выходных посмотрю.

9

Точнее в последнем блоке

10

Мля, гемора столько из-за 5 кб чистого текста.
Все указатели на абзацы с текстом стандартные для геймбоя. Идут рядом выше текста.
В моей доке на сайте написано, как искать.

Код:
Ptr = Offset and 0x3FFF + 0x4000

Например,

Код:
Ptr = 0x11CBB (THERE IS NO ONE) and 03FFF + 0x4000 = 0x5CBB

Свопим значение - BB5C и идёт по адресу 0x11CAF.
Руками быстрее перебить, чем плагин писать к Круптару. Да заменить байты длины строк, ну и координаты выровнять. Здесь первая строка в абзаце вида YZXL[Text], а следующие строки в этом же абзаце XL[Text] ----- где X- смещение строки по горизонтали, Y - смещение строки по вертикале, а Z - количество строк в абзаце и L - длина строки.
Иногда в конце абзацев встречается некий байт (например, 06). За то он отвечает пока непонятно. При его изменениях ничего не происходит.
Абзацы разные бывают и не всегда все служебные байты идут.
Например,

Код:
010004030AA YEAR HAS
020CPASSED SINCE
020CSHREDDER WAS
020CDEFEATED....06
1 строка - смещение всего абзаца по вертикале 01, количество строк в абзаце - 04, смещение этой строки по горизонтали - 03, длина этой строки - 0A/
2, 3, 4 строки - смещение строки по горизонтали 02, количество символов в строке - 0С. То есть эти строки одинаковые по длине и на одном уровне по абсциссе.
06 - тот самый непонятный байт в конце абзаца.

lupus, андерстенд?
Стопбайтов нет, так как все длины прописаны в байтах. Сколько написано, столько процессор и будет читать.
P, S, Попробую, конечно, что-нибудь придумать. Мне даже интересно стало на дельфях самому плагин написать. Хотя вряд ли у меня это получится.  :)
P. P. S. Кому делать нечего, может написать скриптёр) Но и руками всё быстро перебить можно при желании.

Отредактировано Mefistotel (2013-06-26 13:23:47)

11

Да ну ещё мучаться плагин писать. Я даже тексты под 200кБ правлю вручную - это нетрудно! Или ставлю везде одинаковое число - 20 символов, а потом просто пробелами дополняю. Смотря как игра позволит - можно выкрутиться с меньшими потерями.

12

Ну ты то вообще рукастый волшебник. ;)

13

lupus!? :)

14

Ага, бду руками перебивать, пока чуть отложил проект, занят кое-чем другим))

15

Lupus, когда твой сайт оживёт?

16

Сайт жив, там что-то с базой ребята крутят. Форум работает.


Вы здесь » Chief-NET » Базовый хакинг » TNMT III - Radical Rescue [GB]