ErikPshat, прочитал тему и загорелся наконец-то желанием попробовать переписать плагин FuSa_SD под 6.60. Сам с программирование под PSP не знаком, но имею опыт "офисного" программирования на VBA И C#. Но как я понимаю принцип портирования сводится в общем случае к следующему:
-декриптовка prx на самой PSP
-дисассембл через prxtools
-правка кода (обновление команд старой прошивки новыми)
-сборка нового prx
Или я что-то пропустил?
Еще интересует вопрос, есть ли критичные особенности в написании кода плагина при ориентации на PSPgo?
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,746
Вы сказали Спасибо: 819
Поблагодарили 3,857 раз(а) в 2,023 сообщениях
Сила репутации: 1
Репутация: 3857 
(репутация неоспорима)
GreeDi,
после дизасма ты получишь не исходный код, а псевдо-код. Который нельзя скомпилировать и который будет отдалённо похож на оригинальный. Так что плагин ты будешь писать практически с ноля.
Понятное дело, что у любого плагина есть исходники (у автора), вот только через сайт с разрабом не связаться. Его там уже полтора года не было, а контактной информации он там не оставил никакой(((
только через сайт с разрабом не связаться. Его там уже полтора года не было, а контактной информации он там не оставил никакой(((
Ну тогда есть другой способ аналогичный. Вместо исходников использовать PRX Tool. Он тебе, как на тарелочке, выдаст все используемые программой ниды. Затем останется хекс-редактором заменить их на ниды от 6.60.
Исходный код самому писать нет нужды, достаточно подать питание в верхнюю конечность.
Ну тогда есть другой способ аналогичный. Вместо исходников использовать PRX Tool. Он тебе, как на тарелочке, выдаст все используемые программой ниды. Затем останется хекс-редактором заменить их на ниды от 6.60.
Чтож, решил всё-таки попытаться. Исходя из описания плагина на сайте, он адаптирован для 5.00.
В итоге:
1. Декриптовал FuSa.prx на своей консоли.
2. Выдернул ниды с помощью PRXTools
3. Как по инструкции "Удаляем все лишние строки со статическими функциями, т.е. у которых нет в названии функции суффикса с 4-значным НИДом". Итого остались:
0xADF12745 [0x00000180] - syslib_ADF12745
0x159AF5CC [0x000026E8] - SystemCtrlForKernel_159AF5CC
0x737486F2 [0x000026F0] - scePower_driver_737486F2
0x5B5AEFAD [0x00002700] - sceDisplay_driver_5B5AEFAD
0x3A622550 [0x00002708] - sceCtrl_driver_3A622550
0xD8779AC6 [0x00002710] - LoadCoreForKernel_D8779AC6
0x237DBD4F [0x000027C0] - SysMemForKernel_237DBD4F
0xB6D61D02 [0x000027C8] - SysMemForKernel_B6D61D02
0x9D9A5BA1 [0x000027D0] - SysMemForKernel_9D9A5BA1
0x3FC9AE6A [0x000027D8] - SysMemForKernel_3FC9AE6A
4. Начал сопоставлять ниды с libdoc'ами 5.00 и обнаружил, что начиная 5.00 по 6.60 все до единого совпадают. Быть может я не правильно дизасил эти прошивки? Скачивал их с этого сайта и подсовывал батнику "24. DISASM2HTML", который выдавал файл "24_DISASM_XDRSMW". В нем и смотрел.
Предполагаю, что не сделал описанное в этой теме и дизас у меня вышел - непонятно что...
Направьте на путь истинный, плиз!
GreeDi, ты всё сделал правильно, с 1-го по 3-ий пункт включительно. Видимо с подачей питания проблем нет
Но вот в 4-ом пункте мне не совсем верится, что ниды от 5.00 по 6.60 все сходятся.
Либдоки последние есть на 5.00. Я так понял, что ты их правильно скачал из этой темы: https://www.pspx.ru/forum/showthread.php?t=104558 (последняя вкладка "PRX Libraries Documentation"
Определяешь, каким файлам прошивки соотносятся эти ниды.
Дербанишь эти же файлы от 6.60 и сопоставляешь.
Сейчас сам проверить не могу, других дел много. Возможно завтра или позже...
Последний раз редактировалось LaKosta; 30.07.2014 в 16:43.
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,746
Вы сказали Спасибо: 819
Поблагодарили 3,857 раз(а) в 2,023 сообщениях
Сила репутации: 1
Репутация: 3857 
(репутация неоспорима)
Сообщение от GreeDi
а контактной информации он там не оставил никакой
На самом деле, найти информацию легко. Но автор ставит условием для передачи исходников на публику согласие полной команды разработчиков. И искать их тебе придётся самому =)
На самом деле, найти информацию легко. Но автор ставит условием для передачи исходников на публику согласие полной команды разработчиков. И искать их тебе придётся самому =)
Думаю вариант с заменой нидов более реален) Хотя всё не так просто в любом случае, но усилия того стоят)
Ну конечно проверь...
В архиве 3 файла: из сообщения выше "Портирования нидов" есть 2 пункта под вопросом и один пункт о прекращении экспорта функции LoadCoreForKernel_D8779AC6. Вот эти 3 вопросительных функции в коде:
0x737486F2 [0x000026F0] - scePower_driver_737486F2 => в 6.60 не изменился (0xEBD177D6 ???)
0x3A622550 [0x00002708] - sceCtrl_driver_3A622550 => в 6.60 не изменился (0x2BA616AF ???)
0xD8779AC6 [0x00002710] - LoadCoreForKernel_D8779AC6 => sceKernelIcacheClearAll not exported any more
Поэтому я портировал 3 вида плагина:
FuSa_SD_660a.prx - не включает изменений функций под вопросом.
FuSa_SD_660b.prx - включает изменения под вопросом
FuSa_SD_660c.prx - дополнительно к предыдущему изменению -> изменение функции LoadCoreForKernel_D8779AC6 на нехешированную функцию sceKernelIcacheClearAll
ErikPshat, первые 2 просто повесили запуск игры. То бишь PSP висла на последнем кадре геймбута. 3й так не делает, но что-то и менюшка не вызывается...
Само собой остальные плагины отключены.
PSP-300X.
Прошивка 6.60 LME-2.2
Кабель работает нормально. Компонентный.
Подтверждаю, проверял на 6.60МЕ композитный кабель. Кроме того до этого побродив по интернетам нашел вариант плагина который немного кривит картинку но по крайней мере не подвешивает ПСП, хоть и позиционируется как тот же который был выпущен автором последним, не знаю просто котрую именно вы обсуждаете модификацию.
Я читал старую тему, но так и не понял. Как форсировать вывод на кабель заранее включения псп? (у меня одна без экрана, но рабочая)
т.е. что там надо прописать в ini, txt файл или куда чтобы всегда выводил на кабель в XMB, GAME и POPS? (компонентный)
Последний раз редактировалось SILENT-Pavel; 12.08.2014 в 06:07.
=> в 6.60 не изменился (0xEBD177D6 ???)
=> в 6.60 не изменился (0x2BA616AF ???)
При сравнении, эти 2 пункта я видел, что функции не изменились, т.е. эти 2 НИДа остались без изменений. Однако сбило с толку то, что я случайно наткнулся на проброс нидов в исходниках 6.60 PRO.
По их версии почему-то эти ниды изменились. Нужно было делать проверку на прошивке PRO/PROMOD.
А вообще, по моим данным, их менять не следовало. Нужно бы проверить всё заново...
Сообщение от vitalikus
не знаю просто котрую именно вы обсуждаете модификацию
Речь идёт об этой последней модификации, о которой было указано выше при портировании: