From de95045d10aeb5ff3edc3c3702f1fa9b6b19dabe Mon Sep 17 00:00:00 2001 From: MerryMage Date: Mon, 7 Mar 2016 21:51:59 +0000 Subject: [PATCH] Implement one variant of pipe 3 --- src/audio_core/hle/pipe.cpp | 3 +++ src/core/hle/service/dsp_dsp.cpp | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/audio_core/hle/pipe.cpp b/src/audio_core/hle/pipe.cpp index 9381883b4..2543a562f 100644 --- a/src/audio_core/hle/pipe.cpp +++ b/src/audio_core/hle/pipe.cpp @@ -144,6 +144,9 @@ void PipeWrite(DspPipe pipe_number, const std::vector& buffer) { return; } + case DspPipe::Binary: + std::copy(buffer.begin(), buffer.end(), std::back_inserter(pipe_data[static_cast(DspPipe::Binary)])); + return; default: LOG_CRITICAL(Audio_DSP, "pipe_number = %u unimplemented", pipe_number); UNIMPLEMENTED(); diff --git a/src/core/hle/service/dsp_dsp.cpp b/src/core/hle/service/dsp_dsp.cpp index 3ba24d466..34e45dab7 100644 --- a/src/core/hle/service/dsp_dsp.cpp +++ b/src/core/hle/service/dsp_dsp.cpp @@ -219,6 +219,21 @@ static void WriteProcessPipe(Service::Interface* self) { message[i] = Memory::Read8(buffer + i); } + switch (pipe) { + case DSP::HLE::DspPipe::Audio: + ASSERT(message.size() >= 4); + message[2] = 0; + message[3] = 0; + break; + case DSP::HLE::DspPipe::Binary: + ASSERT(message.size() >= 8); + message[4] = 1; + message[5] = 0; + message[6] = 0; + message[7] = 0; + break; + } + DSP::HLE::PipeWrite(pipe, message); cmd_buff[1] = RESULT_SUCCESS.raw; // No error