Updated functions pulling arguments out of the stack to use the appropriate SHIM_GET_ARG_* macro.

This commit is contained in:
gibbed 2015-05-30 20:53:58 -05:00
parent 8c49281bb5
commit 7c5ea52022
5 changed files with 13 additions and 22 deletions

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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) {

View File

@ -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, "