mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
The hmd2s and hmd2n sweeps left 19 libSceHmd2 exports that either write into their arguments or take a slot number rather than a pointer first. A third probe called the writers with zero-filled and with 0xAA-filled buffers, dumping every byte that changed, and the slot exports with a first argument of 0, 1, 2, 3, 4, 5, 8, 16, 255 and -1. Before sceHmd2Initialize, six writers put fixed bytes in their output (a 2 and a zero byte; 0x2000 and 0x100 as 64-bit sizes; four floats; six or twelve floats of 0 and 0.5 followed by 0x8a720003), and twelve exports accept a slot of 0 to 1, 2 or 3 and answer 0x8a720009 above it, with 0, -1, 0x8a721002, 0x8a721003, 0x8a72002c or 0x8a72100f for a valid slot. They are bound here, by NID, to 14 handlers with the measured checks, returning their value while the library is not initialized and throwing if sceHmd2Initialize ever succeeds. The one export whose answer depends on the contents of an in-out structure stays unimplemented and is described in the debt file. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
39 KiB
39 KiB
libSceHmd2 technical debt
Silent stubs
- libSceHmd2 has no PS VR2 runtime:
sceHmd2Initializereturns libSceHmd'sUNSUPPORTED_FEATURE(0x81110016) for any param, so the other calls answer as before initialization andsceHmd2OpenreturnsNotInitialized(0x8a720002). These results are restored from the behaviour before #7323 and are not measured on hardware: firmware 13.20's libSceHmd2, with the/dev/hmd2_cmdstate measured on a retail PS5 with no headset connected (connected flag 0, status 2, user -1), initializes, returns a handle fromsceHmd2Openand reportsNotDetected, which the code past the initialization check models but no title reaches. PPSA01317 passes a pointer to 16 zeroed bytes, only tests the result for non-zero and then skips its VR set-up; with initialization succeeding it stopped onsceHmd2ReprojectionQueryBufferSizeAlign(#6350). That export,sceHmd2ReprojectionQueryDisplayBufferSizeAlignandsceHmd2ReprojectionQuerySeeThroughBufferSizeAlignstay unimplemented and throw pending console measurements of their sizes and alignments. The other reprojection and gaze exports throw, and libSceVrTracker2 never initializes
Unknown function info
- PPSA09030 imports from its
Media/Plugins/psvr2.prxdeclared without parameters, signatures unknown, added without an implementation because the title fails to load the plugin without them: sceHmd2ReprojectionGetStatus (libSceHmd2) - sceHmd2Open (libSceHmd2) - the handle is the value the console's driver returned to the first open; titles built with an SDK before 7.00 may open for any user, and the firmware's
sceMbusAddHandleByUserIdresult for a user other than the initial one is unknown, so that case throws. 0x8a720006 for a second open is namedAlreadyOpenedfrom its use - sceHmd2SetVibration (libSceHmd2) - the second parameter is checked against 25 only while a headset is connected; its name and unit are unknown. The field of view member names are assumed: of the firmware's default tangents the first is the widest and the last two are equal
- PPSA01317 imports declared without parameters, signatures unknown: the libSceHmd2 exports that throw and the remaining libSceVrTracker2 exports. Names from the aerolib NID list
- PPSA15878 imports declared without parameters, signatures unknown: the libSceHmd2 reprojection and gaze exports,
sceVrTracker2Finalize,sceVrTracker2GetPlayAreaOrientedBoundingBoxandsceVrTracker2LocateCoordinateSystemin libSceVrTracker2, and thescePadVrControllertrigger effect exports in libScePad. Names from the aerolib NID list - libSceHmd2 gaze and reprojection exports (libSceHmd2) -
sceHmd2ReprojectionSeeThroughDraw,sceHmd2ReprojectionSeeThroughIC,sceHmd2ReprojectionVideoOutEq,sceHmd2ReprojectionWaitShader,sceHmd2SeeThroughCallbackGetPoseDataFunc,sceHmd2ReprojectionClear,sceHmd2ReprojectionSet,sceHmd2ReprojectionSetEventGpuEnd,sceHmd2ReprojectionSetEventGpuStart,sceHmd2RpeorjectionSetParamare declared without parameters from the firmware export database (aerolib.csv); their guest signatures are unverified on hardware and every call throws - sceHmd2InternalSetPortStatus (libSceHmd2) - unknown signature
- sceHmd2InternalLedDetectorStartBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalImageStartBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalSetPortConnection (libSceHmd2) - unknown signature
- sceHmd2InternalSetCameraSeeThroughMode (libSceHmd2) - unknown signature
- sceHmd2InternalSetFakeLensSeparationDistance (libSceHmd2) - unknown signature
- sceHmd2InternalDfuSend (libSceHmd2) - unknown signature
- sceHmd2InternalLedDetectorOpenBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalImageOpenBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalLedDetectorStopBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalSetDeviceConnection (libSceHmd2) - unknown signature
- sceHmd2InternalLedDetectorCloseBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalSetSidetone (libSceHmd2) - unknown signature
- sceHmd2InternalGetDeviceId (libSceHmd2) - unknown signature
- sceHmd2InternalSetBrightness (libSceHmd2) - unknown signature
- sceHmd2InternalImageStopBySlot (libSceHmd2) - unknown signature
- sceHmd2InternalSetVibrationMode (libSceHmd2) - unknown signature
- sceHmd2InternalGetVr2dData (libSceHmd2) - unknown signature
- sceHmd2InternalImageCloseBySlot (libSceHmd2) - unknown signature
Functional
- sceHmd2Initialize (libSceHmd2) - the firmware also fails with 0x8a72001f when
sceKernelGetAppInfofails and with 0x8a72000a for some applications, depending on app info fields at 0x2c, 0x4b and 0x4d whose meaning is unknown, and then callssceMbusInit; none of this is modelled - sceHmd2ReprojectionQueryDisplayBufferSizeAlign, sceHmd2ReprojectionQuerySeeThroughBufferSizeAlign, sceHmd2ReprojectionGetMirroringDisplayBufferSizeAlign and sceHmd2ReprojectionGetMirroringWorkMemorySizeAlign (libSceHmd2) - each returns a
{uint64 size, uint64 alignment}pair in RAX:RDX; the values were measured on a retail PS5 (firmware 13.60) with no PS VR2 headset from a homebrew payload that loadedlibSceHmd2.sprxwithout initializing it, and stayed the same for every argument tried;sceHmd2ReprojectionQueryBufferSizeAlignmeasured there returns 0x100828 and 0x100 for every argument, including the 2, 0xAF and 1 that PPSA05666 passes. They are assumed not to depend on initialization or on a connected headset, and their parameters are unknown - Hmd2BeforeInitializeZero (libSceHmd2) - before
sceHmd2Initializethe console answers 0 to these 45 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:vDgpdS2N9Rw(sceHmd2InternalRegisterVibrationCallback),Ri35gKTZpvE(sceHmd2InternalUnregisterVibrationCallback),9oyW8puiKeI,1HZNE6jhBnQ(sceHmd2InternalPowerEventInitialize),cdwAKBZLXjs,Yub1MF58jfY,JYXAuQFnPyw(sceHmd2InternalDfuOpen),VuPKqCu3wzw(sceHmd2InternalDfuClose),GSThagVyW5U(sceHmd2InternalCrashReportOpen),J4qE5N937MY(sceHmd2InternalCrashReportClose),9KnNj-dyASg,Qta2bkstbFk,5ZcObnDRBXE,AvPNn0qx4WQ,jp0apqNGgi8(sceHmd2SetIpdOffset),-kZT7X7OMg0(sceHmd2InternalRelocalizerOpen),1ewLtng-SVk(sceHmd2InternalRelocalizerClose),B0b8DeIUGes(sceHmd2InternalTrackingOpen),HclLg4Oj5yw(sceHmd2InternalTrackingClose),VbEvrQXsZyY(sceHmd2InternalLedDetectorOpen),bB6MKZi5UCQ(sceHmd2InternalLedDetectorClose),OXQ1EDf02XU(sceHmd2InternalImageOpen),IAxfMTvFm0M(sceHmd2InternalImageClose),qTJtAtaLeno(sceHmd2InternalGenDataOpen),j7Q16UX6l34(sceHmd2InternalGenDataClose),pmmNM06rLqU,zdQfyDK9Ods(sceHmd2InternalSlamTraceOpen),aPRwp9GnljM(sceHmd2InternalSlamTraceClose),MjY1gBSaed0(sceHmd2InternalGazeOpen),evAMjJYHqW4(sceHmd2InternalGazeClose),r93FLEZ3BBk(sceHmd2InternalGazeStart),IdYURdEdNFo(sceHmd2InternalGazeStop),CVcL2Cu2AEI(sceHmd2GazeActivateGazeTracking),NmKIfVxr2s0,KeDLkkp62Gg,+aadu6-ra+A,FgnTiwwGSzk,PWAUwOTHbbo(sceHmd2InternalCreateSharedMemory),WzaEApHnsP8(sceHmd2InternalIsGameVr2d),dXzQI8QVY7Y(sceHmd2InternalIsMiniAppVr2d),cCvFKGqRh1k(sceHmd2InternalIsCommonDlgVr2d),uj4-2VEAFPU(sceHmd2InternalIsCommonDlgMiniAppVr2d),sIaGStI-iLM(sceHmd2InternalMapSharedMemory),JzwpZOemDO8,IsC4R4bZFVU. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeNotInitialized (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720002to these 9 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:sXaPEPY-fLA(sceHmd2InternalOpen),3F5inHhKzXg(sceHmd2InternalGetDeviceInformation),sJAiB-6p55U,E8hDydLjsSs,xEQkSb2WJ7Y,aaP4dnR4q-0,lEU0TeUoGwI,cFVyjHBpUUU,zROtb46jTj4. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeError0004 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720004to these 15 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:kAMsjYHBbNQ(sceHmd2InternalSetVolume),5m73zmLpsQ0(sceHmd2InternalResetViewPosition),EPeH4xuQ2XQ(sceHmd2InternalGetStatus),TJ8lyRsjFY4(sceHmd2InternalClearTrackerFts),-XQVcLnyX68(sceHmd2InternalSetSlamCommand),giQwQoHhYYA(sceHmd2InternalDfuStart),zNc9IkgawMI,-tnG5UJPvAc(sceHmd2GazeStartUserCalibration),FPhFmG+jXuQ(sceHmd2GazeStopUserCalibration),CKlkvNngofQ,yL1CZaciFWE(sceHmd2GazeSetUserCalibrationPoint),qlzgyG3s0RY,kTIDrDLzMv0,9Gee0ef8a+U,ecZVjQdwmBI(sceHmd2GazeSetEnabledEye). Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeParameterNull (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008to these 16 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:MNtiJTDOPAU,RRy9WmqZfgU(sceHmd2InternalDecryptData),uobR4m9lgwc(sceHmd2InternalGetMirroringMode),-XPk5KWBYdo(sceHmd2InternalRelocalizerSetResultData),J44idh9izZM,Ps0wAvYaa1E,kLnMR8oQ1MY,kMz4rbBxvjo,DIU1sFRRaiE(sceHmd2GazeGetCalibrationData),ZQvU4vDzZGQ(sceHmd2GazeSetUserCalibrationData),TJpyGGP9YEY,Dih+Odk+RC0,oaqdSJw+HVY,m35gtHuanXU,CTM7QPLJF9Q(sceHmd2InternalGetFlipInfo),+rExHeC9lP0(sceHmd2GazeObjectSelectionInitialize). Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeParameterInvalid (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720009to these 9 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:bBh5bCp9coo(sceHmd2InternalSetPositionResetIcon),G3PNDE2VjfY(sceHmd2InternalSetPowerOff),nScCT0OPU0o,6Q0Ng7OTN9o,-fJKh4SnFR0(sceHmd2InternalSetBudgetMode),jUA2s-l0npY(sceHmd2InternalSetForceIcon),+9XhyAIJVj4,eBGK-o6E4RQ(sceHmd2InternalBindDeviceWithUserId),MTuFeL9184E. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeReprojectionNotInitialized (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a72000bto these 10 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:d3SEIYTP6wc,EVECbTvBezo,ciusPdJKjSU,DIwqTkcZiJo(sceHmd2ReprojectionSetUserEventStart),64ERZWVFBTE(sceHmd2ReprojectionSetUserEventEnd),z0+0gXUJWs8(sceHmd2ReprojectionClearUserEventStart),rjAd4nCY4DM(sceHmd2ReprojectionClearUserEventEnd),Acyg4vTdGm0(sceHmd2ReprojectionGetCurrentOutput),aGOWaEeg04I,9up+EPhw1No. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeError002C (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a72002cto these 1 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:V1kLQmP-17U(sceHmd2GazeObjectSelectionTerminate). Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeError1002 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a721002to these 5 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:2LVD1EC5SYE,Bf87AL6zWxU,XKt7w1MODFY,Y5s22M-qUDA,JJKY-BtQJLg. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeError1003 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a721003to these 1 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:9kj9vw8UShQ. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeMinusOne (libSceHmd2) - before
sceHmd2Initializethe console answers -1 to these 12 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:EAkv8Mqt33E(sceHmd2InternalRelocalizerStart),Rv7bkmKvmz0(sceHmd2InternalRelocalizerStop),1oPZizn0SNA(sceHmd2InternalTrackingStart),TwCpE-nNrlo(sceHmd2InternalTrackingStop),jkqAeQfdtxw(sceHmd2InternalLedDetectorStart),+l0RQph81Z8(sceHmd2InternalLedDetectorStop),qsmAtGw1Ncc(sceHmd2InternalImageStart),uKhwYoMsIsA(sceHmd2InternalImageStop),WNdaigr94dI(sceHmd2InternalGenDataStart),P6S5ZVWf-H0(sceHmd2InternalGenDataStop),sun6NWE1sdg(sceHmd2InternalSlamTraceStart),--TFsJYXo04(sceHmd2InternalSlamTraceStop). Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeValue0400 (libSceHmd2) - before
sceHmd2Initializethe console answers0x400to these 1 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:BWqcwjCozzI. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2BeforeInitializeValue20000 (libSceHmd2) - before
sceHmd2Initializethe console answers0x20000to these 1 exports both with every argument null and with every argument pointing at a zeroed 16 KiB buffer, writing nothing:PRz7TdBGUI0. Measured from a payload process on firmware 13.60, so a game process before initialization is assumed to answer the same; the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - libSceHmd2 pre-initialization sweep (libSceHmd2) - the names in the entries above are the aerolib names of the NIDs where one exists; the error names
Error0004,Error002C,Error1002andError1003are placeholders for codes whose meaning is unknown, andReprojectionNotInitializedis ours because every export answering0x8a72000bis a reprojection one. Exports that answered differently to null and to zeroed arguments, wrote output, returned a pointer-like value, answered0x8a72000a(whichsceHmd2Initializealso returns for some applications) or crashed the probe are left as they were - Hmd2CheckFirstThenError0004 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x8a720004when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 20 exports:9WeZr4kYfzk(sceHmd2InternalGetFwVersion),N+5h1hCOFAg(sceHmd2InternalGetRequiredPUPVersion),w2vEs2y5ZmE(sceHmd2InternalGetOpticalParam),L5gat1pe0y0(sceHmd2InternalSetCameraSeeThroughParam),4GnLHR9NJ1w,AHk7nGSzef0(sceHmd2InternalGetTrackerFtsData),ncjX9d3mc0M,l63QYAUuogc(sceHmd2InternalGetSlamCommand),mrcBySCdXSo(sceHmd2InternalDfuGetStatus),ieBra+td8sU(sceHmd2InternalDfuGetUpdateStatus),s+rzBnewgGs(sceHmd2InternalDfuCheckAfterPvt),Nfcm0GBdzZI(sceHmd2InternalRelocalizerGetVersion),Tc9rasWfrm4(sceHmd2InternalSetHomeCalibration),ckTbKTX4KZg,D7576PUbUjk(sceHmd2InternalGazeReadStatus),tTJ04SrBT8U,sDP7hZ-P6OI(sceHmd2GazeGetDeviceStatus),J+eVNbN9ndY(sceHmd2GazeGetUserCalibrationStatus),kozvHBNyxf0,638Tmg5y6U4. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenZero (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and 0 when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 8 exports:8ETtFtp5zqY(sceHmd2InternalGetVrMode),CWPkBm3EXQA,R62liQQIAaA(sceHmd2InternalGetFakeLensSeparationDistance),-bcWLHsdzo0,JngJzgNbu8U(sceHmd2SetFieldOfView),xNBSz8xrGdk,yUVPfN-jRIU,BKPR3RZ5aO4. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x8a721002when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 8 exports:IG4y+drWAWw(sceHmd2InternalRelocalizerReadData),rhYUml9vppE(sceHmd2InternalRelocalizerReadDataAsync),6574xHS+jZk(sceHmd2InternalRelocalizerReadData2),mXzaY6xVoxg(sceHmd2InternalTrackingReadData),6af-HIZQQn4(sceHmd2InternalTrackingReadData2),6qWtdTHQsTk,pUm8t8xWhFg,A0XKI-WjxK8(sceHmd2InternalImageReadData). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenMinusOne (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and -1 when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 5 exports:A9s2j8OioPQ,YIgtmrL+HLY,Ng8zEkGxDNs,EtslTnqO1xU(sceHmd2InternalImageStart2),hfrnRTryKQQ(sceHmd2InternalImageSetConfig). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstTwoThenParameterInvalid (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 1 is null and0x8a720009when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 3 exports:PPX68fNToFM,LxPIfjHaY4c(sceHmd2GazeObjectSelectionQueryMemory),w8gBTTdg+po(sceHmd2GazeObjectSelectionGetSelectedObject). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckSecondThenError002C (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 1 is null and0x8a72002cwhen every argument points at a zeroed 16 KiB buffer, writing nothing, for these 3 exports:tWJPX2ycRMM,5UMB9PJA70o,xQs62qCk1EI. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenParameterInvalid (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x8a720009when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 2 exports:MMc+bSlqkzk(sceHmd2InternalSetVirtualDisplaySize),NpZHgvSYgEA. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckAllSixThenZero (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 1 and argument 2 and argument 3 and argument 4 and argument 5 is null and 0 when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 2 exports:z-serf9vsb0(sceHmd2InternalPushVr2dData),IRMUFu+uG5s. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckSecondThenParameterInvalid (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 1 is null and0x8a720009when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 2 exports:72U64E+0z6U,LCQzi5ILGrY(sceHmd2GazeGetCalibrationDataMaxSize). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenError800d0203 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x800d0203when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:Im0qL0j9Ubg. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenError1003 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x8a721003when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:ng6eI8uA0h4(sceHmd2InternalImageGetMemoryLayout). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstThenError1010 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 is null and0x8a721010when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:mPPGgjyJrCI. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstTwoThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 1 is null and0x8a721002when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:ZupCJmV5BDI(sceHmd2InternalImageGetFrameData). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstTwoThenError1003 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 1 is null and0x8a721003when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:mAQZwOX1IHU(sceHmd2InternalImageGetAverageLuminance). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstAndThirdThenZero (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 2 is null and 0 when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:oacDkQkinLo. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckFirstAndThirdThenError1003 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 0 and argument 2 is null and0x8a721003when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:zn7PHGzzEyI. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckSecondThenInvalidHandle (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 1 is null and0x8a720003when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:wEHILc7TP04(sceHmd2GazeInsertRawDataWithHandle). Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - Hmd2CheckSecondThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console answers0x8a720008when argument 1 is null and0x8a721002when every argument points at a zeroed 16 KiB buffer, writing nothing, for these 1 exports:W-ZIlUXcrNA. Each argument was nulled on its own with the others present (probehmd2n, payload process, firmware 13.60); what the present arguments mean, and the behaviour after initialization, are not measured, so the handler throws oncesceHmd2Initializehas succeeded - libSceHmd2 null-argument sweep (libSceHmd2) -
Error1010andError800d0203are placeholder names. Left as they were: the exports that write output (omimgG5itSs,FBUEhH9tQ1A,6PeHcAaKYg8,yur+xPdWPAg,RnieDDp5ge4,jM3NEJA11yw,b0H-n-tUk0U) and those whose answer with a single null argument is neither0x8a720008nor their all-present answer, which take a handle or slot number rather than a pointer first (MXhloJ6Iw3w,19wrIIiqFgM,Z389vAm47Ys,cDcrvEG8j8k,tuqJO6O6cb4,fd4fu1cziaI,UxMg7iL4nRs,K1GELwlaaGc,RFn39VCHjGY,FRoSjceDv10,wiv8+7ogrq0,wQ44gBwBw44) - Hmd2WriteStateTwo (libSceHmd2) - before
sceHmd2Initializethe console writes the five bytes02 00 00 00 00at the start of its first argument and returns 0; a null first argument returns0x8a720008:omimgG5itSs. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2WriteSize0x2000Align0x100 (libSceHmd2) - before
sceHmd2Initializethe console writes the 64-bit values0x2000through its first argument and0x100through its second and returns 0; a null first or second argument returns0x8a720008:6PeHcAaKYg8. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2WriteFourConstants (libSceHmd2) - before
sceHmd2Initializethe console writes the 16 bytese1 f0 74 3c d8 f0 74 3c 1f f1 74 3c d8 f0 74 3c(four floats near 0.01495) at the start of its first argument and returns 0; a null first argument returns0x8a720008:yur+xPdWPAg. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2WriteSixHalvesThenInvalidHandle (libSceHmd2) - before
sceHmd2Initializethe console writes the 24 bytes00 00 00 00 00 00 00 3f 00 00 00 3f 00 00 00 00 00 00 00 3f 00 00 00 3f(floats 0, 0.5, 0.5, 0, 0.5, 0.5) at the start of its second argument and returns0x8a720003for every first argument tried (0, a pointer); a null second argument returns0x8a720008:RnieDDp5ge4,jM3NEJA11yw. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2WriteTwelveHalvesThenInvalidHandle (libSceHmd2) - before
sceHmd2Initializethe console writes the 48 bytes00 00 00 00 00 00 00 3f 00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 00(floats 0, 0.5, 0.5, 0, 0, 0, 0, 0.5, 0.5, 0, 0, 0) at the start of its second argument and returns0x8a720003for every first argument tried; a null second argument returns0x8a720008:b0H-n-tUk0U. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo3CheckSecondThirdThenZero (libSceHmd2) - before
sceHmd2Initializethe console returns 0 for a first argument of 0 to 3 and0x8a720009for 4, 5, 8, 16, 255 and -1; a null second or third argument returns0x8a720008even with an invalid first argument. Its fourth to sixth arguments answered0x8a720009when null with an invalid first argument, which does not separate them from the first-argument check, so they are not looked at:MXhloJ6Iw3w. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo1ThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console returns0x8a721002for a first argument of 0 or 1 and0x8a720009for 2 to 5, 8, 16, 255 and -1; its other arguments were only nulled with an invalid first argument, which answered0x8a720009either way, so they are not looked at:19wrIIiqFgM. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo1CheckSecondThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console returns0x8a721002for a first argument of 0 or 1 and0x8a720009for 2 to 5, 8, 16, 255 and -1; a null second argument returns0x8a720008even with an invalid first argument:Z389vAm47Ys. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo1ThenMinusOne (libSceHmd2) - before
sceHmd2Initializethe console returns -1 for a first argument of 0 or 1 and0x8a720009for 2 to 5, 8, 16, 255 and -1; the other arguments are not looked at, for the reason given above:cDcrvEG8j8k,tuqJO6O6cb4(sceHmd2InternalLedDetectorSetIrCameraConfigBySlot),fd4fu1cziaI(sceHmd2InternalLedDetectorSetPriorityConfigBySlot). Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo2ThenMinusOne (libSceHmd2) - before
sceHmd2Initializethe console returns -1 for a first argument of 0 to 2 and0x8a720009for 3 to 5, 8, 16, 255 and -1; the other arguments are not looked at:UxMg7iL4nRs,K1GELwlaaGc(sceHmd2InternalImageSetConfigBySlot). Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo2ThenError1002 (libSceHmd2) - before
sceHmd2Initializethe console returns0x8a721002for a first argument of 0 to 2 and0x8a720009for 3 to 5, 8, 16, 255 and -1; the other arguments are not looked at:RFn39VCHjGY. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo2ThenError1003 (libSceHmd2) - before
sceHmd2Initializethe console returns0x8a721003for a first argument of 0 to 2 and0x8a720009for 3 to 5, 8, 16, 255 and -1; the other arguments are not looked at:FRoSjceDv10. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2SlotUpTo2CheckSecondThenError002C (libSceHmd2) - before
sceHmd2Initializethe console returns0x8a72002cfor a first argument of 0 to 2 and0x8a720009for 3 to 5, 8, 16, 255 and -1; a null second argument returns0x8a720008even with an invalid first argument:wQ44gBwBw44. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - Hmd2IndexZeroCheckSecondThenZero (libSceHmd2) - before
sceHmd2Initializethe console returns 0 for a first argument of 0 and0x8a72100ffor 1 to 5, 8, 16, 255 and -1; a null second argument returns0x8a720008even with a nonzero first argument. Its third to sixth arguments answered0x8a72100fwhen null with a nonzero first argument, which does not separate them from the first-argument check, so they are not looked at:wiv8+7ogrq0. Measured from a payload process on firmware 13.60 (probeshmd2nandhmd2x); the meaning of the arguments and the behaviour after initialization are not measured, and the handler throws oncesceHmd2Initializehas succeeded - FBUEhH9tQ1A (libSceHmd2) - left unimplemented: before initialization it writes the 32-bit value 9 through its second argument and returns 0 when its first argument points at zeroed memory, but returns
0x8a720001without writing when that memory holds 0xAA bytes, and its fourth to sixth arguments answer0x8a720001when null, so the first argument is an in-out structure whose fields are not known