diff options
Diffstat (limited to 'src/core/hle/service')
| -rw-r--r-- | src/core/hle/service/dsp_dsp.cpp | 69 | 
1 files changed, 44 insertions, 25 deletions
| diff --git a/src/core/hle/service/dsp_dsp.cpp b/src/core/hle/service/dsp_dsp.cpp index a2b68cac8..72be4c817 100644 --- a/src/core/hle/service/dsp_dsp.cpp +++ b/src/core/hle/service/dsp_dsp.cpp @@ -16,6 +16,25 @@ static Handle semaphore_event;  static Handle interrupt_event;  /** + * DSP_DSP::ConvertProcessAddressFromDspDram service function + *  Inputs: + *      1 : Address + *  Outputs: + *      1 : Result of function, 0 on success, otherwise error code + *      2 : (inaddr << 1) + 0x1FF40000 (where 0x1FF00000 is the DSP RAM address) + */ +void ConvertProcessAddressFromDspDram(Service::Interface* self) { +    u32* cmd_buff = Service::GetCommandBuffer(); + +    u32 addr = cmd_buff[1]; + +    cmd_buff[1] = 0; // No error +    cmd_buff[2] = (addr << 1) + (Memory::DSP_MEMORY_VADDR + 0x40000); + +    DEBUG_LOG(KERNEL, "(STUBBED) called with address %u", addr); +} + +/**   * DSP_DSP::LoadComponent service function   *  Inputs:   *      1 : Size @@ -90,31 +109,31 @@ void WriteReg0x10(Service::Interface* self) {  }  const Interface::FunctionInfo FunctionTable[] = { -    {0x00010040, nullptr,                 "RecvData"}, -    {0x00020040, nullptr,                 "RecvDataIsReady"}, -    {0x00030080, nullptr,                 "SendData"}, -    {0x00040040, nullptr,                 "SendDataIsEmpty"}, -    {0x00070040, WriteReg0x10,            "WriteReg0x10"}, -    {0x00080000, nullptr,                 "GetSemaphore"}, -    {0x00090040, nullptr,                 "ClearSemaphore"}, -    {0x000B0000, nullptr,                 "CheckSemaphoreRequest"}, -    {0x000C0040, nullptr,                 "ConvertProcessAddressFromDspDram"}, -    {0x000D0082, nullptr,                 "WriteProcessPipe"}, -    {0x001000C0, nullptr,                 "ReadPipeIfPossible"}, -    {0x001100C2, LoadComponent,           "LoadComponent"}, -    {0x00120000, nullptr,                 "UnloadComponent"}, -    {0x00130082, nullptr,                 "FlushDataCache"}, -    {0x00140082, nullptr,                 "InvalidateDCache"}, -    {0x00150082, RegisterInterruptEvents, "RegisterInterruptEvents"}, -    {0x00160000, GetSemaphoreEventHandle, "GetSemaphoreEventHandle"}, -    {0x00170040, nullptr,                 "SetSemaphoreMask"}, -    {0x00180040, nullptr,                 "GetPhysicalAddress"}, -    {0x00190040, nullptr,                 "GetVirtualAddress"}, -    {0x001A0042, nullptr,                 "SetIirFilterI2S1_cmd1"}, -    {0x001B0042, nullptr,                 "SetIirFilterI2S1_cmd2"}, -    {0x001C0082, nullptr,                 "SetIirFilterEQ"}, -    {0x001F0000, nullptr,                 "GetHeadphoneStatus"}, -    {0x00210000, nullptr,                 "GetIsDspOccupied"}, +    {0x00010040, nullptr,                          "RecvData"}, +    {0x00020040, nullptr,                          "RecvDataIsReady"}, +    {0x00030080, nullptr,                          "SendData"}, +    {0x00040040, nullptr,                          "SendDataIsEmpty"}, +    {0x00070040, WriteReg0x10,                     "WriteReg0x10"}, +    {0x00080000, nullptr,                          "GetSemaphore"}, +    {0x00090040, nullptr,                          "ClearSemaphore"}, +    {0x000B0000, nullptr,                          "CheckSemaphoreRequest"}, +    {0x000C0040, ConvertProcessAddressFromDspDram, "ConvertProcessAddressFromDspDram"}, +    {0x000D0082, nullptr,                          "WriteProcessPipe"}, +    {0x001000C0, nullptr,                          "ReadPipeIfPossible"}, +    {0x001100C2, LoadComponent,                    "LoadComponent"}, +    {0x00120000, nullptr,                          "UnloadComponent"}, +    {0x00130082, nullptr,                          "FlushDataCache"}, +    {0x00140082, nullptr,                          "InvalidateDCache"}, +    {0x00150082, RegisterInterruptEvents,          "RegisterInterruptEvents"}, +    {0x00160000, GetSemaphoreEventHandle,          "GetSemaphoreEventHandle"}, +    {0x00170040, nullptr,                          "SetSemaphoreMask"}, +    {0x00180040, nullptr,                          "GetPhysicalAddress"}, +    {0x00190040, nullptr,                          "GetVirtualAddress"}, +    {0x001A0042, nullptr,                          "SetIirFilterI2S1_cmd1"}, +    {0x001B0042, nullptr,                          "SetIirFilterI2S1_cmd2"}, +    {0x001C0082, nullptr,                          "SetIirFilterEQ"}, +    {0x001F0000, nullptr,                          "GetHeadphoneStatus"}, +    {0x00210000, nullptr,                          "GetIsDspOccupied"},  };  //////////////////////////////////////////////////////////////////////////////////////////////////// | 
