Snes9xGP port documentation v1.05

This readme file is for Snes9xGP v0.8b
Snes9xGP is a gp32 port of Snes9x.

New in version 0.8b (test version)

- Assembly optimized sound mixing, a little graphics drawing code, and all of the microprocessor main loops.
- Not finished, still need to optimize more graphics code and processor code.
- Sound mixing code optimizations about finished.


New in version 0.71p private
- Fixed an "auto-magical sound" bug thanks to _cr4sh_

New in version 0.7p private
- In-game options menu (press START+SELECT)
- Fixed many sound bugs
- some assembly optimizations
- don't release my program to anyone or there will be no more versions!

New in this version 0.64a
- Release cancelled
- 100% speed (by popular request) :)
- 100% sound (yeah, it sounds good now)

New in this version 0.32a
- (quick fix)Fixed a controller bug (phew!), improved compatibility now :)
- And that's all folks! We thank you all for your support :)

New in this version 0.3b
- Just about zapped all of the gp32 power, to make it any faster you would have to write a program from scratch
- A little more speed
- Final beta
- added option to increase frame skip
- Please report any final bugs

New in this version 0.2b:
- 4MB files can be loaded.
- Higher compatibility rate.
- Improved speed.
- New file select menu.
- Sound, although it only plays at the speed the game runs at with sound on!
- Much more!

version 0.1b
- I heard some folks saying that this version was "just to show I had something going" :)

Make sure that after saving a game, that you wait a short while if you are
going to power off the gp32 so that the gp32 can save the game to the sram
file on the smc.

When using sound with files that write to sram, sometimes it might halt for
a long while writing to sram, or sometimes just halt... without sound
this doesn't happen.
So, if you have problems with sound turned on, then turn sound off.


There are various other snes9x ports for gp32 (that came after this one of course!)
just as someone had predicted would happen on the gp32dev newsgroup (I
won't say who!) so it would be pointless to release the source code for
this port. Thus, do not expect it to be released since it would just
confuse people.

We hope everyone likes our new version!
--Snes9xGP team

Finally... after all the doubt and all the rumors... snes9xgp, the gp32
port of snes9x, is finally here.


The latest version of this program can always be found at the current
official snes9xgp site:
http://www.snes9xgp.com02.com/



There are a lot of optimizations, so I would appreciate it if you let me
know of any problems.

I ask that no more people use the above email to try to impersonate me.
I ask that no more people try to pretend they are me, period!
Oh, never mind... I seem to have forgot my email address :)


Important:
*Put all the .smc and .srm files into the "GPMM" directory.*

When you first load the program... it displays a screen that lets you
select the .smc file you wish to load from the "GPMM" directory. Do not
select another directory, just a file.

And... it only loads .smc (with .srm file in same directory if there is one)
files... don't try to load files with any other extension.

If there is a .srm file that corresponds to the .smc file... make sure you
put that in the "GPMM" directory, too... otherwise you may get problems.
Oh yeah... and make sure the .smc and .srm file have identical names.

The maximum size of a .smc image that you can load is 4MB.

Instructions:
 To change sound, key, and frameskip settings, press start+select. I
usually do this by holding start and pressing select or holding select
and pressing start.

The four button configuration is good for games that use 4 buttons or less.
It lets you map the gp buttons a, b, l, and r to any snes buttons you choose.
If you don't want to map that button (say, if that game doesn't use that
button), then just press the SELECT key. In the 4 button configuration,
the gp START and SELECT buttons work as the snes START and SELECT buttons.

The 6 button configuration lets you create 2 different 5 button mappings,
so that if a game requires you to use all six buttons... and some buttons
need to be pressed at the same time... you can have a button mapped more
once. In the 6 button configuration, START and SELECT also get mapped.
During the game in the 6 button configuration, the SELECT button toggles
the mappings between button mapping 1 and button mapping 2. The number
of the mapping is shown in the upper left hand corner of the screen.


If everything was done correctly and the .smc file is 4MB or less, then it
should run.
Hint: there are only one or two .smc files in existence that exceed 4MB.


Special thanks to Costis and mr. spiv for testing the pre-release beta
and giving me suggestions. And thanks to DKM for designing and maintaining
the official snes9xgp site.

And thanks to the folks in #gp32dev who verified that most files work
on this thing :)

Special Thanks to:
DKM - maintains official snes9xgp page and provides artwork for snes9xgp
mr_spiv - provided code to change clk speed
Costis - testing, suggestions
Don_Migue - testing, suggestions
groepaz - I use his code for the sound
DarkFader - I use the gcc file i/o lib on his site
and everyone else who I just forgot to mention.



PLEASE READ:
  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the author(s) be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software and redistribute it
  freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not
     claim that you wrote the original software. If you use this software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. This notice may not be removed or altered from any distribution.


This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


