Pcsx2 now has a gifUnit class which acts like the ps2's gif and executes a single gif transfer at a time (and performs path arbitration according to priority and path3 slicing).
This new code is generally a speedup for most games. Particularly VU heavy games like GoW.
This revision breaks old saved state compatibility so don't update if you wish to keep playing with your old saved states.
Leave comments if this revision fixes or breaks anything...
Message to GS Plugin authors:
This new code now uses only 1 gif callback to transfer data to the gs plugin (GSgifTransfer).
pcsx2 also is garaunteed to send full GS primitives to the plugin. So you don't have to account for partial-transfers anymore.
Thanks goes out to shadowlady who tested around 500 games for me :D
Note 1: The old gif code is still in this revision, and can be enabled by the USE_OLD_GIF macro. The old code will be deleted soon.
Note 2: This revision also enables assertion dialogs in devel builds, and changed a lot of assume cases into assertions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4821 96395faa-99c1-11dd-bbfe-3dabce05a288
Should prevent erratic tempo variations near 100% speeds (compared to the previous implementation), and generally allow much lower latencies while keeping the audio stable (on all audio systems).
E.g. my tests show that at 70ms latency it can properly handle sharp speed variance of 50%-100%. If your game generally doesn't get slower than 70% speed, 50ms latency would probably be fine.
Note that on extreme scenarios (e.g. extreme sharp drops in speed) it doesn't try to keep the audio continues at all costs. If your game exhibits such behavior (audible clicks, etc), increasing the latency a bit at the config would help.
Comments on actual performance/quality on different systems would be greatly appreciated.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4820 96395faa-99c1-11dd-bbfe-3dabce05a288
Adding an option for the de-alias filter implemented in r4118,
currently overemphasizes the highs so it's disabled by default
but I like it for some games :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4809 96395faa-99c1-11dd-bbfe-3dabce05a288
* use the standard 3 step flow: cmake, make, make install
* Remove L10N_PORTABLE option, superseeded by PACKAGE_MODE
* Extend PACKAGE_MODE to select the install directory (FHS or local bin)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4805 96395faa-99c1-11dd-bbfe-3dabce05a288
GSdx: remove some linux dialog options which were already controlled by PCSX2
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4780 96395faa-99c1-11dd-bbfe-3dabce05a288
With this, reverb maybe sounds somewhat like the PS2 for the first time ever!?
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4764 96395faa-99c1-11dd-bbfe-3dabce05a288
Test FFX tone when it's your turn to act, FFX underwater music?, xenosaga movie skipping sound effect, god knows what else.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4754 96395faa-99c1-11dd-bbfe-3dabce05a288
We need testing to determine how these actually behave and want to do some game testing to find other partially implemented registers before that.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4727 96395faa-99c1-11dd-bbfe-3dabce05a288
SPU2-X: Found a crash on writing to the low word of the effects end address during testing.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4717 96395faa-99c1-11dd-bbfe-3dabce05a288
Rama asked me to note that it still doesn't sound right yet. I will try to figure out the reason later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4688 96395faa-99c1-11dd-bbfe-3dabce05a288
Before trying this revision, make sure your speakers/headphones are not too loud.
I have been looking at it for a long while, and I decided it couldn't be just "somewhat similar" to a Schroeder Reverberator.
The SPU2 designers would have actually used a working design for a reverberator, so chances are they implemented Schroeder's.
I haven't had the chance to test this code in spu2-x, but the results in the "Impulse Response Analyzer" tool I coded specifically for this, are positive.
Some tweaks might be needed, because I'm not sure if Neill got the IIR part right or not.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4678 96395faa-99c1-11dd-bbfe-3dabce05a288
Some work on the fake reverb. Renamed it to "Custom Reverb" and the original to "SPU2 Reverb".
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4665 96395faa-99c1-11dd-bbfe-3dabce05a288
- Replaced the reverb boost control with a selector for normal reverb or a new mode we call "fake reverb".
- This new mode (coded by gigaherz) is intended as an alternative for the only partially working "normal reverb".
- The new mode will have to be tuned yet to sound good.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4662 96395faa-99c1-11dd-bbfe-3dabce05a288
Configurable output volume, ini only for now.
Can be set with "FinalVolume", from 0 to 100.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4619 96395faa-99c1-11dd-bbfe-3dabce05a288
[0]: it needs gold linker, tuning parameter large-function-growth to 5000 and gcc-4.6.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4617 96395faa-99c1-11dd-bbfe-3dabce05a288
gsdx: add a missing include (fix gcc-4.6). Force an init of sdl to allow in-emulation configuration
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4587 96395faa-99c1-11dd-bbfe-3dabce05a288
Tweaks to async mixing, making the buffer stay closer to 50% filled and also making it more effective on sharp FPS drops.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4500 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixed assumption that all paths received from pcsx2 end in the path separator.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4484 96395faa-99c1-11dd-bbfe-3dabce05a288
Fix the timestretch "Reset Defaults" Button to actually work (Winodws. Linux already works, I think.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4436 96395faa-99c1-11dd-bbfe-3dabce05a288
- Set default interpolation mode to "Catmull-Rom". It most closely mimics the original sound.
- Bit of documentation and a fix for Async mixing core resets.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4330 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixed an ENDX register bug and switched the dealias filter with the frequency response filter.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4322 96395faa-99c1-11dd-bbfe-3dabce05a288
* fix linux compilation debug build
* Add a linux option to select the API output of portaudio (ALSA, JACK and OSS)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4224 96395faa-99c1-11dd-bbfe-3dabce05a288
* resolve a namespace conflict between std::count (due to a 'using namespatce std;' directive) [debug builds only]
* switch all MSW-specific code to be unicode compliant so that unicode-only Utilities lib can be used under Windows. [should work, but needs proper testing]
* fix some properties sheets so that windows-specific DLL dependencies (common controls and UUID stuff provided by Windows) are linked automatically into wx/utils based plugins.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4140 96395faa-99c1-11dd-bbfe-3dabce05a288
Adapted the de-alias and frequency response filters from nenolod's "UPSE", a high quality PSF player.
(http://nenolod.net/projects/upse/)
These 2 filters are present on the real SPU(2) as well and are meant to increase the audio quality
by fixing aliasing and then equalizing the final result.
It currently mostly seems to accentuate the presence and highs.
Thanks a ton for hinting at this and for letting us adapt your code for SPU2-X, nenolod! :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4118 96395faa-99c1-11dd-bbfe-3dabce05a288
Fix ADMA not getting read when in spdif bitstream mode (which some games offer for FMVs).
This option would cause them to hang indefinitely.
There's something wrong with the read audio but at least it doesn't die ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4055 96395faa-99c1-11dd-bbfe-3dabce05a288
* Copy wavfile back to spu2x directory. Note I shrink the file to only usefull feature to keep it small.
Rationale: Wavfile is not delivered by the soundtouch library (it is an example).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GregMiscellaneous@3948 96395faa-99c1-11dd-bbfe-3dabce05a288
Spu2x: Use a standard destructor (POD safe stuff). Fix various segmentation faults (Issue 846)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3702 96395faa-99c1-11dd-bbfe-3dabce05a288
* move machine optimization in the global setup. In same time use i686 instead of i486
* Also build the debug with fvisibility=hidden No reason to use it only on devel. (actually same as codeblock)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3628 96395faa-99c1-11dd-bbfe-3dabce05a288
Add 2 attributes to the interfaces functions
- externally_visible: avoid gcc to remove the function when lto is enabled
- visibility("default"): default == public... Allow to hide all others symbols: see http://gcc.gnu.org/wiki/Visibility for details
onepad:
* Remove __cplusplus define, everythings is in C
* define 2 interfaces functions with EXPORT_C_ instead of CALLBACK.
cmake:
* add recent added .h files
* add fvisibility optimization. Plugins size was reduced of ~10% much more than expected :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3611 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNotes: DevCon logs are now available in *Release* builds as well as Devel builds, and can be enabled from the Console window's "Sources" menu. They are disabled by default in Release builds, and are always enabled regardless of the ini setting in devel builds. Debug logs are still strictly available in debug builds only.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3609 96395faa-99c1-11dd-bbfe-3dabce05a288
- Remove the DSound output module hardware buffer option which caused more harm than good.
Also fixed that IOPx2 hack leftover.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3597 96395faa-99c1-11dd-bbfe-3dabce05a288
* Major rework of the linker flags. Use some globals flags for -s and -m32
Add a USER_CMAKE_LD_FLAGS variable. Easier to play with advanced link flags for future gcc version (>=4.5)
* Remove useless stub file
[debian]
* minor dependency fix
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3475 96395faa-99c1-11dd-bbfe-3dabce05a288
* Add missing copyright according issue 792
* Miss few files from the previous commit ^^
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3429 96395faa-99c1-11dd-bbfe-3dabce05a288
[plugins] remove __forceinline on variadic function that has been broken by the removal of -fPIC.
[debian] update readme about fpic status. And add some lintian overrides.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3395 96395faa-99c1-11dd-bbfe-3dabce05a288
* EEA / ESA writes are ignored when Effects are enabled.
* When effects are disabled, reverb does not process IRQs or produce sound.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3326 96395faa-99c1-11dd-bbfe-3dabce05a288
- Some preliminary work on better resets. Also some commented out yet changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3318 96395faa-99c1-11dd-bbfe-3dabce05a288
Revert all reverb area tryouts, caused bleeps in many games (breaking Ys and that shonen jump game, but oh well).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3315 96395faa-99c1-11dd-bbfe-3dabce05a288
* Print a fatal_error when users do not source the good CMakeLists file.
* Do not search system libraries if the user force the internal libraries
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3269 96395faa-99c1-11dd-bbfe-3dabce05a288
- Double the audio output volume before sending it to the output modules. Was way too quiet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3261 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fullscreen mode should be remembered/applied properly now.
* implemented --fullscreen and --windowed options
* Made the --help popup a lot prettier
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3249 96395faa-99c1-11dd-bbfe-3dabce05a288
- Clamp requested pitch values to 0x3fff. Fixes games that set a too big pitch, run that voice and expect it to hit an IRQA (Romancing Saga).
- Gigaherz and Pseudonym worked out better modulation support. Should make some sounds better (FFX battle sound, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3242 96395faa-99c1-11dd-bbfe-3dabce05a288
We're free to put the ESA wherever we want. So let's use an area that makes the game Ys not die. :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3234 96395faa-99c1-11dd-bbfe-3dabce05a288
-ADMA can now be logged undependable from DMA.
-Visual core activity display works again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3218 96395faa-99c1-11dd-bbfe-3dabce05a288
If there's any regression we should look at what CAUSES it, instead of hacking it back.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3214 96395faa-99c1-11dd-bbfe-3dabce05a288
Details: (0x1800 to 0x1fff were being mis-written to 0x2000->0x2800, roughly).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3206 96395faa-99c1-11dd-bbfe-3dabce05a288
[cmake]:
* Update to use the above patch.
* Remove a52. Need to use system version.
* Remove stub file. Append pcsx2 to 3rparty library to ease futur support.
Important Note: codeblock will probably need some update. (add 3rdparty/soundtouch_linux_include in include path)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3200 96395faa-99c1-11dd-bbfe-3dabce05a288
[spu2x]: explain why one inline fail on linux
[cmake]: Prepare some include directory updates
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3185 96395faa-99c1-11dd-bbfe-3dabce05a288
* align cmake flags with codeblock one. (note spu2x may still fail to compile with inline problem)
* Some final cleaning. You must be able to see your reflection now ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3169 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNotes: converted some code from wstring to wxString to work a little toward cross-platformness. ... and probably broke the Linux build.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3115 96395faa-99c1-11dd-bbfe-3dabce05a288
Added the Async Mix mode to the configuration dialog.
Users can select between Timestretch, Async Mix or no sync now.
There's a warning for the Async mode, as it breaks games that can't cope
with a variable speed SPU2.
SVN revision users:
Please remember to delete your SPU2-X.ini when switching to this revision (to clear the Sync mode setting).
Linux:
It's missing GTK implementation yes (global vars are already changed though), sorry :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3077 96395faa-99c1-11dd-bbfe-3dabce05a288
KrossX3 coded user selectable audio expansion (Still Xaudio2 only) support.
Since the automatic detection fails on some systems, this is the next best option.
Tested and works as expected. Thanks a bunch, KrossX3 ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3041 96395faa-99c1-11dd-bbfe-3dabce05a288
Committing a patch by KrossX3 that should fix the stereo expansion option for *most* people.
Of course on my setup it fails to grab the correct number of speakers, so will have to think about it..
The code is correct though, so it should fix it for some people :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3035 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixes an issue where they could not access their config files in restrained PCSX2 installs.
Fixes issue 686.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3005 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added DX11 support. DX11 enabled cards now give a +~40% speedup
* New SSE-X instructions we invented for PCSX2. Give a +200% speedup even on old CPUs.
* Full 64bit support. If you have 64 bit windows, be prepared for a 300% speed up.
* Implemented new DMAC, so far we have ~15 games that show improvements.
* Added support for USB-enabled vibrators. Feel the full pleasure of gaming, now also with PCSX2!
* SPU2-X now decodes Dolby Digital 7.1!
* Please test to find any bugs in the 24-thread code, it's a bit complex so some tiny bugs might have crept in.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3000 96395faa-99c1-11dd-bbfe-3dabce05a288
Changes: Fixed all compile errors in VS 2010. Added support for new w32pthreads.v4. Fixed all MSB8012 warnings. Fixed LNK419 warnings with /DELAYLOAD. Fixed issues when compiling Devel before Release. Added GSdx Devel target. Minor cleanups.
Thanks a bunch, blood :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2930 96395faa-99c1-11dd-bbfe-3dabce05a288
Some more wxCore fixes.
Fixed also inter-project dependency warnings.
Also some other fixed to get devel/release compiling.
Oh and apparently my VCproject folder got messed up and detached itself from svn, so it wasn't commiting with the rest...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2849 96395faa-99c1-11dd-bbfe-3dabce05a288
The *null projects don't build, and neither do ZZOgl or ZeroSPU2.
Pcsx2 project has some issues with Resources' custom build steps not being run.
Only Debug target tested.
Needs work before it's usable.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2843 96395faa-99c1-11dd-bbfe-3dabce05a288
New "Peops SPU2-like" async mixing mode.
Can only be toggled in source for now, as it will lower compatibility.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2835 96395faa-99c1-11dd-bbfe-3dabce05a288
- Various small changes and a fix by gigaherz for dsp plugins when timestretching is disabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2788 96395faa-99c1-11dd-bbfe-3dabce05a288
SPU2-X: Disable IRQs on reset. This is a guess, but it fixes the BIOS with resets re-enabled.
SPU2-X: More detailed IRQ logging.
CDVD: Ignore the disc type reported by the plugin, we have our own test and it's working more reliably.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2779 96395faa-99c1-11dd-bbfe-3dabce05a288
Work on support for Wasapi's exclusive mode. Not enabled yet.
Also lower (/8) sound out packet size. Helps the timestretcher
responsiveness and quality.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2755 96395faa-99c1-11dd-bbfe-3dabce05a288
It works fine and without further modifications in Windows, for SPU2-X and ZeroSPU2.
Linux is untested, but hopefully also fine :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2734 96395faa-99c1-11dd-bbfe-3dabce05a288
Details: Properly initialize SCurrent in V_Core::Reset so that it need not be checked during Dummy processing, and add some asserts to test for SCurrent validity.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2727 96395faa-99c1-11dd-bbfe-3dabce05a288
Also fixed small timing error in dead voices, probably doesn't affect any game.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2726 96395faa-99c1-11dd-bbfe-3dabce05a288
- Altered interpolation descriptions based on testing. Also fixed slight issue with Hermite interpolation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2725 96395faa-99c1-11dd-bbfe-3dabce05a288
- More fixes to "slides". The few games using them should sound mostly correct now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2686 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fix Silent Hill Origins, Max Payne 2 and a few others. This was a really old bug :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2681 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed the clipping audio in many game's sound effects by using a saturating XA decoder.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2679 96395faa-99c1-11dd-bbfe-3dabce05a288
Rougher granularity than this probably doesn't break anything, this is the finest that should have observable effects.
Not running voices when they're in a special sentinel block may also help games... but not Fatal Frame 2. It resets the loop register constantly. I really have no idea what it's playing at and it's driving me crazy.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2637 96395faa-99c1-11dd-bbfe-3dabce05a288
- Pseudonym made the voice free-run system a bit faster. Also fixes some odd sound skips introduced with the first version of this fix.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2636 96395faa-99c1-11dd-bbfe-3dabce05a288
- Continue voice processing even if the voice is off, as per SPU2 specs.
This fixes Fatal Frame 2 (and likely 3 as well). A really long standing bug we had :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2635 96395faa-99c1-11dd-bbfe-3dabce05a288
- Ok, that interrupt commit in r2600 was silly. The "special register write" is a simple set audio to max volume. We don't interrupt those :p
NEW IOP DMAC:
- Make the adma interrupts happen early, as in the previous commit for old dmac.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2602 96395faa-99c1-11dd-bbfe-3dabce05a288
- Don't delay the adma irq callbacks, call them directly.
Should finally fix all those sound dropouts that only happened with this plugin :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2601 96395faa-99c1-11dd-bbfe-3dabce05a288
- Added an interrupt call on a special register write, which mimics peops spu2 behavior.
This lets Silent Hill Origins get further when booting up.
Note that it's not complete and hackish, need someone with spu2 experience to make it right :p
- Also added various logging stuff
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2600 96395faa-99c1-11dd-bbfe-3dabce05a288