Discuss the development of new homebrew software, tools and libraries.
Moderators: cheriff , TyRaNiD
J.F.
Posts: 2906 Joined: Sun Feb 22, 2004 11:41 am
Post
by J.F. » Wed Oct 03, 2007 11:49 am
Well, look at the way certain kernel mode prxs have to be done:
Code: Select all
int InitME(volatile struct me_struct *mei, int devkitVersion)
{
unsigned int k1;
k1 = pspSdkSetK1(0);
if (mei == 0)
{
pspSdkSetK1(k1);
return -1;
}
// initialize the MediaEngine Instance
mei->start = 0;
mei->done = 1;
mei->func = 0;
mei->param = 0;
mei->result = 0;
mei->signals = 0;
mei->init = 1;
// start the MediaEngine
memcpy((void *)0xbfc00040, me_stub, (int)(me_stub_end - me_stub));
_sw((unsigned int)me_loop, 0xbfc00600); // k0
_sw((unsigned int)mei, 0xbfc00604); // a0
sceKernelDcacheWritebackAll();
if (devkitVersion < 0x03070110)
{
sceSysregMeResetEnable();
sceSysregMeBusClockEnable();
sceSysregMeResetDisable();
}
else
{
sceSysregMeResetEnable371();
sceSysregMeBusClockEnable371();
sceSysregMeResetDisable371();
}
pspSdkSetK1(k1);
return 0;
}
Every time the nids change, another case will have to be added that handles the new nids. I agree it could be a lot of work, but we can cut down the work considerably by only doing certain functions. We only need the ME functions, the audio frequency function, and maybe a few others.
Another way to keep the work down lies in the "new" way of doing homebrew - since we aren't doing kernel mode programs anymore, only the kernel mode prx has to change. For example, if one were using the mediaengine.prx the code above is from, one merely needs to update the mediaengine.prx, not every program using it.
TyRaNiD
Posts: 907 Joined: Sun Jan 18, 2004 12:23 am
Post
by TyRaNiD » Wed Oct 03, 2007 11:59 am
Please no more in software hacks unless really necessary, this is part of the reason we have such an issue as it is and it is only luck that undefined nids don't cause load failures.
Viper8896
Posts: 110 Joined: Thu Jan 26, 2006 6:20 pm
Post
by Viper8896 » Thu Oct 04, 2007 11:09 am
Hi I was hunting NIDs for 371 using 350 NIDs and before I go any further this is what I came up with:
Code: Select all
3.71nid 3.5name 3.5nid
-------------------------------------------------------------------------------------------------
scePopsMan_0090B2C8 scePopsManExitVSHKernel 0x0090B2C8 //unchanged
sceMeAudio_F276E7DB scePopsManDocClose 0x03971322
sceMeAudio_9F3595DC scePopsManEnd 0x04B14718
sceMeAudio_D9BE95CD scePopsManImposeGetParam 0x065C7F0B
scePopsMan_29B3FB24 scePopsManLoadModule 0x29B3FB24 //unchanged
sceMeAudio_B9DF0545 scePopsManCheckData 0x2E18E4E9
sceMeAudio_D3B3005C ??????????????? 0x4F7628CC //probably
sceMeAudio_36AF1E2A scePopsManDocOpen 0x53F9ABD2 //probably
sceMeAudio_B50BD5E0 ??????????????? 0x56EEB969
sceMeAudio_A53D2D54 ??????????????? 0x6768B22F //probably
sceMeAudio_2ECC88B3 scePopsManDocLseek 0x875F4C05
sceMeAudio_DE6E171E scePopsManImposeChanges 0xB262B44F
sceMeAudio_5F7724D9 scePopsManImposeGetBatteryIconStatus 0xEC94C50C
sceMeAudio_2335762C ??????????????? 0xEF8F686E
sceMeAudio_12A811F9 scePopsManInit 0xF03F1227
sceMeAudio_902F30D8 scePopsManDocRead 0xFC56480E
Is this just part of sony's little game game of cat and mouse when they have scePopsMan as sceMeAudio or have I messed up?
moonlight
Posts: 567 Joined: Wed Oct 26, 2005 7:46 pm
Post
by moonlight » Thu Oct 04, 2007 10:03 pm
Viper8896 wrote: Hi I was hunting NIDs for 371 using 350 NIDs and before I go any further this is what I came up with:
Code: Select all
3.71nid 3.5name 3.5nid
-------------------------------------------------------------------------------------------------
scePopsMan_0090B2C8 scePopsManExitVSHKernel 0x0090B2C8 //unchanged
sceMeAudio_F276E7DB scePopsManDocClose 0x03971322
sceMeAudio_9F3595DC scePopsManEnd 0x04B14718
sceMeAudio_D9BE95CD scePopsManImposeGetParam 0x065C7F0B
scePopsMan_29B3FB24 scePopsManLoadModule 0x29B3FB24 //unchanged
sceMeAudio_B9DF0545 scePopsManCheckData 0x2E18E4E9
sceMeAudio_D3B3005C ??????????????? 0x4F7628CC //probably
sceMeAudio_36AF1E2A scePopsManDocOpen 0x53F9ABD2 //probably
sceMeAudio_B50BD5E0 ??????????????? 0x56EEB969
sceMeAudio_A53D2D54 ??????????????? 0x6768B22F //probably
sceMeAudio_2ECC88B3 scePopsManDocLseek 0x875F4C05
sceMeAudio_DE6E171E scePopsManImposeChanges 0xB262B44F
sceMeAudio_5F7724D9 scePopsManImposeGetBatteryIconStatus 0xEC94C50C
sceMeAudio_2335762C ??????????????? 0xEF8F686E
sceMeAudio_12A811F9 scePopsManInit 0xF03F1227
sceMeAudio_902F30D8 scePopsManDocRead 0xFC56480E
Is this just part of sony's little game game of cat and mouse when they have scePopsMan as sceMeAudio or have I messed up?
yes they thought that thing would stop me or delay me, but the delay was of minutes, if they are happy with delaying minutes...
Probably I shouldn't have been releasing a cfw for each Sony firmware, it is actually better to wait more than 2 versions to create a new one, so they don't change so many things in a single update ;)
jas0nuk
Posts: 137 Joined: Thu Apr 27, 2006 8:00 am
Post
by jas0nuk » Thu Oct 04, 2007 10:41 pm
Hah... a very lame attempt at hiding their PSX DRM routines :p
cory1492
Posts: 216 Joined: Fri Dec 10, 2004 1:49 pm
Post
by cory1492 » Sat Oct 06, 2007 7:30 pm
I have to say, around 90% of these functions appear to be binary identical to 3.51. Mainly NID changes, some "dummy" functions (they return "not supported" error, apparently) thrown in and 1 totally new function... the names in () are from lib doc project site 3.51 bit, I started this before freeplay had let out the libdoc update. Tedious doesn't even begin to describe the process of verifying these.
syscon.prx
Code: Select all
3.71 NID, offset, Name sceSyscon_driver (== compared to 3.51), notes
0x02F86AF6 [0x00001A28] - sceSyscon_driver_02F86AF6 == sceSyscon_driver_A6776FB4 (sceSysconGetBtSwitch)
0x081826B4 [0x000016E8] - sceSysconSuspend // no change
0x08234E6D [0x00002200] - sceSysconReceiveSetParam // no change
0x0A771482 [0x00000000] - sceSysconInit // no change
0x0AAE5C7E [0x00002BA0] - sceSyscon_driver_0AAE5C7E // new dummy?
0x0C836778 [0x000019DC] - sceSysconGetPowerSwitch
0x0D87AA65 [0x00001A1C] - sceSysconGetWlanSwitch
0x0E983319 [0x00001ACC] - sceSyscon_driver_0E983319 == sceSyscon_driver_CE76F93E
0x0EDF1DB6 [0x000033AC] - sceSysconBatteryGetElec
0x1291DF24 [0x00001934] - sceSysconSetUmdSwitchCallback
0x13195616 [0x000017AC] - sceSyscon_driver_13195616 == sceSyscon_driver_58531E69
0x138747DE [0x00001A40] - sceSysconGetUmdSwitch // no change
0x150B626A [0x00003534] - sceSysconBatteryGetElecAD
0x154BA0A7 [0x00002BB8] - sceSysconGetPowerStatus
0x157AFBA4 [0x0000171C] - sceSyscon_driver_157AFBA4 == sceSyscon_driver_5FF1D610
0x1602ED0D [0x00001178] - sceSysconCmdCancel // no change
0x18BFBE65 [0x000027E0] - sceSysconCtrlLED // no change
0x1BB1681D [0x00002C70] - sceSysconGetPowerError
0x1DE07144 [0x0000260C] - sceSysconReadClock
0x1E22F5FD [0x000019CC] - sceSysconIsLowBattery
0x204F23FF [0x000019B0] - sceSyscon_driver_204F23FF // no change
0x208E55DF [0x000028B4] - sceSyscon_driver_208E55DF == sceSyscon_driver_1A08CD66
0x22EACEC8 [0x00003554] - sceSysconBatteryGetTotalElec
0x2749A528 [0x00002CB8] - sceSysconCtrlMsPower
0x2BDD48E2 [0x00002E9C] - sceSyscon_driver_2BDD48E2 == sceSyscon_driver_C5075828
0x2FBE6E8C [0x00001B2C] - sceSysconGetWlanLedCtrl
0x303B9A4F [0x000018A8] - sceSysconSetWlanPowerCallback
0x308F8DE1 [0x00002544] - sceSysconGetPowerSupplyStatus
0x3757AE24 [0x00001A5C] - sceSyscon_driver_3757AE24 == sceSyscon_driver_F953EF93 (sceSysconGetHRWakeupStatus)
0x3869AC67 [0x00001B14] - sceSysconGetLcdPowerCtrl
0x3A1C0E7B [0x000033EC] - sceSysconBatteryGetCap
0x3AC3D2A4 [0x00000EE8] - sceSysconCmdExecAsync // no change
0x3DCDA8AD [0x0000173C] - sceSyscon_driver_3DCDA8AD == sceSyscon_driver_E00BFC9E
0x3DE38336 [0x00002C08] - sceSysconReadPommelReg // no change
0x40CBBD46 [0x0000318C] - sceSyscon_driver_40CBBD46 == sceSyscon_driver_1165C864
0x43E416B5 [0x00002D64] - sceSyscon_driver_43E416B5 == sceSyscon_driver_A975F224
0x4556BC82 [0x0000338C] - sceSysconBatteryGetVolt
0x483D6DBC [0x0000188C] - sceSysconSetWlanSwitchCallback
0x48C6D1F5 [0x00001AF0] - sceSyscon_driver_48C6D1F5 == sceSyscon_driver_8DDA4CA6
0x4C3AE600 [0x00002920] - sceSyscon_driver_4C3AE600 == sceSyscon_driver_19D5A97A
0x4C97D701 [0x00001768] - sceSyscon_driver_4C97D701 == sceSyscon_driver_64FA0B22
0x4E5C5F26 [0x0000299C] - sceSyscon_driver_4E5C5F26 == sceSyscon_driver_E5E35721
0x509B3BAA [0x00002F70] - sceSysconCtrlLcdPower
0x51E062D0 [0x000026C0] - sceSyscon_driver_51E062D0 == sceSyscon_driver_882F0AAB
0x55400D76 [0x0000329C] - sceSyscon_driver_55400D76 // new function??
0x55DD00A3 [0x0000172C] - sceSyscon_driver_55DD00A3 == sceSyscon_driver_9E6E060F
0x56931095 [0x000003A8] - sceSysconResume // no change
0x56D3B236 [0x00001838] - sceSysconSetHPConnectCallback
0x596D450C [0x00001A8C] - sceSyscon_driver_596D450C == sceSyscon_driver_56A73EDD (sceSysconGetBtPowerStatus)
0x597E44AB [0x00002EB8] - sceSyscon_driver_597E44AB == sceSyscon_driver_3C6DB1C5
0x59AE4325 [0x00002F14] - sceSysconCtrlTachyonAwPower
0x5A369F60 [0x00001A00] - sceSyscon_driver_5A369F60 == sceSyscon_driver_E20D08FE
0x5A91FE67 [0x00002790] - sceSysconCtrlPower
0x5B9ACC97 [0x00000E34] - sceSysconCmdExec // no change
0x5BB2FE1A [0x000026DC] - sceSyscon_driver_5BB2FE1A == sceSyscon_driver_00E7B6C2
0x5D4A1319 [0x0000340C] - sceSysconBatteryGetFullCap
0x5EE92F3C [0x0000170C] - sceSysconSetDebugHandlers // no change
0x6044AF57 [0x00002684] - sceSyscon_driver_6044AF57 == sceSyscon_driver_E9FF8226 (sceSysconSetUSBStatus)
0x60C5CCE7 [0x00001A10] - sceSysconGetHPConnect
0x618341C8 [0x000017E4] - sceSysconSetPowerSwitchCallback
0x634BF9C0 [0x00002DC0] - sceSyscon_driver_634BF9C0 == sceSyscon_driver_9C4266FC (sceSysconCtrlBtPower)
0x6448D8B7 [0x00002560] - sceSyscon_driver_6448D8B7 // new dummy?
0x65EB6096 [0x00001F38] - sceSyscon_driver_65EB6096 // no change
0x70370993 [0x000033CC] - sceSysconBatteryGetRCap
0x73415705 [0x00002648] - sceSysconReadAlarm
0x7587FE46 [0x00002E80] - sceSyscon_driver_7587FE46 == sceSyscon_driver_EAB13FBE
0x75F401C4 [0x000025A4] - sceSyscon_driver_75F401C4 == sceSyscon_driver_25F47F96
0x76505A07 [0x00001AFC] - sceSysconGetTachyonAwPowerCtrl
0x765F7E9B [0x00002CF0] - sceSysconCtrlWlanPower
0x7ABD8FB5 [0x000018C4] - sceSyscon_driver_7ABD8FB5 == sceSyscon_driver_04EEFD03
0x7BCC5EAE [0x00001EAC] - sceSyscon_driver_7BCC5EAE // no change
0x7EC5A957 [0x0000251C] - sceSysconGetBaryonVersion // no change
0x806D4D6C [0x00002FE0] - sceSyscon_driver_806D4D6C == sceSyscon_driver_07A0C260
0x80B88F0C [0x00001A6C] - sceSysconGetWlanPowerStatus
0x81BE45A8 [0x00001A9C] - sceSysconGetLeptonPowerCtrl
0x83D3C8B3 [0x00002BAC] - sceSyscon_driver_83D3C8B3 // new dummy?
0x86D4CAD8 [0x000019A4] - sceSysconGetBaryonStatus // no change
0x88833E7E [0x00003088] - sceSyscon_driver_88833E7E // new dummy?
0x8A4519F5 [0x00002C80] - sceSysconCtrlLeptonPower // no change
0x8AAD0246 [0x00002734] - sceSysconPowerStandby
0x8AE7E22C [0x000019EC] - sceSysconIsAlarmed
0x8CBC7987 [0x00002344] - sceSysconResetDevice // no change
0x8D5D0186 [0x0000342C] - sceSysconBatteryGetIFC
0x8FC7A4ED [0x00002DF8] - sceSyscon_driver_8FC7A4ED == sceSyscon_driver_3987FEA3 (sceSysconCtrlUsbPower)
0x92D16FC7 [0x00001638] - sceSysconEnd // no change
0x93022A19 [0x00001AD8] - sceSyscon_driver_93022A19 == sceSyscon_driver_8EDF1AD7 (sceSysconGetBtPowerCtrl)
0x94F9F2FC [0x000019BC] - sceSyscon_driver_94F9F2FC == sceSyscon_driver_3357EE5C
0x96551F0B [0x00001B08] - sceSyscon_driver_96551F0B == sceSyscon_driver_1B17D3E3
0x9717363A [0x000034B4] - sceSysconBatteryGetCycle
0x98F76204 [0x00003514] - sceSysconBatteryGetVoltAD
0x992C22C2 [0x000020E8] - sceSysconSendSetParam // no change
0x99589E82 [0x00003094] - sceSysconBatteryGetStatusCap
0x9AAD9503 [0x0000346C] - sceSysconBatteryGetStatus
0x9BC95744 [0x00001AB4] - sceSysconGetWlanPowerCtrl
0xA0A63470 [0x00002B2C] - sceSysconCtrlVoltage
0xA4BC8211 [0x00001AC0] - sceSyscon_driver_A4BC8211 == sceSyscon_driver_051186F3
0xA4DDA869 [0x00001AA8] - sceSysconGetMsPowerCtrl
0xAC693480 [0x00003594] - sceSyscon_driver_AC693480 == sceSyscon_driver_25F47F96 // ?? slight changes
0xB38A3C23 [0x0000372C] - sceSysconCtrlTachyonVoltage
0xB630C294 [0x00003258] - sceSysconBatteryAuth
0xB6469C36 [0x0000256C] - sceSyscon_driver_B6469C36 == sceSyscon_driver_F775BC34
0xB89F72F7 [0x00002FC8] - sceSyscon_driver_B89F72F7 // new dummy?
0xB9C1B0AC [0x000031F4] - sceSyscon_driver_B9C1B0AC == sceSyscon_driver_68EF0BEF
0xBB741B1F [0x00002538] - sceSyscon_driver_BB741B1F // new dummy?
0xBE3EE489 [0x00003110] - sceSysconBatteryGetInfo
0xBE5790E2 [0x00001B20] - sceSysconGetHRPowerCtrl
0xBFF91302 [0x00003574] - sceSysconBatteryGetChargeTime
0xC3F0112E [0x000018E0] - sceSyscon_driver_C3F0112E == sceSyscon_driver_88FDB279 (sceSysconSetBtSwitchCallback)
0xC4249D8F [0x00002664] - sceSysconWriteAlarm
0xC4D1ABF7 [0x00001800] - sceSysconSetAlarmCallback
0xC5030F49 [0x00001918] - sceSysconSetHoldSwitchCallback
0xCEEF7D84 [0x00001854] - sceSysconSetHRPowerCallback
0xCF9A69B8 [0x000022FC] - sceSyscon_driver_CF9A69B8 == sceSyscon_driver_2EE82492
0xD0A53FA1 [0x00003334] - sceSysconBatteryNop
0xD1B501E8 [0x00002BD4] - sceSysconWritePommelReg // no change
0xD2A651B3 [0x000034F4] - sceSysconBatteryGetTempAD
0xD2EAFD3B [0x0000344C] - sceSysconBatteryGetLimitTime
0xD3E1CD1F [0x000038C0] - sceSysconGetDigitalKey
0xD71FFC69 [0x000017C8] - sceSysconSetLowBatteryCallback
0xD8471760 [0x00003014] - sceSyscon_driver_D8471760 == sceSyscon_driver_3AB3AEEF
0xDAE75283 [0x00001748] - sceSyscon_driver_DAE75283 == sceSyscon_driver_C8D97773
0xDCB05807 [0x0000307C] - sceSyscon_driver_DCB05807 // new dummy?
0xE120B4CC [0x000034D4] - sceSysconBatteryGetSerial
0xE2C1632D [0x00002628] - sceSysconWriteClock
0xE31CA09E [0x0000181C] - sceSysconSetAcSupplyCallback
0xE34122E7 [0x000018FC] - sceSyscon_driver_E34122E7 == sceSyscon_driver_BAAECDF8 (sceSysconSetBtPowerCallback)
0xE5834767 [0x00001A7C] - sceSyscon_driver_E5834767 == sceSyscon_driver_F9FDAFA5
0xE6B74CB9 [0x000024F0] - sceSysconNop // no change
0xE7E87741 [0x00002AF4] - sceSysconGetPommelVersion
0xEB277C88 [0x00002008] - sceSyscon_driver_EB277C88 // no change
0xEDA507CD [0x000026FC] - sceSysconCtrlHRPower
0xEFCBFEF2 [0x00002588] - sceSyscon_driver_EFCBFEF2 == sceSyscon_driver_A9AEF39F
0xF1275EC9 [0x00001A34] - sceSysconGetHoldSwitch
0xF2D2F25C [0x000023FC] - sceSysconPowerSuspend
0xF32FE17B [0x0000336C] - sceSysconBatteryGetTemp
0xF350F666 [0x00001298] - sceSysconCmdSync // no change
0xF9F62BE0 [0x00001870] - sceSyscon_driver_F9F62BE0 == sceSyscon_driver_A8E34316 (sceSysconSetHRWakeupCallback)
0xFAFAE8C4 [0x00002FD4] - sceSyscon_driver_FAFAE8C4 // new dummy?
0xFB148FB6 [0x00002B10] - sceSyscon_driver_FB148FB6 // no change
0xFBBAAEC2 [0x00001A4C] - sceSysconGetHRPowerStatus
0xFDCB487E [0x00001AE4] - sceSyscon_driver_FDCB487E == sceSyscon_driver_EE81C5B1 (sceSysconGetUsbPowerCtrl)
jas0nuk
Posts: 137 Joined: Thu Apr 27, 2006 8:00 am
Post
by jas0nuk » Sun Oct 14, 2007 5:26 am
Hi
Does anyone know if sceKernelGzipDecompress and sceKernelLzrcDecode have changed? Thanks.
Cpasjuste
Posts: 214 Joined: Sun May 29, 2005 8:28 am
Post
by Cpasjuste » Sun Oct 14, 2007 5:47 am
I think that no sceKernel nids have changed.
KickinAezz
Posts: 328 Joined: Sun Jun 03, 2007 10:05 pm
Post
by KickinAezz » Fri Dec 21, 2007 7:27 am
Nice work.
Last edited by
KickinAezz on Sat Jan 26, 2008 1:10 am, edited 1 time in total.
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
moonlight
Posts: 567 Joined: Wed Oct 26, 2005 7:46 pm
Post
by moonlight » Fri Dec 21, 2007 7:47 am
Cpasjuste wrote: I think that no sceKernel nids have changed.
Sony heard you and they have changed them in 3.80 lol
I better finish that nid resolver or 3.XX kernel programming will be a hell.
FreePlay
Posts: 71 Joined: Wed Jan 04, 2006 6:53 pm
Location: Schenectady, New York, USA
Post
by FreePlay » Fri Dec 21, 2007 10:43 pm
KickinAezz wrote: * 0x80020139 = exclusiveload
What does the above mean? [for sceKernelloadmodule]
From what I've seen, usually that it's already loaded, or there are restrictions on the context you must be in to load it.
KickinAezz
Posts: 328 Joined: Sun Jun 03, 2007 10:05 pm
Post
by KickinAezz » Sat Jan 26, 2008 1:12 am
I am looking for these ones but none of these seem to work for 3.80 M33 [which ofcourse has a NID resolver]
EDIT: 3.80M33 Doesn't resolve for sceAudio_driver. I am looking 3.80 versions of these:
for 3.71 ?
"sceAudio_driver",0xE4A9D621,sceAudioChReserve
"sceAudio_driver",0xC2031226,sceAudioChRelease
"sceAudio_driver",0x798FB2A3,sceAudioOutputBlocking
1.5
"sceAudio_driver",0x5EC81C55,sceAudioChReserve
"sceAudio_driver",0x6FC46853,sceAudioChRelease
"sceAudio_driver",0x136CAF51,sceAudioOutputBlocking
Any help appreciated
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
moonlight
Posts: 567 Joined: Wed Oct 26, 2005 7:46 pm
Post
by moonlight » Sat Jan 26, 2008 2:42 am
Oh well, I may resolve it in a future version, i forgot that one.
Anwyays, those functions are also in user mode version of audio, and 3.80 M33 supports user functions in kernel mode, so you could use them and no need to have the new nids.
KickinAezz
Posts: 328 Joined: Sun Jun 03, 2007 10:05 pm
Post
by KickinAezz » Sat Jan 26, 2008 3:00 am
moonlight wrote: Oh well, I may resolve it in a future version, i forgot that one.
Anwyays, those functions are also in user mode version of audio, and 3.80 M33 supports user functions in kernel mode, so you could use them and no need to have the new nids.
Ah thanks. I noticed that(user import access in kernel modules - but dint think of this idea) too
Is it a self made patch or did sony become Homebrew friendly to some extent?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
moonlight
Posts: 567 Joined: Wed Oct 26, 2005 7:46 pm
Post
by moonlight » Sat Jan 26, 2008 3:30 am
It is a patch that was in OE, but was broken since 3.30 and i made again in 3.71 M33-3 when I noticed why it stopped working in 3.40.