aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx.HLE/HOS/Horizon.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/AccountUtils.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/Account/AccountUtils.cs)5
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs)12
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IBaasAccessTokenAccessor.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IManagerForApplication.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/IProfile.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/IProfile.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/Account/AccountState.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfile.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/Account/UserProfile.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Dauth/IService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/Acc/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs (renamed from Ryujinx.HLE/HOS/Services/Am/ISystemAppletProxy.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs (renamed from Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IApplicationCreator.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IApplicationCreator.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IAudioController.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs (renamed from Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs)13
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDebugFunctions.cs7
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IDisplayController.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IGlobalStateController.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IGlobalStateController.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs (renamed from Ryujinx.HLE/HOS/Services/Am/ILibraryAppletCreator.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs (renamed from Ryujinx.HLE/HOS/Services/Am/ISelfController.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IWindowController.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/FocusState.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/MessageInfo.cs (renamed from Ryujinx.HLE/HOS/Services/Am/MessageInfo.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/OperationMode.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IAllSystemAppletProxiesService.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IStorage.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IStorageAccessor.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletAE/Storage/StorageHelper.cs (renamed from Ryujinx.HLE/HOS/Services/Am/StorageHelper.cs)8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IApplicationProxy.cs)5
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs (renamed from Ryujinx.HLE/HOS/Services/Am/IApplicationProxyService.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/FocusState.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/IDebugFunctions.cs7
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/Idle/IPolicyManagerSystem.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/Omm/IOperationModeManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/OperationMode.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/Spsm/IPowerStateInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/Tcap/IManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/NvFlinger.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/NvFlinger.cs)99
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Parcel.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/Parcel.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/BufferEntry.cs13
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/BufferState.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorBytePerPixel.cs17
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorComponent.cs42
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorDataType.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorFormat.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/ColorFormat.cs)133
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorShift.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSpace.cs33
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSwizzle.cs31
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Fence.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/GbpBuffer.cs37
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/GraphicBufferHeader.cs21
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/HalTransform.cs14
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/MultiFence.cs23
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBuffer.cs41
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurface.cs44
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurfaceArray.cs39
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/QueueBufferObject.cs35
-rw-r--r--Ryujinx.HLE/HOS/Services/Android/Types/Rect.cs13
-rw-r--r--Ryujinx.HLE/HOS/Services/Apm/IManager.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Apm/Types/CpuBoostMode.cs (renamed from Ryujinx.HLE/HOS/Services/Apm/CpuBoostMode.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceConfiguration.cs (renamed from Ryujinx.HLE/HOS/Services/Apm/PerformanceConfiguration.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceMode.cs (renamed from Ryujinx.HLE/HOS/Services/Apm/PerformanceMode.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs (renamed from Ryujinx.HLE/HOS/Services/Glue/ApplicationLaunchProperty.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Arp/IReader.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Arp/IWriter.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/IAudioOut.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioOut/IAudioOut.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/Types/AudioOutData.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioOut/AudioOutData.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs)9
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/MemoryPoolContext.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolContext.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Resampler.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/Resampler.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioConsts.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/AudioConsts.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioRendererParameter.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRendererParameter.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BehaviorIn.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BehaviorIn.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BiquadFilter.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BiquadFilter.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolIn.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolIn.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolOut.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolOut.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolState.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolState.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/PlayState.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/PlayState.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/UpdateDataHeader.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/UpdateDataHeader.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceChannelResourceIn.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceChannelResourceIn.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceIn.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceIn.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceOut.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceOut.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/WaveBuffer.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/WaveBuffer.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/VoiceContext.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceContext.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/IHardwareOpusDecoder.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoder.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioController.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioInManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForApplet.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForDebugger.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/IAudioOutManager.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForApplet.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForDebugger.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs)35
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForApplet.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForDebugger.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IAudioSnoopManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForApplet.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForDebugger.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/IHardwareOpusDecoderManager.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoderManager.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/Types/SampleFormat.cs (renamed from Ryujinx.HLE/HOS/Services/Aud/SampleFormat.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Bcat/IServiceCreator.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IBcatService.cs (renamed from Ryujinx.HLE/HOS/Services/Bcat/IBcatService.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheStorageService.cs (renamed from Ryujinx.HLE/HOS/Services/Bcat/IDeliveryCacheStorageService.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Bgtc/IStateControlService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Bgtc/ITaskService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothDriver/BluetoothEventManager.cs (renamed from Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothEventManager.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Btm/BtmUser/IBtmUserCore.cs (renamed from Ryujinx.HLE/HOS/Services/Btm/IBtmUserCore.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Btm/IBtmDebug.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Btm/IBtmSystem.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Btm/IBtmUser.cs6
-rw-r--r--Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Caps/IScreenShotControlService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Caps/IScreenshotService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Cec/ICecManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Erpt/IContext.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Erpt/ISession.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Es/IETicketService.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Eupld/IControl.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Eupld/IRequest.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Fatal/IPrivateService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Fatal/IService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/IFriendServiceTypes.cs104
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/IServiceCreator.cs1
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/Friend.cs29
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/FriendFilter.cs24
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatus.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatusFilter.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs27
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IDaemonSuspendSessionService.cs (renamed from Ryujinx.HLE/HOS/Services/Friend/IDaemonSuspendSessionService.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IFriendService.cs (renamed from Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs)5
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/INotificationService.cs (renamed from Ryujinx.HLE/HOS/Services/Friend/INotificationService.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/NotificationEventHandler.cs (renamed from Ryujinx.HLE/HOS/Services/Friend/NotificationEventHandler.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationEventType.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationInfo.cs15
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/Types/FriendServicePermissionLevel.cs (renamed from Ryujinx.HLE/HOS/Services/Friend/FriendServicePermissionLevel.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/FileSystemProxyHelper.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/FileSystemHelper.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/IDirectory.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/IFile.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/IStorage.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs)25
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxyForLoader.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/IProgramRegistry.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Fs/Types/FileSystemType.cs (renamed from Ryujinx.HLE/HOS/Services/FspSrv/FileSystemType.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Grc/IGrcService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Grc/IRemoteVideoTransfer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidNpad.cs41
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs46
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs (renamed from Ryujinx.HLE/HOS/Services/Hid/IActiveVibrationDeviceList.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs (renamed from Ryujinx.HLE/HOS/Services/Hid/IAppletResource.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidSixAxis.cs21
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidUtils.cs46
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidVibration.cs29
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidDebugServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs1
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/ISystemServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorSystemServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadHandheldActivationMode.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadIdType.cs (renamed from Ryujinx.HLE/HOS/Services/Hid/NpadIdType.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyAssignmentMode.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyDeviceType.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyHoldType.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadStyle.cs16
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidAccelerometerParameters.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidGyroscopeZeroDriftMode.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidSensorFusionParameters.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDevicePosition.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceType.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceValue.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationValue.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Ins/IReceiverManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ins/ISenderManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Lbl/ILblController.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldn/IMonitorServiceCreator.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldn/ISystemServiceCreator.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/IDebugMonitorInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/IProcessManagerInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/IRoInterface.cs82
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/IShellInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/Types/NroInfo.cs35
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/Types/NrrHeader.cs38
-rw-r--r--Ryujinx.HLE/HOS/Services/Ldr/Types/NrrInfo.cs18
-rw-r--r--Ryujinx.HLE/HOS/Services/Lm/ILogService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Lm/LogService/ILogger.cs (renamed from Ryujinx.HLE/HOS/Services/Lm/ILogger.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogField.cs (renamed from Ryujinx.HLE/HOS/Services/Lm/LmLogField.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogLevel.cs (renamed from Ryujinx.HLE/HOS/Services/Lm/LmLogLevel.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Mig/IService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ncm/IContentStorage.cs7
-rw-r--r--Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs (renamed from Ryujinx.HLE/HOS/Services/Lr/ILocationResolverManager.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs (renamed from Ryujinx.HLE/HOS/Services/Lr/ILocationResolver.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Ncm/Lr/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/Lr/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/News/IServiceCreator.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/IAmManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Mifare/IUserManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/State.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/IUser.cs (renamed from Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUser.cs)6
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/Device.cs (renamed from Ryujinx.HLE/HOS/Services/Nfc/Nfp/Device.cs)6
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/DeviceState.cs (renamed from Ryujinx.HLE/HOS/Services/Nfc/Nfp/DeviceState.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/State.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ngct/IUnknown1.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/GeneralServiceManager.cs (renamed from Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceManager.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/Types/GeneralServiceDetail.cs (renamed from Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceDetail.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs (renamed from Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs (renamed from Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nim/INetworkInstallManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessSystemInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nim/IShopServiceManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForApplication.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForSystem.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Npns/INpnsSystem.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Npns/INpnsUser.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ns/IDevelopInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/INvDrvDebugFSServices.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/INvGemControl.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/INvGemCoreDump.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/NvGpuASIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASAllocSpace.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASCtx.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASCtx.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASMapBufferEx.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASRemap.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASRemap.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASUnmapBuffer.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/NvGpuGpuIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs)43
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetActiveSlotMask.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetCharacteristics.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetTpcMasks.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetCtxSize.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetInfo.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs)6
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannel.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannel.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannelPriority.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannelPriority.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelCmdBuf.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelCmdBuf.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelGetParamArg.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelGetParamArg.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelMapBuffer.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelMapBuffer.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmit.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmit.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmitGpfifo.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/NvHostCtrlIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs)7
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtRead.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWait.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWaitEx.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlUserCtx.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEvent.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEvent.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEventState.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEventState.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostSyncPt.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostSyncPt.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/NvMapIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapIoctl.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapAlloc.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapAlloc.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapCreate.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapCreate.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFree.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFree.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFromId.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFromId.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapGetId.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapGetId.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandle.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandle.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandleParam.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandleParam.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapParam.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapParam.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/Types/NvFd.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvFd.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/Types/NvResult.cs (renamed from Ryujinx.HLE/HOS/Services/Nv/NvResult.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForSystemService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ovln/IReceiverService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ovln/ISenderService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcie/ILogManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcie/IManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs (renamed from Ryujinx.HLE/HOS/Services/Pctl/IParentalControlService.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Bpc/IBoardPowerControlManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs (renamed from Ryujinx.HLE/HOS/Services/Bpc/IRtcManager.cs)4
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IArbitrationManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/IPcvService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Rgltr/IRegulatorManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pcv/Rtc/IUnknown1.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pm/IBootModeInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs1
-rw-r--r--Ryujinx.HLE/HOS/Services/Psc/IPmControl.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Psc/IPmService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Psc/IPmUnknown.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Fan/IManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Fgm/IDebugger.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Fgm/ISession.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Pcm/IManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs (renamed from Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs)9
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs (renamed from Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Psm/Types/ChargerType.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Tc/IManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Ptm/Ts/IMeasurementServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Avm/IAvmService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Mii/IImageDatabaseService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Mii/IStaticService.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Pdm/INotifyService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs (renamed from Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs)3
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/IFactorySettingsServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/IFirmwareDebugSettingsServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs (renamed from Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs (renamed from Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs (renamed from Ryujinx.HLE/HOS/Services/Set/NxSettings.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Settings/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/Set/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sm/IManagerInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs (renamed from Ryujinx.HLE/HOS/Services/Bsd/IClient.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/ServerInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdIoctl.cs (renamed from Ryujinx.HLE/HOS/Services/Bsd/BsdIoctl.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdSocket.cs (renamed from Ryujinx.HLE/HOS/Services/Bsd/BsdSocket.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/PollEvent.cs (renamed from Ryujinx.HLE/HOS/Services/Bsd/PollEvent.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterface.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterfaceGroup.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs (renamed from Ryujinx.HLE/HOS/Services/Nsd/IManager.cs)5
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs (renamed from Ryujinx.HLE/HOS/Services/Nsd/FqdnResolver.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Nsd/ResultCode.cs (renamed from Ryujinx.HLE/HOS/Services/Nsd/ResultCode.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Nsd/Types/NsdSettings.cs (renamed from Ryujinx.HLE/HOS/Services/Nsd/NsdSettings.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs (renamed from Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/GaiError.cs (renamed from Ryujinx.HLE/HOS/Services/Sfdnsres/GaiError.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/NetDBError.cs (renamed from Ryujinx.HLE/HOS/Services/Sfdnsres/NetDBError.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs13
-rw-r--r--Ryujinx.HLE/HOS/Services/Srepo/ISrepoService.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs1
-rw-r--r--Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs (renamed from Ryujinx.HLE/HOS/Services/Ssl/ISslContext.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/ClockTypes.cs105
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/Types/ClockSnapshot.cs41
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/Types/SteadyClockTimePoint.cs34
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/Types/SystemClockContext.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs32
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/IAlarmService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/IPowerStateRequestHandler.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/IStaticService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/ITimeZoneServiceTypes.cs128
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs (renamed from Ryujinx.HLE/HOS/Services/Time/ISteadyClock.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs (renamed from Ryujinx.HLE/HOS/Services/Time/ISystemClock.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneService.cs (renamed from Ryujinx.HLE/HOS/Services/Time/ITimeZoneService.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZone.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneManager.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarAdditionalInfo.cs22
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarInfo.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarTime.cs15
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeTypeInfo.cs27
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeZoneRule.cs39
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TzifHeader.cs34
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Types/TimePermissions.cs (renamed from Ryujinx.HLE/HOS/Services/Time/TimePermissions.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IClientRootSession.cs9
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IDsService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IPdCradleManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IPdManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IPmService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IUnknown1.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Usb/IUnknown2.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/GbpBuffer.cs165
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Display.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/Display.cs)0
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IHOSBinderDriver.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/IHOSBinderDriver.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs)2
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/DestinationScalingMode.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/SourceScalingMode.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs (renamed from Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs)23
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/ScalingMode.cs20
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/IInfraManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/ILocalGetActionFrame.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/ILocalGetFrame.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/ILocalManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/ISocketGetFrame.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/ISocketManager.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Wlan/IUnknown1.cs8
-rw-r--r--Ryujinx.HLE/HOS/SystemState/AppletStateMgr.cs2
-rw-r--r--Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs2
393 files changed, 2539 insertions, 1298 deletions
diff --git a/Ryujinx.HLE/HOS/Horizon.cs b/Ryujinx.HLE/HOS/Horizon.cs
index 334cba12..86b28320 100644
--- a/Ryujinx.HLE/HOS/Horizon.cs
+++ b/Ryujinx.HLE/HOS/Horizon.cs
@@ -8,6 +8,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Memory;
using Ryujinx.HLE.HOS.Kernel.Process;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Services.Settings;
using Ryujinx.HLE.HOS.Services.Sm;
using Ryujinx.HLE.HOS.Services.Time.Clock;
using Ryujinx.HLE.HOS.SystemState;
@@ -203,7 +204,7 @@ namespace Ryujinx.HLE.HOS
// TODO: use "time!standard_steady_clock_rtc_update_interval_minutes" and implement a worker thread to be accurate.
StandardSteadyClockCore.Instance.ConfigureSetupValue();
- if (Services.Set.NxSettings.Settings.TryGetValue("time!standard_network_clock_sufficient_accuracy_minutes", out object standardNetworkClockSufficientAccuracyMinutes))
+ if (NxSettings.Settings.TryGetValue("time!standard_network_clock_sufficient_accuracy_minutes", out object standardNetworkClockSufficientAccuracyMinutes))
{
TimeSpanType standardNetworkClockSufficientAccuracy = new TimeSpanType((int)standardNetworkClockSufficientAccuracyMinutes * 60000000000);
diff --git a/Ryujinx.HLE/HOS/Services/Acc/Account/AccountUtils.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/AccountUtils.cs
index 5e7f4dac..7a70025a 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/Account/AccountUtils.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/AccountUtils.cs
@@ -1,10 +1,9 @@
-using Ryujinx.HLE.HOS.SystemState;
-using Ryujinx.HLE.Utilities;
+using Ryujinx.HLE.Utilities;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
-namespace Ryujinx.HLE.HOS.Services.Acc
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
public class AccountUtils
{
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs
new file mode 100644
index 00000000..9fb3fb9b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
+{
+ [Service("acc:su")]
+ class IAccountServiceForAdministrator : IpcService
+ {
+ public IAccountServiceForAdministrator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs
index 23f3eec7..84239539 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs
@@ -1,22 +1,18 @@
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.FileSystem;
-using Ryujinx.HLE.HOS.Services.Glue;
-using Ryujinx.HLE.HOS.SystemState;
+using Ryujinx.HLE.HOS.Services.Arp;
using Ryujinx.HLE.Utilities;
-using System;
using System.Collections.Generic;
-namespace Ryujinx.HLE.HOS.Services.Acc
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
[Service("acc:u0")]
- [Service("acc:u1")]
- class IAccountService : IpcService
+ class IAccountServiceForApplication : IpcService
{
private bool _userRegistrationRequestPermitted = false;
private ApplicationLaunchProperty _applicationLaunchProperty;
- public IAccountService(ServiceCtx context) { }
+ public IAccountServiceForApplication(ServiceCtx context) { }
[Command(0)]
// GetUserCount() -> i32
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs
new file mode 100644
index 00000000..f1972f63
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
+{
+ [Service("acc:u1")]
+ class IAccountServiceForSystemService : IpcService
+ {
+ public IAccountServiceForSystemService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IBaasAccessTokenAccessor.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IBaasAccessTokenAccessor.cs
new file mode 100644
index 00000000..d28ea275
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IBaasAccessTokenAccessor.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
+{
+ [Service("acc:aa")]
+ class IBaasAccessTokenAccessor : IpcService
+ {
+ public IBaasAccessTokenAccessor(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IManagerForApplication.cs
index 8fb901c5..aa9e07bd 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IManagerForApplication.cs
@@ -1,8 +1,8 @@
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.HOS.Services.Glue;
+using Ryujinx.HLE.HOS.Services.Arp;
using Ryujinx.HLE.Utilities;
-namespace Ryujinx.HLE.HOS.Services.Acc
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
class IManagerForApplication : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IProfile.cs
index 10210afe..0470832b 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IProfile.cs
@@ -1,12 +1,11 @@
using ARMeilleure.Memory;
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.HLE.Utilities;
using System.IO;
using System.Reflection;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Acc
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
class IProfile : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Acc/Account/AccountState.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs
index 7ed3c26e..2382a255 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/Account/AccountState.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.SystemState
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
public enum AccountState
{
diff --git a/Ryujinx.HLE/HOS/Services/Acc/Account/UserProfile.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfile.cs
index d201d6e7..25004c24 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/Account/UserProfile.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfile.cs
@@ -1,7 +1,7 @@
using Ryujinx.HLE.Utilities;
using System;
-namespace Ryujinx.HLE.HOS.SystemState
+namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
class UserProfile
{
diff --git a/Ryujinx.HLE/HOS/Services/Account/Dauth/IService.cs b/Ryujinx.HLE/HOS/Services/Account/Dauth/IService.cs
new file mode 100644
index 00000000..72301349
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Account/Dauth/IService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Account.Dauth
+{
+ [Service("dauth:0")] // 5.0.0+
+ class IService : IpcService
+ {
+ public IService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Acc/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Account/ResultCode.cs
index 3991875a..e56732ab 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Acc
+namespace Ryujinx.HLE.HOS.Services.Account
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/ISystemAppletProxy.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs
index 1aa42857..ecd5076f 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ISystemAppletProxy.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs
@@ -1,4 +1,6 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
+
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
{
class ISystemAppletProxy : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs
index ec4e23ec..9d8e2a96 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs
@@ -2,9 +2,10 @@
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage;
using System;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.LibraryAppletCreator
{
class ILibraryAppletAccessor : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IApplicationCreator.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IApplicationCreator.cs
index e4c6615f..79e5b050 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IApplicationCreator.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IApplicationCreator.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IApplicationCreator : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs
index f41ed6a0..e630c80d 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IAudioController : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs
index 44421b30..085d9fe6 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs
@@ -2,15 +2,16 @@ using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Services.Apm;
using System;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class ICommonStateGetter : IpcService
{
private KEvent _displayResolutionChangeEvent;
- private Apm.CpuBoostMode _cpuBoostMode = Apm.CpuBoostMode.Disabled;
+ private CpuBoostMode _cpuBoostMode = CpuBoostMode.Disabled;
public ICommonStateGetter(Horizon system)
{
@@ -64,9 +65,9 @@ namespace Ryujinx.HLE.HOS.Services.Am
// GetPerformanceMode() -> u32
public ResultCode GetPerformanceMode(ServiceCtx context)
{
- Apm.PerformanceMode mode = context.Device.System.State.DockedMode
- ? Apm.PerformanceMode.Docked
- : Apm.PerformanceMode.Handheld;
+ PerformanceMode mode = context.Device.System.State.DockedMode
+ ? PerformanceMode.Docked
+ : PerformanceMode.Handheld;
context.ResponseData.Write((int)mode);
@@ -130,7 +131,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
return ResultCode.CpuBoostModeInvalid;
}
- _cpuBoostMode = (Apm.CpuBoostMode)cpuBoostMode;
+ _cpuBoostMode = (CpuBoostMode)cpuBoostMode;
// NOTE: There is a condition variable after the assignment, probably waiting something with apm:sys service (SetCpuBoostMode call?).
// Since we will probably never support CPU boost things, it's not needed to implement more.
diff --git a/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDebugFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDebugFunctions.cs
new file mode 100644
index 00000000..51a112fd
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDebugFunctions.cs
@@ -0,0 +1,7 @@
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
+{
+ class IDebugFunctions : IpcService
+ {
+ public IDebugFunctions() { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/IDisplayController.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs
index de3313c6..2b04dbb5 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IDisplayController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IDisplayController : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IGlobalStateController.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IGlobalStateController.cs
index 9172e094..24eeefb9 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IGlobalStateController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IGlobalStateController.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IGlobalStateController : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs
index 01a68475..a5819132 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs
@@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using System;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IHomeMenuFunctions : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletCreator.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs
index 27ae947e..8b0b225b 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletCreator.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs
@@ -1,4 +1,6 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.LibraryAppletCreator;
+
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class ILibraryAppletCreator : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs
index b256e59f..62f1beec 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs
@@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using System;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class ISelfController : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs
index 68d0954d..449658cf 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
class IWindowController : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/FocusState.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/FocusState.cs
new file mode 100644
index 00000000..dfd7d7f2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/FocusState.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
+{
+ enum FocusState
+ {
+ InFocus = 1,
+ OutOfFocus = 2
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/MessageInfo.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/MessageInfo.cs
index 65fddbed..ff699315 100644
--- a/Ryujinx.HLE/HOS/Services/Am/MessageInfo.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/MessageInfo.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
enum MessageInfo
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/OperationMode.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/OperationMode.cs
new file mode 100644
index 00000000..a82ed476
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/Types/OperationMode.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
+{
+ enum OperationMode
+ {
+ Handheld = 0,
+ Docked = 1
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/IAllSystemAppletProxiesService.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs
index 0b667347..d29a8da4 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IAllSystemAppletProxiesService.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs
@@ -1,4 +1,6 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService;
+
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE
{
[Service("appletAE")]
class IAllSystemAppletProxiesService : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Am/IStorage.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs
index 3d351fc1..37514275 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IStorage.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE
{
class IStorage : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IStorageAccessor.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs
index 76f6caf5..90eb13ce 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IStorageAccessor.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs
@@ -1,6 +1,6 @@
using System;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE
{
class IStorageAccessor : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/StorageHelper.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/Storage/StorageHelper.cs
index a3dbbeb7..9c96221e 100644
--- a/Ryujinx.HLE/HOS/Services/Am/StorageHelper.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/Storage/StorageHelper.cs
@@ -1,6 +1,6 @@
using System.IO;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage
{
class StorageHelper
{
@@ -16,9 +16,9 @@ namespace Ryujinx.HLE.HOS.Services.Am
ms.SetLength(0x88);
writer.Write(LaunchParamsMagic);
- writer.Write(1); //IsAccountSelected? Only lower 8 bits actually used.
- writer.Write(1L); //User Id Low (note: User Id needs to be != 0)
- writer.Write(0L); //User Id High
+ writer.Write(1); // IsAccountSelected? Only lower 8 bits actually used.
+ writer.Write(1L); // User Id Low (note: User Id needs to be != 0)
+ writer.Write(0L); // User Id High
return ms.ToArray();
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs
index 03e97dfe..798316be 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs
@@ -1,6 +1,8 @@
using Ryujinx.Common.Logging;
+using Ryujinx.HLE.HOS.Services.Am.AppletAE;
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage;
-namespace Ryujinx.HLE.HOS.Services.Am
+namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy
{
class IApplicationFunctions : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IApplicationProxy.cs b/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs
index 0e8e3423..29ee2141 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IApplicationProxy.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs
@@ -1,4 +1,7 @@
-namespace Ryujinx.HLE.HOS.Services.Am
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
+using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy;
+
+namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService
{
class IApplicationProxy : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Am/IApplicationProxyService.cs b/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs
index e0e1e107..fc74aa1f 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IApplicationProxyService.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs
@@ -1,3 +1,6 @@
+using Ryujinx.HLE.HOS.Services.Am.AppletAE;
+using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService;
+
namespace Ryujinx.HLE.HOS.Services.Am
{
[Service("appletOE")]
diff --git a/Ryujinx.HLE/HOS/Services/Am/FocusState.cs b/Ryujinx.HLE/HOS/Services/Am/FocusState.cs
deleted file mode 100644
index e8ae7223..00000000
--- a/Ryujinx.HLE/HOS/Services/Am/FocusState.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Am
-{
- enum FocusState
- {
- InFocus = 1,
- OutOfFocus = 2
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/IDebugFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/IDebugFunctions.cs
deleted file mode 100644
index ebde33f4..00000000
--- a/Ryujinx.HLE/HOS/Services/Am/IDebugFunctions.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Am
-{
- class IDebugFunctions : IpcService
- {
- public IDebugFunctions() { }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/Idle/IPolicyManagerSystem.cs b/Ryujinx.HLE/HOS/Services/Am/Idle/IPolicyManagerSystem.cs
new file mode 100644
index 00000000..8c72319c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/Idle/IPolicyManagerSystem.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Idle
+{
+ [Service("idle:sys")]
+ class IPolicyManagerSystem : IpcService
+ {
+ public IPolicyManagerSystem(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/Omm/IOperationModeManager.cs b/Ryujinx.HLE/HOS/Services/Am/Omm/IOperationModeManager.cs
new file mode 100644
index 00000000..2856e6d7
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/Omm/IOperationModeManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Omm
+{
+ [Service("omm")]
+ class IOperationModeManager : IpcService
+ {
+ public IOperationModeManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/OperationMode.cs b/Ryujinx.HLE/HOS/Services/Am/OperationMode.cs
deleted file mode 100644
index cb11fff9..00000000
--- a/Ryujinx.HLE/HOS/Services/Am/OperationMode.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Am
-{
- enum OperationMode
- {
- Handheld = 0,
- Docked = 1
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/Spsm/IPowerStateInterface.cs b/Ryujinx.HLE/HOS/Services/Am/Spsm/IPowerStateInterface.cs
new file mode 100644
index 00000000..a393f76b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/Spsm/IPowerStateInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Spsm
+{
+ [Service("spsm")]
+ class IPowerStateInterface : IpcService
+ {
+ public IPowerStateInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Am/Tcap/IManager.cs b/Ryujinx.HLE/HOS/Services/Am/Tcap/IManager.cs
new file mode 100644
index 00000000..b31ccf8a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Am/Tcap/IManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Tcap
+{
+ [Service("tcap")]
+ class IManager : IpcService
+ {
+ public IManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/NvFlinger.cs b/Ryujinx.HLE/HOS/Services/Android/NvFlinger.cs
index 5db028cc..5580c3be 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/NvFlinger.cs
+++ b/Ryujinx.HLE/HOS/Services/Android/NvFlinger.cs
@@ -2,8 +2,8 @@ using Ryujinx.Common.Logging;
using Ryujinx.Graphics.Gal;
using Ryujinx.Graphics.Memory;
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Nv.NvGpuAS;
-using Ryujinx.HLE.HOS.Services.Nv.NvMap;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap;
using System;
using System.Collections.Generic;
using System.IO;
@@ -28,101 +28,6 @@ namespace Ryujinx.HLE.HOS.Services.Android
private const int BufferQueueCount = 0x40;
private const int BufferQueueMask = BufferQueueCount - 1;
- [Flags]
- private enum HalTransform
- {
- FlipX = 1,
- FlipY = 2,
- Rotate90 = 4,
- Rotate180 = FlipX | FlipY,
- Rotate270 = Rotate90 | Rotate180,
- }
-
- private enum BufferState
- {
- Free,
- Dequeued,
- Queued,
- Acquired
- }
-
- [StructLayout(LayoutKind.Sequential, Size = 0x8)]
- private struct Fence
- {
- public int id;
- public int value;
- }
-
- [StructLayout(LayoutKind.Explicit, Size = 0x24)]
- private struct MultiFence
- {
- [FieldOffset(0x0)]
- public int FenceCount;
-
- [FieldOffset(0x4)]
- public Fence Fence0;
-
- [FieldOffset(0xC)]
- public Fence Fence1;
-
- [FieldOffset(0x14)]
- public Fence Fence2;
-
- [FieldOffset(0x1C)]
- public Fence Fence3;
- }
-
- [StructLayout(LayoutKind.Sequential, Size = 0x10)]
- private struct Rect
- {
- public int Top;
- public int Left;
- public int Right;
- public int Bottom;
- }
-
- [StructLayout(LayoutKind.Explicit)]
- private struct QueueBufferObject
- {
- [FieldOffset(0x0)]
- public long Timestamp;
-
- [FieldOffset(0x8)]
- public int IsAutoTimestamp;
-
- [FieldOffset(0xC)]
- public Rect Crop;
-
- [FieldOffset(0x1C)]
- public int ScalingMode;
-
- [FieldOffset(0x20)]
- public HalTransform Transform;
-
- [FieldOffset(0x24)]
- public int StickyTransform;
-
- [FieldOffset(0x28)]
- public int Unknown;
-
- [FieldOffset(0x2C)]
- public int SwapInterval;
-
- [FieldOffset(0x30)]
- public MultiFence Fence;
- }
-
- private struct BufferEntry
- {
- public BufferState State;
-
- public HalTransform Transform;
-
- public Rect Crop;
-
- public GbpBuffer Data;
- }
-
private BufferEntry[] _bufferQueue;
private AutoResetEvent _waitBufferFree;
diff --git a/Ryujinx.HLE/HOS/Services/Vi/Parcel.cs b/Ryujinx.HLE/HOS/Services/Android/Parcel.cs
index 63c5a82f..63c5a82f 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/Parcel.cs
+++ b/Ryujinx.HLE/HOS/Services/Android/Parcel.cs
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/BufferEntry.cs b/Ryujinx.HLE/HOS/Services/Android/Types/BufferEntry.cs
new file mode 100644
index 00000000..91744859
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/BufferEntry.cs
@@ -0,0 +1,13 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ struct BufferEntry
+ {
+ public BufferState State;
+
+ public HalTransform Transform;
+
+ public Rect Crop;
+
+ public GbpBuffer Data;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/BufferState.cs b/Ryujinx.HLE/HOS/Services/Android/Types/BufferState.cs
new file mode 100644
index 00000000..e79d5d8f
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/BufferState.cs
@@ -0,0 +1,10 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum BufferState
+ {
+ Free,
+ Dequeued,
+ Queued,
+ Acquired
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorBytePerPixel.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorBytePerPixel.cs
new file mode 100644
index 00000000..a937f15f
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorBytePerPixel.cs
@@ -0,0 +1,17 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum ColorBytePerPixel
+ {
+ Bpp1 = 1,
+ Bpp2 = 2,
+ Bpp4 = 4,
+ Bpp8 = 8,
+ Bpp16 = 16,
+ Bpp24 = 24,
+ Bpp32 = 32,
+ Bpp48 = 48,
+ Bpp64 = 64,
+ Bpp96 = 96,
+ Bpp128 = 128
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorComponent.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorComponent.cs
new file mode 100644
index 00000000..7ea20df7
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorComponent.cs
@@ -0,0 +1,42 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum ColorComponent : uint
+ {
+ X1 = (0x01 << ColorShift.Component) | ColorBytePerPixel.Bpp1,
+ X2 = (0x02 << ColorShift.Component) | ColorBytePerPixel.Bpp2,
+ X4 = (0x03 << ColorShift.Component) | ColorBytePerPixel.Bpp4,
+ X8 = (0x04 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
+ Y4X4 = (0x05 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
+ X3Y3Z2 = (0x06 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
+ X8Y8 = (0x07 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X8Y8X8Z8 = (0x08 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Y8X8Z8X8 = (0x09 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X16 = (0x0A << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Y2X14 = (0x0B << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Y4X12 = (0x0C << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Y6X10 = (0x0D << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Y8X8 = (0x0E << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X10 = (0x0F << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X12 = (0x10 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ Z5Y5X6 = (0x11 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X5Y6Z5 = (0x12 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X6Y5Z5 = (0x13 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X1Y5Z5W5 = (0x14 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X4Y4Z4W4 = (0x15 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X5Y1Z5W5 = (0x16 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X5Y5Z1W5 = (0x17 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X5Y5Z5W1 = (0x18 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
+ X8Y8Z8 = (0x19 << ColorShift.Component) | ColorBytePerPixel.Bpp24,
+ X24 = (0x1A << ColorShift.Component) | ColorBytePerPixel.Bpp24,
+ X32 = (0x1C << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X16Y16 = (0x1D << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X11Y11Z10 = (0x1E << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X2Y10Z10W10 = (0x20 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X8Y8Z8W8 = (0x21 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ Y10X10 = (0x22 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X10Y10Z10W2 = (0x23 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ Y12X12 = (0x24 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
+ X20Y20Z20 = (0x26 << ColorShift.Component) | ColorBytePerPixel.Bpp64,
+ X16Y16Z16W16 = (0x27 << ColorShift.Component) | ColorBytePerPixel.Bpp64,
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorDataType.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorDataType.cs
new file mode 100644
index 00000000..c380cb1b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorDataType.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum ColorDataType
+ {
+ Integer = 0x0 << ColorShift.DataType,
+ Float = 0x1 << ColorShift.DataType,
+ Stencil = 0x2 << ColorShift.DataType
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ColorFormat.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorFormat.cs
index 2522dffc..1aed4d58 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/ColorFormat.cs
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorFormat.cs
@@ -1,136 +1,5 @@
-// ReSharper disable InconsistentNaming
-namespace Ryujinx.HLE.HOS.Services.Android
+namespace Ryujinx.HLE.HOS.Services.Android
{
- class ColorShift
- {
- public const int Swizzle = 16;
- public const int DataType = 14;
- public const int Space = 32;
- public const int Component = 8;
- }
-
- enum ColorSwizzle
- {
- XYZW = 0x688 << ColorShift.Swizzle,
- ZYXW = 0x60a << ColorShift.Swizzle,
- WZYX = 0x053 << ColorShift.Swizzle,
- YZWX = 0x0d1 << ColorShift.Swizzle,
- XYZ1 = 0xa88 << ColorShift.Swizzle,
- YZW1 = 0xad1 << ColorShift.Swizzle,
- XXX1 = 0xa00 << ColorShift.Swizzle,
- XZY1 = 0xa50 << ColorShift.Swizzle,
- ZYX1 = 0xa0a << ColorShift.Swizzle,
- WZY1 = 0xa53 << ColorShift.Swizzle,
- X000 = 0x920 << ColorShift.Swizzle,
- Y000 = 0x921 << ColorShift.Swizzle,
- XY01 = 0xb08 << ColorShift.Swizzle,
- X001 = 0xb20 << ColorShift.Swizzle,
- X00X = 0x121 << ColorShift.Swizzle,
- X00Y = 0x320 << ColorShift.Swizzle,
- _0YX0 = 0x80c << ColorShift.Swizzle,
- _0ZY0 = 0x814 << ColorShift.Swizzle,
- _0XZ0 = 0x884 << ColorShift.Swizzle,
- _0X00 = 0x904 << ColorShift.Swizzle,
- _00X0 = 0x824 << ColorShift.Swizzle,
- _000X = 0x124 << ColorShift.Swizzle,
- _0XY0 = 0x844 << ColorShift.Swizzle,
- XXXY = 0x200 << ColorShift.Swizzle,
- YYYX = 0x049 << ColorShift.Swizzle
- }
-
- enum ColorBytePerPixel
- {
- Bpp1 = 1,
- Bpp2 = 2,
- Bpp4 = 4,
- Bpp8 = 8,
- Bpp16 = 16,
- Bpp24 = 24,
- Bpp32 = 32,
- Bpp48 = 48,
- Bpp64 = 64,
- Bpp96 = 96,
- Bpp128 = 128
- }
-
- enum ColorComponent : uint
- {
- X1 = (0x01 << ColorShift.Component) | ColorBytePerPixel.Bpp1,
- X2 = (0x02 << ColorShift.Component) | ColorBytePerPixel.Bpp2,
- X4 = (0x03 << ColorShift.Component) | ColorBytePerPixel.Bpp4,
- X8 = (0x04 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
- Y4X4 = (0x05 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
- X3Y3Z2 = (0x06 << ColorShift.Component) | ColorBytePerPixel.Bpp8,
- X8Y8 = (0x07 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X8Y8X8Z8 = (0x08 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Y8X8Z8X8 = (0x09 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X16 = (0x0A << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Y2X14 = (0x0B << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Y4X12 = (0x0C << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Y6X10 = (0x0D << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Y8X8 = (0x0E << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X10 = (0x0F << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X12 = (0x10 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- Z5Y5X6 = (0x11 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X5Y6Z5 = (0x12 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X6Y5Z5 = (0x13 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X1Y5Z5W5 = (0x14 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X4Y4Z4W4 = (0x15 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X5Y1Z5W5 = (0x16 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X5Y5Z1W5 = (0x17 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X5Y5Z5W1 = (0x18 << ColorShift.Component) | ColorBytePerPixel.Bpp16,
- X8Y8Z8 = (0x19 << ColorShift.Component) | ColorBytePerPixel.Bpp24,
- X24 = (0x1A << ColorShift.Component) | ColorBytePerPixel.Bpp24,
- X32 = (0x1C << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X16Y16 = (0x1D << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X11Y11Z10 = (0x1E << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X2Y10Z10W10 = (0x20 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X8Y8Z8W8 = (0x21 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- Y10X10 = (0x22 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X10Y10Z10W2 = (0x23 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- Y12X12 = (0x24 << ColorShift.Component) | ColorBytePerPixel.Bpp32,
- X20Y20Z20 = (0x26 << ColorShift.Component) | ColorBytePerPixel.Bpp64,
- X16Y16Z16W16 = (0x27 << ColorShift.Component) | ColorBytePerPixel.Bpp64,
- }
-
- enum ColorDataType
- {
- Integer = 0x0 << ColorShift.DataType,
- Float = 0x1 << ColorShift.DataType,
- Stencil = 0x2 << ColorShift.DataType
- }
-
- enum ColorSpace : ulong
- {
- NonColor = 0x0L << ColorShift.Space,
- LinearRGBA = 0x1L << ColorShift.Space,
- SRGB = 0x2L << ColorShift.Space,
-
- RGB709 = 0x3L << ColorShift.Space,
- LinearRGB709 = 0x4L << ColorShift.Space,
-
- LinearScRGB = 0x5L << ColorShift.Space,
-
- RGB2020 = 0x6L << ColorShift.Space,
- LinearRGB2020 = 0x7L << ColorShift.Space,
- RGB2020_PQ = 0x8L << ColorShift.Space,
-
- ColorIndex = 0x9L << ColorShift.Space,
-
- YCbCr601 = 0xAL << ColorShift.Space,
- YCbCr601_RR = 0xBL << ColorShift.Space,
- YCbCr601_ER = 0xCL << ColorShift.Space,
- YCbCr709 = 0xDL << ColorShift.Space,
- YCbCr709_ER = 0xEL << ColorShift.Space,
-
- BayerRGGB = 0x10L << ColorShift.Space,
- BayerBGGR = 0x11L << ColorShift.Space,
- BayerGRBG = 0x12L << ColorShift.Space,
- BayerGBRG = 0x13L << ColorShift.Space,
-
- XYZ = 0x14L << ColorShift.Space,
- }
-
enum ColorFormat : ulong
{
NonColor8 = ColorSpace.NonColor | ColorSwizzle.X000 | ColorComponent.X8 | ColorDataType.Integer,
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorShift.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorShift.cs
new file mode 100644
index 00000000..827e0445
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorShift.cs
@@ -0,0 +1,10 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ class ColorShift
+ {
+ public const int Swizzle = 16;
+ public const int DataType = 14;
+ public const int Space = 32;
+ public const int Component = 8;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSpace.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSpace.cs
new file mode 100644
index 00000000..6ee6f428
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSpace.cs
@@ -0,0 +1,33 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum ColorSpace : ulong
+ {
+ NonColor = 0x0L << ColorShift.Space,
+ LinearRGBA = 0x1L << ColorShift.Space,
+ SRGB = 0x2L << ColorShift.Space,
+
+ RGB709 = 0x3L << ColorShift.Space,
+ LinearRGB709 = 0x4L << ColorShift.Space,
+
+ LinearScRGB = 0x5L << ColorShift.Space,
+
+ RGB2020 = 0x6L << ColorShift.Space,
+ LinearRGB2020 = 0x7L << ColorShift.Space,
+ RGB2020_PQ = 0x8L << ColorShift.Space,
+
+ ColorIndex = 0x9L << ColorShift.Space,
+
+ YCbCr601 = 0xAL << ColorShift.Space,
+ YCbCr601_RR = 0xBL << ColorShift.Space,
+ YCbCr601_ER = 0xCL << ColorShift.Space,
+ YCbCr709 = 0xDL << ColorShift.Space,
+ YCbCr709_ER = 0xEL << ColorShift.Space,
+
+ BayerRGGB = 0x10L << ColorShift.Space,
+ BayerBGGR = 0x11L << ColorShift.Space,
+ BayerGRBG = 0x12L << ColorShift.Space,
+ BayerGBRG = 0x13L << ColorShift.Space,
+
+ XYZ = 0x14L << ColorShift.Space,
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSwizzle.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSwizzle.cs
new file mode 100644
index 00000000..f82d5a56
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Color/ColorSwizzle.cs
@@ -0,0 +1,31 @@
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ enum ColorSwizzle
+ {
+ XYZW = 0x688 << ColorShift.Swizzle,
+ ZYXW = 0x60a << ColorShift.Swizzle,
+ WZYX = 0x053 << ColorShift.Swizzle,
+ YZWX = 0x0d1 << ColorShift.Swizzle,
+ XYZ1 = 0xa88 << ColorShift.Swizzle,
+ YZW1 = 0xad1 << ColorShift.Swizzle,
+ XXX1 = 0xa00 << ColorShift.Swizzle,
+ XZY1 = 0xa50 << ColorShift.Swizzle,
+ ZYX1 = 0xa0a << ColorShift.Swizzle,
+ WZY1 = 0xa53 << ColorShift.Swizzle,
+ X000 = 0x920 << ColorShift.Swizzle,
+ Y000 = 0x921 << ColorShift.Swizzle,
+ XY01 = 0xb08 << ColorShift.Swizzle,
+ X001 = 0xb20 << ColorShift.Swizzle,
+ X00X = 0x121 << ColorShift.Swizzle,
+ X00Y = 0x320 << ColorShift.Swizzle,
+ _0YX0 = 0x80c << ColorShift.Swizzle,
+ _0ZY0 = 0x814 << ColorShift.Swizzle,
+ _0XZ0 = 0x884 << ColorShift.Swizzle,
+ _0X00 = 0x904 << ColorShift.Swizzle,
+ _00X0 = 0x824 << ColorShift.Swizzle,
+ _000X = 0x124 << ColorShift.Swizzle,
+ _0XY0 = 0x844 << ColorShift.Swizzle,
+ XXXY = 0x200 << ColorShift.Swizzle,
+ YYYX = 0x049 << ColorShift.Swizzle
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Fence.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Fence.cs
new file mode 100644
index 00000000..a09b7948
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Fence.cs
@@ -0,0 +1,11 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x8)]
+ struct Fence
+ {
+ public int Id;
+ public int Value;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/GbpBuffer.cs b/Ryujinx.HLE/HOS/Services/Android/Types/GbpBuffer.cs
new file mode 100644
index 00000000..766806f0
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/GbpBuffer.cs
@@ -0,0 +1,37 @@
+using Ryujinx.Common;
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ struct GbpBuffer
+ {
+ public GraphicBufferHeader Header { get; private set; }
+ public NvGraphicBuffer Buffer { get; private set; }
+
+ public int Size => Marshal.SizeOf<NvGraphicBuffer>() + Marshal.SizeOf<GraphicBufferHeader>();
+
+ public GbpBuffer(BinaryReader reader)
+ {
+ Header = reader.ReadStruct<GraphicBufferHeader>();
+
+ // ignore fds
+ // TODO: check if that is used in official implementation
+ reader.BaseStream.Position += Header.FdsCount * 4;
+
+ if (Header.IntsCount != 0x51)
+ {
+ throw new NotImplementedException($"Unexpected Graphic Buffer ints count (expected 0x51, found 0x{Header.IntsCount:x}");
+ }
+
+ Buffer = reader.ReadStruct<NvGraphicBuffer>();
+ }
+
+ public void Write(BinaryWriter writer)
+ {
+ writer.WriteStruct(Header);
+ writer.WriteStruct(Buffer);
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/GraphicBufferHeader.cs b/Ryujinx.HLE/HOS/Services/Android/Types/GraphicBufferHeader.cs
new file mode 100644
index 00000000..d82523db
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/GraphicBufferHeader.cs
@@ -0,0 +1,21 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x28)]
+ struct GraphicBufferHeader
+ {
+ public int Magic;
+ public int Width;
+ public int Height;
+ public int Stride;
+ public int Format;
+ public int Usage;
+
+ public int Pid;
+ public int RefCount;
+
+ public int FdsCount;
+ public int IntsCount;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/HalTransform.cs b/Ryujinx.HLE/HOS/Services/Android/Types/HalTransform.cs
new file mode 100644
index 00000000..fd271063
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/HalTransform.cs
@@ -0,0 +1,14 @@
+using System;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [Flags]
+ enum HalTransform
+ {
+ FlipX = 1,
+ FlipY = 2,
+ Rotate90 = 4,
+ Rotate180 = FlipX | FlipY,
+ Rotate270 = Rotate90 | Rotate180
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/MultiFence.cs b/Ryujinx.HLE/HOS/Services/Android/Types/MultiFence.cs
new file mode 100644
index 00000000..a50eea89
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/MultiFence.cs
@@ -0,0 +1,23 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Explicit, Size = 0x24)]
+ struct MultiFence
+ {
+ [FieldOffset(0x0)]
+ public int FenceCount;
+
+ [FieldOffset(0x4)]
+ public Fence Fence0;
+
+ [FieldOffset(0xC)]
+ public Fence Fence1;
+
+ [FieldOffset(0x14)]
+ public Fence Fence2;
+
+ [FieldOffset(0x1C)]
+ public Fence Fence3;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBuffer.cs b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBuffer.cs
new file mode 100644
index 00000000..90c44997
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBuffer.cs
@@ -0,0 +1,41 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Explicit, Size = 0x144)]
+ struct NvGraphicBuffer
+ {
+ [FieldOffset(0x4)]
+ public int NvMapId;
+
+ [FieldOffset(0xC)]
+ public int Magic;
+
+ [FieldOffset(0x10)]
+ public int Pid;
+
+ [FieldOffset(0x14)]
+ public int Type;
+
+ [FieldOffset(0x18)]
+ public int Usage;
+
+ [FieldOffset(0x1C)]
+ public int PixelFormat;
+
+ [FieldOffset(0x20)]
+ public int ExternalPixelFormat;
+
+ [FieldOffset(0x24)]
+ public int Stride;
+
+ [FieldOffset(0x28)]
+ public int FrameBufferSize;
+
+ [FieldOffset(0x2C)]
+ public int PlanesCount;
+
+ [FieldOffset(0x34)]
+ public NvGraphicBufferSurfaceArray Surfaces;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurface.cs b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurface.cs
new file mode 100644
index 00000000..d5dd682c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurface.cs
@@ -0,0 +1,44 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Explicit, Size = 0x58)]
+ struct NvGraphicBufferSurface
+ {
+ [FieldOffset(0)]
+ public uint Width;
+
+ [FieldOffset(0x4)]
+ public uint Height;
+
+ [FieldOffset(0x8)]
+ public ColorFormat ColorFormat;
+
+ [FieldOffset(0x10)]
+ public int Layout;
+
+ [FieldOffset(0x14)]
+ public int Pitch;
+
+ [FieldOffset(0x18)]
+ public int NvMapHandle;
+
+ [FieldOffset(0x1C)]
+ public int Offset;
+
+ [FieldOffset(0x20)]
+ public int Kind;
+
+ [FieldOffset(0x24)]
+ public int BlockHeightLog2;
+
+ [FieldOffset(0x28)]
+ public int ScanFormat;
+
+ [FieldOffset(0x30)]
+ public long Flags;
+
+ [FieldOffset(0x38)]
+ public long Size;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurfaceArray.cs b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurfaceArray.cs
new file mode 100644
index 00000000..be2855ff
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/NvGraphicBufferSurfaceArray.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Explicit)]
+ struct NvGraphicBufferSurfaceArray
+ {
+ [FieldOffset(0x0)]
+ private NvGraphicBufferSurface Surface0;
+
+ [FieldOffset(0x58)]
+ private NvGraphicBufferSurface Surface1;
+
+ [FieldOffset(0xb0)]
+ private NvGraphicBufferSurface Surface2;
+
+ public NvGraphicBufferSurface this[int index]
+ {
+ get
+ {
+ if (index == 0)
+ {
+ return Surface0;
+ }
+ else if (index == 1)
+ {
+ return Surface1;
+ }
+ else if (index == 2)
+ {
+ return Surface2;
+ }
+
+ throw new IndexOutOfRangeException();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/QueueBufferObject.cs b/Ryujinx.HLE/HOS/Services/Android/Types/QueueBufferObject.cs
new file mode 100644
index 00000000..4112da07
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/QueueBufferObject.cs
@@ -0,0 +1,35 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Explicit)]
+ struct QueueBufferObject
+ {
+ [FieldOffset(0x0)]
+ public long Timestamp;
+
+ [FieldOffset(0x8)]
+ public int IsAutoTimestamp;
+
+ [FieldOffset(0xC)]
+ public Rect Crop;
+
+ [FieldOffset(0x1C)]
+ public int ScalingMode;
+
+ [FieldOffset(0x20)]
+ public HalTransform Transform;
+
+ [FieldOffset(0x24)]
+ public int StickyTransform;
+
+ [FieldOffset(0x28)]
+ public int Unknown;
+
+ [FieldOffset(0x2C)]
+ public int SwapInterval;
+
+ [FieldOffset(0x30)]
+ public MultiFence Fence;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Android/Types/Rect.cs b/Ryujinx.HLE/HOS/Services/Android/Types/Rect.cs
new file mode 100644
index 00000000..abe81abd
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Android/Types/Rect.cs
@@ -0,0 +1,13 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Android
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x10)]
+ struct Rect
+ {
+ public int Top;
+ public int Left;
+ public int Right;
+ public int Bottom;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Apm/IManager.cs b/Ryujinx.HLE/HOS/Services/Apm/IManager.cs
index 1458ac58..19fbcd44 100644
--- a/Ryujinx.HLE/HOS/Services/Apm/IManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Apm/IManager.cs
@@ -1,7 +1,6 @@
namespace Ryujinx.HLE.HOS.Services.Apm
{
- [Service("apm")]
- [Service("apm:p")]
+ [Service("apm")] // 8.0.0+
class IManager : IpcService
{
public IManager(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Apm/CpuBoostMode.cs b/Ryujinx.HLE/HOS/Services/Apm/Types/CpuBoostMode.cs
index a4c87d3c..a4c87d3c 100644
--- a/Ryujinx.HLE/HOS/Services/Apm/CpuBoostMode.cs
+++ b/Ryujinx.HLE/HOS/Services/Apm/Types/CpuBoostMode.cs
diff --git a/Ryujinx.HLE/HOS/Services/Apm/PerformanceConfiguration.cs b/Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceConfiguration.cs
index e42edebc..e42edebc 100644
--- a/Ryujinx.HLE/HOS/Services/Apm/PerformanceConfiguration.cs
+++ b/Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceConfiguration.cs
diff --git a/Ryujinx.HLE/HOS/Services/Apm/PerformanceMode.cs b/Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceMode.cs
index a7a0dfad..a7a0dfad 100644
--- a/Ryujinx.HLE/HOS/Services/Apm/PerformanceMode.cs
+++ b/Ryujinx.HLE/HOS/Services/Apm/Types/PerformanceMode.cs
diff --git a/Ryujinx.HLE/HOS/Services/Glue/ApplicationLaunchProperty.cs b/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs
index b96f0d05..c1c6d26d 100644
--- a/Ryujinx.HLE/HOS/Services/Glue/ApplicationLaunchProperty.cs
+++ b/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs
@@ -2,7 +2,7 @@
using Ryujinx.HLE.Utilities;
using System;
-namespace Ryujinx.HLE.HOS.Services.Glue
+namespace Ryujinx.HLE.HOS.Services.Arp
{
class ApplicationLaunchProperty
{
diff --git a/Ryujinx.HLE/HOS/Services/Arp/IReader.cs b/Ryujinx.HLE/HOS/Services/Arp/IReader.cs
new file mode 100644
index 00000000..5d1e2fff
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Arp/IReader.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Service("arp:r")]
+ class IReader : IpcService
+ {
+ public IReader(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Arp/IWriter.cs b/Ryujinx.HLE/HOS/Services/Arp/IWriter.cs
new file mode 100644
index 00000000..8d13f0fb
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Arp/IWriter.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Arp
+{
+ [Service("arp:w")]
+ class IWriter : IpcService
+ {
+ public IWriter(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioOut/IAudioOut.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/IAudioOut.cs
index 751d3f70..5b6983d6 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioOut/IAudioOut.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/IAudioOut.cs
@@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using System;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioOut
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioOutManager
{
class IAudioOut : IpcService, IDisposable
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioOut/AudioOutData.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/Types/AudioOutData.cs
index e25ebe66..2598d0f8 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioOut/AudioOutData.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioOutManager/Types/AudioOutData.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioOut
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioOutManager
{
[StructLayout(LayoutKind.Sequential)]
struct AudioOutData
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs
index 48a2fb74..ab4aee76 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs
@@ -6,7 +6,7 @@ using Ryujinx.HLE.HOS.SystemState;
using System;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
class IAudioDevice : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs
index e8baf819..975992aa 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs
@@ -11,7 +11,7 @@ using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
class IAudioRenderer : IpcService, IDisposable
{
@@ -280,9 +280,10 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
return null;
}
- AdpcmDecoderContext context = new AdpcmDecoderContext();
-
- context.Coefficients = new short[size >> 1];
+ AdpcmDecoderContext context = new AdpcmDecoderContext
+ {
+ Coefficients = new short[size >> 1]
+ };
for (int offset = 0; offset < size; offset += 2)
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolContext.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/MemoryPoolContext.cs
index c1646065..3f48114c 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolContext.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/MemoryPoolContext.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
class MemoryPoolContext
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/Resampler.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Resampler.cs
index 9714f6d8..936e7f50 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/Resampler.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Resampler.cs
@@ -1,6 +1,6 @@
using System;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
static class Resampler
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/AudioConsts.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioConsts.cs
index 40788ff3..f3b6995c 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/AudioConsts.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioConsts.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
static class AudioConsts
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRendererParameter.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioRendererParameter.cs
index 812ef8cf..9772f786 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRendererParameter.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/AudioRendererParameter.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential)]
struct AudioRendererParameter
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BehaviorIn.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BehaviorIn.cs
index 69b6d522..953b4ce3 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BehaviorIn.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BehaviorIn.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 4)]
struct BehaviorIn
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BiquadFilter.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BiquadFilter.cs
index 4e0c7c4f..d0d8ed9b 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/BiquadFilter.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/BiquadFilter.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0xc, Pack = 1)]
struct BiquadFilter
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolIn.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolIn.cs
index b4e6594c..8dc53929 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolIn.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolIn.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x20, Pack = 4)]
struct MemoryPoolIn
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolOut.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolOut.cs
index 6ae583b8..7581e8a7 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolOut.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolOut.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 4)]
struct MemoryPoolOut
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolState.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolState.cs
index 7b672dc9..a82747b8 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/MemoryPoolState.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/MemoryPoolState.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
enum MemoryPoolState
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/PlayState.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/PlayState.cs
index 922a9dc2..d63df971 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/PlayState.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/PlayState.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
enum PlayState : byte
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/UpdateDataHeader.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/UpdateDataHeader.cs
index 04fe422c..b1f14984 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/UpdateDataHeader.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/UpdateDataHeader.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
struct UpdateDataHeader
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceChannelResourceIn.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceChannelResourceIn.cs
index 124d31be..4871713e 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceChannelResourceIn.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceChannelResourceIn.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x70, Pack = 1)]
struct VoiceChannelResourceIn
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceIn.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceIn.cs
index 143cf4d8..dbcd5558 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceIn.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceIn.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x170, Pack = 1)]
struct VoiceIn
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceOut.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceOut.cs
index 5332631d..3a295971 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceOut.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/VoiceOut.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 4)]
struct VoiceOut
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/WaveBuffer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/WaveBuffer.cs
index 89137ec0..1c0d5630 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/WaveBuffer.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/Types/WaveBuffer.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
[StructLayout(LayoutKind.Sequential, Size = 0x38, Pack = 1)]
struct WaveBuffer
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceContext.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/VoiceContext.cs
index aaff20a5..c9fb8502 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/VoiceContext.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/VoiceContext.cs
@@ -2,7 +2,7 @@ using ARMeilleure.Memory;
using Ryujinx.Audio.Adpcm;
using System;
-namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
class VoiceContext
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoder.cs b/Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/IHardwareOpusDecoder.cs
index 148a69a8..e23398df 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoder.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/IHardwareOpusDecoder.cs
@@ -1,6 +1,6 @@
using Concentus.Structs;
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio.HardwareOpusDecoderManager
{
class IHardwareOpusDecoder : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioController.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioController.cs
new file mode 100644
index 00000000..1bd2e31d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioController.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audctl")]
+ class IAudioController : IpcService
+ {
+ public IAudioController(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioInManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManager.cs
new file mode 100644
index 00000000..d8e1f468
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audin:u")]
+ class IAudioInManager : IpcService
+ {
+ public IAudioInManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForApplet.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForApplet.cs
new file mode 100644
index 00000000..37d9a8fe
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForApplet.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audin:a")]
+ class IAudioInManagerForApplet : IpcService
+ {
+ public IAudioInManagerForApplet(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForDebugger.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForDebugger.cs
new file mode 100644
index 00000000..1a497efb
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioInManagerForDebugger.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audin:d")]
+ class IAudioInManagerForDebugger : IpcService
+ {
+ public IAudioInManagerForDebugger(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IAudioOutManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs
index bea0f3f2..19ee8067 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IAudioOutManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs
@@ -2,10 +2,10 @@ using ARMeilleure.Memory;
using Ryujinx.Audio;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Aud.AudioOut;
+using Ryujinx.HLE.HOS.Services.Audio.AudioOutManager;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio
{
[Service("audout:u")]
class IAudioOutManager : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForApplet.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForApplet.cs
new file mode 100644
index 00000000..4b41b0cf
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForApplet.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audout:a")]
+ class IAudioOutManagerForApplet : IpcService
+ {
+ public IAudioOutManagerForApplet(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForDebugger.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForDebugger.cs
new file mode 100644
index 00000000..41cde972
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManagerForDebugger.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audout:d")]
+ class IAudioOutManagerForDebugger : IpcService
+ {
+ public IAudioOutManagerForDebugger(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs
index 29bf8320..de1c35b5 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs
@@ -1,9 +1,9 @@
using Ryujinx.Audio;
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.HOS.Services.Aud.AudioRenderer;
+using Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager;
using Ryujinx.HLE.Utilities;
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio
{
[Service("audren:u")]
class IAudioRendererManager : IpcService
@@ -123,21 +123,22 @@ namespace Ryujinx.HLE.HOS.Services.Aud
private AudioRendererParameter GetAudioRendererParameter(ServiceCtx context)
{
- AudioRendererParameter Params = new AudioRendererParameter();
-
- Params.SampleRate = context.RequestData.ReadInt32();
- Params.SampleCount = context.RequestData.ReadInt32();
- Params.Unknown8 = context.RequestData.ReadInt32();
- Params.MixCount = context.RequestData.ReadInt32();
- Params.VoiceCount = context.RequestData.ReadInt32();
- Params.SinkCount = context.RequestData.ReadInt32();
- Params.EffectCount = context.RequestData.ReadInt32();
- Params.PerformanceManagerCount = context.RequestData.ReadInt32();
- Params.VoiceDropEnable = context.RequestData.ReadInt32();
- Params.SplitterCount = context.RequestData.ReadInt32();
- Params.SplitterDestinationDataCount = context.RequestData.ReadInt32();
- Params.Unknown2C = context.RequestData.ReadInt32();
- Params.Revision = context.RequestData.ReadInt32();
+ AudioRendererParameter Params = new AudioRendererParameter
+ {
+ SampleRate = context.RequestData.ReadInt32(),
+ SampleCount = context.RequestData.ReadInt32(),
+ Unknown8 = context.RequestData.ReadInt32(),
+ MixCount = context.RequestData.ReadInt32(),
+ VoiceCount = context.RequestData.ReadInt32(),
+ SinkCount = context.RequestData.ReadInt32(),
+ EffectCount = context.RequestData.ReadInt32(),
+ PerformanceManagerCount = context.RequestData.ReadInt32(),
+ VoiceDropEnable = context.RequestData.ReadInt32(),
+ SplitterCount = context.RequestData.ReadInt32(),
+ SplitterDestinationDataCount = context.RequestData.ReadInt32(),
+ Unknown2C = context.RequestData.ReadInt32(),
+ Revision = context.RequestData.ReadInt32()
+ };
return Params;
}
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForApplet.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForApplet.cs
new file mode 100644
index 00000000..ca5768cc
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForApplet.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audren:a")]
+ class IAudioRendererManagerForApplet : IpcService
+ {
+ public IAudioRendererManagerForApplet(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForDebugger.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForDebugger.cs
new file mode 100644
index 00000000..a970ae45
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManagerForDebugger.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audren:d")]
+ class IAudioRendererManagerForDebugger : IpcService
+ {
+ public IAudioRendererManagerForDebugger(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioSnoopManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioSnoopManager.cs
new file mode 100644
index 00000000..59e3ad09
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioSnoopManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("auddev")] // 6.0.0+
+ class IAudioSnoopManager : IpcService
+ {
+ public IAudioSnoopManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManager.cs
new file mode 100644
index 00000000..01435008
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audrec:u")]
+ class IFinalOutputRecorderManager : IpcService
+ {
+ public IFinalOutputRecorderManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForApplet.cs b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForApplet.cs
new file mode 100644
index 00000000..d8fd270d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForApplet.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audrec:a")]
+ class IFinalOutputRecorderManagerForApplet : IpcService
+ {
+ public IFinalOutputRecorderManagerForApplet(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForDebugger.cs b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForDebugger.cs
new file mode 100644
index 00000000..a8ec51ee
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/IFinalOutputRecorderManagerForDebugger.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Audio
+{
+ [Service("audrec:d")]
+ class IFinalOutputRecorderManagerForDebugger : IpcService
+ {
+ public IFinalOutputRecorderManagerForDebugger(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoderManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IHardwareOpusDecoderManager.cs
index 042be626..ed40cdad 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IHardwareOpusDecoderManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/IHardwareOpusDecoderManager.cs
@@ -1,4 +1,6 @@
-namespace Ryujinx.HLE.HOS.Services.Aud
+using Ryujinx.HLE.HOS.Services.Audio.HardwareOpusDecoderManager;
+
+namespace Ryujinx.HLE.HOS.Services.Audio
{
[Service("hwopus")]
class IHardwareOpusDecoderManager : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Aud/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Audio/ResultCode.cs
index d49964d6..5bba3582 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/Aud/SampleFormat.cs b/Ryujinx.HLE/HOS/Services/Audio/Types/SampleFormat.cs
index 8da80381..654436e4 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/SampleFormat.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/Types/SampleFormat.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Aud
+namespace Ryujinx.HLE.HOS.Services.Audio
{
enum SampleFormat : byte
{
diff --git a/Ryujinx.HLE/HOS/Services/Bcat/IServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Bcat/IServiceCreator.cs
index 4e9d3656..ec34f540 100644
--- a/Ryujinx.HLE/HOS/Services/Bcat/IServiceCreator.cs
+++ b/Ryujinx.HLE/HOS/Services/Bcat/IServiceCreator.cs
@@ -1,4 +1,5 @@
-using Ryujinx.HLE.HOS.Services.Glue;
+using Ryujinx.HLE.HOS.Services.Bcat.ServiceCreator;
+using Ryujinx.HLE.HOS.Services.Arp;
namespace Ryujinx.HLE.HOS.Services.Bcat
{
diff --git a/Ryujinx.HLE/HOS/Services/Bcat/IBcatService.cs b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IBcatService.cs
index 030f9110..1b32756a 100644
--- a/Ryujinx.HLE/HOS/Services/Bcat/IBcatService.cs
+++ b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IBcatService.cs
@@ -1,6 +1,6 @@
-using Ryujinx.HLE.HOS.Services.Glue;
+using Ryujinx.HLE.HOS.Services.Arp;
-namespace Ryujinx.HLE.HOS.Services.Bcat
+namespace Ryujinx.HLE.HOS.Services.Bcat.ServiceCreator
{
class IBcatService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Bcat/IDeliveryCacheStorageService.cs b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheStorageService.cs
index 1c9aed11..cad44370 100644
--- a/Ryujinx.HLE/HOS/Services/Bcat/IDeliveryCacheStorageService.cs
+++ b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheStorageService.cs
@@ -1,8 +1,8 @@
-using Ryujinx.HLE.HOS.Services.Glue;
+using Ryujinx.HLE.HOS.Services.Arp;
using System;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Bcat
+namespace Ryujinx.HLE.HOS.Services.Bcat.ServiceCreator
{
class IDeliveryCacheStorageService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Bgtc/IStateControlService.cs b/Ryujinx.HLE/HOS/Services/Bgtc/IStateControlService.cs
new file mode 100644
index 00000000..4926d4d8
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Bgtc/IStateControlService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Bgct
+{
+ [Service("bgtc:sc")]
+ class IStateControlService : IpcService
+ {
+ public IStateControlService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Bgtc/ITaskService.cs b/Ryujinx.HLE/HOS/Services/Bgtc/ITaskService.cs
new file mode 100644
index 00000000..a032c380
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Bgtc/ITaskService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Bgct
+{
+ [Service("bgtc:t")]
+ class ITaskService : IpcService
+ {
+ public ITaskService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothEventManager.cs b/Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothDriver/BluetoothEventManager.cs
index 9b7ca4c1..81f4a7d2 100644
--- a/Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothEventManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Bluetooth/BluetoothDriver/BluetoothEventManager.cs
@@ -1,6 +1,6 @@
using Ryujinx.HLE.HOS.Kernel.Threading;
-namespace Ryujinx.HLE.HOS.Services.Bluetooth
+namespace Ryujinx.HLE.HOS.Services.Bluetooth.BluetoothDriver
{
static class BluetoothEventManager
{
diff --git a/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs b/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs
index 4cee67cd..fc20ec30 100644
--- a/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs
+++ b/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs
@@ -1,6 +1,7 @@
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Set;
+using Ryujinx.HLE.HOS.Services.Bluetooth.BluetoothDriver;
+using Ryujinx.HLE.HOS.Services.Settings;
using System;
namespace Ryujinx.HLE.HOS.Services.Bluetooth
diff --git a/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs b/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs
index d070e18f..c5693c57 100644
--- a/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs
+++ b/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs
@@ -1,5 +1,6 @@
using Ryujinx.HLE.HOS.Ipc;
-using Ryujinx.HLE.HOS.Services.Set;
+using Ryujinx.HLE.HOS.Services.Bluetooth.BluetoothDriver;
+using Ryujinx.HLE.HOS.Services.Settings;
namespace Ryujinx.HLE.HOS.Services.Bluetooth
{
diff --git a/Ryujinx.HLE/HOS/Services/Btm/IBtmUserCore.cs b/Ryujinx.HLE/HOS/Services/Btm/BtmUser/IBtmUserCore.cs
index 14b7b5f3..0ab9a3ef 100644
--- a/Ryujinx.HLE/HOS/Services/Btm/IBtmUserCore.cs
+++ b/Ryujinx.HLE/HOS/Services/Btm/BtmUser/IBtmUserCore.cs
@@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
-namespace Ryujinx.HLE.HOS.Services.Btm
+namespace Ryujinx.HLE.HOS.Services.Btm.BtmUser
{
class IBtmUserCore : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Btm/IBtmDebug.cs b/Ryujinx.HLE/HOS/Services/Btm/IBtmDebug.cs
new file mode 100644
index 00000000..a55b7da8
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Btm/IBtmDebug.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Btm
+{
+ [Service("btm:dbg")]
+ class IBtmDebug : IpcService
+ {
+ public IBtmDebug(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Btm/IBtmSystem.cs b/Ryujinx.HLE/HOS/Services/Btm/IBtmSystem.cs
new file mode 100644
index 00000000..9120762c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Btm/IBtmSystem.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Btm
+{
+ [Service("btm:sys")]
+ class IBtmSystem : IpcService
+ {
+ public IBtmSystem(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Btm/IBtmUser.cs b/Ryujinx.HLE/HOS/Services/Btm/IBtmUser.cs
index 133ef0cc..68694187 100644
--- a/Ryujinx.HLE/HOS/Services/Btm/IBtmUser.cs
+++ b/Ryujinx.HLE/HOS/Services/Btm/IBtmUser.cs
@@ -1,6 +1,8 @@
-namespace Ryujinx.HLE.HOS.Services.Btm
+using Ryujinx.HLE.HOS.Services.Btm.BtmUser;
+
+namespace Ryujinx.HLE.HOS.Services.Btm
{
- [Service("btm:u")]
+ [Service("btm:u")] // 5.0.0+
class IBtmUser : IpcService
{
public IBtmUser(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs b/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs
new file mode 100644
index 00000000..199d6aa3
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Caps
+{
+ [Service("caps:u")]
+ class IAlbumApplicationService : IpcService
+ {
+ public IAlbumApplicationService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs b/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs
new file mode 100644
index 00000000..de880153
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Caps
+{
+ [Service("caps:c")]
+ class IAlbumControlService : IpcService
+ {
+ public IAlbumControlService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs b/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs
new file mode 100644
index 00000000..209bfd3d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Caps
+{
+ [Service("caps:su")] // 6.0.0+
+ class IScreenShotApplicationService : IpcService
+ {
+ public IScreenShotApplicationService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Caps/IScreenShotControlService.cs b/Ryujinx.HLE/HOS/Services/Caps/IScreenShotControlService.cs
new file mode 100644
index 00000000..337fa9ee
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Caps/IScreenShotControlService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Caps
+{
+ [Service("caps:sc")]
+ class IScreenShotControlService : IpcService
+ {
+ public IScreenShotControlService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Caps/IScreenshotService.cs b/Ryujinx.HLE/HOS/Services/Caps/IScreenshotService.cs
index 6c34f2a0..03703e05 100644
--- a/Ryujinx.HLE/HOS/Services/Caps/IScreenshotService.cs
+++ b/Ryujinx.HLE/HOS/Services/Caps/IScreenshotService.cs
@@ -1,6 +1,6 @@
namespace Ryujinx.HLE.HOS.Services.Caps
{
- [Service("caps:ss")]
+ [Service("caps:ss")] // 2.0.0+
class IScreenshotService : IpcService
{
public IScreenshotService(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Cec/ICecManager.cs b/Ryujinx.HLE/HOS/Services/Cec/ICecManager.cs
new file mode 100644
index 00000000..71c26786
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Cec/ICecManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Cec
+{
+ [Service("cec-mgr")]
+ class ICecManager : IpcService
+ {
+ public ICecManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Erpt/IContext.cs b/Ryujinx.HLE/HOS/Services/Erpt/IContext.cs
new file mode 100644
index 00000000..9a689172
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Erpt/IContext.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Erpt
+{
+ [Service("erpt:c")]
+ class IContext : IpcService
+ {
+ public IContext(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Erpt/ISession.cs b/Ryujinx.HLE/HOS/Services/Erpt/ISession.cs
new file mode 100644
index 00000000..6397afae
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Erpt/ISession.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Erpt
+{
+ [Service("erpt:r")]
+ class ISession : IpcService
+ {
+ public ISession(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Es/IETicketService.cs b/Ryujinx.HLE/HOS/Services/Es/IETicketService.cs
index f8ecb85c..34be7bdd 100644
--- a/Ryujinx.HLE/HOS/Services/Es/IETicketService.cs
+++ b/Ryujinx.HLE/HOS/Services/Es/IETicketService.cs
@@ -1,8 +1,8 @@
namespace Ryujinx.HLE.HOS.Services.Es
{
[Service("es")]
- class IeTicketService : IpcService
+ class IETicketService : IpcService
{
- public IeTicketService(ServiceCtx context) { }
+ public IETicketService(ServiceCtx context) { }
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Eupld/IControl.cs b/Ryujinx.HLE/HOS/Services/Eupld/IControl.cs
new file mode 100644
index 00000000..dd8705e6
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Eupld/IControl.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Eupld
+{
+ [Service("eupld:c")]
+ class IControl : IpcService
+ {
+ public IControl(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Eupld/IRequest.cs b/Ryujinx.HLE/HOS/Services/Eupld/IRequest.cs
new file mode 100644
index 00000000..85097878
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Eupld/IRequest.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Eupld
+{
+ [Service("eupld:r")]
+ class IRequest : IpcService
+ {
+ public IRequest(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Fatal/IPrivateService.cs b/Ryujinx.HLE/HOS/Services/Fatal/IPrivateService.cs
new file mode 100644
index 00000000..eb2c9553
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Fatal/IPrivateService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Fatal
+{
+ [Service("fatal:p")]
+ class IPrivateService : IpcService
+ {
+ public IPrivateService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Fatal/IService.cs b/Ryujinx.HLE/HOS/Services/Fatal/IService.cs
new file mode 100644
index 00000000..692d2b0b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Fatal/IService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Fatal
+{
+ [Service("fatal:u")]
+ class IService : IpcService
+ {
+ public IService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IFriendServiceTypes.cs b/Ryujinx.HLE/HOS/Services/Friend/IFriendServiceTypes.cs
deleted file mode 100644
index 5a5238f5..00000000
--- a/Ryujinx.HLE/HOS/Services/Friend/IFriendServiceTypes.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using Ryujinx.HLE.Utilities;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.HLE.HOS.Services.Friend
-{
- enum PresenceStatusFilter : uint
- {
- None,
- Online,
- OnlinePlay,
- OnlineOrOnlinePlay
- }
-
- enum PresenceStatus : uint
- {
- Offline,
- Online,
- OnlinePlay,
- }
-
- [StructLayout(LayoutKind.Sequential)]
- struct FriendFilter
- {
- public PresenceStatusFilter PresenceStatus;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsFavoriteOnly;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsSameAppPresenceOnly;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsSameAppPlayedOnly;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsArbitraryAppPlayedOnly;
-
- public long PresenceGroupId;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x8, CharSet = CharSet.Ansi)]
- struct UserPresence
- {
- public UInt128 UserId;
- public long LastTimeOnlineTimestamp;
- public PresenceStatus Status;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool SamePresenceGroupApplication;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x3)]
- char[] Unknown;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0xC0)]
- public char[] AppKeyValueStorage;
-
- public override string ToString()
- {
- return $"UserPresence {{ UserId: {UserId}, LastTimeOnlineTimestamp: {LastTimeOnlineTimestamp}, Status: {Status}, AppKeyValueStorage: {AppKeyValueStorage} }}";
- }
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x8, Size = 0x200, CharSet = CharSet.Ansi)]
- struct Friend
- {
- public UInt128 UserId;
- public long NetworkUserId;
-
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x21)]
- public string Nickname;
-
- public UserPresence presence;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsFavourite;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsNew;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x6)]
- char[] Unknown;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsValid;
- }
-
- enum NotificationEventType : uint
- {
- Invalid = 0x0,
- FriendListUpdate = 0x1,
- NewFriendRequest = 0x65,
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x8, Size = 0x10)]
- struct NotificationInfo
- {
- public NotificationEventType Type;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x4)]
- char[] Padding;
-
- public long NetworkUserIdPlaceholder;
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Friend/IServiceCreator.cs
index c907a2ed..cec3c422 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/IServiceCreator.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/IServiceCreator.cs
@@ -1,4 +1,5 @@
using Ryujinx.Common;
+using Ryujinx.HLE.HOS.Services.Friend.ServiceCreator;
using Ryujinx.HLE.Utilities;
namespace Ryujinx.HLE.HOS.Services.Friend
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/Friend.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/Friend.cs
new file mode 100644
index 00000000..4947a5ce
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/Friend.cs
@@ -0,0 +1,29 @@
+using Ryujinx.HLE.Utilities;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x8, Size = 0x200, CharSet = CharSet.Ansi)]
+ struct Friend
+ {
+ public UInt128 UserId;
+ public long NetworkUserId;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x21)]
+ public string Nickname;
+
+ public UserPresence presence;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsFavourite;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsNew;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x6)]
+ char[] Unknown;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsValid;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/FriendFilter.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/FriendFilter.cs
new file mode 100644
index 00000000..261bf7bf
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/FriendFilter.cs
@@ -0,0 +1,24 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
+{
+ [StructLayout(LayoutKind.Sequential)]
+ struct FriendFilter
+ {
+ public PresenceStatusFilter PresenceStatus;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsFavoriteOnly;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsSameAppPresenceOnly;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsSameAppPlayedOnly;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsArbitraryAppPlayedOnly;
+
+ public long PresenceGroupId;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatus.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatus.cs
new file mode 100644
index 00000000..df2e6525
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatus.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
+{
+ enum PresenceStatus : uint
+ {
+ Offline,
+ Online,
+ OnlinePlay
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatusFilter.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatusFilter.cs
new file mode 100644
index 00000000..24da7fd3
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/PresenceStatusFilter.cs
@@ -0,0 +1,10 @@
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
+{
+ enum PresenceStatusFilter : uint
+ {
+ None,
+ Online,
+ OnlinePlay,
+ OnlineOrOnlinePlay
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs
new file mode 100644
index 00000000..5fe8bfd7
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs
@@ -0,0 +1,27 @@
+using Ryujinx.HLE.Utilities;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x8, CharSet = CharSet.Ansi)]
+ struct UserPresence
+ {
+ public UInt128 UserId;
+ public long LastTimeOnlineTimestamp;
+ public PresenceStatus Status;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool SamePresenceGroupApplication;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x3)]
+ public char[] Unknown;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0xC0)]
+ public char[] AppKeyValueStorage;
+
+ public override string ToString()
+ {
+ return $"UserPresence {{ UserId: {UserId}, LastTimeOnlineTimestamp: {LastTimeOnlineTimestamp}, Status: {Status}, AppKeyValueStorage: {AppKeyValueStorage} }}";
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IDaemonSuspendSessionService.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IDaemonSuspendSessionService.cs
index 0156e0b7..42b34312 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/IDaemonSuspendSessionService.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IDaemonSuspendSessionService.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Friend
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
{
class IDaemonSuspendSessionService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IFriendService.cs
index ed3bc284..7492c5a7 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/IFriendService.cs
@@ -1,11 +1,12 @@
using Ryujinx.Common;
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.HOS.SystemState;
+using Ryujinx.HLE.HOS.Services.Account.Acc;
+using Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService;
using Ryujinx.HLE.Utilities;
using System.IO;
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Friend
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
{
class IFriendService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Friend/INotificationService.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/INotificationService.cs
index 7cff84bd..1ff37442 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/INotificationService.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/INotificationService.cs
@@ -2,11 +2,12 @@ using Ryujinx.Common;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService;
using Ryujinx.HLE.Utilities;
using System;
using System.Collections.Generic;
-namespace Ryujinx.HLE.HOS.Services.Friend
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
{
class INotificationService : IpcService, IDisposable
{
diff --git a/Ryujinx.HLE/HOS/Services/Friend/NotificationEventHandler.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/NotificationEventHandler.cs
index 8582a074..19b15416 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/NotificationEventHandler.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/NotificationEventHandler.cs
@@ -1,6 +1,6 @@
using Ryujinx.HLE.Utilities;
-namespace Ryujinx.HLE.HOS.Services.Friend
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
{
public sealed class NotificationEventHandler
{
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationEventType.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationEventType.cs
new file mode 100644
index 00000000..5136ae8a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationEventType.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
+{
+ enum NotificationEventType : uint
+ {
+ Invalid = 0x0,
+ FriendListUpdate = 0x1,
+ NewFriendRequest = 0x65
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationInfo.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationInfo.cs
new file mode 100644
index 00000000..1bd6f011
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/NotificationService/Types/NotificationInfo.cs
@@ -0,0 +1,15 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x8, Size = 0x10)]
+ struct NotificationInfo
+ {
+ public NotificationEventType Type;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x4)]
+ public char[] Padding;
+
+ public long NetworkUserIdPlaceholder;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Friend/FriendServicePermissionLevel.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/Types/FriendServicePermissionLevel.cs
index a2a4031a..9c811365 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/FriendServicePermissionLevel.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/Types/FriendServicePermissionLevel.cs
@@ -1,6 +1,6 @@
using System;
-namespace Ryujinx.HLE.HOS.Services.Friend
+namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
{
[Flags]
enum FriendServicePermissionLevel
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/FileSystemHelper.cs b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/FileSystemProxyHelper.cs
index d2e157f5..04b87b57 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/FileSystemHelper.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/FileSystemProxyHelper.cs
@@ -6,9 +6,9 @@ using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.Utilities;
using System.IO;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
{
- static class FileSystemHelper
+ static class FileSystemProxyHelper
{
public static ResultCode LoadSaveDataFileSystem(ServiceCtx context, bool readOnly, out IFileSystem loadedFileSystem)
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IDirectory.cs b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs
index 57d9142c..4fc8a687 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/IDirectory.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs
@@ -2,7 +2,7 @@ using LibHac;
using System.Collections.Generic;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
{
class IDirectory : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IFile.cs b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs
index 7200611b..df9209e6 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/IFile.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs
@@ -2,7 +2,7 @@ using LibHac;
using LibHac.Fs;
using System;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
{
class IFile : IpcService, IDisposable
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs
index bcdc6fc3..7a7fdbaf 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs
@@ -3,7 +3,7 @@ using LibHac.Fs;
using static Ryujinx.HLE.Utilities.StringUtils;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
{
class IFileSystem : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IStorage.cs b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs
index d13a12db..107599a4 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/IStorage.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs
@@ -1,7 +1,7 @@
using LibHac;
using Ryujinx.HLE.HOS.Ipc;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy
{
class IStorage : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs
index 43f5d647..a0d22595 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs
@@ -3,12 +3,13 @@ using LibHac.Fs;
using LibHac.Fs.NcaUtils;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.FileSystem;
+using Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy;
using System.IO;
using static Ryujinx.HLE.FileSystem.VirtualFileSystem;
using static Ryujinx.HLE.Utilities.StringUtils;
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs
{
[Service("fsp-srv")]
class IFileSystemProxy : IpcService
@@ -36,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
{
if (fullPath.Contains("."))
{
- ResultCode result = FileSystemHelper.OpenFileSystemFromInternalFile(context, fullPath, out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.OpenFileSystemFromInternalFile(context, fullPath, out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -54,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
if (extension == ".nca")
{
- ResultCode result = FileSystemHelper.OpenNcaFs(context, fullPath, fileStream.AsStorage(), out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.OpenNcaFs(context, fullPath, fileStream.AsStorage(), out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -65,7 +66,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
}
else if (extension == ".nsp")
{
- ResultCode result = FileSystemHelper.OpenNsp(context, fullPath, out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.OpenNsp(context, fullPath, out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -106,7 +107,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
LocalFileSystem fileSystem = new LocalFileSystem(fullPath);
- MakeObject(context, new IFileSystem(fileSystem));
+ MakeObject(context, new FileSystemProxy.IFileSystem(fileSystem));
return ResultCode.Success;
}
@@ -119,7 +120,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
LocalFileSystem fileSystem = new LocalFileSystem(sdCardPath);
- MakeObject(context, new IFileSystem(fileSystem));
+ MakeObject(context, new FileSystemProxy.IFileSystem(fileSystem));
return ResultCode.Success;
}
@@ -128,7 +129,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
// OpenSaveDataFileSystem(u8 save_data_space_id, nn::fssrv::sf::SaveStruct saveStruct) -> object<nn::fssrv::sf::IFileSystem> saveDataFs
public ResultCode OpenSaveDataFileSystem(ServiceCtx context)
{
- ResultCode result = FileSystemHelper.LoadSaveDataFileSystem(context, false, out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.LoadSaveDataFileSystem(context, false, out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -142,7 +143,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
// OpenSaveDataFileSystemBySystemSaveDataId(u8 save_data_space_id, nn::fssrv::sf::SaveStruct saveStruct) -> object<nn::fssrv::sf::IFileSystem> systemSaveDataFs
public ResultCode OpenSaveDataFileSystemBySystemSaveDataId(ServiceCtx context)
{
- ResultCode result = FileSystemHelper.LoadSaveDataFileSystem(context, false, out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.LoadSaveDataFileSystem(context, false, out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -156,7 +157,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
// OpenReadOnlySaveDataFileSystem(u8 save_data_space_id, nn::fssrv::sf::SaveStruct save_struct) -> object<nn::fssrv::sf::IFileSystem>
public ResultCode OpenReadOnlySaveDataFileSystem(ServiceCtx context)
{
- ResultCode result = FileSystemHelper.LoadSaveDataFileSystem(context, true, out IFileSystem fileSystem);
+ ResultCode result = FileSystemProxyHelper.LoadSaveDataFileSystem(context, true, out FileSystemProxy.IFileSystem fileSystem);
if (result == ResultCode.Success)
{
@@ -170,7 +171,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
// OpenDataStorageByCurrentProcess() -> object<nn::fssrv::sf::IStorage> dataStorage
public ResultCode OpenDataStorageByCurrentProcess(ServiceCtx context)
{
- MakeObject(context, new IStorage(context.Device.FileSystem.RomFs.AsStorage()));
+ MakeObject(context, new FileSystemProxy.IStorage(context.Device.FileSystem.RomFs.AsStorage()));
return 0;
}
@@ -213,7 +214,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
Nca nca = new Nca(context.Device.System.KeySet, ncaStorage);
LibHac.Fs.IStorage romfsStorage = nca.OpenStorage(NcaSectionType.Data, context.Device.System.FsIntegrityCheckLevel);
- MakeObject(context, new IStorage(romfsStorage));
+ MakeObject(context, new FileSystemProxy.IStorage(romfsStorage));
}
catch (HorizonResultException ex)
{
@@ -240,7 +241,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
// OpenPatchDataStorageByCurrentProcess() -> object<nn::fssrv::sf::IStorage>
public ResultCode OpenPatchDataStorageByCurrentProcess(ServiceCtx context)
{
- MakeObject(context, new IStorage(context.Device.FileSystem.RomFs.AsStorage()));
+ MakeObject(context, new FileSystemProxy.IStorage(context.Device.FileSystem.RomFs.AsStorage()));
return ResultCode.Success;
}
diff --git a/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxyForLoader.cs b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxyForLoader.cs
new file mode 100644
index 00000000..a40821b9
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxyForLoader.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Fs
+{
+ [Service("fsp-ldr")]
+ class IFileSystemProxyForLoader : IpcService
+ {
+ public IFileSystemProxyForLoader(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Fs/IProgramRegistry.cs b/Ryujinx.HLE/HOS/Services/Fs/IProgramRegistry.cs
new file mode 100644
index 00000000..e11eadf5
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Fs/IProgramRegistry.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Fs
+{
+ [Service("fsp-pr")]
+ class IProgramRegistry : IpcService
+ {
+ public IProgramRegistry(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Fs/ResultCode.cs
index b2be9293..8f87142b 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/FileSystemType.cs b/Ryujinx.HLE/HOS/Services/Fs/Types/FileSystemType.cs
index 4b2d0ccd..f12c1661 100644
--- a/Ryujinx.HLE/HOS/Services/FspSrv/FileSystemType.cs
+++ b/Ryujinx.HLE/HOS/Services/Fs/Types/FileSystemType.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.FspSrv
+namespace Ryujinx.HLE.HOS.Services.Fs
{
enum FileSystemType
{
diff --git a/Ryujinx.HLE/HOS/Services/Grc/IGrcService.cs b/Ryujinx.HLE/HOS/Services/Grc/IGrcService.cs
new file mode 100644
index 00000000..90646b40
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Grc/IGrcService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Grc
+{
+ [Service("grc:c")] // 4.0.0+
+ class IGrcService : IpcService
+ {
+ public IGrcService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Grc/IRemoteVideoTransfer.cs b/Ryujinx.HLE/HOS/Services/Grc/IRemoteVideoTransfer.cs
new file mode 100644
index 00000000..edb1d64e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Grc/IRemoteVideoTransfer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Grc
+{
+ [Service("grc:d")] // 6.0.0+
+ class IRemoteVideoTransfer : IpcService
+ {
+ public IRemoteVideoTransfer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidNpad.cs b/Ryujinx.HLE/HOS/Services/Hid/HidNpad.cs
deleted file mode 100644
index b2581202..00000000
--- a/Ryujinx.HLE/HOS/Services/Hid/HidNpad.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-
-namespace Ryujinx.HLE.HOS.Services.Hid
-{
- public enum HidNpadJoyAssignmentMode
- {
- Dual,
- Single
- }
-
- public enum HidNpadHandheldActivationMode
- {
- Dual,
- Single,
- None
- }
-
- public enum HidNpadJoyDeviceType
- {
- Left,
- Right
- }
-
- public enum HidNpadJoyHoldType
- {
- Vertical,
- Horizontal
- }
-
- [Flags]
- public enum HidNpadStyle
- {
- None,
- FullKey = 1 << 0,
- Handheld = 1 << 1,
- Dual = 1 << 2,
- Left = 1 << 3,
- Right = 1 << 4,
- Invalid = 1 << 5
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs b/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs
new file mode 100644
index 00000000..c89ea306
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs
@@ -0,0 +1,46 @@
+using Ryujinx.HLE.Input;
+using System;
+
+namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
+{
+ static class HidUtils
+ {
+ public static ControllerId GetIndexFromNpadIdType(HidNpadIdType npadIdType)
+ {
+ switch (npadIdType)
+ {
+ case HidNpadIdType.Player1: return ControllerId.ControllerPlayer1;
+ case HidNpadIdType.Player2: return ControllerId.ControllerPlayer2;
+ case HidNpadIdType.Player3: return ControllerId.ControllerPlayer3;
+ case HidNpadIdType.Player4: return ControllerId.ControllerPlayer4;
+ case HidNpadIdType.Player5: return ControllerId.ControllerPlayer5;
+ case HidNpadIdType.Player6: return ControllerId.ControllerPlayer6;
+ case HidNpadIdType.Player7: return ControllerId.ControllerPlayer7;
+ case HidNpadIdType.Player8: return ControllerId.ControllerPlayer8;
+ case HidNpadIdType.Handheld: return ControllerId.ControllerHandheld;
+ case HidNpadIdType.Unknown: return ControllerId.ControllerUnknown;
+
+ default: throw new ArgumentOutOfRangeException(nameof(npadIdType));
+ }
+ }
+
+ public static HidNpadIdType GetNpadIdTypeFromIndex(ControllerId index)
+ {
+ switch (index)
+ {
+ case ControllerId.ControllerPlayer1: return HidNpadIdType.Player1;
+ case ControllerId.ControllerPlayer2: return HidNpadIdType.Player2;
+ case ControllerId.ControllerPlayer3: return HidNpadIdType.Player3;
+ case ControllerId.ControllerPlayer4: return HidNpadIdType.Player4;
+ case ControllerId.ControllerPlayer5: return HidNpadIdType.Player5;
+ case ControllerId.ControllerPlayer6: return HidNpadIdType.Player6;
+ case ControllerId.ControllerPlayer7: return HidNpadIdType.Player7;
+ case ControllerId.ControllerPlayer8: return HidNpadIdType.Player8;
+ case ControllerId.ControllerHandheld: return HidNpadIdType.Handheld;
+ case ControllerId.ControllerUnknown: return HidNpadIdType.Unknown;
+
+ default: throw new ArgumentOutOfRangeException(nameof(index));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IActiveVibrationDeviceList.cs b/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs
index 8aa623ee..4c2050f1 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/IActiveVibrationDeviceList.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Hid
+namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
{
class IActiveApplicationDeviceList : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IAppletResource.cs b/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs
index 437ef082..2c3a6500 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/IAppletResource.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs
@@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Memory;
using System;
-namespace Ryujinx.HLE.HOS.Services.Hid
+namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
{
class IAppletResource : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidSixAxis.cs b/Ryujinx.HLE/HOS/Services/Hid/HidSixAxis.cs
deleted file mode 100644
index 7c7ebcc4..00000000
--- a/Ryujinx.HLE/HOS/Services/Hid/HidSixAxis.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Hid
-{
- public struct HidSensorFusionParameters
- {
- public float RevisePower;
- public float ReviseRange;
- }
-
- public struct HidAccelerometerParameters
- {
- public float X;
- public float Y;
- }
-
- public enum HidGyroscopeZeroDriftMode
- {
- Loose,
- Standard,
- Tight
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidUtils.cs b/Ryujinx.HLE/HOS/Services/Hid/HidUtils.cs
deleted file mode 100644
index fd540c7c..00000000
--- a/Ryujinx.HLE/HOS/Services/Hid/HidUtils.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using Ryujinx.HLE.Input;
-using System;
-
-namespace Ryujinx.HLE.HOS.Services.Hid
-{
- static class HidUtils
- {
- public static ControllerId GetIndexFromNpadIdType(NpadIdType npadIdType)
- {
- switch (npadIdType)
- {
- case NpadIdType.Player1: return ControllerId.ControllerPlayer1;
- case NpadIdType.Player2: return ControllerId.ControllerPlayer2;
- case NpadIdType.Player3: return ControllerId.ControllerPlayer3;
- case NpadIdType.Player4: return ControllerId.ControllerPlayer4;
- case NpadIdType.Player5: return ControllerId.ControllerPlayer5;
- case NpadIdType.Player6: return ControllerId.ControllerPlayer6;
- case NpadIdType.Player7: return ControllerId.ControllerPlayer7;
- case NpadIdType.Player8: return ControllerId.ControllerPlayer8;
- case NpadIdType.Handheld: return ControllerId.ControllerHandheld;
- case NpadIdType.Unknown: return ControllerId.ControllerUnknown;
-
- default: throw new ArgumentOutOfRangeException(nameof(npadIdType));
- }
- }
-
- public static NpadIdType GetNpadIdTypeFromIndex(ControllerId index)
- {
- switch (index)
- {
- case ControllerId.ControllerPlayer1: return NpadIdType.Player1;
- case ControllerId.ControllerPlayer2: return NpadIdType.Player2;
- case ControllerId.ControllerPlayer3: return NpadIdType.Player3;
- case ControllerId.ControllerPlayer4: return NpadIdType.Player4;
- case ControllerId.ControllerPlayer5: return NpadIdType.Player5;
- case ControllerId.ControllerPlayer6: return NpadIdType.Player6;
- case ControllerId.ControllerPlayer7: return NpadIdType.Player7;
- case ControllerId.ControllerPlayer8: return NpadIdType.Player8;
- case ControllerId.ControllerHandheld: return NpadIdType.Handheld;
- case ControllerId.ControllerUnknown: return NpadIdType.Unknown;
-
- default: throw new ArgumentOutOfRangeException(nameof(index));
- }
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidVibration.cs b/Ryujinx.HLE/HOS/Services/Hid/HidVibration.cs
deleted file mode 100644
index 635c356c..00000000
--- a/Ryujinx.HLE/HOS/Services/Hid/HidVibration.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Hid
-{
- public enum HidVibrationDeviceType
- {
- None,
- LinearResonantActuator
- }
-
- public enum HidVibrationDevicePosition
- {
- None,
- Left,
- Right
- }
-
- public struct HidVibrationDeviceValue
- {
- public HidVibrationDeviceType DeviceType;
- public HidVibrationDevicePosition Position;
- }
-
- public struct HidVibrationValue
- {
- public float AmplitudeLow;
- public float FrequencyLow;
- public float AmplitudeHigh;
- public float FrequencyHigh;
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidDebugServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidDebugServer.cs
new file mode 100644
index 00000000..adaaa012
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidDebugServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Service("hid:dbg")]
+ class IHidDebugServer : IpcService
+ {
+ public IHidDebugServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
index 9adc08c1..1af9baf8 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
@@ -2,6 +2,7 @@ using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Services.Hid.HidServer;
using Ryujinx.HLE.Input;
using System;
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs
new file mode 100644
index 00000000..019e9954
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Service("hid:sys")]
+ class IHidSystemServer : IpcService
+ {
+ public IHidSystemServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs
new file mode 100644
index 00000000..bfd1d4dc
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Service("hidbus")]
+ class IHidbusServer : IpcService
+ {
+ public IHidbusServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/ISystemServer.cs b/Ryujinx.HLE/HOS/Services/Hid/ISystemServer.cs
new file mode 100644
index 00000000..71353344
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/ISystemServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Service("xcd:sys")]
+ class ISystemServer : IpcService
+ {
+ public ISystemServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs b/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs
index d2991d0f..cd571f11 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs
@@ -1,6 +1,7 @@
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
+using Ryujinx.HLE.HOS.Services.Hid.HidServer;
using Ryujinx.HLE.Input;
using System;
@@ -56,11 +57,11 @@ namespace Ryujinx.HLE.HOS.Services.Hid.Irs
// GetNpadIrCameraHandle(u32) -> nn::irsensor::IrCameraHandle
public ResultCode GetNpadIrCameraHandle(ServiceCtx context)
{
- NpadIdType npadIdType = (NpadIdType)context.RequestData.ReadUInt32();
+ HidNpadIdType npadIdType = (HidNpadIdType)context.RequestData.ReadUInt32();
- if (npadIdType > NpadIdType.Player8 &&
- npadIdType != NpadIdType.Unknown &&
- npadIdType != NpadIdType.Handheld)
+ if (npadIdType > HidNpadIdType.Player8 &&
+ npadIdType != HidNpadIdType.Unknown &&
+ npadIdType != HidNpadIdType.Handheld)
{
return ResultCode.NpadIdOutOfRange;
}
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorSystemServer.cs b/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorSystemServer.cs
new file mode 100644
index 00000000..99fcd541
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorSystemServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid.Irs
+{
+ [Service("irs:sys")]
+ class IIrSensorSystemServer : IpcService
+ {
+ public IIrSensorSystemServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadHandheldActivationMode.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadHandheldActivationMode.cs
new file mode 100644
index 00000000..0aa8334d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadHandheldActivationMode.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidNpadHandheldActivationMode
+ {
+ Dual,
+ Single,
+ None
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/NpadIdType.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadIdType.cs
index 5f6a68cb..9a3989de 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/NpadIdType.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadIdType.cs
@@ -1,6 +1,6 @@
namespace Ryujinx.HLE.HOS.Services.Hid
{
- public enum NpadIdType
+ public enum HidNpadIdType
{
Player1 = 0,
Player2 = 1,
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyAssignmentMode.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyAssignmentMode.cs
new file mode 100644
index 00000000..a2e22661
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyAssignmentMode.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidNpadJoyAssignmentMode
+ {
+ Dual,
+ Single
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyDeviceType.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyDeviceType.cs
new file mode 100644
index 00000000..d0b34def
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyDeviceType.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidNpadJoyDeviceType
+ {
+ Left,
+ Right
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyHoldType.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyHoldType.cs
new file mode 100644
index 00000000..3bd3aa91
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadJoyHoldType.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidNpadJoyHoldType
+ {
+ Vertical,
+ Horizontal
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadStyle.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadStyle.cs
new file mode 100644
index 00000000..93717acf
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Npad/HidNpadStyle.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ [Flags]
+ public enum HidNpadStyle
+ {
+ None,
+ FullKey = 1 << 0,
+ Handheld = 1 << 1,
+ Dual = 1 << 2,
+ Left = 1 << 3,
+ Right = 1 << 4,
+ Invalid = 1 << 5
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidAccelerometerParameters.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidAccelerometerParameters.cs
new file mode 100644
index 00000000..fe7e4cc9
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidAccelerometerParameters.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public struct HidAccelerometerParameters
+ {
+ public float X;
+ public float Y;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidGyroscopeZeroDriftMode.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidGyroscopeZeroDriftMode.cs
new file mode 100644
index 00000000..cd3aa318
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidGyroscopeZeroDriftMode.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidGyroscopeZeroDriftMode
+ {
+ Loose,
+ Standard,
+ Tight
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidSensorFusionParameters.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidSensorFusionParameters.cs
new file mode 100644
index 00000000..cadf5ec0
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/SixAxis/HidSensorFusionParameters.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public struct HidSensorFusionParameters
+ {
+ public float RevisePower;
+ public float ReviseRange;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDevicePosition.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDevicePosition.cs
new file mode 100644
index 00000000..0ab84af3
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDevicePosition.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidVibrationDevicePosition
+ {
+ None,
+ Left,
+ Right
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceType.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceType.cs
new file mode 100644
index 00000000..cf9e6498
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceType.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public enum HidVibrationDeviceType
+ {
+ None,
+ LinearResonantActuator
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceValue.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceValue.cs
new file mode 100644
index 00000000..7905ecfd
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationDeviceValue.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public struct HidVibrationDeviceValue
+ {
+ public HidVibrationDeviceType DeviceType;
+ public HidVibrationDevicePosition Position;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationValue.cs b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationValue.cs
new file mode 100644
index 00000000..7211396e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Hid/Types/Vibration/HidVibrationValue.cs
@@ -0,0 +1,10 @@
+namespace Ryujinx.HLE.HOS.Services.Hid
+{
+ public struct HidVibrationValue
+ {
+ public float AmplitudeLow;
+ public float FrequencyLow;
+ public float AmplitudeHigh;
+ public float FrequencyHigh;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ins/IReceiverManager.cs b/Ryujinx.HLE/HOS/Services/Ins/IReceiverManager.cs
new file mode 100644
index 00000000..34d4bdfd
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ins/IReceiverManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ins
+{
+ [Service("ins:r")]
+ class IReceiverManager : IpcService
+ {
+ public IReceiverManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ins/ISenderManager.cs b/Ryujinx.HLE/HOS/Services/Ins/ISenderManager.cs
new file mode 100644
index 00000000..38a95ee7
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ins/ISenderManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ins
+{
+ [Service("ins:s")]
+ class ISenderManager : IpcService
+ {
+ public ISenderManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Lbl/ILblController.cs b/Ryujinx.HLE/HOS/Services/Lbl/ILblController.cs
new file mode 100644
index 00000000..de84095e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Lbl/ILblController.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Lbl
+{
+ [Service("lbl")]
+ class ILblController : IpcService
+ {
+ public ILblController(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldn/IMonitorServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Ldn/IMonitorServiceCreator.cs
new file mode 100644
index 00000000..09dfa78f
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldn/IMonitorServiceCreator.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldn
+{
+ [Service("ldn:m")]
+ class IMonitorServiceCreator : IpcService
+ {
+ public IMonitorServiceCreator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldn/ISystemServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Ldn/ISystemServiceCreator.cs
new file mode 100644
index 00000000..b4dac449
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldn/ISystemServiceCreator.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldn
+{
+ [Service("ldn:s")]
+ class ISystemServiceCreator : IpcService
+ {
+ public ISystemServiceCreator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs
new file mode 100644
index 00000000..052727dd
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldn
+{
+ [Service("ldn:u")]
+ class IUserServiceCreator : IpcService
+ {
+ public IUserServiceCreator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs b/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs
new file mode 100644
index 00000000..9c9ee3be
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p
+{
+ [Service("lp2p:app")] // 9.0.0+
+ [Service("lp2p:sys")] // 9.0.0+
+ class IServiceCreator : IpcService
+ {
+ public IServiceCreator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/IDebugMonitorInterface.cs b/Ryujinx.HLE/HOS/Services/Ldr/IDebugMonitorInterface.cs
new file mode 100644
index 00000000..d87234da
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/IDebugMonitorInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ [Service("ldr:dmnt")]
+ class IDebugMonitorInterface : IpcService
+ {
+ public IDebugMonitorInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/IProcessManagerInterface.cs b/Ryujinx.HLE/HOS/Services/Ldr/IProcessManagerInterface.cs
new file mode 100644
index 00000000..9f5b5e35
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/IProcessManagerInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ [Service("ldr:pm")]
+ class IProcessManagerInterface : IpcService
+ {
+ public IProcessManagerInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/IRoInterface.cs b/Ryujinx.HLE/HOS/Services/Ldr/IRoInterface.cs
index 748a600d..b5ef0f07 100644
--- a/Ryujinx.HLE/HOS/Services/Ldr/IRoInterface.cs
+++ b/Ryujinx.HLE/HOS/Services/Ldr/IRoInterface.cs
@@ -1,6 +1,5 @@
using ARMeilleure.Memory;
using Ryujinx.Common;
-using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Memory;
using Ryujinx.HLE.HOS.Kernel.Process;
@@ -9,91 +8,12 @@ using Ryujinx.HLE.Utilities;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Runtime.InteropServices;
using System.Security.Cryptography;
namespace Ryujinx.HLE.HOS.Services.Ldr
{
- [StructLayout(LayoutKind.Explicit, Size = 0x350)]
- unsafe struct NrrHeader
- {
- [FieldOffset(0)]
- public uint Magic;
-
- [FieldOffset(0x10)]
- public ulong TitleIdMask;
-
- [FieldOffset(0x18)]
- public ulong TitleIdPattern;
-
- [FieldOffset(0x30)]
- public fixed byte Modulus[0x100];
-
- [FieldOffset(0x130)]
- public fixed byte FixedKeySignature[0x100];
-
- [FieldOffset(0x230)]
- public fixed byte NrrSignature[0x100];
-
- [FieldOffset(0x330)]
- public ulong TitleIdMin;
-
- [FieldOffset(0x338)]
- public uint NrrSize;
-
- [FieldOffset(0x340)]
- public uint HashOffset;
-
- [FieldOffset(0x344)]
- public uint HashCount;
- }
-
- class NrrInfo
- {
- public NrrHeader Header { get; private set; }
- public List<byte[]> Hashes { get; private set; }
- public long NrrAddress { get; private set; }
-
- public NrrInfo(long nrrAddress, NrrHeader header, List<byte[]> hashes)
- {
- NrrAddress = nrrAddress;
- Header = header;
- Hashes = hashes;
- }
- }
-
- class NroInfo
- {
- public NxRelocatableObject Executable { get; private set; }
-
- public byte[] Hash { get; private set; }
- public ulong NroAddress { get; private set; }
- public ulong NroSize { get; private set; }
- public ulong BssAddress { get; private set; }
- public ulong BssSize { get; private set; }
- public ulong TotalSize { get; private set; }
- public ulong NroMappedAddress { get; set; }
-
- public NroInfo(
- NxRelocatableObject executable,
- byte[] hash,
- ulong nroAddress,
- ulong nroSize,
- ulong bssAddress,
- ulong bssSize,
- ulong totalSize)
- {
- Executable = executable;
- Hash = hash;
- NroAddress = nroAddress;
- NroSize = nroSize;
- BssAddress = bssAddress;
- BssSize = bssSize;
- TotalSize = totalSize;
- }
- }
-
[Service("ldr:ro")]
+ [Service("ro:1")] // 7.0.0+
class IRoInterface : IpcService
{
private const int MaxNrr = 0x40;
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/IShellInterface.cs b/Ryujinx.HLE/HOS/Services/Ldr/IShellInterface.cs
new file mode 100644
index 00000000..856aec52
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/IShellInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ [Service("ldr:shel")]
+ class IShellInterface : IpcService
+ {
+ public IShellInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/Types/NroInfo.cs b/Ryujinx.HLE/HOS/Services/Ldr/Types/NroInfo.cs
new file mode 100644
index 00000000..c65d5413
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/Types/NroInfo.cs
@@ -0,0 +1,35 @@
+using Ryujinx.HLE.Loaders.Executables;
+
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ class NroInfo
+ {
+ public NxRelocatableObject Executable { get; private set; }
+
+ public byte[] Hash { get; private set; }
+ public ulong NroAddress { get; private set; }
+ public ulong NroSize { get; private set; }
+ public ulong BssAddress { get; private set; }
+ public ulong BssSize { get; private set; }
+ public ulong TotalSize { get; private set; }
+ public ulong NroMappedAddress { get; set; }
+
+ public NroInfo(
+ NxRelocatableObject executable,
+ byte[] hash,
+ ulong nroAddress,
+ ulong nroSize,
+ ulong bssAddress,
+ ulong bssSize,
+ ulong totalSize)
+ {
+ Executable = executable;
+ Hash = hash;
+ NroAddress = nroAddress;
+ NroSize = nroSize;
+ BssAddress = bssAddress;
+ BssSize = bssSize;
+ TotalSize = totalSize;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrHeader.cs b/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrHeader.cs
new file mode 100644
index 00000000..a0764d1f
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrHeader.cs
@@ -0,0 +1,38 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ [StructLayout(LayoutKind.Explicit, Size = 0x350)]
+ unsafe struct NrrHeader
+ {
+ [FieldOffset(0)]
+ public uint Magic;
+
+ [FieldOffset(0x10)]
+ public ulong TitleIdMask;
+
+ [FieldOffset(0x18)]
+ public ulong TitleIdPattern;
+
+ [FieldOffset(0x30)]
+ public fixed byte Modulus[0x100];
+
+ [FieldOffset(0x130)]
+ public fixed byte FixedKeySignature[0x100];
+
+ [FieldOffset(0x230)]
+ public fixed byte NrrSignature[0x100];
+
+ [FieldOffset(0x330)]
+ public ulong TitleIdMin;
+
+ [FieldOffset(0x338)]
+ public uint NrrSize;
+
+ [FieldOffset(0x340)]
+ public uint HashOffset;
+
+ [FieldOffset(0x344)]
+ public uint HashCount;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrInfo.cs b/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrInfo.cs
new file mode 100644
index 00000000..3636ce33
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ldr/Types/NrrInfo.cs
@@ -0,0 +1,18 @@
+using System.Collections.Generic;
+
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ class NrrInfo
+ {
+ public NrrHeader Header { get; private set; }
+ public List<byte[]> Hashes { get; private set; }
+ public long NrrAddress { get; private set; }
+
+ public NrrInfo(long nrrAddress, NrrHeader header, List<byte[]> hashes)
+ {
+ NrrAddress = nrrAddress;
+ Header = header;
+ Hashes = hashes;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Lm/ILogService.cs b/Ryujinx.HLE/HOS/Services/Lm/ILogService.cs
index 019cd7d4..9fc46766 100644
--- a/Ryujinx.HLE/HOS/Services/Lm/ILogService.cs
+++ b/Ryujinx.HLE/HOS/Services/Lm/ILogService.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Lm.LogService;
+
namespace Ryujinx.HLE.HOS.Services.Lm
{
[Service("lm")]
diff --git a/Ryujinx.HLE/HOS/Services/Lm/ILogger.cs b/Ryujinx.HLE/HOS/Services/Lm/LogService/ILogger.cs
index 4b297760..357a1332 100644
--- a/Ryujinx.HLE/HOS/Services/Lm/ILogger.cs
+++ b/Ryujinx.HLE/HOS/Services/Lm/LogService/ILogger.cs
@@ -2,7 +2,7 @@ using Ryujinx.Common.Logging;
using System.IO;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Lm
+namespace Ryujinx.HLE.HOS.Services.Lm.LogService
{
class ILogger : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Lm/LmLogField.cs b/Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogField.cs
index 95474634..3f93e167 100644
--- a/Ryujinx.HLE/HOS/Services/Lm/LmLogField.cs
+++ b/Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogField.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Lm
+namespace Ryujinx.HLE.HOS.Services.Lm.LogService
{
enum LmLogField
{
diff --git a/Ryujinx.HLE/HOS/Services/Lm/LmLogLevel.cs b/Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogLevel.cs
index 70554c42..ee1a8396 100644
--- a/Ryujinx.HLE/HOS/Services/Lm/LmLogLevel.cs
+++ b/Ryujinx.HLE/HOS/Services/Lm/LogService/Types/LmLogLevel.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Lm
+namespace Ryujinx.HLE.HOS.Services.Lm.LogService
{
enum LmLogLevel
{
diff --git a/Ryujinx.HLE/HOS/Services/Mig/IService.cs b/Ryujinx.HLE/HOS/Services/Mig/IService.cs
new file mode 100644
index 00000000..2f6eb99e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Mig/IService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Mig
+{
+ [Service("mig:usr")] // 4.0.0+
+ class IService : IpcService
+ {
+ public IService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ncm/IContentStorage.cs b/Ryujinx.HLE/HOS/Services/Ncm/IContentStorage.cs
deleted file mode 100644
index 5bfbe4db..00000000
--- a/Ryujinx.HLE/HOS/Services/Ncm/IContentStorage.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Ncm
-{
- class IContentStorage : IpcService
- {
- public IContentStorage() { }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Lr/ILocationResolverManager.cs b/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs
index 14ed0ca7..44b8272b 100644
--- a/Ryujinx.HLE/HOS/Services/Lr/ILocationResolverManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs
@@ -1,6 +1,7 @@
using Ryujinx.HLE.FileSystem;
+using Ryujinx.HLE.HOS.Services.Ncm.Lr.LocationResolverManager;
-namespace Ryujinx.HLE.HOS.Services.Lr
+namespace Ryujinx.HLE.HOS.Services.Ncm.Lr
{
[Service("lr")]
class ILocationResolverManager : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Lr/ILocationResolver.cs b/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs
index 1eb38d05..d77bac73 100644
--- a/Ryujinx.HLE/HOS/Services/Lr/ILocationResolver.cs
+++ b/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs
@@ -5,7 +5,7 @@ using System.Text;
using static Ryujinx.HLE.Utilities.StringUtils;
-namespace Ryujinx.HLE.HOS.Services.Lr
+namespace Ryujinx.HLE.HOS.Services.Ncm.Lr.LocationResolverManager
{
class ILocationResolver : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Lr/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Ncm/Lr/ResultCode.cs
index 10c42cd6..5ff7e466 100644
--- a/Ryujinx.HLE/HOS/Services/Lr/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Ncm/Lr/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Lr
+namespace Ryujinx.HLE.HOS.Services.Ncm.Lr
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/News/IServiceCreator.cs b/Ryujinx.HLE/HOS/Services/News/IServiceCreator.cs
new file mode 100644
index 00000000..7ea89b20
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/News/IServiceCreator.cs
@@ -0,0 +1,12 @@
+namespace Ryujinx.HLE.HOS.Services.News
+{
+ [Service("news:a")]
+ [Service("news:c")]
+ [Service("news:m")]
+ [Service("news:p")]
+ [Service("news:v")]
+ class IServiceCreator : IpcService
+ {
+ public IServiceCreator(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/IAmManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/IAmManager.cs
new file mode 100644
index 00000000..33932568
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/IAmManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc
+{
+ [Service("nfc:am")]
+ class IAmManager : IpcService
+ {
+ public IAmManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs
new file mode 100644
index 00000000..0bab0b79
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc
+{
+ [Service("nfc:sys")]
+ class ISystemManager : IpcService
+ {
+ public ISystemManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs
new file mode 100644
index 00000000..048adf8c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc
+{
+ [Service("nfc:user")]
+ class IUserManager : IpcService
+ {
+ public IUserManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Mifare/IUserManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/Mifare/IUserManager.cs
new file mode 100644
index 00000000..cc3cd3aa
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Mifare/IUserManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc.Mifare
+{
+ [Service("nfc:mf:u")]
+ class IUserManager : IpcService
+ {
+ public IUserManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs
new file mode 100644
index 00000000..c5da8da9
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
+{
+ [Service("nfp:dbg")]
+ class IAmManager : IpcService
+ {
+ public IAmManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs
new file mode 100644
index 00000000..78ea4896
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
+{
+ [Service("nfp:sys")]
+ class ISystemManager : IpcService
+ {
+ public ISystemManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/State.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/State.cs
deleted file mode 100644
index 166e5d7e..00000000
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/State.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
-{
- enum State
- {
- NonInitialized = 0,
- Initialized = 1
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUser.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/IUser.cs
index c8a7ae4b..d26b4eb9 100644
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUser.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/IUser.cs
@@ -3,6 +3,8 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using Ryujinx.HLE.HOS.Services.Hid;
+using Ryujinx.HLE.HOS.Services.Hid.HidServer;
+using Ryujinx.HLE.HOS.Services.Nfc.Nfp.UserManager;
using System;
using System.Collections.Generic;
@@ -41,8 +43,8 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
// TODO: When we will be able to add multiple controllers add one entry by controller here.
Device device1 = new Device
{
- NpadIdType = NpadIdType.Player1,
- Handle = HidUtils.GetIndexFromNpadIdType(NpadIdType.Player1),
+ NpadIdType = HidNpadIdType.Player1,
+ Handle = HidUtils.GetIndexFromNpadIdType(HidNpadIdType.Player1),
State = DeviceState.Initialized
};
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/Device.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/Device.cs
index 3c49ee51..40e7c880 100644
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/Device.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/Device.cs
@@ -2,7 +2,7 @@
using Ryujinx.HLE.HOS.Services.Hid;
using Ryujinx.HLE.Input;
-namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
+namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.UserManager
{
class Device
{
@@ -14,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
public DeviceState State = DeviceState.Unavailable;
- public ControllerId Handle;
- public NpadIdType NpadIdType;
+ public ControllerId Handle;
+ public HidNpadIdType NpadIdType;
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/DeviceState.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/DeviceState.cs
index 09cff5f8..7e373494 100644
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/DeviceState.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/DeviceState.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
+namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.UserManager
{
enum DeviceState
{
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/State.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/State.cs
new file mode 100644
index 00000000..8d141f0b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/UserManager/Types/State.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.UserManager
+{
+ enum State
+ {
+ NonInitialized = 0,
+ Initialized = 1
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ngct/IUnknown1.cs b/Ryujinx.HLE/HOS/Services/Ngct/IUnknown1.cs
new file mode 100644
index 00000000..2baec585
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ngct/IUnknown1.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Ngct
+{
+ [Service("ngct:s")] // 9.0.0+
+ [Service("ngct:u")] // 9.0.0+
+ class IUnknown1 : IpcService
+ {
+ public IUnknown1(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs b/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs
index eaecc3d3..0cf6a43c 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Nifm.StaticService;
+
namespace Ryujinx.HLE.HOS.Services.Nifm
{
[Service("nifm:a")] // Max sessions: 2
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceManager.cs b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/GeneralServiceManager.cs
index 1b49229e..bbb218bb 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/GeneralServiceManager.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Linq;
-namespace Ryujinx.HLE.HOS.Services.Nifm
+namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService.GeneralService
{
static class GeneralServiceManager
{
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceDetail.cs b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/Types/GeneralServiceDetail.cs
index 3be5fbeb..3cf55345 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/GeneralServiceDetail.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/GeneralService/Types/GeneralServiceDetail.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nifm
+namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService.GeneralService
{
class GeneralServiceDetail
{
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs
index a47e7300..4a07b298 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs
@@ -1,11 +1,12 @@
using Ryujinx.Common.Logging;
+using Ryujinx.HLE.HOS.Services.Nifm.StaticService.GeneralService;
using System;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
-namespace Ryujinx.HLE.HOS.Services.Nifm
+namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService
{
class IGeneralService : IpcService, IDisposable
{
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs
index b2884f91..c878c2d6 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs
@@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using System;
-namespace Ryujinx.HLE.HOS.Services.Nifm
+namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService
{
class IRequest : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Nim/INetworkInstallManager.cs b/Ryujinx.HLE/HOS/Services/Nim/INetworkInstallManager.cs
new file mode 100644
index 00000000..ad79ca0d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nim/INetworkInstallManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nim
+{
+ [Service("nim")]
+ class INetworkInstallManager : IpcService
+ {
+ public INetworkInstallManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs
new file mode 100644
index 00000000..9be84393
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nim
+{
+ [Service("nim:eca")] // 5.0.0+
+ class IShopServiceAccessServerInterface : IpcService
+ {
+ public IShopServiceAccessServerInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessSystemInterface.cs b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessSystemInterface.cs
new file mode 100644
index 00000000..ab7bcaca
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessSystemInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ldr
+{
+ [Service("nim:ecas")] // 7.0.0+
+ class IShopServiceAccessSystemInterface : IpcService
+ {
+ public IShopServiceAccessSystemInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nim/IShopServiceManager.cs b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceManager.cs
new file mode 100644
index 00000000..2420615a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nim/IShopServiceManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nim
+{
+ [Service("nim:shp")]
+ class IShopServiceManager : IpcService
+ {
+ public IShopServiceManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs b/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs
new file mode 100644
index 00000000..f5a3bc7b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nim.Ntc
+{
+ [Service("ntc")]
+ class IStaticService : IpcService
+ {
+ public IStaticService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForApplication.cs b/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForApplication.cs
new file mode 100644
index 00000000..c4a35b29
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForApplication.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Notification
+{
+ [Service("notif:a")] // 9.0.0+
+ class INotificationServicesForApplication : IpcService
+ {
+ public INotificationServicesForApplication(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForSystem.cs b/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForSystem.cs
new file mode 100644
index 00000000..0939dff6
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Notification/INotificationServicesForSystem.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Notification
+{
+ [Service("notif:s")] // 9.0.0+
+ class INotificationServicesForSystem : IpcService
+ {
+ public INotificationServicesForSystem(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Npns/INpnsSystem.cs b/Ryujinx.HLE/HOS/Services/Npns/INpnsSystem.cs
new file mode 100644
index 00000000..fd8ccfb5
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Npns/INpnsSystem.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Npns
+{
+ [Service("npns:s")]
+ class INpnsSystem : IpcService
+ {
+ public INpnsSystem(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Npns/INpnsUser.cs b/Ryujinx.HLE/HOS/Services/Npns/INpnsUser.cs
new file mode 100644
index 00000000..68e76938
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Npns/INpnsUser.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Npns
+{
+ [Service("npns:u")]
+ class INpnsUser : IpcService
+ {
+ public INpnsUser(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ns/IDevelopInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/IDevelopInterface.cs
new file mode 100644
index 00000000..c74ebd69
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ns/IDevelopInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ns
+{
+ [Service("ns:dev")]
+ class IDevelopInterface : IpcService
+ {
+ public IDevelopInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs
index a8c9ff9a..71331667 100644
--- a/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs
+++ b/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs
@@ -2,6 +2,9 @@ namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("ns:am2")]
[Service("ns:ec")]
+ [Service("ns:rid")]
+ [Service("ns:rt")]
+ [Service("ns:web")]
class IServiceGetterInterface : IpcService
{
public IServiceGetterInterface(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvDrvDebugFSServices.cs b/Ryujinx.HLE/HOS/Services/Nv/INvDrvDebugFSServices.cs
new file mode 100644
index 00000000..dffe8783
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nv/INvDrvDebugFSServices.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nv
+{
+ [Service("nvdrvdbg")]
+ class INvDrvDebugFSServices : IpcService
+ {
+ public INvDrvDebugFSServices(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
index 261c1c5a..da34421b 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
@@ -4,11 +4,11 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Process;
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Nv.NvGpuAS;
-using Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu;
-using Ryujinx.HLE.HOS.Services.Nv.NvHostChannel;
-using Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl;
-using Ryujinx.HLE.HOS.Services.Nv.NvMap;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap;
using System;
using System.Collections.Generic;
diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvGemControl.cs b/Ryujinx.HLE/HOS/Services/Nv/INvGemControl.cs
new file mode 100644
index 00000000..7bf99ed1
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nv/INvGemControl.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nv
+{
+ [Service("nvgem:c")]
+ class INvGemControl : IpcService
+ {
+ public INvGemControl(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvGemCoreDump.cs b/Ryujinx.HLE/HOS/Services/Nv/INvGemCoreDump.cs
new file mode 100644
index 00000000..ff3774da
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nv/INvGemCoreDump.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nv
+{
+ [Service("nvgem:cd")]
+ class INvGemCoreDump : IpcService
+ {
+ public INvGemCoreDump(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/NvGpuASIoctl.cs
index 47d15a7e..5c8d1fe0 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/NvGpuASIoctl.cs
@@ -2,11 +2,11 @@ using ARMeilleure.Memory;
using Ryujinx.Common.Logging;
using Ryujinx.Graphics.Memory;
using Ryujinx.HLE.HOS.Kernel.Process;
-using Ryujinx.HLE.HOS.Services.Nv.NvMap;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap;
using System;
using System.Collections.Concurrent;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
class NvGpuASIoctl
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASAllocSpace.cs
index bca2f9f4..f0a0db35 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASAllocSpace.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASAllocSpace.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
struct NvGpuASAllocSpace
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASCtx.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASCtx.cs
index e3cdf2f8..315fe353 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASCtx.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASCtx.cs
@@ -1,7 +1,7 @@
using Ryujinx.Graphics.Memory;
using System.Collections.Generic;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
class NvGpuASCtx
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASMapBufferEx.cs
index 4bdb4bf7..6ef80377 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASMapBufferEx.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASMapBufferEx.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
struct NvGpuASMapBufferEx
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASRemap.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASRemap.cs
index a24221ba..0a6f8003 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASRemap.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASRemap.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
struct NvGpuASRemap
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASUnmapBuffer.cs
index beb07fe2..63476b2f 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASUnmapBuffer.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuAS/Types/NvGpuASUnmapBuffer.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS
{
struct NvGpuASUnmapBuffer
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/NvGpuGpuIoctl.cs
index 04b0c63c..12f13153 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/NvGpuGpuIoctl.cs
@@ -3,7 +3,7 @@ using Ryujinx.Common.Logging;
using System;
using System.Diagnostics;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
class NvGpuGpuIoctl
{
@@ -40,9 +40,10 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
{
long outputPosition = context.Request.GetBufferType0x22().Position;
- NvGpuGpuZcullGetCtxSize args = new NvGpuGpuZcullGetCtxSize();
-
- args.Size = 1;
+ NvGpuGpuZcullGetCtxSize args = new NvGpuGpuZcullGetCtxSize
+ {
+ Size = 1
+ };
MemoryHelper.Write(context.Memory, outputPosition, args);
@@ -55,18 +56,19 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
{
long outputPosition = context.Request.GetBufferType0x22().Position;
- NvGpuGpuZcullGetInfo args = new NvGpuGpuZcullGetInfo();
-
- args.WidthAlignPixels = 0x20;
- args.HeightAlignPixels = 0x20;
- args.PixelSquaresByAliquots = 0x400;
- args.AliquotTotal = 0x800;
- args.RegionByteMultiplier = 0x20;
- args.RegionHeaderSize = 0x20;
- args.SubregionHeaderSize = 0xc0;
- args.SubregionWidthAlignPixels = 0x20;
- args.SubregionHeightAlignPixels = 0x40;
- args.SubregionCount = 0x10;
+ NvGpuGpuZcullGetInfo args = new NvGpuGpuZcullGetInfo
+ {
+ WidthAlignPixels = 0x20,
+ HeightAlignPixels = 0x20,
+ PixelSquaresByAliquots = 0x400,
+ AliquotTotal = 0x800,
+ RegionByteMultiplier = 0x20,
+ RegionHeaderSize = 0x20,
+ SubregionHeaderSize = 0xc0,
+ SubregionWidthAlignPixels = 0x20,
+ SubregionHeightAlignPixels = 0x40,
+ SubregionCount = 0x10
+ };
MemoryHelper.Write(context.Memory, outputPosition, args);
@@ -156,10 +158,11 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
{
long outputPosition = context.Request.GetBufferType0x22().Position;
- NvGpuGpuGetActiveSlotMask args = new NvGpuGpuGetActiveSlotMask();
-
- args.Slot = 0x07;
- args.Mask = 0x01;
+ NvGpuGpuGetActiveSlotMask args = new NvGpuGpuGetActiveSlotMask
+ {
+ Slot = 0x07,
+ Mask = 0x01
+ };
MemoryHelper.Write(context.Memory, outputPosition, args);
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetActiveSlotMask.cs
index e20d21f9..1b4c5345 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetActiveSlotMask.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetActiveSlotMask.cs
@@ -1,8 +1,8 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
struct NvGpuGpuGetActiveSlotMask
{
public int Slot;
public int Mask;
}
-}
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetCharacteristics.cs
index 9a925138..76aef2a7 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetCharacteristics.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetCharacteristics.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
struct NvGpuGpuGetCharacteristics
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetTpcMasks.cs
index 751363c6..bc0966da 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuGetTpcMasks.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuGetTpcMasks.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
struct NvGpuGpuGetTpcMasks
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetCtxSize.cs
index 3ac9f92b..8706d51d 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetCtxSize.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetCtxSize.cs
@@ -1,7 +1,7 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
struct NvGpuGpuZcullGetCtxSize
{
public int Size;
}
-}
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetInfo.cs
index 4a7cafd5..ab17ca8b 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuZcullGetInfo.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvGpuGpu/Types/NvGpuGpuZcullGetInfo.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuGpu
{
struct NvGpuGpuZcullGetInfo
{
@@ -13,4 +13,4 @@
public int SubregionHeightAlignPixels;
public int SubregionCount;
}
-}
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelIoctl.cs
index fdfb3fa5..0d06e7e4 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelIoctl.cs
@@ -2,12 +2,12 @@ using ARMeilleure.Memory;
using Ryujinx.Common.Logging;
using Ryujinx.Graphics.Memory;
using Ryujinx.HLE.HOS.Kernel.Process;
-using Ryujinx.HLE.HOS.Services.Nv.NvGpuAS;
-using Ryujinx.HLE.HOS.Services.Nv.NvMap;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvGpuAS;
+using Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap;
using System;
using System.Collections.Concurrent;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
class NvHostChannelIoctl
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannel.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannel.cs
index 74d27a75..22cfba3d 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannel.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannel.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
class NvChannel
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannelPriority.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannelPriority.cs
index d41e7609..148a640b 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvChannelPriority.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvChannelPriority.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
enum NvChannelPriority
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelCmdBuf.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelCmdBuf.cs
index 44949597..0308912b 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelCmdBuf.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelCmdBuf.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
[StructLayout(LayoutKind.Sequential, Size = 8, Pack = 4)]
struct NvHostChannelCmdBuf
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelGetParamArg.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelGetParamArg.cs
index 5c04e5d4..72946484 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelGetParamArg.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelGetParamArg.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
[StructLayout(LayoutKind.Sequential, Size = 8, Pack = 4)]
struct NvHostChannelGetParamArg
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelMapBuffer.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelMapBuffer.cs
index 1dfedf2d..f516588e 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelMapBuffer.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelMapBuffer.cs
@@ -1,12 +1,12 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
[StructLayout(LayoutKind.Sequential, Size = 0xc, Pack = 4)]
struct NvHostChannelMapBuffer
{
public int NumEntries;
- public int DataAddress; //Ignored by the driver.
+ public int DataAddress; // Ignored by the driver.
public bool AttachHostChDas;
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmit.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmit.cs
index f776ad87..ef2f24e7 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmit.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmit.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
[StructLayout(LayoutKind.Sequential, Size = 8, Pack = 4)]
struct NvHostChannelSubmit
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmitGpfifo.cs
index edebcfeb..e8cb5f0f 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelSubmitGpfifo.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/NvHostChannelSubmitGpfifo.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
{
struct NvHostChannelSubmitGpfifo
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/NvHostCtrlIoctl.cs
index 2a84b677..346e2dc7 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/NvHostCtrlIoctl.cs
@@ -1,12 +1,13 @@
using ARMeilleure.Memory;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Kernel.Process;
+using Ryujinx.HLE.HOS.Services.Settings;
using System;
using System.Collections.Concurrent;
using System.Text;
using System.Threading;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
class NvHostCtrlIoctl
{
@@ -18,7 +19,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
{
_userCtxs = new ConcurrentDictionary<KProcess, NvHostCtrlUserCtx>();
- if (Set.NxSettings.Settings.TryGetValue("nv!rmos_set_production_mode", out object productionModeSetting))
+ if (NxSettings.Settings.TryGetValue("nv!rmos_set_production_mode", out object productionModeSetting))
{
_isProductionMode = ((string)productionModeSetting) != "0"; // Default value is ""
}
@@ -88,7 +89,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
string domain = MemoryHelper.ReadAsciiString(context.Memory, inputPosition + 0, 0x41);
string name = MemoryHelper.ReadAsciiString(context.Memory, inputPosition + 0x41, 0x41);
- if (Set.NxSettings.Settings.TryGetValue($"{domain}!{name}", out object nvSetting))
+ if (NxSettings.Settings.TryGetValue($"{domain}!{name}", out object nvSetting))
{
byte[] settingBuffer = new byte[0x101];
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtRead.cs
index 275b6132..8cfac571 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtRead.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtRead.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
struct NvHostCtrlSyncptRead
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWait.cs
index 96e2f968..401884c4 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWait.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWait.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
struct NvHostCtrlSyncptWait
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWaitEx.cs
index 6aaa4718..49f573e2 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlSyncPtWaitEx.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlSyncPtWaitEx.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
struct NvHostCtrlSyncptWaitEx
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlUserCtx.cs
index fcb80836..0b9d85cf 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlUserCtx.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostCtrlUserCtx.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
class NvHostCtrlUserCtx
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEvent.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEvent.cs
index 71e5f1e6..c10e256e 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEvent.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEvent.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
class NvHostEvent
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEventState.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEventState.cs
index 61870c7f..521ae9ad 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostEventState.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostEventState.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
enum NvHostEventState
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostSyncPt.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostSyncPt.cs
index d27f7c53..8ef45043 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostSyncPt.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostCtrl/Types/NvHostSyncPt.cs
@@ -3,7 +3,7 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Threading;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
{
class NvHostSyncpt
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/NvMapIoctl.cs
index d9c579a2..0b5be6e8 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/NvMapIoctl.cs
@@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Kernel.Process;
using Ryujinx.HLE.Utilities;
using System.Collections.Concurrent;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
class NvMapIoctl
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapAlloc.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapAlloc.cs
index bc61baad..f449b606 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapAlloc.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapAlloc.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapAlloc
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapCreate.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapCreate.cs
index dd4bff98..b1ccf1bc 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapCreate.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapCreate.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapCreate
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFree.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFree.cs
index d946987e..1d17c3a7 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFree.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFree.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapFree
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFromId.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFromId.cs
index e49257ea..7f7f83ab 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapFromId.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapFromId.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapFromId
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapGetId.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapGetId.cs
index 1f4f3290..df8fff53 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapGetId.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapGetId.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapGetId
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandle.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandle.cs
index 31bf8329..3903b77c 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandle.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandle.cs
@@ -1,6 +1,6 @@
using System.Threading;
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
class NvMapHandle
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandleParam.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandleParam.cs
index b360343c..9eb7efff 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapHandleParam.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapHandleParam.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
enum NvMapHandleParam
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapParam.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapParam.cs
index b5213efe..c873a0d2 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvMap/NvMapParam.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvMap/Types/NvMapParam.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nv.NvMap
+namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
{
struct NvMapParam
{
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvFd.cs b/Ryujinx.HLE/HOS/Services/Nv/Types/NvFd.cs
index b6c654e4..b6c654e4 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvFd.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/Types/NvFd.cs
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvResult.cs b/Ryujinx.HLE/HOS/Services/Nv/Types/NvResult.cs
index 362a0450..362a0450 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvResult.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/Types/NvResult.cs
diff --git a/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForSystemService.cs b/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForSystemService.cs
new file mode 100644
index 00000000..52f74da9
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForSystemService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Olsc
+{
+ [Service("olsc:s")] // 4.0.0+
+ class IOlscServiceForSystemService : IpcService
+ {
+ public IOlscServiceForSystemService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ovln/IReceiverService.cs b/Ryujinx.HLE/HOS/Services/Ovln/IReceiverService.cs
new file mode 100644
index 00000000..67b82e42
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ovln/IReceiverService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ovln
+{
+ [Service("ovln:rcv")]
+ class IReceiverService : IpcService
+ {
+ public IReceiverService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ovln/ISenderService.cs b/Ryujinx.HLE/HOS/Services/Ovln/ISenderService.cs
new file mode 100644
index 00000000..70c860e1
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ovln/ISenderService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ovln
+{
+ [Service("ovln:snd")]
+ class ISenderService : IpcService
+ {
+ public ISenderService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcie/ILogManager.cs b/Ryujinx.HLE/HOS/Services/Pcie/ILogManager.cs
new file mode 100644
index 00000000..9c6387e1
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcie/ILogManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcie
+{
+ [Service("pcie:log")]
+ class ILogManager : IpcService
+ {
+ public ILogManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcie/IManager.cs b/Ryujinx.HLE/HOS/Services/Pcie/IManager.cs
new file mode 100644
index 00000000..f189dc8c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcie/IManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcie
+{
+ [Service("pcie")]
+ class IManager : IpcService
+ {
+ public IManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs b/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs
index b67543dd..678279f9 100644
--- a/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs
+++ b/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory;
+
namespace Ryujinx.HLE.HOS.Services.Pctl
{
[Service("pctl")]
diff --git a/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlService.cs b/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs
index e9cc72c1..0e7c8432 100644
--- a/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlService.cs
+++ b/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Pctl
+namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
{
class IParentalControlService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IBoardPowerControlManager.cs b/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IBoardPowerControlManager.cs
new file mode 100644
index 00000000..7d0222d5
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IBoardPowerControlManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv.Bpc
+{
+ [Service("bpc")]
+ class IBoardPowerControlManager : IpcService
+ {
+ public IBoardPowerControlManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Bpc/IRtcManager.cs b/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs
index 5ff9410a..3b775da8 100644
--- a/Ryujinx.HLE/HOS/Services/Bpc/IRtcManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs
@@ -1,8 +1,8 @@
using System;
-namespace Ryujinx.HLE.HOS.Services.Bpc
+namespace Ryujinx.HLE.HOS.Services.Pcv.Bpc
{
- [Service("bpc:r")]
+ [Service("bpc:r")] // 1.0.0 - 8.1.0
class IRtcManager : IpcService
{
public IRtcManager(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IArbitrationManager.cs b/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IArbitrationManager.cs
new file mode 100644
index 00000000..6f1e5d25
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IArbitrationManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv.Clkrst
+{
+ [Service("clkrst:a")] // 8.0.0+
+ class IArbitrationManager : IpcService
+ {
+ public IArbitrationManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs b/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs
new file mode 100644
index 00000000..a82e8a94
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv.Clkrst
+{
+ [Service("clkrst")] // 8.0.0+
+ [Service("clkrst:i")] // 8.0.0+
+ class IClkrstManager : IpcService
+ {
+ public IClkrstManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/IPcvService.cs b/Ryujinx.HLE/HOS/Services/Pcv/IPcvService.cs
new file mode 100644
index 00000000..0e74dc3e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/IPcvService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv
+{
+ [Service("pcv")]
+ class IPcvService : IpcService
+ {
+ public IPcvService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/Rgltr/IRegulatorManager.cs b/Ryujinx.HLE/HOS/Services/Pcv/Rgltr/IRegulatorManager.cs
new file mode 100644
index 00000000..f7834777
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Rgltr/IRegulatorManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv.Rgltr
+{
+ [Service("rgltr")] // 8.0.0+
+ class IRegulatorManager : IpcService
+ {
+ public IRegulatorManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pcv/Rtc/IUnknown1.cs b/Ryujinx.HLE/HOS/Services/Pcv/Rtc/IUnknown1.cs
new file mode 100644
index 00000000..0f73f950
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pcv/Rtc/IUnknown1.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pcv.Rtc
+{
+ [Service("rtc")] // 8.0.0+
+ class IUnknown1 : IpcService
+ {
+ public IUnknown1(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pm/IBootModeInterface.cs b/Ryujinx.HLE/HOS/Services/Pm/IBootModeInterface.cs
new file mode 100644
index 00000000..45771db6
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pm/IBootModeInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pm
+{
+ [Service("pm:bm")]
+ class IBootModeInterface : IpcService
+ {
+ public IBootModeInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs b/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs
new file mode 100644
index 00000000..06c11943
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Pm
+{
+ [Service("pm:dmnt")]
+ class IDebugMonitorInterface : IpcService
+ {
+ public IDebugMonitorInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs b/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
index 9fc9c115..94c027ab 100644
--- a/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
+++ b/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
@@ -3,6 +3,7 @@ using Ryujinx.Common.Logging;
namespace Ryujinx.HLE.HOS.Services.Prepo
{
[Service("prepo:a")]
+ [Service("prepo:a2")]
[Service("prepo:u")]
class IPrepoService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Psc/IPmControl.cs b/Ryujinx.HLE/HOS/Services/Psc/IPmControl.cs
new file mode 100644
index 00000000..3810c282
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Psc/IPmControl.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Psc
+{
+ [Service("psc:c")]
+ class IPmControl : IpcService
+ {
+ public IPmControl(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Psc/IPmService.cs b/Ryujinx.HLE/HOS/Services/Psc/IPmService.cs
new file mode 100644
index 00000000..c8dfb32e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Psc/IPmService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Psc
+{
+ [Service("psc:m")]
+ class IPmService : IpcService
+ {
+ public IPmService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Psc/IPmUnknown.cs b/Ryujinx.HLE/HOS/Services/Psc/IPmUnknown.cs
new file mode 100644
index 00000000..ef48fa41
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Psc/IPmUnknown.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Psc
+{
+ [Service("psc:l")] // 9.0.0+
+ class IPmUnknown : IpcService
+ {
+ public IPmUnknown(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Fan/IManager.cs b/Ryujinx.HLE/HOS/Services/Ptm/Fan/IManager.cs
new file mode 100644
index 00000000..e2fe2235
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Fan/IManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Fan
+{
+ [Service("fan")]
+ class IManager : IpcService
+ {
+ public IManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Fgm/IDebugger.cs b/Ryujinx.HLE/HOS/Services/Ptm/Fgm/IDebugger.cs
new file mode 100644
index 00000000..a93f5283
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Fgm/IDebugger.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Fgm
+{
+ [Service("fgm:dbg")] // 9.0.0+
+ class IDebugger : IpcService
+ {
+ public IDebugger(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Fgm/ISession.cs b/Ryujinx.HLE/HOS/Services/Ptm/Fgm/ISession.cs
new file mode 100644
index 00000000..0e3f965b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Fgm/ISession.cs
@@ -0,0 +1,10 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Fgm
+{
+ [Service("fgm")] // 9.0.0+
+ [Service("fgm:0")] // 9.0.0+
+ [Service("fgm:9")] // 9.0.0+
+ class ISession : IpcService
+ {
+ public ISession(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Pcm/IManager.cs b/Ryujinx.HLE/HOS/Services/Ptm/Pcm/IManager.cs
new file mode 100644
index 00000000..0bec45fa
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Pcm/IManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Pcm
+{
+ [Service("pcm")]
+ class IManager : IpcService
+ {
+ public IManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs b/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs
index 8dab66a1..9511e79d 100644
--- a/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs
@@ -1,17 +1,10 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Psm
+namespace Ryujinx.HLE.HOS.Services.Ptm.Psm
{
[Service("psm")]
class IPsmServer : IpcService
{
- enum ChargerType
- {
- None,
- ChargerOrDock,
- UsbC
- }
-
public IPsmServer(ServiceCtx context) { }
[Command(0)]
diff --git a/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs b/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs
index db4e0b75..e41d6c37 100644
--- a/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs
@@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
-namespace Ryujinx.HLE.HOS.Services.Psm
+namespace Ryujinx.HLE.HOS.Services.Ptm.Psm
{
class IPsmSession : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Psm/Types/ChargerType.cs b/Ryujinx.HLE/HOS/Services/Ptm/Psm/Types/ChargerType.cs
new file mode 100644
index 00000000..3e239711
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Psm/Types/ChargerType.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Psm
+{
+ enum ChargerType
+ {
+ None,
+ ChargerOrDock,
+ UsbC
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Tc/IManager.cs b/Ryujinx.HLE/HOS/Services/Ptm/Tc/IManager.cs
new file mode 100644
index 00000000..1daa4f5e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Tc/IManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Tc
+{
+ [Service("tc")]
+ class IManager : IpcService
+ {
+ public IManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ptm/Ts/IMeasurementServer.cs b/Ryujinx.HLE/HOS/Services/Ptm/Ts/IMeasurementServer.cs
new file mode 100644
index 00000000..f3b37d67
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Ptm/Ts/IMeasurementServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Ptm.Ts
+{
+ [Service("ts")]
+ class IMeasurementServer : IpcService
+ {
+ public IMeasurementServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sdb/Avm/IAvmService.cs b/Ryujinx.HLE/HOS/Services/Sdb/Avm/IAvmService.cs
new file mode 100644
index 00000000..d65c8bba
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Avm/IAvmService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Tcap
+{
+ [Service("avm")] // 6.0.0+
+ class IAvmService : IpcService
+ {
+ public IAvmService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sdb/Mii/IImageDatabaseService.cs b/Ryujinx.HLE/HOS/Services/Sdb/Mii/IImageDatabaseService.cs
new file mode 100644
index 00000000..b084714c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Mii/IImageDatabaseService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sdb.Mii
+{
+ [Service("miiimg")] // 5.0.0+
+ class IImageDatabaseService : IpcService
+ {
+ public IImageDatabaseService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sdb/Mii/IStaticService.cs b/Ryujinx.HLE/HOS/Services/Sdb/Mii/IStaticService.cs
new file mode 100644
index 00000000..6c156d94
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Mii/IStaticService.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Sdb.Mii
+{
+ [Service("mii:e")]
+ [Service("mii:u")]
+ class IStaticService : IpcService
+ {
+ public IStaticService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sdb/Pdm/INotifyService.cs b/Ryujinx.HLE/HOS/Services/Sdb/Pdm/INotifyService.cs
new file mode 100644
index 00000000..5247a238
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Pdm/INotifyService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sdb.Pdm
+{
+ [Service("pdm:ntfy")]
+ class INotifyService : IpcService
+ {
+ public INotifyService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs b/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs
new file mode 100644
index 00000000..61b26b8c
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sdb.Pdm
+{
+ [Service("pdm:qry")]
+ class IQueryService : IpcService
+ {
+ public IQueryService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs b/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs
index a5e3e52a..4560d954 100644
--- a/Ryujinx.HLE/HOS/Services/Pl/ISharedFontManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs
@@ -3,9 +3,10 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using System;
-namespace Ryujinx.HLE.HOS.Services.Pl
+namespace Ryujinx.HLE.HOS.Services.Sdb.Pl
{
[Service("pl:u")]
+ [Service("pl:s")] // 9.0.0+
class ISharedFontManager : IpcService
{
public ISharedFontManager(ServiceCtx context) { }
diff --git a/Ryujinx.HLE/HOS/Services/Settings/IFactorySettingsServer.cs b/Ryujinx.HLE/HOS/Services/Settings/IFactorySettingsServer.cs
new file mode 100644
index 00000000..4dd344f8
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Settings/IFactorySettingsServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Am.Tcap
+{
+ [Service("set:cal")]
+ class IFactorySettingsServer : IpcService
+ {
+ public IFactorySettingsServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Settings/IFirmwareDebugSettingsServer.cs b/Ryujinx.HLE/HOS/Services/Settings/IFirmwareDebugSettingsServer.cs
new file mode 100644
index 00000000..3b7e1af2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Settings/IFirmwareDebugSettingsServer.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Settings
+{
+ [Service("set:fd")]
+ class IFirmwareDebugSettingsServer : IpcService
+ {
+ public IFirmwareDebugSettingsServer(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs b/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs
index 6fb923cc..2d2512df 100644
--- a/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs
@@ -2,7 +2,7 @@ using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.SystemState;
using System;
-namespace Ryujinx.HLE.HOS.Services.Set
+namespace Ryujinx.HLE.HOS.Services.Settings
{
[Service("set")]
class ISettingsServer : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs b/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs
index 7a2f0672..7af78dbf 100644
--- a/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs
@@ -7,7 +7,7 @@ using System;
using System.IO;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Set
+namespace Ryujinx.HLE.HOS.Services.Settings
{
[Service("set:sys")]
class ISystemSettingsServer : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs b/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs
index 46350743..b679005e 100644
--- a/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs
+++ b/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
-namespace Ryujinx.HLE.HOS.Services.Set
+namespace Ryujinx.HLE.HOS.Services.Settings
{
static class NxSettings
{
diff --git a/Ryujinx.HLE/HOS/Services/Set/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Settings/ResultCode.cs
index 60d3e690..6d4d578f 100644
--- a/Ryujinx.HLE/HOS/Services/Set/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Settings/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Set
+namespace Ryujinx.HLE.HOS.Services.Settings
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/Sm/IManagerInterface.cs b/Ryujinx.HLE/HOS/Services/Sm/IManagerInterface.cs
new file mode 100644
index 00000000..f867f23a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sm/IManagerInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sm
+{
+ [Service("sm:m")]
+ class IManagerInterface : IpcService
+ {
+ public IManagerInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs
index 03399372..3a02e06c 100644
--- a/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs
@@ -5,7 +5,7 @@ using System.Net;
using System.Net.Sockets;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Bsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
[Service("bsd:s", true)]
[Service("bsd:u", false)]
diff --git a/Ryujinx.HLE/HOS/Services/Sockets/Bsd/ServerInterface.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/ServerInterface.cs
new file mode 100644
index 00000000..798fc015
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/ServerInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
+{
+ [Service("bsdcfg")]
+ class ServerInterface : IpcService
+ {
+ public ServerInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Bsd/BsdIoctl.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdIoctl.cs
index 76713b25..421a255c 100644
--- a/Ryujinx.HLE/HOS/Services/Bsd/BsdIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdIoctl.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Bsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
enum BsdIoctl
{
diff --git a/Ryujinx.HLE/HOS/Services/Bsd/BsdSocket.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdSocket.cs
index 2786da13..2d5bf429 100644
--- a/Ryujinx.HLE/HOS/Services/Bsd/BsdSocket.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/BsdSocket.cs
@@ -1,6 +1,6 @@
using System.Net.Sockets;
-namespace Ryujinx.HLE.HOS.Services.Bsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
class BsdSocket
{
diff --git a/Ryujinx.HLE/HOS/Services/Bsd/PollEvent.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/PollEvent.cs
index b1e6ccc7..ff47a4c7 100644
--- a/Ryujinx.HLE/HOS/Services/Bsd/PollEvent.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Types/PollEvent.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Bsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
class PollEvent
{
diff --git a/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterface.cs b/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterface.cs
new file mode 100644
index 00000000..f5877697
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterface.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sockets.Ethc
+{
+ [Service("ethc:c")]
+ class IEthInterface : IpcService
+ {
+ public IEthInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterfaceGroup.cs b/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterfaceGroup.cs
new file mode 100644
index 00000000..9832e448
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Ethc/IEthInterfaceGroup.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Sockets.Ethc
+{
+ [Service("ethc:i")]
+ class IEthInterfaceGroup : IpcService
+ {
+ public IEthInterfaceGroup(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nsd/IManager.cs b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs
index 5dac7cf4..277bc374 100644
--- a/Ryujinx.HLE/HOS/Services/Nsd/IManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs
@@ -1,9 +1,10 @@
using Ryujinx.Common.Logging;
using Ryujinx.HLE.Exceptions;
-using Ryujinx.HLE.HOS.Services.Set;
+using Ryujinx.HLE.HOS.Services.Settings;
+using Ryujinx.HLE.HOS.Services.Sockets.Nsd.Manager;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Nsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd
{
[Service("nsd:a")] // Max sessions: 5
[Service("nsd:u")] // Max sessions: 20
diff --git a/Ryujinx.HLE/HOS/Services/Nsd/FqdnResolver.cs b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs
index 10b6433a..aaab7b3b 100644
--- a/Ryujinx.HLE/HOS/Services/Nsd/FqdnResolver.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs
@@ -1,6 +1,6 @@
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Nsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd.Manager
{
class FqdnResolver
{
diff --git a/Ryujinx.HLE/HOS/Services/Nsd/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/ResultCode.cs
index 27584eb1..0e636f9a 100644
--- a/Ryujinx.HLE/HOS/Services/Nsd/ResultCode.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/ResultCode.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd
{
enum ResultCode
{
diff --git a/Ryujinx.HLE/HOS/Services/Nsd/NsdSettings.cs b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Types/NsdSettings.cs
index 42739df0..2b31cb1d 100644
--- a/Ryujinx.HLE/HOS/Services/Nsd/NsdSettings.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Types/NsdSettings.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Nsd
+namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd
{
class NsdSettings
{
diff --git a/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs
index 0e42ee3b..1cf2aa1c 100644
--- a/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs
@@ -5,7 +5,7 @@ using System.Net;
using System.Net.Sockets;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Sfdnsres
+namespace Ryujinx.HLE.HOS.Services.Sockets.Sfdnsres
{
[Service("sfdnsres")]
class IResolver : IpcService
diff --git a/Ryujinx.HLE/HOS/Services/Sfdnsres/GaiError.cs b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/GaiError.cs
index dc724b4d..f9f28b44 100644
--- a/Ryujinx.HLE/HOS/Services/Sfdnsres/GaiError.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/GaiError.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Sfdnsres
+namespace Ryujinx.HLE.HOS.Services.Sockets.Sfdnsres
{
enum GaiError
{
diff --git a/Ryujinx.HLE/HOS/Services/Sfdnsres/NetDBError.cs b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/NetDBError.cs
index 95ef7419..3c04c049 100644
--- a/Ryujinx.HLE/HOS/Services/Sfdnsres/NetDBError.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/Types/NetDBError.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Sfdnsres
+namespace Ryujinx.HLE.HOS.Services.Sockets.Sfdnsres
{
enum NetDbError
{
diff --git a/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs b/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs
new file mode 100644
index 00000000..b4aebc7e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs
@@ -0,0 +1,13 @@
+namespace Ryujinx.HLE.HOS.Services.Sm
+{
+ [Service("spl:")]
+ [Service("spl:es")]
+ [Service("spl:fs")]
+ [Service("spl:manu")]
+ [Service("spl:mig")]
+ [Service("spl:ssl")]
+ class IGeneralInterface : IpcService
+ {
+ public IGeneralInterface(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Srepo/ISrepoService.cs b/Ryujinx.HLE/HOS/Services/Srepo/ISrepoService.cs
new file mode 100644
index 00000000..167dea67
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Srepo/ISrepoService.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Srepo
+{
+ [Service("srepo:a")] // 5.0.0+
+ [Service("srepo:u")] // 5.0.0+
+ class ISrepoService : IpcService
+ {
+ public ISrepoService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs b/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
index 43e4bc7f..2f4b93ca 100644
--- a/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
+++ b/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
@@ -1,4 +1,5 @@
using Ryujinx.Common.Logging;
+using Ryujinx.HLE.HOS.Services.Ssl.SslService;
namespace Ryujinx.HLE.HOS.Services.Ssl
{
diff --git a/Ryujinx.HLE/HOS/Services/Ssl/ISslContext.cs b/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs
index e70c2421..ef788175 100644
--- a/Ryujinx.HLE/HOS/Services/Ssl/ISslContext.cs
+++ b/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.HLE.HOS.Services.Ssl
+namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
{
class ISslContext : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/ClockTypes.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/ClockTypes.cs
deleted file mode 100644
index c70819c0..00000000
--- a/Ryujinx.HLE/HOS/Services/Time/Clock/ClockTypes.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-using Ryujinx.HLE.Utilities;
-using System;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.HLE.HOS.Services.Time.Clock
-{
- [StructLayout(LayoutKind.Sequential)]
- struct TimeSpanType
- {
- private const long NanoSecondsPerSecond = 1000000000;
-
- public long NanoSeconds;
-
- public TimeSpanType(long nanoSeconds)
- {
- NanoSeconds = nanoSeconds;
- }
-
- public long ToSeconds()
- {
- return NanoSeconds / NanoSecondsPerSecond;
- }
-
- public static TimeSpanType FromSeconds(long seconds)
- {
- return new TimeSpanType(seconds * NanoSecondsPerSecond);
- }
-
- public static TimeSpanType FromTicks(ulong ticks, ulong frequency)
- {
- return FromSeconds((long)ticks / (long)frequency);
- }
- }
-
- [StructLayout(LayoutKind.Sequential)]
- struct SteadyClockTimePoint
- {
- public long TimePoint;
- public UInt128 ClockSourceId;
-
- public ResultCode GetSpanBetween(SteadyClockTimePoint other, out long outSpan)
- {
- outSpan = 0;
-
- if (ClockSourceId == other.ClockSourceId)
- {
- try
- {
- outSpan = checked(other.TimePoint - TimePoint);
-
- return ResultCode.Success;
- }
- catch (OverflowException)
- {
- return ResultCode.Overflow;
- }
- }
-
- return ResultCode.Overflow;
- }
- }
-
- [StructLayout(LayoutKind.Sequential)]
- struct SystemClockContext
- {
- public long Offset;
- public SteadyClockTimePoint SteadyTimePoint;
- }
-
- [StructLayout(LayoutKind.Sequential, Size = 0xD0)]
- struct ClockSnapshot
- {
- public SystemClockContext UserContext;
- public SystemClockContext NetworkContext;
- public long UserTime;
- public long NetworkTime;
- public CalendarTime UserCalendarTime;
- public CalendarTime NetworkCalendarTime;
- public CalendarAdditionalInfo UserCalendarAdditionalTime;
- public CalendarAdditionalInfo NetworkCalendarAdditionalTime;
- public SteadyClockTimePoint SteadyClockTimePoint;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x24)]
- public char[] LocationName;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsAutomaticCorrectionEnabled;
- public byte Type;
- public ushort Unknown;
-
- public static ResultCode GetCurrentTime(out long currentTime, SteadyClockTimePoint steadyClockTimePoint, SystemClockContext context)
- {
- currentTime = 0;
-
- if (steadyClockTimePoint.ClockSourceId == context.SteadyTimePoint.ClockSourceId)
- {
- currentTime = steadyClockTimePoint.TimePoint + context.Offset;
-
- return ResultCode.Success;
- }
-
- return ResultCode.TimeMismatch;
- }
- }
-}
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs
index 5037fb60..cc21dd9a 100644
--- a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs
@@ -4,7 +4,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock
{
class StandardNetworkSystemClockCore : SystemClockCore
{
- private TimeSpanType _standardNetworkClockSufficientAccuracy;
+ private TimeSpanType _standardNetworkClockSufficientAccuracy;
private static StandardNetworkSystemClockCore _instance;
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs
index 5b2d6c84..1bc5bee7 100644
--- a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs
@@ -1,5 +1,5 @@
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Bpc;
+using Ryujinx.HLE.HOS.Services.Pcv.Bpc;
namespace Ryujinx.HLE.HOS.Services.Time.Clock
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs
index 6cd4c80b..e5baba25 100644
--- a/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs
@@ -1,5 +1,4 @@
-using Ryujinx.Common;
-using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.HLE.HOS.Kernel.Threading;
namespace Ryujinx.HLE.HOS.Services.Time.Clock
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/ClockSnapshot.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/ClockSnapshot.cs
new file mode 100644
index 00000000..df1f151f
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/ClockSnapshot.cs
@@ -0,0 +1,41 @@
+using Ryujinx.HLE.HOS.Services.Time.TimeZone;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.Clock
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0xD0)]
+ struct ClockSnapshot
+ {
+ public SystemClockContext UserContext;
+ public SystemClockContext NetworkContext;
+ public long UserTime;
+ public long NetworkTime;
+ public CalendarTime UserCalendarTime;
+ public CalendarTime NetworkCalendarTime;
+ public CalendarAdditionalInfo UserCalendarAdditionalTime;
+ public CalendarAdditionalInfo NetworkCalendarAdditionalTime;
+ public SteadyClockTimePoint SteadyClockTimePoint;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x24)]
+ public char[] LocationName;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsAutomaticCorrectionEnabled;
+ public byte Type;
+ public ushort Unknown;
+
+ public static ResultCode GetCurrentTime(out long currentTime, SteadyClockTimePoint steadyClockTimePoint, SystemClockContext context)
+ {
+ currentTime = 0;
+
+ if (steadyClockTimePoint.ClockSourceId == context.SteadyTimePoint.ClockSourceId)
+ {
+ currentTime = steadyClockTimePoint.TimePoint + context.Offset;
+
+ return ResultCode.Success;
+ }
+
+ return ResultCode.TimeMismatch;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SteadyClockTimePoint.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SteadyClockTimePoint.cs
new file mode 100644
index 00000000..0055b5ea
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SteadyClockTimePoint.cs
@@ -0,0 +1,34 @@
+using Ryujinx.HLE.Utilities;
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.Clock
+{
+ [StructLayout(LayoutKind.Sequential)]
+ struct SteadyClockTimePoint
+ {
+ public long TimePoint;
+ public UInt128 ClockSourceId;
+
+ public ResultCode GetSpanBetween(SteadyClockTimePoint other, out long outSpan)
+ {
+ outSpan = 0;
+
+ if (ClockSourceId == other.ClockSourceId)
+ {
+ try
+ {
+ outSpan = checked(other.TimePoint - TimePoint);
+
+ return ResultCode.Success;
+ }
+ catch (OverflowException)
+ {
+ return ResultCode.Overflow;
+ }
+ }
+
+ return ResultCode.Overflow;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SystemClockContext.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SystemClockContext.cs
new file mode 100644
index 00000000..38e10480
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/SystemClockContext.cs
@@ -0,0 +1,11 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.Clock
+{
+ [StructLayout(LayoutKind.Sequential)]
+ struct SystemClockContext
+ {
+ public long Offset;
+ public SteadyClockTimePoint SteadyTimePoint;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs
new file mode 100644
index 00000000..93579709
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs
@@ -0,0 +1,32 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.Clock
+{
+ [StructLayout(LayoutKind.Sequential)]
+ struct TimeSpanType
+ {
+ private const long NanoSecondsPerSecond = 1000000000;
+
+ public long NanoSeconds;
+
+ public TimeSpanType(long nanoSeconds)
+ {
+ NanoSeconds = nanoSeconds;
+ }
+
+ public long ToSeconds()
+ {
+ return NanoSeconds / NanoSecondsPerSecond;
+ }
+
+ public static TimeSpanType FromSeconds(long seconds)
+ {
+ return new TimeSpanType(seconds * NanoSecondsPerSecond);
+ }
+
+ public static TimeSpanType FromTicks(ulong ticks, ulong frequency)
+ {
+ return FromSeconds((long)ticks / (long)frequency);
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/IAlarmService.cs b/Ryujinx.HLE/HOS/Services/Time/IAlarmService.cs
new file mode 100644
index 00000000..092fa8ce
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/IAlarmService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Time
+{
+ [Service("time:al")] // 9.0.0+
+ class IAlarmService : IpcService
+ {
+ public IAlarmService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/IPowerStateRequestHandler.cs b/Ryujinx.HLE/HOS/Services/Time/IPowerStateRequestHandler.cs
new file mode 100644
index 00000000..cb10da47
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/IPowerStateRequestHandler.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Time
+{
+ [Service("time:m")] // 9.0.0+
+ class IPowerStateRequestHandler : IpcService
+ {
+ public IPowerStateRequestHandler(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs b/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs
index d9c5b4f2..0cfdebcf 100644
--- a/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs
@@ -3,6 +3,7 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Threading;
using Ryujinx.HLE.HOS.Services.Time.Clock;
+using Ryujinx.HLE.HOS.Services.Time.StaticService;
using Ryujinx.HLE.HOS.Services.Time.TimeZone;
using System;
using System.Diagnostics;
@@ -14,6 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
[Service("time:a", TimePermissions.Applet)]
[Service("time:s", TimePermissions.System)]
[Service("time:u", TimePermissions.User)]
+ [Service("time:p", TimePermissions.System)] // 9.0.0+ - TODO: Fix the permission.
class IStaticService : IpcService
{
private TimePermissions _permissions;
diff --git a/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs b/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs
new file mode 100644
index 00000000..514e901e
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Time
+{
+ [Service("time:su")] // 9.0.0+
+ class ITimeServiceManager : IpcService
+ {
+ public ITimeServiceManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/ITimeZoneServiceTypes.cs b/Ryujinx.HLE/HOS/Services/Time/ITimeZoneServiceTypes.cs
deleted file mode 100644
index 9a83b82b..00000000
--- a/Ryujinx.HLE/HOS/Services/Time/ITimeZoneServiceTypes.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.HLE.HOS.Services.Time
-{
- [StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 4)]
- struct TimeTypeInfo
- {
- public int GmtOffset;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsDaySavingTime;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
- char[] Padding1;
-
- public int AbbreviationListIndex;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsStandardTimeDaylight;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsGMT;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
- char[] Padding2;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 0x4000, CharSet = CharSet.Ansi)]
- struct TimeZoneRule
- {
- public const int TzMaxTypes = 128;
- public const int TzMaxChars = 50;
- public const int TzMaxLeaps = 50;
- public const int TzMaxTimes = 1000;
- public const int TzNameMax = 255;
- public const int TzCharsArraySize = 2 * (TzNameMax + 1);
-
- public int TimeCount;
- public int TypeCount;
- public int CharCount;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool GoBack;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool GoAhead;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTimes)]
- public long[] Ats;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTimes)]
- public byte[] Types;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTypes)]
- public TimeTypeInfo[] Ttis;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzCharsArraySize)]
- public char[] Chars;
-
- public int DefaultType;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x2C)]
- struct TzifHeader
- {
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public char[] Magic;
-
- public char Version;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)]
- public byte[] Reserved;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] TtisGMTCount;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] TtisSTDCount;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] LeapCount;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] TimeCount;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] TypeCount;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] CharCount;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x8)]
- struct CalendarTime
- {
- public short Year;
- public sbyte Month;
- public sbyte Day;
- public sbyte Hour;
- public sbyte Minute;
- public sbyte Second;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x18, CharSet = CharSet.Ansi)]
- struct CalendarAdditionalInfo
- {
- public uint DayOfWeek;
- public uint DayOfYear;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
- public char[] TimezoneName;
-
- [MarshalAs(UnmanagedType.I1)]
- public bool IsDaySavingTime;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
- char[] Padding;
-
- public int GmtOffset;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x20, CharSet = CharSet.Ansi)]
- struct CalendarInfo
- {
- public CalendarTime Time;
- public CalendarAdditionalInfo AdditionalInfo;
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/ISteadyClock.cs b/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs
index 7e3edcef..31f119df 100644
--- a/Ryujinx.HLE/HOS/Services/Time/ISteadyClock.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs
@@ -1,7 +1,7 @@
using Ryujinx.Common;
using Ryujinx.HLE.HOS.Services.Time.Clock;
-namespace Ryujinx.HLE.HOS.Services.Time
+namespace Ryujinx.HLE.HOS.Services.Time.StaticService
{
class ISteadyClock : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/ISystemClock.cs b/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs
index d496dcdc..0d866177 100644
--- a/Ryujinx.HLE/HOS/Services/Time/ISystemClock.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs
@@ -1,7 +1,7 @@
using Ryujinx.Common;
using Ryujinx.HLE.HOS.Services.Time.Clock;
-namespace Ryujinx.HLE.HOS.Services.Time
+namespace Ryujinx.HLE.HOS.Services.Time.StaticService
{
class ISystemClock : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/ITimeZoneService.cs b/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneService.cs
index b820de38..c65107df 100644
--- a/Ryujinx.HLE/HOS/Services/Time/ITimeZoneService.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneService.cs
@@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Time.TimeZone;
using System;
using System.Text;
-namespace Ryujinx.HLE.HOS.Services.Time
+namespace Ryujinx.HLE.HOS.Services.Time.StaticService
{
class ITimeZoneService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZone.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZone.cs
index 4b482689..3a98013e 100644
--- a/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZone.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZone.cs
@@ -1,10 +1,11 @@
-using System;
+using Ryujinx.Common;
+using Ryujinx.HLE.Utilities;
+using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
-using Ryujinx.Common;
-using Ryujinx.HLE.Utilities;
-using static Ryujinx.HLE.HOS.Services.Time.TimeZoneRule;
+
+using static Ryujinx.HLE.HOS.Services.Time.TimeZone.TimeZoneRule;
namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
{
@@ -238,9 +239,8 @@ namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
{
seconds = 0;
- int num;
- bool isValid = GetNum(name, ref namePosition, out num, 0, HoursPerDays * DaysPerWekk - 1);
+ bool isValid = GetNum(name, ref namePosition, out int num, 0, HoursPerDays * DaysPerWekk - 1);
if (!isValid)
{
return false;
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneManager.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneManager.cs
index cf27639b..2497f6a3 100644
--- a/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneManager.cs
@@ -1,15 +1,15 @@
-using LibHac.Fs.NcaUtils;
+using LibHac.Fs;
+using LibHac.Fs.NcaUtils;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.FileSystem;
using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
-using LibHac.Fs;
using System.IO;
-using System.Collections.Generic;
-using TimeZoneConverter.Posix;
using TimeZoneConverter;
+using TimeZoneConverter.Posix;
-using static Ryujinx.HLE.HOS.Services.Time.TimeZoneRule;
+using static Ryujinx.HLE.HOS.Services.Time.TimeZone.TimeZoneRule;
namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
{
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarAdditionalInfo.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarAdditionalInfo.cs
new file mode 100644
index 00000000..ef9b87e7
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarAdditionalInfo.cs
@@ -0,0 +1,22 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x18, CharSet = CharSet.Ansi)]
+ struct CalendarAdditionalInfo
+ {
+ public uint DayOfWeek;
+ public uint DayOfYear;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
+ public char[] TimezoneName;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsDaySavingTime;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
+ public char[] Padding;
+
+ public int GmtOffset;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarInfo.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarInfo.cs
new file mode 100644
index 00000000..68e6245b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarInfo.cs
@@ -0,0 +1,11 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x20, CharSet = CharSet.Ansi)]
+ struct CalendarInfo
+ {
+ public CalendarTime Time;
+ public CalendarAdditionalInfo AdditionalInfo;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarTime.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarTime.cs
new file mode 100644
index 00000000..d594223d
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/CalendarTime.cs
@@ -0,0 +1,15 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x8)]
+ struct CalendarTime
+ {
+ public short Year;
+ public sbyte Month;
+ public sbyte Day;
+ public sbyte Hour;
+ public sbyte Minute;
+ public sbyte Second;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeTypeInfo.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeTypeInfo.cs
new file mode 100644
index 00000000..399e0700
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeTypeInfo.cs
@@ -0,0 +1,27 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 4)]
+ struct TimeTypeInfo
+ {
+ public int GmtOffset;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsDaySavingTime;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
+ public char[] Padding1;
+
+ public int AbbreviationListIndex;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsStandardTimeDaylight;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsGMT;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
+ public char[] Padding2;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeZoneRule.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeZoneRule.cs
new file mode 100644
index 00000000..1af7a81a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TimeZoneRule.cs
@@ -0,0 +1,39 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 0x4000, CharSet = CharSet.Ansi)]
+ struct TimeZoneRule
+ {
+ public const int TzMaxTypes = 128;
+ public const int TzMaxChars = 50;
+ public const int TzMaxLeaps = 50;
+ public const int TzMaxTimes = 1000;
+ public const int TzNameMax = 255;
+ public const int TzCharsArraySize = 2 * (TzNameMax + 1);
+
+ public int TimeCount;
+ public int TypeCount;
+ public int CharCount;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool GoBack;
+
+ [MarshalAs(UnmanagedType.I1)]
+ public bool GoAhead;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTimes)]
+ public long[] Ats;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTimes)]
+ public byte[] Types;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzMaxTypes)]
+ public TimeTypeInfo[] Ttis;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = TzCharsArraySize)]
+ public char[] Chars;
+
+ public int DefaultType;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TzifHeader.cs b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TzifHeader.cs
new file mode 100644
index 00000000..1a033c33
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Time/TimeZone/Types/TzifHeader.cs
@@ -0,0 +1,34 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 0x4, Size = 0x2C)]
+ struct TzifHeader
+ {
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public char[] Magic;
+
+ public char Version;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)]
+ public byte[] Reserved;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] TtisGMTCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] TtisSTDCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] LeapCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] TimeCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] TypeCount;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+ public byte[] CharCount;
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Time/TimePermissions.cs b/Ryujinx.HLE/HOS/Services/Time/Types/TimePermissions.cs
index 823c8288..823c8288 100644
--- a/Ryujinx.HLE/HOS/Services/Time/TimePermissions.cs
+++ b/Ryujinx.HLE/HOS/Services/Time/Types/TimePermissions.cs
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IClientRootSession.cs b/Ryujinx.HLE/HOS/Services/Usb/IClientRootSession.cs
new file mode 100644
index 00000000..56b12af0
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IClientRootSession.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:hs")]
+ [Service("usb:hs:a")] // 7.0.0+
+ class IClientRootSession : IpcService
+ {
+ public IClientRootSession(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IDsService.cs b/Ryujinx.HLE/HOS/Services/Usb/IDsService.cs
new file mode 100644
index 00000000..4dbb6fc1
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IDsService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:ds")]
+ class IDsService : IpcService
+ {
+ public IDsService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IPdCradleManager.cs b/Ryujinx.HLE/HOS/Services/Usb/IPdCradleManager.cs
new file mode 100644
index 00000000..cecdbc31
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IPdCradleManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:pd:c")]
+ class IPdCradleManager : IpcService
+ {
+ public IPdCradleManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IPdManager.cs b/Ryujinx.HLE/HOS/Services/Usb/IPdManager.cs
new file mode 100644
index 00000000..1fb574d2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IPdManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:pd")]
+ class IPdManager : IpcService
+ {
+ public IPdManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IPmService.cs b/Ryujinx.HLE/HOS/Services/Usb/IPmService.cs
new file mode 100644
index 00000000..38beee07
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IPmService.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:pm")]
+ class IPmService : IpcService
+ {
+ public IPmService(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IUnknown1.cs b/Ryujinx.HLE/HOS/Services/Usb/IUnknown1.cs
new file mode 100644
index 00000000..0981e4ff
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IUnknown1.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:qdb")] // 7.0.0+
+ class IUnknown1 : IpcService
+ {
+ public IUnknown1(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Usb/IUnknown2.cs b/Ryujinx.HLE/HOS/Services/Usb/IUnknown2.cs
new file mode 100644
index 00000000..563696bb
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Usb/IUnknown2.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Usb
+{
+ [Service("usb:obsv")] // 8.0.0+
+ class IUnknown2 : IpcService
+ {
+ public IUnknown2(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/GbpBuffer.cs b/Ryujinx.HLE/HOS/Services/Vi/GbpBuffer.cs
deleted file mode 100644
index 75b543b8..00000000
--- a/Ryujinx.HLE/HOS/Services/Vi/GbpBuffer.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-using Ryujinx.Common;
-using System;
-using System.IO;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.HLE.HOS.Services.Android
-{
- [StructLayout(LayoutKind.Sequential, Size = 0x28)]
- struct GraphicBufferHeader
- {
- public int Magic;
- public int Width;
- public int Height;
- public int Stride;
- public int Format;
- public int Usage;
-
- public int Pid;
- public int RefCount;
-
- public int FdsCount;
- public int IntsCount;
- }
-
- [StructLayout(LayoutKind.Explicit, Size = 0x58)]
- struct NvGraphicBufferSurface
- {
- [FieldOffset(0)]
- public uint Width;
-
- [FieldOffset(0x4)]
- public uint Height;
-
- [FieldOffset(0x8)]
- public ColorFormat ColorFormat;
-
- [FieldOffset(0x10)]
- public int Layout;
-
- [FieldOffset(0x14)]
- public int Pitch;
-
- [FieldOffset(0x18)]
- public int NvMapHandle;
-
- [FieldOffset(0x1C)]
- public int Offset;
-
- [FieldOffset(0x20)]
- public int Kind;
-
- [FieldOffset(0x24)]
- public int BlockHeightLog2;
-
- [FieldOffset(0x28)]
- public int ScanFormat;
-
- [FieldOffset(0x30)]
- public long Flags;
-
- [FieldOffset(0x38)]
- public long Size;
- }
-
- [StructLayout(LayoutKind.Explicit)]
- struct NvGraphicBufferSurfaceArray
- {
- [FieldOffset(0x0)]
- private NvGraphicBufferSurface Surface0;
-
- [FieldOffset(0x58)]
- private NvGraphicBufferSurface Surface1;
-
- [FieldOffset(0xb0)]
- private NvGraphicBufferSurface Surface2;
-
- public NvGraphicBufferSurface this[int index]
- {
- get
- {
- if (index == 0)
- {
- return Surface0;
- }
- else if (index == 1)
- {
- return Surface1;
- }
- else if (index == 2)
- {
- return Surface2;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
- }
-
- [StructLayout(LayoutKind.Explicit, Size = 0x144)]
- struct NvGraphicBuffer
- {
- [FieldOffset(0x4)]
- public int NvMapId;
-
- [FieldOffset(0xC)]
- public int Magic;
-
- [FieldOffset(0x10)]
- public int Pid;
-
- [FieldOffset(0x14)]
- public int Type;
-
- [FieldOffset(0x18)]
- public int Usage;
-
- [FieldOffset(0x1C)]
- public int PixelFormat;
-
- [FieldOffset(0x20)]
- public int ExternalPixelFormat;
-
- [FieldOffset(0x24)]
- public int Stride;
-
- [FieldOffset(0x28)]
- public int FrameBufferSize;
-
- [FieldOffset(0x2C)]
- public int PlanesCount;
-
- [FieldOffset(0x34)]
- public NvGraphicBufferSurfaceArray Surfaces;
- }
-
- struct GbpBuffer
- {
- public GraphicBufferHeader Header { get; private set; }
- public NvGraphicBuffer Buffer { get; private set; }
-
- public int Size => Marshal.SizeOf<NvGraphicBuffer>() + Marshal.SizeOf<GraphicBufferHeader>();
-
- public GbpBuffer(BinaryReader reader)
- {
- Header = reader.ReadStruct<GraphicBufferHeader>();
-
- // ignore fds
- // TODO: check if that is used in official implementation
- reader.BaseStream.Position += Header.FdsCount * 4;
-
- if (Header.IntsCount != 0x51)
- {
- throw new NotImplementedException($"Unexpected Graphic Buffer ints count (expected 0x51, found 0x{Header.IntsCount:x}");
- }
-
- Buffer = reader.ReadStruct<NvGraphicBuffer>();
- }
-
- public void Write(BinaryWriter writer)
- {
- writer.WriteStruct(Header);
- writer.WriteStruct(Buffer);
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs b/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs
index e0f71d0f..dbadd90b 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Vi.RootService;
+
namespace Ryujinx.HLE.HOS.Services.Vi
{
[Service("vi:u")]
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs b/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs
index feaf4612..31996ff1 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Vi.RootService;
+
namespace Ryujinx.HLE.HOS.Services.Vi
{
[Service("vi:m")]
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs b/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs
index 09d604c1..8d64e475 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs
@@ -1,3 +1,5 @@
+using Ryujinx.HLE.HOS.Services.Vi.RootService;
+
namespace Ryujinx.HLE.HOS.Services.Vi
{
[Service("vi:s")]
diff --git a/Ryujinx.HLE/HOS/Services/Vi/Display.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Display.cs
index 47c7b2ae..47c7b2ae 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/Display.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Display.cs
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IHOSBinderDriver.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IHOSBinderDriver.cs
index 4da0e2ff..3ac1c270 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IHOSBinderDriver.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IHOSBinderDriver.cs
@@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Kernel.Threading;
using Ryujinx.HLE.HOS.Services.Android;
using System;
-namespace Ryujinx.HLE.HOS.Services.Vi
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
{
class IHOSBinderDriver : IpcService, IDisposable
{
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs
index 3a64be15..24e73244 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Vi
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
{
class IManagerDisplayService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs
index dc0430f6..1e615bd2 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Logging;
-namespace Ryujinx.HLE.HOS.Services.Vi
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
{
class ISystemDisplayService : IpcService
{
diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/DestinationScalingMode.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/DestinationScalingMode.cs
new file mode 100644
index 00000000..cf459cb2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/DestinationScalingMode.cs
@@ -0,0 +1,11 @@
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
+{
+ enum DestinationScalingMode
+ {
+ Freeze,
+ ScaleToWindow,
+ ScaleAndCrop,
+ None,
+ PreserveAspectRatio
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/SourceScalingMode.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/SourceScalingMode.cs
new file mode 100644
index 00000000..ac8c3e02
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/Types/SourceScalingMode.cs
@@ -0,0 +1,11 @@
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
+{
+ enum SourceScalingMode
+ {
+ None,
+ Freeze,
+ ScaleToWindow,
+ ScaleAndCrop,
+ PreserveAspectRatio
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
index 15db6ff2..fba25054 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
@@ -1,13 +1,14 @@
using ARMeilleure.Memory;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
+using Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService;
using System;
using System.IO;
using System.Text;
using static Ryujinx.HLE.HOS.Services.Android.Parcel;
-namespace Ryujinx.HLE.HOS.Services.Vi
+namespace Ryujinx.HLE.HOS.Services.Vi.RootService
{
class IApplicationDisplayService : IpcService
{
@@ -183,9 +184,9 @@ namespace Ryujinx.HLE.HOS.Services.Vi
// ConvertScalingMode(unknown) -> unknown
public ResultCode ConvertScalingMode(ServiceCtx context)
{
- SrcScalingMode scalingMode = (SrcScalingMode)context.RequestData.ReadInt32();
+ SourceScalingMode scalingMode = (SourceScalingMode)context.RequestData.ReadInt32();
- DstScalingMode? convertedScalingMode = ConvertScalingMode(scalingMode);
+ DestinationScalingMode? convertedScalingMode = ConvertScalingMode(scalingMode);
if (!convertedScalingMode.HasValue)
{
@@ -193,8 +194,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
return ResultCode.InvalidArguments;
}
- if (scalingMode != SrcScalingMode.ScaleToWindow &&
- scalingMode != SrcScalingMode.PreserveAspectRatio)
+ if (scalingMode != SourceScalingMode.ScaleToWindow &&
+ scalingMode != SourceScalingMode.PreserveAspectRatio)
{
// Invalid scaling mode specified.
return ResultCode.InvalidScalingMode;
@@ -205,15 +206,15 @@ namespace Ryujinx.HLE.HOS.Services.Vi
return ResultCode.Success;
}
- private DstScalingMode? ConvertScalingMode(SrcScalingMode source)
+ private DestinationScalingMode? ConvertScalingMode(SourceScalingMode source)
{
switch (source)
{
- case SrcScalingMode.None: return DstScalingMode.None;
- case SrcScalingMode.Freeze: return DstScalingMode.Freeze;
- case SrcScalingMode.ScaleAndCrop: return DstScalingMode.ScaleAndCrop;
- case SrcScalingMode.ScaleToWindow: return DstScalingMode.ScaleToWindow;
- case SrcScalingMode.PreserveAspectRatio: return DstScalingMode.PreserveAspectRatio;
+ case SourceScalingMode.None: return DestinationScalingMode.None;
+ case SourceScalingMode.Freeze: return DestinationScalingMode.Freeze;
+ case SourceScalingMode.ScaleAndCrop: return DestinationScalingMode.ScaleAndCrop;
+ case SourceScalingMode.ScaleToWindow: return DestinationScalingMode.ScaleToWindow;
+ case SourceScalingMode.PreserveAspectRatio: return DestinationScalingMode.PreserveAspectRatio;
}
return null;
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ScalingMode.cs b/Ryujinx.HLE/HOS/Services/Vi/ScalingMode.cs
deleted file mode 100644
index 3adf1d33..00000000
--- a/Ryujinx.HLE/HOS/Services/Vi/ScalingMode.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Vi
-{
- enum SrcScalingMode
- {
- None = 0,
- Freeze = 1,
- ScaleToWindow = 2,
- ScaleAndCrop = 3,
- PreserveAspectRatio = 4
- }
-
- enum DstScalingMode
- {
- Freeze = 0,
- ScaleToWindow = 1,
- ScaleAndCrop = 2,
- None = 3,
- PreserveAspectRatio = 4
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/IInfraManager.cs b/Ryujinx.HLE/HOS/Services/Wlan/IInfraManager.cs
new file mode 100644
index 00000000..0416868a
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/IInfraManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:inf")]
+ class IInfraManager : IpcService
+ {
+ public IInfraManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetActionFrame.cs b/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetActionFrame.cs
new file mode 100644
index 00000000..6c2e20a4
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetActionFrame.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:lga")]
+ class ILocalGetActionFrame : IpcService
+ {
+ public ILocalGetActionFrame(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetFrame.cs b/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetFrame.cs
new file mode 100644
index 00000000..a224a192
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/ILocalGetFrame.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:lg")]
+ class ILocalGetFrame : IpcService
+ {
+ public ILocalGetFrame(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/ILocalManager.cs b/Ryujinx.HLE/HOS/Services/Wlan/ILocalManager.cs
new file mode 100644
index 00000000..4cc2c4b2
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/ILocalManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:lcl")]
+ class ILocalManager : IpcService
+ {
+ public ILocalManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/ISocketGetFrame.cs b/Ryujinx.HLE/HOS/Services/Wlan/ISocketGetFrame.cs
new file mode 100644
index 00000000..ab5b2193
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/ISocketGetFrame.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:sg")]
+ class ISocketGetFrame : IpcService
+ {
+ public ISocketGetFrame(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/ISocketManager.cs b/Ryujinx.HLE/HOS/Services/Wlan/ISocketManager.cs
new file mode 100644
index 00000000..afa1bede
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/ISocketManager.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:soc")]
+ class ISocketManager : IpcService
+ {
+ public ISocketManager(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Wlan/IUnknown1.cs b/Ryujinx.HLE/HOS/Services/Wlan/IUnknown1.cs
new file mode 100644
index 00000000..dfae18e5
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Wlan/IUnknown1.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Wlan
+{
+ [Service("wlan:dtc")] // 6.0.0+
+ class IUnknown1 : IpcService
+ {
+ public IUnknown1(ServiceCtx context) { }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/SystemState/AppletStateMgr.cs b/Ryujinx.HLE/HOS/SystemState/AppletStateMgr.cs
index 1fd27505..341f2a31 100644
--- a/Ryujinx.HLE/HOS/SystemState/AppletStateMgr.cs
+++ b/Ryujinx.HLE/HOS/SystemState/AppletStateMgr.cs
@@ -1,5 +1,5 @@
using Ryujinx.HLE.HOS.Kernel.Threading;
-using Ryujinx.HLE.HOS.Services.Am;
+using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
using System.Collections.Concurrent;
namespace Ryujinx.HLE.HOS.SystemState
diff --git a/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs b/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs
index 97fa1d74..2c3b188f 100644
--- a/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs
+++ b/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs
@@ -1,4 +1,4 @@
-using Ryujinx.HLE.HOS.Services.Acc;
+using Ryujinx.HLE.HOS.Services.Account.Acc;
using Ryujinx.HLE.Utilities;
using System;