ChronoMonochrome / TLoH_localization

The Legend of Heroes: Trails of Cold Steel localization scripts
GNU General Public License v2.0
6 stars 3 forks source link

How about Tokyo Xanadu eX+ .tbl and .dat? #2

Open makc-ar opened 6 years ago

makc-ar commented 6 years ago

Game: http://store.steampowered.com/app/587260/Tokyo_Xanadu_eX Example files: http://zenhax.com/download/file.php?id=3616

ChronoMonochrome commented 6 years ago

These scripts weren't originally coded for anything but the subj game, though it's probably should be possible to use it for another games (with a minimal changes) as long as they share the same formats.

makc-ar commented 6 years ago

Do you speak Russian?

ChronoMonochrome commented 6 years ago

@makc-ar, да, я русский. Было ощущение, что вы тоже русскоязычный, но раз уж начали диалог на английском, на нем и ответил.

makc-ar commented 6 years ago

Виктор, а как добавить в шрифты .itf https://mega.nz/#!lCAS0IoB!qODpn8xTA4EUBqF28LpNKBcBh_qVR99nHMiMQmB70r8 кириллицу? Я до перепаковки текстур добрался, которые находятся в папке data\asset\D3D11_us*.pkg;.phyre, а вот с шрифтами data\fonts\.itf проблема.

ChronoMonochrome commented 6 years ago

@makc-ar, в моем случае все оказалось проще. Я уже и не помню, но то ли в японской, то ли в английской версии уже изначально была встроена кириллица. Посмотрите, может и у вас будет также. Единственный нюанс, который нужно учитывать, что в англоязычной версии файлов *.tbl используется кодировка utf-8, а японской - Shift-JIS. Здесь проблема работы с разными кодировками решена достаточно тупым образом: https://github.com/ChronoMonochrome/TLoH_localization/blob/master/translate.py#L37

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

makc-ar commented 6 years ago

Я решил перепаковать оригинальный файл data\scripts\scena\dat_us\t5700.dat https://yadi.sk/d/pUQ-HDJe3QbHsu, где находится первый диалог #E0#M0I-It's no use! We can't even scratch them!, а теперь игра у меня крашится что-то. Сможешь посмотреть в чём проблема? Распаковывал ключом dat_to_xml, а паковал xml_to_dat.

ChronoMonochrome commented 6 years ago

@makc-ar, посмотрю на досуге. Дважды перекодированный файл (dat -> xml -> dat, при отсутствии других изменений) не совпадает с исходным, где-то есть неконсистентность в алгоритме.

UPD. Действительно, был косяк в парсере *.dat, после его рефакторинга. Проверьте сейчас, должно работать.

makc-ar commented 6 years ago

Перепаковал оригинальный и игра его принимает, а с малейшими изменениями не хочет, я изменял одну строчку диалога только.

ChronoMonochrome commented 6 years ago

Обратите внимание на наличие специальных символов в строке. Если в диалоге были специальные форматирующие последовательности (вроде тех, что начинаются с "#"), то они должны быть и в модифицированном файле. Поэкспериментируйте с тем, что именно меняете - попробуйте сохранить исходную длину изменяемой строки, использовать латиницу вместо кириллицы, возможно проблема проявит в чем-то из этого. UPD. и да, есть еще специальные поля, которые менять вообще чревато вылетом игры, вроде < Entry>move_Obj_Tank04< /Entry> < Entry>NODE_SHOT< /Entry> и т.п.

p.s. некоторый бинарный "мусор" парсер воспринимает как текст, и с этим ничего сделать нельзя, сохранив универсальность парсера.

makc-ar commented 6 years ago

Хм... Изменяю диалог:

#E0#M0I-It's no use! We can't even scratch them!
на
#E0#M0Это бесполезно! Мы не можем нанести им урон!

А теперь игра пропускает первоначальный ролик, а если заменить строчку на #E0#M0Я... Это бесполезно! Мы не можем нанести им урон! то игра вылетает перед диалогом.

ChronoMonochrome commented 6 years ago

@makc-ar, бывали подобные случаи у меня с The Legend of Heroes. Я не совсем разобрался, как игра отличает конец форматирующей последовательности от текста. Иногда помогало добавление пробела после такой последовательности, в противном случае текст отображался криво. Как приду домой, гляну.

UPD. Попробуйте еще раз. Скорее всего были проблемы с кодировкой, т.к. я работал с файлами японской версии с кодировкой shift-jis по умолчанию. Поменял кодировку по умолчанию на utf-8.

makc-ar commented 6 years ago

Если делать не длинные предложения, то игра не крашится и кушает кириллицу, а вот с кернингом в шрифте беда http://s018.radikal.ru/i510/1712/e0/e48d2b11e545.png. Так или иначе надо как-то разбирать формат шрифтов.

ChronoMonochrome commented 6 years ago

Скиньте шрифты, просмотрю. У меня под рукой сейчас нет файлов игры.

makc-ar commented 6 years ago

http://zenhax.com/download/file.php?id=3126

makc-ar commented 6 years ago

Привет! Для второй части The Legend of Heroes Trails of Cold Steel II .dat и .tbl сможешь добавить поддержку https://www24.zippyshare.com/v/x6WJ4NDG/file.html?

ChronoMonochrome commented 6 years ago

@makc-ar, привет. Поддержка этой части должна быть "из коробки", т.к. формат файлов такой же. Плюс я на днях делал исправления для некоторых файлов.

makc-ar commented 6 years ago

Ага. с новой версией работает. А для PSVita сможешь добавить поддержку? Вот файлы из трёх игр https://www119.zippyshare.com/v/ds6nAEIP/file.html

ChronoMonochrome commented 6 years ago

@makc-ar, отправил некоторые изменения, теперь должно и на Vita версии нормально отрабатывать. Пользуясь случаем, спрошу, насколько я помню, на форуме ZoG нашли способ редачить itf шрифты. Если вы в курсе, как это делать, выложите пожалуйста, скрипты, необходимые для этого, в общий доступ. Тут уже кто-то спрашивал насчет ITF, мб кому-то еще поможет.

makc-ar commented 6 years ago

Спасибо огромное! Я сам в поиске этого решения для шрифтов, т.к. это единственная бяка сейчас на этом движке. Тот пацан не идёт на контакт, который скрин сделал. Вот https://www47.zippyshare.com/v/jiCZsGrC/file.html собрал их с разных игр их для анализа.

makc-ar commented 6 years ago

За переносы ещё хотел спросить, если оригиналы такие https://a.radikal.ru/a16/1805/a5/74f0f7222ccb.jpg , а на импорте будут такими https://b.radikal.ru/b14/1805/46/ef9e86259bd8.jpg?

ChronoMonochrome commented 6 years ago

@makc-ar, возможно, я не проверял.

marcussacana commented 4 years ago

So, after speak in russian, there are any tool to translate the xanadu?

ChronoMonochrome commented 4 years ago

@marcussacana,

There's an alternative translation tool now is available:

https://translate.google.com/translate?sl=ru&tl=en&u=https%3A%2F%2Fforum.zoneofgames.ru%2Ftopic%2F45176-the-legend-of-heroes-trails-of-cold-steel%2F%3Fdo%3DfindComment%26comment%3D920825

It was found to be a better alternative to this as it correctly supports files with the different characters length.

marcussacana commented 4 years ago

Hmm, thx, TLoH_TranslationBaker.exe, rigth? Well, I just don't get how to use it, I need put the tool inside the .dat directory? give the files in the command line? or he extract the file automatically? well, whatever, I can test everything

ChronoMonochrome commented 4 years ago

@marcussacana

The author mentions in the thread that in order to use this tool, you still need to know the layout of .dat files. Because the app doesn't use any external files (from my understanding, the .dat files are built into the exe file), you might need the app sources in order to work with that. Might be an idea to contact with the author of that app, though.