Редактирование RCO файлов
05 Май 2008, 17:52
[ Сейчас: инструкции ]
Редактирование RCO файлов
Предпоследняя статья по тюнингу интерфейса PSP посвящена работе с файлами ресурсов прошивки – RCO. Редактировать их мы будем с помощью программы RCO Editor, которой вы уже пользовались, если пробовали заменять системные звуки.
Программа эта очень мощная и позволяет изменять все значки XMB, весь текст, надписи при coldboot`е и gameboot`е, а так же цвет, расположение и размеры практически всех элементов оформления основного меню PSP.
СКАЧАТЬ
Программа не может работать с файлами непосредственно из прошивки, потому что там они хранятся в сжатом и зашифрованном формате. Чтобы получить правильные RCO файлы, необходимо сделать дамп файла прошивки с помощью PSAR Dumper`а, а затем прогнать все RCOшки через программу Resurssiklunssi (правда милое название?

).
Но не стану вас мучить лишней работой. Файлы не являются уникальными, поэтому просто предлагаю вам скачать их полный набор для прошивки 3.90, благо весят они не так много.
СКАЧАТЬ
Распаковывайте архив в любое место. И не пугайтесь, что файлов так много. Для вполне полноценной модификации достаточно покопаться в пяти-шести файлах. Для начала начнем с чего-нибудь попроще. Например, с надписи во время включения PSP (coldboot) и во время воспроизведения gameboot.
Обе они являются на самом деле картинками, хранящимися в файле
opening_plugin.rco. Открывайте его через RCO Editor и просматривайте все элементы списка на первой вкладке. Среди прочих вы увидите там строки
[GIM]tex_logo и
[GIM]tex_psp_logo. Они то нас и интересуют.
Извлечение файла с его последующим редактированием и возвращением на место плохо работает в последней версии RCO Editor, поэтому нужный файл проще создать с нуля. Сворачивайте пока что эдитор и запускайте Фотошоп.
Нужно создать новый файл размером
224х16 (или
272х80 для файла tex_psp_logo) и закрасить его тем цветом, которого вы хотите видеть надпись. Я для примера закрасил его желтым. Теперь переходите на вкладку Каналы и добавляйте новый канал Альфа1.
По умолчанию он создастся совсем черный. Выбирайте инструмент Текст и пишите на этом черном фоне надпись «белыми» буквами. Если вы плохо понимаете смысл Альфа канала, то поясню вам: черные точки на нем являются полностью прозрачными, белые – полностью непрозрачными. В итоге написанная на Альфа канале надпись будет прекрасно видна, а остальная часть картинки будет оставаться прозрачной.
Осталось сохранить файл как BMP
32bit и можно возвращать его обратно в RCO файл с помощью кнопки
Replace (Замена) в программе RCO Editor.
Можете сразу проверить то, что получилось, подключив flash0,
сделав резервную копию файла /vsh/resource/opening_plugin.rco и заменив его получившимся в результате модификации файлом.
Нередко возникает необходимость убрать надпись во время воспроизведения gameboot полностью, более того, иногда вместо нее может получиться
некрасивый белый прямоугольник в центре экрана. Сейчас покажу, как от него избавится: открывайте всё тот же файл в эдиторе и переходите на вкладку
Page Data (третья). Здесь можно задать цвет, размер, позицию и масштаб для большинства элементов XMB. Нас интересует psp_logo, ведь именно ему соответствует картинка [GIM]tex_psp_logo.
Чтобы убрать её с экрана, нужно выставить опции Растяжения в ноль, как это показано на скриншоте и нажать на кнопку Set. Загрузите полученный файл в прошивку и убедитесь, что никаких прямоугольников и надписей больше не появляется.
Когда освоитесь с базовым редактированием этих двух картинок, можете переходить к более интересным модификациям. RCO Editor, в отличие от софта для создания PTF, позволяет добавлять в файлы прошивки картинки различного, а не одного, четко заданного, размера. Благодаря этому можно использовать в качестве приветственной картинки файл размером
320х80 или
160х104. Можно и другие, более мелкие, главное условие совместимости –
ширина кратная 16 и высота кратная 8.
К сожалению, мне так и не удалось импортировать в opening_plugin.rco картинку с количеством цветом большим, чем
256 (она всегда получалась просто белой). Поэтому придется идти на хитрость, переводя картинку из 32-х бит в 8, а затем обратно. У вас наверняка есть свои любимые методы работы с Фотошопом, но я лично делаю это так:
1) Фоновый слой заливаю каким-либо неиспользуемым в картинке цветом. Например, ярко-розовым.
2) Рисую/вставляю узор на новом слое
3) Делаю объединение видимых слоев (Слой – Объединить видимые)
4) Изображение – Режим – Индексированные цвета. Настройки как на скриншоте:
5) Сохраняю файл как BMP 8bit. Закрываю текущий файл
6) Открываю сохраненный. Изображение – Режим – RGB
7) С помощью волшебной палочки выделяю весь розовый фон
8) Выделение – Инверсия
9) Выделение – Сохранить выделенную область – Да (ОК)
10) Сохраняю файл как BMP 32bit
В итоге получается файл с правильно заполненным Альфа каналом, глубиной 32 бита, но с количеством уникальных цветов равным 256. Такой файл без проблем импортируется в эдитор и правильно отображается PSPшкой. Так же учтите, что параметры Растяжения на вкладке Page Data можно изменять и в большую сторону. Например, 1.5/1.5/1.5 или 2/2/2. Дробные значения нужно писать только через точку. Используя данные приемы можно получить, например, вот такие coldboot`ы:
В первом случае использовалась картинка 320х80, во втором 160х104, в третьем 160х104 с растяжением на 2/2/2.
___________________________________________________________________________
Теперь, когда вы поняли (я надеюсь) основной принцип работы с RCO файлами, можно переходить к дальнейшему их редактированию. Следующие на очереди – все основные (горизонтальные и вертикальные) значки XMB. Все они хранятся в файле
topmenu_icon.rco. Открывайте его в эдиторе.
Очень удобно, что в программу встроена функция предпросмотра иконок, поэтому вы можете поскролить список всех ресурсов на первой вкладке и увидеть, какому значку какой элемент соответствует.
Извлечение, редактирование и обратное импортирование здесь так же не работает. Поэтому значки нужно подготовить в Фотошопе или его аналоге и вклеить в RCO с помощью кнопки Replace. Размер основных значков должен быть равен
64х64, вертикальных значков –
48х48, а маленьких значков подкатегорий
32х32. Другие размеры (не забывайте про кратность 16-ти и 8-ми!) тоже подходят, но для начала добейтесь хороших результатов на стандартном варианте.
Цель данной инструкции – показать вам принцип работы и все необходимые для редактирования приемы, поэтому уж простите меня за убогую графику в примерах, просто так быстрее

. Я сделал вот такие значки для основных категорий и карты памяти:
Замене поддаются абсолютно все значки, делается это совершенно аналогично. Иконки не нужно переводить в восьмибитный формат, можете использовать хоть маленькие фотографии – никаких проблем. Кратко опишу процесс создания, потому как он почти не отличается от описанного ранее:
1) Файл – Новый – 64х64
2) Прямоугольник с фаской, эффект тиснения, заливка цветом
3) Надпись
4) Выделение всего рисунка через Ctrl+щелчок
5) Сохранение выделенной области в Альфа канал
6) Сохранение рисунка как BMP – 32bit.
Если вы редактируете готовый значок, то уменьшите его до нужного размера, проведите желаемые модификации, выделите его через Ctrl+щелчок или через выделение фона с последующей инверсий и обязательно сохраните выделенную область как новый канал. И также сохраните итоговый вариант в BMP 32bit.
Помимо основных значков есть их «дублеры» с названием
focus,
shadow,
fcs и
shw. Чтобы они не портили картину, рекомендую вам заменять их на черную, полностью прозрачную картинку размером 1х1 пиксель.
Уже можно проверять. Делайте замену, подключайте flash0, делайте резервную копию, заменяйте исходный файл отредактированным. Вот что получилось у меня на данный момент:
Как видите, значки встали весьма неплохо. Но! Теперь подписи категорий выглядят лишними. Благо для RCO Editor это не проблема. Открываем файл
topmenu_plugin.rco, переходим на вторую вкладку, меняем язык на Русский, ищем текст для замены с помощью кнопки Search for text. Редактируем его как вздумается (я просто стер) и нажимаем на на Change. Данным способом можно отредактировать весь текст XMB по вашему усмотрению. С пользой или для баловства.
Следующим шагом к совершенствованию интерфейса рассмотрим замену значков уровня громкости, которые хранятся в файле
impose_plugin.rco. Если вы посмотрите на стандартные варианты значков, то поймете, что их всего 4: значок динамика, значок палочки громкости, значок точки и значок выключенного звука.
На данном примере я хочу показать вам приемы для изменения позиций и размеров значков, поэтому не буду просто перекрашивать стандартный вариант, а подготовлю совершенно другой вариант шкалы громкости. В моем случае это будет желтый прямоугольник 224х32, синяя полоска 7х16 и коричневая полоска 7х16:
Значки делаются и заменяются точно также как значки категорий. Если будут возникать проблемы с 32-мя битами – переведите картинку в 8 бит и обратно, как я показывал для создания значка coldboot`а.
Чтобы картинка «динамика» (желтый прямоугольник) была правильного размера, необходимо на вкладке
Page Data указать её расширение в графе
Dimensions.
Но самое интересное здесь другое – понять и правильно использовать принципы позиционирования значков в RCO файлах.
Обратите внимание на строку volume @ 0x9F0. У нее в графе Position стоит
X:0 Y:-110. Что же это значит? Эти цифры означают, что центр данного элемента смещен относительно центра экрана PSP на 110 точек вниз.
Центр относительно
центра. Это очень важно и, опять-таки, очень непривычно.
Обратите внимание, что позиции значков, являющихся дочерними элементами (они отображены в списке с небольшим смещением вправо) указываются уже не относительно центра экрана, а относительно центра родительского элемента. Понимаю, что сложно кажется по началу, но когда начнете импортировать свои значки, изменять их позицию и смотреть на результат, то все в голове уляжется. Со временем
Другая особенность состоит в том, что задать четкий размер для «палочек» и «точек» нельзя. Какую бы графику вы не импортировали, прошивка всё равно ужмет/растянет её до размера 360х20. В эти 360 точек входят ровно 30 одинаковых элементов, шириной 12 пикселей каждый. Я использовал значки 7х16, следовательно, 30 таких значков будут занимать 210 точек в ширину. Чтобы все было красиво и правильно, необходимо использовать растяжение данного элемента.
Узнать коэффициенты не трудно. Достаточно поделить, в моем случае, 210 на 360 и 16 на 20. Получается, соответственно,
0.57 и
0.8. Именно эти значения нужно указать в эдиторе (через точку! не забывайте):
Тоже самое нужно повторить для «точки», затем опытным путем (так проще на самом деле) установить нужные смещения позиций и загрузить полученный файл в прошивку, не забывая про резервные копии.
В качестве последнего примера поработаем с файлом
system_plugin_fg.rco. В нем хранятся значки заряда аккумулятора и системные часы. Картинка уровня заряда всего одна, просто поделенная на 4 части по вертикали. Я нарисовал вот такой элементарный вариант:
Затем на вкладке Page Data указал его позицию, размеры и, самое главное, не забыл нажать на кнопку
Set. Заметьте, что вертикальный размер нужно указывать для
одного значка, а не для четырех.
Там же рядом находится строка
clock, отвечающая за системные часы. К сожалению, перенести их в другой угол с помощью редактирования RCO нельзя, но зато можно сделать их крупнее/мельче через Растяжение, а также изменить их цвет.
Обратите внимание на графу
Color Channel Settings. Редактируя цифру в каждом из четырёх каналов (красный, синий, зеленый, прозрачность) вы можете перекрасить практически любой элемент XMB (не только часы) во все цвета радуги. Дробные значения указываются только через точку. Не забывайте нажимать на
Set.
Я заменил цвета на 0/0/0/1, импортировал значок батарейки, установил все её настройки, подключил flash0, сделал резервную копию, заменил отредактированным файлом и вот что получилось в итоге:
Как видите, меню полностью преобразилось. Я не говорю, что оно стало красивее в моем примере

, на то он и пример. Теперь вы можете попробовать сделать свою первую тему или же сперва посмотреть на чужие файлы тем, с целью подробнее рассмотреть применяемые другими ходы и приемы.