ARM/RISC OS SNES9X, version 1.26 beta 4, ported by Gareth S. Long
=================================================================


Last updated: (08 Oct 1999)

** PLEASE READ THE CHANGELOG AT THE BOTTOM OF THIS FILE FOR IMPORTANT
UPGRADE INFORMATION, ESPECIALLY IF YOU ARE NOTICING DIFFERENCES BETWEEN
THE CURRENT VERSION AND YOUR LAST VERSION **

One more note: People doing magazine articles and things; please let me know
in advance! Publishers lead times mean you're probably writing a retro retro
into the world of retro gaming by the magazine hits the subscribers even. I
can give accurate information on events to coincide correctly with
publication dates. 

What is it?
===========

SNES9X is a powerful Super Nintendo emulator, with Super FX and other coprocessor
support It's heritage dates back to the original SNES96, which was aborted, restarted,
aborted again, name changed, restarted, and so on. Some of the code is shared with
ZSNES, the 'other' Super Nintendo emulator (available only for PCs), due to the
incestuous nature of the development between the two teams.

What do I need?
===============

Best results are obtained with a StrongARM based Risc PC, especially for the more complicated games
and larger ROM images. At least 8Mb of RAM is needed. Sorry, but versions
of SNES9X for other machines are only really usable on a 486DX100 or similarly
specced machine for the simplest images, or above for some games. Having said that, ARM 710 users
shouldn't have much of a problem with most games. I am committed to making
SNES9X more usable on lower-ended machines. Honestly:

SNES9X will work on older machines, but the palette will be completely wrong at
the moment due to older machines' lack of support for a flexible 256 colour palette.
16 bit mode support is unavailable on older machines.

Picking up SNES images
======================

These are fairly readily available via the internet. In order to use the games
legally, you should in theory own the original game cartridges. Nintendo ROM image
sites tend to 'float' so you're best off doing a search using a search engine like
http://www.yahoo.com

Organising SNES9X
=================

This will change a great deal as frontends for SNES9X are developed and put
into play, and als0o as SNES9X itself evolves..

Create a directory called SNES9X somewhere on your hard disc. I *strongly*
recommend that this directory be an image filing system archive (zipfile or
TBAFS archive will do nicely, as will a DOSFS partition.. public domain
utilities like X files etc also work well. You can even use StrongHelp to
archive the files inside a new StrongHelp manual). This allows you to use
more than 77 filenames in a directory, and also allows you to use filenames
greater than 10 characters, which is preferable for some image names)

Unpack the contents of the SNES9X archive into it.

Create a blank directory, called 'snes-snaps' - this will be needed for state save
information. Also create a directory called 'ROMs', alongside the SNES9X
executable.

Unpack any games you have downloaded into the ROMs directory. ROMs will also be found by SNES9X
if they are in the same directory as SNES9X, but this is messier. Your resulting directory
structure should look thus (names in square brackets are directory names):

                        [SNES9X] (image filing system archive)
			   \
			    \	
SNES9X (executable)  DACSpt8/16  EmUtils  [ROMS]       [snes-snaps] [... etc]
                             		        |
                                            |	   		     |
                                   	 	zelda/sfc           ...
                            			mario/sfc			...
										(etc)				...

To run SNES9X, set your current directory to that of the SNES9X image filing
system ardchive (double clicking on the provided SetDir obeyfile will do this
for you), press f12 to get to the command line prompt from the desktop, ensure the next slot is high
 enough (give it at least 8 megabytes free, more is needed for some games) and type

SNES9X <filename> where filename is the name of the ROM you wish to play, eg. zelda/sfc etc.



Change Log
==========

[09 Jul 1998]

Started

[12 Jul 1998] SnTest01 released


SNTest02 released

The ARM port is now based on 1.05 of the SNES9X code.


[25 Jul 1998] SnTest03 released

Sound is a lot better than the previous release, though will improve some
more. DACSpt16 is not yet ready, so 16-bit sound support is currently
unimplemented.

Snapshot loading/saving (F11/F12), battery backup and compression should now
work, as should the /0x extensions.


[14 Oct 1998]


This information is quickly modded from the test 01, 02 and test 03 ReadMe,
please check for my changes...

Please note I know there are some bugs. Report them anyway :-)

The documentation currently provided refers to the MS DOS version. Different
resolutions should work, but they are not well tested.

The CPU cores are currently the C versions. Comparisons with other
architectures is a bit silly as a result, though it fares surprisingly well;
especially with the huge differences we have in memory access speeds and
amounts of L2 cache.

To run, copy the SNES9X directory out of the release package and place on the
media of your choice. Place SNES images into the roms directory. run SNES9X
with 'SNES9X zelda/sfc' or whatever.

For SuperFX transparency support, use -transparency or -sixteen. Games like
Rare's Diddy's Kong Quest look quite amazing with swirling mist, etc.

You'll need a Risc PC for the correct palette, and 16-bit support to not look
really strange...


What goes 'Pieces of eight! Pieces of eight! Pieces of nine!'? A parrotty
error.

Frameskip is forced at the moment as this requires timer support.

This release is not optimal; actually it's compiled with instruction tracing
etc enabled for debug purposes, and so on. See notes on speed above...

Having problems running Mario Kart with DSP 1 support - I have found this is a
generic source problem. I have patched the runtime to allow Mario Kart to run, but
it does not run well yet. It is difficult to tell how good the emulation is intended
to be either as yet - as the same problem exists on all other ports right now.

[19 Dec 1998] 1.15

Merged new sources in, Mario Kart now works, but does occasionally crash (IE the emulated
game crashes) just like the DOS version.

Mario Kart is slow due to extensive floating point usage. I will work on no FP DSP 1 code while
I'm in America.

[04 Oct 1999] 1.26 beta 0.1

Merged new sources in, made a few slight cleanups. Very little time to do anything else for a day
or two (currently getting over bad flu and still ironing out small problems since upgrading to RISC OS 4
and new compilers).

This version is intended as a test. I'll be uploading another one soon with some of the other changes I've
made over the last few months but have yet to graft in to the new version. This includes the FP
modifications I mentioned last time round, sound, frameskipping/throttling, and net play.

Any queries or comments, please let me know ASAP so I can add them to my list.

[05 Oct 1999] 1.26 beta 2.0

Grafted in the first of the bigger changes...

Sound is greatly improved - the 'constant choppiness' should be gone. The only theoretical abnormalities
that should be heard now will be due to a sound buffer underrun caused by the emulation rate dropping
very quickly - however, this is no different to emulation on other systems, and it won't sound nearly
as nasty as the entire thing used to sound. In fact, RISC OS SNES9X should have better quality 8 bit
sound than other systems as it's derived from a higher quality sound source.

Snapshot loading and saving fixed! It got broken before... as a reminder, the default directory for
snapshots is @.snes-snaps (ie the snes-snaps should be in the same directory as SNES9X).

As a reminder, use F12 to save snapshots to this directory, F11 to load them. To run a game from your
'snapshotted' position, use SNES9X <rom the snapshot was intended for> -loadsnapshot snes-snaps.<snapshot>,
as -loadsnapshot can load a snapshot from anywhere. The snapshots are compressed, and should be compatible
with those of other versions of SNES9X.

Problems some people were having with no sound volume should now be gone.

A few other changes here and there...

[06 Oct 1999] 1.26 beta 3.0

A few general cleanups and fixes, including:

Fixed the breakage when running without DACSupport loaded.

Loading/saving Cartridge RAM, and freezefiles tidied.

Sound doesn't repeat in a loop during entry of snapshot load/save filename.

Changing the fremaskip rate to a value less than 0 won't hang the game display.

[08 Oct 1999] 1.26 beta 4.0

What's In:

Auto Frameskip support - this requires EmulatorUtilities (EmUtils) loadedto provide a
high enough resolution timer.
However, the SNES9X frameskip support is only really intended for speed *throttling* so isn't so
good at present. I'll rewrite this for the next release.

Sound pitch is *correct*.

Minor sound glithces heard when saving or loading snapshots is gone.

A few other small changes before the alcohol began to kick in.

What's Out:

Wrong sound pitch.

What's Shaken All About:

DACSupport - upgraded to version 1.40, you'll need to use this with SNES9X beta 4.

Gareth S. Long (gatch@elecslns.demon.co.uk)