***************************************************
*                                                 *
*            Eternal SPU Plugin v.1.30            *
*                 Official Manual                 *
*                                                 *
***************************************************


What's new?  v.1.20 --> v.1.30 (6 May, 2002)
-------------------------------------------------------------------------------

 + Fixed GUI
 + Fixed Config
 + Changed interface
  - FPSE and PSEmuPro are common registry address.
 + Changed compiling option
  - Binary size became so small.
  - Working speed is faster than before.
 + Added & fixed new interface "SPUasync"
  - When using this function, support by emulator is needed.
 + Removed "Move vag position method"
  - No sound problem is now fixed.
 + Fixed "Realtime config window"
 + Fixed processing of "Thread, Timer"
 + Improved processing of XA sound
 + Changed processing of "Wait for XA buffer is free"
 + Fixed some problems



-------------------------------------------------------------------------------
 # Index
-------------------------------------------------------------------------------

 0. Outline
 1. Usage
 2. Configure
    2-1. [Buffer] - Sound buffer size
    2-2. [Audio out method] - Thread / Timer / SPUasync
    2-3. [Audio out method] - Async mode
    2-4. [Misc] - Show realtime config window
    2-5. [Misc] - Wait for XA buffer is free
    2-6. [Misc] - Fine tune
    2-7. [Special game fix] - Update before accessing register
    2-8. [Special game fix] - SPU IRQ-Wait CPU action
    2-9. [Special game fix] - SPU IRQ-Force interruption flag7
 3. SPU file output function
    3-1. How to record
    3-2. How to play
 4. Configuration save address
 5. Issues
 6. Disclaimer
 7. Thanks
 8. Credit



-------------------------------------------------------------------------------
 0. Outline
-------------------------------------------------------------------------------

Eternal SPU Plugin is a sound plugin for PlayStation emulators.
You can use this plugin on following PlayStation emulators.

 - PSEmu Pro    : discontinued
 - ePSXe        : http://www.epsxe.com/
 - AdriPSX ILE  : http://www.adripsx.com/
 - PCSX         : http://www.pcsx.net
 - PSinex       : http://psinex.psxemu.com/
 - FPSE         : discontinued



-------------------------------------------------------------------------------
 1. Usage
-------------------------------------------------------------------------------

1. Copy files to the plugin folder of emulator.

2. Select [Eternal SPU Plugin x.x] in sound plugin configuration dialog.

3. Push [Config] button, and setting some configuration, finally close dialog.

4. Reboot emulator, enjoy!



-------------------------------------------------------------------------------
 2. Configure
-------------------------------------------------------------------------------

2-1. [Buffer] - Sound buffer size

Set the Sound buffer length. [0-999]
Although default value is [8], please set a value which best fits your sound card.

* Smaller value will give shorter sound delay.
* If the value is too small, the sound will be noisy.


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

2-2. [Audio out method] - Thread / Timer / SPUasync

Set the method of outputting a sound.
Please set the method which best fits your PC.

[Thread]
--> Compatibility is higher than [Timer], but load becomes larger than [Timer].

[Timer]
--> Compatibility is lower than [Thread], but load becomes smaller than [Thread].

[SPUasync]
--> Compatibility is the highest, but load becomes the largest.
  * When using this function, it is necessary to set [buffer size] larger than usual.
    Otherwise, sound is very noigy.
  * Support by emulator is needed.


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

2-3. [Audio out method] - Async mode

Set the working mode of SPUasync.

[Simple]
--> This mode doesn't perform complicated processing.
    If frame rate is high or low, a sound will be choppy.

[Wait]
--> When frame rate is high, gives the weight to become the optimal frame rate.
    When frame rate is low, cleares a delayed part to prevent repeating the same sound. 

[Smooth]
--> With frame rate, adjustes generating the quantity of the sample.
    Sound won't be choppy, but following games which uses SPU-IRQ may give a problem
    to emuration.
  Ex.)
  * Valkyrie Profile <ENIX>
  * Star Osean 2 <ENIX>
  * MetalGear Solid <KONAMI> ...etc


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

2-4. [Misc] - Show realtime config window

To change setting, show configuration window during emulator running.
You can use window mode only, can't use fullscreen window.


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

2-5. [Misc] - Wait for XA buffer is free

This function has emulator to wait for XA buffer is free to be able to put all XA
data into XA buffer.

* During reproduction of XA, even if you removes FPS limit, you can't change the
  speed of emulator.
* Emulator's motion may become unstable.


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

2-6. [Misc] - Fine tune

Set the pitch of sound.

  Ex.)
   10 : 1 half pitch high
  -10 : 1 half pitch low
  120 : 1 octave high
 -120 : 1 octave low


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

2-7. [Special game fix] - Update before accessing register

These are options for solving the problems in specific games.
Keep in mind that these options have great load depending on games or scenes.

[Unchecked]
--> When register reading, DirectSound buffer is not updated.
  * Usual setting

[Checked]
--> When register reading, DirectSound buffer is updated.
    This option is effective in following games.
  Ex.)
  * FinalFantasy8 <SQUARE>    : Opening BGM / air plane BGM
  * FinalFantasy9 <SQUARE>    : Air plane BGM
  * ChronoCross <SQUARE>      : BGM No.59
  * DragonQuest7 <ENIX>       : Ending BGM
  * GensoSuikoden2 <KONAMI>   : Battle BGM           ...etc

[Gray]
--> When register reading/writing, DirectSound buffer is updated.
  * This option solves the sound problem in some games.


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

2-8. [Special game fix] - SPU IRQ-Wait CPU action

Since this option is for specific games, so problem may occur in other games.
This option is effective in following games.

  Ex.)
  * Valkyrie Profile <ENIX>
  * Star Osean2 <ENIX>
  * MetalGear Solid <KONAMI> ...etc

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

2-9. [Special game fix] - SPU IRQ-Force interruption flag7

This option generated SPU-IRQ compulsorily.
This option is effective in following games.

  Ex.)
  * Valkyrie Profile <ENIX>
  * Tales Of Destiney <NAMCO> ...etc



-------------------------------------------------------------------------------
 3. SPU file output function
-------------------------------------------------------------------------------

3-1. How to record

This function is for recording the sound which the internal sound source of 
PSXEmulator sounds.
The SPU file generation procedure is as follows.(Case of ePSXe)

1. [Show realtime configure] is confirmed and PSEmulator is started, the [Record] 
   buttonwill become usable.

2. When you push the [Record] button, start SPU file recording.
   When you push the [Record...] button, stop SPU file recording.

3. The file "spulog.spu" is made in the folder of "..ePSXe".

* It may not work depending on the timing which push [Record] button, and music. 


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

3-2. How to play

If you want to listen to the generated SPU file,

@- SPU plugin for KbMediaPlayer : open source
@- SPUPlayer                    : open source

please get these programs at "http://www1.odn.ne.jp/psx-alternative/".



-------------------------------------------------------------------------------
 4. Configuration save address
-------------------------------------------------------------------------------

Configuration settings are saved at these place.

"HKEY_CURRENT_USER\Software\Vision Thing\PSEmu Pro\SPU\spuEternal"



-------------------------------------------------------------------------------
 5. FAQ
-------------------------------------------------------------------------------

Q. Most fastest setting?
A. Please push the [Default] button.
   You must set [Sound buffer size] which best fits your sound card.

Q. Most highest compatibility setting?
A. Please use [SPUasync].
   When using this function, it is necessary to set [buffer size] larger than usual.
   Support by emulator is needed.

Q. Sound decay time is not exactly?
A. We implemented envelope referring to PSX console, but may still have issues...

Q. Very noisy...
A. Please make buffer size larger than the current value.
   When you use [SPUasync], it is necessary to set [buffer size] larger than usual.

Q. Reverb & Noise emulation is not exactly?
A. Please teach us its logic.

Q. No sound on Windows2000...
A. This plugin is executing multi thread, and changing thread priority.
   please try on "Administrator" user.

 

-------------------------------------------------------------------------------
 6. Disclaimer
-------------------------------------------------------------------------------

This program is freeware and cannot be sold. Also this program cannot be distributed 
without our permission. This program cannot be used for any commercial purposes. 
You may not reverse engineer, decompile, or disassemble the enclosed software.
Authors are not responsible for any damages that this program may cause, and are 
also not responsible for anything this plugin will be used for. Please use this 
plugin under your responsiblity.



-------------------------------------------------------------------------------
 7. Thanks
-------------------------------------------------------------------------------

Reference these souce code.

- SPU plugin interface part in Pete's webpage by Pete
- DSP part in Snes9x by Gary Henderson
- DirectSound implementation part in UOMAME32j by NJ
- Tmidity(Reverb.c) by authors of Tmidity
- ADSR analyse program by null2

Thank you.



-------------------------------------------------------------------------------
 8. Credit
-------------------------------------------------------------------------------

Eternal SPU Plugin v.1.30 for PSX Emulator

Release Day    : 6 May, 2002
Developed by   : PSX SPU Plugin Development Project 
Location       : PSX Alternative!
URL            : http://www1.odn.ne.jp/psx-alternative/ 
Contact        : Iori <iorit@hamal.freemail.ne.jp>
                 Andy <alternative@japan.co.jp>



--------------------------------------------------------------------------------
                                Copyright (C) PSX SPU Plugin Development Project

