#
# CHANGELOG
#
# [+] Added Feature
# [*] Modified Feature
# [-] Removed Feature
# [!] Other
#
# Dates are in D/M/Y format

26/05/2008 - v0.1.9
 [+] Added Timestretching feature. Added part of the SoundTouch library files.
 [+] Added Winamp DSP plugin support.
 [+] Added Limiter toggle key (defaults to [Numpad -]
 [*] Completely replaced the sound buffering system in the output modules with a centralized one.
 [*] Fixed a few bugs in the savestates: Now the savestats can be used (and seem to work).
 [*] Some changes to the mixer.
 [-] Removed FMod output. Didn't give any improvement over DSound or XAudio2 and added lad.
 [*] Updated config dialog to reflect some of the previous changes.
 [!] Updated the copyright notices in each file.

26/05/2008 - v0.1.8
 [*] Improved the mixer (gives better volumes in many games)
 [*] Coded a working volume fading emulation
 [*] Somewhat better AC3 code, which still doesn't work yet anyway.
 [*] Improved DPL2 dematrixing.
 [*] Many other changes I don't really remember.
 [!] It might be a good idea to reset the settings (delete the .ini).

09/01/2008 - v0.1.7
 [-] SPU2replay disabled until I add options for it.
 [+] Improved the limiter handling to reduce lag (in dsound stereo and 5.1 only).
 [+] Initial AC3 decoding - does NOT work yet!
 [+] Experimental 24/32bit audio input. This allows the CDDA player in the bios to work!
 [+] Added a button on the config to configure the output modules.
     NOTE: None of the modules have a config dialog yet.
 [*] Simplified redundant code in the mixer.
 [*] New experimental register handling method. Might slightly improve the processing speed.


09/01/2008 - SPU2replay alpha 1
 [+] Added SPU2replay feature.
     How does it work:
       1. Play a game using the plugin (it doesn't matter what output mode or audio settings you use).
            The plugin will dump ALL the write events in the game, until the emulator is closed.
            This is a alpha version and doesn't come with option to start or stop the dumping, it always dumps.
       2. In a cmd window, navigate to the pcsx2 folder and run:

            rundll32 plugins\spu2ghz.dll,SPU2replay replay_dump.s2r

          Alternatively, you can set .s2r files to open with "rundll32 plugins\spu2ghz.dll,SPU2replay %1"

       3. Wait for it to finish.
          This alpha version doesn't have a dialog for it yet, so there is no way to stop the replay until it finishes.

     NOTE: The replay feature saves the events as they happened in the specific session it was run,
           it's recommended to avoid playing a replay file with a different version of the plugin,
           in case something changed.

02/01/2008 - v0.1.6
 [*] Converted all the output modules into C++ classes, this way it's easier to manage them.
 [*] Cleaned up some parts of the code.
 [*] Modified the DPLII decoding code to try to improve the quality.
 [+] Added an option to change the LFE lowpass crossover frequency.
 [+] Added "delayed" Irq calls so they are only called once in each T.
 [*] Restored the older decoding function, and partially rewrote it.
     The newer decoder function was breaking some games.

01/01/2008 - WIP2
 [+] Updated the 5.1 module to include experimental ProLogic II decoding (it should give better surround).
 [*] Changed the buffer sizing so that the configured buffer size applies to whole samples.
     This means now settings 1024 as the buffer size will make it 2048 on stereo output, and 6144 on 5.1 output.

31/12/2007 - WIP
 [+] Added a highly experimental Dolby ProLogic decoding (upmixes stereo output into 5.1) output module.
     
30/12/2007 - v0.1.5
 [*] Changed the way the ATTR register is handled. Should fix a lot of games, but it's experimental.
 [*] Changed the thread priority of the output modules to TIME_CRITICAL, so that they have the highest possible priority.
 [*] Updated to latest and final version of FMod 3.
 [*] Changed some parts of register-based (PIO) memory writes to speed up audio streaming writes in RotTK games.
 [+] Added DirectSound output module. It seems to work better than all the other modules so I set it as the new default.
 [+] Added setting of IRQ reason flags. I didn't even know that register existed!
 [+] Added a new ADPCM decoder based on the old one, but with full-block decoding to try to make it a bit faster.
 [-] If running with an older emulator build, the CoreReset feature is executed immediately, without a delay.
     This fixes booting problems in bios and many games that were broken since this feature was introduced.

30/12/2007 - v0.1.4
 [-] completely removed the remains of the "async mixer" mode. It was meaningless without threading, and didn't work.
 [*] Fixed the waveOut output module.
 [*] Fixed a bug where the ASIO output system was using the defaulf ASIO device sample rate,
     regardless of the config value.
 [*] Changed the min. buffer size allowed in the config dialog to 512 isntead of 2400.
     NOTE 1: Sizes too small can increase the CPU usage and might cause audio problems.
     NOTE 2: FMOD and waveOut have this limit increased to 2048.
 [*] Changed some code handling voice looping. I don't know if it will fix or break anything.
 [+] Added partial support for log levels to the register logging system, to remove the basic
     channel attributes from the log files (makes logs more readable and less bloated).
 [+] Added experimental XAudio2 output module. Seems to sound well.
 [+] Added a hidden option to change the AutoDMA sample rate for each core.
     Useful only in some games where the FMVs hang.
 [+] Added a check to the Effects processor to avoid crashes when the effects start address is
     after the effects end address.
 [+] Added /delayload:fmod.dll switch to the linker, so the fmod dll is only needed while
     using the fmod output module.

28/12/2007 - v0.1.3
 [*] Fixed the sync in pre-svn265 pcsx2 builds. Might help with some games.

27/12/2007 - v0.1.2
 [*] Fixed the speed limit dialog setting (it wasn't being handled correctly).
 [*] Changed the way I handle AutoDMA transfers:
     For some reason the data for core 1 was being replaced with 0s,
     so I added a separate temporary buffer to store the data chunks.
     This fixes many FMVs with stuttering audio.
 [-] Commented out some lines that were changing the ATTR register.
     I don't know if this will break anything, but none of the games I tried worked worse. 
 [-] Removed a BAD hack that was breaking thigns instead of fixing.

26/12/2007 - v0.1.1
 [*] Increased the volume shift for the AutoDMA'd audio by 2 (makes the FMVs louder).
 [+] Experimental implementation of "core reset" handling.
 [+] Added a setting to the config dialog to enable/disable the limiter.
 [+] Added a setting to the config dialog to enable/disable all console prints at once.
 [+] Uncommented the AutoDMA transfer message prints as they can now be toggled from the config dialog.
 [+] Added "Public Release" build option that automatically creates the release package.

25/12/2007 - v0.1.0
 [!] First Public release
 [!] Too many changes to remember.
     I promise to list the changes for every release from now on.

30/04/2007
 [+] New feature: Added configuration option "Speed_Limit_Mode" to change the speed limiting algorithm.

     Values:
	0. No limiter
	1. Soft limiter -- less cpu-intensive, but can cause problems
	2. Hard limiter -- more cpu-intensive while limiting, but should give better (constant) speeds

     NOTE: Only implemented in the FMOD output module.

29/04/2007
 [-] Hack: Removed a hack where I was ignoring any KeyOn with ADSR values set to 0.
 [-] Hack: Removed a hack in the ADMA detection code. This could break some games.
 [*] Bugfix: ENDX wasn't being set/cleared correctly. Thanks pSXAuthor for telling me the way it actually works.
 [*] Bugfix: Fixed a bug in the adpcm streaming where I was overwriting the active (playing) block with new data.
             This caused clicks in the audio, and desyncs.
 [!] Any other changes I forgot.

before 29/04/2007
 [!] I wiped the two old changes in the changelog, dated back from 2003.
     I will try to update this a bit more.
     There have been way too many changes in the last 4 years to remember everything.