Ковырнул тут на досуге игру. Задался интересным вопросом.
Суть такая. Игра использует системный шрифт ltn3.pgf и ltn5.pgf (точнее две разных игры.)
Есть ли возможность заменить этот шрифт через плагин. (не трогая flash0)?
Более наглядный пример для сравнения сделал. Здесь два скрипта: в обоих изменена только первая фраза, один скрипт крэшится на сейве, другой нет. Длина в байтах у фраз одинаковая.
Ну сдампил оба теста, так же самая история, различий в конце файлов многовато, копаться тяжко.
Размеры всех 4-ёх дампов одинаковы.
Если открыть файлы в текстовом редакторе в кодировке shift-jis, то строка текста читабельна и находится почти в самом конце файлов.
Прикладываю тесты всех 4 дампов, включая японский оригинал.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
riku.kh3, ну так это может так только на эмуляторе. У меня оба эмуля вообще крашатся при попытке запуска любой игры )))
На PSP-1004 у меня не крашатся. Я правда может не так сохраняю, по японски там непонимать.
На этой первой фразе нажимаю потом спускаюсь на 2-ой пункт и нажимаю , там отображается слот сейва и сохраняю на .
Потом на карте памяти появляются в сейвдата 2 папки секьюре и систем.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
На этой первой фразе нажимаю потом спускаюсь на 2-ой пункт и нажимаю , там отображается слот сейва и сохраняю на .
Потом на карте памяти появляются в сейвдата 2 папки секьюре и систем.
Да, все правильно. Тут, когда крэшится, дело до появления окошка со слотом не доходит даже.
Автор порта англофикации просто жаловался на крэши.. и он с реальной PSP точно работал. Говорил что несколько раз с нуля пришлось проект переделывать и вообще от ascii отказаться и особенно 0x20 пробелов. Я был все-таки уверен что мои крэши на эмуляторе это то же самое.
Приложил текст с обычными 0x20 пробелами.
Последний раз редактировалось riku.kh3; 14.05.2014 в 03:01.
riku.kh3, вот сейчас да, на этом скрине при сохранении игра потемнела и потом PSP выключилась. Но перед этим я сохранялся разок с таким же пробелом.
Собсно нормально сохранялось раз 5 в диалогах с коротким пробелом.
Заметил, что крашится на длинных диалогах, где заняты все 3 строчки.
Скрины
P.S. В шрифтах Shift-JIS не удаётся поместить алфавит в 1-байтную кодировку C0-FF. Там жёстко закреплены 2 символа на буквах Ч и ч - символы "Умножить" и "Разделить". Ну алфавит-то перенёсся, за исключением 2-ух букв.
UPDATE Хотя не, 2 символа удалось заменить, так что всё хоккей с однобайтом, ну мало ли, может пригодится.
Попробуй этот шрифт, взял отсюда: http://monafont.sourceforge.net/
Только не пойму, в игре японские символы пропали, хотя они вроде есть ))) но главное проверить пробел Shift-JIS.
Замени пробелы 8140 на 82B0, там я туда перенёс пробел.
Хе-хе, я перекинул все ресурсы из папки ms0:/PSP/SAVEDATA/ULJM05789PAK в образ диска. Теперь карта памяти освободилась, а образ весит 1,958 Гб - это больше, чем UMD-диск
Игра прекрасно работает, правда понадобилось конечно подправить пару путей в EBOOT.BIN и я его уже подписал (во вложении). Болше половины файла ничем не отличается от оригинала, так что никто даже не догадается )))
Содержимое папки ULJM05789PAK нужно закинуть в disc0:/PSP_GAME/USRDIR/X8ULJM/
Думаю так будет удобнее распространять, т.к. отпадает необходимость в 1-ом установочном диске или отдельно со 2-ым диском таскать папку ULJM05789PAK и писать инструкцию, куда её класть.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 14.05.2014 в 09:43.
Хмм, странно, я просто скопировал знак пробела 0х20 вместо буквы 0х82B0. По-видимому в нём есть какая-то инфа, что вместо буквы пробел всё-таки опознаётся и добавляется ещё один пробел автоматом.
Сдампил память - там вместо пробела только код 0x82B0, как и полагалось, но дополнительного пробела нет.
Сообщение от riku.kh3
Другой с 814B (゜) - он по ширине как обычный пробел
Ну вот твой код не определяется, как пробел, буквы идут с прочерком вместо иероглифа. Я думаю, это всего-лишь из-за того, что в скомпилированном шрифте jpn0.pgf почему-то японские символы куда-то пропадают, поэтому вместо них отображается всякая ерунда.
В общем нужно научится компилировать шрифт TTF грамотно и сам PGF. Попробую ещё как-нить зачистить пробел...
А, да, с переносом всё нормально ))) Буквы переносятся и без пробела, хотя посередине слова.
Я уже замучился каждый раз пересобирать образ, чтобы просто поменять в нём шрифт jpn0.pgf и из-за большого размера VOICE.PAK. Этот войспак, если обнулить, то дальше первого диалога игра не идёт.
В общем, чисто для удобства тестов, я вынес VOICE.PAK на карту памяти в папку LITBUS, а потом решил вывести и шрифт jpn0.pgf. Там в либфонте сменил путь на шрифт и в ибуте сменил путь на войспак. Путь к сейвдата оставил на своём месте, чтобы удобно было менять скриптпак. Короче, пути выглядят так:
ms0:/PSP/GAME/LITBUS/VOICE.PAK
ms0:/PSP/GAME/LITBUS/jpn0.pgf
ms0:/PSP/SAVEDATA/ULJM05789PAK/ - ресурсы по стандарту
Собсно после выведения шрифта на карту, необходимость вывода войспака отпала, т.к. после этого пересобирать образ не требовалось каждый раз, но я не стал переделывать ибут, да и вдруг это пригодится в будущем, чтобы тяжелый образ было легче пересобирать.
У меня всё работает, не знаю как будет подхватываться шрифт через эмулятор.
Образ лайт во вложении, если что...
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 15.05.2014 в 00:17.
ErikPshat, попробуй с этим шрифтом. Я там в 814B (゜) потер глифы.
Ну замечательно, пробел короткий и прекрасно смотрится! Как и предполагал, нужно не копировать пробел, а просто затереть глиф. Так и хотел поступить, но решил протестить для начала тупо копирование.
Кстати, отлично скомпилировался у тебя PGF, японские символы не пропали, отображаются в системных сообщениях. У меня после компиляции почему-то они пропадали и были одни прочерки.
Чем компилировал?
При сохранении на этом скрине игра повисла. Так что тут проблема не из-за пробела 814B. Я склонен предполагать, что это из-за длины текста, ведь на японском в таком тексте количество символов меньше наверное.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
ErikPshat, если имеешь в виду перерисовать их в другую, безопасную, зону то тут старая проблема о которой я на двух страницах ранее писал.. Ширину никак не изменить! С TTF играться бесполезно (для псевдо-пробела я просто нашел один подходящей ширины). То есть это будут либо огромные широкие буквы, либо нормальные с большими интервалами между ними.. и в обоих случаях их влезать будет в окошко слишком мало.
То есть, опять же говорю, надо разбираться в PGF.. где там эти значения длины/ширины для каждого символа хранятся.
riku.kh3, попробуй вытащить распакованный скриптпак. Он не может висеть просто в воздухе. В обычном виде он запакован и нельзя его редактировать или просматривать текст в текстовом редакторе.
Понаблюдай в папке TEMP, он должен туда распаковываться.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
ErikPshat, сам он никуда не распаковывается, все в оперативке держит. Да и не запакован он по-сути, байты текста инвертированы каким-то образом (в проге галочкой Enable invert binary в читаемый вид превращается). Там есть опция извлечь все по отдельности, но по той же самой причине выше, не думаю что там есть на что смотреть.
riku.kh3, ну ты до этого давал файлик с чистым текстом, он же наверное прогой как-то извлекается, а значит наверное можно его обратно накатить. RLPAKTOOL никак не запускается. Фреймворк 4-ый установил всё-таки вчера с горем пополам, там в систребованиях его требуют. Но никак.
Просто комп я сюда привёз не мой. Я одному знакомому собрал новый крутой комп, а этот он хотел отремонтировать, а потом отдал мне, он полуживой P4 селерон одноядерный 2004-го где-то года выпуска. Памяти 2 по 512 стоит, но этого мало, чтобы открыть больше 3-ёх вкладок в браузере. И если что ему не нравится, так вываливается в синий экран, там память что-то глючит. Короче я с ним замучался, открывает папки по полчаса. Нажимаю "Мой компьютер" и иду заваривать кофе.
В общем твой шрифт довольно кароший, вот однобайтная кодировка японская Shift-JIS, на которую конвертятся узкие шрифты A1-DF, которые на той странице вычислили. Думаю с ней можно что-то придумать полезного...
Это таблица символов с предыдущей страницы. Остальные символы можно восстановить логически или подампив память.
Причём там кириллический диапазон попадает Windows-1251 = C0-FF
1-ый столбик - визуально отображаемые символы из дампа памяти.
2-ой столбик - то, во что конвертирует PSP в памяти.
3-ий столбик - то, что записано было в скриптпаке.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 15.05.2014 в 04:35.
Можешь портировать обратно и выложить готовый скриптпак?... файл во вложении.
Там только одна строчка в UTF-8, которая крашит на скринах выше. Если ты откроешь в UTF-8, то сможешь прочитать её, если откроешь в Shift-JIS, то она превратится в японскую абракадабру, зато остальные строчки читабельны.
Я заметил, что в шрифте есть кодировка UTF-8 русская и она должна по идее отобразиться.
Сообщение от riku.kh3
tpunix-pgftool.rar из твоей темы. Обычной командой 'ttf_pgf font.ttf jpn.pgf' он у меня таким и создается.
Хмм, странно, а мне он показался сначала каким-то узконастраиваемым. Я как раз пользовался 2-ым тулзом из той же темы, т.к. я его сам собирал и в батнике весь хелп по командам прописал, там можно выставлять и ширину и высоту и очень гибко настраивать. Правда она делает вроде только ltn0.pgf, поэтому у меня символы Shift-JIS туда по-видимому не добавлялись.
А кстати, ты умеешь пользоваться tpunix-pgftool?
Там можно в PGF добавлять только те символы, которые тебе нужны, т.е. можно чисто отсекать все ascii символы, чтобы облегчить вес файла.
FAQ tpunix-pgftool
Сначала создаёшь из TTF полный файл jpn0.pgf обычной командой: ttf_pgf font.ttf jpn0.pgf
Затем дампишь из него список символов следующей прилагающейся тулзой: dump_pgf -c jpn0.pgf > unicode_list.txt
То есть, командой -c ты из файла jpn0.pgf дампишь в текстовик unicode_list.txt список всех символов в 2-байтном виде.
Там первые 2 нуля не считаются в однобайтовой кодировке, удаляешь ненужные строки символов и подсовываешь нужный список для изготовления из TTF только нужного тебе PGF.
А нужный компактный PGF из TTF получаешь следующей командой: ttf_pgf *.ttf jpn0.pgf unicode_list.txt
То есть, помимо стандартной команды, подсовываешь ему отредактированный список символов, которые необходимо включить в сборку.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram