A Guide to Null2's Software Audio Mixer A PSEmu Pro Compatible Sound Plugin Plugin created by Null2 Plugin Version 1.35 Released 25 March 2001 Documentation by Operations of PSXEmu.com Originally by LordJames Documentation Version 1.35 Last Revised 25 March 2001 ---------------------------------------------------------------------------- TABLE OF CONTENTS ---------------------------------------------------------------------------- 1) Introduction 2) Requirements and Installation 3) Settings 4) Frequently Asked Questions 5) Reported Problems 6) Plugin Revision History 7) Contact Info and Thanks ---------------------------------------------------------------------------- 1) INTRODUCTION ---------------------------------------------------------------------------- Null2's PSEmu Pro plugin is currently one of the highest quality sound plugins available, with the added bonus of having a low resource usage. Basically, if the Internal ePSXe SPU doesn't work nicely for you, then give this one a try. I'm sure you will like it. :) Because there has been some confusion concerning this, I would like to make it perfectly clear right here. I DID NOT MAKE THIS PLUGIN. I am only writing the documentation for it. A guy by the name of Null2 created this plugin, hence the name "Null2's Plugin". You can find his webpage at: http://www.psxemu.com/null ---------------------------------------------------------------------------- 2) REQUIREMENTS AND INSTALLATION ---------------------------------------------------------------------------- Things you need to use this: - A PlayStation Emulator that uses the PSEmu Pro plugin system - Windows 9x/ME/2000 - A sound card :) - The Visual Basic 6 Runtime libraries Installation: Copy the file "spuNull2Mixer.dll" into the plugin directory of your PlayStation emulator. If using ePSXe, you can then select the plugin by going into the "Config" menu, and selecting "Sound". Once there, just select the "Null2's Software Audio Mixer" plugin, and configure the plugin as you see fit, keeping in mind the following explanations for each of the settings. ---------------------------------------------------------------------------- 3) SETTINGS ---------------------------------------------------------------------------- Driver Configuration - Attributes The Attributes setting allows for a selection of the sampling rate of the audio that the plugin produces. The original sampling rate of audio for the PlayStation is 22050Hz, 16Bit, so any of the available settings will allow for accurate sound reproduction. RECOMMENDED SETTING: 44100Hz, 16 bit Driver Configuration - Buffer Length The length of the sound buffer! :) The smaller the buffer size, the higher the risk of corrupt/choppy sound. The larger the buffer size, the longer the delay between when the sound is triggered and when it is played (resulting in lag). If you are experiencing corrupt/choppy sound with the default setting of 30, then increase the buffer by 10 until you find a good setting for your computer. After a short poll, it seems that most people use a "Buffer Length" setting of 40. RECOMMENDED SETTING: 40 Driver Configuration - Block This setting controls the number of sound blocks processed at one time. The higher this number, the less lag there will be, but it may require more CPU time to process multiple blocks at once. It appears that the difference in CPU time is negligible though. After a short poll, it seems that most people use a "Block" setting of 5. RECOMMENDED SETTING: 5 Driver Configuration - Interval The "interval" displays how much lag you receive in the sound. For example, an interval of 10ms will result in the sounds for the game playing 10ms after the are triggered. This number is a created by dividing "Buffer Length" by "Blocks". So if "Buffer Length" is set at 40, and "Blocks" is set at 5, then the lag will be 8 milliseconds. An "interval" of 25 or less should be more than acceptable to most people. RECOMMENDED SETTING: Less than 25ms Misc. - Use Reverb Adds reverberation effects to sound effects and music that call for it. It probably costs more CPU time to do so though, so if speed is an issue on your system, then try turning this off. RECOMMENDED SETTING: ON Misc. - Reverse L/R This simply reverses the speakers that the audio is output to. On my system, this plugin seems to output to the wrong channels, so I need to have it on. Your requirements may vary :) Misc. - Force VAG 48khz Setting this to ON apparently forces the VAG streams (Squaresoft MDECs) to play at 48khz. In my testing, having this on seems to increase to quality of the sound in the videos, but only when your "Attributes" setting is set to 44khz or 48khz. RECOMMENDED SETTING: ON Misc. - Enable tone cache Description coming soon! Misc. - Mute XA/VAG Stream This option toggles whether XA or VAG sounds are played. Leave this setting off for full sound in PSX games. RECOMMENDED SETTING: OFF Misc. - Enable VAG Stream This option is specifically for Final Fantasy 8, Final Fantasy 9, and Chrono Chross. By turning "Enable VAG Stream" on, it enables sound in the MDECs for these three games. There shouldn't be any issues with just leaving it on all the time. Keep in mind that you may need to enable the "SPU IRQ Hack" option in ePSXe as well. RECOMMENDED SETTING: ON Misc. - Linear Interpolation Linear interpolation basically tries building a higher quality (CD-like) sound out of the relatively low quality (tape-like) samples that the PlayStation uses. A lot of times this can result in better sounding audio, but on occasion, it can really mess up the way the audio sounds as well. Overall, turning this on should make the audio nicer, but it will eat up more CPU time, while turning it off should play the audio exactly as the original PlayStation plays it. In the experiences of the people who have reported to me, and myself, the "linear interpolation" option tends to create more problems than it fixes right now. RECOMMENDED SETTING: OFF ---------------------------------------------------------------------------- 4) FREQUENTLY ASKED QUESTIONS ---------------------------------------------------------------------------- A small collection of questions that are commonly asked. Now with answers! Q: Why don't I get sound in the Final Fantasy 8/9 MDECs? A: First make sure you have the "Enable VAG Stream" option turned on. If you are playing Final Fantasy IX from an ISO, then another thing to try is to load the ISO into Daemon Tools and run it from that instead of from the "Load ISO" option in ePSXe. Q: What can I do to help fix choppy/clicking sound (both in-game, and in MDECs)? A: Two things to play with to eliminate choppy sound are "Buffer Length" and "Block" size. Fiddling with both of these will help smooth out the sound reproduction. When messing with the buffer, increase the value by 10 until you find a good setting. With the block setting, decrease the value by 1 until you get accurate sound. Another thing to keep in mind is that the audio and video of PlayStation games seem to be extremely dependant on each other, so if the video in your game isn't holding a steady 60fps (50fps for PAL), then the audio will start to chop along with the video. This appears to be the most evident in MDECs. Something you can try to fix this is use another GPU plugin, or turn on frameskipping in the plugin you are currently using. Also you can try setting the "Frame Limit" option of your plugin to about "65" or "70" and it may help clean up the sound. Yet another thing you can try is turning off unnecessary settings such as "Linear Interpolation", since the overall experience is similar without that setting, and it will save you some CPU time. Q: Why isn't the Null2 plugin showing up in ePSXe? A: The Null2 sound plugin needs the Visual Basic 6 runtime libraries installed in order to work. This problem should only be apparent on Windows 98 (original) and Windows 95. The Visual Basic 6 Runtime files can by found here: http://support.microsoft.com/support/kb/articles/Q235/4/20.asp Q: Why do some games constantly crash on me? A: It's possible that the game is trying to make some sort of sound that the Null2 plugin does not yet emulate correctly, in which case you would need to use a different SPU plugin (such as the internal ePSXe SPU, or Pete's MIDAS SPU). One thing to try is set your "Buffer Length" and "Blocks" settings to different values, like "80 and 2" or "100 and 5". I have found that changing these does clean up some instability issues on some people's systems (most notably in Windows 2000). Q: So, should the ePSXe option "SPU IRQ Hack" be ON or OFF? A: I'm not quite sure yet. :) In the plugin versions previous to 1.24, it was required to be ON in most cases, but according to the release notes of the 1.24 version, you should turn the "SPU IRQ Hack" option OFF. The only problem is that on my system the emulator either A) crashes, or B) produces clicky sound when it's OFF. So for now, I can just tell you to try both and go with what works best on your machine. Update - Some recent testing (Thanks Mercury) concluded that you should leave this option on for best results, especially for Square games. However you should still test it both ways on your system. ---------------------------------------------------------------------------- 5) REPORTED PROBLEMS ---------------------------------------------------------------------------- The following is a list of reported problems that don't currently seem to have a solution. None of these problems have been personally verified, so your experiences may vary. If any of these bugs/problems have been fixed in a later revision of the plugin, then please notify me! Bugs as of v1.35 - None reported yet Bugs as of v1.34 - None reported yet Bugs as of v1.33 - None reported yet Bugs as of v1.32 - None reported yet Bugs as of v1.31 - Seems to have some choppy MDECs in various games. Bugs as of v1.30 -None reported yet Bugs as of v1.24 - None reported yet :) Bugs as of v1.23 - VAG Options seems to crash some games when certain MDECs start to play. (ex. FF9, Chrono Cross) - FF9 - Crash at MDEC when the airship crashes into the forest (Disc 1, FMV006B.STR) After the 2nd save point in the game. Bugs as of v1.22 - The voice samples in Breath of Fire 4 do not play correctly. - MDECs in Chrono Cross may cause Null2/ePSXe to crash. ---------------------------------------------------------------------------- 6) PLUGIN REVISION HISTORY ---------------------------------------------------------------------------- A simple list of the changes made to the plugin throughout its history. Null2's Software Audio Mixer v1.35 Released 25 March 2001 - Added support for ePSXe savestates - Added VAG cache option (probably not required) - Some bugs fixed Null2's Software Audio Mixer v1.34 Released 20 March 2001 - DSR should work quite correct now. (no, still no save states) Null2's Software Audio Mixer v1.33 Released 20 March 2001 - Fixed mistake of reading "Sound buffer address", so the sound of PSX start up becomes correct. - Added linear interpolation of envelope curve. - Some bug fixes. Null2's Software Audio Mixer v1.32 Released 19 March 2001 - A small delay of CD-XA - Added exponential DR(ADSR) - Fixed RR(ADSR) Null2's Software Audio Mixer v1.31 Released 18 March 2001 - Fixed SPU irq timing - Added exponential RR(ADSR) - Still no save-state support Null2's Software Audio Mixer v1.30 Released 11 March 2001 -Fixed only ADSR by analyzing the real PSX. -Savestate support hasn't been added *yet* Null2's Software Audio Mixer v1.24 Released 25 February 2001 - Added support for SPU IRQ - Added "Force 48kHz VAG" option - Removed the "For Win2000" option - Misc bug fixes Null2's Software Audio Mixer v1.23 Released 04 February 2001 - Misc bug fixes Null2's Software Audio Mixer v1.22 Released 29 January 2001 - Linear interpolation for CD-XA - Changed buffer overflow procedure for CD-XA - Small interface changes Known problems: - VAG stream decoding (FF8,FF9,Chrono Cross) is not currently emulated correctly Null2's Software Audio Mixer v1.21 Released 28 January 2001 - Support for mono CD-XA sound added Null2's Software Audio Mixer v1.20 Released 21 January 2001 - Added Windows 2000 support - Added a switch for linear interpolation Null2's Software Audio Mixer v1.18 Released 15 January 2001 - Added Chrono Cross VAG emulation Null2's Software Audio Mixer v1.17 Released 09 January 2001 - Added switch to reverse the left and right audio channels - Added switch to play VAG for FF8/9 - Fixed ADSR Null2's Software Audio Mixer v1.16 Released 12 November 2000 - Fixed a bug in 1.15 that caused excess noise in MDECs Null2's Software Audio Mixer v1.14 Released 30 October 2000 - Support for VAG streams (plays MDECs in FF8/FF9 with sound) Null2's Software Audio Mixer v1.13 Released 29 October 2000 - Unknown Null2's Software Audio Mixer v1.12 Released 27 October 2000 - Unknown Null2's Software Audio Mixer v1.11 Released 22 October 2000 - Unknown Null2's Software Audio Mixer v1.10 Released 21 October 2000 - Support added for envelope mode Null2's Software Audio Mixer v1.05 Released 24 September 2000 - Modified the interface Null2's Software Audio Mixer v1.04 Released 10 September 2000 - Lower distortion of the audio Null2's Software Audio Mixer v1.03 Released 09 September 2000 - Better support for Final Fantasy VIII and Final Fantasy IX Null2's Software Audio Mixer v1.02 Released 05 September 2000 - Plugin stability increased - Removed non-significant functions - Added ADSR's volume for FF8/FF9 - Misc bug fixes Null2's Software Audio Mixer v1.01 Released 03 September 2000 - Misc bug fixes Null2's Software Audio Mixer v1.00 Released 27 August 2000 - Plugin stability increased - Removed non-significant functions - Misc bug fixes Null2's Software Audio Mixer v0.39 Released 30 October 1999 - Fixed a small bug Null2's Software Audio Mixer v0.38 Released 27 October 1999 - Speed optimizations Null2's SPU plugin v0.37 Released 10 October 1999 - Fixed a loop bug - Fixed problems of key-off - Added low pass filter - Fixed some critical bugs Null2's Software Audio Mixer v0.36 Released 05 October 1999 - Fixed loop bug Null2's Software Audio Mixer v0.35 Released 04 October 1999 - Fixed loop calculations - Added digital reverb test Null2's Software Audio Mixer v0.34 Released 29 September 1999 - Fixed CD-XA frequency Null2's Software Audio Mixer v0.33 Released 18 September 1999 - Added envelope test function Null2's Software Audio Mixer v0.32 Released 16 September 1999 - Fixed several memory bugs - Fixed volume bug - Improved definition of samples - Added 32-bit mixing mode Null2's Software Audio Mixer v0.2 Released 12 September 1999 - Improved CD-XA delay Null2's Software Audio Mixer v0.1 Released 05 September 1999 - Added CD-XA support - Corrected sample playback pitch ---------------------------------------------------------------------------- 7) CONTACT INFO AND THANKS ---------------------------------------------------------------------------- Thanks to LordJames who started it all. For if it wasn't for him, you wouldn't be reading this right now :) The author of this great plugin, Null2, can be reached at: null@psxemu.com If you find any information that I am missing in this documentation, or have any more FAQs that you feel I should add, then please contact me at: operations@psxemu.com Any feedback will be appreciated! :) Many thanks to Null2 for building this fantastic plugin. We all appreciate your hard work! Thanks also go out to PSXEmu.com, the boyz at EmuPound.com and to the users of the PSXEmu message boards. Mucho Big thanks to Mecury from the boards, as he did a lot of testing concerning the "What can I do to help fix choppy sound (both in-game, and in MDECs)?" question!