форум группы Chief-Net » » Базовый хакинг » TNMT III - Radical Rescue [GB]

Страниц (1): [1]
 

1. lupus - 18 Января, 2016 - 08:09:10 - перейти к сообщению

В поисках игры про черепах, воспоминания о которой у меня сохранились из детства, я наткнулся на TNMT III - Radical Rescue для GB.
Что меня удивило и заинтересовало - в отличие от других игр серии, эта абсолютно не вписывается в концепцию бит-эм-апов. Это скорее метроидвания в сеттинге черепах. Начинаем мы одним героем, постепенно освобождая остальных.
Ещё хотел бы отметить, что каждый из персонажей имеет собственный уникальный навык, без которого просто невозможно пройти некоторые места, ну и рпг элементы - ключи, лечилки, "прокачка" здоровья.
Прошел игру на одном дыхании (правда пользовался сейв стейтами) и был поражён, тем, что в 1993 году была выпущена такая игра.
Теперь по теме: захотел перевести и первым делом полез искать шрифт. Нашёл. Но! Символы идут не в алфавитном порядке. Поганил - шрифт тот, что надо, да ещё и есть место (иероглифы) для недостающих букв кириллицы. Как составить к нему таблицу я не представляю :/ Соответственно и текст искать не могу. Не говоря обо всём остальном.
Прошу технической помощи.
Ром, традиционно, US региона (брал на эму-ленде), 1bpp, оффсет 0x18041.
2. Guyver - 18 Января, 2016 - 08:09:37 - перейти к сообщению
Guyver
Такие вещи очень легко искать в эмуляторе bgb. Загрузил ром, дошёл до нужного места, выбрал:

Other -> Vram Viever

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



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



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

П.С. Этот пример подойдёт и для той, второй игры, о Флинстоунах. Так что я там писать не буду...
3. Guyver - 18 Января, 2016 - 08:09:59 - перейти к сообщению
Guyver
Только для Флинстоунов не так очевидно - там алфавит-то по порядку, а таблица - нет. Но каждую букву можно узнать, какой у неё код. По вышеописанному способу. И потом уже в хексе можно увидеть по составленной таблице что-то осмысленное...
4. lupus - 18 Января, 2016 - 08:10:19 - перейти к сообщению
lupus
Спасибо, с таблицей вроде разобрался, текст нашёл. Заметил такую особенность: в начале каждой строки стоит байт, в котором указано количество символов в строке. Это как-то в круптаре можно обрабатывать?
5. Guyver - 18 Января, 2016 - 08:10:57 - перейти к сообщению
Guyver
Это к Джинну. Я обычно вручную всё обрабатываю. Тем более, текста у тебя мало.
Но это очень распространнный пример, к нему должен быть плагин. Или даже в круптар это встроено. К джинну обратись...
6. Mefistotel - 18 Января, 2016 - 08:11:20 - перейти к сообщению
Mefistotel
Подключаются как обычные строки, но в проекте нужно выбрать плагин ShortString.kpl.
После этого, первые байт не будут показываться в тексте, и программа сама будет пересчитывать длины строк.
Сам если не разберёшься, то пиши - помогу сделать проект.
7. lupus - 18 Января, 2016 - 08:11:47 - перейти к сообщению
lupus
Цитата:
Подключаются как обычные строки, но в проекте нужно выбрать плагин ShortString.kpl.
После этого, первые байт не будут показываться в тексте, и программа сама будет пересчитывать длины строк.
Сам если не разберёшься, то пиши - помогу сделать проект.

Буду весьма признателен, если поможешь с проектом, т.к. я толком так и не разобрался в поинтерах GB.
По ссылке архив с всеми необходимыми файлами (оригинальный ром, ром с русским шрифтом и немного поправленной графикой, таблицы en/ru, скрипт с переводом, вытянутый poreporevod'ом.) Скрипт для ознакомления, может какие замечания будут. Пока не перевёл имена некоторых боссов и несколько должностей в титрах.
Да ещё заметил, что в первом блоке (заставка с копирайтами и т.п.) в тексте встречаются какие-то спец. байты)
https://dl.dropbox.com/u/57975554/GB/tmntIII.7z
8. Mefistotel - 18 Января, 2016 - 08:12:13 - перейти к сообщению
Mefistotel
Ок. На выходных посмотрю.
9. lupus - 18 Января, 2016 - 08:12:40 - перейти к сообщению
lupus
Точнее в последнем блоке
10. Mefistotel - 18 Января, 2016 - 08:13:13 - перейти к сообщению
Mefistotel
Мля, гемора столько из-за 5 кб чистого текста.
Все указатели на абзацы с текстом стандартные для геймбоя. Идут рядом выше текста.
В моей доке на сайте написано, как искать.
CODE:
Ptr = Offset and 0x3FFF + 0x4000

Например,
CODE:
Ptr = 0x11CBB (THERE IS NO ONE) and 03FFF + 0x4000 = 0x5CBB

Свопим значение - BB5C и идёт по адресу 0x11CAF.
Руками быстрее перебить, чем плагин писать к Круптару. Да заменить байты длины строк, ну и координаты выровнять. Здесь первая строка в абзаце вида YZXL[Text], а следующие строки в этом же абзаце XL[Text] ----- где X- смещение строки по горизонтали, Y - смещение строки по вертикале, а Z - количество строк в абзаце и L - длина строки.
Иногда в конце абзацев встречается некий байт (например, 06). За то он отвечает пока непонятно. При его изменениях ничего не происходит.
Абзацы разные бывают и не всегда все служебные байты идут.
Например,
CODE:
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. Кому делать нечего, может написать скриптёр) Но и руками всё быстро перебить можно при желании.
11. Guyver - 18 Января, 2016 - 08:14:16 - перейти к сообщению
Guyver
Да ну ещё мучаться плагин писать. Я даже тексты под 200кБ правлю вручную - это нетрудно! Или ставлю везде одинаковое число - 20 символов, а потом просто пробелами дополняю. Смотря как игра позволит - можно выкрутиться с меньшими потерями.
12. Mefistotel - 18 Января, 2016 - 08:14:38 - перейти к сообщению
Mefistotel
Ну ты то вообще рукастый волшебник. Подмигивание
13. Mefistotel - 18 Января, 2016 - 08:17:06 - перейти к сообщению
Mefistotel
lupus!? Улыбка
14. lupus - 18 Января, 2016 - 08:17:31 - перейти к сообщению
lupus
Ага, бду руками перебивать, пока чуть отложил проект, занят кое-чем другим))
15. greengh0st - 18 Января, 2016 - 08:17:57 - перейти к сообщению
greengh0st
Lupus, когда твой сайт оживёт?
16. lupus - 18 Января, 2016 - 08:18:26 - перейти к сообщению
lupus
Сайт жив, там что-то с базой ребята крутят. Форум работает.
17. Mefistotel - 18 Января, 2016 - 08:26:28 - перейти к сообщению
lupus, напомни, чем всё закончилось. Улыбка

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®