Zephyron
d59eb9a1a8
Add Firmware 20.0.0-21.0.0 IPC support and stubs
...
This commit implements comprehensive firmware 20.0.0 through 21.0.0
support for Citron, including:
- Updated firmware version constants to 21.0.0 in api_version.h
- Updated HID service firmware version string to 21.0.0
- Added IPC command stubs for firmware 20.0.0+ in:
* ISystemSettingsServer (commands 263, 264, 282, 283, 289, 300, 301, 306, 307)
* IFirmwareDebugSettingsServer (command 24)
* IApplicationFunctions (command 330)
* IOlscServiceForSystemService (command 914)
* IRemoteStorageController (commands 28, 901)
* IService (migration) (commands 2250, 2260)
* IAudioController (command 10200)
- Created new service interfaces with proper stubs:
* IContinuousRecorder (grcsrv) - command 5 [20.2.0+] with 0x20-byte input
* IDownloadContext (news) - command 4 [20.0.0+]
* INotifyService (pdm:ntfy) - commands 100, 101 [20.0.0+] returning outinterfaces
- Added all new source files to CMakeLists.txt build system
- Fixed logging tag usage (Service_Migration instead of Service_MIG)
- Added required CMIF serialization headers for proper template instantiation
All stubs return success explicitly, eliminating the need for auto-stubbing.
All implementations follow Switchbrew documentation as closely as possible.
Based on Switchbrew documentation:
- https://switchbrew.org/wiki/21.0.0
- https://switchbrew.org/wiki/20.5.0
- https://switchbrew.org/wiki/20.4.0
- https://switchbrew.org/wiki/20.3.0
- https://switchbrew.org/wiki/20.2.0
- https://switchbrew.org/wiki/20.1.5
- https://switchbrew.org/wiki/20.1.1
- https://switchbrew.org/wiki/20.1.0
- https://switchbrew.org/wiki/20.0.1
- https://switchbrew.org/wiki/20.0.0
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-11 18:52:10 +10:00
Zephyron
eb4da7a78c
audio: Implement missing audio services and functions
...
New Services Added:
- auddev (IAudioSnoopManager) - Audio development/debugging service [6.0.0+]
* EnableDspUsageMeasurement/GetDspStatistics with firmware version switching
* DisableDspUsageMeasurement/GetAppletStateSummaries with firmware version switching
* SetDspStatisticsParameter/GetDspStatisticsParameter [20.0.0+]
* GetDspUsage [6.0.0-16.1.0]
- aud:a (IAudioSystemManagerForApplet) - System audio manager for applets [11.0.0+]
* Applet resource user ID registration/management
* Audio suspend/resume functionality
* Per-applet volume controls (output/input/record)
* GetAppletStateSummaries [18.0.0-19.0.1]
- aud:d (IAudioSystemManagerForDebugger) - System audio manager for debugging [11.0.0+]
* RequestSuspendAudioForDebug/RequestResumeAudioForDebug
Enhanced Existing Services:
- audctl (IAudioController) - Added missing [19.0.0+] functions:
* OverrideDefaultTargetForDebug [19.0.0-19.0.1]
* SetForceOverrideExternalDeviceNameForDebug [19.0.0+]
* ClearForceOverrideExternalDeviceNameForDebug [19.0.0+]
* Fixed GetSystemInformationForDebug buffer handling
- IAudioDevice - Added missing [17.0.0+] and [18.0.0+] functions:
* AcquireAudioInputDeviceNotification/ReleaseAudioInputDeviceNotification [17.0.0+]
* AcquireAudioOutputDeviceNotification/ReleaseAudioOutputDeviceNotification [17.0.0+]
* SetAudioDeviceOutputVolumeAutoTuneEnabled/IsAudioDeviceOutputVolumeAutoTuneEnabled [18.0.0+]
Technical Changes:
- Updated service registration in audio.cpp to replace placeholder services
- Added proper CMIF buffer handling with std::array<u8, SIZE> for InLargeData/OutLargeData
- Added firmware version annotations matching switchbrew documentation
- Implemented proper state management for all new services
- Added comprehensive error handling and logging
This implementation provides complete audio service coverage including the specifically requested GetDspStatisticsParameter function and numerous other missing functions that games expect to be available.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-07-10 18:00:59 +10:00
Zephyron
238e8282b2
hle/service/audio: Implement missing audio services and functions
...
- Add complete IAudioController implementation with 32 missing functions:
* Volume control (GetTargetVolume, SetTargetVolume, etc.)
* Mute control (IsTargetMute, SetTargetMute, etc.)
* Target management (SetDefaultTarget, GetDefaultTarget, etc.)
* Play report functions (10000+ series command IDs)
* Hearing protection safeguard functions
* Debug and system functions
- Add new audio services:
* codecctl - Codec controller service with 13 functions
* auddebug - Audio debug service placeholder
* Device suspend/resume services (audout:d, audin:d, audrec:d, audren:d)
* System audio services (aud:a, aud:d)
* Applet audio services (audout:a, audin:a, audren:a)
- Update IAudioDevice with missing functions:
* GetAudioSystemMasterVolumeSetting
* GetActiveAudioOutputDeviceName
* Fix function ID mappings to match official documentation
- Register all services in main audio LoopProcess function
- Update CMakeLists.txt with new source files
All implementations follow the official Switch audio services documentation
from switchbrew.org and provide appropriate stub implementations with
sensible default values for enhanced game compatibility.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-05-24 16:39:15 +10:00
Narr the Reg
0a0c257206
service: audio: Add missing logging properties of SetHeadphoneOutputLevelMode
2024-02-23 18:58:51 -06:00
Liam
c04567fad4
audio: add NotifyHeadphoneVolumeWarningDisplayedEvent
2024-02-21 23:54:10 -05:00
Liam
2e4a6b7f92
audio: format
2024-02-20 22:51:39 -05:00
Liam
5f90bd88da
audio: rewrite IHardwareOpusDecoder
2024-02-20 22:15:38 -05:00
Liam
c575a85233
audio: rewrite IAudioDevice
2024-02-20 22:15:38 -05:00
Liam
ea4703cb31
audio: rewrite IHardwareOpusDecoderManager
2024-02-20 22:15:38 -05:00
Liam
0471e54e5a
audio: rewrite IAudioRenderer
2024-02-20 22:15:38 -05:00
Liam
6012c9fe3a
audio: rewrite IAudioRendererManager
2024-02-20 22:15:37 -05:00
Liam
f65539504f
audio: split IHardwarweOpusDecoder, move IHardwareOpusDecoderManager
2024-02-20 22:15:37 -05:00
Liam
62083fcafd
audio: split IAudioDevice, IAudioRenderer, move IAudioRendererManager
2024-02-20 22:15:37 -05:00
Liam
2e5a9cf119
audio: move IFinalOutputRecorderManager{,ForApplet}
2024-02-20 22:15:37 -05:00
Liam
a45b8bc9bc
audio: rewrite IAudioOutManager
2024-02-20 22:15:37 -05:00
Liam
a05bd3c47e
audio: rewrite IAudioOut
2024-02-20 22:15:37 -05:00
Liam
2a2c92f181
audio: rewrite IAudioInManager
2024-02-20 22:15:37 -05:00
Liam
f54277364c
audio: rewrite IAudioIn
2024-02-20 22:15:37 -05:00
Narr the Reg
4cbafc1ef6
service: audio: Rewrite IAudioController to new IPC
2024-02-17 15:05:13 -06:00
Narr the Reg
caf16982d9
service: set: Migrate ISystemSettingsServer to new IPC
2024-02-14 12:40:10 -06:00
liamwhite
5561a08d59
Merge pull request #12831 from Kelebek1/audren_multi
...
Use the input process handle to get the correct application's memory
2024-01-28 15:02:22 -05:00
Kelebek1
19a2f12692
Use the input process handle to get the correct application's memory
2024-01-28 18:51:43 +00:00
german77
12e7ee2357
service: set: Implement more Qlaunch Settings
2024-01-28 09:32:46 -06:00
FearlessTobi
54372fdff5
result: Make fully constexpr, add ON_RESULT_INCLUDED
2024-01-25 16:42:06 -05:00
Liam
d940974789
audio: fetch process object from handle table
2024-01-12 10:03:16 -05:00
Liam
5165ed9efd
service: fetch objects from the client handle table
2023-12-24 19:20:43 -05:00
Kelebek1
ffbba74c91
Have GetActiveChannelCount return the system channels instead of host device channels
2023-12-16 12:49:28 -05:00
Kelebek1
67e2d5c28b
Reimplement HardwareOpus
2023-09-16 11:56:25 -04:00
Kelebek1
ebd19dec99
Rework ADSP into a wrapper for apps
2023-09-04 17:12:16 +01:00
FearlessTobi
a7a5835ffb
hwopus: Implement GetWorkBufferSizeExEx
...
Allows Sea of Stars to boot.
Fixes https://github.com/yuzu-emu/yuzu/issues/11415 .
2023-08-30 18:29:43 +02:00
FearlessTobi
c2f827b85e
hwopus: Implement OpenHardwareOpusDecoderForMultiStreamEx and DecodeInterleavedForMultiStream
...
Allows MLB The Show 22 to boot.
Fixes https://github.com/yuzu-emu/yuzu/issues/7911 .
2023-08-27 18:03:10 +02:00
german77
8d2f0dc707
service: audctl: Stub functions needed by Qlaunch
2023-08-05 20:16:26 -06:00
Morph
9bca45aa15
audren_u: Fix parameter alignment
...
The reduction in size from 0x38 to 0x34 caused the parameter to be misaligned. Skipping 1 word fixes this.
2023-07-31 18:40:16 -04:00
Morph
310b6cf4af
general: Use ScratchBuffer where possible
2023-06-30 21:49:59 -04:00
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
FengChen
55a33342cc
core: audio: return result when audio_out initialize failed
2023-04-16 12:31:54 +08:00
Liam
1d0fe75e7c
hle: rename legacy errors to Results
2023-03-06 20:58:42 -05:00
Liam
65be230fdd
service: move hle_ipc from kernel
2023-03-01 10:39:49 -05:00
liamwhite
97f7a560f3
Merge pull request #9832 from liamwhite/hle-mp
...
service: HLE multiprocess
2023-03-01 10:38:20 -05:00
Narr the Reg
39ca7b2928
core: Update service function tables to 16.0.0+
2023-02-24 18:17:36 -06:00
Liam
a936972614
service: refactor server architecture
...
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
liamwhite
6d77de96da
Merge pull request #9796 from liamwhite/current
...
general: rename CurrentProcess to ApplicationProcess
2023-02-15 17:42:45 -05:00
Liam
79fbdfca17
service: remove deleted services
2023-02-14 12:38:21 -05:00
Liam
ceda2d280e
general: rename CurrentProcess to ApplicationProcess
2023-02-13 19:03:12 -05:00
ameerj
2d2522693e
Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
...
This reverts commit 25fc5c0e11 , reversing
changes made to af20e25081 .
2023-02-03 00:08:45 -05:00
liamwhite
b01698775b
Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer"
2023-02-02 15:53:28 -05:00
ameerj
a1490d77ac
hle_ipc: Rename ReadBufferSpan to ReadBuffer
2022-12-28 18:46:54 -05:00
ameerj
7ffd624248
service: Use ReadBufferSpan where it is trivial to do so
2022-12-25 17:04:02 -05:00
bunnei
beba9c9b61
Revert "hle: service: audio: Use default service thread."
2022-12-14 14:57:33 -08:00
liamwhite
3b9db85646
Merge pull request #9232 from bunnei/audio-default-thread
...
hle: service: audio: Use default service thread.
2022-12-04 15:31:40 -05:00