|
|
|
@ -15,6 +15,25 @@ namespace DSP_DSP { |
|
|
|
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: |
|
|
|
@ -98,7 +117,7 @@ const Interface::FunctionInfo FunctionTable[] = { |
|
|
|
{0x00080000, nullptr, "GetSemaphore"}, |
|
|
|
{0x00090040, nullptr, "ClearSemaphore"}, |
|
|
|
{0x000B0000, nullptr, "CheckSemaphoreRequest"}, |
|
|
|
{0x000C0040, nullptr, "ConvertProcessAddressFromDspDram"}, |
|
|
|
{0x000C0040, ConvertProcessAddressFromDspDram, "ConvertProcessAddressFromDspDram"}, |
|
|
|
{0x000D0082, nullptr, "WriteProcessPipe"}, |
|
|
|
{0x001000C0, nullptr, "ReadPipeIfPossible"}, |
|
|
|
{0x001100C2, LoadComponent, "LoadComponent"}, |
|
|
|
|