mirror of
https://git.eden-emu.dev/archive/citron
synced 2026-04-15 01:00:47 -04:00
Add Firmware 20.0.0-21.0.0 IPC support and stubs
This commit implements comprehensive firmware 20.0.0 through 21.0.0 support for Citron, including: - Updated firmware version constants to 21.0.0 in api_version.h - Updated HID service firmware version string to 21.0.0 - Added IPC command stubs for firmware 20.0.0+ in: * ISystemSettingsServer (commands 263, 264, 282, 283, 289, 300, 301, 306, 307) * IFirmwareDebugSettingsServer (command 24) * IApplicationFunctions (command 330) * IOlscServiceForSystemService (command 914) * IRemoteStorageController (commands 28, 901) * IService (migration) (commands 2250, 2260) * IAudioController (command 10200) - Created new service interfaces with proper stubs: * IContinuousRecorder (grcsrv) - command 5 [20.2.0+] with 0x20-byte input * IDownloadContext (news) - command 4 [20.0.0+] * INotifyService (pdm:ntfy) - commands 100, 101 [20.0.0+] returning outinterfaces - Added all new source files to CMakeLists.txt build system - Fixed logging tag usage (Service_Migration instead of Service_MIG) - Added required CMIF serialization headers for proper template instantiation All stubs return success explicitly, eliminating the need for auto-stubbing. All implementations follow Switchbrew documentation as closely as possible. Based on Switchbrew documentation: - https://switchbrew.org/wiki/21.0.0 - https://switchbrew.org/wiki/20.5.0 - https://switchbrew.org/wiki/20.4.0 - https://switchbrew.org/wiki/20.3.0 - https://switchbrew.org/wiki/20.2.0 - https://switchbrew.org/wiki/20.1.5 - https://switchbrew.org/wiki/20.1.1 - https://switchbrew.org/wiki/20.1.0 - https://switchbrew.org/wiki/20.0.1 - https://switchbrew.org/wiki/20.0.0 Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
@@ -73,7 +73,7 @@ IAudioController::IAudioController(Core::System& system_)
|
||||
{50003, D<&IAudioController::SetForceOverrideExternalDeviceNameForDebug>, "SetForceOverrideExternalDeviceNameForDebug"}, // [19.0.0+]
|
||||
{50004, D<&IAudioController::ClearForceOverrideExternalDeviceNameForDebug>, "ClearForceOverrideExternalDeviceNameForDebug"}, // [19.0.0+]
|
||||
{5000, nullptr, "Unknown5000"}, // [19.0.0+]
|
||||
{10200, nullptr, "Unknown10200"}, // [20.0.0+]
|
||||
{10200, D<&IAudioController::Unknown10200>, "Unknown10200"}, // [20.0.0+]
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -402,4 +402,9 @@ Result IAudioController::ClearForceOverrideExternalDeviceNameForDebug() {
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result IAudioController::Unknown10200() {
|
||||
LOG_WARNING(Audio, "(STUBBED) called Unknown10200 [20.0.0+]");
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
} // namespace Service::Audio
|
||||
|
||||
@@ -90,6 +90,7 @@ private:
|
||||
Result OverrideDefaultTargetForDebug(u32 target); // [19.0.0-19.0.1]
|
||||
Result SetForceOverrideExternalDeviceNameForDebug(InLargeData<std::array<u8, 0x80>, BufferAttr_HipcMapAlias> device_name); // [19.0.0+]
|
||||
Result ClearForceOverrideExternalDeviceNameForDebug(); // [19.0.0+]
|
||||
Result Unknown10200(); // [20.0.0+]
|
||||
|
||||
KernelHelpers::ServiceContext service_context;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user