Системный шрифт PSP
Ковырнул тут на досуге игру. Задался интересным вопросом.
Суть такая. Игра использует системный шрифт ltn3.pgf и ltn5.pgf (точнее две разных игры.) Есть ли возможность заменить этот шрифт через плагин. (не трогая flash0)? |
lis5131,
ну да, можно патчить в оперативке. Но много проще, как по мне, просто перехексить номер. |
Цитата:
Про вариант перехексить номер - где это искать? И про второй вариант как заменить в памяти? |
Цитата:
Цитата:
|
Цитата:
|
lis5131,
flash0 содержит шрифты: Код:
jpn0.pgf А можно патчить виртуально при помощи дополнительного модуля, но это для ТРУЪ, кто силён в MIPS-е, т.к. нужно патчить не строку в датаспейсе, а указатель в кодоспейсе. Да и не целесообразно для твоей цели, не будешь же ты барахло грузить вместе с игрой. Поэтому изменяй путь до файла внаглую и всё. Шрифты можешь грузить свои как из flash0, так и с флешки (во flash0 они отличаются только языковым набором). Путь к флешке: "ms0:/" (например "ms0:/lol.pgf"). Главное не лезь за размеры существующей строки, если же место осталось - забей нулями лишнюю часть. |
Всё не та просто, тупо перехексить скорее всего не выйдет, я как-то тоже разбирал игрушку, в бинарниках ничего не нашёл, хотя и декриптовал их. Скорее всего надо дизасмить.
Хотя как знать, может и повезёт. |
Ещё вспомнил, в заброшенном переводе монстрхантера GH положил свой шрифт с собственной таблицей в корень образа и подменил ссылку на него, чтобы не из ф0 читался. Только там тоже тупо перехексить не вышло, емнип он дизасмил бинарник, чтобы найти адреса, но порядок действий я не уточнял, а теперь его днём с огнём не сыщешь :/
|
Сразу возник вопрос что считать запускным файлом
Цитата:
Я в памяти псп нахожу свободно ltn3.pgf и ltn5.pgf и ltn12.pgf http://pix.academ.org/img/2012/12/21...43f692bfaf.jpg А вот в образе нет. Взять например lunar Там все перепаковано - это не важно - гимны нашел текст нашел, а вот шрифт ltn12.pgf, можно конечно перевести и сделать замену шрифта во флеш0. Но хотелось бы без этого обойтись. |
lis5131,
Код:
\PSP_GAME\SYSDIR\EBOOT.BIN Если не найдёшь строки ms0:/ и с ней не выйдет, то дизасмь, но тут уже надо быть сильным в MIPS-е. Было бы у меня время я бы разобрался со шрифтом. Ищи место загрузки шрифта. Можно искать по указателю (откуда вызывается строка) и считать алгоритм. Мои предположения (как бы сделал я на месте авторов): Скорее всего строка просто собирается из различных частей или ltnX.pgf это всего лишь маркировка. Но мне кажется, что в движке игры где-то прописан путь flash0:/font/, а из игры вызывается функцией с аргументом ltn12.pgf, в движке строка склеивается и получается полный путь. P.S. Измени ltn12.pgf на jpn0.pgf (не забудь зануллить остаток строки) и посмотрим что будет со шрифтом. Если изменится или заглючит, то можно двигать дальше. |
Что за игра хоть, может вот эта: http://ru.playstation.com/psn/games/...-STAR-HARMONY/
Тут скриншотики: http://ru.playstation.com/ws/mp/inte...-STAR-HARMONY/ А то тупо гадать, а может там, а может здесь, никто толком не подскажет, пока сам не посмотрит и не найдёт. |
Да игра Lunar Silver Star Harmony psp, я же написал (lunar)
А какой дизассемблер есть для PSP. У меня есть дизик для PSX и компа. Они разные. Если можно название дизассемблер дайте? |
lis5131, prxtool
|
Прикол
Цитата:
|
lis5131, тогда BOOT.BIN
|
Да. Похоже он упакован. Не чего не найти.
|
lis5131, если начинается с ~PSP, то с 151 оффсета начинается GZ архив. Выдели всё с него и до конца, потом в новый файл, распакуй. Получишь ELF файл, там всё чисто.
|
Цитата:
EBOOT.BIN |
Prxdecryptor в помощь. Я им обычно распаковываю. Если бинарник закриптован ключём, то руками вынуть gzip в хексе не выйдет. Сам глянуть не могу, т.к. сижу с телефона и домой приеду только завтра.
В принципе подойдёт любой софт, который использовали для декрипта и патчинга игр под старый прошивки. Только патчить не нужно :) А потом искать или дизасмить prxtool-ом. |
Да. Действительно только Prxdecryptor пакуется.
Вот файл ELF и дизик его Не какого упоминания про font и флеш0 я не нашел. Только disc0 и ms0. |
Цитата:
Скрин |
|
Цитата:
А ваще, с самого начала вопрос был задан НИАЧЁМ и получил ты ответы такие же НИАЧЁМ. Зачем крутить вокруг да около и гадать на кофейной гуще? Цитата:
Не поленился, скачал и глянул образ. Пока имею следующие данные:
Возможно это то, что ты хотел узнать? Или ты хотел увидеть типа такое меню: [IMG]http://img259.**************/img259/1985/24758470.png[/IMG] [IMG]http://img717.**************/img717/4721/24936179.png[/IMG] |
Цитата:
Цитата:
Код:
03/03/2010 | NFO | Lunar_Silver_Star_Harmony_USA_PSP-PSPKiNG |
Мужики вы читать умеете? Материальную часть игры я знаю. Меня она сейчас не интересует.
Меня интересует шрифт. Игра использует системный шрифт PSP - ltn12.pgf Как сделать так, чтобы игра грузила этот шрифт с карты памяти? |
lis5131, я ж говорю, путь (строка) может клеиться из разных частей. Поищи вторую часть "flash0:/font"
|
lis5131,
учим понятие "матчасть", учим понятие "контекст", учим матчасть в контексте цитаты. |
Тут попутно ковырнул еще пару игр.
В одной нашел такой вот код Цитата:
Может ли шрифт писаться как переменная - то есть так(0x%8.8x\n)? Или я иду в неправильном направлении? |
Цитата:
Скрины сняты из игры "Lunar: Silver Star Harmony" Цитата:
Цитата:
|
ErikPshat, да нет здесь все нормально, но я ищу в игровом тексте шрифт.
|
lis5131, ага, смотрю в текстовиках нету текстов из диалогов субтитров. Тогда где же они?
Чё-та я все ресурсы глянул, правда проверил только по первым смещениям. Вероятно они где-то внутри поглубже. Тут нужно исходить из тех текстов в диалогах и от них выходить на шрифт. Я так понял ты память уже дампил и оттуда увидел указание на ltn12.pgf. Но раз из текстовиков русский шрифт поддерживается, тогда может и из диалогов берётся тот же шрифт. |
В диалогах тоже ltn12.pgf
Родной шрифт http://pix.academ.org/img/2012/12/25...6995f5b8bf.jpg Мой шрифт. http://pix.academ.org/img/2012/12/25...2f01fbaa44.jpg Вставлял первый попавшийся. Весь текст сжат в файлах TEXT000.DAT (GZIP)(UTF-8)(ScriptPack.dat) В данный момент я хочу понять как переписать ссылку на шрифт(на свой шрифт). |
Цитата:
Пробовал смотреть изменения шрифта в настройках при подмене ltn12.pgf? |
Цитата:
http://pix.academ.org/img/2012/12/25...07473bac8e.jpg |
lis5131, попробуй перевести первый диалог и сохранить TEXT000.DAT, как Юникод UTF16LE.
Запакуй обратно в GZIP и вставь на место. Должен тогда текст по-русски нормально выводиться, если действительно один шрифт. Ведь у меня настройки нормально выводятся. |
Цитата:
Но.... Я не это хочу понять. Я хочу понять как переписать путь на шрифт. |
Ну в общем, как и говорил, Юникод UTF16LE работает, но глюкаво )))
Первые диалоги лежат в файле TEXT060.dat. [IMG]http://img843.**************/img843/8752/92847049.png[/IMG] [IMG]http://img259.**************/img259/1763/84274294.png[/IMG] Ещё скрины Тут дело в том, что в скриптах используются служебные символы как раз из русской кодировки Юникод UTF16LE. Например, код переноса строки обычно используют 0А, а в юникоде 0D0A. В данном же случае используется перенос кодом 0104, но это не беда, т.к. этот код не доходит до пределов русской кодировки. Хотя, как раз под этим кодом находится заглавная буква Ё и она обычно находится перед русской раскладной, которая впрочем редко используется. А русская кодировка начинается с буквы А по адресу 1004, далее буква Б - 1104, буква В - 1204 и т.д. Но беда в том, что между диалогами встречаются служебные символы 1104, 1404, 1604, 1704, 1904, 1A04, 2704, 2904, 3E04, 4E04 - это те, которые я заметил. Так что буквы, попадающие на эти коды, просто не будут отрисовываться, а кроме того, будут выполнять предназначенные для них функции. На первом скрине должно быть "Богиня Альфина!", но выводится "гиня Альфина!", потому что буква Б имеет служебный код 1104 и в каких-то сочетаниях следующая маленькая буква о тоже не выводится. lis5131, так что не зря ты ищешь путь к шрифту, потому что в данном случае придётся таскать с собой другой шрифт с другой кодировкой. Но указателей на шрифт я пока не нашёл. Либо заменять служебные буквы другими, например английскими или менять заглавные на маленькие, либо наоборот. |
Если поколупать исходники zeroVshPatcher можно найти редирекции путей. Таким образом можно перенаправить на свой шрифт с лёгкостью. ИМХО самый классный путь и работает 100%.
|
ErikPshat, а чем ты запаковывал назад. Я пробовал 7z(9.20) - у меня повис.
ZeroVSH_Patcher_v0.2.zip у меня есть. Я его пробовал, но он меняет только ltn0.pgf т.е основной шрифт. |
Цитата:
Ну или Ётя??? ::blush:: |
Текущее время: 06:19. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.