--------------------------------------------------------------------------

12. May, 2002   Version 1.15

- I have fixed a lotta stuff since the last release... too much to
  remember exactly :) But I think that the spu timing is now
  very good, no more beeping sounds in certain games, no
  more cut off samples, no more forever looping sounds (at
  least in the games I have checked). XA volume will now be
  handled correctly, adsr volume envelope is much better, 
  and the save state functions have been improved as well
  (unlike gpu plugins, it can be problematic to do a save state 
  with one spu plugin, and load the state with another one. Well,
  I did my best to load 'alien' spu states, we will see how it works).
  
- Beside the compatibility fixes I've improved the speed of the
  plugin... it's now a "float free" plugin, no emulation func is
  using floating point values any more, which will help cpu's
  with a weak FPU :) 

- There is a new option in the spu plugin... but not a real
  emulation option, no, it's a nice option for developers 
  and/or interested psx emu lovers :)
  The option is named "Enable developer debug mode"... it will
  show an information window as soon as the spu gets started.
  You can see in that window graphically how the 24 sound 
  channels of the spu are used by the game, and you can see
  detailed informations of each channel (including a graphical display
  of the current adsr envelope) by simple mouse clicks. And to isolate
  sound problems, you can turn off each channel/xa sound.
  
- But of course I am aware that the new debug mode only makes 
  real sense when a developer also has the sources of the plugin,
  to see how the values are generated, and how the states are
  handled. So (surprise, surprise) I will make the plugin open 
  source (GPL) in the next days, it will be available under the "P.E.Op.S"
  label, of course. Hopefully some developers with real sound 
  experiences (honestly: I had none when I started the spu plugin)
  can fix the still existing issues with frequency modulation (most
  Square games are using that), improve the noise generator, do
  better reverb effects, and and and... :)
  Currently I am just cleaning up the sources somewhat, make a 
  small documentation explaining how I have handled the spu
  emulation, etc, so I think the sources will be available within two 
  weeks :)


"Sadly sings destiny
 Sadly sings destiny
 For ages I've been waiting
 Now spring is in the air
 Let it in"
- "Sadly sings destiny" by Blind Guardian

--------------------------------------------------------------------------

05. January, 2002   Version 1.14

- First of all: I've fixed a potential lock up situation, 
  which could cause the system to freeze in the past... bad, 
  bad, bad

- Small changes in the frequency mododulation code. It's still
  not right, though. Well, only a few games need it anyway ;)

- Biggest change: complete rewrite of my reverb handling.
  Games using reverb/hall/echo/delay effects will be sounding
  much nicer now :)


"Du sagst dass es bald Kinder gibt
 Wenn man sich in dein rotes Haar verliebt
 So rot wie Mohn, so weiss wie Schnee
 Du bleibst im Winter auch mein rotes Reh
 Ich hab mich in dein rotes Haar verliebt"
- "Rotes Haar" by In Extremo
 
--------------------------------------------------------------------------

Version 1.13 has been skipped for the usual reasons :)

--------------------------------------------------------------------------

02. December, 2001   Version 1.12

- Adjusted the read back adsr volume value... I've noticed
  that a few games (Crash 3) got confused, if the value was
  too big.

- Changed the handling of XA, if a game is running too
  fast. Older versions increased the sound pitch (causing
  'Mickey Mouse' alike voices), the new funcs are simply
  playing the XA faster without changing the pitch.
  There is still a drawback, of course: if the fps rate is not
  constant, the sound will get weird (like an old tape :)

- Removed the "spu irq queue" option for MGS

- Completely changed my spu irq handling (that's why the 
  "spu irq queue" option has been removed). Well, I am still not 
  satisfied, but the new code is working better, imho.
  There are now two "misc" options available in the spu config,
  which are affecting the spu irq timing:

  The first is called "High compatibility mode". If you have a fast
  system, turn it on... the general spu timing will get improved.
  If speed is an issue with your system, use the old "Fast mode",
  it will give you a few additional FPS.

  The second option is called "spu irq - wait for cpu action"...
  Yup, it has the same name as the option in the eternal spu plugin,
  and it works nearly the same way, as far as I can see/hear.
  Btw, the Eternal Spu plugin from Iori and Andy is a very well
  done psx spu plugin, 

  You will need both the "high compat" and the "wait for cpu"
  option to play "MGS" (and yes, finally the sound will be nearly 
  perfectly synched with the game), and for "Valkyrie Profile", too.

  "Thousand Arms" is also working fine now, still you will need the
  "10023458 = 0" cheat to play the game in epsxe 1.4 (and use 
  "wait for cpu" to silence certain popping noises)

  Oh, and yes, the "wait for cpu" option shouldn't be used in Chrono
  Cross or Legend of Mana, because the movie sound will get
  distorted.

  Another game with spu problems is "Harry Potter"... that one is
  NOT fully playable with my (or yet any other) spu plugin!
  Well, I made it over the introduction by using the epsxe save state
  possibility (quick save before(!) the game is hanging in a loop),
  but also in the main game there are still lock up problems.
  I don't know if the lock ups are only caused by the spu plugins
  (there are, as expected, some spu irqs going on), or if the main
  emus also have to get fixed, but hey, emulation isn't always easy :)
  So, simple advise: if you want to play Harry Potter on your PC,
  go and buy the PC version of that game :)


"Staring in the flames
 We're spinning 'round the sun
 Singing without words
 We're spinning 'round the sun
 Hunting for the wind
 We're spinning 'round the sun
 Trying to leave the cycle
 We're spinning 'round the sun"
- "Spinning 'round the sun" by Ragged Glory

--------------------------------------------------------------------------

15. September, 2001   Version 1.11

- A new option called "Slow timer updates" for systems 
  which had troubles (like heavy stuttering) with my
  previous spu versions. This mode needs a bit more cpu 
  power, so use it only if the sound gets distorted on 
  your pc (I recommend to use it especially on W2000 
  systems)

- Thanx to Maraton, who donated his original Metal Gear
  Solid (NTSC version) to me... because of him I was able
  to investigate sound and game play issues with that
  game.

  (Warning: technical informations below... you can jump
  over that text, but don't dare to send me mails asking
  about spu irqs ;)

  Well, MGS is heavily using SPU IRQs...  one of the harder
  to emulate psx spu features. What is a SPU IRQ, you may 
  ask? Basically the game is setting a special point (irq 
  address) in the spu sound, and if that point is reached 
  the spu has to report it back to the game, so the game 
  has the chance to upload new sound data (or to do whatever 
  it wants/needs to do).

  Main problem in emulating spu irqs: the spu plugins are 
  running asynchron to the main emu (only the internal
  epsxe spu is working in a more synchron way, afaik), so 
  the timing (which is important in emulating the irq) is 
  hard to get right. 

  (Side note: personally I prefer the async mode in spu 
  emulation, that way the music can play on even if the 
  main emu is getting very busy, for example on heavy cdrom 
  access when loading a new game level... 
  synchron spus tend to run out of sound data on such 
  occassions, causing cracks in the music.)

  Oh, well, back to the spu irqs: what will happen, if the
  spu irq timing is messed up by the spu plugin? Usually the
  sound simply stops (the game isn't uploading new sound data).
  But some games (like MGS) seem to get very confused, and 
  the whole game hangs. Because of that issue most main emus
  have some "SPU IRQ" option, when that one is enabled (epsxe) 
  or disabled (fpse) the main emu doesn't care if the spu plugin
  is doing the irq job, instead the irq signal will be always on.
  That way the game will never hang, but of course the sound
  (and sometimes the game timing) will be screwed.

  So, for perfect sound emulation and no hang-ups, you need
  a) to disable the main emu's "always active" spu irq emulation
  b) a spu plugin which is doing its irq job 100% right
  Hehehe, a) can be done by a simple mouse click, but b) is
  nearly impossible with async spu plugins (like my DSound one).

  Well, in this version of my plugin there is a new option 
  called "spu irq queue". When that one is enabled, the spu is
  storing more than one spu irq address, and some internal
  logic decides which address is the 'right' one at the moment.
  That's working very well with MGS, you can also try it with 
  some other games, of course, but in the worst case the sound
  (or the whole game) can stop occasionally.

  Still reading? fine :) Because there is another timing issue 
  with MGS: the gpu vsync... after doing my new SPU IRQ queue
  option the sound was better, but still the game play (mostly in
  cut scenes) was 'pausing' from time to time. First I did think
  it was because of cdrom access, but after taking a closer look
  I've noticed that parts of the display were running at the
  right speed, only 3D objects were not moved by the game engine.
  Strange, eh? Well, after messing around some more I've found 
  that using the "PC fps calculation" fix in my gpus finally 
  solved the pausing (at least in epsxe, there are still 
  problems in fpse, sorry).

  Well, enuff talking, to play MGS in epsxe you have to:
  - disable the epsxe "SPU IRQ hack" option
  - enable my new "SPU IRQ queue" option
  - enable the "PC fps calculation" in the gpu and activate 
    fps limitation
  That way you should get a steady 25/30 framerate, not-too-bad
  sound, and no hang ups :) 

- I've improved my spu save state support. In the old versions
  the plugin only stored the basic spu infos, which caused problems
  in some games on load (missing music after loading a save 
  state). Now the plugin is storing all informations, including
  adsr/irq/internal states, so the sound will be always fine after
  restoring a game, I think.

- And finally: tons of small fixes... some adsr issues improved,
  a new way for frequency modulation (still not right, of course),
  a new noise algorithm, and so on... well, try it... good luck :)


"In a world of spoon-fed emotions
 Intelligence can save"
- "Stand alone" by Iced Earth

--------------------------------------------------------------------------

25. June, 2001   Version 1.10

- A rather quick update: I've found the bug with Grandia 
  and Gran Turismo (and prolly even more games), and
  I could remove a workaround for FF9... and I want to
  do some more GPU work, so I've decided to release the
  1.10 version... have fun :)


"It's not clear if the sound I hear
 Is just the ringing in my ears
 There it is again...
 Did YOU hear that?!"
- "5 a.m. in Amsterdam" by Michelle Shocked

--------------------------------------------------------------------------

24. June, 2001   Version 1.9

- Faster: speed has been increased... it's now nearly at
  Midas level again, sometimes (on heavy pitch changes)
  it's even faster.

- Louder: a new volume option called "loudest"... no need
  to explain that, I think

- Better: improved the frequeny modulation stuff... thanx
  to _Demo_ for help. It's not perfect yet, there are some
  nasty synchronizing probs.

- More compatible: should now work on NT4 / DX5, I hope...
  thanx to lzh for suggestions :)

- More funny: a new 'Mickey Mouse' XA mode is available...
  if you like to play mdecs/xa sounds at very high speed,
  usually some crackly noise will happen (because the
  plugin can't play all the data, if speed is too high). The new
  option changes the XA pitch, so no noise is happening,
  but the sounds get much higher, of course.

- More stable: on very few occasions I've got some light
  win kernel crashs on emu shutdown. Should be fixed.

- The bad news: if version 1.8 only produced stuttering/distorted
  sounds on your system, it's unlikely that the 1.9 version
  will work better. But of course you can try it anyway :)


"When you think that we've used all our chances
 And the chance to make everything right,
 Keep on making the same old mistakes
 Makes untipping the balance so easy
 When we're living our lives on the edge"
- "Blood Brothers" by Iron Maiden

--------------------------------------------------------------------------

14. June, 2001   Version 1.8

- First release of my DSound plugin... nevertheless it 
  has the version number 1.8! Why? Well, the Midas
  plugin will not be continued, there are too many 
  problems with the Midas library when it comes to 
  accurate psx spu emulation.
  The DSound spu plugin is the descendant of the Midas 
  one, and it needs therefore an higher number than
  the last Midas release (otherwise some users would think
  they should use Midas 1.7 because its version is
  higher ;)

- The DSound plugin is very improved compared to
  the latest Midas version... nearly everything has been
  coded from scratch, and many games will be 
  working fine. 
  There are still some issues though, like noise/stuttering
  in the FF8 movies (dunno how I should ever handle those
  running wild spu irqs), beeping steps in Legend of Mana
  (mmm... some loop problem?) or weird sounds in Vagrant
  Stories (missing infos about psx frequency modulation).
  But hey, there will be always a next version! :)

- To get crystal clear sounds you have to play your games
  at the correct speed (50/60 fps)... check out the gpu plugin
  for a fps limitation option, and enable it!


"House upon the hill
 Moon is lying still
 Shadows of the trees
 Witnessing the wild breeze.
 Come on baby, run with me
 Let's run"
- "Not To Touch The Earth" by the Doors
