Commit Graph

46 Commits

Author SHA1 Message Date
CasualPokePlayer
4234b25682 Do not directly store input sample rate, rather just store a divisor for that sample rate, with it using a fixed dividend of 54000000 * 2.
This should reduce (but not completely eliminate) gradual audio desyncs in dumps. This also allows for accurate sample rates for the GameCube.
Completely eliminating gradual audio desyncs will require resampling to an integer sample rate, as nothing seems to support a non-integer sample rate.
2022-07-03 15:07:06 -07:00
Pierre Bourdon
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Sepalani
0a7627d74e AudioInterface: Fix sample counter 2021-06-19 14:19:22 +04:00
Admiral H. Curtiss
360d05fe21 AudioInterface: Initialize s_cpu_cycles_per_sample to a sane value. 2021-06-13 20:41:20 +02:00
Léo Lam
0cc1fc37b5
Merge pull request #9788 from sepalani/dsp-rate
AudioInterface: Fix AIDFR initialization
2021-06-13 12:55:31 +02:00
Sepalani
ce8004c9c1 Lint: End of namespace 2021-06-07 12:55:52 +04:00
Sepalani
eaf8e30008 AudioInterface: Fix AIDFR initialization 2021-06-06 18:57:32 +04:00
Bonta-kun
66e39de1ab AudioCommon: Initialize before HW 2021-03-24 14:11:49 +01:00
Lioncash
eedfe2abf1 Core: Convert missed log calls over to fmt 2020-11-23 12:20:02 -05:00
Lioncash
a0f9b041a0 Core: Convert logging over to fmt pt.2
Continues the core migration of logs up to the EXI handling code.
2020-11-20 10:05:44 -05:00
JosJuice
bd44106fec AudioCommon: Get initial sample rates from AudioInterface 2020-09-06 15:37:20 +02:00
JosJuice
1a1b89e7e8 AudioInterface: Use 32029/48043 Hz in more places
In particular, I wanted to do change this in
AudioInterface::Init so that dumped GC audio doesn't need
to have a file split (changing from 32000 Hz to 32029 Hz)
when the emulated software initializes the AI registers.
I've also made the same change to DI's DTK code.
2020-08-29 13:24:39 +02:00
Lioncash
038bb9b3e1 AudioInterface: Use member initializers where applicable for unions
Migrates more code to the initialization capabilities available since C++11
2018-05-30 09:49:28 -04:00
Lioncash
b59cda1435 AudioInterface: Amend variable naming
Normalizes variable names to conform to our coding conventions.
Previously we were signifying some variables as externally linked
globals, which wasn't the case.
2018-05-30 09:47:08 -04:00
JosJuice
b00ef39c1c Fix DTK audio not working after loading a savestate
The main problem was that the volume of the mixer wasn't savestated.
The volume is typically 0 at the beginning of a game, so loading a
savestate at the beginning of a game would lead to silent DTK audio.

I also added savestating to StreamADPCM.cpp.
2017-11-06 09:15:14 +01:00
JMC47
a8bf9c5cbe Fix GameCube Sample Rate
The GameCube's sample rate is slightly different due to a hardware bug.
The exact numbers are (54000000 / 1124) for GameCube and (54000000 / 1125)
on Wii.  I also modified 32KHz mode.  This fixes audio desyncs in several
GameCube games and severe issues in Sonic Mega Collection.
2017-10-23 13:16:40 -04:00
Lioncash
dd4203bec8 Core: Remove unnecessary includes
Also moves a cpp file's related header file to the top of the inclusions if it isn't already there.
2017-06-15 18:52:22 -04:00
BhaaL
23d99f2f2c specify custom brace style to fix unions
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
EmptyChaos
aa16282516 Core: Change CoreTiming event key from int to EventType*
Replace 'int' keys with something that carries type information.
Performance is neutral.
2016-09-03 14:55:44 +10:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Scott Mansell
5e50c37c13 Alternative fix: promote cycleslate to an s64 everywhere.
Also changed a few functions to be static.
2016-04-10 02:13:06 +12:00
Lioncash
f2038b9e90 HW: Remove unnecessary header inclusions 2016-01-13 02:47:32 -05:00
booto
0e0fec3075 AI: reduce overhead of sample counter 2015-09-23 20:39:28 +08:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Tillmann Karras
6d9986846c Simplify some more license headers 2015-05-25 13:11:41 +02:00
Benjamin Przybocki
fba3c48ec4 Update Outdated Google Code References 2014-12-20 21:17:51 -06:00
Lioncash
7f7fb5e70c AudioCommon: Prefix soundStream global with g_ 2014-09-30 03:06:16 -04:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash
eb3a1de3f6 Core: Turn some includes into forward declarations. 2014-07-27 13:37:09 -04:00
Dolphin Bot
30962ec361 Merge pull request #664 from booto/dtk-surgery
DTK: Adjustments attempting to increase accuracy
2014-07-26 21:26:33 +02:00
booto
a6a4229865 DTK: Adjustments attempting to increase accuracy 2014-07-27 03:15:52 +08:00
booto
7d920bbb3a AudioCommon/Mixer: Allow input sample rate changes 2014-07-24 22:42:29 +08:00
degasus
6d3f249dcc mark all local variables as static 2014-07-11 16:10:20 +02:00
magumagu
ca0203a1cc AudioCommon: restore support for DTK volume setting. 2014-06-26 16:56:57 -07:00
magumagu
1f604e87be Try to make DTK rewrite handle events the same way as the old code. 2014-06-18 13:09:55 -07:00
magumagu
a282f181cd Streaming/DTK audio: fix pausing playback. 2014-06-15 15:08:47 -07:00
magumagu
d43ecd0bd1 Rewrite handling of DTK (streaming) audio.
The primary motivation here is to make sure we submit samples from the
CPU thread. This makes sure the timing of related interrupts accurate,
and generally keeps the different kinds of audio synchronized.  This will also
allow improvements to audio dumping functionality.

The new code is also more concise because it gets rid of some duplicated
audio mixing code.
2014-06-14 15:55:20 -07:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Pierre Bourdon
92f8d93e96 Remove the old MMIO access "interface". 2014-02-16 19:22:40 +01:00
Pierre Bourdon
a7c1e0d0d7 MMIO: Port the AI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Lioncash
ebb48d019e Clean up some struct indentations
Also cleaned up the indentations of some variable declarations.
2014-02-09 19:40:11 -05:00
Lioncash
40182a48a5 Cleanup enum indentations. 2014-02-09 16:16:10 -05:00
Lioncash
249b00c469 Change the modified parameter in the Clamp function to be a pointer.
Makes it easier to identify the one being modified.
2014-02-05 04:04:35 -05:00
Lioncash
6b87a0ef20 Introduce a generic clamp function to clean up some similarly duplicated code. 2014-02-04 20:43:07 -05:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00