Readme
Readme
=================================================================
v1.29 23-JAN-1999
=================
Home page: http://www.snes9x.com
Contents
========
Changes Since Last Release
Introduction
What's Emulated
What's Not
What You Will Need
Getting Started
Keyboard Controls
Joystick Support
Netplay Support
Cheat Support
Super FX
3dfx Support
Problems With ROMs
Sound Problems
Converting ROM Images
Speeding up the Emulation
Getting Help
Credits
Changes Since Last Release
==========================
Check the CHANGES file for a complete history of Snes9x changes between
versions.
Introduction
============
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
emulator. It basically allows you to play most games designed for the SNES
and Super Famicom Nintendo game systems on your PC or Workstation; which
includes some real gems that were only ever released in Japan.
Snes9x is the result of well over two years worth of part-time hacking,
coding, recoding, debugging, divorce, etc. (just kidding about the divorce
bit). Snes9x is coded in C++, with three assembler CPU emulation cores on the
i386 Linux, DOS and Windows ports.
Snes9x is better than a real SNES:
o Freeze a game at any position, then restore the game to that exact spot at
a later date - ideal for saving a game just before a difficult bit.
o Built-in cheat cartridge.
o Built-in peripheral emulation. The SNES mouse, Multi-player 5 and SuperScope
external add-ons are all emulated, they cost extra money with a real SNES.
o Stereo sound - yes I know the SNES produced stereo sound, but who actually
paid the inflated price for the special lead just so you could hear it?
o No more cartridge contact cleaning!
o Some SNES hardware features that be turned on and off during game play,
games might be using one of these features to deliberately make a section
of the game more difficult. Easy, just turn the feature off.
o Networked game play on some ports, Windows coming soon.
doesn't appear to work after its been loaded. In particular, games making use
of the Super FX RISC processor seem to be mostly in an odd interleaved format
that Snes9x has trouble auto-detecting, try selecting 'Interleave mode 2' from
the load ROM dialog if you have a Super FX game that isn't working.
On a real SNES, players controlled games using an 8-button digital joy-pad; on
Snes9x you can use your computer's keyboard (the default) or any joystick
or controller device supported by Window's DirectInput. The default key
mapping for joy-pad 1 is:
'up arrow'
'down arrow'
'left arrow'
'right arrow'
'a'
'z'
's'
'x'
'd'
'c'
'return'
'space'
Up direction
Down direction
Left direction
Right direction
TL button
TR button
X button
Y button
A button
B button
Start button
Select button
'0'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'Backspace'
Shift+'F1-F9 '
'F1-F9'
Joystick Support
================
Configure and calibrate your joystick/joy-pad using Windows joystick applet in
the control panel BEFORE starting Snes9X, then use Snes9X's joy-pad config
dialog available from the Options menu to map your joystick/joy-pad's buttons
to the emulated SNES joy-pad(s) buttons.
Netplay Support
===============
The Windows port of Snes9X currently does not support networked game play with
other users of Snes9X. Coming soon...
Cheat Support
=============
Use the Cheat Code Editor dialog from the Cheats menu to enter Game Genie,
Pro-Action Reply or Gold Finger cheat codes. Cheat codes allow you to,
surprisingly, cheat at games: they might give you more lives, infinite
health, enable special powers normally only activated when a special item is
found, etc.
Many existing Game Genie and Pro-Action Reply codes can be found at:
http://vgstrategies.miningco.com/games/vgstrategies/library/ggn/bl_ggnsnes.htm
When you enter a code, you can also enter a short description so you know what
it should do. Be sure to include the '-' when typing in a Game Genie code.
Beware of cheat codes designed for a ROM from a different region from the
one you are playing; most cheats tell you which region version of the game
they were designed for. If you use a code from an incorrect region your game
might crash or do other weird things.
Double-clicking on an cheat line in the dialog or clicking on the En column,
toggles a cheat on and off. Selecting a cheat from the list then pressing the
Delete button permanently removes a cheat.
Cheats are saved in .cht files stored in the Freeze File Directory and are
automatically loaded the next time a game with the same filename is loaded.
The format for the .cht files is the same format as used by the other excellent
SNES emulator for MS-DOS, ZSNES.
Snes9X also allows new cheats to be found using the Search for New Cheats
dialog, again available from the Cheats menu. The easiest way to describe the
dialog is to walk through an example.
Cheat Search Example
-------------------Lets give ourselves infinite health and lives on Ocean's Addams Family
platform game:
Load up the game, keep pressing the start button (Return key by default) to
skip past the title screens until you actually start playing the game. You'll
notice the game starts with 2 health hearts and 5 lives. Remember that
information, it will come in useful later.
Launch the cheat search dialog for the first time, Alt+A is its accelerator.
Press the Reset button just in case you've used the dialog before, leave the
Search Type and Data Size radio boxes at their default values and press OK.
Play the game for a while until you loose a life by just keep walking into
baddies, when the game restarts and the life counter displays 4, launch the
cheat search dialog again but this time press the Search button rather than
Reset. The number of items in the list will reduce, each line shows a memory
location, its current value and its previous value; what we're looking for is
the memory location where the game stores its life counter.
Look at address line 7E00AC, its current value is 4 and its previous value was
5. Didn't we start with 5 lives? Looks interesting...
Note that some games store the current life counter as displayed on the screen,
while others store current number of lives minus 1. Looks like Addams Family
stores the actual life count as displayed on the screen.
Just to make sure you've found the correct location, press OK on the dialog,
and play the game until you loose another life. Launch the search dialog again
after the life counter on screen has been updated and press the Search
button. Now there's even fewer items in the list, but 7E00AC is there again,
this time the current value is 3 and the previous value was 4. Looks very much
like we've found the correct location.
Now that we're happy we've found the correct location, click on the 7E00AC
address line in the list and then press the Add Cheat button. Another dialog,
Cheat Details, will be displayed. Type in a new value of say 5, this will be
number of lives that will be displayed by the lives counter. Don't be greedy,
some games display a junk life counter or might even crash if you enter a
value that's too high; Snes9X keeps the value constant anyway, so even if you
do loose a life and life counter goes down by one, less than 20ms later,
Snes9X resets the counter back to the value you chose!
If the memory location you add a cheat on proves to be wrong, just go to the
Cheat Code Editor dialog and delete the incorrect entry.
Now lets try and find the Addams Family health counter. While two hearts are
displayed on the screen, visit the cheat search dialog and press the Reset
button followed by OK. Play the game until you loose a heart by touching a
Master System, or Game Boy, or <insert your favourite old games system here>.
2) If its a Super FX game, chances are its in interleaved2 format, try
switching to "Interleaved mode 2" on the ROM load dialog before loading the
game.
3) Someone has edited the Nintendo ROM information area inside the ROM image
and Snes9x can't work out what format ROM image is in. Try playing
around with the ROM format options on the ROM load dialog.
4) The ROM image is corrupt. If you're loading from CD, I know it might
sound silly, but is the CD dirty? Clean, un-hacked ROM images will display
[checksum ok] when first loaded.
5) The original SNES ROM cartridge had additional hardware inside that is not
emulated yet and might never be - e.g. Street Fighter Alpha 2 (S-DD1),
Megaman X2 and Megaman X3 (C4).
The following ROMs are known currently not to work with any version of Snes9x:
- All DSP 1 games except Mario Kart (e.g. Pilotwings, Ballz 3d, Topgear 3000)
- Street Fighter Alpha 2, Star Ocean (missing S-DD1 emulation)
- Megaman X2 and X3 (missing C4 emulation)
- Exhaust Heat2 (custom co-processor)
- Metal Combat (OBC1)
Sound Problems
==============
No sound coming from any SNES game using Snes9x? Could be any or all of
these:
- If all sound menu options are greyed out, Snes9x couldn't initialise
DirectSound. Make sure DirectX 6 or above is installed and your sound card
is supported by DirectX. Installing the latest drivers for your sound card
might help. Another Windows application might have opened DirectSound in
exclusive mode, in which case you will need to stop that application and
restart Snes9x.
- The sound card's volume level might be set too low. Snes9x doesn't alter the
card's master volume level so your might need to adjust it using the sound
card's mixer controls usually available from the task bar or start menu.
- Make sure your speakers and turned on, plugged in and the volume controls are
set to a suitable level.
General sound problems:
- A continuous crackling sound can be heard. Trying increasing the sound
buffer size from the sound menu. If you need to set the value above 100ms to
get clean sound then you will also need to enable sync-sound mode or SNES
sound emulation will suffer.
- Sound quality is poor on all games. You might have a noisy sound card
(usually cheap cards), turning on interpolated sound, sync-sync and/or
increasing the playback rate might help.
- Sound seems to have gaps. Sometimes, when changing sound settings, either
DirectSound or Snes9x messes up (not sure which) and Snes9x losses sound
playback synchronisation. Try changing the playback rate to a different
value and back again or quit and then restart Snes9x.
- Sound in a few games sounds crackly. Try turning off sync-sound and/or
interpolated sound - both seem to have problems with a few games.
- Sound is awful in all games. You might have selected a playback rate/stereo/
8-bit/16-bit combination that your sound card can't cope with. Try setting
8-bit mono @22KHz from the sound menu and if that cures the problem, try
other combinations until you find the best setting that works on your sound
card.
If all else fails, try posting a message describing your problem and
requesting help on the Snes9X message board at the Snes9X web site,
http://www.snes9x.com
Converting ROM Images
=====================
If you have a ROM image in several pieces, simply rename them so their
filename extensions are numbered: e.g. game.1, game.2, etc. Then, when
loading the ROM image, just specify the name of the first part; the remaining
parts will be loaded automatically.
If they are already in the form sf32xxxa, sf32xxxb, etc., you don't even have
to rename them; just choose the name of the first part from the ROM load
dialog, as above.
Emulation speed
===============
Emulating an SNES is very compute intensive, with its two or sometimes three
CPUs, an 8 channel digital sound processor with real-time sound sample
decompression and stereo sound, two custom graphics processors, etc.
If you only have a 486 machine, you will need to stick to using only 8-bit
graphics and minimal or no sound. Disabling the joystick support will also
help.
Full-screen mode is generally faster than windowed mode.
Enabling one of the output image processing modes from the Display Config
dialog can slow down overall emulation speed greatly depending on the type of
game and video RAM speed. Enabling the stretch image option further reduces
emulation speed.
If you want the SNES image to fill your computer screen and want maximum speed,
use the 3dfx bi-linear option if you have a Voodoo 3dfx card, or select output
image mode as none and check the full-screen and stretch image options.
Lowering the sound playback rate, selecting 8-bit mono sound or turning off
interpolated and sync-sound modes will also help boost emulation speed.
Credits
------- Jerremy Koot for all his hard work on current and previous versions of
Snes96, Snes97 and Snes9x.
- Ivar for the original Super FX C emulation, DSP1 emulation work and
information on both chips.
- zsKnight and _Demo_ for the Intel Super FX assembler code.
- zsKnight and _Demo_ for all the other ideas I've nicked off them; they've
nicked lots of my ideas and information too!
- Kreed for his excellent image enhancer routines.
- DiskDude's SNES Kart v1.6 document for the Game Genie(TM), Gold Finger and
Pro Action Replay cheat system information.
- Lord ESNES for some nice chats and generally useful stuff.
- Lee Hyde ([email protected]) for his quest for sound information and
the Windows 95 icon.
- Shawn Hargreaves for the rather good Allegro 3.0 DOS library.
- Robert Grubbs for the SideWinder information - although I didn't use his
actual driver in the end.
- Steve Snake for his insights into SNES sound sample decompression.