PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Русификация игр и софта для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=190)
-   -   Системный шрифт PSP (https://www.pspx.ru/forum/showthread.php?t=102816)

ErikPshat 08.05.2014 17:24

Вложений: 1
riku.kh3, ну вообщем вот подписанный тем же родным кирком ~SCE и ~PSP либфонт, надеюсь не напортачил и должен работать...
По заголовку и размеру он ничем не отличается от оригинала. Тело же конечно уже другое 0x150 + 0x40, но подписано этим же родным кирком и заголовком.

Ах да, мой шрифт, который я выкладывал в предыдущем архиве, ловит кириллицу в юникоде и в однобайте. Так что можно использовать как двубайтную кодировку юникода, так и однобайтную win-1251 0xC0 = А.

А ты точно уверен, что шрифт именно jpn0.pgf? А то вдруг там какой-нибудь ltn12.pgf... как в Лунаре.

В общем шрифт должен подхватываться из папки disc0:/PSP_GAME/USRDIR/X9DULE/. Название самого шрифта не указывается в пути, его даже не видно при дампе памяти, он как-то странно там отбирается по непонятному механизму, но в дампе sceFont_Library виден шрифт kr0.pgf

Код:

AsiaNHH(512Johab).tin...........................................kr0.pgf.f

riku.kh3 08.05.2014 17:47

Цитата:

Сообщение от ErikPshat (Сообщение 1086838)
riku.kh3, ну вообщем вот подписанный тем же родным кирком ~SCE и ~PSP либфонт, надеюсь не напортачил и должен работать...
По заголовку и размеру он ничем не отличается от оригинала. Тело же конечно уже другое 0x150 + 0x40, но подписано этим же родным кирком и заголовком.

Ах да, мой шрифт, который я выкладывал в предыдущем архиве, ловит кириллицу в юникоде и в однобайте. Так что можно использовать как двубайтную кодировку юникода, так и однобайтную win-1251 0xC0 = А.

А ты точно уверен, что шрифт именно jpn0.pgf? А то вдруг там какой-нибудь ltn12.pgf... как в Лунаре.

В общем шрифт должен подхватываться из папки disc0:/PSP_GAME/USRDIR/X9DULE/. Название самого шрифта не указывается в пути, его даже не видно при дампе памяти, он как-то странно там отбирается по непонятному механизму, но в дампе sceFont_Library виден шрифт kr0.pgf

Код:

AsiaNHH(512Johab).tin...........................................kr0.pgf.f

В эмуляторе flash0 папочка с программой лежит и там шрифты, которые на PSP используются хранятся. Если в ней подменить jpn0.pgf, то соответственно всё тут же меняется.. да и как он по-другому может называться просто не представляю :scratch_one-s_head: kr0.pgf это что-то корейское, смею предположить.

ErikPshat, тебя не затруднит всё-таки проверить на реальной PSP модифицированный libfont? Неужели железу PSP пофиг, что путь к disc0:/ в мод. библе записан прямо тупо так в открытом виде, а не как до этого? :scratch_one-s_head:

ErikPshat 08.05.2014 18:37

Цитата:

Сообщение от riku.kh3 (Сообщение 1086839)
ErikPshat, тебя не затруднит всё-таки проверить на реальной PSP модифицированный libfont? Неужели железу PSP пофиг, что путь к disc0:/ в мод. библе записан прямо тупо так в открытом виде, а не как до этого? :scratch_one-s_head:

Щас попробую всё-таки запилить в образ мод.либфонт и проверить.
Ну а путь складывается по тому адресу в памяти flash0:/font/. В оригинале то место забито нулями специально для этих нужд. А т.к. по тому адресу я уже прописал новый путь, то он уже не затирается. Это можно проверить сдампив память с модифицированным либфонтом.

riku.kh3 08.05.2014 19:02

ErikPshat, тогда это объясняет, почему на эмуляторе путь переписывается назад на flash0, и все это китайское мамбо джамбо с написанием своего модуля :D

ErikPshat 08.05.2014 19:46

Вложений: 5
riku.kh3, ну собсно проверил, всё работает. Подписанный и зашифрованный кастомный модуль отлично отрабатывает на PSP.
Только я шрифт туда подкинул свой Times New Roman сконверченный в ltn0.pgf - переименованный в jpn0.pgf.
Соответственно игра у меня японская и вместо шрифта я вижу прочерки, отображаются только английские слова и спец-символы типа - !?"

Вложение 10017 Вложение 10018

Снял дамп памяти, там то же всё чётко. Путь в памяти отображается в нужном месте и не затирается:

Сравнение оригинального дампа и модифицированного зашифрованного модуля libfont
Дамп памяти оригинального libfont:

Вложение 10019

Дамп памяти модифицированного libfont:

Вложение 10020

Ну и во вложении доказательства дампа памяти.

ErikPshat 08.05.2014 20:02

Цитата:

Сообщение от riku.kh3 (Сообщение 1086841)
ErikPshat, тогда это объясняет, почему на эмуляторе путь переписывается назад на flash0, и все это китайское мамбо джамбо с написанием своего модуля :D

Кстати, я не понял, почему вдруг эмулятор использует шрифты из flash0, но так не должно быть. На эмуле так же должен либфонт отрабатывать и так же должен брать шрифт из образа.
Попробуй убрать из эмуля шрифт jpn0.pgf из папки совсем.

А может ты новый модуль не сохранил в образе игры? Или может шрифт туда забыл подкинуть?

riku.kh3 08.05.2014 20:49

Вложений: 1
Цитата:

Сообщение от ErikPshat (Сообщение 1086843)
Кстати, я не понял, почему вдруг эмулятор использует шрифты из flash0, но так не должно быть. На эмуле так же должен либфонт отрабатывать и так же должен брать шрифт из образа.
Попробуй убрать из эмуля шрифт jpn0.pgf из папки совсем.

А может ты новый модуль не сохранил в образе игры? Или может шрифт туда забыл подкинуть?

Нет, собрал я всё правильно (несколько раз пробовал, ошибки быть не может). Видимо, эмулятор по-другому немного работает, и ему пофиг что там уже записано в памяти - поверх затирает.

Подписанный:Неподписанный:Что странно, китайское мамбо джамбо работает на одном из эмуляторов (ppsspp):
Но не работает на втором (jpcsp). Как на реальной PSP - тоже не знаю. :scratch_one-s_head:

ErikPshat 08.05.2014 21:03

riku.kh3, эмм, это китайское мамбо действительно чудо из чудес :D
Как они так умудрились сконвертировать такую библу, там я вижу после концовки файла идёт ещё куча мусора, больше, чем сам продуктивный код.
Выбрось эту шнягу подальше.

И не понятно, что это у тебя на первых скринах и всех остальных пытается грузиться flash0:/font/zh_gb.pgf
Этого шрифта нет ни в игре, нигде. Либо ты сам где-то подмешал это китайское чудо с моим модулем вперемешку.

riku.kh3 08.05.2014 21:09

ErikPshat, не, это эмулятор для своих системных нужд пытается и несуществующий шрифт добавить (там эмитация окошек для сейвов/загрузок где этот шрифт может использоваться, ввода текста и т.п.). Он вообще все существующие шрифты пытается грузить во всех играх.. :scratch_one-s_head: В образе там все чистенько - только твой libfont.prx заменен и jpn0.pgf рядышком с ним.

ErikPshat 08.05.2014 21:28

riku.kh3, я вижу у китайцев такой хитрый путь: ms0:/iso/open_ms0 :xDD:
Они наверное подумали, что путь сработает и откроется ms0 :D

Ага, и откуда они догадались такую строчку воткнуть ms0:/ISO/zh_gb.pgf

oldfont.prx - это вообще либа не от этой игры. То есть, как я понял, либа libfont.prx компилится только для одной игры, под которую она предназначена, на другой игре по идее она работать не должна. Это потому, что в самой либе прописано название игры, зашифрованное в заголовке ~SCE. В этом oldfont прописан заголовок от другой игры:
Код:

\yr=`c`0~{tx...22222GIDD/
А у твоей игры заголовок:
Код:

\yr=`c`0~{tx...22222JFDD/
Просто введи в поиске декриптованного модуля значение 22222JFDD и ты выйдешь на этот код.

ErikPshat 08.05.2014 21:36

Вложений: 1
Вот он ~SCE заголовок зашифрованного файла и он же прописан внутри самого файла, если его декриптовать.

Вложение 10023

Но у китайцев внутри файлов я вижу другой заголовок от какой-то другой игры. По идее такой файл не должен работать на чужой игре.

riku.kh3 08.05.2014 21:49

Все, понятно почему на эмуляторах с правильным libfont.prx шрифт не грузится откуда положено. :) Они попросту не используют libfont.prx вообще, вместо него там в самом эмуляторе грузится рутина. Попробовал заменить libfont.prx на пустышку забитую мусором, и оба эмулятора как ни в чем не бывало запустили игру:

Тут же и ответ на оба поста выше.

ErikPshat 08.05.2014 21:56

riku.kh3, ну на первых скринах я вижу, что вроде бы грузится disc0:/PSP_GAME/USRDIR/X9DULE/libfont.prx
Там кругом видно, что путь отрабатывает.
И шрифт должен браться оттуда же disc0:/PSP_GAME/USRDIR/X9DULE/jpn0.pgf

Ты посмотри внимательнее в логах, может наряду с другими шрифтами он грузится где-то в конце?

riku.kh3 08.05.2014 22:13

ErikPshat, на первых то скринах да, видно что 'вроде бы' грузится, но на самом деле эмуль определяет "что" это такое пытается грузится и скипает, перенаправляя на свой код рутины по работе со шрифтами. Логи я внимательно все пересмотрел - disc0:/PSP_GAME/USRDIR/X9DULE/jpn0.pgf не грузится 100%. Да и говорю, пустым файлом заменил libfont.prx в игре, а она все так же как ни в чем не бывало работает и шрифт все так же отображается.

То есть грубо говоря даже если libfont.prx и грузится, эмулятор его поверх своим кодом все-равно перезаписывает. Как то так, в общем. :scratch_one-s_head:

ErikPshat 08.05.2014 22:17

riku.kh3, ну ладно, тогда значит понятно, что нифига не понятно, почему эмуляторы подсовывают свои шрифты :D
В общем думаю проблему мы решили, ведь игру планируется запускать на PSP. И в общем всё на ней работает, как положено.

Ну а проблемы со шрифтами при сохранении - это уже из другой оперы.

riku.kh3 08.05.2014 22:25

Цитата:

Сообщение от ErikPshat (Сообщение 1086854)
riku.kh3, ну ладно, тогда значит понятно, что нифига не понятно, почему эмуляторы подсовывают свои шрифты :D
В общем думаю проблему мы решили, ведь игру планируется запускать на PSP. И в общем всё на ней работает, как положено.

Да, тут все отлично.

Цитата:

Сообщение от ErikPshat (Сообщение 1086854)
Ну а проблемы со шрифтами при сохранении - это уже из другой оперы.

Проблем со шрифтами при сохранении не будет, если суметь существующие буковки по ширине уменьшать научиться. Для этого надо скорее всего сам pgf ковырять. :scratch_one-s_head: А так да, если колхозным путем пойти и перерисовать буквы перекидав их местами и вместо одной из них сделать пробел, то при сохранении будет каша отображаться.. ну и бонусом перенос слов, скорее всего, перестанет работать.

ErikPshat 08.05.2014 22:51

riku.kh3, вот посмотри, мне так кажется, что английский шрифт нормально отображается по ширине и не заметно двойных пробелов:


А у тебя почему-то диалоги отображаются широкими с большим пробелом:


riku.kh3 08.05.2014 23:02

ErikPshat, надпись 'Converted Edition' у тебя на скрине в обычной ascii кодировке с нормальным $20 пробелом, текст для таких системных сообщений берется из самого EBOOT.BIN.

А на втором скрине текст и пробелы в shiftjis 2-байтовой кодировке:
Код:

Vot takaya vot kodirovka
В самой игре если использовать в диалогах ascii с обычными $20 пробелами то игра будет крэшится при попытке сохраниться. То есть в идеале бы сократить ширину shiftjis буковок и пробела, чтобы они выглядели как обычно. :scratch_one-s_head:

ErikPshat 08.05.2014 23:09

riku.kh3, а, ну да, тупанул я мальца.

Получается нужно как-то Shift-JIS сконвертировать из TTF.
А в TTF можно подкорректировать пробел покороче с помощью редактора шрифтов, дома на компе валяется такой.
Это у Японцев в этой кодировке всегда расстояния такие, чтобы иероглифы не сливались, ну и другие символы языков так же отрисованы.

riku.kh3 08.05.2014 23:20

ErikPshat, с самим TTF я как только не игрался.. ширину уменьшать пробовал, в самой windows и любыми программами где этот шрифт используется как положено буковки уже становятся и shiftjis пробел в два раза меньше как надо.. но после конвертирования в pgf в самой игре совсем все не так.. Пробел как большим был так большим и остается, из ascii буквы если все глифы удалить - интервала вообще она перестает создавать.. а если из shiftjis символа все глифы удалить - в точности все до наоборот.. :unknw:

riku.kh3 добавил 08.05.2014 в 23:20
Цитата:

Сообщение от ErikPshat (Сообщение 1086859)
Это у Японцев в этой кодировке всегда расстояния такие, чтобы иероглифы не сливались, ну и другие символы языков так же отрисованы.

Скрины которые я выкладывал с русским текстом все в том же shiftjis'е и там никаких интервалов нет. То есть не статическая эта ширина, и должна быть где-то таблица ширины для каждого символа.

http://www.seiai.ed.jp/sys/text/java...jis_table.html


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

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