Суббота | 21.12.2024 |20:56
Приветствую Вас Гость Мира Спайро | RSS
  • Страница 1 из 1
  • 1
Модератор форума: nihonjin, aleksusklim, alteya, Томас  
Перевод Dawn of the Dragon (PS2)
steeldragonСообщение # 1 Суббота, 26.09.2020, 17:14
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Здесь я буду выкладывать материалы, полезные для перевода Dawn of the Dragon на русский, и возможно, займусь самим переводом, как завершу текущий проект.

Пока что готов небольшой патч, переносящий текст официального русского перевода на американскую NTSC версию.

Скачать

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

------
[UPD: 30/09/2020]
Извлечён текст официального русского перевода и сопоставлен с английским.
Можно посмотреть здесь.
Качество перевода "запредельное". Только подумать, кто-то за это деньги получал...
------
[UPD: 09/10/2020]
Некоторые э-эксперименты над текстурами:
Авалар до
Авалар после
------

Полезные программы:
Magic.TXD

Полезные сайты:
PS23DFormat (архив) - немного информации об игровых ресурсах.
Obscure Gamers - советы, как правильно перепаковывать .iso

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


Сообщение отредактировал steeldragon - Вторник, 27.10.2020, 12:27
 
steeldragonСообщение # 2 Суббота, 10.10.2020, 18:39
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Несколько полезных скриптов для работы с ресурсами Dawn of the Dragon.
Скачать

Для их запуска нужен Python 3.

Описание более-менее завершённых:
getLocStr.py - вытаскивает тексты из *GLC.KP2 файлов.
Запускается так: python3 getLocStr.py 00GLC.KP2 74 text.txt
...где 00GLC.KP2 - файл локализации, 74 - смещение, по которому начинается текст, text.txt - путь, куда сохранять файл с текстом.
Пока что опробован на 00GLC.KP2 от американской версии (смещение 74) и на 01GLC.KP2 русской (смещение 42)

iso-insert.py - вставляет файл в .iso образ диска. Файл записывается без проверок, так что если его размер больше оригинала, повреждаются данные соседних файлов в .iso.
Запускается так: python3 iso-insert.py test.iso 00LLC000.KP2 5575 263
...где test.iso - путь до образа диска, 00LLC000.KP2 - путь до записываемого файла, 5575 - LBA самого файла, 263 - LBA его директории.

iso-unpack.py - распаковывает все файлы из .iso образа в папку cdroot. (также записывает LBA извлечённых файлов в cdx-log.txt)
Запускается так: python3 iso-unpack.py test.iso
...где test.iso - путь до образа диска.

get-txd.py - ищет текстуры в файлах LVL*.KP2.
Запускается так: python3 get-txd.py LVL030.KP2
... где LVL030.KP2 - путь до файла уровня.
Если находит, записывает в файл test.txd, который можно потом открыть с помощью Magic.TXD или TXD Viewer.

Работает так: ищет первые попадающиеся 4 байта "1C 50 53 32", которые присутствуют, судя по всему, в файле любой текстуры.
Затем отнимает от найденного адреса 51 (dec) и получает адрес заголовка .txd со всеми текстурами.
По смещению 4 от начала заголовка - 4 байта, размер всего .txd файла.

Сам .txd, насколько я понимаю, представляет собой собрание кусочков, каждый из которых может содержать jump-адрес до следующего. Magic.TXD судя по всему прекрасно понимает этот формат, так что за дальнейшими подробностями смотрите его исходный код.


Сообщение отредактировал steeldragon - Суббота, 10.10.2020, 18:43
 
steeldragonСообщение # 3 Среда, 14.10.2020, 11:04
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Итак, собственно перевод.
Весь игровой текст хранится в одном *GLC.KP2 файле. На диске файлы вроде 00GLC.KP2, 01GLC.KP2 и т.д. содержат перевод на разные языки. В дальнейшем речь пойдёт только о 00GLC.KP2 американской версии, хотя другие файлы устроены похоже.

Текст хранится... ну допустим, "блоками". Нас пока что интересует только первый блок, содержащий большую часть текста.
Смещение начала текста приходится находить вручную, пока что я не совсем понимаю формат заголовка. В нашем 00GLC.KP2 текст начинается по смещению 74 (dec).

Заголовок, впрочем, содержит вещи, без которых перевод работать не будет.
По смещению 12 находится 4-х байтное значение, указывающее на данные сразу после текста. Там хранится какой-то шрифт, судя по всему не используемый игрой - зачем он тогда нужен?...
Прямо перед текстом (в нашем случае - смещение 70) находится какое-то непонятное значение. Я не понимаю, что оно означает, но если его не увеличить, то если перевод текста будет больше оригинала, игра просто не работает. Пока что заменяю это значению на "FF FF 00 00"

Сам текст первого блока хранится так:
Сначала идёт 4-х байтное значение - размер строки в символах, потом - сама строка.
Сами строки кодированы в utf-16 и null-terminated, так что каждый символ - два байта, а заканчивается строка обязательным "00 00".

Сейчас я считаю, что этот блок текста заканчивается, когда значение размера следующей строки больше 255. (что означает, что мы наткнулись на начало другого блока текста, котороый кодирован несколько иначе).


Сообщение отредактировал steeldragon - Среда, 14.10.2020, 11:05
 
  • Страница 1 из 1
  • 1
Поиск:

Кто нас сегодня посетил

Для добавления необходима авторизация