
CaSTaway/PSP - version 005
--------------------------
http://www.codejedi.com
skeezix (c) 2005

This should be a very complete and attractive build, with all the fixins.
Naturally theres more to come, but the to-do list is really running low
these days ;)

Eventually some config file support with key-binding options will be
added so you can really go to town.. but release 004 should pretty much
satisfy everyone :)

Oh yeah, real documentation soon ;)

INSTALLATION
------------
1) Install the executable to your Memory Stick as you would any other
PSP homebrew. (ie: Look in the PSP-ROM-1.50 directory if you've got
a 1.50 PSP; if you've got a 1.0 PSP, go to the PSP-ROM-1.00 directory!)
Essentially, you need to copy the CASTAWAY, CASTAWAY% and ATARI_ST
directories into your PSP/GAME folder.

2) Get an Atari ST TOS.ROM file, unzipped, and drop it into your
ATARI_ST directory. It could have been a .rom or .img file, but you
rename it to TOS.ROM. (Example -- you might be using TOS 1.02 UK, so rename
it to TOS.ROM period.) Use the US 1.02 for best results, but many others
work fine as well.

3) Get yourself some Atari ST game disk images ("roms", but really disk
files) and drop them into your ATARI_ST directory. They usually come as
.ST or .MSA files, and can be zipped (just the one .ST or .MSA file inside
of the zip!)

You're good to go.. launch and enjoy!

CONTROLS
--------
While the emulation is running, the defaults are:

[SELECT] - bring up or dismiss the on-screen ST keyboard for typing in
  any keys you may wish to type in. (To get past loaders, or play text
  adventures or the like.)

[START} - bring up the main options menu; lets you swap disks, reset the
  ST, write out a savestate for later re-use, and all sorts of things.

Analog joystick - used for the Atari ST _mouse_ by default

D-Pad (on the left) - used for the Atari ST _joystick_, by default
SQUARE and CIRCLE - used as Atari ST left and right mouse click, by default
CROSS (X) - used as Atari ST joystick firebutton by default

As of verson 004, you can bring up the [START] menu and hit "Controls"
menu to alter the default behaviour of the buttons.

------
Enjoy!
------

Release 005
-----------
FIX: Handle more than 250 disk images/savestates (up to about a thousand now ;)
NEW: Added goofy ST-like unpack effect at load time -
  'unpack demo' for a few secs, wait a sec, 'black' and menu as normal
NEW: Can set throttle to 60Hz, 50Hz, or even 30Hz, or unthrottle
NEW: Added scaling menu, so you can specify..
  o Scale 1:1 with centering
  o Scale fullscreen with smoothing
  o Scale fullscreen without smoothing


Release 004b
------------
NEW: Caching of the database lookups; having it re-scan the disk database every
  time got on my nerves quick, so now it caches the lookups to memstick; as
  such you only get the 'big hit' once, or whenever you copy over a pile of
  new disk images. Subsequent loads will only check new disks, so the lookup
  will be much faster each run.
  o Side effect -- if you _rename_ files around, you might eventually need
    to delete the STCACHE.TXT file as it would become inaccurate. But no biggy,
    I doubt anyone will do that..


Release 004
-----------

CHG: When in joystick-on-analog mode, sensitivity is reduced a bit.. ie: I
  found when pulling left I'd often get up-and-left or down-and-left as my
  thumb isn't accurate enough; so I've altered it so to indicate a direction
  you need to be further to the edge of the analog zone, so it more often
  would detect straight-left when I wanted it.

CHG: New font for user interface; built a font importer package so I could
  suck in truetype fonts easily, and am using a variant of Arial 14px for now..
  should be much more readable and smooth (a little bigger and rounder.) I'm
  pleased with my 'auto kern' system.. seems to work well for nice dynamic
  spacing.. I just need to add auto-anti-aliasing sometime :)
  - For each dialog, title font is bold and with drop-shadow

NEW: In menus, up/down works as normal; left/right will quick-scroll up
  and down, letting you move faster.

FIX: Repeat timer prevents 'cursor mode' from repeating 'too quickly' ..
  so using cursor mode for playing Dungeon Master, Captive etc should work
  pretty well now

FIX: In game-list (output from database lookup) it shouldn't sometimes have
  garbage in game names

NEW: New PSP launcher artwork - backsplash and icon by parobolee - thanks mate!
  o Looking good I think!

CHG: Increase game list height, to show more games if lots in database

NEW: ST Games database right in the disk picker
  o Database look up is done each time disk picker comes up; sort of lame..
    should at least be cached within the emu runtime, and ideally between emu
    runs.. but maybe next version :)
  o Draws first 25 characters from game-list descroiptions, starting about
    1/3rds of the way over in the picker display; should fit pretty well. To
    get the rest of the listing, pick the disk and hit "look up in database" to
    get the full listing line by line

NEW: When analog is operating the ST mouse, there are now two speeds build in..
  ie: far-left is 'left 2px per frame' while half-left is 'left 1px per frame'.
  Let me know if more degrees of speed are needed..

NEW: Frameskip is supported (though mostly not needed!) -- in the runtime
  [start] menu, frameskip options are available. Some math heavy operations
  will slow things down a touch, but generally the emu is fast enough.

NEW: Throttling is supported; in the main runtime [start] menu you can now
  enable or disable throttle -- enablingmeans the system is slowed down to
  approximately a real ST (north american, anyway); if throttle is off, try
  running as fast as possible. The default is throttle is _on_


Alpha 003
---------
NEW: While emulation is running, hit [START] to bring up runtime options
  o Disk Management -- lets you eject and insert a different floppy(s)
  o Reset menu works -- lets you exit the emulator entirely, or do a
    warm reset on the ST (ie: Try inserting some disks, then hitting
    reset, and voila.. no need to exit emulator to swap disks.)
CHG: Turned brightness up a notch (shifted colour palette decoding)
  o Med res and low res both
CHG: On-screen keyboard
  o The 'selection' is alpha blended to darken the key; nicer than blacking
    it out :)
  o The keyboard itself will fade in and out rather than just toggling on
    and off when you hit the [select] button
NEW: In addition to .ST disks, .MSA format disks are all supported; further,
  either kind of disk can be in a .zip file and work fine. (As long as thats
  the only file in the .zip) -- some .ST's will compress from 800k to 200k
  in a zip file, so it could be worth it.
NEW: Added simple intro-screen so you know what version is coming up
NEW: Disk picker changes
  o When you hit () to pick a disk, it'll ask you if you'd like to insert
    it into drive A, or B, look it up in the database, or delete it.
  o Insert into A, B, and delete now work
  o Disk picker now allows you to have many disks -- it'll scroll; no more
    than about a thousand disks for now ;) (It shows .ST, .MSA, .ZIP and
    .SS files)
  o If no disk is chosen (like you hit X to many times), it'll warn you so
    you know why nothing really exciting is going on
FIX: The mouse should work nicely; in 001/002 it might sometimes just not
  work at all, but I've tried it in no-disks, and Dungeon Master and others
FIX: The key release and press mechanism has been fixed up a bit; when you
  use the on-screen keyboard to press a key, it should get held down for
  1/6th second and then released. If this is not sufficient, let me know
  and I can increase its duration.. but that should be plenty.
NEW: Savestates/loadstates - you can now save a snapshot to SD card and
  load it up later; far more useful than in-game-saving, and faster.
  o Build a crude keyboard based interface to typing in a filename for SD card
  o Savestate
    - you name a filen "aaaa" and the emu compresses the system RAM (etc)
      into a zipped file "aaaa.ss" (.ss denotes savestate)
  o Loadstate (from the normal disk picker menu)
    - pick a .ss file in the disk picker (as if it was any other disk); a
      "load now" or "delete" menu will appear, so you can fire up the state
      or just delete it
  o Seems to work; I saved out a xenon2 savestate and loaded her back up;
    use this to circumvent multi-disk or long loadtimes (Civilization and
    Dungeon Master, I'm looking at you!)
NEW: Check for existance of TOS.ROM; if missing, show warning.
NEW: Games database
  o When you pick a .msa, .st or .zip, it'll offer to insert it into the
    drives; another option is to "look it up in the database", which calculates
    a CRC on the disk and looks it up in a special database the GP32 users
    helped create. If the CRC is found, a listing of games on that known
    disk is shown.. otherwise, an error shows that its not in the database.

Alpha 002
---------
NEW: Basic disk picker (it works, but not fancy yet)
  o Lists .ST and .MSA files in the /PSP/GAME/ATARI_ST directory
  o Don't use MSA's yet.. they're screwy
  o Press 'X' to run the emulation
  o Press '()' (circle) to select a disk; you should always select a
    disk at this point, since if it runs without any disks it gets confused
    for now
  o Only put in 5 or less disks for now; lame, but I ran out of time and
    wanted you to have something to play with for the weekend :) (Spent days
    tracking down an obscure bug :/)
CHG: Mouse speed increased a bit; double-click and such should work
REM: TOS has to be called TOS.ROM (TOS.IMG seems not to work.. not sure why :/)
  o You need a TOS.ROM file; don't ask me where to get it.. ask Google or
    suck it from your Atari ST machine.
NEW: Full screen scaling with smoothing by default
NEW: Onscreen virtual ST keyboard
  o Use [SELECT] to toggle keyboard on or off
  o While present, left d-pad controls keyboard selection point and
    right d-pad X will push the selected key
  o Adjusted key hold duration and repeat duration to avoid million-presses

Alpha 001
---------

Although the emu is missing any form of finesse, it does run pretty well --
for many or most games, it'll run full speed with no frameskip (which is good
since I didn't implement frameskip yet ;) During 'heavy math' operations it'll
run slower, so unpacking Dungeon Master takes a good minute or two probably..
but running Xenon 2: Megablast and it'll run a little too fast until I add
speed throttling.

REM: .ST disk images only (.MSA or zipped images not yet supported.)
REM: Default disks looked for: DISK_A.ST and DISK_B.ST -- you don't need
  them if you just want to see TOS. If you want to boot a game without
  picking in the (not yet existing :) disk picker, name it DISK_A.ST!
  ex: /PSP/GAME/ATARI_ST/DISK_A.ST that is a copy of A_133.ST (Automation 133)
  will fire up Xenon 2.
REM: You need an operating system; the file can be called either
  TOS.ROM or TOS.IMG (doesn't matter, its just a filename); use TOS 1.02 US
  for best results, but many others work (and many do not.)
REM: Stick files in /PSP/GAME/ATARI_ST
REM: ST-Low res works well; ST-Medium res works, but is fugly for now.
  ST-High res not yet supported.
REM: Analog is for controlling the mouse motion
REM: Left D-pad for controlling joystick motion
REM: Square is left-mouse-button, circle is right-mouse-button,
  cross/X is joystick fire

For now, Triangle hits '1' on the ST keyboard.. maybe can get into some
games (such as Xenon 2: Megablast). Right-trigger is 'Space', so should
get a few games going.

Needs: Throttling -- a little too fast sometimes; during high math its
  likely slow (like loading Dungeon Master, though runtime should be fine.)
Needs: Fullscreen scaling
Needs: Disk selection menu
Needs: Frameskip selection (and other 'options' menu)
Needs: Etc etc.

Enjoy!

Jeff
Codejedi Inc.
http://www.codejedi.com
