WinXP should be exempted from Portaudio as the default for now.
It has a large latency with DirectSound compared to direct use and XA2 isn't available at all.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5823 96395faa-99c1-11dd-bbfe-3dabce05a288
The preferred audio output module is PortAudio, so making it the default under Windows now (it is already on Linux).
It will use wasapi mode with the default sound device by default, both are configurable though.
This setup gives us better latency and a higher time stretch polling frequency, resulting in better quality overall.
With this we can also lower the main latency default from 150ms to now 100ms.
There is no error checking for the wasapi mode selection yet, as I don't know how this should be done.
Help would be appreciated (gigaherz!) :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5821 96395faa-99c1-11dd-bbfe-3dabce05a288
Removed some missing headers from the vs2010 and vs2012 project files that were causing vs to always claim the projects were out of date.
Also removed some other entries for c/cpp files that were disabled but also missing (I did not search exhaustively).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5763 96395faa-99c1-11dd-bbfe-3dabce05a288
* new option SDL2_API
* drop GLSL_SHADER_DIR. Useless, shaders are embedded in .h file
* use some hardening flags (for the moment only basic one)
onepad:
* port the code to SDL2 (Note only SDL1 is supported for the moment)
* improve detection of button vs axis (long-standing issue)
* avoid potential overflow on mouse mouvement detection
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5756 96395faa-99c1-11dd-bbfe-3dabce05a288
Next commit will include some cleanups, and I'll probably also remove the dynamic-tunning and related support code (not a lot of code though, but.. it's currently unused). I'm also considering completely removing the old stretcher from the code, such that both dynamic-tunning and the old stretcher will only live in SVN history.
Meanwhile, you can test this patch and report back here if you notice a difference. BTW, on my system I use the portaudio output since IIRC it offers the lowest latency.
As before, to display stretcher messages at the console, enable underrun/overrun messages at the SPU2X debug UI (which is also available on normal builds).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5729 96395faa-99c1-11dd-bbfe-3dabce05a288
Performance note, it might be faster to replace the MODULO with an AND. Not sure on the impact
for the new time stretcher algo.
GSdx: fixed use-after-free (linux)
PCSX2:
* add a define to support address sanitizer (both rely on 0x20000000-0x3fffffff memory ranges..)
* sio_buffer out of bond (-1). Maybe we can move the flush in the 2 if previous branch. It would
avoid the extra test.
* wxGetEnv (linux) generates double free (maybe not thread safe). Cache the result so it doesn't crash
anymore when switching renderer
Comment/Review/Improvement are welcome :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5727 96395faa-99c1-11dd-bbfe-3dabce05a288
* remove unused variable
* move static function from h into cpp
* Initialized hw_by_page to 0xFFFFFFFF instead of -1 (number must be a positive integer)
* Use a s32 fore m_current_lsn instead of u32 (use -1 as error code)
Bonus: a couple of fix for clang compiler (doesn't mean that it fully compile with clang)
* remove useless __debugbreak on linux
* use short for 16bits atomic function
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5695 96395faa-99c1-11dd-bbfe-3dabce05a288
* remove iconvert.cpp not used anymore
* change copyrigh header from GPL to LGPL. Those 2 files are only basic .h. 1 licence by plugin is enough ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5691 96395faa-99c1-11dd-bbfe-3dabce05a288
* fix shader compilation on Nvidia (broken on r5682)
* fix various memory leak thanks to Valgrind
Cmake: fix a minor typo
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5688 96395faa-99c1-11dd-bbfe-3dabce05a288
* use svnrev.h on linux too
* replace sprintf_s with snprintf (hope it still compile on Windows)
* init integer with 0 instead of NULL
* various int -> u32/uint32/uint on for loop index
* remove a couple of unused variable
* init few variable
* disable unused warning results
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5683 96395faa-99c1-11dd-bbfe-3dabce05a288
Should fix the VS2012 project files for when only VS2012 (and not VS2010) is installed.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5557 96395faa-99c1-11dd-bbfe-3dabce05a288
Just adding a log to devel builds. This is a curious case we want to be notified about.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5478 96395faa-99c1-11dd-bbfe-3dabce05a288
We need to figure out what real hardware does with it but for now let's disable the effect engine in that case.
Affected games: Summer Beach Volleyball and 18 Wheeler.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5445 96395faa-99c1-11dd-bbfe-3dabce05a288
Also, check both cores rather than the current core, that was a mistake.
Speed-- again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5425 96395faa-99c1-11dd-bbfe-3dabce05a288
various:
* rename the man page as requested by arch users.
* Delete pcsx2/* symlink. Was only useful for autotool removed few years ago.
* commit the top metadata of my previous branch merge.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5172 96395faa-99c1-11dd-bbfe-3dabce05a288
cmake: keep all library for the linking of plugins
hex2h.pl: add svn:executable
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5157 96395faa-99c1-11dd-bbfe-3dabce05a288
* update missing copyright on
+ plugins/GSdx/config.h
+ pcsx2/MTVU.h
+ plugins/zzogl-pg/opengl/ZZHacks.h
+ plugins/spu2-x/src/DplIIdecoder.cpp
* put a copyright for trivial script file
+ pcsx2/gui/Resources/rebuild.sh
+ tools/bin2app.sh
+ plugins/zzogl-pg/opengl/shaders.sh
* remove autotool from zzogl
* apply the patch for issue 1257. Thanks very much Micove for the hard work.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5154 96395faa-99c1-11dd-bbfe-3dabce05a288
Some games use volume slides combined with reversed phase.
Gigaherz tweaked the code to handle this nicer (fixes Mashed Drive to Survive noises).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5139 96395faa-99c1-11dd-bbfe-3dabce05a288
...
<avih> so, come on, touch spu2x to have recent rev number
Touched... hopefully I touched right. Felt awkward.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5024 96395faa-99c1-11dd-bbfe-3dabce05a288
This hopefully avoids the issues appearing after long periods of continuous playing.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4871 96395faa-99c1-11dd-bbfe-3dabce05a288
Refactored the ProLogicII code into a separate file and changed it to floating point math for easier debugging.
Added a basic ProLogic decoder that doesn't try to do surround separation into L/R.
The setting does not have a GUI option yet, since the PLII decoder is experimental and doesn't give too good results.
To change it, set DplDecodingLevel to one of: 0=none, 1=ProLogic, 2=ProLogicII. The default is 0.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4859 96395faa-99c1-11dd-bbfe-3dabce05a288
Causes internal buffer size allocations to be as small as possible within portaudio and the OS, so it can have bad effects if the number turns out to be too small.
Would be nice if someone with a "real" audio card (Audigy, X-fi or similar) tested WASAPI Exclusive Mode, KS or ASIO with this change.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4851 96395faa-99c1-11dd-bbfe-3dabce05a288
On 4840 I added dynamic tuning (which may have slight negative effect on stability) to adapt to different iterations/sec of different systems, but I didn't like this system too much. On 4840 I also made a small change which, I now understand, factors out the differences between systems in this regard, essentially making dynamic tuning not required anymore. So now dynamic tuning is disabled.
If you enable the SPU2X messages (and the overrun messages), you would see log messages similar to this:
buffers: 44 ms ( 89%), tempo: 1.000000, comp: 1.000, iters: 764, (N-IPS:750 -> avg:50, minokc:50, div:100)
If the iters value (764 at this example) on your system when running at 100% speed (50/60fps) is higher than 1000 or lower than 500, then please comment here and post few of the log lines.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4843 96395faa-99c1-11dd-bbfe-3dabce05a288
I'm not fully happy with it, as it's a bit complicated for my taste, so feedback about how it performs will be appreciated.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4840 96395faa-99c1-11dd-bbfe-3dabce05a288
1. Much better behavior at extreme low/high FPS (less skips/lower latency).
2. As a result, I was able to reduce internal latency by 50% (50ms config now equals 100ms before).
Recommended latency config for stretcher: 100ms.
For rhythm games, if your FPS is very stable, I recommend 50ms.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4834 96395faa-99c1-11dd-bbfe-3dabce05a288
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