Commit Graph

46 Commits

Author SHA1 Message Date
comex fd7cf5bb71 A bunch of trivial changes to fix clang warnings. 2013-09-01 22:58:33 -04:00
degasus a1822a3aca fix AudioCommon::Mixer Buffer indices
This fix the 1h32 audio bug which outputs static sound after 1h32.

The mixer is used for 32->48kHz resampling and as output buffer for the async audio backends.
So this buffer was indiced by a writing and a reading pointer and the count of samples in it.
As this is redundant and the sample count isn't accurate calculateable because of the interpolation,
both indices gets out of sync. So after some time (~92min), this buffer overflows and return only garbage.

thx @ moosehunter + delroth for debugging on this issue. You did the most work :-)
2013-07-11 21:22:38 +02:00
Lioncash bab9963b00 New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects. 2013-04-17 23:09:55 -04:00
lioncash ef85b9af45 Update the license file text (change SVN to Git) in all projects except Core since I was told a merge was happening soon. So for the sake of the merge going smoothly, I'll fix that when I remove the tab/space mismatches from the Core project.
Also, some tab/space mismatches removed from VideoOGL, and some places I missed in VideoDX[number] projects.

Now, the Core is literally the only project with tab/space mismatches (on a large scale).
2013-04-15 16:28:55 -04:00
lioncash edd9d0e0ef Clean up more space/tab mismatches in AudioCommon, Common, and VideoCommon.
Not planning to touch Core since it's the most actively changed part of the project.
2013-03-19 21:51:12 -04:00
nitsuja a81631b58e made savestates synchronous and immediate. this allows saving or loading while the emulator is paused, fixes issues where savestate hotkeys would get ignored if pressed too close together, might speed up savestates in some cases, and hopefully makes savestates more stable too.
the intent is to replace the haphazard scheduling and finger-crossing associated with saving/loading with the correct and minimal necessary wait for each thread to reach a known safe location before commencing the savestate operation, and for any already-paused components to not need to be resumed to do so.
2012-05-26 13:09:38 +10:00
skidau 5ceef0c513 Removed the DTK Music option. It is now always enabled. 2012-04-23 05:02:43 +10:00
Marko Pusljar ff63ef20c2 Trying to fix mixer problem when AIsrc is @48kHz, should fix games like All Star Baseball 2004/
XGRA Extreme-G Racing Association/Conduit 2... Enabled 48kHz output for LLE (before it was just 32kHz). I hope it works, if there are serious problems, it will be reverted.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7511 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-05 14:53:00 +00:00
pierre 37e31f2df6 AudioCommon: Improve pad silence when ppc does not keep up with realtime
Uses the last sample from the ppc buffer to fill the samples the ppc
didn't deliver data for, avoids clicking on underruns.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7338 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-12 22:02:46 +00:00
Glenn Rice 0ae8d33149 Some work on changing comments, log messages, and variable and function names to reflect that the plugins are not plugins anymore.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7170 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-14 02:18:03 +00:00
smelenchuk b0fa0a83f8 * Dump AVI output on every VI (fixes issue #4064).
* Add audio dumping (fixes issue #1638).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7131 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-11 18:59:42 +00:00
Soren Jorvang 435b25fa55 Fix the CMake build.
Prevent the PS3 HID crash until I can debug it.

AudioUnits are enabled by default.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7052 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-03 21:11:06 +00:00
DimitriPilot3 4e74a58c2a Build fix: a bogus include was added in r6988.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6991 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 19:27:46 +00:00
Soren Jorvang db1765c425 Move async checking for pressed keys into Host_GetKeyState()
and use wxGetKeyState on platforms other than Windows.

I am not sure if wxGetKeyState is unreliable on Windows or if
the use of GetAsyncKeyState() is simply historical, but for now
I've left the Windows call in there just in case.

This does mean that Host_GetKeyState() is currently only valid
for the small set of keycodes that overlap between wx and Win32,
one of which is VK_TAB/WXK_TAB.

Anyway, please test wxGetKeyState on Windows and remove the
ifdef if it works, so we can extend it to the remaining hotkeys.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6988 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 16:40:38 +00:00
hrydgard 419d6a244b DSP plugin merge - the two DSP plugins are now gone and all the code has been merged into Dolphin.
This WILL temporarily break the Linux and MacOSX builds but should be easy to fix.

Things left to do:
  * The UI on the new Audio tab for the LLE/HLE choice is ugly
  * At times the code still look "plugin-y" and needs cleanup
  * The two plugins should be merged further. DSPHLE should use the emulated memory etc of DSPLLE as much as possible, so that simply saving the DSPLLE state is enough. This would also bring the possibility of savestate compatibility between the two plugins.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6947 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-28 18:39:30 +00:00
Glenn Rice c6e0ea59b9 Removed my previous PanicAlert translation hack. Fixed with a better method suggested by BhaaL. The translation is done by a callback in the MsgHandler routine that is set at program start. Added macros PanicAlertT, SuccessAlertT, PanicYesNoT, and AskYesNoT that are identical to the non T versions except those strings will be added by gettext to the po files to be translated. These can and should be used anywhere in the code for strings that should be translated.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6838 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-13 02:05:58 +00:00
mylek4 343771d392 Audio Mixer: Corrects reversed stereo in LLE and reversed stereo from DMA audio in HLE.
Fixes Issue 3713

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6835 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-12 21:21:15 +00:00
skidau 49a89c1739 Build fix for OSX
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6825 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-12 09:34:53 +00:00
skidau 542078c447 Added a SSSE3 version of the swap16 and memcpy used by the mixer
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6824 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-12 07:08:35 +00:00
mylek4 4f2bfd181a Fix for r6707. Looks like I tried to do some invalid 16 bit addressing.
Also a small change to the mixer. This should fix audio throttling in cases where num_samples > RESERVED_SAMPLES. This seems to happen now with zelda ucode games, possibly others. 


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6711 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-01 19:55:03 +00:00
NeoBrainX 07d947c834 DX9/DX11: Fixing some maybe possible crashes if a game was started, the config dialog opened and the game closed again. Due to other issues this still happens quite often though...
Various warning fixes.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6684 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-29 13:07:00 +00:00
skidau aecc4f67a1 Fixed the throttle (Tab) key so that it takes effect when the frame-limiter is used. Hold down Tab to run the emulator unthrottled (Windows only).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6598 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-17 01:34:40 +00:00
Glenn Rice c0bdf4de81 Several little things.
The C version of the GenericLog was being used in both C and C++ branches of the code.
Parent panic alerts by the main_frame so that those windows get the icon too.
Fix a couple of compiler warnings.
Added some checks for libraries in the cmake build.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6385 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-12 05:05:27 +00:00
mylek4 67f850dd37 DSPHLE: Added an option for 48khz output and supporting upsampling code.
Games that have higher frequency sounds and music should sound a bit better using 48k. 

I don't have any games that use DTKMusic so that upsampling code untested. If you get strange sounds only at 48k try toggling dtk music to see if that isolates the problem and let me know.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6383 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-12 03:39:07 +00:00
pierre b80e207a8a Core/DSPCore: Make JIT work on 64 bit hosts
This is the safe variant that does not assume other
functions use R11 for &g_dsp.r, which they actually do.
So there is a lot unnecessary reloading of the register
getting emitted.

There are a few small changes exploiting pointers known
at emission time and making use of MComplex math.

Also renames m_LLEplaying to m_AIplaying in Core/AudioCommon.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6245 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-01 23:23:13 +00:00
pierre ce1057f17d Core/AudioCommon: Feed bigger audio chunks to the output devices in case of underrun.
This should eliminate the crackling with alsa and pulseaudio backends and replace it
with much nicer pauses. This is only interesting for audio backends that do not
respect Mixer::GetNumSamples() and should not impact users able to run the DSPLLE at
full speed.

The cost of this is an added LLE audio latency of about 0.06 s in the continuous
playback case. If that is too much, lower the low watermark.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6239 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 21:43:38 +00:00
Ignacio Farias cf078067e7 Reverted change from r6100 to previous version. That thing broke some games audios. With audio throttle off, possessing audio was disabled. Now I'm working on a workaround, stay tunned.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6106 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-17 15:45:12 +00:00
Ignacio Farias 56d916bf93 Corrected writing error on previous commit :). Now should compile correctly. Thanks God for the advise
"
/trunk/Source/Core/AudioCommon/Src/Mixer.cpp   r6100   line 145:
145: 	{
oops, wrong brace? "

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6101 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-16 15:45:18 +00:00
Ignacio Farias fd5f7ba6b4 Hy, this is my first commit, and i hope it is not bad xD.
- First change is for Mixer.cpp, I've just re-added the functionality lost in r4724, so, if you disable audio throttle, games like donkey kong jungle beat, will work properly.

- Second change points to a doubt comment on UCode_Zelda_Voice.cpp, where it did not know here PB.NeedsReset came from. Well, the answer is it came from line 03b2 of the dumped Ucode, so when PB.IsBlanck equals to zero, PB.NeedsReset is zero too.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6100 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-16 15:22:53 +00:00
ayuanx 06218e9ebb Sound System Rework: Phase 2 (cont'ed)
. Fixed super fast refresh rate issue

. Recovered <TAB> shortcut key for ThrottleSkipping

. Removed redundant "soundstream->Update()" in DSPLLE
  (Thanks to LordMark)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4728 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-25 11:59:04 +00:00
ayuanx 9eea60ca69 Sound System Rework: Phase 2
. Performance boost
  (Completely non-blocking between Sound thread and CPU thread, in the meantime keeping them thread safe)

. Both 32KHz & 48KHz sound can be handled properly now
  (But up-sampling is still not implemented, and I don't think any game requires it.)

. Strategy adjustment
  When your PC is *NOT* capable to run the game at 100%:
  >> DSound    Could yield more fluent sound than OpenAL sometimes, but you will lose the sync between video & audio (since audio is played before video to guarantee fluency)
  >> OpenAL    Ensures video & audio are always sync'ed, but sound could be intermittent(to let slow video catch up)

. Changed default frame limit to: Auto
  (Somehow this can dramatically decrease the chance of wiimote desync in game NSMB)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4724 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-23 15:34:14 +00:00
ayuanx 24d8839793 Sound System Rework: Phase 1
. Fixed Sample Rate for DSP
  (Now if your CPU is capable to run game at 100%, you will get pure sound without buzz or static noise)

. Fixed Sample Rate for AI
  (Now if your CPU is capable to run game at 100%, you will get sync'ed video and audio)

. Fixed Backend list for DSPLLE

. Improved Aduio DMA a bit
  (There might be a completely redesign in following phases)

WARNING: The whole rework will take time to complete.
This commit is compilable, but could be unstable.
So you can try it and test it but don't take it as a release rev!

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4717 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-22 07:26:30 +00:00
ayuanx 51163196d3 Now OpenAL works, at least.
But Dolphin's sound stream system really needs a rethink.
Because this is the root cause of constant blocking.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4711 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-20 02:23:26 +00:00
Shawn Hoffman 4fe3e46725 Add the mixer change from issue 1479 (use sleep(1) instead of cpu yield)
Fix aram handling in wii mode - was doing strange things with aram AND mem2 space - only mem2 exists on wii. Let me know if this breaks anything...
Fix Wii BS2 HLE - don't zero out bytes 6 and 7
Thanks to skidau for finding the ssbb error cause :)
Fixes issue 303
Fixes issue 1479

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4687 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-13 07:42:15 +00:00
Shawn Hoffman 3b76f6dc80 get rid of the '¯' chars in source code...non ascii chars are not really good to have floating around for no reason. http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Non-ASCII_Characters#Non-ASCII_Characters
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4231 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-08 16:07:13 +00:00
XTra.KrazzY c86d2e5129 Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3898 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-28 21:32:10 +00:00
Nolan Check a5d65b3b22 No more SleepCurrentThreads in Command Processor. Some Fifo cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3822 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-17 22:57:02 +00:00
John Peterson 5c04af50a4 Attempt to calculate actual refresh rate (i.e. a CPU-GPU synced Mhz), no real success. Anybody have any ideas?
Is there no indication from the game when the screen refresh should occur? No, not what I could find, we currently calculate the refresh rate and m_VBeamPos from the CPU ticks progress. That works perfectly if the CPU and GPU is perfectly synced as in the single core and no-idle skipping mode. So I guess it's possible that the game doesn't indicate when the screen should be refreshed, but rather that the hardware calculate that from the CPU ticks progress. That leaves us with a problem in the dual core and idle skipping modes to calculate a CPU-GPU synced CPU ticks progress.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3447 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-15 04:30:02 +00:00
hyperiris ff0ec2b3f8 a NEED DEBUG version of openal sound system, nakee, try to FIX it! :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3409 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-12 14:40:50 +00:00
nakeee 37d513c53b Added dtk sound mixing to audiocommon (should work with LLE now)
And also moved all common setting to audiocommonconfig


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2796 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-30 09:55:50 +00:00
nakeee 5d9871e85e Fixed Null sound
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2783 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-28 23:04:57 +00:00
sl1nk3.s 632e3bfc85 A little fix for the Throttle, it wasn't getting the correct sample_rate thus was too fast
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2774 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-28 14:08:06 +00:00
omegadox eb0cab140f Some code cleanup
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2768 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-28 08:57:34 +00:00
nakeee bffe311b3e Fixed stop of DSP HLE+LLE and some clean up(reset all variables in DSound creation)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2760 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-27 11:06:52 +00:00
nakeee f4a1f1c7e1 crash fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2758 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-26 10:50:52 +00:00
nakeee fff663e8c7 Attempt to move mixer to audio common, it's a bit more complicated than I expected
so please check I didn't break anything in hle



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2756 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-26 09:29:14 +00:00