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

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
