PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Плагины для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=226)
-   -   HostCore 1.2.1 - Используем файловую систему ПК на PSP (https://www.pspx.ru/forum/showthread.php?t=70158)

ErikPshat 16.06.2016 18:52

Цитата:

Сообщение от karenjan99 (Сообщение 1103542)
sceNet_Service
sceNetInterface_Service
sceNet_Library
что за prx-ы? что то не могу определится

Ну это ifhandle.prx. Там же в исходниках написано в комментариях:
Код:

void wifiModulesPatch2()
{       
        if ( fw_version == FW_550 ) {
            //module renamed to sceNet_Service in 5.50
                tSceModule *  pMod = ( tSceModule * )sceKernelFindModuleByName( "sceNet_Service" );
                //a2 partid = 4 of ifhandle
            _sw( 0x34050004, pMod->text_addr + 0x000014D8 );  //for 5.50
    } else {
            tSceModule *  pMod = ( tSceModule * )sceKernelFindModuleByName( "sceNetInterface_Service" );
            _sw( 0x34050004, pMod->text_addr + 0x00001440 );  //for 3.71, 3.80, 3.90, 4.01, 5.00


Если перевести //module renamed to sceNet_Service in 5.50 - получается //модуль sceNet_Service переименован в прошивке 5.50
А до этого он назывался sceNetInterface_Service в прошивках //for 3.71, 3.80, 3.90, 4.01, 5.00
Поэтому берём Replace Studio и ищем название sceNetInterface_Service в файлах *.XML в папке C:\pspsdk\doc\pspsdk\silverspring.lan.st

Там записана коллекция NID-ов до прошивки 5.00. А так как название модуля изменилось в прошивке 5.50, значит в 6.61 оно тоже будет иметь новое название sceNet_Service и возможно даже название файла может измениться. Поэтому, берём Replace Studio и ищем это название sceNet_Service в файлах *.PRX прошивки 6.61. То есть, не забываем сменить "Маску файла" со *.xml на *.prx и указываем путь к папке с декриптованными файлами PRX прошивки 6.61.

karenjan99 16.06.2016 21:12

вообщем то получилось вот так вот

500 661 Files
0x3FC9AE6A -> 0x3FC9AE6A -> sysmem.prx
0x00002838 -> 0x00002A4C -> iofilemgr.prx
0x919215D7 -> 0xBE30CED0 -> ctrl.prx
0x6B247CCE -> 0x2BA616AF -> ctrl.prx
0x94A1C627 -> 0xD4B49C4B -> loadexec_01g.prx ; vshbridge
0x71F9FB1B -> 0x24114598 -> loadexec_01g.prx ; loadexec_02g.prx
0x2E96EDF8 -> 0xB57D0DEC -> impose.prx ; loadexec_01g.prx ; loadexec_02g.prx
0xB8E49712 -> xxxxxxxxxx -> init.prx ; modulemgr.prx
0x7C8A2B62 -> 0xC2A5E6CA -> modulemgr.prx ; init.prx не уверен
0xf8170fbe -> 0xf8170fbe -> clockgen.prx
0xD8D2FD35 -> 0xFBB369FD -> display_01g.prx
0xFBDA7A1E -> 0xFE5884EF -> display_01g.prx
0x00001304 -> 0x00001B94 -> sysmem.prx
0x00003AA8 -> 0x00004184 -> sysmem.prx
0x00001F3C -> 0x00002464 -> loadexec_01g.prx не уверен
0x000121E0 -> 0x00012F90 -> threadman.prx (661 23932 line) не уверен
0x00007C84 -> 0x00008398 -> modulemgr.prx
0x3C070001 -> 0x3C0A0001 -> ???
0x34050004 -> xxxxxxxxxx -> ifhandle.prx???
0x00001440 -> 0x00001780 -> ifhandle.prx (line 2015 661) не уверен
0x00002348 -> 0x000024E0 -> ifhandle.prx ((line 3119 661)??? не уверен) и есть в pspnet.prx в обеих и от 500 и от 661 не изменено 0x00002348
0x34020002 -> xxxxxxxxxx -> pspnet.prx нет оффсета }
0xAFA20000 -> xxxxxxxxxx -> pspnet.prx нет оффсета }
0x3C020000 -> xxxxxxxxxx -> pspnet.prx нет оффсета }Либо не тот файл
0x34074000 -> xxxxxxxxxx -> modulemgr.prx нет оффсета }
0x02403821 -> xxxxxxxxxx -> modulemgr.prx нет оффсета }
0x02402021 -> xxxxxxxxxx -> threadman.prx нет оффсета }


я много в чем не уверен:D

ErikPshat 17.06.2016 18:23

Вложений: 1
karenjan99, у меня вот что получилось:
Код:

syspatch.c
    FW 5.00      FW 6.61
064 0x00002838 -> 0x00002A4C (iofilemgr.prx)
089 0x919215D7 -> 0xBE30CED0 (ctrl.prx)
090 0x6B247CCE -> 0x2BA616AF (ctrl.prx)
127 0x94A1C627 -> 0x08F7166C (loadexec.prx)
128 0x71F9FB1B -> 0x24114598 (loadexec.prx)
129 0x2E96EDF8 -> 0xB57D0DEC (loadexec.prx)
130 0xB8E49712 -> 0xFE61F16D (modulemgr.prx) ?
131 0x7C8A2B62 -> 0xCE0A74A5 (modulemgr.prx) ?
167 0xD8D2FD35 -> 0xFBB369FD (display.prx)
168 0xFBDA7A1E -> 0xFE5884EF (display.prx)
194 0x00003AA8 -> 0x00004184 (sysmem.prx)
242 0x00001E58 -> 0x00002384 (loadexec.prx)
270 0x000121E0 -> 0x00012F90 (threadman.prx)
284 0x00007C84 -> 0x00008398 (modulemgr.prx)
304 0x00001440 -> 0x00001780 (ifhandle.prx)
314 0x00002348 -> 0x00002348 (pspnet.prx) не изменилось!


Я не стал заменять исходные данные, а просто добавил поддержку 6.60/661
Номера строк соответствуют данным прошивки 5.00, а данные прошивки 6.60/6.61 дописаны ниже.
Поэтому смотри мой файл из вложения, т.к. файл увеличился и номера строк соответствуют новым подвижкам.

P.S. У тебя прогрессирует невнимательность, ты в каком-то месте взял данные от 5.50, а сравнивал файл от 5.00.



Ну так потом можешь сам компилировать и проверять работу плагина, у тебя же установлен PSPSDK.
Чтобы не сыпались ошибки, т.к. ты добавил новые прошивки 6.60 и 6.61, о которых компилятор ничего не знает, нужно объявить новые прошивки в исходниках.
Для этого, открой файл utils.h, там увидишь обявление прошивок в таком виде:
Код:

enum PspFwVersion
{
        FW_371 = 0x03070110,
        FW_380 = 0x03080010,
        FW_390 = 0x03090010,
        FW_401 = 0x04000110,
        FW_500 = 0x05000010,
        FW_550 = 0x05050010,
};


Добавь туда FW_660 и FW_661, должно получиться вот так:
Код:

enum PspFwVersion
{
        FW_371 = 0x03070110,
        FW_380 = 0x03080010,
        FW_390 = 0x03090010,
        FW_401 = 0x04000110,
        FW_500 = 0x05000010,
        FW_550 = 0x05050010,
        FW_660 = 0x06060010,
        FW_661 = 0x06060110,
};


Потом, чтобы скомпилировать программу, в этой папке с исходниками (где лежит файл Makefile), производишь следующие действия:
  1. Удерживаешь клавишу SHIFT и щёлкаешь правой кнопкой мыши в пустом месте этой папки.
  2. В контекстном меню появится пункт "Открыть окно команд".
  3. В окне команд пишешь команду "make" (без кавычек) и наблюдаешь за процессом компиляции.
  4. Чтобы удалить результаты компиляции и привести всё к исходному виду, пишешь команду "make clean". Это нужно делать перед каждой новой компиляцией, чтобы не замешать в новую компиляцию результаты от старой компиляции.
То же самое делаешь в других папках (где лежит файл Makefile), для компиляции других модулей программы. Правда там тоже нужно проверять и менять НИД-ы.

karenjan99 17.06.2016 19:07

Цитата:

Сообщение от ErikPshat (Сообщение 1103566)
P.S. У тебя прогрессирует невнимательность

с возрастом пройдет :D
а файл ты полностью правил? те с ним закончено или еще надо что то искать?
как насчет вот этих?
0x34020002
0xAFA20000
0x3C020000
0x34074000
0x02403821
0x02402021
и еще этот 0x3C070001

их не нужно менять?

ErikPshat 17.06.2016 19:19

Цитата:

Сообщение от karenjan99 (Сообщение 1103568)
как насчет вот этих?
их не нужно менять?

Нет, это к НИД-ам или к оффсетам или к прошивкам не имеет никакого отношения. Не мудрено, что у тебя получилось "нет оффсета }" :D

Скомпилируй новый hostcore.prx и проверь, как он работает. Потом перейдём к проверке других файлов, там тоже явно есть что менять.

Цитата:

Сообщение от karenjan99 (Сообщение 1103568)
а файл ты полностью правил? те с ним закончено или еще надо что то искать?

Да, похоже с этим файлом полностью закончено.

karenjan99 17.06.2016 19:37

скомпилил, не робит, вот http://rgho.st/7MJMkt5bd
когда нажимаю на нотку ниче не происходит исходник тот что ты ссылку кидал
у меня 6.61 promod

ErikPshat 17.06.2016 20:21

Цитата:

Сообщение от karenjan99 (Сообщение 1103573)
скомпилил, не робит, вот http://rgho.st/7MJMkt5bd

Ну не мудрено, что не робит, там же ещё куча других файлов :D
Я просто хотел проверить, как ты осилишь процесс компиляции :xD:
Ну а раз получилось, значит ты уже почти профи :xDD:

Да..., и почти все смещения ты сам правильно нашёл, если не учитывать, что ты ещё перестарался с теми, которые вообще не нужно трогать.
Так что не всё так печально, главное ты уже кое-в-чём разбираешься. На самом деле ведь там ничего сложного нет.

Насчёт кода программы:
Код:

        if ( fw_version == FW_371 )
                addr = pMod->text_addr + 0x00002844;
        else if ( fw_version == FW_380 || fw_version == FW_390 )
                addr = pMod->text_addr + 0x00002808;
        return addr;


Ты наверное заметил, что там постоянно сталкиваешься со словами if и else.
Тут главное понимать, что это значит и уметь читать код.
  • if - означает по-русски если. Причем это не просто "если", а условие.
    То есть, как бы ты выдвигаешь условие: "Если ты мне не дашь мороженое, в противном случае я тебе засажу всю аллею цветами".

  • else - означает по-русски в противном случае. Поэтому этот код срабатывает, если предыдущий если не соответствует условиям.

  • || - это оператор ИЛИ.

Таким образом переводим этот код на русский язык:
Код:

        если ( версия прошивки равно FW_371 )
                тогда исполняем этот код: addr = pMod->text_addr + 0x00002844;
        в противном случае если ( версия прошивки равно FW_380 ИЛИ версия прошивки равно FW_390 )
                тогда исполняем этот код: addr = pMod->text_addr + 0x00002808;
        return addr;


karenjan99 17.06.2016 20:25

ErikPshat, ну ладно не ржи :D я думал что меню плагина должен открыватся уже :) :D

Цитата:

Сообщение от ErikPshat (Сообщение 1103574)
Ты наверное заметил, что там постоянно сталкиваешься со словами if и else.
Тут главное понимать, что это значит и уметь читать код.

про это еще месяц назад узнал (пишу тупые проги в vb :D вот один из них https://rutracker.org/forum/viewtopic.php?t=5218486 :D)

ErikPshat 17.06.2016 20:27

karenjan99, ах да, забыл добавить. Чтобы произвести полную компиляцию всей программы, нужно ввести команду "make release".
Результат получишь в новой создавшейся папке "release" или в появившемся архиве "HostCore_1.2.tar.gz".

karenjan99 17.06.2016 20:41

эт тоже менять?
setUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xB64186D0 );
getUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xAC56B90B );
setInitApitype = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x8d5be1f0 );
setInitFileName = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x128112c3 )
слушай ты не темни, этот плагин в конце концов заработает? :D

ErikPshat 17.06.2016 21:27

karenjan99, да, там больше ловить нечего, вроде всё пучком должно быть. Нужно смотреть другие папки и компилить полностью программу.
В корне ms0:/ должна лежать новая папка ms0:/HostCore

Цитата:

Сообщение от karenjan99 (Сообщение 1103578)
эт тоже менять?
setUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xB64186D0 );
getUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xAC56B90B );
setInitApitype = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x8d5be1f0 );
setInitFileName = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x128112c3 )

Нет, это функции кастомной прошивки. Они должны подхватываться через NID_resolver прошивки 661, если разрабы PRO не забыли их прописать.
Можешь загуглить эти НИД-ы.

karenjan99 17.06.2016 21:38

http://i77.fastpic.ru/big/2016/0617/...7fd3a31a2a.png

ErikPshat 17.06.2016 22:07

Вложений: 1
karenjan99, ну у тебя ошибка перемещения.
Из папки extras копируется всё содержимое в папку release/HostCore.
Потом файл readme.txt должен переместиться из папки release/HostCore в папку release, но этого не происходит.
Может файла readme.txt нету в исходной папке extras и он не скопировался в папку release/HostCore, либо по каким-то причинам он не может переместиться из папки release/HostCore в папку release.

Короче, вот готовая сборка: во вложении. Тестируй, отключи все другие плагины.

karenjan99 17.06.2016 22:31

не робит

ErikPshat 17.06.2016 23:02

karenjan99, ну так нужно на компьютере установить USB TYPE B, а затем включить USB Host и активировать плагин. В шапке usbhostfs.exe совсем, мне кажется, не рабочий.
Читай в этой теме 5. Установка драйвера хоста "USB Type B" или в этой: https://www.pspx.ru/forum/showthread.php?t=77900

Ещё можно почитать здесь: http://pspfaqs.ru/faqs/18-psphost.html

karenjan99 17.06.2016 23:18

я вообще то вай фай хотел использовать
psphost давно стоял а усб режим ругался
On 64 bit, Installs to Windows\syswow64\libusb0.dll
копировал туда теперь не ругается но все равно при подключении не просит установить драйвер да и если нажать на нотку меню и так должна появится а у меня не появляется

ErikPshat 17.06.2016 23:27

karenjan99, ну тогда забей, поигрались и хватит :D
Я вообще не соображаю, что делать с этим хостом и зачем он сдался :)
Вот RemoteJoy Lite нормально работает и понятно, почему и как она должна работать.
А по этой инструкции я сомневаюсь, что вообще должно заработать.

На компе эта программа вроде делает вид, что работает, но по-моему нифига она не работает.
Проще откатиться на 5.00 М33-6 и пользоваться, ну хотя бы попытаться завести, а если заведётся, тогда и тестировать на 6.61.

karenjan99 17.06.2016 23:32

ErikPshat,3 дня тупо посидел из за этого плагина ну спасибо :D
хотя много нового узнал + куча софта которые упростили жизнь
:lol:

karenjan99 добавил 17.06.2016 в 23:32
p.s. не в теме но случаем в синтезаторах/циф пианино/миди клавиатур не разбираешься? ты же профи :D

ErikPshat 17.06.2016 23:40

Цитата:

Сообщение от karenjan99 (Сообщение 1103592)
p.s. не в теме но случаем в синтезаторах/циф пианино/миди клавиатур не разбираешься? ты же профи


karenjan99 17.06.2016 23:45

ErikPshat, жаль а я хотел спросить возможно ли самому научится играть на фо-пиано а то в гугле часть пишут возможно часть нет, а академики в форумах вообще НЕТ НЕВОЗМОЖНО :D чет в другую сторону я пошел тема совсем не подходящая :lol:
а как нибудь по другому есть возможность смотреть медиа на псп через вайфай?


Текущее время: 13:33. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.