You are on page 1of 6

-------------------------------------------------------------------------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

You might also like