Add many NIDs from the PS3 PSP emulator + others derived from them

This commit is contained in:
Arthur Blot 2021-03-22 22:14:20 +01:00
parent 9cfaa62359
commit 5dd74aaf48
9 changed files with 173 additions and 103 deletions

View File

@ -13,11 +13,11 @@ void sceKernelDcacheWritebackInvalidateAll(void);
void sceKernelDcacheWritebackRange(const void *p, unsigned int size);
void sceKernelDcacheWritebackInvalidateRange(const void *p, unsigned int size);
int sceKernelDcacheInvalidateRange(const void *p, unsigned int size);
int UtilsForKernel_157A383A(const void *p, unsigned int size);
int sceKernelL1DcacheInvalidateRange(const void *p, unsigned int size);
void sceKernelIcacheInvalidateAll(void);
int sceKernelIcacheInvalidateRange(const void *addr, unsigned int size);
int sceKernelIcacheProbe(const void *addr);
int UtilsForKernel_43C9A8DB(const void *p, u32 size);
int sceKernelL1IcacheInvalidateRange(const void *p, u32 size);
int sceKernelRtcGetTick(u64 *tick);

View File

@ -68,15 +68,15 @@ PSP_EXPORT_END
PSP_EXPORT_START(sceJpeg, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceJpegMJpegCsc)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_227662D7, 0x227662D7)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpegYCbCrSuccessively)
PSP_EXPORT_FUNC_HASH(sceJpegDeleteMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_64B6F978, 0x64B6F978)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpegSuccessively)
PSP_EXPORT_FUNC_HASH(sceJpegCsc)
PSP_EXPORT_FUNC_HASH(sceJpegFinishMJpeg)
PSP_EXPORT_FUNC_HASH(sceJpegGetOutputInfo)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpegYCbCr)
PSP_EXPORT_FUNC_HASH(sceJpegCreateMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_A06A75C4, 0xA06A75C4)
PSP_EXPORT_FUNC_HASH(sceJpegMJpegCscWithColorOption)
PSP_EXPORT_FUNC_HASH(sceJpegInitMJpeg)
PSP_EXPORT_END

View File

@ -54,9 +54,10 @@ PSP_EXPORT_END
PSP_EXPORT_START(LoadExecForUser, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceKernelExitGame)
PSP_EXPORT_FUNC_HASH(sceKernelExitGameWithStatus)
# sceKernelSafetyCheck1 according to ps3 NIDs, but doesn't match SHA1
PSP_EXPORT_FUNC_NID(LoadExecForUser_362A956B, 0x362A956B)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterExitCallback)
PSP_EXPORT_FUNC_NID(LoadExecForUser_8ADA38D3, 0x8ADA38D3)
PSP_EXPORT_FUNC_HASH(sceKernelLoadExecNpDrm)
PSP_EXPORT_FUNC_HASH(sceKernelLoadExec)
PSP_EXPORT_FUNC_NID(LoadExecForUser_D1FB50DC, 0xD1FB50DC)
PSP_EXPORT_END

View File

@ -406,7 +406,7 @@ s32 sceKernelLoadExec(char *file, SceKernelLoadExecParam *opt)
return ret;
}
s32 LoadExecForUser_8ADA38D3(char *file, SceKernelLoadExecParam *opt)
s32 sceKernelLoadExecNpDrm(char *file, SceKernelLoadExecParam *opt)
{
RunExecParams args;
SceKernelLoadExecVSHParam vshParam;

View File

@ -22,10 +22,10 @@ PSP_EXPORT_FUNC_HASH(sceRegRemoveKey)
PSP_EXPORT_FUNC_HASH(sceRegFlushRegistry)
PSP_EXPORT_FUNC_HASH(sceRegRemoveCategory)
PSP_EXPORT_FUNC_HASH(sceRegCreateKey)
PSP_EXPORT_FUNC_NID(sceReg_835ECE6F, 0x835ECE6F)
PSP_EXPORT_FUNC_HASH(sceRegGetCategoryListAtRoot)
PSP_EXPORT_FUNC_HASH(sceRegOpenRegistry)
PSP_EXPORT_FUNC_HASH(sceRegExit)
PSP_EXPORT_FUNC_NID(sceReg_BE8C1263, 0xBE8C1263)
PSP_EXPORT_FUNC_HASH(sceRegGetCategoryNumAtRoot)
PSP_EXPORT_FUNC_HASH(sceRegGetKeyInfoByName)
PSP_EXPORT_FUNC_HASH(sceRegGetKeyInfo)
PSP_EXPORT_FUNC_HASH(sceRegRemoveRegistry)

View File

@ -36,12 +36,12 @@ PSP_EXPORT_FUNC_HASH(sceRtcUnregisterCallback)
PSP_EXPORT_FUNC_HASH(sceRtcGetTick)
PSP_EXPORT_FUNC_HASH(sceRtcConvertLocalTimeToUTC)
PSP_EXPORT_FUNC_HASH(sceRtcSetWin32FileTime)
PSP_EXPORT_FUNC_NID(sceRtc_7D1FBED3, 0x7D1FBED3)
PSP_EXPORT_FUNC_HASH(sceRtcSetAlarmTick)
PSP_EXPORT_FUNC_HASH(sceRtcFormatRFC2822LocalTime)
PSP_EXPORT_FUNC_HASH(sceRtcSetTick)
PSP_EXPORT_FUNC_HASH(sceRtcIsAlarmed)
PSP_EXPORT_FUNC_HASH(sceRtcCompareTick)
PSP_EXPORT_FUNC_NID(sceRtc_C2DDBEB5, 0xC2DDBEB5)
PSP_EXPORT_FUNC_HASH(sceRtcGetAlarmTick)
PSP_EXPORT_FUNC_HASH(sceRtcGetTickResolution)
PSP_EXPORT_FUNC_HASH(sceRtcFormatRFC2822)
PSP_EXPORT_FUNC_HASH(sceRtcTickAddWeeks)

View File

@ -152,6 +152,7 @@ PSP_EXPORT_FUNC_NID(sceKernelSetUsersystemLibWork, 0xA6848DF8)
PSP_EXPORT_FUNC_NID(sceKernelTotalMemSize, 0xACBD88CA)
# sceKernelFreePartitionMemory
PSP_EXPORT_FUNC_NID(sceKernelFreePartitionMemoryForUser, 0xB6D61D02)
# sceKernelSafetyCheck0 according to PS3 NIDs, but doesn't match SHA1
PSP_EXPORT_FUNC_NID(SysMemUserForUser_D8DE5C1E, 0xD8DE5C1E)
PSP_EXPORT_FUNC_NID(sceKernelGetMemoryBlockAddr, 0xDB83A952)
# (randomized?)
@ -241,34 +242,35 @@ PSP_EXPORT_END
# Nonrandomized NIDs
PSP_EXPORT_START(UtilsForUser, 0x0011, 0x4001)
PSP_EXPORT_FUNC_NID(UtilsForUser_004D4DEE, 0x004D4DEE)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackRange, 0x004D4DEE)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMt19937UInt, 0x06FB8A63)
PSP_EXPORT_FUNC_NID(UtilsForUser_0939D45C, 0x0939D45C)
PSP_EXPORT_FUNC_NID(UtilsForUser_157A383A, 0x157A383A)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheInvalidateRangeForUser, 0x157A383A)
# sceKernelDcacheReadTag
PSP_EXPORT_FUNC_NID(sceKernelDcacheReadTagForUser, 0x16641D70)
PSP_EXPORT_FUNC_NID(UtilsForUser_1B0592A3, 0x1B0592A3)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackInvalidateRange, 0x1B0592A3)
PSP_EXPORT_FUNC_NID(sceKernelLibcTime, 0x27CC57F0)
PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1BlockUpdate, 0x346F6DA8)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackInvalidateRange, 0x34B9FA9E)
PSP_EXPORT_FUNC_NID(sceKernelGetGPI, 0x37FB5C42)
PSP_EXPORT_FUNC_NID(sceKernelGetPTRIG, 0x39F49610)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackRange, 0x3EE30821)
PSP_EXPORT_FUNC_NID(UtilsForUser_3FD3D324, 0x3FD3D324)
PSP_EXPORT_FUNC_NID(UtilsForUser_43C9A8DB, 0x43C9A8DB)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackAll, 0x3FD3D324)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheInvalidateRangeForUser, 0x43C9A8DB)
PSP_EXPORT_FUNC_NID(UtilsForUser_485E430A, 0x485E430A)
PSP_EXPORT_FUNC_NID(sceKernelIcacheProbe, 0x4FD31C9D)
# (unknown)
# sceKernelL1DcacheReadTag
PSP_EXPORT_FUNC_NID(sceKernelDcacheReadTagForUser, 0x515B4FAF)
PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1BlockResult, 0x585F1C09)
PSP_EXPORT_FUNC_NID(UtilsForUser_5C7F2B1A, 0x5C7F2B1A)
# sceKernelL1IcacheReadTag
PSP_EXPORT_FUNC_NID(sceKernelIcacheReadTagForUser, 0x5C7F2B1A)
PSP_EXPORT_FUNC_NID(UtilsForUser_601E43E6, 0x601E43E6)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5BlockUpdate, 0x61E1E525)
PSP_EXPORT_FUNC_NID(sceKernelSetPTRIG, 0x6231A71D)
PSP_EXPORT_FUNC_NID(sceKernelSetGPO, 0x6AD345D7)
PSP_EXPORT_FUNC_NID(sceKernelLibcGettimeofday, 0x71EC4271)
PSP_EXPORT_FUNC_NID(UtilsForUser_7333E539, 0x7333E539)
PSP_EXPORT_FUNC_NID(UtilsForUser_740DF7F0, 0x740DF7F0)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheInvalidateAll, 0x7333E539)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheProbe, 0x740DF7F0)
PSP_EXPORT_FUNC_NID(sceKernelDcacheProbeRange, 0x77DFF087)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackAll, 0x79D1C3FA)
PSP_EXPORT_FUNC_NID(UtilsForUser_7C5DC253, 0x7C5DC253)
@ -277,10 +279,10 @@ PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1Digest, 0x840259F1)
PSP_EXPORT_FUNC_NID(sceKernelPutUserLog, 0x87E81561)
PSP_EXPORT_FUNC_NID(sceKernelLibcClock, 0x91E4F6A7)
PSP_EXPORT_FUNC_NID(sceKernelIcacheInvalidateAll, 0x920F104A)
# (unknown)
# sceKernelL1DcachePurgeRange
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRangeForUser, 0x99134C3F)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5BlockInit, 0x9E5C5086)
PSP_EXPORT_FUNC_NID(UtilsForUser_AF3766BB, 0xAF3766BB)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackInvalidateAll, 0xAF3766BB)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackInvalidateAll, 0xB435DEC5)
# sceKernelDcachePurgeRange
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRangeForUser, 0xB83A1E76)
@ -290,23 +292,23 @@ PSP_EXPORT_FUNC_NID(sceKernelDcacheInvalidateRangeForUser, 0xBFA98062)
# sceKernelIcacheInvalidateRange
PSP_EXPORT_FUNC_NID(sceKernelIcacheInvalidateRangeForUser, 0xC2DF770E)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5Digest, 0xC8186A58)
PSP_EXPORT_FUNC_NID(UtilsForUser_DBBE9A46, 0xDBBE9A46)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheProbeRange, 0xDBBE9A46)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMt19937Init, 0xE860E75E)
PSP_EXPORT_FUNC_NID(UtilsForUser_F0155BCA, 0xF0155BCA)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheProbe, 0xF0155BCA)
PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1BlockInit, 0xF8FCD5BA)
PSP_EXPORT_FUNC_NID(UtilsForUser_5C7F2B1A, 0xFB05FAD0)
PSP_EXPORT_FUNC_NID(sceKernelIcacheReadTagForUser, 0xFB05FAD0)
PSP_EXPORT_END
# Nonrandomized NIDs
PSP_EXPORT_START(UtilsForKernel, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(UtilsForUser_004D4DEE, 0x004D4DEE)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackRange, 0x004D4DEE)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMt19937UInt, 0x06FB8A63)
PSP_EXPORT_FUNC_NID(UtilsForUser_0939D45C, 0x0939D45C)
PSP_EXPORT_FUNC_NID(sceKernelSetPTRIGMask, 0x136F2419)
PSP_EXPORT_FUNC_NID(UtilsForKernel_157A383A, 0x157A383A)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheInvalidateRange, 0x157A383A)
PSP_EXPORT_FUNC_NID(sceKernelDcacheReadTag, 0x16641D70)
PSP_EXPORT_FUNC_NID(sceKernelSetGPIMask, 0x193D4036)
PSP_EXPORT_FUNC_NID(UtilsForUser_1B0592A3, 0x1B0592A3)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackInvalidateRange, 0x1B0592A3)
PSP_EXPORT_FUNC_NID(sceKernelRegisterRtcFunc, 0x23A0C5BA)
PSP_EXPORT_FUNC_NID(sceKernelGzipGetCompressedData, 0x23FFC828)
PSP_EXPORT_FUNC_NID(sceKernelLibcTime, 0x27CC57F0)
@ -317,15 +319,16 @@ PSP_EXPORT_FUNC_NID(sceKernelGetGPI, 0x37FB5C42)
PSP_EXPORT_FUNC_NID(sceKernelGetPTRIG, 0x39F49610)
PSP_EXPORT_FUNC_NID(UtilsForKernel_39FFB756, 0x39FFB756)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackRange, 0x3EE30821)
PSP_EXPORT_FUNC_NID(UtilsForUser_3FD3D324, 0x3FD3D324)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackAll, 0x3FD3D324)
PSP_EXPORT_FUNC_NID(sceKernelReleaseRtcFunc, 0x41887EF4)
PSP_EXPORT_FUNC_NID(UtilsForKernel_43C9A8DB, 0x43C9A8DB)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheInvalidateRange, 0x43C9A8DB)
PSP_EXPORT_FUNC_NID(UtilsForUser_485E430A, 0x485E430A)
PSP_EXPORT_FUNC_NID(sceKernelIcacheProbe, 0x4FD31C9D)
# (unknown)
# sceKernelL1DcacheReadTag
PSP_EXPORT_FUNC_NID(sceKernelDcacheReadTag, 0x515B4FAF)
PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1BlockResult, 0x585F1C09)
PSP_EXPORT_FUNC_NID(UtilsForKernel_5C7F2B1A, 0x5C7F2B1A)
# sceKernelL1IcacheReadTag
PSP_EXPORT_FUNC_NID(sceKernelIcacheReadTag, 0x5C7F2B1A)
PSP_EXPORT_FUNC_NID(UtilsForUser_601E43E6, 0x601E43E6)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5BlockUpdate, 0x61E1E525)
PSP_EXPORT_FUNC_NID(sceKernelSetPTRIG, 0x6231A71D)
@ -333,8 +336,8 @@ PSP_EXPORT_FUNC_NID(UtilsForKernel_66463BEC, 0x66463BEC)
PSP_EXPORT_FUNC_NID(sceKernelSetGPO, 0x6AD345D7)
PSP_EXPORT_FUNC_NID(UtilsForKernel_6C6887EE, 0x6C6887EE)
PSP_EXPORT_FUNC_NID(sceKernelLibcGettimeofday, 0x71EC4271)
PSP_EXPORT_FUNC_NID(UtilsForUser_7333E539, 0x7333E539)
PSP_EXPORT_FUNC_NID(UtilsForUser_740DF7F0, 0x740DF7F0)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheInvalidateAll, 0x7333E539)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheProbe, 0x740DF7F0)
PSP_EXPORT_FUNC_NID(sceKernelDcacheProbeRange, 0x77DFF087)
PSP_EXPORT_FUNC_NID(sceKernelGzipDecompress, 0x78934841)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackAll, 0x79D1C3FA)
@ -348,14 +351,14 @@ PSP_EXPORT_FUNC_NID(sceKernelLibcClock, 0x91E4F6A7)
PSP_EXPORT_FUNC_NID(sceKernelIcacheInvalidateAll, 0x920F104A)
PSP_EXPORT_FUNC_NID(sceKernelRegisterUserLogHandler, 0x92282A47)
PSP_EXPORT_FUNC_NID(sceKernelSetGPOMask, 0x95035FEF)
# (unknown)
# sceKernelL1DcachePurgeRange
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRange, 0x99134C3F)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5BlockInit, 0x9E5C5086)
PSP_EXPORT_FUNC_NID(UtilsForKernel_A6B0A6B8, 0xA6B0A6B8)
PSP_EXPORT_FUNC_NID(UtilsForKernel_AA9AF5CF, 0xAA9AF5CF)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheInvalidateAll, 0xAA9AF5CF)
PSP_EXPORT_FUNC_NID(UtilsForKernel_AF0C0173, 0xAF0C0173)
PSP_EXPORT_FUNC_NID(sceKernelGetGPO, 0xAF3616C0)
PSP_EXPORT_FUNC_NID(UtilsForUser_AF3766BB, 0xAF3766BB)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheWritebackInvalidateAll, 0xAF3766BB)
PSP_EXPORT_FUNC_NID(sceKernelGzipGetInfo, 0xB0E9C31F)
PSP_EXPORT_FUNC_NID(sceKernelDcacheWritebackInvalidateAll, 0xB435DEC5)
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRange, 0xB83A1E76)
@ -364,16 +367,16 @@ PSP_EXPORT_FUNC_NID(sceKernelRtcGetTick, 0xBDBFCA89)
PSP_EXPORT_FUNC_NID(sceKernelDcacheInvalidateRange, 0xBFA98062)
PSP_EXPORT_FUNC_NID(sceKernelIcacheInvalidateRange, 0xC2DF770E)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMd5Digest, 0xC8186A58)
PSP_EXPORT_FUNC_NID(UtilsForUser_DBBE9A46, 0xDBBE9A46)
PSP_EXPORT_FUNC_NID(sceKernelL1DcacheProbeRange, 0xDBBE9A46)
PSP_EXPORT_FUNC_NID(sceKernelGzipIsValid, 0xE0CE3E29)
PSP_EXPORT_FUNC_NID(sceKernelGzipGetName, 0xE0E6BA96)
PSP_EXPORT_FUNC_NID(sceKernelUtilsMt19937Init, 0xE860E75E)
PSP_EXPORT_FUNC_NID(sceKernelDeflateDecompress, 0xE8DB3CE6)
PSP_EXPORT_FUNC_NID(UtilsForKernel_EC86074D, 0xEC86074D)
PSP_EXPORT_FUNC_NID(UtilsForUser_F0155BCA, 0xF0155BCA)
PSP_EXPORT_FUNC_NID(sceKernelL1IcacheProbe, 0xF0155BCA)
PSP_EXPORT_FUNC_NID(UtilsForKernel_F192F2EC, 0xF192F2EC)
PSP_EXPORT_FUNC_NID(sceKernelUtilsSha1BlockInit, 0xF8FCD5BA)
PSP_EXPORT_FUNC_NID(UtilsForKernel_5C7F2B1A, 0xFB05FAD0)
PSP_EXPORT_FUNC_NID(sceKernelIcacheReadTag, 0xFB05FAD0)
PSP_EXPORT_END
# Randomized NIDs

View File

@ -417,11 +417,15 @@ sceSuspendForKernel_B2C9640B:
addiu $a0, $a0, %lo(g_suspendCtx)
j loc_0000032C
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_3FD3D324
j sceKernelL1DcacheWritebackAll
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -433,8 +437,8 @@ sceKernelDcacheWritebackAll:
bnez $t8, loc_00000714
move $at, $ra
.globl UtilsForUser_3FD3D324
UtilsForUser_3FD3D324:
.globl sceKernelL1DcacheWritebackAll
sceKernelL1DcacheWritebackAll:
mfic $v0, $0
mtic $zr, $0
mfc0 $t0, COP0_STATE_CONFIG
@ -480,15 +484,19 @@ loc_000006F0:
sync
loc_00000714:
jal UtilsForUser_3FD3D324
jal sceKernelL1DcacheWritebackAll
nop
j UtilsForUser_0939D45C
move $ra, $at
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_AF3766BB
j sceKernelL1DcacheWritebackInvalidateAll
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -500,8 +508,8 @@ sceKernelDcacheWritebackInvalidateAll:
bnez $t8, loc_00000784
move $at, $ra
.globl UtilsForUser_AF3766BB
UtilsForUser_AF3766BB:
.globl sceKernelL1DcacheWritebackInvalidateAll
sceKernelL1DcacheWritebackInvalidateAll:
mfc0 $t0, COP0_STATE_CONFIG
li $t1, 2048
ext $t0, $t0, 6, 3
@ -518,15 +526,19 @@ loc_00000768:
sync
loc_00000784:
jal UtilsForUser_AF3766BB
jal sceKernelL1DcacheWritebackInvalidateAll
nop
j UtilsForUser_485E430A
move $ra, $at
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForKernel_AA9AF5CF
j sceKernelL1DcacheInvalidateAll
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -538,8 +550,8 @@ sceKernelDcacheInvalidateAll:
bnez $t8, loc_00000804
move $at, $ra
.globl UtilsForKernel_AA9AF5CF
UtilsForKernel_AA9AF5CF:
.globl sceKernelL1DcacheInvalidateAll
sceKernelL1DcacheInvalidateAll:
mfc0 $t0, COP0_STATE_CONFIG
li $t1, 4096
ext $t0, $t0, 6, 3
@ -560,15 +572,19 @@ loc_000007E8:
move $v0, $zr
loc_00000804:
jal UtilsForKernel_AA9AF5CF
jal sceKernelL1DcacheInvalidateAll
nop
j UtilsForKernel_AF0C0173
move $ra, $at
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_004D4DEE
j sceKernelL1DcacheWritebackRange
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -580,8 +596,8 @@ sceKernelDcacheWritebackRange:
bnez $t8, loc_000008F0
move $at, $ra
.globl UtilsForUser_004D4DEE
UtilsForUser_004D4DEE:
.globl sceKernelL1DcacheWritebackRange
sceKernelL1DcacheWritebackRange:
srl $v0, $a1, 16
bnez $v0, loc_0000087C
addu $a2, $a0, $a1
@ -642,18 +658,22 @@ loc_000008E0:
loc_000008F0:
move $t6, $a0
jal UtilsForUser_004D4DEE
jal sceKernelL1DcacheWritebackRange
move $t7, $a1
bltz $v0, loc_00000870
move $ra, $at
move $a0, $t6
j UtilsForUser_601E43E6
move $a1, $t7
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_1B0592A3
j sceKernelL1DcacheWritebackInvalidateRange
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -665,8 +685,8 @@ sceKernelDcacheWritebackInvalidateRange:
bnez $t8, loc_000009EC
move $at, $ra
.globl UtilsForUser_1B0592A3
UtilsForUser_1B0592A3:
.globl sceKernelL1DcacheWritebackInvalidateRange
sceKernelL1DcacheWritebackInvalidateRange:
srl $v0, $a1, 16
bnez $v0, loc_00000978
addu $a2, $a0, $a1
@ -727,18 +747,22 @@ loc_000009DC:
loc_000009EC:
move $t6, $a0
jal UtilsForUser_1B0592A3
jal sceKernelL1DcacheWritebackInvalidateRange
move $t7, $a1
bltz $v0, loc_0000096C
move $ra, $at
move $a0, $t6
j UtilsForUser_7C5DC253
move $a1, $t7
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForKernel_157A383A
j sceKernelL1DcacheInvalidateRange
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -750,8 +774,8 @@ sceKernelDcacheInvalidateRange:
bnez $t8, loc_00000ADC
move $at, $ra
.globl UtilsForKernel_157A383A
UtilsForKernel_157A383A:
.globl sceKernelL1DcacheInvalidateRange
sceKernelL1DcacheInvalidateRange:
beqz $a1, loc_00000A68
or $t0, $a0, $a1
andi $t0, $t0, 0x3F
@ -811,13 +835,15 @@ loc_00000ACC:
loc_00000ADC:
move $t6, $a0
jal UtilsForKernel_157A383A
jal sceKernelL1DcacheInvalidateRange
move $t7, $a1
bltz $v0, loc_00000A70
move $ra, $at
move $a0, $t6
j UtilsForKernel_F192F2EC
move $a1, $t7
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -920,11 +946,15 @@ loc_00000C28:
move $v0, $zr
jr $ra
sync
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_740DF7F0
j sceKernelL1DcacheProbe
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -936,8 +966,8 @@ sceKernelDcacheProbe:
bnez $t8, loc_00000CD0
move $at, $ra
.globl UtilsForUser_740DF7F0
UtilsForUser_740DF7F0:
.globl sceKernelL1DcacheProbe
sceKernelL1DcacheProbe:
mfic $v0, $0
mtic $zr, $0
srl $t0, $a0, 13
@ -960,13 +990,15 @@ UtilsForUser_740DF7F0:
xor $v0, $v0, $t0
loc_00000CD0:
jal UtilsForUser_740DF7F0
jal sceKernelL1DcacheProbe
nop
jal UtilsForKernel_EC86074D
move $v1, $v0
move $ra, $at
jr $ra
max $v0, $v0, $v1
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -1000,11 +1032,15 @@ sceKernelDcacheReadTag:
mtic $t0, $0
jr $ra
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_DBBE9A46
j sceKernelL1DcacheProbeRange
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -1016,8 +1052,8 @@ sceKernelDcacheProbeRange:
bnez $t8, loc_00000E50
move $at, $ra
.globl UtilsForUser_DBBE9A46
UtilsForUser_DBBE9A46:
.globl sceKernelL1DcacheProbeRange
sceKernelL1DcacheProbeRange:
mfc0 $t0, COP0_STATE_CONFIG
beqz $a1, loc_00000E40
move $v0, $zr
@ -1083,7 +1119,7 @@ loc_00000E48:
loc_00000E50:
move $t6, $a0
jal UtilsForUser_DBBE9A46
jal sceKernelL1DcacheProbeRange
move $t7, $a1
move $a0, $t6
move $a1, $t7
@ -1092,11 +1128,15 @@ loc_00000E50:
move $ra, $at
jr $ra
max $v0, $v0, $v1
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_7333E539
j sceKernelL1IcacheInvalidateAll
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -1108,8 +1148,8 @@ sceKernelIcacheInvalidateAll:
bnez $t8, loc_00000EE8
move $at, $ra
.globl UtilsForUser_7333E539
UtilsForUser_7333E539:
.globl sceKernelL1IcacheInvalidateAll
sceKernelL1IcacheInvalidateAll:
mfc0 $t0, COP0_STATE_CONFIG
li $t1, 4096
ext $t0, $t0, 9, 3
@ -1132,13 +1172,17 @@ loc_00000ECC:
loc_00000EE8:
jal UtilsForUser_485E430A
nop
j UtilsForUser_7333E539
j sceKernelL1IcacheInvalidateAll
move $ra, $at
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForKernel_43C9A8DB
j sceKernelL1IcacheInvalidateRange
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -1150,8 +1194,8 @@ sceKernelIcacheInvalidateRange:
bnez $t8, loc_00000FF8
move $at, $ra
.globl UtilsForKernel_43C9A8DB
UtilsForKernel_43C9A8DB:
.globl sceKernelL1IcacheInvalidateRange
sceKernelL1IcacheInvalidateRange:
mfc0 $t0, COP0_STATE_CONFIG
beqz $a1, loc_00000F64
li $t1, 4096
@ -1223,13 +1267,17 @@ loc_00000FF8:
move $a3, $a1
move $a0, $a2
move $a1, $a3
j UtilsForKernel_43C9A8DB
j sceKernelL1IcacheInvalidateRange
move $ra, $at
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
j UtilsForUser_F0155BCA
j sceKernelL1IcacheProbe
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
@ -1243,8 +1291,8 @@ sceKernelIcacheProbe:
bnez $t8, loc_00001098
move $at, $ra
.globl UtilsForUser_F0155BCA
UtilsForUser_F0155BCA:
.globl sceKernelL1IcacheProbe
sceKernelL1IcacheProbe:
mfic $v0, $0
mtic $zr, $0
nop
@ -1266,19 +1314,21 @@ UtilsForUser_F0155BCA:
or $v0, $t3, $t4
loc_00001098:
jal UtilsForUser_F0155BCA
jal sceKernelL1IcacheProbe
nop
jal UtilsForKernel_EC86074D
move $v1, $v0
move $ra, $at
jr $ra
or $v0, $v0, $v1
# ?
move $t9, $ra
lui $ra, %hi(sub_1120)
addiu $ra, $ra, %lo(sub_1120)
.globl UtilsForUser_5C7F2B1A
UtilsForUser_5C7F2B1A:
.globl sceKernelIcacheReadTagForUser
sceKernelIcacheReadTagForUser:
mfic $t0, $0
mtic $zr, $0
cache 0x0, 0($a0)
@ -1294,8 +1344,8 @@ UtilsForUser_5C7F2B1A:
jr $ra
nop
.globl UtilsForKernel_5C7F2B1A
UtilsForKernel_5C7F2B1A:
.globl sceKernelIcacheReadTag
sceKernelIcacheReadTag:
mfic $t0, $0
mtic $zr, $0
cache 0x0, 0($a0)
@ -1310,11 +1360,13 @@ UtilsForKernel_5C7F2B1A:
sub_1120:
move $ra, $t9
eret
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForUser_0939D45C
.globl UtilsForUser_0939D45C # sceKernel??DcacheWritebackAll
UtilsForUser_0939D45C:
lui $t0, 0xA7F0
lui $t1, 0xA000
@ -1359,11 +1411,13 @@ loc_000011A0:
lw $zr, 0($t0)
jr $ra
move $v0, $zr
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForUser_485E430A
.globl UtilsForUser_485E430A # sceKernel??DcacheWritebackInvalidateAll
UtilsForUser_485E430A:
lui $t0, 0xA7F0
lui $t1, 0xB000
@ -1408,11 +1462,13 @@ loc_00001240:
lw $zr, 0($t0)
jr $ra
move $v0, $zr
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForKernel_AF0C0173
.globl UtilsForKernel_AF0C0173 # sceKernel??DcacheInvalidateAll
UtilsForKernel_AF0C0173:
lui $t0, 0xA7F0
lui $t1, 0x5000
@ -1436,31 +1492,37 @@ loc_0000129C:
lw $zr, 0($t0)
jr $ra
move $v0, $zr
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForUser_601E43E6
.globl UtilsForUser_601E43E6 # sceKernel??DcacheWritebackRange
UtilsForUser_601E43E6:
lui $v0, 0x2000
lui $v1, 0xA000
j loc_00001334
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForUser_7C5DC253
.globl UtilsForUser_7C5DC253 # sceKernel??DcacheWritebackInvalidateRange
UtilsForUser_7C5DC253:
lui $v0, 0x3000
lui $v1, 0xB000
j loc_00001334
nop
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForKernel_F192F2EC
.globl UtilsForKernel_F192F2EC # sceKernel??DcacheInvalidateRange
UtilsForKernel_F192F2EC:
or $t0, $a0, $a1
andi $t0, $t0, 0x3F
@ -1568,11 +1630,13 @@ loc_00001454:
loc_00001458:
jr $ra
move $v0, $zr
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForKernel_EC86074D
.globl UtilsForKernel_EC86074D # sceKernel??I/DcacheProbe
UtilsForKernel_EC86074D:
li $t0, 19532
lui $t1, 0x4C
@ -1612,11 +1676,13 @@ loc_000014E0:
ext $v0, $t3, 29, 1
jr $ra
addiu $v0, $v0, 1
# ?
move $t9, $ra
lui $ra, %hi(sub_1594)
addiu $ra, $ra, %lo(sub_1594)
.globl UtilsForKernel_2F80288E
.globl UtilsForKernel_2F80288E # sceKernel??DcacheProbeRange
UtilsForKernel_2F80288E:
li $t0, 19532
lui $t1, 0x4C
@ -1666,13 +1732,13 @@ sub_1594:
move $ra, $t9
eret
.globl UtilsForKernel_A6B0A6B8
.globl UtilsForKernel_A6B0A6B8 # return 1 if there's the additional cache?
UtilsForKernel_A6B0A6B8:
mfc0 $v0, $24
jr $ra
nop
.globl UtilsForKernel_39FFB756
.globl UtilsForKernel_39FFB756 # copy a function doing cache stuff (DcacheWritebackInvalidateAll?) to 0xBFC00F00 and run it there
UtilsForKernel_39FFB756:
lui $t0, 0xBFC0
ori $t0, $t0, 0xF00
@ -1767,7 +1833,7 @@ loc_000016DC:
jr $ra
mtic $t6, $0
.globl UtilsForKernel_66463BEC
.globl UtilsForKernel_66463BEC # while (*0xBD000004 & (arg0 & 5) != 0) {} (not called anywhere)
UtilsForKernel_66463BEC:
sync
lui $v0, 0xBD00

View File

@ -20,14 +20,14 @@ int sceKernelDcacheInvalidateRangeForUser(const void *p, u32 size)
return ret;
}
int UtilsForUser_157A383A(const void *p, u32 size)
int sceKernelL1DcacheInvalidateRangeForUser(const void *p, u32 size)
{
int ret;
int oldK1 = pspShiftK1();
if (!pspK1DynBufOk(p, size))
ret = SCE_ERROR_KERNEL_ILLEGAL_ADDR;
else
ret = UtilsForKernel_157A383A(p, size);
ret = sceKernelL1DcacheInvalidateRange(p, size);
pspSetK1(oldK1);
return ret;
}
@ -56,14 +56,14 @@ int sceKernelIcacheInvalidateRangeForUser(const void *p, u32 size)
return ret;
}
int UtilsForUser_43C9A8DB(const void *p, u32 size)
int sceKernelL1IcacheInvalidateRangeForUser(const void *p, u32 size)
{
int ret;
int oldK1 = pspShiftK1();
if (!pspK1DynBufOk(p, size))
ret = SCE_ERROR_KERNEL_ILLEGAL_ADDR;
else
ret = UtilsForKernel_43C9A8DB(p, size);
ret = sceKernelL1IcacheInvalidateRange(p, size);
pspSetK1(oldK1);
return ret;
}