Libraries: libSceVrTracker stubs (#3462)

* libSceVrTracker stubs, structs, enums, and errors

* sceVrTrackerQueryMemory

* Clang and slight struct cleanup

* Implement sceVrTrackerInit

* Store memory pointers and sizes

Mainly for future developers, since I doubt these memory areas will be particularly useful for these stubs.

* sceVrTrackerRegisterDevice

I haven't really identified the difference between the two register device functions, but I do know that they both internally call the internal function with slightly different parameters.

* sceVrTrackerUnregisterDevice

Also changes Hmd and Move handles to be values closer to what real hardware returns, since this function seemingly relies on handles being different for all these device types.

* sceVrTrackerTerm

* Additional error checks in sceVrTrackerRegisterDeviceInternal

* sceVrTrackerGetTime

* sceVrTrackerRecalibrate

Recalibration succeeds on real hardware (at least for some device types), so I've left the stub log intact.

* Update vr_tracker.cpp

* sceVrTrackerSetDurationUntilStatusNotTracking stub

Only handled the error checks, so I left the stub log intact.

* sceVrTrackerGpu* functions

Most of these can't succeed without a camera attached.
This commit is contained in:
Stephen Miller
2025-08-26 19:16:10 -05:00
committed by GitHub
parent dcb256c930
commit e172323dd0
9 changed files with 1087 additions and 4 deletions

View File

@@ -145,6 +145,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {
SUB(Lib, CompanionHttpd) \
SUB(Lib, CompanionUtil) \
SUB(Lib, Voice) \
SUB(Lib, VrTracker) \
CLS(Frontend) \
CLS(Render) \
SUB(Render, Vulkan) \

View File

@@ -112,6 +112,7 @@ enum class Class : u8 {
Lib_Camera, ///< The LibCamera implementation.
Lib_CompanionHttpd, ///< The LibCompanionHttpd implementation.
Lib_CompanionUtil, ///< The LibCompanionUtil implementation.
Lib_VrTracker, ///< The LibSceVrTracker implementation.
Frontend, ///< Emulator UI
Render, ///< Video Core
Render_Vulkan, ///< Vulkan backend