Sunday, 2024-12-22
FuSa Project
[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Ответы на вопросы
Andy_maNDate: Tuesday, 2008-12-16, 11:48 PM | Message # 1
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Недавно мне прислали интересный вопрос, который звучал примерно так: "Как поменять цвета рекавери меню?"
Чтож спрашивали, получите ответ:


Что нужно:
Хекс Редактор (например бесплатный хекс редактор HxD)
Разжатый файл рекавери меню


Немного теории.

Цвет передаётся в первом аргументе функции, т.е. через регистр $a0
В нашем случае размер регистра совпадает с форматом цвета (32бита по 8 бит на каждый канал)

A Альфа канал (прозрачность, чем больше значение, тем прозрачнее)
B Синий
G Зелёный
R Красный

Регистр состоит из 4 байт (4*8 = 32бит)
Цвет хранится следующим образом
A B G R
00 FF FF FF
(так будет выглядеть белый цвет)
Первые 16бит называются верхней частью регистра и содержат значения: Альфа+Синий
Следующие 16бит называются нижней частью регистра и содержат значения: Зелёный+Красный

Архитектура процессора МИПС (который установлен в ПСП)
Позволяет одной командой загружать только 16битные константы

Т.е. мы можем загрузить либо верхнюю часть регистра, либо нижнюю
Команда 0424 загружает нижнюю часть (G+R)
Команда 043C загружает верхнюю часть (A+B) при этом значение нижней части обнуляется.



А теперь взглянем на файл recovery.prx (разжатый разумеется)
В примере рассматривается 5.00 m33-4

Перечислим какие цвета там можно изменить:

1. Заголовок меню
Здесь можно изменить только одну половину т.е. можно регулировать либо G+R, либо A+B (изменив при этом команду на 043С)
В дисассемблере это выглядит так:
disasm:

Code
0x000034D0: 0x240400FF '...$' - li         $a0, 255

В хекс редакторе так:
Заметьте, смещение здесь немного больше (на 0х60 - размер заголовка)
Да и последовательность байт обратная.
hex:
0x3530: FF00 0424

Сделаем оранжевый цвет вместо красного подмешав немного зелёного цвета в пропорции 2:1, следовательно если у нас красный стоит на FF то зелёного добавим половину 7F

С помощью хекс редактора переходим на смещение 0x3530 (Ctrl+G -> Вписываем 3530 [при этом должны быть выбраны поля hex и begin]) и меняем значение зелёного цвета

Результат:

Code
0x3530: FF7F 0424



2. Пункты меню
Здесь можно изменить все 2 половины т.е. можно регулировать все цвета
disasm:
Code
0x00003520: 0x3C0400FF '...<' - lui        $a0, 255
0x00003528: 0x3484FFFF '...4' - ori        $a0, $a0, 0xFFFF

hex:
0x3580: FF00 043C
...
0x3588: FFFF 8434

Для начала необходимо изменить команды:
Первая команда нас устраивает а вот вторая нет, так изменим её на 0424
Результат:

Code
0x3580: FF00 043C
...
0x3588: FFFF 0424

Теперь давайте поменяем цвет на серый установив значения всех цветов одинаковыми и немного меньше FF (значение белого цвета)
Результат:

Code
0x3580: EE00 043C
...
0x3588: EEEE 0424



3. Выделеный пункт меню
Здесь, как и первом случае, можно изменить только одну половину т.е. можно регулировать либо G+R, либо A+B (изменив при этом команду на 043С)
disasm:
0x00003534: 0x240400FF '...$' - li $a0, 255
hex:
0x3594: FF00 0424

Поменяем на оранжевый:
Результат:

Code
0x3594: FF7F 0424



4. Нижняя статус строка
Это последнее что можно поменять, как и в предыдущий пункте, здесь тоже только одна половина.
disasm:
Code
0x00003568: 0x240400FF '...$' - li         $a0, 255

hex:
0x35C8: FF00 0424

Поменяем на оранжевый:
Результат:

Code
0x35C8: FF7F 0424



Вот результат:

Attachments: ORANGErecovery.zip (25.0 Kb)
 
ErikPshatDate: Thursday, 2009-01-15, 0:22 AM | Message # 2
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
А вот моё цветное Recovery & VSH Menu 5.00 M33-4
Attachments: RecoveryVSH-Men.rar (64.9 Kb)


Message edited by ErikPshat - Thursday, 2009-01-15, 0:22 AM
 
YotiDate: Thursday, 2009-02-05, 1:26 AM | Message # 3
Private
Group: Betatesters
Messages: 16
Reputation: 0
Status: Offline
loading...
Есть некая мифическая программа, в виде одинокого файла eboot.pbp. Запускаю я её на мифической консоли. Вопрос! Вся ли программа загружена в оперативную память? Размер мифической программы - 1Мб. Например, прога плодит папочки и файлики. Я запускаю её с карты памяти 1, достаю карту 1 и вставляю карту 2. Жмакаю кнопки в программе и она плодит папки и файлы на карте 2.
1) Возможно ли это?
2) Могу ли я выбрать, полностью ли ей копироваться в РАМу (да, я невероятно жесток, только пол файла в РАМу и больше ни-ни!)?



PSP-1004 | TA-086 | 5.00 M33-6
 
Andy_maNDate: Thursday, 2009-02-05, 4:34 PM | Message # 4
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
EBOOT.pbp - это не программа, а что то вроде контейнера - в нем содержится информация о роде программы, картинки/звуки/видео для ХМВ и конечно же сама программа smile
Когда ты запускаешь pbp то в память загружается только DATA.PSP - сама программа (в соответсвующий раздел памяти kernel\user)

Ответ на вопрос:
1 Да можно
2 Нет (точнее в этом случае тебе придется писать свой загрузчик ELFов - но все равно тут должны быть веские причины, чтобы решится на это)
Зато ты можешь определить например будет ли тебе доступно доп. память на псп слим smile

 
YotiDate: Thursday, 2009-02-05, 5:24 PM | Message # 5
Private
Group: Betatesters
Messages: 16
Reputation: 0
Status: Offline
loading...
Спасибо. Про контейнер я понятие имею, не раз копался в eboot-файлах. Дополнительная память slim вроде как в param.sfo определяется. А если размер data.psar больше размера оперативки? Программа вообще работать не будет?


PSP-1004 | TA-086 | 5.00 M33-6
 
Andy_maNDate: Thursday, 2009-02-05, 5:47 PM | Message # 6
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
data.psar - это архив с данными (в апдейтах от сони например там содержатся файлы прошивки) - он в оперативную память не загружается автоматически - апдейт от сони открывает сам себя и постепенно считывает данные архива в буффер

data.psp - это сама программа - если ее неудастся загрузить в память то будет получена ошибка Out of memory

 
YotiDate: Thursday, 2009-02-05, 6:58 PM | Message # 7
Private
Group: Betatesters
Messages: 16
Reputation: 0
Status: Offline
loading...
С "psar" я опечатался.
Хм, всё-таки при нехватке памяти будет выдана ошибка о нехватке памяти, хе-хе.



PSP-1004 | TA-086 | 5.00 M33-6
 
fertuciyDate: Tuesday, 2009-02-17, 11:48 AM | Message # 8
Private
Group: Users
Messages: 1
Reputation: 0
Status: Offline
loading...
вопрос: чем отличается руссификация игр от руссификации хоумбрю? имеет ли смысл искать методику руссификации игр? или нужно изучать описанную в этом форуме методику руссификации приложений для псп? знаю, что в интернете полно патчей-руссификаторов для игры. но откуда-то же берутся фанатовские переводы! как их делают?
спасибо.

 
lupusDate: Tuesday, 2009-02-17, 6:01 PM | Message # 9
Major
Group: Users
Messages: 87
Reputation: 1
Status: Offline
loading...
Quote
но откуда-то же берутся фанатовские переводы! как их делают?

тебе на shedevr.org.ru за ответами...

 
Andy_maNDate: Monday, 2009-02-23, 6:00 PM | Message # 10
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
fertuciy, принцип простой:
1 поиск текста
>руссификация текста

Если нет необходимых букв в шрифте
2 поиск шрифта
>правка шрифта

Если попрежнему буквы выводятся некоректно
3 поиск "залочки"
>правка алгоритма залочки

Этот принцип работает для всех программ и игр (правда здесь пропущены подэтапы - например в случае сжатых данных)
lupus, спасибо за ссылку - было интересно посмотреть smile

 
  • Page 1 of 1
  • 1
Search:

Copyright MyCorp © 2024
Create a free website with uCoz