PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Меняем цвета и расположение текста в программах (https://www.pspx.ru/forum/showthread.php?t=90270)

ErikPshat 09.02.2011 15:52

Меняем цвета и расположение текста в программах
 
Эмм. Тут меня попросили показать, как менять цвет и позиции меню в переводе.
Покажу на небольшом примере...

Для примера я взял VSH Menu для 5.03 Prometheus-4, которое фактически не изменилось, а осталось нетронутым от 5.03 GEN-C.
Вот на скрине уже готовый вариант. А как это делалось, читайте ниже...

[img]http://img204.**************/img204/3434/screenshot06j.png[/img]

Например, разберём цвет правого столбца VSH MENU
  • Цвет, как известно состроит из 4-ёх составляющих - RGBA - это Красный(Red)-Зелёный(Green)-Синий(Blue)-Прозрачность(Alpha)
  • В файле обычно они идут попарно RG и BA. Вот эти смещения и нужно искать.
  • В оригинале мы видим, что шрифт написан белым шрифтом и непрозрачным.
  • Белый цвет получается при смешении 3-ёх чистых основных цветов RGB.
  • Каждый цвет имеет максимум 256 градаций (оттенков).
  • То есть, из трёх цветов можно получить максимум 256х256х256=16'777'216 тонов - если встретите такой монитор, поддерживающий такое количество цветов, то смело берите ))), потому что бывают урезанные модели по цветопередаче.
  • Так как мы будем иметь дело с цифрой, то в шестнадцатеричном виде, максимальное количество градаций одного цвета 256 будет равно FF.
  • Значит белый цвет будет выглядеть так: FF FF FF 00 (на конце 00 - это нулевая прозрачность Alpha) RGBA.
  • А так как в файле цвет записан попарно, то и нужно искать две пары: FFFF и FF00.
Вот некоторые понятия уже проясняются.
Теперь я просто поменяю, для примера, цвет шрифта правого столбца, например на красный.
Чтобы сделать цвет красным, нам нужно выставить красный R на максимум, а остальные цвета просто погасить на ноль.
Находим смещения FFFF и FF00:

[img]http://img46.**************/img46/5368/sateliteprx.png[/img]

Выставляем красный на максимум FF, а остальные обнуляем:

[img]http://img64.**************/img64/4562/sateliteprxred.png[/img]

Смотрим результат:

[img]http://img204.**************/img204/7877/screenshot00x.png[/img]

Например, разберём смену позиции VSH MENU
  • Позиция, как известно, то-же записывается шестнадцатеричными значениями.
  • По горизонтали мы имеем разрешение 480 пикселей. Это значит, что каждый пиксель имеет свою собственную координату.
  • Но так как максимальное значение в шестнадцатеричном измерении является число FF, равное 256, а нам нужно 480 значений, то тут применяется 2-значное исчисление, т.е. FF FF (как максимум), что позволяет достичь значителього количества = 65536.
  • Следует учесть, что одна буква дебаг-шрифта, который мы имеем в данном VSH, составляет 8 пикселей по ширине и столько-же по высоте.
  • Чтобы найти в файле это значение, я просто на листочке в клеточку отметил расстояние от края экрана до начала меню, а затем отмерил количество символов в первой строке самого меню.
  • У меня получилось расстояние от края до меню ровно 17 букв. Если учесть, что одна буква 8 пикселей, значит расстояние от края 17х8=136!
  • А десятичное число 136 в шестнадцатеричном исчислении получается, как 88.
  • Но так как мы уже знаем, что экран у нас на 480 пикселей и шестнадцатеричные значения записываются 2-значными числами, значит наше смещение будет иметь вид: 8800!!!
  • Допустим мы хотим сдвинуть меню вправо на 12 букв. Получается 12х8=96 пикселей. Но ещё от начала у нас 136 пикселей(17 букв), значит получается отступ от края на 96+136=232 пикселя. В хексе это записывается, как E8, вернее E800.

Ищем это значение 8800 в файле:

[img]http://img155.**************/img155/7551/sateliteprxleft.png[/img]

Заменяем на E800:

[img]http://img832.**************/img832/9905/sateliteprxright.png[/img]

Смотрим результат:

[img]http://img204.**************/img204/6237/screenshot03e.png[/img]

Ну и ещё чуть побаловавшись:

[img]http://img13.**************/img13/2508/screenshot07i.png[/img]

Добавлю ещё, что каждый блок двигается отдельно, причём правый столбик так-же двигается независимо от левого. Чтобы найти все эти смещения - тут уже всё напрямую зависит от вашей сообразительности.

ErikPshat © PSPx.Ru


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

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