fMSX-PSP v3.1.2
---------------
http://www.akop.org/psp/fmsx

(C) 2007 Akop Karapetyan
(C) 1994-2007 Marat Fayzullin

fMSX-PSP is a port of the fMSX emulator to the PlayStation Portable platform. 
It is based on version 3.1 of fMSX and should run on any PSP with firmware 1.50 
in user mode (if you have luck running it on another firmware revision 
[with or without a special tool], drop me a line). The emulator uses GU 
(Graphical Utility Toolkit) for rendering.

New features:
------------
Version 3.1.2:

    * Added support for cartridge type selection in the System menu. This adds 
      support for games like Zanac Ex, which are not detected correctly
    * Preliminary ZIP file support. Emulator will load ROM or DSK files from a 
      ZIP file, provided there's only a single compressed file per ZIP. System 
      ROM's must still be uncompressed (or GZIP compressed)
    * GZip file support - emulator can load cartridges and disk images from 
      gzip compressed files. Save states are also much smaller in size
    * GUI changes, wording changes

Installation:
------------
Unzip fmsxpsp.zip into /PSP/GAME/ folder on the memory stick. This should
create the following directory tree:

  + PSP/
    + GAME/
      + FMSXPSP/
        + CONF/ (contains keyboard mapping)
        + ROMS/ (contains game roms and disk images)
        + SCREENS/ (contains screenshots)
        + STATES/ (contains save states)
        + EBOOT.PBP
        + [MSX system roms]
        + [any other files]
      + FMSXPSP%
        + EBOOT.PBP

Please note that system ROM's must reside in the same folder as the PBP
file. Game ROM's and disk images (DSK files) may reside anywhere (the ROMS
subdirectory is recommended, but not necessary).

Key configuration:
-----------------
fMSX-PSP currently "ships" with the following default key mappings:

During emulation:

  * Analog stick - Joystick up/down/left/right
  * D-pad - Keyboard up/down/left/right
  * [ ] (square) - Joystick button A
  * X   (cross) - Joystick button B
  * O  (circle) - Spacebar
  * R trigger - Displays the virtual keyboard, for as long as the button
                is held
  * L + R triggers - Return to fMSX-PSP menu

When the virtual keyboard is on:

  * D-pad - navigate the keyboard buttons
  * O (circle) - tap a virtual button
  * ^ (triangle) - unstick any sticky virtual buttons (see next section)

Keyboard mappings can be modified for each game. By default, button 
configuration changes are not retained after a mapping is modified. To save 
changes, press CIRCLE after desired mapping is configured. To set the mapping
as the default mapping, press SQUARE - to load the default mapping press
TRIANGLE.
 
Virtual keyboard:
----------------
For the most part, the virtual keyboard is just like a regular keyboard, with
a few exceptions:

  * Holding down CIRCLE causes the virtual button to be tapped at an
    interval - the virtual button is _not_ held down
  * Certain virtual buttons (specifically, SHIFT, CTRL and GRAPH) are 
    "sticky" - the virtual button remains held down when CIRCLE is tapped. 
    Tapping CIRCLE again releases the virtual button. This allows SHIFT, CTRL
    and GRAPH all to be held down at the same time, while the user presses
    another virtual button. To unstick all sticky buttons, press TRIANGLE

Optimization:
------------
Most games will run at 100% speed with either a) 1 frameskip per update, or b)
300Mhz PSP clockspeed. For all MSX1 games and most MSX2 games, you can use 
300Mhz clockspeed with VSync to achieve pretty flawless rendering. Some larger 
games (like Metal Gear 2) are actually slow with VSync enabled - those work 
well with the Frame limiter set to 60 frames per second, and VSync disabled.
I usually use 60fps limiter with 0 frames skipped at 300Mhz. Note that anything
above 222Mhz will deplete your PSP battery faster.

Known issues:
------------
There is currently a speed issue with Metal Gear and Vampire Killer (others
may be affected) - these games run abnormally fast at times, even with 
appropriate timing. I do not know what's causing the issue - if you have any 
idea, drop me a line.

Version history:
---------------
Version 3.1.1 (Apr. 20, 2007; initial release):

  * Three available rendering modes: normal size, 4:3 scaled, 16:9 scaled
  * State loading/saving, with a thumbnail icon for each state (up to 10 
    states per game)
  * Controls configurable for a particular game
  * Frame limiter, frame skipping, vertical sync, PSP clock frequency 
    adjustment
  * Support for two cart slots and two disk drives
  * On-screen virtual keyboard

Thanks:
------
fMSX-PSP would not be possible without the work of thousands of other
programmers. I have benefitted greatly from the source code of the
following PSP programs:

PSPMSX by zx81
NesterJ by Ruka
Snes9XTYL by YoyoFR, Thunder, Laxer
[CPS1|CPS2|MVS]PSP by NJ
PSPSDK examples

and many others. I'm also thankful to Marat Fayzullin for taking time to 
answer some questions.

Some personal thanks are due to the authors of SNES9XTYL, DGEN for PSP and 
[CPSx|MVS]PSP emulators - the hard work evident in the polished interfaces
of the emulators is inspiring, if nothing else. fMSX-PSP was an attempt to
bring a similar interface to PSP MSX emulation (whether it's achieved that
or not is anyone's guess :)

P.S. Long live PSP development!

---------------
Akop Karapetyan
