feat(errordialog): log the error code and record the silent stub
Adds the dialog to the silent-stubs list in docs/dev/TechnicalDebt.md, since it finishes without showing anything. sceErrorDialogOpen now logs the error code and user id from the parameter (offsets 4 and 8), like libSceMsgDialog logs its message, so an error a title would have shown the player stays visible instead of disappearing.
This commit is contained in:
parent
7854fb6bff
commit
6571ace5bd
|
|
@ -4,6 +4,7 @@
|
|||
#include <mutex>
|
||||
|
||||
#include "SceTypes.hpp"
|
||||
#include "HitLog.hpp"
|
||||
#include "prx/libc/include/General.hpp"
|
||||
|
||||
#ifdef _WIN32
|
||||
|
|
@ -57,6 +58,11 @@ int APS5_VABI sceErrorDialogOpen(const void* param) {
|
|||
std::int32_t size = 0;
|
||||
std::memcpy(&size, param, sizeof(size));
|
||||
if (static_cast<std::size_t>(size) != kParamSize) return kErrParam;
|
||||
std::int32_t errorCode = 0;
|
||||
std::int32_t userId = 0;
|
||||
std::memcpy(&errorCode, static_cast<const std::uint8_t*>(param) + 4, sizeof(errorCode));
|
||||
std::memcpy(&userId, static_cast<const std::uint8_t*>(param) + 8, sizeof(userId));
|
||||
APS5_HIT("ERRORDIALOG", "open: error_code=0x%08X user_id=%d", errorCode, userId);
|
||||
g_status = kStatusRunning;
|
||||
return kErrOk;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
Throughout the project, every function at every stage either **does exactly what it's supposed to or throws an exception**. Everywhere... except:
|
||||
- [libSceSaveDataDialog.native](../../core/libs/prx/libSceSaveDataDialog.native/Export.cpp)
|
||||
- [libSceCommonDialog](../../core/libs/prx/libSceCommonDialog/Export.cpp)
|
||||
- [libSceErrorDialog](../../core/libs/prx/libSceErrorDialog/Export.cpp) - the error dialog runs the state machine but shows nothing; the error code passed to `sceErrorDialogOpen` is only logged
|
||||
- [libSceHmd](../../core/libs/prx/libSceHmd/Export.cpp) implements only the disconnected-headset path: initialization succeeds, device queries report `NotDetected`, and opening a device returns `DeviceDisconnected`. Headset support, tracking, rendering and additional HMD exports are not implemented; SDK-level ABI compatibility and in-game behaviour remain unverified.
|
||||
- [libSceNpCommerce](../../core/libs/prx/libSceNpCommerce/Export.cpp) - the PS Store icon show/hide calls do nothing
|
||||
- [sceVideoOutOpen](../../core/libs/prx/libSceVideoOut/src/Output.cpp) validates the priority and CPU affinity that the open param requests for the VideoOut service thread but does not apply them: the port's present and vblank threads are host threads, and guest priorities and affinities do not reach host scheduling
|
||||
|
|
|
|||
Loading…
Reference in New Issue