            F P S E - *Free* or *Final* Playstation Emulator
            ================================================

                            VERSION 0.09

Index
------
1.  Introduction
2.  Compatibility
3.  System requirements
    3.1 Intel(TM) systems with Microsoft(TM) O.S.
4.  Installation
5.  Configuration
    5.1  Hardware Setup
        5.1.1  CPU Emulation
        5.1.2  Bios & HLE
        5.1.3  Miscellaneous
    5.2  Memory cards
    5.3  Serial ports
    5.4  Plugins
        5.4.1  Graphic
        5.4.2  Audio
        5.4.3  Controllers
        5.4.4  CD-ROM
        5.4.5  Parallel Port
    5.5  Multiple configurations
    5.6  Language localization
6.  Using of Development Center.
    6.1  Script files
    6.2  Script Center
    6.3  Direct Mode
7.  Using of Emulator 
    7.1  Symbols used on the console
    7.2  Command line options
8.  Contacts.
9.  Thanks.

======================================================================

1.  Introduction
----------------
FPSE is a software that emulates the Sony Playstation(TM).
The use of this software implies the acceptance of all the
terms contained in TERMS.TXT.
If you don't agree with these terms, you must immediately remove
FPSE from your system.

2. Compatibility
-----------------
* Easily portable MIPS R3000 compiler on many CPUs.
  It supports register caching and jump prediction.
* MIPS R3000 interpreter, theoretically in a position to work
  on whichever system. It's fast for being an interpreter...
* Multi-engine architecture for GTE and MDEC.
  FPSE is able to find the best engine for the system in use.
* Detection of COFF, CPE e PS_EXE executable formats.
* Fairly good GTE Emulation.
* Decoder MJPEG-like emulation.
* Serial port and link cable emulation.
* Parallel port emulation.
  There's no need of external cheater software.
  Through a plugin-architecture it's possibile to emulate whichever
  parallel device like GameShark and DexDrive.
* BIOS emulation (HLE, but still partial).
* Good CDROM emulation.
  An intelligent manager for sector caching is included.
* Decoder ADPCM.
* SIO Emulation.
* Dualshock protocol emulation.
* Memory cards emulation.
  Support for all the formats of memory card existing.
* Allow the use of PSEmuPro plugin.
* Speed adjustment both automatic and manual.

3. System requirements
------------------------
Technically, FPSE is in a position to working on whichever system.

FPSE v0.09 has been realized on this PC:
* 486DX 33MHz
* 8 MB ram
* Harddisk 250 MB
* Videocard ISA Cirrus Logic 5420 1 MB
* 8X CDROM Reader.
* Mouse, keyboard and a monitor.

The emulator starts and works. Playing with it, is another thing.

The following are more realistic requirements for several systems.

3.1  Intel(TM) systems with Microsoft(TM) O.S.
----------------------------------------------------------
* CPU Pentium Intel, AMD or of other marks, AT LEAST 166 MHz,
  for having a nearly real emulation.
* Takes advantage of MMX, 3DNow! and SIMD extensions,if they are present.
  These thanks to the multi-engine architecture.
  At the moment of the drawing up of this document, only the MDEC engine 
  is in optimized version. The currently present GTE is only in the 'universal'
  version, written in C.
* A 3D Card is surely of aid.
  Unfortunately at the moment for the 3D acceleration the only solution is to 
  take advantage of the PSEmuPro plugins.
* For being able to listen to the audio you need a soundcard in a position
  to being used in Windows and, therefore, from a PSEmuPro plugin.
* A CD-ROM reader at least 2X.
* Mouse, if you want to emulate the device SCPH-1030.
* FPSE has been tested on following operating systems:
  - Windows 95
  - Windows 98
  - Windows NT 4.0
  - Windows NT 2000
  Without giving any compatibility problem.

At the moment the following plugin are available:

GPUNULL  = Null graphic plugin. It generates no graphics on screen.
GPUPSEMU = It allows to use the PSEmuPro GPU plugins. 
           It manages the functionalities introduced from the
           more recent emulators.
SPUNULL  = Null sound plugin. It generates no audio.
SPUPSEMU = It allow to use the PSEmuPro SPU plugins.
           It takes advantage of extensions .0 if available.
JOYNULL  = It emulates a gameport without connected controller.
JOYKEY   = It emulates the controller on the PC keyboard.
DMOUSE   = It emulates the mouse SCPH-1030 through PC mouse.
CDNULL   = It emulates and empty cd reader.
CDPSEMU  = It allows to use the PSEmuPro CD plugins.
           It takes advantage of the extensions introduced from PCSX 
           to play tracks, if available.
CDCTRL   = native CD plugin for FPSE. Only for Windows NT 4.0 e NT 2000.
PARNULL  = It emulates an empty parallel port.

4.  Installation
-----------------
1) Unzip the FPSE archive, preserving the structure of the directory
   in the archive.
2) Copy one or more original BIOS images under directory '/BIOS'.
   Remember that for being able to use legal a BIOS you must possess
   a true PSX.
3) Copy the PSEmuPro plugins that you have intention to use under
   directory '/PLUGINS/PSEMU'.
4) FPSE is able to using remote memory cards, however it's possible
   to copy yours preferred memory cards under '/MEMCARDS'.

To this point, it's necessary to proceed to FPSE configuration.

5.  Configuration
------------------
FPSECFG is the tool that you must use everytime you want to modify
the FPSE configuration.
Making double click on FPSECFG.EXE a dialog window (only the first time) 
will ask you for the acceptance of the terms of use of FPSE.
Agree the terms and FPSE will start.

5.1  Hardware Setup
----------------------
This windows contains some options for the emulation of several
internal components of the PSX.
Varying these selections the FPSE performances can change
radically.

5.1.1  CPU Emulation
---------------------
FPSE can emulate the MIPS R3000 microprocessor through a compiler
or an interpreter. It advisable to use always the compiler, if there
are no particular requirements.
FPSE contains two different compilers that they work in parallel, so that
it generates a considerably better code regarding all those already existing.
FPSE can configurate the compiler in MODE1 or MODE2, according to the type of
optimizations that are wanted to be carried out in phase of compilation.
In both modes FPSE carry out optimizations of register caching and jump prediction.

5.1.2  Bios & HLE
-----------------
At the moment FPSE it still needs of the original BIOS of the PSX for being able
to work. However the BIOS emulation will be available in the emulator as soon as possible.
The selection between original BIOS and HLE comes carried out through the
checkbox "Enable BIOS emulation".
When the original BIOS is selected, the checkbox "Emulate console I/O"
allows to decide if to emulate the output of the console on the screen or not.

5.1.3  Miscellaneous
--------------------
The following options can have a remarkable impact on the performances.
- Automatic Speed control:
    Enabling this option FPSE will limit his speed to 50 frame per second
    for PAL systems and to 60 frame per second for NTSC systems.
- Show MDECs in black and white:
    This option relieves the workload delegated to the CPU in the 
    visualization of the movies and, in some cases, for static images.
    Select this option in the case you don't have a system much powerful.
- Disable optimized engines for MDEC and GTE.
    It's recommended not to disactivate this option, because it can deteriorate
    the performances. To activate only if FPSE shows problems of corrupted graphics
    or system block.

5.2  Memory cards
-----------------
FPSE have a well-developed memory card manager.
It recognize all the existing formats:
* RAW image file, used from the PSEmuPro, Bleem! and others emulators.
* Image file used from the Virtual Game Station.
* DexDrive image files.
* DataDeck image files.
For every slot the following controls are available:
* FORMAT: it cancels permanently the contents of the memory card.
* NEW: it creates one empty memory card in one of the recognized formats.
* SCAN: in order to use image files remote to the directory of FPSE.
        This allows to share the memory cards between different emulators,
        without need of copying them in the directory '/memcards' di FPSE.

5.3  Serial ports
------------------
FPSE emulates the serial port of the PSX on any COM port.
It's possible to activate the emulation and to select one the
available ports.
ATTENTION: The serial ports, at least in Microsoft Windows systems, do not have
to be bound from a driver, as mouse or a modem.
Otherwirse FPSE will not initialize itself and will give an error message
during the start.
If you are not sure or you don't agree to use this functionality
disactivate it thorught the appropriate checkbox.

5.4  Plugins
------------
Perhaps FPSE encloses the more evolved plugin-architecture seen into
a PSX emulator.
The following type of plugins are available:
* Plugin for the managment of the graphics.
* Plugin for the managment of the sound.
* Plugin for the managment of the input devices.
* Plugin for the managment of the CD-ROM.
* Plugin for the managment of parallel port.
Some additional options are moreover available that can give impact to the
performances, but the compatibility, it's not influenced.
In order to select plugin in one category (graphic, sound and so on)
select it from the associated listbox.
Every type of plugin has 2 standard controls:
1) About: show in a windows some informations on the plugin selected.
2) Configure: in order to proceed to the configuration of a plugin.

5.4.1  Graphics
---------------
Select from the listbox the plugin you want to use for the managment of the graphic.
It's available a checkbox "Allow external MDEC engines" in order to
use eventual MDEC codec included in the plugin.

5.4.2  Audio
------------
Select from the listbox the plugin you want to use for the managment of the sound.
There are no additional options.

5.4.3  Controllers
------------------
Select from the listbox the plugin you want to use for the managment of the controllers.
There are no additional options.

5.4.4  CD-ROM
-------------
Select from the listbox the plugin you want to use for the managment of CDROM.
Some options are present that can drastically increase the speed of the emulator 
in many cases:
* Enable sector cache: this options activate a mechanism of cache of the read
  sectors. Can give a remarkable impact on the performances if the program in
  emulation uses some sectors frequently respect to others.
  When this option is activated, the next control allows to decide of how many 
  sectors must hold trace the cache manager.

* Speed: it allows to select the speed with which the data are read from CD.
  On some slow systems allows to obtain more fluid movies and less interrupted musics.
  If the speed is too much elevated it's possible to lose the synchronization between
  graphic and sound.
* Country: to simply select the own region of belongings.

5.4.5  Parallel port
----------------------
Select from the listbox the plugin you want to use for the managment of the
parallel port.
There are no additional options.

5.5  Multiple Configurations
----------------------------
It's possible to save and load configurations without the need to change
manually all the options available.
Here some situations in which it's possible to take advantage of this option:
* One configuration with BIOS PAL and one with BIOS NTSC.
* One configuration to approach the shell of the BIOS (that is: the BLUE screen
  with MEMORY CARDS/CD PLAYER selection).
* One configuration with or without sound.
And so on...
In order to save a configuration you must write the name in the combobox 
(or select an existing one for overwrite it) and to make click on
the push-button SAVE.
in order to load a configuration you must select it from the list and to make 
click on the push-button LOAD.


5.6  Language localization
-------------------------------
FPSECFG can be personalized in one whichever language.
This is possible by creating a specified INI file in the directory LANGUAGE.
See the included files for italian and english like example.
In order to select a different language select it from the combobox and to make
click on the push-button APPLY.

6.  Use of the Development Center
---------------------------------
The Development Center (or DevCenter) is an environment to supply to all the
PSX software developers a valid instrument for the realization of their projects.
The window of the DevCenter is divided in 2 parts: Script Center, that it contains
a complete interface based on script file and integrable with the GNUC compiler,
and Direct Mode, that it allows to manually launch a single executable at a time.
The push-button "Return to main" takes you back to main dialogbox. 

6.1  Script files
-----------------
The script files are text files that contain a list of operations for the correct 
loading of the software (data, executable,..) inside of the PSX memory.
The syntax of the commands is:

<command> <filename> <optional_address>

The commands are two:

LOAD = Load <filename> in memory.
RUN  = Load <filename> in memory and execute.

FPSE recognizes COFF, CPE and PS_EXE formtas, therefore if the parameter <optional_address>
is missing, then the address is obtained from the executable itself.
For loading files that are not executables then the parameter <optional_address>
is obligatory.

6.2  Script Center
------------------
By activating the Script Center the following controls are available:
* A editbox where to write the name of the script file to execute.
* A push-button for browsing the directory and for selecting the script files.
* A checkbox for showing full script info
* Add: It adds a file to the script.
* Remove: It removes a file from the script.
* Address: To change the loading address of the non-executable file.
* Target: To select the file to launch for first to the execution.
* Save: It saves the script file.
* Run:  It executes the script file.
* Delete: It cancels all the content of the script file.

6.3  Direct Mode
----------------
By activating the Direct Mode the following controls are available:
* A editbox where to write the filename to execute.
* A push-button for browsing the directory and for selecting the executable files.
* The push-button "Run" starts FPSE with the selected file.

7.  Use of emulator
----------------------
Once configured FPSE with FPSECFG.EXE launch FPSE.EXE.

7.1  Symbols used on the console
---------------------------------
FPSE uses a special notation in phase of initialization.

(.) = the operation has been completed without problems.
(!) = the operation has not been completed or has been completed with
      some difficulties, but however it's possible to continue.
(x) = the operation has not been completed because of an 
      irreversible error.

7.2  Command line options
-----------------------------------
The syntax of the command line is:

 fpse [-option(s)] [file]

 file     = Executable filename
 -a       = Show the code generated from the compiler
 -b<bios> = Make use of specified <bios> . If <bios> is not present
            BIOS emulation (HLE) will be activated. 
 -c       = Compiler mode.
 -d       = Disassemble the code in execution.
 -e       = Activate the debugger (only interpreter mode).
 -i       = Interpreter mode.
 -s<file> = Select <file> like script file.
 -v       = Show the accesses to the hardware devices.
 -?       = Show an help screen.

8.  Contacts
--------------------

LDChen, main coder
---> EMAIL = ldchen@emuunlim.com
---> ICQ   = 86592482

!+MrFog+!, Webmaster and betatester.
---> EMAIL = mrfog@emuunlim.com

9.  Thanks
------------------
I can say to have caught up a good result.
But not there would be never successful alone.
For this, first of all, i must thank 2 persons in particular:
SaPu and Mr.Fog.
SaPu is a extraordinary coder and he is author of large part of the 
configuration tool, beyond having contributed to the drawing of several 
parts of FPSE core.
Mr.Fog is the first friend that i have met thanks to Internet and thanks
to FPSE. He is more than a Webmaster.
Without its tests and its encouragement probably I would
have abandoned all much time ago.

Those people who have contributed to the birth of the definitive
emulator, without no order of particular importance follow now all:
* BERO, the legendary coder who started FPSE, have helped me 
  to complete the MDEC decoder in all its functionalities.
* Lu_Zero is the porter of FPSE 0.08 for BeOS system, and i hope that
  its work continues also with FPSE 0.09.
  He has supplied to me useful results obtained on Windows NT 2000 and much more.
* KaRMa has made one deepened surveying on some functionalities of the CDROM reader, 
  allowing me to unblock FPSE from a dead point.
* Skates and Adrox, the masters of EmuSphere.com site, now closed.
  Thanks to you FPSE have been able to be born again from its ashes.
* Kanata, a coder that it is demonstrating of having stuff.
  Thanks for all your suggestions.
* PsYcHoJaK, author of PSinex, thanks for your sincere support.

To the next one release!!!

/********************************************************************/
PlayStation is a registered trademark to the Sony Computer
Entertainment, Inc. " Sony " is a registered trademark to the Sony
Corporation.  Windows and Windows NT are mark recorded to the
Microsoft Corporation.  Microsoft is a registered trademark to the
Microsoft Corporation.  Intel486 and Pentium are mark recorded to the
Intel Corporation.  MMX and SIMD are mark recorded to the Intel
Corporation.  Intel e` a registered trademark to the Intel
Corporation. AMD and 3DNow!  they are marks Micro recorded to the
Advanced Devices, Inc. Bleem!  e` a registered trademark of the
Bleem!,  inc.  Virtual Game Station e` a registered trademark to the
Connectix Corporation.  MIPS and R3000 are mark recorded to MIPS
Technologies Inc.

(Very bad english translation by +=|KaRMa|=+)
