
HEY YOU. THAT'S RIGHT, YOU THERE. READ ALL OF THIS FILE. ALL OF IT :)

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

   ExultPSP v2.1.6.26 - 20070810 (first public release)
   Firmware 1.5 build (should work for OE, read below)
   PSP port & additional support graphics by Phantom Fighter
   ExultPSP logo and website by Chemical (MAME logo creator! w00t)
   ExultPSP website: http://www.thefoodsucks.com/chuckles

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

--/  Who goes there?!  \------------------------------------------------

ExultPSP is a port of Exult v2.1 (http://exult.sourceforge.net) which
is a framework that allows you to play one of the greatest CRPGs of
all time, Ultima VII.  It requires you to have the original game(s),
Black Gate/Forge of Virtue  and/or  Serpent Isle/Silver Seed, as it
recreates Ultima VII by using the original graphics and data files.
ExultPSP does not include these for legal reasons.  Please do not ask
me for them.


--/  Smashing. Tell me more!  \-----------------------------------------

ExultPSP represents a bit of effort to coerce the PSP into running
Ultima VII, complicated by not actually owning a PSP, I had to borrow
one :P  By default, Exult will *not* run on the PSP by a simple
compile.  Changes (violent hammering) had to be made to get the
engine to play nice with the PSP.

The Good: Play Ultima VII on your PSP, anywhere, anytime!
The Bad:  Exult and the PSP were not made for eachother. At all.
The Ugly: Exult will continue to consume memory during gameplay beyond
          which the PSP is able to offer.  Crash, imminent.

The PSP is a sexy, fantastic piece of technology. Exult is a phenominal
body of work done by a tireless, dedicated group of individuals who
have been working on Exult for years, and continue to do so to this
day.  Since Exult makes quite liberal use of resources, this
unfortunately doesn't bode well for the PSP.  Neither is at fault,
they simply weren't made with eachother in mind.  I'll spare the
technical details but in short there were glaring issues which
prevented Exult from running, from freakish filesystem limitations on
the PSP to audio memory allocations *cringe* issues on the Exult side,
and so on, but these were eventually skirted/solved.  The remaining
problem is that Exult continues to consume memory whilst playing
(loading/caching/whatever) which eventually exhausts what the PSP has
and crashes. The good news is you should be able to get decent
stretches of playtime before this happens.  With occasional game
saving, you should be fine.


--/  Good show! How do I install?  \------------------------------------

Simply extract the ExultPSP archive to your ms0:/PSP/GAME/ directory.
If you have an OE firmware, extract it to ms0:/PSP/GAME150/
OE users will need to take an extra step because the default ExultPSP
configuration expects to find the game and related files in
ms0:/PSP/GAME/__SCE__ExultPSP/ so OE users will have to edit the
included "exult.cfg" file with your favorite text editor and rename the
GAME paths to GAME150 paths in the file.  There are a few places to do this
and all are located very obviously at the top of the file.

For example, in the config file you'll see:
  ms0:/PSP/GAME/__SCE__ExultPSP/DATA

and for that to work on OE firmwares, it will need to be changed to:
  ms0:/PSP/GAME150/__SCE__ExultPSP/DATA

Straightforward, yeah?

Create a directory on your memstick INSIDE the __SCE__ExultPSP/
directory called "ULTIMA7" and copy the "STATIC" directory from
an actual Ultima 7 (Black Gate/Forge of Virtue) game there.

You should now have a directory structure that looks like:
  ms0:/PSP/GAME/__SCE__ExultPSP/ULTIMA7/STATIC
or in the case of OE users:
  ms0:/PSP/GAME150/__SCE__ExultPSP/ULTIMA7/STATIC

If you happen to have the Ultima VII Serpent Isle/Silver seed game
and wish to play that, the steps are similar:

Create a directory on your memstick INSIDE the __SCE__ExultPSP/
directory called "SERPENT" and copy the "STATIC" directory from
an actual Ultima 7 (Serpent Isle/Silver Seed) game there.

You should now have a directory structure that looks like:
1.5: ms0:/PSP/GAME/__SCE__ExultPSP/SERPENT/STATIC
OE:  ms0:/PSP/GAME150/__SCE__ExultPSP/SERPENT/STATIC


--/  Sounds good! Speaking of sounds...  \------------------------------

ExultPSP requires a soundpack if you want to hear sound effects.
Go to http://exult.sourceforge.net/download.php and grab the
jmsfx.zip ("Sound pack for Black Gate") file, and extract it to
  ms0:/PSP/GAME/__SCE__ExultPSP/DATA/soundfxbg/
You'll have to do the same for Serpent Isle/Silver Seed if you have
the game, as there is a specific sound pack for it too:
jmsfxsi.zip ("Sound pack for Serpent Isle"), and extract it to
  ms0:/PSP/GAME/__SCE__ExultPSP/DATA/soundfxsi/

This is where ExultPSP expects to find them.  You can grab the
slightly better quality Roland MT-32 soundpacks, but these take up
more space and requires you to monkey with the config file. If you
*really* *really* want it, this is what to do to use the fancier MT-32
package. Go to http://exult.sourceforge.net/download.php and grab the
sqsfxbg.zip ("Sound pack for Black Gate (Roland MT-32)") file, and extract to
    ms0:/PSP/GAME/__SCE__ExultPSP/DATA/soundfxbg/
In the config file, youll have to change the following line:
    ms0:/PSP/GAME/__SCE__ExultPSP/DATA/soundfxbg/jmsfx.flx
to:
    ms0:/PSP/GAME/__SCE__ExultPSP/DATA/soundfxbg/sqsfxbg.flx
See the difference?  I'm sure you can handle the serpent isle Roland MT-32
pack yourself ;)

(OE users, you have a GAME150 directory, note the change)


--/  That's music to my ears! Wait, what about music?  \----------------

ExultPSP natively plays midi tunes by default.  However, real good
quality OGG file packs exist and ExultPSP can play them.  

Go to http://exult.sourceforge.net/download.php and grab both
U7MusicOGG_1of2.zip ("Ogg encoded Music files for Exult Part 1")
U7MusicOGG_2of2.zip ("Ogg encoded Music files for Exult Part 2")

and extract them to:
  ms0:/PSP/GAME/__SCE__ExultPSP/DATA/music/
this is where ExultPSP expects to find them.

(OE users, you have a GAME150 directory, note the change)

After this, you'll have to load up ExultPSP and go into the game menu
"Audio Options" and under "Music options" you'll see a button for
"driver". Click it until it says "Digital" (it should be "Normal" by
default), Select "OK", quit the game, restart ExultPSP, and it should
now play the OGG files by default.


--/  How do I slay the wicked beast? Impose my will?  \-----------------

Ultima VII and Exult are mouse/keyboard driven games.  On the PSP the
controls are mapped ingame as follows:

Control Pad ...... Walk                L+Control Pad ... Run
Analog ........... Mouse Move          L+Triangle ...... Use Keys
Square ........... Left Mouse Click    L+Cross ......... Use Lockpicks
Triangle ......... Right Mouse Click   L+Square ........ Eat Food
Cross ............ Combat Mode         L+Circle ........ Display Gold
Circle ........... Inventory           L+START ......... Save Menu
START ............ Game Menu           R+Triangle ...... Quick Ref
R+Square ......... Show Map            R+Circle ........ Spellbook
R+START .......... Show Stats          R+SELECT ........ Face Stats
R+START+SELECT ... Quit

The ingame quick reference (R+Triangle) gives you a battery life
indicator and the above list of controls so you don't have to refer
back to this file.

ExultPSP makes use of a modified Danzeff OSK in cases whereever you
are allowed to type, for example, the name of your Avatar.  Use the
Control Pad (UP or DOWN) to navigate to the NAME, press START on the
PSP to open the OSK, and use the Analog and Square buttons to type out
your name (You should know how to use the Danzeff OSK hopefully).
Press START again and the OSK closes.  It works similarly in the save
game menu, select a save slot, and a text cursor appears, at this point
press START, and you can type out a save name.  Press START again to
close the OSK and continue your game.  Easy !


--/  What's the catch?  \-----------------------------------------------

You agree to use ExultPSP at your own risk.  The use or misuse of this
product is solely your responsibility.  If it scrambles your memstick,
bricks your PSP, you've yourself to blame.  Thankfully, the PSP I
borrowed survived development and made it out unscathed, returning to
its owner unharmed :)  The brave beta testers of the private builds
aren't outside my home with torches and pitchforks, so it seems their
PSPs survived too.  But again, unexpected things may happen. There may
very well be bugs (the Exult teams works on 1.4 these days, I'm sure
they have fixed bugs since 1.2 - the build ExultPSP is based on), and
I may have introduced my own.  As I've stated before, expect the PSP
to crash during play after a while (it should give you an
"out of memory" display when this happens).  Be sure to save every now
and then, and rotate your save files (savegame1, savegame2, etc) so in
the event of a savegame corruption (this has not happened, but just in
case) you can go back safely to an earlier save.  I'd personally not
mess with all the other options (video/etc) available, they
aren't necessary on the PSP, but I didn't disable them either.  They
are to be considered untested.

Lastly, **** DO NOT SUSPEND YOUR PSP **** during gameplay. Repeat:
*** DO NOT SUSPEND YOUR PSP ***.  ExultPSP makes use of an extra 4megs
of memory in the PSP, and when suspending the PSP, the OS *wipes* this
area out. I've not bothered to account for this yet, so something
catastrophic may happen if you do it.  Quit the game normally from the
game menu.


--/  The Future is in the Future  \-------------------------------------

I will try to fix major bugs, showstoppers as I can, if I can.  If I 
can find a PSP again *cough*. I've setup a Paypal account, for the  
virtuous among thee.  Who couldn't use the extra compassion points? :)    
Any donations would go toward a PSP, a source of frustration of 
having to part with it a few times during development for lack of mine 
own, a new power supply for my randomly resetting, ailing PC seems 
to need :P, the costs involved in hosting the site and wenching  
expense.

I've got some ideas for future PSP projects, and a donation for
hardware would be encouraging toward that end as well.

I hope you have as much enjoyment out of ExultPSP as much as I had
getting it to work.  I put some extra graphics together for the OSK
and an illustration for the PSP EBOOT background, and Chemical
graciously provided a sleek & sexy new ExultPSP logo which you'll see
ingame and on the website he's helping with.  We hope the added
touches bring something extra to your experience.


--/  Thanks to thee:  \-------------------------------------------------

Richard Garriot and everyone involved in the creation of the Ultima
games series which has provided countless hours of entertainment for
over two decades.  Has it been THAT long?  *sigh*

The Exult Team for their continual efforts, making Ultima VII possible
on a variety of modern platforms is quite the feat.  Many thanks!
Visit them at: http://exult.sourceforge.net

The folks involved in the creation of the pspdev toolchain and their
daily, tireless efforts of making development for the PSP possible,
especially Tyranid for PSPLink, an invaluable tool during development.
Visit them at: http://www.pspdev.org

Danzel/JeffChen for the Danzeff onscreen keyboard base used in
ExultPSP, a very handy tool making the PSP that much more accessible
for many PSP projects.

My friends & beta testers who helped test and find bugs during the
internal development phase.  Brave knights, one and all.

Chemical for beta testing, lending his digital brush and canvas to
this project, as well as making the website presentable and operational
for the Ultima and PSP fans alike.  Thanks to thee, good sir knight!


--/  Why are you hosting ExultPSP at thefoodsucks.com?  \---------------

You, my friend, are not a true Ultima fan.  To the dungeons with thee!



-Phantom Fighter
 "THE FOOD SUCKS!"


                                  `----.----:                  
                               `/:-  ```..`  :/.               
                              -h/``----://++: .+.              
                             `ys-/: `/sddy/::o.::`             
                             /N+:+ -/`  `oNs.+/-:`             
                             :ms-o.:`     sN:o/::`             
                             .hd.o.:.    `yh:s:/-              
                              +mo-o-:`   :d+s/::               
                               sd+/+:-  .y+os+/                
                                oso+o:-.y++ss-                 
                    `.```````````+hhos:o:+h+.```````````-.     
                   :dd::::--------:///+hdy/::::::--.-:-:s.     
                    .hd+./+-//osssyhdy+h:/dddyss+:::+./+`      
                     `yNdyss/::.`` -d::y..-   `-/osyos/`       
                      ./-`         /d-+y``:`       .+/`        
                                  `oo`/o  :.                   
                                  -d/-/o  -.                   
                                  /y`-/o  .:`                  
                                 .do --+   /`                  
                                 +d``:-o`  .:                  
                                 mo -/:o`   /`                 
                                :m``::-+-   `/                 
                               `m+ ./::o:    -:                
                               yd `////os-`  `-.               
                              :m/-+ss+//::///:o+               
                              /NN/`.---/: ...+:`               
                               `oNs` -./- `-+.                 
                                 /Nd- ./:./+`                  
                                  :md-./:-/`                   
                                   :yh:+:-.                    
                                    -syy+`                     
                                     /hm:                      
                                      /`                       


