early-access version 1578

main
pineappleEA 2021-04-10 08:39:53 +02:00
parent 7cfa731bca
commit 7cb82a4132
31 changed files with 138 additions and 98 deletions

View File

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 1577. This is the source code for early-access 1578.
## Legal Notice ## Legal Notice

View File

@ -9,10 +9,10 @@ namespace Service::Audio {
AudInA::AudInA(Core::System& system_) : ServiceFramework{system_, "audin:a"} { AudInA::AudInA(Core::System& system_) : ServiceFramework{system_, "audin:a"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "RequestSuspendAudioIns"}, {0, nullptr, "RequestSuspend"},
{1, nullptr, "RequestResumeAudioIns"}, {1, nullptr, "RequestResume"},
{2, nullptr, "GetAudioInsProcessMasterVolume"}, {2, nullptr, "GetProcessMasterVolume"},
{3, nullptr, "SetAudioInsProcessMasterVolume"}, {3, nullptr, "SetProcessMasterVolume"},
}; };
// clang-format on // clang-format on

View File

@ -15,19 +15,19 @@ public:
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetAudioInState"}, {0, nullptr, "GetAudioInState"},
{1, nullptr, "StartAudioIn"}, {1, nullptr, "Start"},
{2, nullptr, "StopAudioIn"}, {2, nullptr, "Stop"},
{3, nullptr, "AppendAudioInBuffer"}, {3, nullptr, "AppendAudioInBuffer"},
{4, nullptr, "RegisterBufferEvent"}, {4, nullptr, "RegisterBufferEvent"},
{5, nullptr, "GetReleasedAudioInBuffer"}, {5, nullptr, "GetReleasedAudioInBuffer"},
{6, nullptr, "ContainsAudioInBuffer"}, {6, nullptr, "ContainsAudioInBuffer"},
{7, nullptr, "AppendAudioInBufferWithUserEvent"}, {7, nullptr, "AppendUacInBuffer"},
{8, nullptr, "AppendAudioInBufferAuto"}, {8, nullptr, "AppendAudioInBufferAuto"},
{9, nullptr, "GetReleasedAudioInBufferAuto"}, {9, nullptr, "GetReleasedAudioInBuffersAuto"},
{10, nullptr, "AppendAudioInBufferWithUserEventAuto"}, {10, nullptr, "AppendUacInBufferAuto"},
{11, nullptr, "GetAudioInBufferCount"}, {11, nullptr, "GetAudioInBufferCount"},
{12, nullptr, "SetAudioInDeviceGain"}, {12, nullptr, "SetDeviceGain"},
{13, nullptr, "GetAudioInDeviceGain"}, {13, nullptr, "GetDeviceGain"},
{14, nullptr, "FlushAudioInBuffers"}, {14, nullptr, "FlushAudioInBuffers"},
}; };
// clang-format on // clang-format on

View File

@ -9,12 +9,12 @@ namespace Service::Audio {
AudOutA::AudOutA(Core::System& system_) : ServiceFramework{system_, "audout:a"} { AudOutA::AudOutA(Core::System& system_) : ServiceFramework{system_, "audout:a"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "RequestSuspendAudioOuts"}, {0, nullptr, "RequestSuspend"},
{1, nullptr, "RequestResumeAudioOuts"}, {1, nullptr, "RequestResume"},
{2, nullptr, "GetAudioOutsProcessMasterVolume"}, {2, nullptr, "GetProcessMasterVolume"},
{3, nullptr, "SetAudioOutsProcessMasterVolume"}, {3, nullptr, "SetProcessMasterVolume"},
{4, nullptr, "GetAudioOutsProcessRecordVolume"}, {4, nullptr, "GetProcessRecordVolume"},
{5, nullptr, "SetAudioOutsProcessRecordVolume"}, {5, nullptr, "SetProcessRecordVolume"},
}; };
// clang-format on // clang-format on

View File

@ -49,11 +49,11 @@ public:
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &IAudioOut::GetAudioOutState, "GetAudioOutState"}, {0, &IAudioOut::GetAudioOutState, "GetAudioOutState"},
{1, &IAudioOut::StartAudioOut, "StartAudioOut"}, {1, &IAudioOut::StartAudioOut, "Start"},
{2, &IAudioOut::StopAudioOut, "StopAudioOut"}, {2, &IAudioOut::StopAudioOut, "Stop"},
{3, &IAudioOut::AppendAudioOutBufferImpl, "AppendAudioOutBuffer"}, {3, &IAudioOut::AppendAudioOutBufferImpl, "AppendAudioOutBuffer"},
{4, &IAudioOut::RegisterBufferEvent, "RegisterBufferEvent"}, {4, &IAudioOut::RegisterBufferEvent, "RegisterBufferEvent"},
{5, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBuffer"}, {5, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBuffers"},
{6, &IAudioOut::ContainsAudioOutBuffer, "ContainsAudioOutBuffer"}, {6, &IAudioOut::ContainsAudioOutBuffer, "ContainsAudioOutBuffer"},
{7, &IAudioOut::AppendAudioOutBufferImpl, "AppendAudioOutBufferAuto"}, {7, &IAudioOut::AppendAudioOutBufferImpl, "AppendAudioOutBufferAuto"},
{8, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBufferAuto"}, {8, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBufferAuto"},

View File

@ -9,8 +9,8 @@ namespace Service::Audio {
AudRecA::AudRecA(Core::System& system_) : ServiceFramework{system_, "audrec:a"} { AudRecA::AudRecA(Core::System& system_) : ServiceFramework{system_, "audrec:a"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "RequestSuspendFinalOutputRecorders"}, {0, nullptr, "RequestSuspend"},
{1, nullptr, "RequestResumeFinalOutputRecorders"}, {1, nullptr, "RequestResume"},
}; };
// clang-format on // clang-format on

View File

@ -13,16 +13,17 @@ public:
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetFinalOutputRecorderState"}, {0, nullptr, "GetFinalOutputRecorderState"},
{1, nullptr, "StartFinalOutputRecorder"}, {1, nullptr, "Start"},
{2, nullptr, "StopFinalOutputRecorder"}, {2, nullptr, "Stop"},
{3, nullptr, "AppendFinalOutputRecorderBuffer"}, {3, nullptr, "AppendFinalOutputRecorderBuffer"},
{4, nullptr, "RegisterBufferEvent"}, {4, nullptr, "RegisterBufferEvent"},
{5, nullptr, "GetReleasedFinalOutputRecorderBuffer"}, {5, nullptr, "GetReleasedFinalOutputRecorderBuffers"},
{6, nullptr, "ContainsFinalOutputRecorderBuffer"}, {6, nullptr, "ContainsFinalOutputRecorderBuffer"},
{7, nullptr, "GetFinalOutputRecorderBufferEndTime"}, {7, nullptr, "GetFinalOutputRecorderBufferEndTime"},
{8, nullptr, "AppendFinalOutputRecorderBufferAuto"}, {8, nullptr, "AppendFinalOutputRecorderBufferAuto"},
{9, nullptr, "GetReleasedFinalOutputRecorderBufferAuto"}, {9, nullptr, "GetReleasedFinalOutputRecorderBufferAuto"},
{10, nullptr, "FlushFinalOutputRecorderBuffers"}, {10, nullptr, "FlushFinalOutputRecorderBuffers"},
{11, nullptr, "AttachWorkBuffer"},
}; };
// clang-format on // clang-format on

View File

@ -9,14 +9,14 @@ namespace Service::Audio {
AudRenA::AudRenA(Core::System& system_) : ServiceFramework{system_, "audren:a"} { AudRenA::AudRenA(Core::System& system_) : ServiceFramework{system_, "audren:a"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "RequestSuspendAudioRenderers"}, {0, nullptr, "RequestSuspend"},
{1, nullptr, "RequestResumeAudioRenderers"}, {1, nullptr, "RequestResume"},
{2, nullptr, "GetAudioRenderersProcessMasterVolume"}, {2, nullptr, "GetProcessMasterVolume"},
{3, nullptr, "SetAudioRenderersProcessMasterVolume"}, {3, nullptr, "SetProcessMasterVolume"},
{4, nullptr, "RegisterAppletResourceUserId"}, {4, nullptr, "RegisterAppletResourceUserId"},
{5, nullptr, "UnregisterAppletResourceUserId"}, {5, nullptr, "UnregisterAppletResourceUserId"},
{6, nullptr, "GetAudioRenderersProcessRecordVolume"}, {6, nullptr, "GetProcessRecordVolume"},
{7, nullptr, "SetAudioRenderersProcessRecordVolume"}, {7, nullptr, "SetProcessRecordVolume"},
}; };
// clang-format on // clang-format on

View File

@ -332,9 +332,9 @@ AudRenU::AudRenU(Core::System& system_) : ServiceFramework{system_, "audren:u"}
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"}, {0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
{1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"}, {1, &AudRenU::GetAudioRendererWorkBufferSize, "GetWorkBufferSize"},
{2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"}, {2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
{3, &AudRenU::OpenAudioRendererAuto, "OpenAudioRendererAuto"}, {3, &AudRenU::OpenAudioRendererForManualExecution, "OpenAudioRendererForManualExecution"},
{4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"}, {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
}; };
// clang-format on // clang-format on
@ -665,7 +665,7 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {
rb.PushIpcInterface<IAudioDevice>(system, Common::MakeMagic('R', 'E', 'V', '1')); rb.PushIpcInterface<IAudioDevice>(system, Common::MakeMagic('R', 'E', 'V', '1'));
} }
void AudRenU::OpenAudioRendererAuto(Kernel::HLERequestContext& ctx) { void AudRenU::OpenAudioRendererForManualExecution(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_Audio, "called"); LOG_DEBUG(Service_Audio, "called");
OpenAudioRendererImpl(ctx); OpenAudioRendererImpl(ctx);

View File

@ -25,7 +25,7 @@ private:
void OpenAudioRenderer(Kernel::HLERequestContext& ctx); void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx); void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
void GetAudioDeviceService(Kernel::HLERequestContext& ctx); void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
void OpenAudioRendererAuto(Kernel::HLERequestContext& ctx); void OpenAudioRendererForManualExecution(Kernel::HLERequestContext& ctx);
void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx); void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx); void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx);

View File

@ -8,19 +8,19 @@ namespace Service::Audio {
CodecCtl::CodecCtl(Core::System& system_) : ServiceFramework{system_, "codecctl"} { CodecCtl::CodecCtl(Core::System& system_) : ServiceFramework{system_, "codecctl"} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "InitializeCodecController"}, {0, nullptr, "Initialize"},
{1, nullptr, "FinalizeCodecController"}, {1, nullptr, "Finalize"},
{2, nullptr, "SleepCodecController"}, {2, nullptr, "Sleep"},
{3, nullptr, "WakeCodecController"}, {3, nullptr, "Wake"},
{4, nullptr, "SetCodecVolume"}, {4, nullptr, "SetVolume"},
{5, nullptr, "GetCodecVolumeMax"}, {5, nullptr, "GetVolumeMax"},
{6, nullptr, "GetCodecVolumeMin"}, {6, nullptr, "GetVolumeMin"},
{7, nullptr, "SetCodecActiveTarget"}, {7, nullptr, "SetActiveTarget"},
{8, nullptr, "GetCodecActiveTarget"}, {8, nullptr, "GetActiveTarget"},
{9, nullptr, "BindCodecHeadphoneMicJackInterrupt"}, {9, nullptr, "BindHeadphoneMicJackInterrupt"},
{10, nullptr, "IsCodecHeadphoneMicJackInserted"}, {10, nullptr, "IsHeadphoneMicJackInserted"},
{11, nullptr, "ClearCodecHeadphoneMicJackInterrupt"}, {11, nullptr, "ClearHeadphoneMicJackInterrupt"},
{12, nullptr, "IsCodecDeviceRequested"}, {12, nullptr, "IsRequested"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

View File

@ -155,10 +155,12 @@ public:
{30210, nullptr, "SetDeliveryTaskTimer"}, {30210, nullptr, "SetDeliveryTaskTimer"},
{30300, nullptr, "RegisterSystemApplicationDeliveryTasks"}, {30300, nullptr, "RegisterSystemApplicationDeliveryTasks"},
{90100, nullptr, "EnumerateBackgroundDeliveryTask"}, {90100, nullptr, "EnumerateBackgroundDeliveryTask"},
{90101, nullptr, "Unknown90101"},
{90200, nullptr, "GetDeliveryList"}, {90200, nullptr, "GetDeliveryList"},
{90201, &IBcatService::ClearDeliveryCacheStorage, "ClearDeliveryCacheStorage"}, {90201, &IBcatService::ClearDeliveryCacheStorage, "ClearDeliveryCacheStorage"},
{90202, nullptr, "ClearDeliveryTaskSubscriptionStatus"}, {90202, nullptr, "ClearDeliveryTaskSubscriptionStatus"},
{90300, nullptr, "GetPushNotificationLog"}, {90300, nullptr, "GetPushNotificationLog"},
{90301, nullptr, "Unknown90301"},
}; };
// clang-format on // clang-format on
RegisterHandlers(functions); RegisterHandlers(functions);

View File

@ -29,8 +29,8 @@ public:
{11, nullptr, "CreateWakeupTimerEx"}, {11, nullptr, "CreateWakeupTimerEx"},
{12, nullptr, "GetLastEnabledWakeupTimerType"}, {12, nullptr, "GetLastEnabledWakeupTimerType"},
{13, nullptr, "CleanAllWakeupTimers"}, {13, nullptr, "CleanAllWakeupTimers"},
{14, nullptr, "Unknown"}, {14, nullptr, "GetPowerButton"},
{15, nullptr, "Unknown2"}, {15, nullptr, "SetEnableWakeupTimer"},
}; };
// clang-format on // clang-format on

View File

@ -49,6 +49,7 @@ CAPS_A::CAPS_A(Core::System& system_) : ServiceFramework{system_, "caps:a"} {
{16, nullptr, "GetAlbumMountResult"}, {16, nullptr, "GetAlbumMountResult"},
{17, nullptr, "GetAlbumUsage16"}, {17, nullptr, "GetAlbumUsage16"},
{18, nullptr, "Unknown18"}, {18, nullptr, "Unknown18"},
{19, nullptr, "Unknown19"},
{100, nullptr, "GetAlbumFileCountEx0"}, {100, nullptr, "GetAlbumFileCountEx0"},
{101, nullptr, "GetAlbumFileListEx0"}, {101, nullptr, "GetAlbumFileListEx0"},
{202, nullptr, "SaveEditedScreenShot"}, {202, nullptr, "SaveEditedScreenShot"},

View File

@ -43,6 +43,7 @@ CAPS_U::CAPS_U(Core::System& system_) : ServiceFramework{system_, "caps:u"} {
{141, nullptr, "GetAlbumFileList2AafeUidAruidDeprecated"}, {141, nullptr, "GetAlbumFileList2AafeUidAruidDeprecated"},
{142, &CAPS_U::GetAlbumFileList3AaeAruid, "GetAlbumFileList3AaeAruid"}, {142, &CAPS_U::GetAlbumFileList3AaeAruid, "GetAlbumFileList3AaeAruid"},
{143, nullptr, "GetAlbumFileList4AaeUidAruid"}, {143, nullptr, "GetAlbumFileList4AaeUidAruid"},
{144, nullptr, "GetAllAlbumFileList3AaeAruid"},
{60002, nullptr, "OpenAccessorSessionForApplication"}, {60002, nullptr, "OpenAccessorSessionForApplication"},
}; };
// clang-format on // clang-format on

View File

@ -41,6 +41,12 @@ ARP_R::ARP_R(Core::System& system_, const ARPManager& manager_)
{1, &ARP_R::GetApplicationLaunchPropertyWithApplicationId, "GetApplicationLaunchPropertyWithApplicationId"}, {1, &ARP_R::GetApplicationLaunchPropertyWithApplicationId, "GetApplicationLaunchPropertyWithApplicationId"},
{2, &ARP_R::GetApplicationControlProperty, "GetApplicationControlProperty"}, {2, &ARP_R::GetApplicationControlProperty, "GetApplicationControlProperty"},
{3, &ARP_R::GetApplicationControlPropertyWithApplicationId, "GetApplicationControlPropertyWithApplicationId"}, {3, &ARP_R::GetApplicationControlPropertyWithApplicationId, "GetApplicationControlPropertyWithApplicationId"},
{4, nullptr, "GetApplicationInstanceUnregistrationNotifier"},
{5, nullptr, "ListApplicationInstanceId"},
{6, nullptr, "GetMicroApplicationInstanceId"},
{7, nullptr, "GetApplicationCertificate"},
{9998, nullptr, "GetPreomiaApplicationLaunchProperty"},
{9999, nullptr, "GetPreomiaApplicationControlProperty"},
}; };
// clang-format on // clang-format on
@ -243,7 +249,8 @@ ARP_W::ARP_W(Core::System& system_, ARPManager& manager_)
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &ARP_W::AcquireRegistrar, "AcquireRegistrar"}, {0, &ARP_W::AcquireRegistrar, "AcquireRegistrar"},
{1, &ARP_W::DeleteProperties, "DeleteProperties"}, {1, &ARP_W::UnregisterApplicationInstance , "UnregisterApplicationInstance "},
{2, nullptr, "AcquireUpdater"},
}; };
// clang-format on // clang-format on
@ -270,7 +277,7 @@ void ARP_W::AcquireRegistrar(Kernel::HLERequestContext& ctx) {
rb.PushIpcInterface(registrar); rb.PushIpcInterface(registrar);
} }
void ARP_W::DeleteProperties(Kernel::HLERequestContext& ctx) { void ARP_W::UnregisterApplicationInstance(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
const auto process_id = rp.PopRaw<u64>(); const auto process_id = rp.PopRaw<u64>();

View File

@ -32,7 +32,7 @@ public:
private: private:
void AcquireRegistrar(Kernel::HLERequestContext& ctx); void AcquireRegistrar(Kernel::HLERequestContext& ctx);
void DeleteProperties(Kernel::HLERequestContext& ctx); void UnregisterApplicationInstance(Kernel::HLERequestContext& ctx);
ARPManager& manager; ARPManager& manager;
std::shared_ptr<IRegistrar> registrar; std::shared_ptr<IRegistrar> registrar;

View File

@ -118,9 +118,9 @@ public:
explicit DebugMonitor(Core::System& system_) : ServiceFramework{system_, "ldr:dmnt"} { explicit DebugMonitor(Core::System& system_) : ServiceFramework{system_, "ldr:dmnt"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "AddProcessToDebugLaunchQueue"}, {0, nullptr, "SetProgramArgument"},
{1, nullptr, "ClearDebugLaunchQueue"}, {1, nullptr, "FlushArguments"},
{2, nullptr, "GetNsoInfos"}, {2, nullptr, "GetProcessModuleInfo"},
}; };
// clang-format on // clang-format on
@ -135,8 +135,8 @@ public:
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "CreateProcess"}, {0, nullptr, "CreateProcess"},
{1, nullptr, "GetProgramInfo"}, {1, nullptr, "GetProgramInfo"},
{2, nullptr, "RegisterTitle"}, {2, nullptr, "PinProgram"},
{3, nullptr, "UnregisterTitle"}, {3, nullptr, "UnpinProgram"},
{4, nullptr, "SetEnabledProgramVerification"}, {4, nullptr, "SetEnabledProgramVerification"},
}; };
// clang-format on // clang-format on
@ -150,8 +150,8 @@ public:
explicit Shell(Core::System& system_) : ServiceFramework{system_, "ldr:shel"} { explicit Shell(Core::System& system_) : ServiceFramework{system_, "ldr:shel"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "AddProcessToLaunchQueue"}, {0, nullptr, "SetProgramArgument"},
{1, nullptr, "ClearLaunchQueue"}, {1, nullptr, "FlushArguments"},
}; };
// clang-format on // clang-format on
@ -164,19 +164,19 @@ public:
explicit RelocatableObject(Core::System& system_) : ServiceFramework{system_, "ldr:ro"} { explicit RelocatableObject(Core::System& system_) : ServiceFramework{system_, "ldr:ro"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &RelocatableObject::LoadNro, "LoadNro"}, {0, &RelocatableObject::LoadModule, "LoadModule"},
{1, &RelocatableObject::UnloadNro, "UnloadNro"}, {1, &RelocatableObject::UnloadModule, "UnloadModule"},
{2, &RelocatableObject::LoadNrr, "LoadNrr"}, {2, &RelocatableObject::RegisterModuleInfo, "RegisterModuleInfo"},
{3, &RelocatableObject::UnloadNrr, "UnloadNrr"}, {3, &RelocatableObject::UnregisterModuleInfo, "UnregisterModuleInfo"},
{4, &RelocatableObject::Initialize, "Initialize"}, {4, &RelocatableObject::Initialize, "Initialize"},
{10, nullptr, "LoadNrrEx"}, {10, nullptr, "RegisterModuleInfo2"},
}; };
// clang-format on // clang-format on
RegisterHandlers(functions); RegisterHandlers(functions);
} }
void LoadNrr(Kernel::HLERequestContext& ctx) { void RegisterModuleInfo(Kernel::HLERequestContext& ctx) {
struct Parameters { struct Parameters {
u64_le process_id; u64_le process_id;
u64_le nrr_address; u64_le nrr_address;
@ -273,7 +273,7 @@ public:
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);
} }
void UnloadNrr(Kernel::HLERequestContext& ctx) { void UnregisterModuleInfo(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
const auto pid = rp.Pop<u64>(); const auto pid = rp.Pop<u64>();
const auto nrr_address = rp.Pop<VAddr>(); const auto nrr_address = rp.Pop<VAddr>();
@ -408,7 +408,7 @@ public:
data_start, bss_end_addr - data_start, Kernel::KMemoryPermission::ReadAndWrite); data_start, bss_end_addr - data_start, Kernel::KMemoryPermission::ReadAndWrite);
} }
void LoadNro(Kernel::HLERequestContext& ctx) { void LoadModule(Kernel::HLERequestContext& ctx) {
struct Parameters { struct Parameters {
u64_le process_id; u64_le process_id;
u64_le image_address; u64_le image_address;
@ -546,7 +546,7 @@ public:
return RESULT_SUCCESS; return RESULT_SUCCESS;
} }
void UnloadNro(Kernel::HLERequestContext& ctx) { void UnloadModule(Kernel::HLERequestContext& ctx) {
if (!initialized) { if (!initialized) {
LOG_ERROR(Service_LDR, "LDR:RO not initialized before use!"); LOG_ERROR(Service_LDR, "LDR:RO not initialized before use!");
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};

View File

@ -154,6 +154,10 @@ PL_U::PL_U(Core::System& system_)
{100, nullptr, "RequestApplicationFunctionAuthorization"}, {100, nullptr, "RequestApplicationFunctionAuthorization"},
{101, nullptr, "RequestApplicationFunctionAuthorizationByProcessId"}, {101, nullptr, "RequestApplicationFunctionAuthorizationByProcessId"},
{102, nullptr, "RequestApplicationFunctionAuthorizationByApplicationId"}, {102, nullptr, "RequestApplicationFunctionAuthorizationByApplicationId"},
{103, nullptr, "RefreshApplicationFunctionBlackListDebugRecord"},
{104, nullptr, "RequestApplicationFunctionAuthorizationByProgramId"},
{105, nullptr, "GetFunctionBlackListSystemVersionToAuthorize"},
{106, nullptr, "GetFunctionBlackListVersion"},
{1000, nullptr, "LoadNgWordDataForPlatformRegionChina"}, {1000, nullptr, "LoadNgWordDataForPlatformRegionChina"},
{1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"}, {1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"},
}; };

View File

@ -26,6 +26,7 @@ public:
{22, nullptr, "DeleteSaveDataBackupAsync"}, {22, nullptr, "DeleteSaveDataBackupAsync"},
{25, nullptr, "ListDownloadableSaveDataBackupInfoAsync"}, {25, nullptr, "ListDownloadableSaveDataBackupInfoAsync"},
{26, nullptr, "DownloadSaveDataBackupAsync"}, {26, nullptr, "DownloadSaveDataBackupAsync"},
{27, nullptr, "UploadSaveDataBackupAsync"},
{9010, nullptr, "VerifySaveDataBackupLicenseAsyncForDebug"}, {9010, nullptr, "VerifySaveDataBackupLicenseAsyncForDebug"},
{9013, nullptr, "GetSaveDataBackupSettingForDebug"}, {9013, nullptr, "GetSaveDataBackupSettingForDebug"},
{9014, nullptr, "SetSaveDataBackupSettingEnabledForDebug"}, {9014, nullptr, "SetSaveDataBackupSettingEnabledForDebug"},

View File

@ -37,7 +37,7 @@ public:
{19, nullptr, "SetIrqEnable"}, {19, nullptr, "SetIrqEnable"},
{20, nullptr, "SetAspmEnable"}, {20, nullptr, "SetAspmEnable"},
{21, nullptr, "SetResetUponResumeEnable"}, {21, nullptr, "SetResetUponResumeEnable"},
{22, nullptr, "Unknown22"}, {22, nullptr, "ResetFunction"},
{23, nullptr, "Unknown23"}, {23, nullptr, "Unknown23"},
}; };
// clang-format on // clang-format on

View File

@ -64,6 +64,7 @@ public:
{1046, nullptr, "DisableFeaturesForReset"}, {1046, nullptr, "DisableFeaturesForReset"},
{1047, nullptr, "NotifyApplicationDownloadStarted"}, {1047, nullptr, "NotifyApplicationDownloadStarted"},
{1048, nullptr, "NotifyNetworkProfileCreated"}, {1048, nullptr, "NotifyNetworkProfileCreated"},
{1049, nullptr, "ResetFreeCommunicationApplicationList"},
{1061, &IParentalControlService::ConfirmStereoVisionRestrictionConfigurable, "ConfirmStereoVisionRestrictionConfigurable"}, {1061, &IParentalControlService::ConfirmStereoVisionRestrictionConfigurable, "ConfirmStereoVisionRestrictionConfigurable"},
{1062, &IParentalControlService::GetStereoVisionRestriction, "GetStereoVisionRestriction"}, {1062, &IParentalControlService::GetStereoVisionRestriction, "GetStereoVisionRestriction"},
{1063, &IParentalControlService::SetStereoVisionRestriction, "SetStereoVisionRestriction"}, {1063, &IParentalControlService::SetStereoVisionRestriction, "SetStereoVisionRestriction"},
@ -83,6 +84,8 @@ public:
{1421, nullptr, "GetAccountNickname"}, {1421, nullptr, "GetAccountNickname"},
{1424, nullptr, "GetAccountState"}, {1424, nullptr, "GetAccountState"},
{1425, nullptr, "RequestPostEvents"}, {1425, nullptr, "RequestPostEvents"},
{1426, nullptr, "GetPostEventInterval"},
{1427, nullptr, "SetPostEventInterval"},
{1432, nullptr, "GetSynchronizationEvent"}, {1432, nullptr, "GetSynchronizationEvent"},
{1451, nullptr, "StartPlayTimer"}, {1451, nullptr, "StartPlayTimer"},
{1452, nullptr, "StopPlayTimer"}, {1452, nullptr, "StopPlayTimer"},

View File

@ -261,6 +261,10 @@ SET_SYS::SET_SYS(Core::System& system_) : ServiceFramework{system_, "set:sys"} {
{155, nullptr, "SetAccountOnlineStorageSettings"}, {155, nullptr, "SetAccountOnlineStorageSettings"},
{156, nullptr, "GetPctlReadyFlag"}, {156, nullptr, "GetPctlReadyFlag"},
{157, nullptr, "SetPctlReadyFlag"}, {157, nullptr, "SetPctlReadyFlag"},
{158, nullptr, "GetAnalogStickUserCalibrationL"},
{159, nullptr, "SetAnalogStickUserCalibrationL"},
{160, nullptr, "GetAnalogStickUserCalibrationR"},
{161, nullptr, "SetAnalogStickUserCalibrationR"},
{162, nullptr, "GetPtmBatteryVersion"}, {162, nullptr, "GetPtmBatteryVersion"},
{163, nullptr, "SetPtmBatteryVersion"}, {163, nullptr, "SetPtmBatteryVersion"},
{164, nullptr, "GetUsb30HostEnableFlag"}, {164, nullptr, "GetUsb30HostEnableFlag"},
@ -302,6 +306,8 @@ SET_SYS::SET_SYS(Core::System& system_) : ServiceFramework{system_, "set:sys"} {
{200, nullptr, "SetButtonConfigRegisteredSettings"}, {200, nullptr, "SetButtonConfigRegisteredSettings"},
{201, nullptr, "GetFieldTestingFlag"}, {201, nullptr, "GetFieldTestingFlag"},
{202, nullptr, "SetFieldTestingFlag"}, {202, nullptr, "SetFieldTestingFlag"},
{203, nullptr, "GetPanelCrcMode"},
{204, nullptr, "SetPanelCrcMode"},
}; };
// clang-format on // clang-format on

View File

@ -190,10 +190,11 @@ SM::SM(std::shared_ptr<ServiceManager> service_manager_, Core::System& system_)
: ServiceFramework{system_, "sm:", 4}, : ServiceFramework{system_, "sm:", 4},
service_manager{std::move(service_manager_)}, kernel{system_.Kernel()} { service_manager{std::move(service_manager_)}, kernel{system_.Kernel()} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0x00000000, &SM::Initialize, "Initialize"}, {0, &SM::Initialize, "Initialize"},
{0x00000001, &SM::GetService, "GetService"}, {1, &SM::GetService, "GetService"},
{0x00000002, &SM::RegisterService, "RegisterService"}, {2, &SM::RegisterService, "RegisterService"},
{0x00000003, &SM::UnregisterService, "UnregisterService"}, {3, &SM::UnregisterService, "UnregisterService"},
{4, nullptr, "DetachClient"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

View File

@ -15,6 +15,7 @@ ETHC_C::ETHC_C(Core::System& system_) : ServiceFramework{system_, "ethc:c"} {
{3, nullptr, "GetMediaList"}, {3, nullptr, "GetMediaList"},
{4, nullptr, "SetMediaType"}, {4, nullptr, "SetMediaType"},
{5, nullptr, "GetMediaType"}, {5, nullptr, "GetMediaType"},
{6, nullptr, "Unknown6"},
}; };
// clang-format on // clang-format on

View File

@ -9,6 +9,7 @@ namespace Service::Sockets {
NSD::NSD(Core::System& system_, const char* name) : ServiceFramework{system_, name} { NSD::NSD(Core::System& system_, const char* name) : ServiceFramework{system_, name} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{5, nullptr, "GetSettingUrl"},
{10, nullptr, "GetSettingName"}, {10, nullptr, "GetSettingName"},
{11, nullptr, "GetEnvironmentIdentifier"}, {11, nullptr, "GetEnvironmentIdentifier"},
{12, nullptr, "GetDeviceId"}, {12, nullptr, "GetDeviceId"},

View File

@ -9,8 +9,8 @@ namespace Service::Sockets {
SFDNSRES::SFDNSRES(Core::System& system_) : ServiceFramework{system_, "sfdnsres"} { SFDNSRES::SFDNSRES(Core::System& system_) : ServiceFramework{system_, "sfdnsres"} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "SetDnsAddressesPrivate"}, {0, nullptr, "SetDnsAddressesPrivateRequest"},
{1, nullptr, "GetDnsAddressPrivate"}, {1, nullptr, "GetDnsAddressPrivateRequest"},
{2, nullptr, "GetHostByNameRequest"}, {2, nullptr, "GetHostByNameRequest"},
{3, nullptr, "GetHostByAddrRequest"}, {3, nullptr, "GetHostByAddrRequest"},
{4, nullptr, "GetHostStringErrorRequest"}, {4, nullptr, "GetHostStringErrorRequest"},

View File

@ -60,6 +60,8 @@ SPL_FS::SPL_FS(Core::System& system_, std::shared_ptr<Module> module_)
{4, nullptr, "GenerateAesKey"}, {4, nullptr, "GenerateAesKey"},
{5, nullptr, "SetConfig"}, {5, nullptr, "SetConfig"},
{7, &SPL::GetRandomBytes, "GenerateRandomBytes"}, {7, &SPL::GetRandomBytes, "GenerateRandomBytes"},
{9, nullptr, "ImportLotusKey"},
{10, nullptr, "DecryptLotusMessage"},
{11, nullptr, "IsDevelopment"}, {11, nullptr, "IsDevelopment"},
{12, nullptr, "GenerateSpecificAesKey"}, {12, nullptr, "GenerateSpecificAesKey"},
{14, nullptr, "DecryptAesKey"}, {14, nullptr, "DecryptAesKey"},
@ -123,6 +125,7 @@ SPL_ES::SPL_ES(Core::System& system_, std::shared_ptr<Module> module_)
{14, nullptr, "DecryptAesKey"}, {14, nullptr, "DecryptAesKey"},
{15, nullptr, "CryptAesCtr"}, {15, nullptr, "CryptAesCtr"},
{16, nullptr, "ComputeCmac"}, {16, nullptr, "ComputeCmac"},
{17, nullptr, "ImportEsKey"},
{18, nullptr, "UnwrapTitleKey"}, {18, nullptr, "UnwrapTitleKey"},
{20, nullptr, "PrepareEsCommonKey"}, {20, nullptr, "PrepareEsCommonKey"},
{21, nullptr, "AllocateAesKeyslot"}, {21, nullptr, "AllocateAesKeyslot"},

View File

@ -20,6 +20,7 @@ ITimeZoneService ::ITimeZoneService(Core::System& system_,
{3, nullptr, "LoadLocationNameList"}, {3, nullptr, "LoadLocationNameList"},
{4, &ITimeZoneService::LoadTimeZoneRule, "LoadTimeZoneRule"}, {4, &ITimeZoneService::LoadTimeZoneRule, "LoadTimeZoneRule"},
{5, nullptr, "GetTimeZoneRuleVersion"}, {5, nullptr, "GetTimeZoneRuleVersion"},
{6, nullptr, "GetDeviceLocationNameAndUpdatedTime"},
{100, &ITimeZoneService::ToCalendarTime, "ToCalendarTime"}, {100, &ITimeZoneService::ToCalendarTime, "ToCalendarTime"},
{101, &ITimeZoneService::ToCalendarTimeWithMyRule, "ToCalendarTimeWithMyRule"}, {101, &ITimeZoneService::ToCalendarTimeWithMyRule, "ToCalendarTimeWithMyRule"},
{201, &ITimeZoneService::ToPosixTime, "ToPosixTime"}, {201, &ITimeZoneService::ToPosixTime, "ToPosixTime"},

View File

@ -69,15 +69,15 @@ public:
: ServiceFramework{system_, "IClientEpSession"} { : ServiceFramework{system_, "IClientEpSession"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Open"}, {0, nullptr, "ReOpen"},
{1, nullptr, "Close"}, {1, nullptr, "Close"},
{2, nullptr, "Unknown2"}, {2, nullptr, "GetCompletionEvent"},
{3, nullptr, "Populate"}, {3, nullptr, "PopulateRing"},
{4, nullptr, "PostBufferAsync"}, {4, nullptr, "PostBufferAsync"},
{5, nullptr, "GetXferReport"}, {5, nullptr, "GetXferReport"},
{6, nullptr, "PostBufferMultiAsync"}, {6, nullptr, "PostBufferMultiAsync"},
{7, nullptr, "Unknown7"}, {7, nullptr, "CreateSmmuSpace"},
{8, nullptr, "Unknown8"}, {8, nullptr, "ShareReportRing"},
}; };
// clang-format on // clang-format on
@ -91,7 +91,7 @@ public:
: ServiceFramework{system_, "IClientIfSession"} { : ServiceFramework{system_, "IClientIfSession"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown0"}, {0, nullptr, "GetStateChangeEvent"},
{1, nullptr, "SetInterface"}, {1, nullptr, "SetInterface"},
{2, nullptr, "GetInterface"}, {2, nullptr, "GetInterface"},
{3, nullptr, "GetAlternateInterface"}, {3, nullptr, "GetAlternateInterface"},
@ -176,15 +176,15 @@ public:
: ServiceFramework{system_, "IPdCradleSession"} { : ServiceFramework{system_, "IPdCradleSession"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "VdmUserWrite"}, {0, nullptr, "SetCradleVdo"},
{1, nullptr, "VdmUserRead"}, {1, nullptr, "GetCradleVdo"},
{2, nullptr, "Vdm20Init"}, {2, nullptr, "ResetCradleUsbHub"},
{3, nullptr, "GetFwType"}, {3, nullptr, "GetHostPdcFirmwareType"},
{4, nullptr, "GetFwRevision"}, {4, nullptr, "GetHostPdcFirmwareRevision"},
{5, nullptr, "GetManufacturerId"}, {5, nullptr, "GetHostPdcManufactureId"},
{6, nullptr, "GetDeviceId"}, {6, nullptr, "GetHostPdcDeviceId"},
{7, nullptr, "Unknown7"}, {7, nullptr, "AwakeCradle"},
{8, nullptr, "Unknown8"}, {8, nullptr, "SleepCradle"},
}; };
// clang-format on // clang-format on
@ -219,12 +219,12 @@ public:
explicit USB_PM(Core::System& system_) : ServiceFramework{system_, "usb:pm"} { explicit USB_PM(Core::System& system_) : ServiceFramework{system_, "usb:pm"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown0"}, {0, nullptr, "GetPowerEvent"},
{1, nullptr, "Unknown1"}, {1, nullptr, "GetPowerState"},
{2, nullptr, "Unknown2"}, {2, nullptr, "GetDataEvent"},
{3, nullptr, "Unknown3"}, {3, nullptr, "GetDataRole"},
{4, nullptr, "Unknown4"}, {4, nullptr, "SetDiagData"},
{5, nullptr, "Unknown5"}, {5, nullptr, "GetDiagData"},
}; };
// clang-format on // clang-format on

View File

@ -46,6 +46,13 @@ public:
{28, nullptr, "Unknown28"}, {28, nullptr, "Unknown28"},
{29, nullptr, "Unknown29"}, {29, nullptr, "Unknown29"},
{30, nullptr, "Unknown30"}, {30, nullptr, "Unknown30"},
{31, nullptr, "Unknown31"},
{32, nullptr, "Unknown32"},
{33, nullptr, "Unknown33"},
{34, nullptr, "Unknown34"},
{35, nullptr, "Unknown35"},
{36, nullptr, "Unknown36"},
{37, nullptr, "Unknown37"},
}; };
// clang-format on // clang-format on