Implementing XamContentGetCreator, always returning self for saves.
This commit is contained in:
parent
0ae79bc21a
commit
d22bfec53c
|
@ -386,6 +386,41 @@ SHIM_CALL XamContentClose_shim(PPCContext* ppc_state, KernelState* state) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SHIM_CALL XamContentGetCreator_shim(PPCContext* ppc_state, KernelState* state) {
|
||||||
|
uint32_t user_index = SHIM_GET_ARG_32(0);
|
||||||
|
uint32_t content_data_ptr = SHIM_GET_ARG_32(1);
|
||||||
|
uint32_t is_creator_ptr = SHIM_GET_ARG_32(2);
|
||||||
|
uint32_t creator_xuid_ptr = SHIM_GET_ARG_32(3);
|
||||||
|
uint32_t overlapped_ptr = SHIM_GET_ARG_32(4);
|
||||||
|
|
||||||
|
auto content_data = XCONTENT_DATA(SHIM_MEM_ADDR(content_data_ptr));
|
||||||
|
|
||||||
|
XELOGD("XamContentGetCreator(%d, %.8X, %.8X, %.8X, %.8X)", user_index,
|
||||||
|
content_data_ptr, is_creator_ptr, creator_xuid_ptr, overlapped_ptr);
|
||||||
|
|
||||||
|
auto result = X_ERROR_SUCCESS;
|
||||||
|
|
||||||
|
if (content_data.content_type == 1) {
|
||||||
|
// User always creates saves.
|
||||||
|
SHIM_SET_MEM_32(is_creator_ptr, 1);
|
||||||
|
if (creator_xuid_ptr) {
|
||||||
|
SHIM_SET_MEM_64(creator_xuid_ptr, state->user_profile()->xuid());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
SHIM_SET_MEM_32(is_creator_ptr, 0);
|
||||||
|
if (creator_xuid_ptr) {
|
||||||
|
SHIM_SET_MEM_64(creator_xuid_ptr, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlapped_ptr) {
|
||||||
|
state->CompleteOverlappedImmediate(overlapped_ptr, result);
|
||||||
|
SHIM_SET_RETURN_32(X_ERROR_IO_PENDING);
|
||||||
|
} else {
|
||||||
|
SHIM_SET_RETURN_32(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SHIM_CALL XamContentGetThumbnail_shim(PPCContext* ppc_state,
|
SHIM_CALL XamContentGetThumbnail_shim(PPCContext* ppc_state,
|
||||||
KernelState* state) {
|
KernelState* state) {
|
||||||
uint32_t user_index = SHIM_GET_ARG_32(0);
|
uint32_t user_index = SHIM_GET_ARG_32(0);
|
||||||
|
@ -493,6 +528,7 @@ void xe::kernel::xam::RegisterContentExports(ExportResolver* export_resolver,
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentCreate, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentCreate, state);
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentCreateEx, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentCreateEx, state);
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentClose, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentClose, state);
|
||||||
|
SHIM_SET_MAPPING("xam.xex", XamContentGetCreator, state);
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentGetThumbnail, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentGetThumbnail, state);
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentSetThumbnail, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentSetThumbnail, state);
|
||||||
SHIM_SET_MAPPING("xam.xex", XamContentDelete, state);
|
SHIM_SET_MAPPING("xam.xex", XamContentDelete, state);
|
||||||
|
|
Loading…
Reference in New Issue