Сообщение от Xalk07
libfont который универсальный в usrdir, не работает.
|
Он не универсальный. У каждой игры libfont.prx свой.
Сообщение от Xalk07
Eboot.bin ты не трогал.
|
Текст из настроек и системные таблички с сообщениями, как раз в EBOOT.BIN. Я именно так в настройках тестировал вывод русского языка.
Ну вот, пошло поехало, сначала им шрифт выведи наружу. Когда проблема решена, так теперь расскажи как русификацию делать
А потом скажут - переведи нам.
Писать в однобайтовой кодировке cp-1251 не получится, там в бинарнике JIS2USC.BIN идёт таблица перенаправления алфавита, поэтому русская кодировка от A0 по FF полностью игнорируется.
Используется по умолчанию японский шрифт jpn0.pgf и даже независимо от того, что я подменил шрифт с русской раскладкой A0-FF, воспринимается только русская раскладка в UTF-8 в двубайте.
А это значит, что русские фразы в двубайте не поместятся у вас там вместо английского однобайта.
Вам надо будет менять позицию каждого диалога в свободное место вместо других языков, благо их там много, Испанский, Немецкий, Итальянский вроде.
Позицию каждого диалога вы найдёте по его начальному адресу, за вычетом заголовка
A0 (размер заголовка указывается в позиции 0x38 любого ELF-файла).
Вот на этот адрес диалога указывается смещение в таблице смещений в Little Endian, т.е. задом наперёд, например, допустим, диалог начинается с позиции 00082308 - это грязная позиция у вас в хекс-редакторе, отнимаем заголовок ELF-файла
A0 = 82268, т.е. 00082268. Переворачиваем байты в Little Endian, получается 68220800. Вот этот адрес и записан в таблице смещений в конце файла, он находится легко и их может быть несколько, т.е. один диалог может выводиться в нескольких разных местах. Потом подбираем новое место для русского текста в UTF-8, вставляем его туда с длинной сколько угодно, в конце обязательно отделяем хотя бы одним нулевым байтом
00 от следующего диалога, копируем адрес начала позиции и подменяем его в том месте в таблице смещений на новую позицию. Опять же, не забываем отнимать
A0 от позиции в хексе и не забываем переворачивать байти в LE.
Это что касается системных диалогов в игре и в настройках. Надеюсь с переводом текста в игре будет попроще, если там конечно не завязаны все диалоги по таблице смещений, просто пишите в UTF-8. Диалоги в игре я не смотрел.
Вот вам ещё архивчик в помощь:
Splatterhouse RUS.7z