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)

lis5131 17.12.2012 15:02

Системный шрифт PSP
 
Ковырнул тут на досуге игру. Задался интересным вопросом.
Суть такая. Игра использует системный шрифт ltn3.pgf и ltn5.pgf (точнее две разных игры.)
Есть ли возможность заменить этот шрифт через плагин. (не трогая flash0)?

Yoti 18.12.2012 14:47

lis5131,
ну да, можно патчить в оперативке. Но много проще, как по мне, просто перехексить номер.

lis5131 20.12.2012 11:20

Цитата:

Сообщение от Yoti (Сообщение 1058961)
lis5131,
ну да, можно патчить в оперативке. Но много проще, как по мне, просто перехексить номер.

А можно поподробней.
Про вариант перехексить номер - где это искать?
И про второй вариант как заменить в памяти?

Yoti 20.12.2012 18:49

Цитата:

Сообщение от lis5131 (Сообщение 1059073)
Про вариант перехексить номер - где это искать?

Так в исполняемом бинарнике, чисто по идее же.

Цитата:

Сообщение от lis5131 (Сообщение 1059073)
И про второй вариант как заменить в памяти?

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

lis5131 20.12.2012 19:19

Цитата:

Сообщение от Yoti (Сообщение 1059134)
Так в исполняемом бинарнике, чисто по идее же.


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

Дело в том что я там не нахожу его - шрифт. Пробовал распаковывать файлы prx psp отказалась распаковывать.

frostegater 21.12.2012 14:46

lis5131,

flash0 содержит шрифты:
Код:

jpn0.pgf
kr0.pgf
ltn0.pgf
ltn1.pgf
ltn2.pgf
ltn3.pgf
ltn4.pgf
ltn5.pgf
ltn6.pgf
ltn7.pgf
ltn8.pgf
ltn9.pgf
ltn10.pgf
ltn11.pgf
ltn12.pgf
ltn13.pgf
ltn14.pgf
ltn15.pgf

Ты можешь похексить, т.е. изменить путь хекс-редактором (WinHex или HEXWorkshop, я лично первое использую).
А можно патчить виртуально при помощи дополнительного модуля, но это для ТРУЪ, кто силён в MIPS-е, т.к. нужно патчить не строку в датаспейсе, а указатель в кодоспейсе. Да и не целесообразно для твоей цели, не будешь же ты барахло грузить вместе с игрой.

Поэтому изменяй путь до файла внаглую и всё. Шрифты можешь грузить свои как из flash0, так и с флешки (во flash0 они отличаются только языковым набором). Путь к флешке: "ms0:/" (например "ms0:/lol.pgf"). Главное не лезь за размеры существующей строки, если же место осталось - забей нулями лишнюю часть.

lupus 21.12.2012 19:11

Всё не та просто, тупо перехексить скорее всего не выйдет, я как-то тоже разбирал игрушку, в бинарниках ничего не нашёл, хотя и декриптовал их. Скорее всего надо дизасмить.
Хотя как знать, может и повезёт.

lupus 21.12.2012 19:52

Ещё вспомнил, в заброшенном переводе монстрхантера GH положил свой шрифт с собственной таблицей в корень образа и подменил ссылку на него, чтобы не из ф0 читался. Только там тоже тупо перехексить не вышло, емнип он дизасмил бинарник, чтобы найти адреса, но порядок действий я не уточнял, а теперь его днём с огнём не сыщешь :/

lis5131 21.12.2012 20:48

Сразу возник вопрос что считать запускным файлом
Цитата:

0000027 , \UMD_DATA.BIN
0000032 , \PSP_GAME\SYSDIR\EBOOT.BIN
0000560 , \PSP_GAME\SYSDIR\UPDATE\PARAM.SFO
0000576 , \PSP_GAME\SYSDIR\UPDATE\EBOOT.BIN
0004672 , \PSP_GAME\SYSDIR\UPDATE\DATA.BIN
0021056 , \PSP_GAME\PARAM.SFO
0021072 , \PSP_GAME\PIC0.PNG
0021104 , \PSP_GAME\PIC1.PNG
0021200 , \PSP_GAME\ICON0.PNG
0021216 , \PSP_GAME\ICON1.PMF
0021456 , \PSP_GAME\SYSDIR\BOOT.BIN
0021984 , \PSP_GAME\USRDIR\resource0.bin
0021984 , \PSP_GAME\USRDIR\resource0.bin - вся игра содержится здесь.

Я в памяти псп нахожу свободно ltn3.pgf и ltn5.pgf и ltn12.pgf

http://pix.academ.org/img/2012/12/21...43f692bfaf.jpg

А вот в образе нет.
Взять например lunar
Там все перепаковано - это не важно - гимны нашел текст нашел, а вот шрифт ltn12.pgf, можно конечно перевести и сделать замену шрифта во флеш0. Но хотелось бы без этого обойтись.

frostegater 22.12.2012 08:13

lis5131,
Код:

\PSP_GAME\SYSDIR\EBOOT.BIN
это исполняемый файл


Если не найдёшь строки ms0:/ и с ней не выйдет, то дизасмь, но тут уже надо быть сильным в MIPS-е. Было бы у меня время я бы разобрался со шрифтом.
Ищи место загрузки шрифта. Можно искать по указателю (откуда вызывается строка) и считать алгоритм.

Мои предположения (как бы сделал я на месте авторов):
Скорее всего строка просто собирается из различных частей или ltnX.pgf это всего лишь маркировка.
Но мне кажется, что в движке игры где-то прописан путь flash0:/font/, а из игры вызывается функцией с аргументом ltn12.pgf, в движке строка склеивается и получается полный путь.

P.S. Измени ltn12.pgf на jpn0.pgf (не забудь зануллить остаток строки) и посмотрим что будет со шрифтом. Если изменится или заглючит, то можно двигать дальше.

ErikPshat 22.12.2012 09:09

Что за игра хоть, может вот эта: http://ru.playstation.com/psn/games/...-STAR-HARMONY/
Тут скриншотики: http://ru.playstation.com/ws/mp/inte...-STAR-HARMONY/

А то тупо гадать, а может там, а может здесь, никто толком не подскажет, пока сам не посмотрит и не найдёт.

lis5131 22.12.2012 10:58

Да игра Lunar Silver Star Harmony psp, я же написал (lunar)
А какой дизассемблер есть для PSP. У меня есть дизик для PSX и компа. Они разные. Если можно название дизассемблер дайте?

frostegater 22.12.2012 11:13

lis5131, prxtool

lis5131 22.12.2012 12:25

Прикол
Цитата:

\PSP_GAME\SYSDIR\EBOOT.BIN
В лунаре. Забит 00.

frostegater 22.12.2012 14:09

lis5131, тогда BOOT.BIN

lis5131 22.12.2012 17:14

Да. Похоже он упакован. Не чего не найти.

frostegater 22.12.2012 17:32

lis5131, если начинается с ~PSP, то с 151 оффсета начинается GZ архив. Выдели всё с него и до конца, потом в новый файл, распакуй. Получишь ELF файл, там всё чисто.

lis5131 22.12.2012 18:43

Цитата:

Сообщение от frostegater (Сообщение 1059341)
lis5131, если начинается с ~PSP, то с 151 оффсета начинается GZ архив. Выдели всё с него и до конца, потом в новый файл, распакуй. Получишь ELF файл, там всё чисто.

Или я тормажу или.... Вообщем не чего не выходит. Начинается на psp

EBOOT.BIN

lupus 22.12.2012 20:27

Prxdecryptor в помощь. Я им обычно распаковываю. Если бинарник закриптован ключём, то руками вынуть gzip в хексе не выйдет. Сам глянуть не могу, т.к. сижу с телефона и домой приеду только завтра.
В принципе подойдёт любой софт, который использовали для декрипта и патчинга игр под старый прошивки. Только патчить не нужно :)
А потом искать или дизасмить prxtool-ом.

lis5131 22.12.2012 21:03

Да. Действительно только Prxdecryptor пакуется.
Вот файл ELF и дизик его
Не какого упоминания про font и флеш0 я не нашел.
Только disc0 и ms0.


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

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