diff --git a/include/services/gsp_gpu.hpp b/include/services/gsp_gpu.hpp index bc8ed287..f3fc57bb 100644 --- a/include/services/gsp_gpu.hpp +++ b/include/services/gsp_gpu.hpp @@ -34,6 +34,7 @@ class GPUService { void acquireRight(u32 messagePointer); void flushDataCache(u32 messagePointer); void registerInterruptRelayQueue(u32 messagePointer); + void setInternalPriorities(u32 messagePointer); void setLCDForceBlack(u32 messagePointer); void triggerCmdReqQueue(u32 messagePointer); void writeHwRegs(u32 messagePointer); diff --git a/src/core/services/gsp_gpu.cpp b/src/core/services/gsp_gpu.cpp index fed35b3b..13153a53 100644 --- a/src/core/services/gsp_gpu.cpp +++ b/src/core/services/gsp_gpu.cpp @@ -9,7 +9,8 @@ namespace ServiceCommands { WriteHwRegsWithMask = 0x00020084, FlushDataCache = 0x00080082, SetLCDForceBlack = 0x000B0040, - TriggerCmdReqQueue = 0x000C0000 + TriggerCmdReqQueue = 0x000C0000, + SetInternalPriorities = 0x001E0080 }; } @@ -41,6 +42,7 @@ void GPUService::handleSyncRequest(u32 messagePointer) { case ServiceCommands::AcquireRight: acquireRight(messagePointer); break; case ServiceCommands::FlushDataCache: flushDataCache(messagePointer); break; case ServiceCommands::RegisterInterruptRelayQueue: registerInterruptRelayQueue(messagePointer); break; + case ServiceCommands::SetInternalPriorities: setInternalPriorities(messagePointer); break; case ServiceCommands::SetLCDForceBlack: setLCDForceBlack(messagePointer); break; case ServiceCommands::TriggerCmdReqQueue: triggerCmdReqQueue(messagePointer); break; case ServiceCommands::WriteHwRegs: writeHwRegs(messagePointer); break; @@ -195,6 +197,12 @@ void GPUService::triggerCmdReqQueue(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); } +// Seems to be completely undocumented, probably not very important or useful +void GPUService::setInternalPriorities(u32 messagePointer) { + log("GSP::GPU::SetInternalPriorities\n"); + mem.write32(messagePointer + 4, Result::Success); +} + void GPUService::processCommandBuffer() { if (sharedMem == nullptr) [[unlikely]] { // Shared memory hasn't been set up yet return;