3.71 syscalls ?

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Cpasjuste
Posts: 214
Joined: Sun May 29, 2005 8:28 am

3.71 syscalls ?

Post by Cpasjuste »

Is there a list of the 3.71 api/syscall around ?
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

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-

Code: Select all

prxtool -f -A power.prx
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
Cpasjuste
Posts: 214
Joined: Sun May 29, 2005 8:28 am

Post by Cpasjuste »

Yep i already found some but it was a very long task, but with the prxtool "-A" option it's really usefull and faster. Many thanks one more time :)
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

The rest of functions require the disassembly and comparison with previous firmwares... yes a bit tedious, but easy.
Smong
Posts: 82
Joined: Tue Sep 04, 2007 4:44 am

Post by Smong »

After reading part of ModuleTutorialv1.pdf I was thinking if the NID is an SHA-1 of the function name, then how can it change? Has the function name also changed? Or did they change the hash function?
(+[__]%)
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

Neither, just because the NID is a SHA1 hash doesn't mean it has to be. Probably Sony did it this way to make it easier for them as it meant they didn't need to choose the numbers and meant they could easily reorder them. Now they are probably just picking them at random.
SilverSpring
Posts: 110
Joined: Tue Feb 27, 2007 9:43 pm
Contact:

Post by SilverSpring »

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:

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
And because this is an extremely tedious task, any help would be appreciated.

Thanks all.
SilverSpring
Posts: 110
Joined: Tue Feb 27, 2007 9:43 pm
Contact:

Post by SilverSpring »

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
J-Fox
Posts: 15
Joined: Wed Sep 26, 2007 12:25 am
Location: Hannover, Germany

Post by J-Fox »

I was just trying to have a look at this but i cant seem to get the PRXTool from the svn to compile:

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()
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
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

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.
J-Fox
Posts: 15
Joined: Wed Sep 26, 2007 12:25 am
Location: Hannover, Germany

Post by J-Fox »

wow thanks, that worked great and was easier fix than i thought it would be :)
Cpasjuste
Posts: 214
Joined: Sun May 29, 2005 8:28 am

Post by Cpasjuste »

SilverSpring you havn't updated your website with this syscall yet ?
StoneCut
Posts: 1
Joined: Fri Sep 28, 2007 9:57 am

Post by StoneCut »

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) 
SilverSpring
Posts: 110
Joined: Tue Feb 27, 2007 9:43 pm
Contact:

Post by SilverSpring »

Cpasjuste wrote:SilverSpring you havn't updated your website with this syscall yet ?
Yea sorry soon, just updating the most common used functions first.

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

EDIT: Thanks StoneCut
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

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
cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

Post by cooleyes »

can you find out this function name ?

sceMpeg_AB0E9556
ketchup
Posts: 3
Joined: Fri Feb 16, 2007 3:38 am

Post by ketchup »

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
sorry, i've not all Registry function, i'll update it asap
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

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?
Viper8896
Posts: 110
Joined: Thu Jan 26, 2006 6:20 pm

Post by Viper8896 »

J.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?
by comparing them with 3.5 it looks like they are

Code: Select all

sceSysreg_driver_A9997109 sceSysregMeResetEnable
sceSysreg_driver_3199CF1C sceSysregMeBusClockEnable
sceSysreg_driver_76220E94 sceSysregMeResetDisable
if at first you dont succeed try just setting k1.

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.
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

Viper8896 wrote:
J.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?
by comparing them with 3.5 it looks like they are

Code: Select all

sceSysreg_driver_A9997109 sceSysregMeResetEnable
sceSysreg_driver_3199CF1C sceSysregMeResetDisable
sceSysreg_driver_76220E94 sceSysregMeResetDisable
if at first you dont succeed try just setting k1.

has anyone made a program to automatically compare these and output the new nids yet?
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.

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&#40;volatile struct me_struct *mei, int devkitVersion&#41;
&#123;
	unsigned int k1;

	k1 = pspSdkSetK1&#40;0&#41;;

	if &#40;mei == 0&#41;
	&#123;
   		pspSdkSetK1&#40;k1&#41;;
   		return -1;
	&#125;

	// 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&#40;&#40;void *&#41;0xbfc00040, me_stub, &#40;int&#41;&#40;me_stub_end - me_stub&#41;&#41;;
	_sw&#40;&#40;unsigned int&#41;me_loop,  0xbfc00600&#41;;	// k0
	_sw&#40;&#40;unsigned int&#41;mei, 0xbfc00604&#41;;			// a0
	sceKernelDcacheWritebackAll&#40;&#41;;
	if &#40;devkitVersion < 0x03070110&#41;
	&#123;
		sceSysregMeResetEnable&#40;&#41;;
		sceSysregMeBusClockEnable&#40;&#41;;
		sceSysregMeResetDisable&#40;&#41;;
	&#125;
	else
	&#123;
		sceSysregMeResetEnable371&#40;&#41;;
		sceSysregMeBusClockEnable371&#40;&#41;;
		sceSysregMeResetDisable371&#40;&#41;;
	&#125;

	pspSdkSetK1&#40;k1&#41;;

	return 0;
&#125;
Last edited by J.F. on Tue Oct 02, 2007 9:39 pm, edited 1 time in total.
weltall
Posts: 310
Joined: Fri Feb 20, 2004 1:56 am
Contact:

Post by weltall »

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
Viper8896
Posts: 110
Joined: Thu Jan 26, 2006 6:20 pm

Post by Viper8896 »

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.
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.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

Viper8896 wrote:
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.
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.
Yep. As I noted above, it was the nids all right. I did like cooleyes and made it handle both via the devkitVersion.
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

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 :)
Cpasjuste
Posts: 214
Joined: Sun May 29, 2005 8:28 am

Post by Cpasjuste »

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 ?
SilverSpring
Posts: 110
Joined: Tue Feb 27, 2007 9:43 pm
Contact:

Post by SilverSpring »

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).


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 ?
The only absolute guaranteed way to get the correct arg is by disasm.
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

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).
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

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:

Code: Select all

@sceDisplay_driver
sceDisplayIsForeground&#58;0x044FF282
sceDisplayGetFramePerSec&#58;0x13AA96B7
sceDisplayWaitVblankCB&#58;0x16FD49DC 
sceDisplayGetBrightnes&#58;0x1CB8CB47
0x92C8F8B7&#58;0x28B0525E
sceDisplayDisable&#58;0x32B67781
sceDisplayGetVblankRest&#58;0x3737A23B
sceDisplaySetFrameBuf&#58;0x4AB7497F
0x66961521&#58;0x5CD75E4A
0x63E22A26&#58;0x643F3841
sceDisplayGetCurrentHcount&#58;0x689C0CC2 
sceDisplaySetBrightness&#58;0x776ADFDB
sceDisplayWaitVblankStartCB&#58;0x792E8018
sceDisplayWaitVblank&#58;0x7FBA941A
0x5B5AEFAD&#58;0x820C6038
sceDisplayIsVblank&#58;0x8BE19BF8
0x23CE8C51&#58;0x8DECEF47
sceDisplaySetHoldMode&#58;0x906281D5
sceDisplayEnable&#58;0x946155FD
sceDisplayIsVsync&#58;0xA26AAF53
0xAE0E8972&#58;0xA44B9FFC
sceDisplayAdjustAccumulatedHcount&#58;0xA86C2E86
sceDisplayGetAccumulatedHcount&#58;0xA99B94A3 
0xE4E4C018&#58;0xB43C8B57
sceDisplayWaitVblankStart&#58;0xB685BA36 
sceDisplayGetResumeMode&#58;0xC3C340AF
sceDisplaySetResumeMode&#58;0xE4AB9AB5
sceDisplayGetFrameBuf&#58;0xE56B11BA
sceDisplayGetVcount&#58;0xE8466BC2
sceDisplayGetForegroundLevel&#58;0xF3C6C317
And run the tool with:

Code: Select all

psp-fixup-imports -m display.map my.prx
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
Last edited by TyRaNiD on Wed Oct 03, 2007 10:52 am, edited 1 time in total.
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

What about a module that starts before user apps and provides a bridge between old & new NIDs? Then we can keep using the "right" (SHA-1) ones in our binaries.
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

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.
Post Reply