Commit Graph

580 Commits

Author SHA1 Message Date
Pseudonym 9a51820dec SPU2-X: Experimental reverb based on Dr. Hell's
http://drhell.web.fc2.com/ps1/ and/or Martin Korth's
http://problemkaputt.de/psx-spx.htm reverse engineering.
Negate final reverb output (don't know why but it's an
improvement when comparing the waveform).
2016-10-22 19:16:11 +01:00
Gregory Hainaut d4a163e9cc spu2: improve format consistency 2016-10-22 13:22:28 +02:00
Pseudonym 1f44c4be2f SPU2-X: PSX games should be able to read ENDX correctly now, which is
important functionality for many sound engines.
Fixed two other obvious errors in the psx compatibility merge, probably
inconsequential.
2016-10-20 04:17:03 +01:00
Clang Format 604d3bac3c clang format: set SpacesBeforeTrailingComments to 1 2016-10-16 21:42:31 +02:00
Robert Neumann f5e096a66f spu2x: indicate pitch modulation and noise enabled status in the visual debugger 2016-10-16 14:15:12 +02:00
Clang Format 039573b133 clang-format spu2x
Note: it doesn't play well with define around forceinline (might need to fix the inline btw)
And a single macro in RegTable.cpp
2016-10-10 20:41:24 +02:00
Robert 36631f2270 remove a useless define
cosmetics

more cosmetics

some more cosmetics? sure!

whitespaces

whiterspaces
2016-10-09 20:10:53 +02:00
Robert 95fe77a594 bad merge fix 2016-10-09 16:15:19 +02:00
Robert Neumann 19a8ed8b25 psxmode: Spu2x: more native SPU2 reghandlers. first "working" reverb! (everything before was just random data) 2016-10-09 15:52:47 +02:00
Robert Neumann ee05137415 psxmode: Spu2x: add reverb register handling, fix a problem with the address translation, re-enable "VMIXEL" writing (which should just be named Echo/Effect ON or EON really) 2016-10-09 15:52:47 +02:00
Robert Neumann 1ec70f1df3 psxmode: Spu2x now working correctly. Kudos to pseudonym. Took him 30 minutes to fix this! 2016-10-09 15:52:46 +02:00
Robert Neumann 08b6edae80 psxmode: further spu2x work 2016-10-09 15:52:45 +02:00
Robert 3aabc1adbf spu2x work 1 2016-10-09 15:52:05 +02:00
Gregory Hainaut 6e6eae7844 pcsx2:gsdx:spu2x: use parenthesis around macro parameters
For safety reasons.
2016-09-18 16:13:55 +02:00
Gregory Hainaut 64d499af6e pcsx2|spu2x: remove unused macro 2016-09-18 16:13:29 +02:00
Gregory Hainaut f0a54bf6e3 spu2x: replace EMITC macro with a function 2016-09-18 16:13:28 +02:00
Gregory Hainaut 0b86aad059 spu2x sdl: increase the number of samples
Avoid alsa error "buffer underrun"
2016-08-09 11:38:25 +02:00
Jonathan Li f40b2e641b spu2-x:windows: Use INT_PTR for DialogProc return type
Fixes a 64-bit compile error.
2016-07-23 02:19:29 +01:00
Gregory Hainaut 0f62bccb0b Merge pull request #1470 from ssakash/spu2_x_nitpicks
SPU2-X: Align GUI elements on debug dialog
2016-07-22 18:18:20 +02:00
Akash 8e2b19ada7 SPU2-X: Align GUI elements on debug dialog 2016-07-22 19:29:45 +05:30
Jonathan Li e25e8bc580 plugins: Tidy/standardise VS projects
Combine all the different configurations together so the project files
are more generic and maintainable.

Also standardise the layout so all the project files will be similar and
all have the same standard elements (even if empty).

Add 64-bit configurations.

Additional specifics:
spu2-x: FLOAT_SAMPLES preprocessor definition removed since it's unused.
2016-07-19 23:25:12 +01:00
Jonathan Li 7c3cee0624 spu2-x: Rearrange lowpass.cpp header order
It allows VS to use the precompiled header for that file too.
2016-07-19 23:25:12 +01:00
Akash 1e92c24847 SPU2-X: Convert inline assembly to intrinsics (#1464) 2016-07-19 23:11:12 +01:00
Gregory Hainaut e872552fdc spu2x|common: s/jASSUME/pxAssume/ allow to remove code and __debugbreak intrinsic 2016-07-17 10:24:29 +02:00
Jonathan Li eddabf9dbc spu2-x: Remove unused DirectSound 5.1 module
It was copied over from SPU2ghz but never actually used.
2016-06-18 00:01:32 +01:00
Jonathan Li 7c205d7a1e windows: Don't use __declspec(dllexport) for plugin exports
Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.

The module definition file exports the functions without name mangling
and is sufficient on its own.
2016-06-05 22:57:42 +01:00
Jonathan Li e7745d13f4 spu2-x:windows: Add XAudio2 2.8 backend
On Windows Vista and 7, the XAudio2 2.7 backend will still be used.
Windows 8, 8.1 and 10 users will use XAudio2 2.8/2.9 (depending on OS).
2016-05-29 14:50:12 +01:00
Jonathan Li 5344c3f121 spu2-x: Rename SndOut_XAudio2.cpp to SndOut_XAudio2_7.cpp 2016-05-29 14:50:12 +01:00
Jonathan Li de56e30bba spu2-x:windows:xaudio: Remove ifdefs and rename class/vars
This reverts commit 8a61c7d336.

The plan is to support both XAudio2 2.7 and 2.8+. This file will only be
used for 2.7, so let's remove the ifdefs and rename the class and vars.
2016-05-29 14:50:12 +01:00
Jonathan Li c8162df936 spu2-x: Only XAudio2 2.7 requires the DXSDK
Use the newer Windows SDK for everything else.
2016-05-29 14:50:12 +01:00
Jonathan Li 5ea80b86db spu2-x:windows: Remove VersionHelpers workaround
We've moved to the non-XP toolkit - it can be removed.
2016-05-29 14:50:12 +01:00
Jonathan Li b20433c0be windows: Remove user.props references from all projects
find . -name *.vcxproj -exec sed -i -e '/user.props/d' {} \;

Microsoft recommends against using .user files. From
https://msdn.microsoft.com/en-us/library/669zx6zc.aspx :
"The best practice is to delete the reference to them in Property
Manager to ensure that your projects operate independently of any
per-user, per-computer settings. This is important to ensure correct
behaviour in a SCC (source code control) environment."

If you cannot compile SPU2-X after this commit (since that still relies
on the old DirectX SDK), you'll need to fix your build environment.
2016-05-29 12:21:52 +01:00
Jonathan Li f95c38f632 spu2-x:freebsd: Adjust cmake and ifdefs
For now the SDL backend has been removed, mainly cause it makes the
dialog code too messy.
2016-05-20 22:30:52 +01:00
Gregory Hainaut da1b032793 spu2x-linux: update GUI to support a 15 ms latency 2016-04-24 11:13:28 +02:00
refractionpcsx2 fdae698f07 SPU2-X: Correct project settings for devel profile. Fixes #1288 2016-04-11 01:15:07 +01:00
Gregory Hainaut 1bd8113f66 cmake: add various option to disable plugin support 2016-03-30 10:19:54 +02:00
Jonathan Li b516c1001a windows: Set _WIN32_WINNT to 0x0600 (Windows Vista) 2016-03-13 13:41:16 +00:00
Jonathan Li 9ed9b2d8cd windows: Switch to DefaultPlatformToolset aka non-XP toolsets
Basically I ran
find . -name "*.vcxproj" -exec sed -i -e 's/_xp//' {} \;

This will likely break XP, but it paves the way on Windows for a PCSX2
that does not require the DirectX redistributables to be installed for
Windows 8, 8.1 and 10 users. Windows Vista and 7 users will still require
the DirectX redistributable files for XInput and XAudio, though PCSX2
should still be capable of running if a user does not actually use either
of them.
2016-03-13 12:04:28 +00:00
Jonathan Li 2d4e2fb8cb windows: spu2-x does not use the emitter
So let's not specify it as a build dependency.

Also remove some unnecessary manual library linkage and remove the
wsWidgets GUI property sheet, which does nothing useful.
2016-02-28 11:08:08 +00:00
Jonathan Li d5e56c7e76 spu2-x: Use _WIN32 for Windows preprocessor macro 2016-01-27 22:49:41 +00:00
Gregory Hainaut 5a20d629ab spu2x: add comment on the previous fix
Always enabled it for all SDL2 versions. A shift won't kill perf.
And no surprise if they backport the behavior on older version.
2016-01-24 12:41:29 +01:00
Gregory Hainaut 90c5f0e1ae spu2x: tentative fix for SDL 2.0.4 2016-01-24 11:01:41 +01:00
Jonathan Li 8a61c7d336 spu2-x:windows: ifdef XAudio2 2.7 specific stuff
Support for XAudio2 2.8+ still requires build configurations that use
the Windows SDK include and library files (instead of the DirectX SDK
files).
2016-01-17 22:06:32 +00:00
Gregory Hainaut 3f17898bf5 spu2x: linux compilation fix 2016-01-09 14:26:57 +01:00
Gregory Hainaut 74db92bee4 Merge pull request #978 from juhalaukkanen/apple_osx_master_merge
OSX 32bit build
2016-01-08 20:09:37 +01:00
Avi Halachmi (:avih) df356694c5 spu2-x: stretcher: allow minimum latency of 15ms (was 30ms)
15ms latency is too little most of the time, but if the stars align (light game,
fast system, the correct audio output module - portaudio comes to mind), it
might work well/reasonably, so allow it.

Watch the console for stretcher related messages. If you hear bad audio (clicks
etc) or notice reset/underruns messages, it means the latency is too low. The
optimal behavior (stretching is locked to 1:1) is when a message "stretch: None (1:1)"
shows at the console, which isn't followed by a message "stretch: Dynamic" or
resets or spu2 underruns.

I'm pretty sure such low latency with good performance (mostly locked to 1:1)
was not possible in the past, but it seems possible (sometimes) now. Maybe the
previous "black magic" commit helps

The default is still 100ms which is still fine for most cases.

This commit affects Windows. Linux still has a different minimum, probably
mostly due to UI/constants. Maybe someone should test and change that too.
2015-12-25 01:49:53 +02:00
Avi Halachmi (:avih) 22c9d882a8 spu2-x: stretcher: dampen the tempo adjustment to reduce resonance
I don't have a fully scientific explanation here, but it seems that with big
buffers (~200ms and up), the stretcher adjustment can overshoot the target
equilibrium back and forth, in effect never stabilizing.

This commit makes it change slightly slower which somehow seems to improve its
behavior. Sorry for not having a better explanation, as at this stage tuning the
stretcher has become somewhat of a black magic.

But hey, if it works...

Tested with buffers from 30ms to 1000ms, and with playback speed and speed
changes between 30% and 500%, and as far as I can tell it only makes it better.

Fingers crossed.
2015-12-24 23:26:29 +02:00
ramapcsx2 05f1dca151 Merge pull request #990 from turtleli/windows-fixes
Windows: Potential fix for XAudio2.7 unload crashes
2015-12-22 16:56:06 +01:00
Jonathan Li 000f4984cf spu2-x:windows: Potentially prevent XAudio2.7 unload crashes
The extra LoadLibrary call prevents XAudio2.7 from unloading since
LoadLibrary reference counts. See
http://blogs.msdn.com/b/chuckw/archive/2015/10/09/known-issues-xaudio-2-7.aspx

Should fix random XAudio2 crashes.
2015-12-20 20:08:20 +00:00
ramapcsx2 43b9caf735 GSdx: default renderer to DX11 hw. SPU2-X: default output module to xaudio2 (portaudio has issues selecting the proper hardware device) 2015-12-20 14:46:59 +01:00