Вложений: 1
Цитата:
Цитата:
http://6.firepic.org/6/images/2015-0...8pdwp7ckgk.jpg Так же добавил оригинал во вложения. |
Цитата:
|
Вложений: 1
Re-Education, непонятно, в чём смысл прикреплять к картинке ссылку, ведущую в никуда, вернее тупо на главную http://firepic.org/ :scratch_one-s_head:
В общем вручную вытащил картинку шрифта из русифицированной ПК версии POPWW. Правда отображался шрифт под наклоном ровно 45 градусов. Я в фотошопе убрал наклон и получилась чёткая текстура, правда конечно программный код не оригинал, но думаю довольно близко приближённый к оригиналу. В фотошопе хорошо видно отображение по каналам - можно посмотреть и отдельно редактировать: 3 канала RGB, Альфа-канал со шрифтом или вместе все 4 канала, где отчётливо видно, как отделяется каждый символ. |
Цитата:
Тот шрифт что ты сейчас выложил не подойдет по моему. Там еще необходимо дорисовать клавиши направления, левый и правый триггеры ,кнопку select и кнопки крест, квадрат, треугольник и круг. Которые должны распологаться, судя по тому что видно в деббагере, тут: http://firepic.org/images/2015-07/29/bgzkwd3gapch.jpg а на твоей картинке просто физически не остается места, вот : http://6.firepic.org/6/images/2015-0...2zfqo8sxz7.png |
Цитата:
А русифицированный шрифт от POPTTT странно как-то сделан и не совсем обдуманно. Там же куча места есть, где ИЕРОГЛИФЫ. Ну в общем с картинкой шрифтов проблем думаю не будет. Её можно и самому нарисовать, как угодно. С этим разобрались. Главная проблема, как этот шрифт заархивировать в LZ (LZO, LZSS, Custom LZ или фиг его знает), чтобы PSP смогла его разархивировать. И ещё нужно понять, каким образом и где записаны координаты каждой буквы. |
Цитата:
В общем вся надежда на тебя;) и чем смогу помогу, просто я не знаю как это делать:unknw::blush: Ну я насчет: Цитата:
|
Re-Education, короче, нужно искать метод архивации на примере файла MenuInGame_wow_ff0e01f5.bin
Цитата:
|
Цитата:
BumbleJake добавил 30.07.2015 в 05:09 Цитата:
|
А тем временем, в сети появилась русская версия Persian Rug: Persian Rug Rus v2.5beta.zip
|
Цитата:
Scorpeg добавил 31.07.2015 в 01:04 Цитата:
|
Цитата:
|
Цитата:
В принципе там разновидность паковщика типа LZ, видел люди писали простенький скрипт в QuickBMS для распаковки разновидностей: lzo1x, lzo2a, lz77wii, lzma, lzss0, lzss, lz4, LZS, правда для других игр. Цитата:
|
Цитата:
Тем не менее, я рад, что узкому кругу лиц данное под силу :) Цитата:
|
Цитата:
Цитата:
|
Вложений: 2
Цитата:
Короче, начинаю включать соображалку... т.к. методом тыка ничего не получается. Вниматель и вдумчиво прочтите всё, что я написал ниже. В общем долго думал над этой проблемой и пришёл к выводу, что Persian Rug всё-таки отрабатывает нормально и выдёргвает шрифт из PSP версии правильно. Просто на PSP этот код обрабатывается другим образом, чем на PC. В PC версии лежит обычный шрифт TGA с нормальным для компьютера форматом 32 бит с прозрачностью(4 слоя), т.е. каждый пиксель записывается 4-мя байтами - RGBA (Red-Green-Blue-Alpha), где каждый байт отвечает за один из цветов, а в совокупности дают цвет одного пикселя. В PSP версии шрифт записан 1 байтом на каждый пиксель - 8bpp (8 bite per pixel), т.к. 1 байт = 8 бит. Отсюда и получается, что картинка шрифта 512х128=65536 байт, без всяких дополнительных слоёв. То есть, это по сути и есть 1 слой Альфа-канала. По другому - картинка в индексированных цветах. Я уже несколько раз вытаскивал через GE-дебаггер PPSSPP из памяти эту картинку и каждый раз она выползала одинаковая байт-в-байт, я её (FONT.bin) выкладывал в этом посту: https://www.pspx.ru/forum/showpost.php?p=1097938 Если сравнить в хексе картинку из дебаггера и картинку, извлечённую с помощью Persian Rug из файла MenuInGame_wow_ff0e01f5.bin, то можно заметить, что они чем-то похожи. А просто-напросто тем, что в памяти эмулятора она перевёрнута, т.е. тот код, который есть в конце, теперь находится вначале. И ещё в файле TGA есть дополнительные 18 байт заголовка формата, который можно скопировать в голый код картинки дебаггера и превратить её так же в TGA, дописав расширение *.tga. Короче, картинка извлекается вполне правильная, просто обычные графические просмотрщики неправильно их отображают из-за специфического формата файла. Взгляните на картинку внимательно, вот я её смасштабировал и отразил по вертикали, чтобы визуально лучше воспринималась: Если приглядеться, на картинке изображение как-бы повторяется 4 раза по горизонтали. Это значит, что ширина картинки не 512 пикселей, а 4 раза по 128. Это намекает на то, что код картинки не имеет последовательную структуру, а именно не 512 пикселей подряд в одном ряду. Ведь графические редакторы считывают информацию последовательно и каждый последующий ряд пикселей автоматически переносится на следующий ряд в зависимости от указанной ширины изображения. Здесь же видно, что код картинки выровнен по 128 байт (пикселей). Есть такое понятие в программировании, как alignment, причём я как-то встречал такое выравнивание по 128 байт в формате TIM2 для PS2. И ещё, я не стал раскрашивать картинку в клеточку по горизонтали, но если присмотреться, то можно посчитать, что по вертикали картинка имеет 16 рядов. 128:16=8. Получается, что картинка по вертикали имеет выравнивание по 8 пикселей, а по горизонтали по 128. (Но!!!, в программировании и вообще в мобильной системе PSP я встречал обычно выравнивание по 16 байт или по 8. И этому есть подтверждение..., если учесть вертикальное выравнивание по 8 пикселей, то заметны во многих рядах пустые пробелы по горизонтали, например в каждом красном квадратике верхний правый угол, там по ширине примерно 8 пикселей пустоты.) Вот ещё соображения. Вот скриншот шрифта в хексе. Слева мы видим код, а справа его визуальное отображение. Если полистать весь файл, то справа мы увидим интересную картину репина. И это не потому, что слева код так удачно случайным образом сложился, что справа так красиво видны начертания прямых, косых и закруглённых фигур. Ну да, это и есть начертания наших букв алфавита! Дело в том, что мой хекс-редактор обычно всегда настроен на отображение 16-ти вертикальных столбцов, от 0 до 15 в коде или от 0 до F в визуальном отображении справа. Но если я изменю ширину редактора, например на 10 или 32 столбца, то справа вся картина репина рассыпется. Отсюда вывод, что выравнивание по горизонтали исчисляется 16-ю пикселями, возможно и 8-ю. Так же, я отделил красной линией код с промежутком по 8 строк и это де-факто. Тут сразу видно, что очертания символов вырисовываются каждые 8 вертикальных строк. В общем получается, что картинка складывается из 16 байт по горизонтали и 8 байт по вертикали, затем таким же образом справа прикрепляется следующая картинка, потом следующая и т.д, пока по горизонтали не наберётся 512 байт. Это значит, что 512:16=32 картинки нужно сложить справа, чтобы получить одну полосу рисунка в 8 байт по высоте. Затем ниже складывается следующая горизонтальная полоса, которая отрисовывает продолжение начертания символов. Что я хотел сказать? То, что в картинке 512х128 графический редактор обычно отрисовывает последовательно 512 пикселей в строке и так же последовательно продолжает переносить каждую строку. А у нас получается первая строка 16 байт, потом переходит на вторую строку 16 байт, потом на третью и так 8 строк по 16 байт. Затем 9-ая строка должна приклеиваться справа к первой строке, 10-ая строка ко 2-ой, 11-ая строка к 3-ей. То есть, через каждые 8 строк картинка дополняется по 16 байт к первым 8-ми строкам, пока не наберётся 512 байт в восьми строках. Короче, надеюсь вы всё поняли, что я хотел сказать. Думаю теперь сами справитесь ;) |
хоспади ты боже мой)
http://s009.radikal.ru/i308/1508/b7/289df8b28b00.png |
riku.kh3, балин, и зачем я так много расписывал? Ты нашёл клей "Момент" или просто подогнал заголовок?
|
Основы основ там, тайлами 16x8 строится изображение. Думал свизлинг у вас какой, помощь нужна, а оказывается...
|
Цитата:
|
Назад то оно запаковывается? Или смысла этот FONT.bin править сейчас ноль?
|
Цитата:
|
riku.kh3, есть небольшая надежда, что мы сможем всё обратно запихнуть. Теперь самое важное - это координаты к новым русским буквам подцепить.
Короче, во время занятия переводом Persian Rug, я обнаружил в его недрах недокументированные фразы и скрытые возможности. Видимо автор пытался что-то сделать, но так и забросил, и скрыл, заблокировав функции. Я всё открыл и разблокировал. Но после этого, при запуске выскакивет окно с ошибкой и на некоторых кнопках так же появляются ошибки. Однако программа эти функции выполняет. То есть, появилась вкладка BIN распаковщика. Это не просто извлечение отдельных ресурсов из BIN, а разархивируется полностью весь бинарник целиком. Это даёт возможность вообще использовать бинарник в незапакованном виде, ну и просто изучить заголовок, содержимое и устройство всего бинарного файла. Ещё при попытке распаковать уже распакованный бинарник, выскакивает сообщение, что "Not a compressed JADE engine bin file." А это наводит на мысль, что файлы пакуются JADE движком, который у нас есть пакер/анпакер. По ходу в бинарниках изменён заголовок архива. Потом появились функции "Сохранить список ресурсов", "Тестировать" и интересное - "Извлечь данные", при этом извлекаются данные именно того ресура, который выделен из списка присутствующих. Цитата:
|
Здравствуйте! Извините, но есть вопрос. Если у шрифта уже есть координаты на английский шрифт, не легче его перерисовать в русские символы и перевети транслитом? И дорисовать недостающие символы которых нет в английском алфавите на ненужных значках? затем уже перевести меню кракозяброй:scratch_one-s_head:
|
Вложений: 1
ErikPshat, держи тогда
|
riku.kh3, хмм, :ok: :indeec:thank you
После конвертирования совпадение 100% Чёткая вещь! А это..., с чего мы начинали, обратное преобразрвание? |
Вложений: 2
Persian Rug Rus Extra Ну и вот неожиданно вышла засекреченная версия Имейте в виду, что в отличии от обычной версии, расширенная версия Extra содержит некоторые безобидные баги, например: при запуске выскакивает ошибка, но программа запускается в фоне, т.е. на заднем плане. Основные возможности:
|
[FAQ] Распаковка и упаковка контейнеров BIN Шаг 1 - Распаковка
Шаг 2 - Упаковка На примере MenuInGame_wow_ff0e01f5.bin.
Выражаю ОГРОМНЕЙШУЮ благодарность riku.kh3 за помощь в методе упаковки! |
Скомпилировал новый JADE Pack Tool с обновлённой версией сжатия miniLZO.
Вроде компактнее сжимает. Использовалась древняя версия: v2.02, 17 Oct 2005 Обновлено на более современную: v2.09, 04 Feb 2015 Исходники: http://www.oberhumer.com/opensource/lzo/ Архив во вложении в шапке. Код:
057CC827 (4285) - номер ресурса в бинарнике. В скобках указан номер позиции в десятичном виде. |
Вложений: 1
Сделал компрессор, сжимает чанками по 0x20000 и добавляет паддинг нужного размера в конец.
|
Очень рад, что тема оживилась такими горячими подробностями. Выражаю свою благодарность людям, которые выше выкладывали свои умные мысли, и писали содержательные посты.
Извиняюсь за оффтоп. Не бейте! |
Вложений: 1
riku.kh3, кстати, miniLZO v2.02 сжимает абсолютно так же, как в исходых бинах и на выходе получаем тот же результат.
А miniLZO v2.09 всё-таки даёт на выходе бинарник большего размера и ссответственно другой код. Так что правильно, лучше использовать JADE Pack Tool со старой библиотекой miniLZO v2.02. P.S. Для сравнения компрессор с новой библиотекой miniLZO v2.09 |
Цитата:
|
Пробовал в меню P5MAIN.MGM написать кириллицей АБВГДЕЁ, так на экране выползла вся матрица шрифта в высоту 128х512 :D
Посмотрел в немецком файле. Там есть такая строка: <LABEL>Gespeichertes Spiel l{0246}schen</LABEL>, что намекает, что всякие умляуты обозначены цифрами. В данном случае обозначение буквы ö - {0246} И ещё буквы:
http://s009.radikal.ru/i308/1508/b7/289df8b28b00.png
|
После шрифта лежит секция FONTDESC и там похоже действительно находятся смещения шрифтов. Вот я эту секцию скопировал сюда. Для лучшей наглядности, я код растянул по 20 байт в строку.
Первый двубайтный ряд - просто указатели смещений хекс-редактора, не обращайте внимание. Тут такое дело, что каждая новая строка пронумерована по порядку (первые 4 байта) и соответствует номеру символа. Сначала думал совпадение, но вроде нет, т.к. вторые 4 байта похоже указывают на позицию первого символа на картинке и они нулевые, это вот эти 5 символов: !, P, u, Ü, •. Я эти строки в коде ниже выделил красным. А справа, в визуальном столбце отображения кода, на первом месте виден алфавит. Только вот я не могу понять, что за цифры в коде идут, откуда идёт отсчёт позиции, как определить ширину и высоту буквы. Может у кого появятся какие-нибудь соображения... Код |
Ну чисто из этой таблички есть предположение, что код символа, потом X1, Y1, X2, Y2 (соответственно получаем квадрат, в который вписана буква). Считают видимо от левого нижнего угла текстуры. Последний байт из четырех видимо означает че-то другое, потому что не может быть так много координат. Короче поэкспериментируй, поменяй че-нить, назад воткни.
|
riku.kh3, большое спасибо за набор полезных утилит. :) Если есть возможность, сделайте, пожалуйста, утилиту psp_popfont универсальной, с возможностью конвертировать точно так же не только текстуру шрифта. Заранее спасибо.thank you
|
|
Вложений: 5
Цитата:
Во вложении положил шрифт и палитру. По совету riku.kh3 очень понравилась программа TiledDDG (Вложение 11135). |
Вложений: 1
В общем помучался я с текстуркой немного и вот что получилось :
http://2.firepic.org/2/images/2015-0...kit4hph4ed.png (все на прозрачном фоне, просто для того чтоб было видно добавил фон, на оригинале нет фона). Так же прилагаю алфавит, какая буква чему соответствует.
То, есть печатать чтоб отображались русские символы , нужно то что справа. Я могу взяться за перевод, но просто не знаю как проверить текстуру. Если честно, то у меня не получилось упаковать ее как вы описали выше. Если кто возьмется вставить текстуру на место, чтоб проверить, начну перевод текста в игре. Как то так.:blush: Кстати, пока редактировал текстуру, то заметил одну закономерность, буквы все имеют 15 пикселей по вертикали. Пока редактировал я не вышел за рамки предыдущей буквы, которую переделывал либо удалял с места.Думаю что координаты не должны сбиться. Вложение 11036 |
Re-Education, погоди, английский ты не должен вырезать, они могут быть использованы где-нибудь.
В любом случае Английский алфавит трогать не стоит. Нужно только добавить русские буквы. Поэтому мы и думаем, как нарисовать русские буквы с полноценным начертанием. |
Текущее время: 19:02. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.