aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/audio
AgeCommit message (Collapse)Author
2021-07-06Report 2 channels active. Fixes Tales of Vesperia's mono channel audio.Kelebek1
2021-07-01Fix XC2/VOEZ crashing, add audio looping and a few misc fixesKelebek1
2021-06-27Decouple audio processing and run at variable rateKelebek1
Currently, processing of audio samples is called from AudioRenderer's Update method, using a fixed 4 buffers to process the given samples. Games call Update at variable rates, depending on framerate and/or sample count, which causes inconsistency in audio processing. From what I've seen, 60 FPS games update every ~0.004s, but 30 FPS/160 sample games update somewhere between 0.02 and 0.04, 5-10x slower. Not enough samples get fed to the backend, leading to a lot of audio skipping. This PR seeks to address this by de-coupling the audio consumption and the audio update. Update remains the same without calling for buffer queuing, and the consume now schedules itself to run based on the sample rate and count.
2021-06-26hle: service: hwopus: OpenHardwareOpusDecoderEx: Remove unused buffer size.bunnei
2021-06-24hle: service: hwopus: Implement GetWorkBufferSizeEx and ↵bunnei
OpenHardwareOpusDecoderEx. - This is used by the latest update of Doom Eternal.
2021-06-22Implement audout GetAudioOutPlayedSampleCountKelebek1
Used in Ninja Gaiden games.
2021-06-02general: Replace RESULT_UNKNOWN with ResultUnknownMorph
Transition to PascalCase for result names.
2021-06-02general: Replace RESULT_SUCCESS with ResultSuccessMorph
Transition to PascalCase for result names.
2021-05-16core: Make variable shadowing a compile-time errorLioncash
Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
2021-05-11audrenbunnei
2021-05-05hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei
2021-05-05hle: kernel: Ensure all kernel objects with KAutoObject are properly created.bunnei
2021-05-05hle: kernel: Migrate KEvent to KAutoObject.bunnei
2021-05-04service: Resolve cases of member field shadowingLioncash
Now all that remains is for kernel code to be 'shadow-free' and then -Wshadow can be turned into an error.
2021-04-08codecctl: Use proper namesgerman77
2021-04-08audren_u: Use proper namesgerman77
2021-04-08audren_a: Use proper namesgerman77
2021-04-08audrec_u: Use proper names, update to 12.xgerman77
2021-04-08audrec_a: Use proper namesgerman77
2021-04-08audout_u: Use proper namesgerman77
2021-04-08audout_a: Use proper namesgerman77
2021-04-08audin_u: Use proper namesgerman77
2021-04-08audin_a: Use proper namesgerman77
2021-04-07hwopus: Update to 12.xMorph
2021-02-05hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei
2021-01-24audout: FlushAudioOutBuffersChloe Marcec
Fixes Devil May Cry
2021-01-15core: Silence Wclass-memaccess warningsReinUsesLisp
This requires making several types trivial and properly initialize them whenever they are called.
2020-12-28hle: service: Acquire and release a lock on requests.bunnei
- This makes it such that we can safely access service members from CoreTiming thread.
2020-11-26service: Eliminate usages of the global system instanceLioncash
Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-09-11Merge pull request #4310 from ogniK5377/apollo-1-prodbunnei
audio_core: Apollo Part 1, AudioRenderer refactor
2020-08-13General: Tidy up clang-format warnings part 2Lioncash
2020-08-03yuzu: Resolve C++20 deprecation warnings related to lambda capturesLioncash
C++20 deprecates capturing the this pointer via the '=' capture. Instead, we replace it or extend the capture specification.
2020-08-03ipc: Allow all trivially copyable objects to be passed directly into ↵David
WriteBuffer (#4465) * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
2020-07-25audio_core: Apollo Part 1, AudioRenderer refactorDavid Marcec
2020-04-29marked stubsDavid Marcec
2020-04-29Audin:u ListAudioIns, OpenAudioIn, ListAudioInsAuto, OpenAudioInAuto, ↵David Marcec
ListAudioInsAutoFiltered, OpenAudioInProtocolSpecified Closes #2874
2020-04-26Merge pull request #3744 from lioncash/table2bunnei
service: Update function tables
2020-04-20audio_renderer: Preliminary BehaviorInfo (#3736)David
* audio_renderer: Preliminary BehaviorInfo * clang format * Fixed IsRevisionSupported * fixed IsValidRevision * Fixed logic error & spelling errors & crash * Addressed issues
2020-04-20service: Update function tablesLioncash
Keeps the service function tables up to date. Updated based off information on SwitchBrew.
2020-04-20audren: Lower log level for RequestUpdateImpl to DebugFearlessTobi
2020-04-17service: Remove unused RequestParser instancesLioncash
These aren't used, so they should be removed to reduce compilation warnings.
2020-04-17core: memory: Move to Core::Memory namespace.bunnei
- helpful to disambiguate Kernel::Memory namespace.
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
2020-02-11update hwopus DecodeInterleaved for FW 7.0.0+makigumo
trivial change, see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
2019-11-26core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash
With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
2019-11-26core: Prepare various classes for memory read/write migrationLioncash
Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.