- added some function wrappers for HLE
- added stub for SVC CreateAddressArbiter - added OutputDebugString SVC
This commit is contained in:
		| @@ -158,8 +158,8 @@ template<int func(u32, u32, u32, u32, u32)> void WrapI_UUUUU() { | ||||
|     RETURN(retval); | ||||
| } | ||||
|  | ||||
| template<int func()> void WrapI_V() { | ||||
|     int retval = func(); | ||||
| template<int func(void*)> void WrapI_V() { | ||||
|     u32 retval = func(Memory::GetPointer(PARAM(0))); | ||||
|     RETURN(retval); | ||||
| } | ||||
|  | ||||
| @@ -638,6 +638,10 @@ template<u32 func(const char *, const char *)> void WrapU_CC() { | ||||
|     RETURN(retval); | ||||
| } | ||||
|  | ||||
| template<void func(const char*)> void WrapV_C() { | ||||
|     func(Memory::GetCharPointer(PARAM(0))); | ||||
| } | ||||
|  | ||||
| template<void func(const char *, int)> void WrapV_CI() { | ||||
|     func(Memory::GetCharPointer(PARAM(0)), PARAM(1)); | ||||
| } | ||||
|   | ||||
| @@ -82,15 +82,30 @@ Result SendSyncRequest(Handle session) { | ||||
| /// Close a handle | ||||
| Result CloseHandle(Handle handle) { | ||||
|     // ImplementMe | ||||
|     NOTICE_LOG(OSHLE, "stubbed function CloseHandle"); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /// Wait for a handle to synchronize, timeout after the specified nanoseconds | ||||
| Result WaitSynchronization1(Handle handle, s64 nanoseconds) { | ||||
|     // ImplementMe | ||||
|     NOTICE_LOG(OSHLE, "stubbed function WaitSynchronization1"); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /// Create an address arbiter (to allocate access to shared resources) | ||||
| Result CreateAddressArbiter(void* arbiter) { | ||||
|     // ImplementMe | ||||
|     NOTICE_LOG(OSHLE, "stubbed function CreateAddressArbiter"); | ||||
|     Core::g_app_core->SetReg(1, 0xDEADBEEF); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /// Used to output a message on a debug hardware unit - does nothing on a retail unit | ||||
| void OutputDebugString(const char* string) { | ||||
|     NOTICE_LOG(OSHLE, "## OSDEBUG: %s", string); | ||||
| } | ||||
|  | ||||
| const HLE::FunctionDef Syscall_Table[] = { | ||||
|     {0x00,  NULL,                               "Unknown"}, | ||||
|     {0x01,  WrapI_UUUUU<ControlMemory>,         "ControlMemory"}, | ||||
| @@ -125,7 +140,7 @@ const HLE::FunctionDef Syscall_Table[] = { | ||||
|     {0x1E,  NULL,                               "CreateMemoryBlock"}, | ||||
|     {0x1F,  WrapI_UUUU<MapMemoryBlock>,         "MapMemoryBlock"}, | ||||
|     {0x20,  NULL,                               "UnmapMemoryBlock"}, | ||||
|     {0x21,  NULL,                               "CreateAddressArbiter"}, | ||||
|     {0x21,  WrapI_V<CreateAddressArbiter>,      "CreateAddressArbiter"}, | ||||
|     {0x22,  NULL,                               "ArbitrateAddress"}, | ||||
|     {0x23,  WrapI_U<CloseHandle>,               "CloseHandle"}, | ||||
|     {0x24,  WrapI_US64<WaitSynchronization1>,   "WaitSynchronization1"}, | ||||
| @@ -153,7 +168,7 @@ const HLE::FunctionDef Syscall_Table[] = { | ||||
|     {0x3A,  NULL,                               "GetResourceLimitCurrentValues"}, | ||||
|     {0x3B,  NULL,                               "GetThreadContext"}, | ||||
|     {0x3C,  NULL,                               "Break"}, | ||||
|     {0x3D,  NULL,                               "OutputDebugString"}, | ||||
|     {0x3D,  WrapV_C<OutputDebugString>,         "OutputDebugString"}, | ||||
|     {0x3E,  NULL,                               "ControlPerformanceCounter"}, | ||||
|     {0x3F,  NULL,                               "Unknown"}, | ||||
|     {0x40,  NULL,                               "Unknown"}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei