diff --git a/src/core/hle/service/mm/mm_u.cpp b/src/core/hle/service/mm/mm_u.cpp index f8b406d827..3e2534b11d 100644 --- a/src/core/hle/service/mm/mm_u.cpp +++ b/src/core/hle/service/mm/mm_u.cpp @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "common/logging/log.h" @@ -30,22 +31,23 @@ public: private: void InitializeOld(HLERequestContext& ctx) { - LOG_WARNING(Service_MM, "(STUBBED) called."); - IPC::RequestParser rp{ctx}; - module = rp.PopEnum(); - priority = rp.Pop(); - event_clear_mode = rp.Pop(); + const auto module = rp.PopEnum(); + const auto priority = rp.Pop(); + const auto event_clear_mode = rp.PopEnum(); + + LOG_WARNING(Service_MM, "(STUBBED) called, module={:d}, priority={:d}, event_clear_mode={:d}", + static_cast(module), priority, static_cast(event_clear_mode)); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); } void FinalizeOld(HLERequestContext& ctx) { - LOG_WARNING(Service_MM, "(STUBBED) called."); - IPC::RequestParser rp{ctx}; - module = rp.PopEnum(); + const auto module = rp.PopEnum(); + + LOG_WARNING(Service_MM, "(STUBBED) called, module={:d}", static_cast(module)); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); @@ -55,20 +57,23 @@ private: LOG_WARNING(Service_MM, "(STUBBED) called."); IPC::RequestParser rp{ctx}; - module = rp.PopEnum(); + const auto module = rp.PopEnum(); min = rp.Pop(); max = rp.Pop(); + LOG_DEBUG(Service_MM, "(STUBBED) called, module={:d}, min=0x{:X}, max=0x{:X}", + static_cast(module), min, max); + current = min; IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); } void GetOld(HLERequestContext& ctx) { - LOG_WARNING(Service_MM, "(STUBBED) called."); - IPC::RequestParser rp{ctx}; - module = rp.PopEnum(); + const auto module = rp.PopEnum(); + + LOG_DEBUG(Service_MM, "(STUBBED) called, module={:d}", static_cast(module)); IPC::ResponseBuilder rb{ctx, 3}; rb.Push(ResultSuccess); diff --git a/src/core/hle/service/mm/mm_u.h b/src/core/hle/service/mm/mm_u.h index 350b166a08..f6849e7726 100644 --- a/src/core/hle/service/mm/mm_u.h +++ b/src/core/hle/service/mm/mm_u.h @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -20,11 +21,23 @@ enum class Module : u32 { NVDEC = 5, NVENC = 6, NVJPG = 7, - TEST = 8 + TEST = 8, }; -typedef u32 Priority; -typedef u32 Setting; +using Priority = u32; +using Setting = u32; + +enum class EventClearMode : u32 { + // TODO: Add specific clear mode values when documented +}; + +// Consolidate settings into a struct for better organization +struct Settings { + Setting min{0}; + Setting max{0}; + Setting current{0}; + u32 id{1}; // Used by newer API versions +}; void LoopProcess(Core::System& system);