Commit Graph

31 Commits

Author SHA1 Message Date
9c84721d84 audio_core/hle/source.cpp: clear config.play_position_dirty regardless of config.play_position value. (#7349)
Cosmetic-ish change so we dont incorrectly log about unhandled dirty flags
2024-01-14 12:27:28 -08:00
376d33cff4 audio_core/hle: Fix compile issues (#7024)
* audio_core/hle: Fix compile issues

Fix all compiling issues related with fmt (see #7015)

* audio_core/hle: Fix clang-format
2023-09-30 23:41:25 -07:00
327a00b4d5 externals: Update fmt. (#7015) 2023-09-27 03:29:13 -07:00
d19fe9aa4c audio_core\hle\shared_memory.h: Update struct member names based on FE:Fates Symbols (#6995) 2023-09-22 11:53:30 -07:00
4f737c329e android: audio_core: Remove noisy log. 2021-09-29 22:51:11 +05:30
1aaec7938f Initial implementation of partial_embedded_buffer_dirty handling (#5548)
* Initial implementation of partial_embedded_buffer_dirty handling

* Apply suggestions from code review

Co-authored-by: Marshall Mohror <mohror64@gmail.com>

* Serialize physical address, fix LOG_TRACE

* Add bracket

* Avoid crash in partial update behavior

Co-authored-by: Marshall Mohror <mohror64@gmail.com>
2020-11-17 17:31:05 -05:00
a6ee1bf913 HLE Audio: Increase frame position by input buffer sample rate (#5049)
* HLE Audio: Increase frame position by input buffer sample rate

Currently the frame position moves ahead by the number of samples
output, but thats a fixed number based on the 3ds native sample rate.
Instead, based on a homebrew by cyuubi and looking at the lle audio,
this sample position should be moved forward by the number of samples
from the input buffer that was read, based on the buffer's sample rate.
2020-03-28 10:39:50 -05:00
87facaa2e2 Prevent out of memory errors when the game passes in an improper length value
HACK

In Luigi's Mansion Dark Moon in HLE audio, the game mysteriously passes
in an extremely large value for length, which without any checks, causes
HLE audio to allocate an extremely large buffer.

This value seemingly is caused by some other HLE audio feature is missing,
and Luigi's Mansion subtracts two values to get a length, without
checking for overflow first. This appears to be caused by an incorrect
HLE audio emulation, as its fixed entirely by only changing to LLE. As
such, further investigation is required, but in the meantime, completely
eating up our users RAM is unacceptable.
2019-12-14 18:18:59 -07:00
a400e49338 audio_core: use nested namespaces 2019-02-17 23:41:48 -05:00
296c458e0e Memory: move GetPhysicalPointer and IsValidPhysicalAddress into class 2018-12-05 20:21:14 -05:00
ec01975549 audio_core: pass in memory reference
Because HLE::Source is initialized as an array in the member initializer, it is hard to let it accept the reference on ctor, so it has a second init stage performed by DspHle::Impl::Impl
2018-12-05 20:16:42 -05:00
008ef1fd71 DSP: Add a comment about physical address masking
See @wwylele's comment on PR 4483 for more details on what causes this behavior.
2018-12-03 12:22:11 -07:00
3aff585f32 DSP: Add address mask for physical pointers to audio data buffers
Hardware testing indicated that FFFFFFFC is the correct mask for all audio formats (mono and stereo PCM8, mono and stereo PCM16, and ADPCM). This fixes broken audio in Luigi's Mansion: Dark Moon and a few other games.
2018-12-03 01:07:55 -07:00
7d8f115185 Prefix all size_t with std::
done automatically by executing regex replace `([^:0-9a-zA-Z_])size_t([^0-9a-zA-Z_])` -> `$1std::size_t$2`
2018-09-06 16:03:28 -04:00
488694d01f Replace ToBool() with static_cast() 2018-09-01 15:50:57 +02:00
0eab948728 reformat all files with clang-format 2018-06-29 16:56:12 +03:00
7c5a76e58b log: replace all NGLOG with LOG 2018-06-29 14:18:07 +03:00
38e2b6c8d8 Undo changes to unrelated files and fix formatting 2018-03-25 00:54:40 +08:00
df816b5eaf Address review comments
* Convert %x to {:x}
* Convert {0:#010x} to {:#010x}
* Remove `? true : false` statement
* Remove `.c_str()` for strings
2018-03-24 22:25:50 +08:00
693b190274 audio_core: Migrate logging macros
Follow-up of #3533

Replace prefix of all logging macros from LOG to NGLOG
2018-03-24 21:45:58 +08:00
ab3d53131a audio_core: Remove global state 2018-02-03 15:15:17 +00:00
8a5cc14ba4 Audio/HLE/Source: Fix looped state not updating
Bugfix for ff280800.
2017-11-25 11:10:10 +00:00
a13ab958cb Fixed type conversion ambiguity 2017-09-30 09:34:35 +01:00
933508e2a2 interpolate: Interpolate on a frame-by-frame basis 2017-08-28 10:54:41 +01:00
ff28080091 Support looping HLE audio (#2422)
* Support looping HLE audio
* DSP: Fix dirty bit clears, handle nonmonotonically incrementing IDs
* DSP: Add start offset support
2017-01-29 23:52:25 -08:00
84fbbe2629 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
ebdae19fd2 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
396a8d91a4 Manually tweak source formatting and then re-run clang-format 2016-09-18 21:14:25 -07:00
dc8479928c Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
da2400a601 source: Fix missing logging arguments
Silences two warnings on OSX.
2016-05-09 09:41:03 -04:00
b242bdf945 DSP/HLE: Implement Source processing 2016-05-03 20:58:28 +01:00