PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Русификация игр и софта для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=190)
-   -   Русификация Super Danganronpa 2: Goodbye Despair (https://www.pspx.ru/forum/showthread.php?t=107812)

JEAN17RUS 11.06.2018 14:28

Русификация Super Danganronpa 2: Goodbye Despair
 
Вложений: 3
Информация
Название: Super Danganronpa 2: Sayonara Zetsubou Gakuen
Оригинальное название:スーパーダンガンロンパ2 さよなら絶望学園
Scene Release:Super_Danganronpa_2_Sayonara_Zetsubou_Gakuen_JPN_PSP-BAHAMUT
Платформа:Sony PlayStation Portable
Дата выхода:26 июля 2016
Жанр:Визуальная новелла
Издатель:Spike Chunsoft
Тип: PSP ISO
Размер (без сжатия):1.57 GB
Регион:Япония (NTSC-J)
Языки:Японский
Disc ID:NPJH-50631 :download: Release: :google: | Dev Version: :mail:
Вложение 14805

ПРОЕКТ ПРЕКРАЩЁН! К сожалению, моих знаний не хватило на перевод игры. Приношу извинения, если вы возлагали на меня надежды :dash:


Недовольный ленью Project Zetsubou относительно перевода игры с японского на английский из-за англ. релиза на Vita, я решил перевести игру самостоятельно (насколько это возможно). Также меня вдохновил бэкпорт Vita-версии на PSP (заменой ресурсов), но и у него есть свои недостатки.

TODO:
  1. Работа над шрифтом
  2. Работа над файлами сценария
  3. Перевод (англ.)
  4. Перевод (рус.)
  5. Сборка образа
  6. Тестирование
Сопутствующий софт:Всё, связанное с этим проектом, размещается на MEGA

1357ivan7531 13.06.2018 16:09

Удачи с переводом, ждем (*・ω・)ノ

JEAN17RUS 25.06.2018 12:59

Начал работу над шрифтом, как оказалось, их в игре целых ДВА, один даже с поддержкой латиницы :good:
Есть предложения, как с этим работать? :crazy:


ErikPshat 25.06.2018 13:34

JEAN17RUS, нарисуйте русский алфавит в том месте, где он и должен начинаться.
Вот, посмотрите с какой позиции он начинаетя и где заканчивается:
(подсказка: русская кодировка символов находится в диапазоне C0 - FF.
Ах да, ещё буквы "Ё" и "ё" находятся по адресам "A8" и "B8" соответственно)
https://www.pspx.ru/forum/attachment....chmentid=10584
Надеюсь вы в курсе откуда эта таблица символов и читали инструкцию, раз тусуетесь в этом разделе.

После того, как вы символы русского алфавита разместите по своим позициям и вернёте картинку символов на своё место, можете писать в тексте игры русскими символами в однобайтовой кодировке cp-1251 и проверять результат.

JEAN17RUS 25.06.2018 13:55

ErikPshat, Каюсь, мануал не читал:blush:
К тому же, тут своя кодировка, не похожая ни на одну японскую (меня также сильно смущает практически повторение символов в начале и конце фонтпака), поэтому единственное "адекватное" решение, которое я вижу - перерисовка катаканы русским алфавитом:crazy:
То есть, игре предлагаются иероглифы, а выводить она будет кириллицу

in1975 25.06.2018 14:03

Цитата:

Сообщение от JEAN17RUS (Сообщение 1145879)
игре предлагаются иероглифы, а выводить она будет кириллицу

Вы знаете что такое коды? Смещение?

JEAN17RUS 25.06.2018 15:07

Цитата:

Сообщение от in1975 (Сообщение 1145882)
Вы знаете что такое коды? Смещение?

Да, имею представление, но если Вы уже присмотрелись ко шрифту, то символы там расположены НЕ по сетке, это меня вводит в ступор, к тому же в архиве шрифта есть ещё два файла, вроде как определяет символы, хотелось бы спросить Вашего мнения ;)

ErikPshat,

ErikPshat 25.06.2018 15:24

Цитата:

Сообщение от JEAN17RUS (Сообщение 1145888)
символы там расположены НЕ по сетке, это меня вводит в ступор, к тому же в архиве шрифта есть ещё два файла, вроде как определяет символы, хотелось бы спросить Вашего мнения

И такое бывает. Значит в игре есть специальные структурные файлы, скорее всего там же, где и находится эта картинка символов. Там прописаны все коды символов и их смещения. Там нужно подменить японские коды на русские и подправить смещения, при необходимости.

Почитайте ещё тему по русификации Принца Персии. Там была такая же ситуация. Я показывал где это находится, вся таблица символов и их позиции.

JEAN17RUS 25.06.2018 16:05

Цитата:

Сообщение от ErikPshat (Сообщение 1145892)
Значит в игре есть специальные структурные файлы

Уж не эти ли часом? (0001.txt и 0003.txt)
GitHub

ErikPshat 25.06.2018 16:26

Вложений: 1
JEAN17RUS, очень похоже. в 0001.txt обрежь всё до позиции 0x0001FFEC там по ходу начинается матрица алфавита.
Смотри в кодировке Unicode

Ну и найди эти символы на своей плашке:
В хексе, если смотреть с самого начала после обрезки, то там начинается с восклицательного знака и дальше английский алфавит.

Вложение 14803

JEAN17RUS 25.06.2018 17:10

То есть, первые два байта - это сам символ, а остальные возможно связаны с расположением символа на плашке?

Yoti 25.06.2018 20:56

Похоже на позиция Х, позиция У, ширина и высота. По два байта каждый.

ErikPshat 26.06.2018 20:41

JEAN17RUS, ну и ещё, на всякий случай, надеюсь ты знаешь, что на PSP используется кодировка символов в Little Endian - это кода сначала идёт младший байт, а затем старший байт, а если по-русски говоря, то код записывается задом наперёд, или справа налево.

Для примера, выше я выкладывал скриншоты шрифтов, и там есть такие примечательные символы "Звёздочки" (Закрашенная и Незакрашенная).
Они в первом столбце имеют код 0526 и 0626, но, т.к. код записан в LE, точнее в UTF-16LE, значит на самом деле это читается задом наперёд как 2605 и 2606, и так далее со всеми остальными кодами символов и позиций X и Y.

Ну и далее смотрим код, для примера этих же двух звёздочек:
★ CE01 1500 1000 1400
☆ E001 1500 1000 1400

Превращаем код в читабельный вид:
★ 01CE 0015 0010 0014
☆ 01E0 0015 0010 0014

Превращаем в десятичный вид:
★ 462 21 16 20
☆ 480 21 16 20

По коду видно, что расстояние между символами постоянно составляет 18 (пикселей или ещё каких условных единиц) и это явно намекает на расстояние по горизонтали X, т.к. следующий код повторяется ровно столько раз, сколько символов в одной строке, а значит расстояние между строками по оси Y у одного ряда символов всегда одинаковое.

Расстояние по вертикали Y всегда получается 21 (0x2A - 0x15 = 15h = 21).
На скриншотах выше видно множество символов с 1500 и следующее множество идёт с 2A00.
А звёздочки на картинке символов находятся во втором ряду, значит 1500 или 21 уже намекает на расстояние до второй строки по верхнему краю.
Соответственно, разница между третьей строкой 0x2A и второй 0x15 так же составляет 0x15 или 21 пиксел.
А цифры 462 и 480 - это расстояние от левого края картинки. Если подсчитать одинаковое расстояние слева по 18 пикселей и учесть, что закрашенная звёздочка находится на 30-ой позиции, то получается, что у неё расстояние должно было быть 540. Но, если присмотреться, то в начале строки есть короткие символы, то где-то так и выходит. Собсно разница в хексе это явно показывает.



Итог 5-ти минут чтения 16-ричного кода:
  • 1-ый столбец - код символа
  • 2-ой столбец - отступ слева по горизонтали X
  • 3-ий столбец - отступ сверху по верситкали Y
  • 4-ый столбец - ширина символа 16 пикселей.
  • 5-ый столбец - высота символа 20 пикселей. (скорее всего, включая прозрачную незарисованную область под заглавные буквы)

Yoti 27.06.2018 11:39

Цитата:

Сообщение от ErikPshat (Сообщение 1145964)
Итог 5-ти минут чтения 16-ричного кода

Что и написано мною выше.

Цитата:

Сообщение от ErikPshat (Сообщение 1145964)
скорее всего, включая прозрачную незарисованную область под заглавные буквы

Может там просто есть фуригана?

Vita Amiko 27.06.2018 15:16

Цитата:

Сообщение от JEAN17RUS (Сообщение 1145959)
Итак, шрифт готов на 25%, осталось нарисовать символы и разобраться с остальными столбцами

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

В общем, проще нарисовать русский алфавит в 3-ем ряду. Причём половину букв можно тупо скопировать из английского алфавита, которые совпадают по начертанию с русским.
Работы в фотошопе на 1 час.

А затем прописать в хексе новые коды русских букв и их позиции с размерами.
И давно можно было уже проверить результат и показать на картинке.

JEAN17RUS 27.06.2018 17:19

Vita Amiko, хекс патчен, буквы рисуются)
Также, если вы имеете опыт работы со шрифтами, то можете изливать критику на изображение ниже:
Нажмите для увеличения

Yoti 27.06.2018 19:50

JEAN17RUS,
Д утеряна (или она обрезана сверху?), буквы прыгают (видно по Г), Ё и Й раздавлены, Ц вообще никуда.

JEAN17RUS 27.06.2018 21:34

Yoti, ошибку увидел, исправил, Ё, Й, Ц придётся перерисовать(
UPD: перерисовал

ErikPshat 28.06.2018 13:45

Вложений: 1
Мне тут показалось странным, что картинка шрифтов в BMP и вдобавок в формате "Индексированные цвета", а не в RGBA с прозрачным слоем.
Стало интересно посмотреть и проверить так ли это.
Скачал по ссылке из шапки оригинальную версию PSP-игры, распаковал data00.cpk и data01.cpk.
В папке jp\font оказался файл font.pak. Ну а так как конвертерами и распаковщиками не увидеть настоящую структуру файлов, решил как обычно исследовать ручным методом. Собсно сразу бросилась в глаза аббревиатура BM неподалёку от начала - что указывает на картинку BMP.

Вложение 14806
  • 1-ые 4 байта выделять не стал, понятно что это волшебная метка формата PAK.
  • 2-ые 4 байта - указывают на смещение первого вложенного файла с позиции 0x00000040 - собсно это и есть картинка BMP.
  • 3-ья четвёрка байт указывает на смещение следующего файла с позиции 0x000800C0 - файл tFpS.
  • 4-ая четвёрка байт указывает на смещение третьего файла с позиции 0x000AA480 - картинка BMP
  • 5-ая четвёрка байт указывает на смещение четвёртого файла с позиции 0x0012A500 - файл tFpS.
  • 6-ая четвёрка байт указывает на смещение пятого файла с позиции 0x0014E500 - это конец )))
Ну и переходим к первому файлу BMP. Тут понятно, что первые 2 байта (424D) - волшебная метка BM формата BMP.
Следующие 4 байта - размер всего файла картинки.
Выделил по размеру всю картинку, вытащил, открыл в фотошопе, действительно картинка в "Индексированных цветах" :), то есть, все слои сведены в один общий.

Цитата:

Сообщение от JEAN17RUS (Сообщение 1146072)
UPD: перерисовал

Только что толку, что ты символы в конце дорисовал? Всё равно в хексе ты не можешь дописать новые символы, а придётся похерить уже имеющиеся. Так что проще было нарисовать в третьей строке, так удобнее, а не бегать от начала к концу.

Ещё раз, обращаю внимание на коды русских символов в однобайтной кодировке cp-1251:

https://www.pspx.ru/forum/attachment....chmentid=10584

При переводе будет проще писать буквы по одному байту, больше влезет в строке. Но нужно проверять, возможно эти коды могут быть залочены под системный код в игре, тогда игра может вдруг вылетать.
Но можно конечно использовать двубайтный код из Юникода, например, как уже имеющиеся изначально буквы Ддп - 0414, 0434, 043F.

Yoti 28.06.2018 15:27

Цитата:

Сообщение от ErikPshat (Сообщение 1146117)
1-ые 4 байта выделять не стал, понятно что это волшебная метка формата PAK.

Больше похоже на количество файлов.


Текущее время: 11:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.