|
Русификация игр и софта для PSP Здесь выкладываем локализации всего, что связано с PSP |
07.02.2015, 16:59
|
Сообщение: #1 (1093500)
|
Прошивка: 5.00 M33-6
Другие консоли: ps2, xbox360, 3ds, nds, psp
Регистрация: 01.01.2008
Адрес: Мордор
Сообщений: 239
Вы сказали Спасибо: 3
Поблагодарили 36 раз(а) в 26 сообщениях
Сила репутации: 1Репутация: 36 
(на пути к лучшему)
|
Хакеры, вашу мать
Scorpeg добавил 07.02.2015 в 16:59
Сообщение от riku.kh3
Да, как-то не гуд выглядит. Может с совместимостью проблемы потом возникнуть в каком-нибудь из эмуляторов. Может другим ассамблером попробовать этот опкод собрать?

|
Это у Erik'а задвиг не туда. Всё четко у меня. Ты ж видишь что работает, нет?  Был бы косяк - оно бы не работало.
Короче ликбез нумер два для Erik'a и сочувствующих.
Во второй раз говорю (как уже ранее я писал и недавно писал Yoti) в память PSP Eboot грузится по адресу 0x08804000. Не каждая программа, но в 99% случаев это так (там прописано в общем-то в ебуте куда грузить).
То есть eboot грузится по этому адресу в память PSP, принимай это как факт.
Что происходит далее? Далее происходит применение релоцируемых данных или как их там по научному зовут. Суть их в чем - существует где-то в ебут табличка, где отмечены адреса с переходами (джампами). После загрузки проги в память PSP пробегает по всем адресам и относительное смещение (вот это вот j 0x1111 которое вы видите в других джампах в PRXTool) преобразует в абсолютное (в j 0x8804000+то число).
Поэтому, если вы например вместо любой инструкции (кроме джампа) воткнете например j 0x33333 она у вас так и останется неправильно j 0x33333 потому что она отсутствует в таблицу-указателе на релоцируемые адреса.
Поэтому Erik пошел вообще не туда. У меня код не имеет релоцируемых адресов - поэтому там указывать надо абсолютные адреса для джампов.
Последний раз редактировалось Scorpeg; 07.02.2015 в 17:21.
Причина: добавил, подумав
|
|
|
Этот пользователь сказал Спасибо Scorpeg за это полезное сообщение:
|
|
07.02.2015, 17:04
|
Сообщение: #2 (1093502)
|
Регистрация: 09.08.2008
Сообщений: 1,001
Вы сказали Спасибо: 47
Поблагодарили 346 раз(а) в 206 сообщениях
Сила репутации: 1Репутация: 350 
(как роза среди колючек)
|
Сообщение от Scorpeg
Это у Erik'а задвиг не туда. Всё четко у меня.
|
Ясно-понятно. Но все-равно, мне тоже интересно почему другой дизассамблер один этот единственный адрес по-другому показывает. 
|
|
|
07.02.2015, 17:28
|
Сообщение: #3 (1093506)
|
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,758
Вы сказали Спасибо: 27,999
Поблагодарили 43,721 раз(а) в 12,399 сообщениях
Сила репутации: 10Репутация: 42912 
(репутация неоспорима)
|
Сообщение от Scorpeg
Поэтому Erik пошел вообще не туда. У меня код нерелоцируемый - поэтому там указывать надо абсолютные адреса.
|
Ну теперь-то понятно. Я так и понял, что у тебя адрес без релокации оказался, потому что новую функцию дебаггер не видит.
Сообщение от Scorpeg
(но не больше 65535)
|
А это почему? Я вижу, что адресация кругом подсчитывается 3-мя байтами, не обязательно до FFFF. Вот примеры:
0x000B6270: 0x0802D866 'f...' - j loc_000B6198
0x0011104C: 0x08044346 'FC..' - j loc_00110D18
- 0x0802D866 --- loc_000B6198 = 745880 : 4 = 0х02D866
- 0x08044346 --- loc_00110D18 = 1117464 : 4 = 0x044346
Как бы больше, чем 65535. Первый байт 0х08 - указывает на функцию джумпа в 0х00000000.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 22:43. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7 Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.
|
|
|