Adhoc File Transfer v0.7
|
|
PSPFANat | Date: Monday, 2009-01-26, 5:46 PM | Message # 1 |
Private
Group: Users
Messages: 2
Reputation: 1
Status: Offline
loading...
|
Andy_maN, спасибо!!! Благодаря тебе и Сиду, я перевел AdhocFileTransfer 0.7! Однако есть и пробема, твой патчер, заменяет не только русские буквы, но и знаки меняет... Проблемы выделены красным:
Message edited by PSPFANat - Monday, 2009-01-26, 7:39 PM |
|
| |
ErikPshat | Date: Tuesday, 2009-01-27, 1:00 AM | Message # 2 |
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
|
PSPFANat всё правильно. В английском шрифте, где теперь буква Ы, раньше был Квадрат (В хексе обозначение DB) Где теперь буква "Ш", на этом месте раньше был Треугольник (значение D8) Посмотри на эти значения. Тебе на том месте нужно поменять значение с DB на 08 и D8 на 5E хотябы. Или сам нарисуй треугольник вместо неиспользуемого символа, например в позиции 07.
Message edited by ErikPshat - Tuesday, 2009-01-27, 1:01 AM |
|
| |
Andy_maN | Date: Tuesday, 2009-01-27, 5:24 PM | Message # 3 |
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
|
PSPFANat, можешь также нарисовать свой шрифт (треугольник точно стоит нарисовать -инфо о том как это сделать добавил в шапку
|
|
| |
PSPFANat | Date: Tuesday, 2009-01-27, 7:20 PM | Message # 4 |
Private
Group: Users
Messages: 2
Reputation: 1
Status: Offline
loading...
|
Так, я запутался То есть, если заменив буквы -Ш-,-Ы-, на нужные знаки, то я лишусь этих двух букв?) Мне они нужны)))
|
|
| |
SeeD | Date: Wednesday, 2009-01-28, 0:05 AM | Message # 5 |
Sergeant
Group: Users
Messages: 33
Reputation: 0
Status: Offline
loading...
|
у тебя же есть еще символы 00 - 0F. их перерисуй и хексом вставь, заменяя байты DC и D9 на, скажем, 09 и 0С
|
|
| |
ErikPshat | Date: Wednesday, 2009-01-28, 7:03 AM | Message # 6 |
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
|
Я глянул этот EBOOT.PBP от AdhocFileTransfer 0.7 Там не всё так просто. Как раз на месте этих символов идёт не текстовая информация, а на то место подставляется необходимый символ, который берётся из другого места. Вероятно напрямую из палитры шрифтов. Там идут такие строчки: - %c = Send files
- %c = Receive files
- %c = Disconnect
- %c = File Menu
Если бы на месте "%c" в поле кода стояло бы "DB" или "D8", то было бы проще поменять код на перерисованный знак. Здесь можно пойти хитрым путём. На месте "Ы" и "Ш" оставить "Треугольник" и "Квадрат", даже подрисовав их покрасивее. А эти буквы "Ы" и "Ш" перенести в первую строку с неиспользуемыми символами. А потом при переводе, где эти буквы встречаются, писать вместо них в поле кода их новую позицию. Тогда текстовая информация будет браться оттуда, куда вы ей указали.
|
|
| |
lupus | Date: Wednesday, 2009-01-28, 12:03 PM | Message # 7 |
Major
Group: Users
Messages: 87
Reputation: 1
Status: Offline
loading...
|
как раз хотел предложить, что и эрик, но прочитав его пост погял, что поздно. имхо, в данном случае это оптимальных подход.
|
|
| |
Andy_maN | Date: Wednesday, 2009-01-28, 6:36 PM | Message # 8 |
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
|
вот вам в помощь так сказать пища для размышлений (все смещения относительные) для абсолютных надо прибавить 38B3 (справедливо для оригинального эдхок файл трансфера 0.7) 219 (DB) 0x00010A44 (+38B3 = 142F7) и все т.д. 0x0000B460 0x0000B1A0 0x0000A828 0x00009E20 0x000097E8 0x000039B4 0x000035FC 0x000035C0 216 (D8) 0x000035C8 0x00003604 0x000039BC 0x000097E4 0x00009E1C 0x0000A824 0x0000B1A8 0x0000B468
|
|
| |
ErikPshat | Date: Friday, 2009-01-30, 9:14 AM | Message # 9 |
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
|
Andy_maN, расскажи, как узнать абсолютные смещения относительно относительных? Я чё-та не въехал, есть смещение %c, предполагаю, что в нём идёт перекрёстная ссылка на абсолютное смещение, но в данных не вижу. Я вижу в 142F7 заветную DB (отображение квадрата). В "Data Inspector" вижу в uint8 - 219 (позиция символа в десятичном виде). Ну это любая DB из 257-ти штук в этом файле имеет такой признак ))).
Message edited by ErikPshat - Friday, 2009-01-30, 9:31 AM |
|
| |
Andy_maN | Date: Saturday, 2009-01-31, 10:34 PM | Message # 10 |
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
|
Quote (ErikPshat) Andy_maN, расскажи, как узнать абсолютные смещения относительно относительных? Я чё-та не въехал, есть смещение %c, предполагаю, что в нём идёт перекрёстная ссылка на абсолютное смещение, но в данных не вижу. нет нет нет Я только что понял, что побудило тебя задать такой вопрос... (видимо из за моей лени написать сразу готовые смещения - сложилось неверное впечатление о сути происходящего) Ну чтож пристегните ремни, сейчас попробую ввести в курс дела. Рассмотрим функцию печати текста int printf ( const char * format, ... ); Допустим нам надо напечатать "X - exit | O - cancel" Конечно это можно сделать многими способами, но мы используем тот что использовал автор трансфера Для этого в нашем исходном коде мы определим константы кнопок: #define PSP_CROSS 'X' #define PSP_CIRCLE 'O' В программе мы будем вызывать printf след. образом: printf("%с - exit | %c - cancel",PSP_CROSS,PSP_CIRCLE) Теперь самое время посмотреть что происходит во время компиляции: Как я уже писал в соседней теме (про цвета рекавери) аргумент передаются через регистры (обычно $a0-$a3, если больше 4х то + $t0-$t9) Скомпилировав данный код мы получим вот что: #вначале пакуются все параметры addui $a0, $a0, XXXX #Где ХХХХ - это адресс самой строки "%с - exit | %c - cancel" li $a1, 0x58 #Во второй параметр помещается значение PSP_CROSS = 'X' = 0x58 li $a2, 0x4f #В третий параметр помещается значение PSP_CIRCLE = 'O' = 0x4F jal printf #Ну и в конце когда все подготовлено к запуску, вызываем саму функцию отрисовки Вот так выглядит процесс если мы используем константы. Quote (ErikPshat) Я вижу в 142F7 заветную DB (отображение квадрата). В "Data Inspector" вижу в uint8 - 219 (позиция символа в десятичном виде). Ну это любая DB из 257-ти штук в этом файле имеет такой признак ))). Попробую объяснить как я отыскал эти смещения, зная о вышеописанном механизме Во первых знакомтесь [url=http://ps2dev.org/psp/Tools/PRXTool_1.1_(WIN32)/PRXTool_1.1]PRXTool[/url] самый неотъемлимый инструмент Он поможет нам диссамблировать файлы (работает с ELF файлами, т.е. PBP для начала нада разобрать) Кратко говоря: я разобрал трансфер и посмотрел у каких функций первым параметром передаются адресса строк с %с сохранил смещения команд где загружаются остальные параметры (DB D8) подсчитал разницу в смещениях и соб-но запостил выше все что нужно
|
|
| |
ErikPshat | Date: Monday, 2009-02-02, 10:42 AM | Message # 11 |
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
|
Andy_maN, спасибо за объяснение, вроде всё понятно. Теперь надо это как-то обмозговать ))).
|
|
| |
ErikPshat0823 | Date: Tuesday, 2009-08-11, 11:59 AM | Message # 12 |
Private
Group: Users
Messages: 1
Reputation: 0
Status: Offline
loading...
|
Quote (Andy_maN) вот вам в помощь так сказать пища для размышлений (все смещения относительные) для абсолютных надо прибавить 38B3 (справедливо для оригинального эдхок файл трансфера 0.7) 219 (DB) 0x00010A44 (+38B3 = 142F7) и все т.д. 0x0000B460 0x0000B1A0 0x0000A828 0x00009E20 0x000097E8 0x000039B4 0x000035FC 0x000035C0 216 (D8) 0x000035C8 0x00003604 0x000039BC 0x000097E4 0x00009E1C 0x0000A824 0x0000B1A8 0x0000B468 Привет! Так как PSPFANat забросил перевод Adhoc File Transfer v0.7, то я его всё-таки перевёл. Я воспользовался твоей подсказкой и дизассемблил через PRX TOOL. В общем, все относительные смещения ты указал верно, но почему ты решил прибавить именно 38B3, я так и не понял и не нашел по таким прибавкам ничего. Тогда я просто прибавил стандартный размер заголовка ELF-файла равный 60 и это оказалось верным. Ещё проблема возникла, где в прогрессбаре при передаче или копировании показывается прогресс квадратиками. После русификации я заметил, что вместо квадратиков, там прогрессирует буква "И". Оказывается в прежнем шрифте на том месте, где "И", был нарисован такой неполный квадратик. Я не стал париться и снова искать дизасмом, а просто перенёс заглавную букву "И" в другое место (благо в переводе она повторялась всего 2 раза). На то место вернул квадратик и чуть подправил, т.к. даже в оригинале он выползает ниже границы строки. Короче особых проблем в русификации не было. Всё легко и просто ))).
Message edited by ErikPshat0823 - Tuesday, 2009-08-11, 12:12 PM |
|
| |
Andy_maN | Date: Tuesday, 2009-08-11, 11:23 PM | Message # 13 |
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
|
Что можно сказать - отлично! По поводу 38B3 - справедливо для самого оригинального EBOOT.PBP - т.е. заголовок ELF + заголовок PBP (соответсвенно с иконкой и текстами)\ Но так как ты, я так понимаю, предварительно избавился от шелухи (unpack-pbp) то ес-но у тебя был ЭЛФ файл с одним лишь стандартным заголовком 0х60
|
|
| |
ErikPshat | Date: Wednesday, 2009-08-12, 5:37 AM | Message # 14 |
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
|
Балин, вспомнил свой логин, а то при авторизации запрашивает е-mail )). С картинками долго парился не мог никак вставить, пишет, что неподдерживаемый URL or IMG и не даёт сохранить сообщение. Andy_maN, спасибо за похвалу. Благо я воспользовался PSPLINK и через него тестировал правку. [list=1] Извлёк из EBOOT.PBP файл DATA.PSP и переименовал как "1" (и без расширения для удобства ввода команд). Открыл в HxD и до конца даже не закрывал его, а просто через PSPLINK выгружал программу по ALT+R и загружал стрелкой вверх на клаве команду "./1" Шрифт подредактировал в RomArtist и вставлял вручную (мне так удобнее). Ну и добавил свою картинку PIC1.PNG (480x272) и обратно собрал EBOOT.PBP с помощью "PBP Unpacker 0.94". Вот небольшие тонкости, мож новичкам пригодится. P.S. Сама ссылка на программу сверху во второй ссылке: http://foosa.do.am/_fr/2/AdhocFileTransf.zip
|
|
| |
Andy_maN | Date: Friday, 2009-08-14, 2:24 PM | Message # 15 |
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
|
Слегка модифицированную версию можно скачать здесь (PIC1 - убран, ICON0 заменён на оригинальный, в подпись к программе добавлено авторство ErikPshat)
|
|
| |