Commit Graph

50 Commits

Author SHA1 Message Date
Jake.Stine b938d41e2b SPU2ghz: Minor tweaks to the mixer that should help get rid of overflow problems. This is the first part of a 2 part commit that should help correct some old-timey volume inaccuracies in the plugin.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@403 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:29 +02:00
Jake.Stine bc08e7397b SPU2ghz: Improved "on exit" stability of the XA2 driver on WinXP machines, by covering up for things the driver is *supposed* to do itself (but apparently does not, in WinXp at least).
Also fixed a Pcsx2 compilation error when trying to enable the experimental IPU speedhack.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@383 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
ramapcsx2 1c8203a3af SPU2Ghz: New defaults
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@382 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 96560444ea SPU2ghz: Fixed a memory corruption bug in the rolled back DMA write code. Hopefully this DMA write code will fix that bug without breaking Arc the Lad and similar games.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@334 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 7e828a69ee SPU2Ghz: Had to revert dma.cpp to rev244 for the most part. The dma cache system in DoDMAWrite() broke Arc the Lad dma audio. The auido starts to loop a bit in rev 264 and from there on it gets worse.
Sorry for not finding this earlier, I hope the cache can get fixed so we can include it again.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@333 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 996fbc3931 This was supposed to be a bigger commit concerning loopy audio in Dawn of Mana FMV, but it looks like its not so easy to fix. So this here is some cleanup I did along the way ;)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@324 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
gigaherz dd7f8807ac OMFG gigaherz is commiting something! RUN!
So rama made me notice the "sanity" checks on the TimeUpdate stuff,
I read it, and it kinda scared me that it happily dropped the sync as soon as the audio was 0.002 seconds out of sync!
I changed it so the "sanity recovery" code only kicks in when there's over 0.1 seconds desync in clock numbers,
which seems a LOT more reasonable.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@320 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 6930ed533c SPU2ghz: Compiling without TortoiseSVN installed should work out-of-the-box now. The project will automatically fall back on the old-school behavior (no revision information inserted into the project info).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@305 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 29bf736daa SPU2ghz: XAudio 2 crash fix attempt, take #341. Action! *clip*
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@304 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 3968775bc6 SPU2ghz: Removing the Sleep() caused XP's XAudio2 to crash again. But I found a note from Microsoft on one of their dev journals that said to put the Sleep() immediately after the FlushBuffers and before the DestroyVoice. Let's cross some fingers and hope it works! (don't you love beta libs from microsoft?)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@303 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
ramapcsx2 a973f63bb0 SPU2Ghz: Commented out a Sleep() call in xaudio2. It made the GUI not respond for several seconds when pressing escape to pause emulation
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@297 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 805b922c9a SPU2ghz: Added quotes to the svnrev pre-build step; hoping it behaves better for users who have paces in the names of their project folders.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@296 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 97dd495e85 SPU2ghz: Moved the svnrev additions to a new 'common' folder which is shared by all projects (pcsx2 included). The common folder now includes the necessary utility, so it should build out-of-the-box now (no more path setup or program installs necessary)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@293 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 4c2518b0f0 SPU2ghz: DLL now "properly" exports functions. May fix some compilation/plugin detection problems? Plus another attempt at fixing the XAudio 2 crash-on-exit bug.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@292 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 211829bb18 SPU2ghz: Fixed a couple rare odd-case XAudio2 crashes, and fixed a small glitch in in the over/underrun code when timestretching disabled.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@288 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine c69df473ad SPU2ghz: err... oops! This'll stop it from crashing when you try to enter the PCSX2 plugin configuration screen.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@287 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine f23db9a04a SPU2ghz: Rearranged the project files quite a bit. Solutions are now in the Plugins folder, and binaries are output to plugins/bin. This is in preparation for if/when we have more plugins as part of our repository, and will go hand-in-hand with a future change to how pcsx2 looks for plugins which should make shared development a little easier for all of us (I hope).
I also deleted several *very* dated projects and solutions.  They all still referenced FMOD, in fact, if it gives you an idea just how out-dated they were.  New updated projects can be re-added in the future if a need still exists for any of them.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@285 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
ramapcsx2 3d4583dcbb SPU2Ghz: Fixed a problem in ADSR handling as suggested by gigaherz.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@284 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine f113aab091 SPU2ghz: Code cleanups, and conf now force-disable Effects Processing (for anyone who might have had it checked when Rama grayed out the option)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@279 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine 24394b83e2 SPU2ghz: Fixed potentially quirky volume handling in Linear Interpolation mode (quiet sounds would get cut off too soon or be completely inaudible). Also did a minor cleanup of the ADSR handler.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@278 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine a169a0fe87 SPU2ghz: Reverted last change since it broke way more than it fixed. Will post another improved ADMA attempt later once I've got it figured out better.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@277 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:26 +02:00
Jake.Stine aa48345c70 SPU2ghz: Fixed serious bug in AutoDMA code, basically it wasn't working at all. Soul Calibur II audio works now, and possibly many other games fixed too.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@276 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 09c0225740 SPU2Ghz: Disabled Effects Processing for now, you can still force it on via the .ini but it's NOT recommended.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@275 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine ea781f8283 SPU2ghz: Major optimization fix to the mixer code. VS2008 was not optimizing the MulShr32su function properly. It's about 3-6x faster now. Also optimized the timestretch manager so that it can take full advantage of VC2008 SSE opts.
* XAudio 2 * Fixed potential crash bug on close (which only started happening after I upgraded my DXSDK).

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@268 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine d839f19119 SPU2ghz: XAudio2 driver now initializes a 48khz output rate (was using the default of 44.1khz). This may help fix some of the XA2 crashing problems as well.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@267 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine 62e1f5015d SPU2ghz: Fixed DMA memory corruption bug introduced in r264 (and made the DMA code even faster!), and expanded SoundTouch's working buffer by ~15ms (seems to help improve voice audio breakups when games slow down below 40 fps).
XAudio2 problems are still up in the air, as they may be related to version differences in DXSDK installations of people building the DLL.  Note to compilers: please update your DX SDK to the most recent version (Aug 2008) if you haven't already.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@266 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine d8bd81f00d SPU2ghz: Re-optimized the DMA write code so that DMA writes don't incur as much cache miss penalty anymore. Also made a couple minor tweaks to the timestretcher's overrun handler (Which only affects people who like their games to run at 120 fps. ;)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@264 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 c4ceb8c826 SPU2Ghz: Small change to underrun fill :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@257 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine cd81a75535 SPU2ghz: Removed SPU2ghz.aps since it's a file generated by the client (it's a VS2008 resource designer cache file, created when you open .rc files in the IDE).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@251 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine 5aad78b974 SPU2ghz: Cleaned up and optimized the SPU2write() code a bit.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@250 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
Jake.Stine ba9ab8f6e0 SPU2ghz: Added sanity checks to the XAudio2 driver, might be more stable now.
If this doesn't fix the crashing problems then I'll have to look into making a special instance of spu2ghz.dll that dumps XAudio2 log data, and hope to solve it from that.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@249 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 88638106e6 SPU2Ghz: Well, yet again another update from Jake.Stine :p This time around he improved the already great timestretcher to be even smarter. This and the fixed XAudio2 output module get even Vista users a near realtime sound. (Try a delay between 90 and 140ms).
Read a bit more about this version in issue 31 :)

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@247 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 f69a63b489 SPU2Ghz: Adjusted default values for the worst case (Windows Vista... seriously, what did MS to the audio subsystem?)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@245 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 0e1f871606 SPU2Ghz: Lots of changes as described in issue 31, thanks again to Jake.Stine.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@244 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:25 +02:00
ramapcsx2 e76b830d8c SPU2Ghz: More improvements and cleanup
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@233 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 ef6b4d136f Small tweak to the auto-timestretch. It now turns off only after the game runs at stable fullspeed for a while.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@232 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 54280950ef SPU2Ghz: Made the timestretcher automatically turn on/off based on game speed. This is possible thanks to recent changes by Jake.Stine :)
The way it works now, it makes it completely automatic for the user.
If the buffers over/underflow the stretcher enables itself.
Once it decides that game speed is fine again, it disables itself.

This works really great here, but please comment if it causes trouble for you.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@231 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 89294b2d19 Hah! Since the last SPU2 update was so great I sent my local project files along the way :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@230 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 37f2a95289 Jake.Stine "completed" his work on SPU2Ghz, I tested a whole lot of games with this and it sounds great! Savestates work very well, the mixer is fast, even the dreaded buffer over/underflows are handled quite well (even without timestretch!).
All in all great additions which imo make SPU2Ghz the best SPU2 plugin to use now :)

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@229 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 ee9dcd4130 SPU2Ghz: Updated to include Jake.Stine's latest work. Some issues still exist, but will be fixed soon.
Also made the speedlimiter switch toggle timestretch for easier debugging and convenience :)

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@227 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 e4b3c6e649 SPU2Ghz: Disabled ZeroSPU2 compatibility mode for savestates. This should enable users to load savestates created with that plugin again. (compatibility mode was crashing too much)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@226 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 8e72f6f1e6 Working with real-time audio / buffers sucks :p Anyway, this gave me the least over/underflows.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@208 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:24 +02:00
ramapcsx2 e1381992e5 Using this as a base now, it works very well for me. Thanks to Jake.Stine's patch the plugin got a bit faster ;)
I made a small mistake in the last 2 commits, its fine again.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@204 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 a6eba17dfa oO
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@203 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 6c2d95f27d SPU2Ghz: Part one of a bigger update
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@202 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 27ff8cf44d Last update for today, timestretch needs one more addition, then its perfect. The soundbuffer can (rarely) over/underflow (loop) and throw of the emergency stretch calculations. Will fix that soon :)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@200 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 9e05d9146e A bit more work on SPU2Ghz. Removed old code, made timestretch code a bit more clear, etc.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@198 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 0810eaea38 SPU2Ghz: Reverted a last-minute tryout in the output buffering, it broke more than it fixed.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@196 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 d69dc9a554 Adjusted spu2ghz project file (vs 2008)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@193 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00
ramapcsx2 14d14ec6b9 Added SPU2Ghz to the repository
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@192 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:23 +02:00