Автор Тема: [PSX] Koudelka разбор ресурсов  (Прочитано 3492 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lokryst

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
[PSX] Koudelka разбор ресурсов
« : 11 Март 2013, 17:06:17 »
Здравствуйте.
Хочу поделиться опытом о том, как без знания программирования удалось разобрать некоторые ресурсы игры с PSX.
Название игры - Koudelka. Выдалось свободное время, и я решил вспомнить старую игрушку, которая напрочь висла на 3 диске пиратских переводов (про перевод от Vitan я тогда не знал).
Прошел на английском и захотел посмотреть, что у игры "под капотом".
Скачал игру на английском и испанском (PAL). Начал разбираться с ресурсами в HEX редакторе.
Основные различия между образами оказались в файлах формата .TX4 .FT4 .ITM и .MDT.
Изучение структуры этих файлов неопытным глазом не дало ровным счетом ничего.
Нагуглил Tile Molester и наигравшись с ним, нашел, что если открыть файл FONTS.FT4, перевести программу в режим View\Mode\2-Dimensional, а потом выбрать кодек View\Codec\4bpp linear, revers-order, то начинает угадываться шрифт. Расширив кнопкой Increase Width находим истинный вид.
Как видно в этом файле так же хранятся статусы из режима боя и имена героев для страницы с их характеристиками и куча неиспользованных в игре символов.
Применив те же действия к файлам .TX4 можно найти игровые подсказки в MENUHELP.TX4 и описание всех предметов в MENU\ITEMS\001.TX4.
Подробнее про файл 001.TX4. Каждый ряд пикселей (всего 128 на строку) представляет собой hex последовательность 00 (пусто), 21 (темный+светлый) и дальше по аналогии. Также стоит сказать, что каждая новая секция-предмет начинается с последовательности:
54 58 34 31 30 40 00 00 00 01 80 00 04 AB AB AB
00 00 00 80 33 B6 57 B6 B7 C6 36 B2 16 AE F5 AD
00 00 B4 A1 33 B6 93 A1 72 9D 1A D3 9E E3 FF FF
итого 235 вхождений описаний предметов и всего, что связано с чтением писем в игре.
В файле MENU\ITEMS\ITMTBL.ITM хранится таблица названий предметов открытым текстом.
Идем дальше. Большинство различий нашлось в папке MDT, как оказалось это текст, подпапки - локации, файлы - комнаты.
Как оказалось, последовательности 4*4* описывают одну букву. Попортив их, удалось составить таблицу соответствия (в приложенной картинке с таблицей - NTSC версия шрифта, но смысл это не меняет)
4047 p
4142 !
4143 1
4144 A
4145 Q
4146 a
4147 q
4242 "
4243 2
4244 B
4245 R
4246 b
4247 r
4342 X
4343 3
4344 C
4345 S
4346 c
4347 s
и т.д. по скриншоту
Перенос строки выглядит как последовательность 68 60
Если вместо 4*4* написать вместо первой 4 любую другую цифру, например 3*4*, то выборка пойдет из нижней части шрифта, отданной под японские иероглифы, только не стоит забывать, что иероглифы моноширинные.
Набросав сравнение массивов в Excel (реальные ромхакеры засмеют) текст был извлечен:
\MDT\OMO\OMO00000.MDT
Yes Do you want to pick up the item?
You can't carry any more items.
You can't carry any more of this item.
You got "Bread".
You found "Red Glass Part".
You found "Monastery Map".
\MDT\OMO\OMO70000.MDT
Do you want to pick up the item?
You can't carry any more items.
You can't carry any more of this item.V
You got "Dragon Statue".
You got "Rifle Rounds".
There is an old couple in the room,->Ogden and Bessy Hartman,who say they are the caretakers->of the Nementon Monastery.
Do you want to pick up the item?
You can't carry any more items.
Someone left food on the table.
и т.д.
Что касается перевода голоса в игре, то тут совсем все не просто, на мой взгляд. Там какой-то самописный кодек Digitel Sound Element Y.Hirota,K.Mitome and H.Suzuki,Y.Sato.
Вот собственно и все, что хотелось бы сказать, рисуй, переводи, редактируй. Под все надписи, что мне встретились, есть дополнительное место, магия тоже переводится без проблем (она там вообще открытым текстом, но если меняете название магии, нужно еще в самом исполняемом файле игры изменить на соответствующие, они там тоже открытым текстом, ничего дебажить не надо).
P.S. В японской версии игры ролики на движке снабжены сабами, которые как-то вшиты в файлы самого ролика .MCF.
« Последнее редактирование: 11 Март 2013, 17:20:41 от Lokryst »