ameerj
5daf3abe65
common/logging: Move Log::Entry declaration to a separate header
...
This reduces the load of requiring to include std::chrono in all files which include log.h
3 years ago
bunnei
7d464f73c9
Merge pull request #6571 from Kelebek1/Mix
...
audio_core: Replace NaN mix volume samples with silence
4 years ago
Ameer J
5edc96f4a4
Merge pull request #6539 from lat9nq/default-setting
...
general: Move most settings' defaults and labels into their definition
4 years ago
Kelebek1
7905eb0254
Replace NaN mix volume samples with silence.
...
Fixes Xenoblade Chronicles 2 blowing out the audio.
4 years ago
Morph
92a3daf029
Merge pull request #6564 from Kelebek1/Audio
...
Support more PCM formats
4 years ago
Kelebek1
7636fefb71
audio_core: Preserve front channel volume after 6 to 2 downmix
...
Many games report 6 channel output while only providing data for 2. We only output 2-channel audio regardless, and in the downmixing, front left/right only provide 36% of their volume. This is done assuming all of the other channels also contain valid data, but in many games they don't. This PR alters the downmixing to preserve front left/right, so volume is not lost.
This improves volume in Link's Awakening, New Super Mario Bros U, Disgaea 6, Super Kirby Clash.
4 years ago
Kelebek1
dbcc093d88
Support more PCM formats. Fixes Ys IX audio.
4 years ago
Morph
ebb82b0b83
CMakeLists: Treat -Wsign-compare as an error on GCC/Clang
...
Treats (un)signed comparison mismatches as errors to be consistent with MSVC
4 years ago
Kelebek1
b455043e45
Fix XC2/VOEZ crashing, add audio looping and a few misc fixes
4 years ago
lat9nq
b91b76df4f
general: Make most settings a BasicSetting
...
Creates a new BasicSettings class in common/settings, and forces setting
a default and label for each setting that uses it in common/settings.
Moves defaults and labels from both frontends into common settings.
Creates a helper function in each frontend to facillitate reading the
settings now with the new default and label properties.
Settings::Setting is also now a subclass of Settings::BasicSetting. Also
adds documentation for both Setting and BasicSetting.
4 years ago
Kelebek1
0857d6a3db
Decouple audio processing and run at variable rate
...
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.
4 years ago
bunnei
50d0cc2716
audio_core: common: Bump audio revision to 9.
...
- This is used in fw 12.x.x games.
4 years ago
Chloe
f216a9432b
Add missing includes ( #6521 )
...
* Add missing includes
* Add array
4 years ago
Kelebek1
ba3af04da1
Implement audout GetAudioOutPlayedSampleCount
...
Used in Ninja Gaiden games.
4 years ago
Clément Gallet
f611506dca
Various suggestions by v1993 and lioncash
4 years ago
Clément Gallet
c7c99905f4
Add SDL2 audio backend
4 years ago
Morph
12c1766997
general: Replace RESULT_SUCCESS with ResultSuccess
...
Transition to PascalCase for result names.
4 years ago
bunnei
a4c6712a4b
common: Move settings to common from core.
...
- Removes a dependency on core and input_common from common.
4 years ago
Chloe Marcec
7ad63ea542
revert to std::sin and std::cos
4 years ago
Chloe Marcec
d28b942458
address issues
4 years ago
Chloe Marcec
4a7fd91857
audren: Implement I3dl2Reverb
...
Most notable fix is the voices in Fire Emblem Three Houses
4 years ago
bunnei
7666c0994c
Merge pull request #5868 from german77/HandheldFix
...
Prevent over scheduling audio events and add motion update unschedule event
4 years ago
german
7784b1da6d
Prevent over scheduling audio events and terminate properly the motion update event
4 years ago
Chloe Marcec
9fc7f60b94
audren: Disable reverb for the time being
...
As this is causing issues in a few games, it's best to have it disabled until it's completely implemented
4 years ago
Chloe Marcec
b2b95e96c1
audout: FlushAudioOutBuffers
...
Fixes Devil May Cry
4 years ago
ReinUsesLisp
f8650a9580
core: Silence Wclass-memaccess warnings
...
This requires making several types trivial and properly initialize
them whenever they are called.
4 years ago
ReinUsesLisp
3ff978aa4f
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
...
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
4 years ago
bunnei
60121d8f28
Merge pull request #5264 from 16-Bit-Dog/patch-1
...
Make the coding conventions more consistant
4 years ago
16-Bit-Dog
fa5a1a4bfd
Make the coding conventions more consistant
...
lut_index had 0 added when nothing was supposed to be added
despite this, index was not added to 0 when nothing was supposed to be added...
4 years ago
bunnei
7d77a3f88f
hle: service: Acquire and release a lock on requests.
...
- This makes it such that we can safely access service members from CoreTiming thread.
4 years ago
bunnei
c7a06908ae
audio_core: stream: Ensure buffer is valid before release.
4 years ago
Vitor Kiguchi
a1e7360273
Update cubeb and request a persistent stream session
4 years ago
bunnei
88089c8754
Merge pull request #5000 from lioncash/audio-error
...
audio_core: Make shadowing and unused parameters errors
4 years ago
Lioncash
1ea6bdef05
audio_core: Make shadowing and unused parameters errors
...
Moves the audio code closer to enabling warnings as errors in general.
4 years ago
Chloe Marcec
d7019d8307
audio_core: Remove temp_mix_buffer
...
It's unused and doesn't need to be initialized
4 years ago
Chloe Marcec
908d3c5679
Addressed changes
4 years ago
Chloe Marcec
9a4beac95a
audren: Make use of nodiscard, rework downmixing, release all buffers
...
Preliminary work for upmixing & general cleanup. Fixes basic issues in games such as Shovel Knight and slightly improves the LEGO games. Upmixing stitll needs to be implemented.
Audio levels in a few games will be fixed as we now use the downmix coefficients when possible instead of supplying our own
4 years ago
Lioncash
e408bd3b7c
core: Fix clang build pt.2
...
Resolves the clang build issue in a more unintrusive way.
4 years ago
bunnei
3d592972dc
Revert "core: Fix clang build"
4 years ago
Lioncash
be1954e04c
core: Fix clang build
...
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
4 years ago
Lioncash
9f9b64d280
audio_core/CMakeLists: Make warnings consistent with core
...
Normalizes the warnings shared between audio_core and core.
4 years ago
bunnei
09609dd50e
Merge pull request #4721 from lioncash/genfn
...
codec: Make lookup table static constexpr
4 years ago
bunnei
2a82f1b08b
Merge pull request #4722 from lioncash/casting
...
cubeb_sink: Use static_cast instead of reinterpret_cast in DataCallback()
4 years ago
bunnei
a8be822e8e
Merge pull request #4719 from lioncash/audio-warn
...
audio_core: Resolve sign conversion warnings
4 years ago
bunnei
891090799c
Merge pull request #4720 from lioncash/header
...
audio_core: Remove unnecessary inclusions
4 years ago
Lioncash
90c6141164
command_generator: Make lookup table static constexpr
...
Allows compilers to elide needing to push these values on the stack
every time the function is called.
4 years ago
Lioncash
dc83ca8914
behavior_info: Fix typo Renerer -> Renderer
4 years ago
Lioncash
4073931305
cubeb_sink: Use static_cast instead of reinterpret_cast in DataCallback()
...
Conversions from void* to the proper data type are well-defined and
supported by static_cast. We don't need to use reinterpret_cast here.
4 years ago
Lioncash
7c0908f301
codec: Make lookup table static constexpr
...
Allows compilers to elide needing to push these values on the stack
every time the function is called.
4 years ago
Lioncash
966966dc02
audio_core: Remove unnecessary inclusions
...
Same behavior, but removes header dependencies where they don't need to
be.
4 years ago