Просмотр исходного кода

hle: removed PARAM64 macro (this was incorrect), made several bug fixes accordingly for decoding U64 function parameters

bunnei 12 лет назад
Родитель
Сommit
9fd5d6c7d8
2 измененных файлов с 2 добавлено и 3 удалено
  1. 2 2
      src/core/hle/function_wrappers.h
  2. 0 1
      src/core/hle/hle.h

+ 2 - 2
src/core/hle/function_wrappers.h

@@ -750,11 +750,11 @@ template<int func(void*, u32, u32, u32, u32, u32)> void WrapI_VUUUUU(){
 }
 
 template<int func(u32, s64)> void WrapI_US64() {
-    int retval = func(PARAM(0), PARAM64(1));
+    int retval = func(PARAM(0), ((PARAM(3) << 32) | PARAM(2)));
     RETURN(retval);
 }
 
 template<int func(void*, void*, u32, u32, s64)> void WrapI_VVUUS64() {
-    int retval = func(Memory::GetPointer(PARAM(0)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), PARAM(4));
+    int retval = func(Memory::GetPointer(PARAM(5)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), ((PARAM(4) << 32) | PARAM(0)));
     RETURN(retval);
 }

+ 0 - 1
src/core/hle/hle.h

@@ -10,7 +10,6 @@
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 #define PARAM(n)        Core::g_app_core->GetReg(n)
-#define PARAM64(n)      (Core::g_app_core->GetReg(n) | ((u64)Core::g_app_core->GetReg(n + 1) << 32))
 #define RETURN(n)       Core::g_app_core->SetReg(0, n)
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////