aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service/dsp_dsp.cpp
diff options
context:
space:
mode:
authorGravatar bunnei <bunneidev@gmail.com>2015-02-10 18:39:37 -0500
committerGravatar bunnei <bunneidev@gmail.com>2015-02-10 18:39:37 -0500
commitca22ee32393f98ddf43286857aee84827ca64768 (patch)
tree83f4e27bfbd3f183352ab11c65f6bca86e95d2b7 /src/core/hle/service/dsp_dsp.cpp
parent5b735bdeeae631a8494f8dc830b99e8ee15a4639 (diff)
parent60ce36f721415a1be26eab838ed4196efd3e475f (diff)
Merge pull request #526 from purpasmart96/citra_stubs
Services: Stub some functions
Diffstat (limited to 'src/core/hle/service/dsp_dsp.cpp')
-rw-r--r--src/core/hle/service/dsp_dsp.cpp66
1 files changed, 63 insertions, 3 deletions
diff --git a/src/core/hle/service/dsp_dsp.cpp b/src/core/hle/service/dsp_dsp.cpp
index 0f86894a..a720b63f 100644
--- a/src/core/hle/service/dsp_dsp.cpp
+++ b/src/core/hle/service/dsp_dsp.cpp
@@ -128,6 +128,31 @@ void WriteReg0x10(Service::Interface* self) {
}
/**
+ * DSP_DSP::WriteProcessPipe service function
+ * Inputs:
+ * 1 : Number
+ * 2 : Size
+ * 3 : (size <<14) | 0x402
+ * 4 : Buffer
+ * Outputs:
+ * 0 : Return header
+ * 1 : Result of function, 0 on success, otherwise error code
+ */
+void WriteProcessPipe(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ u32 number = cmd_buff[1];
+ u32 size = cmd_buff[2];
+ u32 new_size = cmd_buff[3];
+ u32 buffer = cmd_buff[4];
+
+ cmd_buff[1] = RESULT_SUCCESS.raw; // No error
+
+ LOG_WARNING(Service_DSP, "(STUBBED) called number=%u, size=0x%08X, new_size=0x%08X, buffer=0x%08X",
+ number, size, new_size, buffer);
+}
+
+/**
* DSP_DSP::ReadPipeIfPossible service function
* Inputs:
* 1 : Unknown
@@ -169,6 +194,41 @@ void ReadPipeIfPossible(Service::Interface* self) {
LOG_WARNING(Service_DSP, "(STUBBED) called size=0x%08X, buffer=0x%08X", size, addr);
}
+/**
+ * DSP_DSP::SetSemaphoreMask service function
+ * Inputs:
+ * 1 : Mask
+ * Outputs:
+ * 1 : Result of function, 0 on success, otherwise error code
+ */
+void SetSemaphoreMask(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ u32 mask = cmd_buff[1];
+
+ cmd_buff[1] = RESULT_SUCCESS.raw; // No error
+
+ LOG_WARNING(Service_DSP, "(STUBBED) called mask=0x%08X", mask);
+}
+
+/**
+ * DSP_DSP::GetHeadphoneStatus service function
+ * Inputs:
+ * 1 : None
+ * Outputs:
+ * 1 : Result of function, 0 on success, otherwise error code
+ * 2 : The headphone status response, 0 = Not using headphones?,
+ * 1 = using headphones?
+ */
+void GetHeadphoneStatus(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ cmd_buff[1] = RESULT_SUCCESS.raw; // No error
+ cmd_buff[2] = 0; // Not using headphones?
+
+ LOG_WARNING(Service_DSP, "(STUBBED) called");
+}
+
const Interface::FunctionInfo FunctionTable[] = {
{0x00010040, nullptr, "RecvData"},
{0x00020040, nullptr, "RecvDataIsReady"},
@@ -179,7 +239,7 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00090040, nullptr, "ClearSemaphore"},
{0x000B0000, nullptr, "CheckSemaphoreRequest"},
{0x000C0040, ConvertProcessAddressFromDspDram, "ConvertProcessAddressFromDspDram"},
- {0x000D0082, nullptr, "WriteProcessPipe"},
+ {0x000D0082, WriteProcessPipe, "WriteProcessPipe"},
{0x001000C0, ReadPipeIfPossible, "ReadPipeIfPossible"},
{0x001100C2, LoadComponent, "LoadComponent"},
{0x00120000, nullptr, "UnloadComponent"},
@@ -187,13 +247,13 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00140082, nullptr, "InvalidateDCache"},
{0x00150082, RegisterInterruptEvents, "RegisterInterruptEvents"},
{0x00160000, GetSemaphoreEventHandle, "GetSemaphoreEventHandle"},
- {0x00170040, nullptr, "SetSemaphoreMask"},
+ {0x00170040, SetSemaphoreMask, "SetSemaphoreMask"},
{0x00180040, nullptr, "GetPhysicalAddress"},
{0x00190040, nullptr, "GetVirtualAddress"},
{0x001A0042, nullptr, "SetIirFilterI2S1_cmd1"},
{0x001B0042, nullptr, "SetIirFilterI2S1_cmd2"},
{0x001C0082, nullptr, "SetIirFilterEQ"},
- {0x001F0000, nullptr, "GetHeadphoneStatus"},
+ {0x001F0000, GetHeadphoneStatus, "GetHeadphoneStatus"},
{0x00210000, nullptr, "GetIsDspOccupied"},
};