Updated functions pulling arguments out of the stack to use the appropriate SHIM_GET_ARG_* macro.
This commit is contained in:
parent
8c49281bb5
commit
7c5ea52022
|
@ -350,8 +350,7 @@ SHIM_CALL XamContentCreateEx_shim(PPCContext* ppc_context,
|
|||
uint32_t license_mask_ptr = SHIM_GET_ARG_32(5);
|
||||
uint32_t cache_size = SHIM_GET_ARG_32(6);
|
||||
uint64_t content_size = SHIM_GET_ARG_64(7);
|
||||
uint32_t sp = (uint32_t)ppc_context->r[1];
|
||||
uint32_t overlapped_ptr = SHIM_MEM_32(sp + 0x54);
|
||||
uint32_t overlapped_ptr = SHIM_GET_ARG_32(8);
|
||||
|
||||
auto root_name = xe::load_and_swap<std::string>(SHIM_MEM_ADDR(root_name_ptr));
|
||||
auto content_data = XCONTENT_DATA(SHIM_MEM_ADDR(content_data_ptr));
|
||||
|
|
|
@ -36,9 +36,7 @@ SHIM_CALL XamShowMessageBoxUI_shim(PPCContext* ppc_context,
|
|||
uint32_t active_button = SHIM_GET_ARG_32(5);
|
||||
uint32_t flags = SHIM_GET_ARG_32(6);
|
||||
uint32_t result_ptr = SHIM_GET_ARG_32(7);
|
||||
// arg8 is in stack!
|
||||
uint32_t sp = (uint32_t)ppc_context->r[1];
|
||||
uint32_t overlapped_ptr = SHIM_MEM_32(sp + 0x54);
|
||||
uint32_t overlapped_ptr = SHIM_GET_ARG_32(8);
|
||||
|
||||
auto title = xe::load_and_swap<std::wstring>(SHIM_MEM_ADDR(title_ptr));
|
||||
auto text = xe::load_and_swap<std::wstring>(SHIM_MEM_ADDR(text_ptr));
|
||||
|
|
|
@ -107,9 +107,7 @@ SHIM_CALL XamUserReadProfileSettings_shim(PPCContext* ppc_context,
|
|||
uint32_t setting_ids_ptr = SHIM_GET_ARG_32(5);
|
||||
uint32_t buffer_size_ptr = SHIM_GET_ARG_32(6);
|
||||
uint32_t buffer_ptr = SHIM_GET_ARG_32(7);
|
||||
// arg8 is in stack!
|
||||
uint32_t sp = (uint32_t)ppc_context->r[1];
|
||||
uint32_t overlapped_ptr = SHIM_MEM_32(sp + 0x54);
|
||||
uint32_t overlapped_ptr = SHIM_GET_ARG_32(8);
|
||||
|
||||
uint32_t buffer_size = SHIM_MEM_32(buffer_size_ptr);
|
||||
|
||||
|
|
|
@ -673,8 +673,7 @@ SHIM_CALL NtQueryDirectoryFile_shim(PPCContext* ppc_context,
|
|||
uint32_t file_info_ptr = SHIM_GET_ARG_32(5);
|
||||
uint32_t length = SHIM_GET_ARG_32(6);
|
||||
uint32_t file_name_ptr = SHIM_GET_ARG_32(7);
|
||||
uint32_t sp = (uint32_t)ppc_context->r[1];
|
||||
uint32_t restart_scan = SHIM_MEM_32(sp + 0x54);
|
||||
uint32_t restart_scan = SHIM_GET_ARG_32(8);
|
||||
|
||||
char* file_name = NULL;
|
||||
if (file_name_ptr != 0) {
|
||||
|
|
|
@ -304,18 +304,15 @@ SHIM_CALL VdSetSystemCommandBufferGpuIdentifierAddress_shim(
|
|||
|
||||
SHIM_CALL VdInitializeScalerCommandBuffer_shim(PPCContext* ppc_context,
|
||||
KernelState* kernel_state) {
|
||||
uint32_t unk0 = SHIM_GET_ARG_32(0); // 0?
|
||||
uint32_t unk1 = SHIM_GET_ARG_32(1); // 0x050002d0 size of ?
|
||||
uint32_t unk2 = SHIM_GET_ARG_32(2); // 0?
|
||||
uint32_t unk3 = SHIM_GET_ARG_32(3); // 0x050002d0 size of ?
|
||||
uint32_t unk4 = SHIM_GET_ARG_32(4); // 0x050002d0 size of ?
|
||||
uint32_t unk5 = SHIM_GET_ARG_32(5); // 7?
|
||||
uint32_t unk6 = SHIM_GET_ARG_32(6); // 0x2004909c <-- points to zeros?
|
||||
uint32_t unk7 = SHIM_GET_ARG_32(7); // 7?
|
||||
// arg8 is in stack!
|
||||
uint32_t sp = (uint32_t)ppc_context->r[1];
|
||||
// Points to the first 80000000h where the memcpy sources from.
|
||||
uint32_t dest_ptr = SHIM_MEM_32(sp + 0x54);
|
||||
uint32_t unk0 = SHIM_GET_ARG_32(0); // 0?
|
||||
uint32_t unk1 = SHIM_GET_ARG_32(1); // 0x050002d0 size of ?
|
||||
uint32_t unk2 = SHIM_GET_ARG_32(2); // 0?
|
||||
uint32_t unk3 = SHIM_GET_ARG_32(3); // 0x050002d0 size of ?
|
||||
uint32_t unk4 = SHIM_GET_ARG_32(4); // 0x050002d0 size of ?
|
||||
uint32_t unk5 = SHIM_GET_ARG_32(5); // 7?
|
||||
uint32_t unk6 = SHIM_GET_ARG_32(6); // 0x2004909c <-- points to zeros?
|
||||
uint32_t unk7 = SHIM_GET_ARG_32(7); // 7?
|
||||
uint32_t dest_ptr = SHIM_GET_ARG_32(8); // Points to the first 80000000h where the memcpy sources from.
|
||||
|
||||
XELOGD(
|
||||
"VdInitializeScalerCommandBuffer(%.8X, %.8X, %.8X, %.8X, %.8X, %.8X, "
|
||||
|
|
Loading…
Reference in New Issue