3.71 syscalls ?
3.71 syscalls ?
Is there a list of the 3.71 api/syscall around ?
I am guessing you have probably found one already but I have added an option in prxtool to dump the export alias names so you can do initial matching on functions which are exported from both user and kernel but where the nid has changed.
Do- and you'll get alias names after the functions where possible. Obviously this only works on functions which share the same entry point in user and kernel mode, would be slightly harder to make it generic :P
Do-
Code: Select all
prxtool -f -A power.prx
-
- Posts: 110
- Joined: Tue Feb 27, 2007 9:43 pm
- Contact:
Im in the middle of updating the prxdocs with 3.71 nids, though atm without the real names its quite useless so Im updating them too, heres for display:
And because this is an extremely tedious task, any help would be appreciated.
Thanks all.
Code: Select all
Export 1, Name sceDisplay, Functions 21, Variables 0, flags 40010011
Functions:
0x0E20F177 [0x00001844] - sceDisplaySetMode
0x21038913 [0x00002FB8] - sceDisplayIsVsync
0x210EAB3A [0x00002A48] - sceDisplayGetAccumulatedHcount
0x289D82FE [0x00002570] - sceDisplaySetFrameBuf
0x31C4BAA8 [0x000023F4] - sceDisplayGetBrightness
0x36CDFADE [0x000028D0] - sceDisplayWaitVblank
0x46F186C3 [0x00003040] - sceDisplayWaitVblankStartCB
0x4D4E10EC [0x00002F20] - sceDisplayIsVblank
0x69B53541 [0x00002F48] - sceDisplayGetVblankRest
0x773DD3A3 [0x00002B74] - sceDisplayGetCurrentHcount
0x7ED59BC4 [0x000024E8] - sceDisplaySetHoldMode
0x8EB9EC49 [0x00002944] - sceDisplayWaitVblankCB
0x984C27E7 [0x00002FFC] - sceDisplayWaitVblankStart
0x9C6EAAD7 [0x00002F10] - sceDisplayGetVcount
0xA544C486 [0x00002514] - sceDisplaySetResumeMode
0xA83EF139 [0x000029B8] - sceDisplayAdjustAccumulatedHcount
0xB4F378FA [0x000025D8] - sceDisplayIsForeground
0xBF79F646 [0x00002524] - sceDisplayGetResumeMode
0xDBA6C4C4 [0x00002554] - sceDisplayGetFramePerSec
0xDEA197D4 [0x00001E6C] - sceDisplayGetMode
0xEEDA2E54 [0x000025A4] - sceDisplayGetFrameBuf
Export 2, Name sceDisplay_driver, Functions 36, Variables 0, flags 00010011
Functions:
0x044FF282 [0x000025D8] - sceDisplay_driver_044FF282 ==> sceDisplayIsForeground
0x0E20F177 [0x00001844] - sceDisplaySetMode ==> (no change)
0x13AA96B7 [0x00002554] - sceDisplay_driver_13AA96B7 ==> sceDisplayGetFramePerSec
0x16FD49DC [0x00002944] - sceDisplay_driver_16FD49DC ==> sceDisplayWaitVblankCB
0x1CB8CB47 [0x000023F4] - sceDisplay_driver_1CB8CB47 ==> sceDisplayGetBrightness
0x206276C2 [0x000003D8] - sceDisplayInit ==> (no change)
0x28B0525E [0x00003084] - sceDisplay_driver_28B0525E ==> sceDisplay_driver_92C8F8B7
0x32B67781 [0x000017B4] - sceDisplay_driver_32B67781 ==> sceDisplayDisable
0x3737A23B [0x00002F48] - sceDisplay_driver_3737A23B ==> sceDisplayGetVblankRest
0x4AB7497F [0x00002570] - sceDisplay_driver_4AB7497F ==> sceDisplaySetFrameBuf
0x5CD75E4A [0x00002F80] - sceDisplay_driver_5CD75E4A ==> sceDisplay_driver_66961521
0x643F3841 [0x00001F80] - sceDisplay_driver_643F3841 ==> sceDisplay_driver_63E22A26
0x689C0CC2 [0x00002B74] - sceDisplay_driver_689C0CC2 ==> sceDisplayGetCurrentHcount
0x776ADFDB [0x00002380] - sceDisplay_driver_776ADFDB ==> sceDisplaySetBrightness
0x792E8018 [0x00003040] - sceDisplay_driver_792E8018 ==> sceDisplayWaitVblankStartCB
0x7A10289D [0x00000B14] - sceDisplayEnd ==> (no change)
0x7FBA941A [0x000028D0] - sceDisplay_driver_7FBA941A ==> sceDisplayWaitVblank
0x820C6038 [0x000021A0] - sceDisplay_driver_820C6038 ==> sceDisplay_driver_5B5AEFAD
0x8BE19BF8 [0x00002F20] - sceDisplay_driver_8BE19BF8 ==> sceDisplayIsVblank
0x8DECEF47 [0x00002478] - sceDisplay_driver_8DECEF47 ==> sceDisplay_driver_23CE8C51
0x906281D5 [0x000024E8] - sceDisplay_driver_906281D5 ==> sceDisplaySetHoldMode
0x946155FD [0x00001718] - sceDisplay_driver_946155FD ==> sceDisplayEnable
0x96CFAC38 [0x0000231C] - sceDisplay_driver_96CFAC38 ==> (no change)
0xA26AAF53 [0x00002FB8] - sceDisplay_driver_A26AAF53 ==> sceDisplayIsVsync
0xA44B9FFC [0x00002C88] - sceDisplay_driver_A44B9FFC ==> sceDisplay_driver_AE0E8972
0xA86C2E86 [0x000029B8] - sceDisplay_driver_A86C2E86 ==> sceDisplayAdjustAccumulatedHcount
0xA99B94A3 [0x00002A48] - sceDisplay_driver_A99B94A3 ==> sceDisplayGetAccumulatedHcount
0xB43C8B57 [0x00002484] - sceDisplay_driver_B43C8B57 ==> sceDisplay_driver_E4E4C018
0xB685BA36 [0x00002FFC] - sceDisplay_driver_B685BA36 ==> sceDisplayWaitVblankStart
0xC3C340AF [0x00002524] - sceDisplay_driver_C3C340AF ==> sceDisplayGetResumeMode
0xDEA197D4 [0x00001E6C] - sceDisplayGetMode ==> (no change)
0xE4AB9AB5 [0x00002514] - sceDisplay_driver_E4AB9AB5 ==> sceDisplaySetResumeMode
0xE55F0D50 [0x000025F8] - sceDisplay_driver_E55F0D50 ==> (no change)
0xE56B11BA [0x000025A4] - sceDisplay_driver_E56B11BA ==> sceDisplayGetFrameBuf
0xE8466BC2 [0x00002F10] - sceDisplay_driver_E8466BC2 ==> sceDisplayGetVcount
0xF3C6C317 [0x000025EC] - sceDisplay_driver_F3C6C317 ==> sceDisplayGetForegroundLevel
Thanks all.
-
- Posts: 110
- Joined: Tue Feb 27, 2007 9:43 pm
- Contact:
Code: Select all
Export 1, Name sceCtrl, Functions 16, Variables 0, flags 40010011
Functions:
0x02BAAD91 [0x0000138C] - sceCtrlGetSamplingCycle
0x0B588501 [0x00000DA8] - sceCtrlReadLatch
0x1F4011E6 [0x00000B0C] - sceCtrlSetSamplingMode
0x1F803938 [0x000013F4] - sceCtrlReadBufferPositive
0x348D99D4 [0x0000145C] - sceCtrl_348D99D4
0x3A622550 [0x000013BC] - sceCtrlPeekBufferPositive
0x60B81F86 [0x00001410] - sceCtrlReadBufferNegative
0x6841BE1A [0x00001168] - sceCtrlSetRapidFire
0x687660FA [0x00000F88] - sceCtrlGetIdleCancelThreshold
0x6A2774F3 [0x00000BC8] - sceCtrlSetSamplingCycle
0xA68FD260 [0x00001538] - sceCtrlClearRapidFire
0xA7144800 [0x00000EFC] - sceCtrlSetIdleCancelThreshold
0xAF5960F3 [0x00001488] - sceCtrl_AF5960F3
0xB1D0E5CD [0x00000CEC] - sceCtrlPeekLatch
0xC152080A [0x000013D8] - sceCtrlPeekBufferNegative
0xDA6B76A1 [0x00000B80] - sceCtrlGetSamplingMode
Export 2, Name sceCtrl_driver, Functions 27, Variables 0, flags 00010011
Functions:
0x0B7AC633 [0x00001494] - sceCtrl_driver_0B7AC633 ==> sceCtrl_driver_5C56C779
0x28E71A16 [0x00000B0C] - sceCtrl_driver_28E71A16 ==> sceCtrlSetSamplingMode
0x312646B8 [0x0000142C] - sceCtrl_driver_312646B8 ==> sceCtrl_driver_A88E8D22
0x37B6B9E9 [0x0000145C] - sceCtrl_driver_37B6B9E9 ==> sceCtrl_driver_348D99D4
0x454455AC [0x000013F4] - sceCtrl_driver_454455AC ==> sceCtrlReadBufferPositive
0x4DEA8065 [0x00001314] - sceCtrl_driver_4DEA8065 ==> sceCtrlResume
0x5FCA31C5 [0x00000EB4] - sceCtrl_driver_5FCA31C5 ==> sceCtrl_driver_B7CEAED4
0x655DB613 [0x0000144C] - sceCtrl_driver_655DB613 ==> sceCtrl_driver_252D3A8D
0x6D74BF08 [0x00000BC8] - sceCtrl_driver_6D74BF08 ==> sceCtrlSetSamplingCycle
0x6F3B46FB [0x00000EFC] - sceCtrl_driver_6F3B46FB ==> sceCtrlSetIdleCancelThreshold
0x7DF19E59 [0x00000DA8] - sceCtrl_driver_7DF19E59 ==> sceCtrlReadLatch
0x8182D8A0 [0x000013D8] - sceCtrl_driver_8182D8A0 ==> sceCtrlPeekBufferNegative
0x84F8AD25 [0x000012CC] - sceCtrl_driver_84F8AD25 ==> sceCtrlSuspend
0x8FE1D531 [0x0000138C] - sceCtrl_driver_8FE1D531 ==> sceCtrlGetSamplingCycle
0xB1AE49F8 [0x00000000] - sceCtrl_driver_B1AE49F8 ==> sceCtrlGetSamplingCycle
0xBB14FB66 [0x00001524] - sceCtrl_driver_BB14FB66 ==> sceCtrl_driver_CC70B61E
0xBCE989DD [0x00001488] - sceCtrl_driver_BCE989DD ==> sceCtrl_driver_AF5960F3
0xC4AAD55F [0x000013BC] - sceCtrl_driver_C4AAD55F ==> sceCtrlPeekBufferPositive
0xCE223F52 [0x00001168] - sceCtrl_driver_CE223F52 ==> sceCtrlSetRapidFire
0xD30D9B80 [0x00000120] - sceCtrl_driver_D30D9B80 ==> sceCtrlEnd
0xD7F23B0B [0x00000B80] - sceCtrl_driver_D7F23B0B ==> sceCtrlGetSamplingMode
0xDB3CD94C [0x00001104] - sceCtrl_driver_DB3CD94C ==> sceCtrl_driver_5E77BC8A
0xDB6F93CB [0x00001050] - sceCtrl_driver_DB6F93CB ==> sceCtrl_driver_7CA723DC
0xEA6EDF43 [0x00000CEC] - sceCtrl_driver_EA6EDF43 ==> sceCtrlPeekLatch
0xEF06B8B2 [0x00001538] - sceCtrl_driver_EF06B8B2 ==> sceCtrlClearRapidFire
0xF3630971 [0x00000F88] - sceCtrl_driver_F3630971 ==> sceCtrlGetIdleCancelThreshold
0xFF847C31 [0x00001410] - sceCtrl_driver_FF847C31 ==> sceCtrlReadBufferNegative
I was just trying to have a look at this but i cant seem to get the PRXTool from the svn to compile:
I have to admit that i m new to cygwin and subversion so i dont have any idea how to use stuff like bootstrap :P
Code: Select all
Fox@Fox /cygdrive/c/PRXTool
$ ./bootstrap
./bootstrap: line 7: $'\r': command not found
./bootstrap: line 10: $'\r': command not found
./bootstrap: line 11: $'\r': command not found
./bootstrap: line 14: $'\r': command not found
./bootstrap: line 15: syntax error near unexpected token `$'\r''
'/bootstrap: line 15: `usage()
use the cygwin installer to install ash, and do "ash ./bootstrap" etc to make it build. Either that or use a file editor like notepad2 or similar to convert the bootstrap and other script txt files to unix format (line endings are the problem). One of the programs you'd have used to download the source didn't keep line endings in the proper unix format.
ata.prx
Code: Select all
NID function comment
9DF60418 sceAtaStart
82C64EEC sceAtaStop
AC800B1D sceAtaDisableClkIo (Unchanged)
D1E6E175 sceAtaEnableClkIo (Unchanged)
A8896D56 sceAtaGetAtaDrive
6C58F096 sceAtaWaitBusBusy1 (Unchanged)
F0C40C4E sceAtaWaitBusBusy2
3AA3FA39 sceAtaSelectDevice (Unchanged)
3B9D9648 sceAta_driver_3B9D9648 (3.52: sceAta_driver_1F05F48C)
9FA09231 sceAtaAccessDataPort
D7A7D6F4 sceAta_driver_D7A7D6F4 (3.52: sceAta_driver_84E14690)
6E639701 sceAtaScanDevice
110D3739 sceAtaSetDriveStat (Unchanged)
BBC24FEB sceAtaWaitBusBusyIE
57F40CDD sceAtaAccessDataPortIE
36373DA5 sceAta_driver_36373DA5 (3.52: sceAta_driver_BA09142A)
BFD557B6 sceAta_driver_BFD557B6 (3.52: sceAta_driver_C7B02795)
DF88CF06 sceAta_driver_DF88CF06 (3.52: sceAta_driver_EFE3C7FA)
161B1D95 sceAtaGetIntrStateFlag
54C96BB4 sceAtaSetIntrStateFlag
68DEA2FF sceAtaClearIntrStateFlag
956586C4 sceAta_driver_956586C4 (3.52: sceAta_driver_638EEA14)
3AFFD484 sceAta_driver_3AFFD484 (3.52: sceAta_driver_B5982381)
C0D7D5E5 sceAtaSetupAtaBlock
783B75C5 sceAta_driver_783B75C5 (3.52: sceAta_driver_ACCEE63F)
657AF020 sceAtaCheckDeviceReady
62035458 sceAtaSetDeviceIntr
71CA9006 sceAta_driver_71CA9006 (3.52: sceAta_driver_2AE26E08)
5519AA80 sceAtaSetBusErrorIntr
F42769CC sceAta_driver_F42769CC (3.52: sceAta_driver_689FCB7D)
A1B5F1A1 sceAtaGetAtaCallBack
C144826E sceAta_driver_C144826E (Unchanged)
DC560161 sceAtaGetDriveStat
0D76C75C sceAta_driver_0D76C75C (3.52: sceAta_driver_ACFF7CB5)
384805DA sceAta_driver_384805DA (3.52: sceAta_driver_3A61BF97)
4A6758D3 sceAtaSetIntrFlag
79955082 sceAtaGetIntrFlag
7BBA095C sceAtaClearDriveStat (Unchanged)
12805193 sceAta_driver_12805193 (Unchanged)
6A921826 sceAta_driver_6A921826 (3.52: sceAta_driver_E3E1EED7)
893634FF sceAta_driver_893634FF (3.52: sceAta_driver_AE100256)
73751A53 sceAta_driver_73751A53 (3.52: sceAta_driver_F76A5B9C)
4222D6F3 sceAta_driver_4222D6F3 (Unchanged)
4D225674 sceAta_driver_4D225674 (Unchanged)
F24D0881 sceAtaAhbEnableIntr
E57D3109 sceAta_driver_E57D3109 (3.52: sceAta_driver_76C0923D)
93505AC1 sceAta_driver_93505AC1 (3.52: sceAta_driver_F61EAFC0)
4F1454E9 sceAta_driver_4F1454E9 (3.52: sceAta_driver_0B53CAD8)
BB103FBB sceAtaExecSetFeaturesCmd
C74F04B7 sceAtaExecPacketCmd (Unchanged)
8FBCFB4D sceAtaExecPacketCmdIE
A7410B35 sceAta_driver_A7410B35 (3.52: sceAta_driver_FC7B031E)
8E0252BB sceAta_driver_8E0252BB (3.52: sceAta_driver_BE07B3A7)
2531D8DB sceAta_driver_2531D8DB (3.52: sceAta_driver_6FD8E2AB)
E46AE73B sceAta_driver_E46AE73B (3.52: sceAta_driver_7C6B31D8)
1124799D sceAtaIsUmdDrive
A2DBC257 sceAta_driver_A2DBC257 (3.52: sceAta_driver_6FC42083)
-
- Posts: 110
- Joined: Tue Feb 27, 2007 9:43 pm
- Contact:
Yea sorry soon, just updating the most common used functions first.Cpasjuste wrote:SilverSpring you havn't updated your website with this syscall yet ?
Code: Select all
Export 1, Name scePower, Functions 58, Variables 0, flags 40010011
Functions:
0x0074EF9B [0x00002AE0] - scePowerGetResumeCount
0x0442D852 [0x00002A78] - scePower_0442D852
0x04B7766E [0x000006D4] - scePowerRegisterCallback
0x0AFD0D8B [0x000053CC] - scePowerIsBatteryExist
0x0CD21B1F [0x00002840] - scePower_0CD21B1F
0x165CE085 [0x00002854] - scePower_165CE085
0x1E490401 [0x000053DC] - scePowerIsBatteryCharging
0x2085D15D [0x00005484] - scePowerGetBatteryLifePercent
0x23436A4A [0x00005554] - scePower_23436A4A
0x23C31FFE [0x00000FE4] - scePower_23C31FFE
0x27F3292C [0x0000532C] - scePowerBatteryUpdateInfo
0x2875994B [0x00002A3C] - scePower_2875994B
0x28E12023 [0x000054B8] - scePowerGetBatteryTemp
0x2B51FE2F [0x00000E90] - scePower_2B51FE2F
0x2B7C7CF4 [0x000029C4] - scePowerRequestStandby
0x34F9C463 [0x00003EBC] - scePowerGetPllClockFrequencyInt
0x3951AF53 [0x00001440] - scePowerEncodeUBattery
0x442BFBAC [0x00000BB4] - scePower_442BFBAC
0x478FE6F5 [0x00003EA4] - scePowerGetBusClockFrequency
0x483CE86B [0x000054EC] - scePowerGetBatteryVolt
0x545A7F3C [0x00003F5C] - scePower_545A7F3C ==> no longer a kernel export, user export only
0x737486F2 [0x00003ED4] - scePowerSetClockFrequency ==> no longer a kernel export, user export only
0x78A1A796 [0x00004F98] - scePower_78A1A796
0x7F30B3B1 [0x00003020] - scePowerIdleTimerEnable
0x7FA406DD [0x0000296C] - scePowerIsRequest
0x843FBF43 [0x00003280] - scePowerSetCpuClockFrequency
0x862AE1A6 [0x0000512C] - scePowerGetBatteryElec
0x87440F5E [0x0000539C] - scePowerIsPowerOnline
0x8EFB3FA2 [0x00005028] - scePowerGetBatteryLifeTime
0x94F5A53F [0x00004FF4] - scePowerGetBatteryRemainCapacity
0x972CE941 [0x0000308C] - scePowerIdleTimerDisable
0x9BADB3EB [0x00003EB0] - scePowerGetBusClockFrequencyFloat
0xA4E93389 [0x00003F40] - scePower_A4E93389 ==> no longer a kernel export, user export only
0xA9D22232 [0x00000914] - scePower_A9D22232
0xAC32C9CC [0x00002A00] - scePowerRequestSuspend
0xB1A52C83 [0x00003E98] - scePowerGetCpuClockFrequencyFloat
0xB3EDD801 [0x00001264] - scePower_B3EDD801
0xB4432BC8 [0x00004EF8] - scePowerGetBatteryChargingStatus
0xB8D7B3FB [0x00003350] - scePowerSetBusClockFrequency
0xB999184C [0x00005390] - scePowerGetLowBatteryCapacity
0xBAFA3DF0 [0x00000990] - scePower_BAFA3DF0
0xBD681969 [0x00003EA4] - scePowerGetBusClockFrequencyInt
0xCA3D34C1 [0x0000290C] - scePowerUnlock
0xCB49F5CE [0x00005520] - scePower_CB49F5CE
0xD3075926 [0x00005400] - scePowerIsLowBattery
0xD6D016EF [0x000028DC] - scePowerLock
0xDB62C9CF [0x00002988] - scePowerCancelRequest
0xDB9D28DD [0x00000894] - scePowerUnregitserCallback
0xDFA8BAF8 [0x00000894] - scePowerUnregisterCallback
0xE8E4E204 [0x00005384] - scePower_E8E4E204
0xEA382A27 [0x00003EC8] - scePowerGetPllClockFrequencyFloat
0xEBD177D6 [0x00003F78] - scePower_EBD177D6
0xEDC13FE5 [0x00002FCC] - scePowerGetIdleTimer
0xEFD3C963 [0x00002C78] - scePowerTick
0xFA97A599 [0x00001114] - scePower_FA97A599
0xFD18A0FF [0x00005450] - scePowerGetBatteryFullCapacity
0xFDB5BFE9 [0x00003E8C] - scePowerGetCpuClockFrequencyInt
0xFEE03A2F [0x00003E8C] - scePowerGetCpuClockFrequency
Export 2, Name scePower_driver, Functions 83, Variables 0, flags 00010011
Functions:
0x00C45EEF [0x00003A24] - scePower_driver_00C45EEF ==> scePower_driver_E0B7A95D
0x073462C1 [0x00003EB0] - scePower_driver_073462C1 ==> scePowerGetBusClockFrequencyFloat
0x09FD9CFC [0x00003E58] - scePower_driver_09FD9CFC ==> scePowerLimitPllClock
0x115EF5AE [0x00003D0C] - scePower_driver_115EF5AE ==> scePower_driver_DD27F119
0x14267256 [0x00003DC4] - scePower_driver_14267256 ==> scePower_driver_8762BCE6
0x152C1C97 [0x00002FCC] - scePower_driver_152C1C97 ==> scePowerGetIdleTimer
0x1688935C [0x00003EA4] - scePower_driver_1688935C ==> scePowerGetBusClockFrequency
0x17CB450B [0x00003E98] - scePower_driver_17CB450B ==> scePowerGetCpuClockFrequencyFloat
0x191A3848 [0x00004D64] - scePower_driver_191A3848 ==> scePower_driver_90285886
0x1BA2FCAE [0x00002CE8] - scePowerSetIdleCallback ==> (no change)
0x1E4418AB [0x00001114] - scePower_driver_1E4418AB ==> scePowerVolatileMemTryLock
0x208DBFFA [0x00000D48] - scePower_driver_208DBFFA ==> scePower_driver_C71EE866
0x24085F5C [0x00003280] - scePower_driver_24085F5C ==> scePowerSetCpuClockFrequency
0x268731BE [0x00001264] - scePower_driver_268731BE ==> scePowerVolatileMemUnlock
0x288313B1 [0x00002854] - scePower_driver_288313B1 ==> scePower_driver_165CE085
0x30A2475B [0x0000308C] - scePower_driver_30A2475B ==> scePowerIdleTimerDisable
0x35C61565 [0x00003CE4] - scePower_driver_35C61565 ==> scePower_driver_55D2D789
0x39C5677E [0x00005028] - scePower_driver_39C5677E ==> scePowerGetBatteryLifeTime
0x3C5E45D8 [0x000053DC] - scePower_driver_3C5E45D8 ==> scePowerIsBatteryCharging
0x3D5414C9 [0x00005554] - scePower_driver_3D5414C9 ==> scePower_driver_23436A4A
0x42F9B037 [0x00002840] - scePower_driver_42F9B037 ==> scePower_driver_0CD21B1F
0x4431FF21 [0x00000D58] - scePower_driver_4431FF21 ==> scePower_driver_D66EF08D
0x475CC46D [0x00003E10] - scePower_driver_475CC46D ==> scePowerLimitScCpuClock
0x493E8BBD [0x00003DEC] - scePower_driver_493E8BBD ==> scePower_driver_CAE2A4CA
0x4CE516FB [0x00000E9C] - scePower_driver_4CE516FB ==> scePower_driver_E8685403
0x51B74288 [0x00005384] - scePower_driver_51B74288 ==> scePower_driver_E8E4E204
0x54624251 [0x00000DA8] - scePower_driver_54624251 ==> scePowerWlanActivate
0x54A35829 [0x000053CC] - scePower_driver_54A35829 ==> scePowerIsBatteryExist
0x55D9ACC8 [0x0000512C] - scePower_driver_55D9ACC8 ==> scePowerGetBatteryElec
0x5EBAD646 [0x00000FE4] - scePower_driver_5EBAD646 ==> scePowerVolatileMemLock
0x668C3D9F [0x00000E84] - scePower_driver_668C3D9F ==> scePower_driver_D7B9C925
0x697A9127 [0x00003DA0] - scePower_driver_697A9127 ==> scePower_driver_53C1255D
0x6A985D34 [0x00002950] - scePower_driver_6A985D34 ==> scePowerUnlock
0x6B5FD1CE [0x0000296C] - scePower_driver_6B5FD1CE ==> scePowerIsRequest
0x6ECBC5FF [0x00004EF8] - scePower_driver_6ECBC5FF ==> scePowerGetBatteryChargingStatus
0x715A56FB [0x0000132C] - scePower_driver_715A56FB ==> scePowerLock
0x722D5D34 [0x00000E48] - scePower_driver_722D5D34 ==> scePowerWlanDeactivate
0x78EC8DC9 [0x00004F98] - scePower_driver_78EC8DC9 ==> scePower_driver_78A1A796
0x7E7D8CB7 [0x00003CC0] - scePower_driver_7E7D8CB7 ==> scePower_driver_57A098B4
0x7F64910E [0x00001440] - scePower_driver_7F64910E ==> scePowerEncodeUBattery
0x86795186 [0x0000539C] - scePower_driver_86795186 ==> scePowerIsPowerOnline
0x8D5046AF [0x00004AAC] - scePower_driver_8D5046AF ==> (new function)
0x926860D3 [0x00000E90] - scePower_driver_926860D3 ==> scePower_driver_2B51FE2F
0x93444D33 [0x00003EBC] - scePower_driver_93444D33 ==> scePowerGetPllClockFrequencyInt
0x959ECDDB [0x00002860] - scePower_driver_959ECDDB ==> scePowerRebootStart
0x9B1A9C5F [0x000029C4] - scePower_driver_9B1A9C5F ==> scePowerRequestStandby
0x9C40E184 [0x00002C78] - scePower_driver_9C40E184 ==> scePowerTick
0x9C98446E [0x00005484] - scePower_driver_9C98446E ==> scePowerGetBatteryLifePercent
0x9CE06934 [0x00000000] - scePowerInit ==> (no change)
0x9D2D23AD [0x00003D7C] - scePower_driver_9D2D23AD ==> scePower_driver_4E759486
0x9EAEFE67 [0x00000990] - scePower_driver_9EAEFE67 ==> scePowerGetCallbackMode
0x9F831BE7 [0x00002A3C] - scePower_driver_9F831BE7 ==> scePower_driver_2875994B
0x9FEA8AA8 [0x00003D54] - scePower_driver_9FEA8AA8 ==> scePower_driver_06C83A4F
0xA09FC577 [0x00004CC4] - scePower_driver_A09FC577 ==> scePower_driver_733F973B
0xA3A1DE5B [0x00000914] - scePower_driver_A3A1DE5B ==> scePowerSetCallbackMode
0xA70F1F79 [0x0000532C] - scePower_driver_A70F1F79 ==> scePowerBatteryUpdateInfo
0xA73C6382 [0x00004AB8] - scePower_driver_A73C6382 ==> scePower_driver_166922EC
0xA8D09A9A [0x00002A00] - scePower_driver_A8D09A9A ==> scePowerRequestSuspend
0xAD5BB433 [0x00000CEC] - scePowerEnd ==> (no change)
0xAF70529A [0x00003350] - scePower_driver_AF70529A ==> scePowerSetBusClockFrequency
0xB3DCEF11 [0x00005390] - scePower_driver_B3DCEF11 ==> scePowerGetLowBatteryCapacity
0xBAF044D8 [0x00002AE0] - scePower_driver_BAF044D8 ==> scePowerGetResumeCount
0xBF1DA143 [0x00003EC8] - scePower_driver_BF1DA143 ==> scePowerGetPllClockFrequencyFloat
0xC87DEC73 [0x00000BB4] - scePower_driver_C87DEC73 ==> scePower_driver_442BFBAC
0xCE1B9997 [0x00003E34] - scePower_driver_CE1B9997 ==> scePowerLimitScBusClock
0xD0513342 [0x00002AF0] - scePower_driver_D0513342 ==> scePower_driver_F535D928
0xD37699CE [0x00003B78] - scePower_driver_D37699CE ==> scePower_driver_C23AC778
0xD423DE24 [0x00003D30] - scePower_driver_D423DE24 ==> scePower_driver_75F91FE4
0xD58A119A [0x00003020] - scePower_driver_D58A119A ==> scePowerIdleTimerEnable
0xD6E50D7B [0x000006D4] - scePower_driver_D6E50D7B ==> scePowerRegisterCallback
0xD78EBD62 [0x00003E7C] - scePower_driver_D78EBD62 ==> scePower_driver_F06B96D4
0xDB62C9CF [0x00002988] - scePowerCancelRequest ==> (no change)
0xDBBC8820 [0x00000894] - scePower_driver_DBBC8820 ==> scePowerUnregisterCallback
0xDF8C421D [0x00005520] - scePower_driver_DF8C421D ==> scePower_driver_CB49F5CE
0xE65F00BD [0x00002A78] - scePower_driver_E65F00BD ==> scePower_driver_0442D852
0xE75602F2 [0x00004B78] - scePower_driver_E75602F2 ==> scePower_driver_DD3D4DAC
0xE7A7ACE1 [0x00005400] - scePower_driver_E7A7ACE1 ==> scePowerIsLowBattery
0xEBD177D6 [0x00003F78] - scePower_driver_EBD177D6 ==> (no change)
0xF393BD85 [0x000054EC] - scePower_driver_F393BD85 ==> scePowerGetBatteryVolt
0xF3B7966A [0x00004FF4] - scePower_driver_F3B7966A ==> scePowerGetBatteryRemainCapacity
0xFD607FCA [0x000054B8] - scePower_driver_FD607FCA ==> scePowerGetBatteryTemp
0xFDB5BFE9 [0x00003E8C] - scePowerGetCpuClockFrequencyInt ==> (no change)
0xFF6450C3 [0x00005450] - scePower_driver_FF6450C3 ==> scePowerGetBatteryFullCapacity
Here is the build file for the sceUmd kernel library with the equivalent nids:
Code: Select all
.set noreorder
#include "pspimport.s"
// Build List
// sceUmd_0000.o sceUmd_0001.o sceUmd_0002.o sceUmd_0003.o sceUmd_0004.o sceUmd_0005.o sceUmd_0006.o sceUmd_0007.o sceUmd_0008.o sceUmd_0009.o sceUmd_0010.o sceUmd_0011.o sceUmd_0012.o sceUmd_0013.o sceUmd_0014.o sceUmd_0015.o sceUmd_0016.o sceUmd_0017.o sceUmd_0018.o sceUmd_0019.o sceUmd_0020.o sceUmd_0021.o sceUmd_0022.o sceUmd_0023.o sceUmd_0024.o sceUmd_0025.o sceUmd_0026.o sceUmd_0027.o sceUmd_0028.o sceUmd_0029.o sceUmd_0030.o sceUmd_0031.o sceUmd_0032.o sceUmd_0033.o sceUmd_0034.o sceUmd_0035.o
#ifdef F_sceUmd_0000
IMPORT_START "sceUmd",0x00010011
#endif
#ifdef F_sceUmd_0001
IMPORT_FUNC "sceUmd",0x041CDF0B,sceUmdSetAssignedFlag
#endif
#ifdef F_sceUmd_0002
IMPORT_FUNC "sceUmd",0x0FB60AAC,sceUmdGetDriveStatus
#endif
#ifdef F_sceUmd_0003
IMPORT_FUNC "sceUmd",0x1030D1D4,sceUmdRegisterUMDCallBack
#endif
#ifdef F_sceUmd_0004
IMPORT_FUNC "sceUmd",0x144AEF36,sceUmdRegisterActivateCallBack
#endif
#ifdef F_sceUmd_0005
IMPORT_FUNC "sceUmd",0x166A17CC,sceUmdReplaceProhibit
#endif
#ifdef F_sceUmd_0006
IMPORT_FUNC "sceUmd",0x1CEBD8F9,sceUmdGetUserEventFlagId
#endif
#ifdef F_sceUmd_0007
IMPORT_FUNC "sceUmd",0x29E04881,sceUmdSetSuspendResumeMode
#endif
#ifdef F_sceUmd_0008
IMPORT_FUNC "sceUmd",0x4BFC743B,sceUmdUnRegisterGetUMDInfoCallBack
#endif
#ifdef F_sceUmd_0009
IMPORT_FUNC "sceUmd",0x4F87AD56,sceUmdRegisterGetUMDInfoCallBack
#endif
#ifdef F_sceUmd_0010
IMPORT_FUNC "sceUmd",0x5174CDBE,sceUmdWaitDriveStatCB
#endif
#ifdef F_sceUmd_0011
IMPORT_FUNC "sceUmd",0x57E406EE,sceUmdRegisterReplaceCallBack
#endif
#ifdef F_sceUmd_0012
IMPORT_FUNC "sceUmd",0x626B1CF3,sceUmdGetErrorStatus
#endif
#ifdef F_sceUmd_0013
IMPORT_FUNC "sceUmd",0x64FDF83E,sceUmdReplacePermit
#endif
#ifdef F_sceUmd_0014
IMPORT_FUNC "sceUmd",0x6C2F4E69,sceUmd_075F1E0B
#endif
#ifdef F_sceUmd_0015
IMPORT_FUNC "sceUmd",0x6CE52E0B,sceUmdRegisterDeactivateCallBack
#endif
#ifdef F_sceUmd_0016
IMPORT_FUNC "sceUmd",0x70E69901,sceUmdUnRegisterDeactivateCallBack
#endif
#ifdef F_sceUmd_0017
IMPORT_FUNC "sceUmd",0x7C821F7F,sceUmdGetDetectUMDCallBackId
#endif
#ifdef F_sceUmd_0018
IMPORT_FUNC "sceUmd",0x7DC8CE8F,sceUmdClearDriveStatus
#endif
#ifdef F_sceUmd_0019
IMPORT_FUNC "sceUmd",0x8627B4CB,sceUmd_F8352373
#endif
#ifdef F_sceUmd_0020
IMPORT_FUNC "sceUmd",0x8EF08FCE,sceUmdWaitDriveStat
#endif
#ifdef F_sceUmd_0021
IMPORT_FUNC "sceUmd",0x90EBF462,sceUmdGetSuspendResumeMode
#endif
#ifdef F_sceUmd_0022
IMPORT_FUNC "sceUmd",0x999B8F89,sceUmdUnRegisterActivateCallBack
#endif
#ifdef F_sceUmd_0023
IMPORT_FUNC "sceUmd",0xAB82E180,sceUmdCancelWaitDriveStat
#endif
#ifdef F_sceUmd_0024
IMPORT_FUNC "sceUmd",0xB5990C6B,sceUmdWaitDriveStatWithTimer
#endif
#ifdef F_sceUmd_0025
IMPORT_FUNC "sceUmd",0xB5C92409,sceUmdSetErrorStatus
#endif
#ifdef F_sceUmd_0026
IMPORT_FUNC "sceUmd",0xC4F96162,sceUmd_4BA25F4A
#endif
#ifdef F_sceUmd_0027
IMPORT_FUNC "sceUmd",0xC6183D47,sceUmdActivate
#endif
#ifdef F_sceUmd_0028
IMPORT_FUNC "sceUmd",0xE0CB3442,sceUmdUnRegisterUMDCallBack
#endif
#ifdef F_sceUmd_0029
IMPORT_FUNC "sceUmd",0xE6EE2967,sceUmd_659587F7
#endif
#ifdef F_sceUmd_0030
IMPORT_FUNC "sceUmd",0xE83742BA,sceUmdDeactivate
#endif
#ifdef F_sceUmd_0031
IMPORT_FUNC "sceUmd",0xF2D0EDFB,sceUmdCheckMedium
#endif
#ifdef F_sceUmd_0032
IMPORT_FUNC "sceUmd",0xF35A78AE,sceUmdSetDriveStatus
#endif
#ifdef F_sceUmd_0033
IMPORT_FUNC "sceUmd",0xF635C9F7,sceUmd_5469DC37
#endif
#ifdef F_sceUmd_0034
IMPORT_FUNC "sceUmd",0xF7146B6C,sceUmdGetAssignedFlag
#endif
#ifdef F_sceUmd_0035
IMPORT_FUNC "sceUmd",0xF9A3B9B5,sceUmdGetDiscInfo
#endif
Code: Select all
IMPORT_START "sceReg_driver",0x00010000
IMPORT_FUNC "sceReg_driver",0x0627AD6B,sceRegOpenRegistry
IMPORT_FUNC "sceReg_driver",0x53CB4B85,sceRegOpenCategory
IMPORT_FUNC "sceReg_driver",0x1D4E8BC4,sceRegGetKeyInfo
IMPORT_FUNC "sceReg_driver",0xA7C7B18E,sceRegGetKeyValue
IMPORT_FUNC "sceReg_driver",0xFC518070,sceRegFlushCategory
IMPORT_FUNC "sceReg_driver",0x1349B1B1,sceRegCloseCategory
IMPORT_FUNC "sceReg_driver",0xCA3CEDE6,sceRegFlushRegistry
IMPORT_FUNC "sceReg_driver",0x8B5C6948,sceRegCloseRegistry
IMPORT_FUNC "sceReg_driver",0xFDD753D1,sceRegSetKeyValue
IMPORT_FUNC "sceReg_driver",0x156AD3A9,sceRegCreateKey
by comparing them with 3.5 it looks like they areJ.F. wrote:Seems the values for sceSysregMeResetEnable, sceSysregMeBusClockEnable, and sceSysregMeResetDisable are different now. My ME code that worked on 3.60 doesn't work on 3.71. Where are these found?
Code: Select all
sceSysreg_driver_A9997109 sceSysregMeResetEnable
sceSysreg_driver_3199CF1C sceSysregMeBusClockEnable
sceSysreg_driver_76220E94 sceSysregMeResetDisable
has anyone made a program to automatically compare these and output the new nids yet?
Last edited by Viper8896 on Tue Oct 02, 2007 9:58 pm, edited 1 time in total.
I do set k1. I'll try it with the new nids and see what happens. Thanks. :)Viper8896 wrote:by comparing them with 3.5 it looks like they areJ.F. wrote:Seems the values for sceSysregMeResetEnable, sceSysregMeBusClockEnable, and sceSysregMeResetDisable are different now. My ME code that worked on 3.60 doesn't work on 3.71. Where are these found?if at first you dont succeed try just setting k1.Code: Select all
sceSysreg_driver_A9997109 sceSysregMeResetEnable sceSysreg_driver_3199CF1C sceSysregMeResetDisable sceSysreg_driver_76220E94 sceSysregMeResetDisable
has anyone made a program to automatically compare these and output the new nids yet?
It'll be much easier on folks when the new nids get worked into the sdk.
EDIT: That worked. By the way, the middle one is sceSysregMeBusClockEnable. You accidentally put ResetDisable twice. :)
So my ME init routine is quite a bit like cooleyes' SetAudioFrequency routine in that it checks the devkitVersion and does the old functions for < 3.71 and these new ones for 3.71 or newer.
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;
}
Last edited by J.F. on Tue Oct 02, 2007 9:39 pm, edited 1 time in total.
only user / kernel compare. just rebuild prxtool.
as for comparing the disasm i don't think a program will work right as some functions had some little differences and some have different jumps (because of the change in the functions).
so doing something to automatically compare them would give also false positive/negative results
as for comparing the disasm i don't think a program will work right as some functions had some little differences and some have different jumps (because of the change in the functions).
so doing something to automatically compare them would give also false positive/negative results
the nids have definitly changed. i mean if you use them and it dont work then setting k1 will you help you. using old nids wont get you any where.J.F. wrote:
I do set k1. I'll try it with the new nids and see what happens. Thanks. :)
It'll be much easier on folks when the new nids get worked into the sdk.
Yep. As I noted above, it was the nids all right. I did like cooleyes and made it handle both via the devkitVersion.Viper8896 wrote:the nids have definitly changed. i mean if you use them and it dont work then setting k1 will you help you. using old nids wont get you any where.J.F. wrote:
I do set k1. I'll try it with the new nids and see what happens. Thanks. :)
It'll be much easier on folks when the new nids get worked into the sdk.
I doubt very much these new nids will get merged into the sdk. Why? Because all we will end up with is having to tweak them everytime Sony release a new firmware (I fully expect them at some point to completely randomise the entire kernel nids) and it just isn't worth the effort of tracking for ever more and lets face it Sony know that :)
-
- Posts: 110
- Joined: Tue Feb 27, 2007 9:43 pm
- Contact:
Sony are probably going to randomize the nids with each fw update so there'll be no easy way to add it to pspsdk (unless an uber intelligent app can be made to automatically compare. Set a threshold of the likelyhood that 2 functions are the same by comparing the number of difference and if above a certain threshold, set likely the same function. These ones can be check manually afterwards if needed, but it'll be helpful for those functions which stay binary identical between fw updates).
The only absolute guaranteed way to get the correct arg is by disasm.Cpasjuste wrote:Well, this is a little of topic, but how do you find the variable of a function ? for exemple "int sceImposeCheckVideoOut(int *val)", how do you find "(int *val), you need to disasemble ?
On another note I am pondering how best to sort this out, outside of trying to track sony's changes with the sdk. My general though is to put the onus on the user and create a binary patcher which parses the prx file and "fixes" the nids for a specific version of the firmware. That way a) you could potentially fix legacy apps and b) the developer creates one version and updates are made for future stuff. I can probably knock something together from my prxgen tool in the sdk (as after all it only affect kernel prxes anyway).
Okay so I spent a hour or so and wrote something up, basically I have added a new function to the psp-fixup-imports tool to take a map file as well (note you can apply the tool to a pre-fixup prx or previously fixed up prx file). The format of the map file is very simple, library names are specified using @libraryname then afterwards there are the entries for the nid mappings. This can either be two hexadecimal numbers separated by a colon or it can be the known function name (which resolves to a NID) colon then the mapping NID. So for example for the display driver:
And run the tool with:
That uses both named maps and nid maps, you can add comments with a # in front of the line if you need to. And you can include as many libraries as you like in a single file so you can build a specific 3.71 mapping file. Have fun :)
P.S. there is also a -r option which will do the opposite mapping, I guess to ensure it all works :P
Code: Select all
@sceDisplay_driver
sceDisplayIsForeground:0x044FF282
sceDisplayGetFramePerSec:0x13AA96B7
sceDisplayWaitVblankCB:0x16FD49DC
sceDisplayGetBrightnes:0x1CB8CB47
0x92C8F8B7:0x28B0525E
sceDisplayDisable:0x32B67781
sceDisplayGetVblankRest:0x3737A23B
sceDisplaySetFrameBuf:0x4AB7497F
0x66961521:0x5CD75E4A
0x63E22A26:0x643F3841
sceDisplayGetCurrentHcount:0x689C0CC2
sceDisplaySetBrightness:0x776ADFDB
sceDisplayWaitVblankStartCB:0x792E8018
sceDisplayWaitVblank:0x7FBA941A
0x5B5AEFAD:0x820C6038
sceDisplayIsVblank:0x8BE19BF8
0x23CE8C51:0x8DECEF47
sceDisplaySetHoldMode:0x906281D5
sceDisplayEnable:0x946155FD
sceDisplayIsVsync:0xA26AAF53
0xAE0E8972:0xA44B9FFC
sceDisplayAdjustAccumulatedHcount:0xA86C2E86
sceDisplayGetAccumulatedHcount:0xA99B94A3
0xE4E4C018:0xB43C8B57
sceDisplayWaitVblankStart:0xB685BA36
sceDisplayGetResumeMode:0xC3C340AF
sceDisplaySetResumeMode:0xE4AB9AB5
sceDisplayGetFrameBuf:0xE56B11BA
sceDisplayGetVcount:0xE8466BC2
sceDisplayGetForegroundLevel:0xF3C6C317
Code: Select all
psp-fixup-imports -m display.map my.prx
P.S. there is also a -r option which will do the opposite mapping, I guess to ensure it all works :P
Last edited by TyRaNiD on Wed Oct 03, 2007 10:52 am, edited 1 time in total.
This doesn't affect user mode apps, only kernel apps. You _could_ provide a set of bridging libraries but might be more of a pain maintenance wise, maybe. Plus it requires munging something anyway so why not mung the binary :P And depending on how the application is using its imports things could go astray, e.g. in remotejoy I find the real function location from the export, if it was a shim then I would actually end up at the shim function. It seems cleaner all around to actually change the nids.