home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 38
/
ZGIDEMO.iso
/
Emulatori
/
s9xd024.zip
/
README.TXT
< prev
next >
Wrap
Text File
|
1997-10-31
|
34KB
|
735 lines
Snes9X v0.24 Final Released 31th October 1997
--------------------------------------
Main Authors
------------
Gary Henderson (gary@daniver.demon.co.uk)
Jerremy Koot a.k.a. The Teacher (jkoot@euronet.nl)
Platform Porters
----------------
Chad Kitching a.k.a. Trepalium (kitchingc@mail.techplus.com)
John Stiles (jstiles@uclink4.berkeley.edu)
Jeremy Shear (jeremy@netzone.com)
Gary Henderson (gary@daniver.demon.co.uk)
Jerremy Koot a.k.a. The Teacher (jkoot@euronet.nl)
Contents
--------
Final Version
Introduction
Key Features
What's New
What's Missing
What You Will Need
Getting Started/Command Line Options
Keyboard Controls
Joystick Support
Problems With ROMs
Sound Problems
Converting ROM Images
Speeding up the Emulation
Known problems
Credits
Final Version
-------------
Jerremy Koot's offical statement:
Let let me start with saying that Snes9X has been the greatest project that
I have working on ever ! It was fun to do and every time I went to #EMU I
knew why I was doing it... But all of this has ended....
Due to several reasons Snes9X can't continue... One is a possible claim of
Nintendo... But you probably all think that that's the main reason, it
isn't... Another reason is getting fucked over by other people, this is
probably a more important reason... And then there is one more reason which,
due to circumstances I can't even explain...
But all in all, I would like to thank all the users for the great support,
I've been reading several web pages and see that Snes9X is said to be either
the best and/or the most used emulator on the World... This does make me
smile from deep down inside... Seeing that since 5 Juli 1997 I had 500.000
hits probably proves that it was/is used a lot, with the latest dos version
getting 14.000 hits in two days, not even counting the number of times it
was downloaded from other sites, shows how much people loved Snes9X.... So
to all the Snes9X users: THANK YOU, IT WAS GREAT !
A small note for all the developers out there who see a chance in getting
the Snes9X source, we will not give it away ! So don't mail me or Gary about
it ! If you want to do something for the SNES emulation 'scene', then help
authors like zsKnight, _Demo_, Lord Esnes, NLKSnes, etc.
And to all those emulation wannabe's, if you think you can program an
emulator, just start and see where it leads, because maybe you'll have your
own Snes9X !
Jerremy Koot
One of the author's of Snes96, Snes97 and Snes9X.
Introduction
------------
Snes9X is coded in C++ with an assembler CPU emulation core on the Linux and
MS-DOS ports. It is a spare-time project being written by Gary Henderson and
Jerremy Koot.
This read-me file describes the MS-DOS port of Snes9x, a freeware Super
Nintendo Entertainment System (SNES) emulator. Other ports are available:
Jerremy Koot works on the Windows 95 port, Gary Henderson maintains the
Linux i386 and Sun Solaris ports and John Stiles and Jeremy Shear work on
the Mac port.
I'm afraid I cannot answer any more e-mails about this emulator. I will not
be updating it, because the Snes9X project has been terminated, so don't
bother sending bug reports, suggestions, or anything else. If you're looking
to contact me for some other reason, you can e-mail me at
kitchingc@mail.techplus.com, for job offers, whatever.
Key Features
------------
o A user-friendly user interface in the DOS and Windows ports
o Speed: Snes9x now gives NLKSNES, formally the the fastest SNES emulator, a
run for its money, while being more compatible, supporting sound and have
more features. Also, many parts of Snes9x are still in C++; more speed
could be gained be rewriting other parts of the emulator in assembler.
NLKSNES is already written in assembler.
Many games now play full speed on a P100 WITH SOUND will only a frame skip
of one.
o 16-bit, digital stereo sound on all ports.
o Two screen refresh methods, an accurate, but slower mode and a much faster
tile-based mode which now has all the features of the line-by-line code,
except mosaic and window effects.
o Multiple screen mode supported on the Linux S-VGA and MS-DOS ports.
o Simultaneous two SNES joy-pad emulation allowing two player games to be
played.
o Lots of ROMs work, the numbers are increasing with each release (slowly).
o Cheat functions, now including both RAM-patch and code-based cheats.
o Support for one 2, 4 or 6 button joystick or two 2-button joysticks - Linux
and MS-DOS ports only.
o Snapshot a game in progress and restore the game to that exact point at
a later time.
o Complete, fast mode 7 emulation (screen rotation and scaling) - all except
one rarely used feature.
o Complete H-DMA emulation for those split screen and wavy background effects.
o Background clip windows for those shaped H-DMA zoom effects.
o Mosaic effect.
o Compressed and/or split ROM image support.
o SNES image scaling.
o 8-bit, 16-bit and 24-bit X11 server support.
o An uncrackable binary - mainly because it has no protection to crack such as
time limits, limited colours, etc., etc. and never will.
What's New
----------
Snes9X 0.24
-----------
- Fixed reading of DMA register values - now Ms Pacman works.
- Saved sprite memory address being restored on the wrong scanline - caused
corrupt sprites on at least one game (GANBARE GOEMON 2).
- Screen colour palette not being updated if ROM only wrote to low byte of
palette register.
- Possible memory corruption fixed if a ROM tried to write to an invalid
sprite address via PPU registers.
- X11 port support quick load and save by pressing function keys to load or
shift + function keys to save.
- Fixed tile-mode offset and mosaic bugs
Snes9X 0.23
-----------
- Added option to disable graphic window effects - T2: The Arcade Game doesn't
seem to like them.
- Mode 7 "outside screen area" register interpretation fixed - now the
Actraiser map screen looks a lot better.
- Old DMA code hack for Battle Toads: Double Dragon removed as it was no
longer required and it was causing problems for Ys III.
- Lowered max volume level of 16-bit sound mixing code to help with sound
clipping problems is lots of SNES sound channels are playing.
Snes9X 0.22
-----------
- Crash bug fixed in mode 7 graphics windows code
Snes9X 0.21
-----------
- Fixed a noise channel volume bug - noise waveform was getting clipped.
- Fixed 24bit X Window System server support on the Solaris port.
- Sprites in priority level 1 on mode 7 were being drawn incorrectly behind
graphics screen.
- BG 3 priority 1 tiles sometimes not drawn dependant on the $2105 bit 3
setting.
- Added graphic window support the tile redraw code.
- Added mosaic support to tile redraw code.
- Tile redraw code was drawing one line too many on screen-splits.
- Tile-based redraw code made more inteligent about when a background should
be displayed or not.
- Added wrap within back support to large DMAs just to support Rock 'n' Roll
racing.
Snes9X v0.2
-----------
- C++ and assembler CPU emulations rewritten with many speed improvements.
- SPC700 emulation speeded up and partially rewritten in assembler.
- Line-by-line graphics code rewritten for more speed - still have lots more
ideas on how to improve speed further.
- Tile-based graphics code rewritten for a major speed increase, and
its features extended to support all those in the line-based code except
for mosaic and graphic window effects.
- Tile-based graphics code now the default redraw method.
- DMA code rewritten for speed - really helps ROMs that make use of a lot of
DMA.
- Mode 7 screen rotation code rewritten for a major speed increase. Also,
several scrolling offset bugs fixed.
- Several sound code fixes and speed ups.
- LoROM S-RAM memory map bug fixed. Now Uniracers works plus several others.
- V-RAM reading bug fixed. This fixed at least three ROMs that I know of.
- Variable-cycle length emulation removed as a fixed-length cycle emulation
was faster to implement. Unfortunately, this has broken compatibility with
several ROMs which I'll try and fix soon.
- Auto-frame rate adjust can now be turned on and off using the +/- keys.
- RAM-patch cheat engine ported from snes97 to snes9x
- Nice new user interface in the MS-DOS port.
- Snes9X.INI file for storage of defaults
Snes9X v0.131, v0.13
--------------------
- Due to big errors, I've discarded most of the changes from this release,
and reimplemented a few of them a little better in 0.20
Snes9X v0.12
------------
- Auto-frame rate adjust to keep a constant game and music speed - idea from
Bloodlust (thanks).
- Sound state now saved and restored in snapshot files.
- Pro Action Reply, Game Genie(TM) and Gold Finger cheat code support.
- Added long name forms of all the command line switches.
- Added option to disable a few "internal" speed up hacks that caused problems
for some games with sound enabled - e.g. Super Off Road Racing.
- Sound code rewritten to help support a group of ROMs that spool sound data
between the two the CPUs in real-time, although I'm still having timing
problems with these ROMs.
- Fixed memory locking problem on the MS-DOS port. It was effectively
preventing virtual memory from working, causing problems for people with
limited RAM.
- A few more sound fixes.
- Speed ups to the tile-based redraw code.
Snes9X v0.1
-----------
- Sound support on all ports.
- The name has changed!
- Multiple SPC700 CPU emulation fixes and several sound DSP fixes - many more
ROMs work with sound enabled.
- Added fix for ROMs that re-use sprites during the same frame.
- Fixed bug I accidentally added to Allegro keyboard scanning code - now no
more lock ups when Caps-lock or Pause pressed on DOS port.
- Documented some extra keys and command line options that have always been
there.
- Asm CPU core speed ups.
- Minor bug fix that helps Final Fantasy 3.
- Added code to help some games that use sub-screen addition/subtraction.
The lack of sub-screen addition/subtraction shows itself as background
'priority' problems - now you don't have to toggle background layers on
and off so often just to see hidden text, characters, or maps, etc.
Use -L to enable. Toggle with '8' during a game to see if it makes a
difference.
Acts as a good intermediate solution until sub-screen addition/subtraction
is actually implemented in a future release.
- Made several bug fixes to the old, but faster tile-based drawing code
(enabled by pressing '9') - now several more ROMs work with it enabled.
- Modified sound skipper code - helps several ROMs that previously didn't work
with the current selection of APU skippers.
- Improved sound mixing code so volume is not attenuated so much, giving
better results on 8bit sound cards.
- Changed the frequency at which the joystick polling routine is called - now
called every-other frame rather than every 3rd frame.
- Recompiled Linux and DOS ports with the Pentium optimising version of gcc -
gives a few percent speed increase (on a Pentium processor).
- Fixed sprite priority bug with Mode 7 - apparently Final Fantasy 3 needs
this.
- Fixed a screen clipping problem with the Linux S-VGA mode.
- Fixed bug that had crept in with -m 2 Linux S-VGA mode.
- Fixed S-VGA Linux version with sound enabled.
- Fixed #define problem that was stopping DOS snapshot saving from working.
Coming Soon (What WAS planned)
-----------
- GrIP support in MS-DOS
- Control reconfigure in MS-DOS
- GUI-based cheat code entry in MS-DOS
- Linux and Solaris versions with a GUI.
- Sub-screen addition/subtraction using a full 32000 colour screen mode - none
of this simulate-in-256-colours rubbish.
What's Missing
--------------
Sub-screen addition and subtraction (used for transparency effects), offset
change mode (no idea what its used for), sound pitch modulation and echo
effects, pseudo 512 horizontal pixel mode and an interlaced display are all
missing. Also, colour palette changes during the frame are not emulated
correctly.
A couple of other odd features that no ROMs seem to use are also missing.
Some ROM cartridges contained additional hardware such as the SuperFX chip (a
16MHz RISC processor) or DSP chip, neither of these chips are emulated at the
moment so games that use them like Mario Kart, DOOM, Yoshi's Island, etc.
don't work.
What You Will Need
------------------
The MS-DOS port requires a Pentium-class PC or higher running Linux with 16Mb
or more of RAM and MS-DOS (or PC-DOS, DR-DOS, whatever) v3.30 or later.
Snes9x will run under Windows 95 in a DOS box without a problem, although for
more speed, you may want to run it in a true DOS session.
For sound output in DOS, you need to have a 100% Sound Blaster compatible
sound card. Beware: Some sound cards have very flaky Sound Blaster
emulation. I can only guarantee that they should work on authentic Creative
Labs Sound Blaster devices.
Bare minimum Recommended Optimum Equipment
------------ ----------- -----------------
System: 80386SX Pentium-100 or better Pentium-200 or better
Memory: 16MB 16MB 16MB
Video: VGA SVGA VESA2 compliant SVGA
Input: Keyboard Keyboard or joystick Keyboard or joystick
Sound: None Sound Blaster 16 Sound Blaster 16
Be aware that the bare minimum is NOT a recommended minimum. Snes9x will be
torture on a 386sx. Anything less than a 486dx2 should not be used, for
purposes of preserving your sanity.
Access to SNES ROM images in *.smc, *.sfc, *.fig or *.1, *.2, or sf32xxxa,
sf32xxxb, etc., format will also help otherwise you will have nothing to run!
Several public domain images are available from:
http://www.rollanet.org/~khigh/emulator.htm
Some commercial ROM images are available via the Internet.
Please note, it is illegal in most countries to have commercial ROM images
without also owning the actual SNES ROM cartridge.
PLEASE DO NOT ASK JERREMY, GARY, MYSELF OR ANYONE ELSE ON THE SNES9X TEAM
FOR ROM IMAGES OR FOR INFORMATION ON WHERE TO GET MORE, WE DO NOT KNOW AND
WILL IGNORE ALL SUCH E-MAILS OR, IF WE ARE HAVING A PARTICULARLY BAD DAY,
FORWARD THE E-MAIL TO THE EMULATOR ABUSE DATABASE.
Getting Started
---------------
From the dos prompt just type:
snes9x <ROM filename>
ROM images are normally loaded from the directory .\roms. This can be
changed by specifying a pathname with the image name or setting the
environment variable SNES96_ROM_DIR to point to a different directory. You
can also customize the directory by editing the snes9x.ini file to suit your
preferences. In fact, I suggest using the .ini file over the environment
variable, because under DOS, the environment space is very limited.
Snapshot files and S-RAM save files are normally read from and written to the
directory .\snesnaps. This can be changed by setting the environment variable
SNES96_SNAPSHOT_DIR or editing the SnapshotPath in the snes9x.ini file to
point to a different directory.
Some command line flags are available:
Sound options:
-S or -sound (default: on)
Enable sound CPU emulation and actual sound output.
-NS or -nosound
Disable sound CPU emulation and sound output, useful for the few ROMs
where sound emulation causes them to lock up due to timing errors.
-stereo (default: mono)
Enable stereo sound output (requires more CPU power to implement)
-r 0-7 or -soundquality 0-7 (default: 4)
Sound playback rate/quality:
0 - disable sound, 1 - 8192, 2 - 11025, 3 - 16500, 4 - 22050 (default),
5 - 29300, 6 - 36600, 7 - 44000.
Cheat options:
-gg <code> or -gamegenie <code>
Supply a Game Genie code for the current ROM. Up to 10 codes can be in
affect at once. Game Genie codes for many SNES games are available from:
http://game-genie.nvc.cc.ca.us/ Caution: Game genie codes seem a bit
flaky yet when using them in snes9x. There may be an error in the decode
process, or something.
-ar <code> or -actionreplay <code>
Supply a Pro-Action Reply code for the current ROM. Up to 10 codes can be
in affect at once. At the moment, codes which alter RAM do not work.
-gf <code> or -goldfinger <code>
Supply a Gold Finger code for the current ROM. Up to 10 codes can be in
affect at once.
Speed up/slow down options: (See "Speeding Up The Emulation")
-f <frame skip count> or -frameskip <frame skip count> (default: 4)
Set this value to set the frame skip rate. Use a larger value faster
emulation but more jerky movement and a smaller value for smooth but
slower screen updates. Use '+' and '-' keys to modify the value during
a game.
-fauto
Enables auto speed regulation. Makes the game and sound run at the correct
speed, by stalling, or skipping frames based on the actual framerate.
-ft <time> or -frametime <time>
Sets the speed between frames in milliseconds. Defaults are 17ms for
NTSC games (~59-60Hz), and 20ms for PAL games (50Hz).
-h <0-200> or -cycles <0-200>(default: 90)
Percentage of CPU cycles to execute per scan line, decrease value to
increase emulation frame rate. Most ROMs work with a value of 85 or above.
-O or -tileredraw (default: enabled)
Enable cached-tiled based screen redrawing method. Gives a very noticeable
frame rate increase but doesn't yet support mosaic and window effects.
-NO or -lineredraw
Enable line-by-line based screen redrawing method. It's quite slow, but
supports mosaic and window effects, and is less likely to mess up while
displaying.
-j or -nojoy (default)
Turn off automatic joystick detection (joystick polling on the PC slows
the emulator down).
Video options:
-m <0-4> or -mode <0-4> (default: 2)
Screen mode/resolution (try -m 0 if the default mode is not compatible
with your hardware)
0 - 320x240 ModeX, 1 - 320x200 VGA, 2 - 256x256 Non-standard VGA,
3 - 256x240 VGA/non-std, 4 - 640x480 Auto, 5 - 640x480 VESA 1.x
6 - 640x480 VESA2 Linear, 7 - 640x400 Xtended, 8 - 800x600 Auto
Another way you can set your preferred resolution is to edit the
snes9x.ini file. You can choose Video card, and resolution resolution
from there.
-scale (default: no scale)
Scale SNES image to fit screen resolution (significant slowdown).
-scanlines (default: off)
Turns on scanlines mode for only -m 2. All other modes will not be
affected by this switch.
ROM image format options:
-i or -interleaved (default: auto-detect 32Mbit ROM images)
Inform emulator ROM image is in interleaved format.
-ni or -nointerleave
Inform emulator ROM image is not in interleaved format. (default, and
currently useless)
-FH or -F or -forcehirom (default: auto-detect)
Force Hi-ROM memory map for ROMs where the Hi-ROM header test fails.
-FL or -forcelorom (default: auto-detect)
Force Lo-ROM memory map for ROMs where the Hi-ROM header test fails, e.g
Micro Machines, Pacman.
-o or -old (default: disabled)
Enable old-style joy-pad emulation (required by a few ROMs, e.g.
Super Bomber man 1, Star Wars trilogy)
-p or -pal (default: auto-detect)
Fool ROM into thinking this is a PAL SNES system.
-n or -ntsc (default: auto-detect)
Fool ROM into thinking this is a NTSC SNES system.
-ss <0-3> or -soundskip <0-3> (default: 0)
SPC-700 skip wait method - NOT USED IF SOUND IS ENABLED.
Use 1 for Metroid 3 and Animaniacs, and 3 for NBA Live 96.
-L or -layering (default: off)
Swap background layer priorities from background involved in sub-screen
addition/subtraction. Can improve some games playability - no need to
constantly toggle background layers on and off to read text/see maps, etc.
Toggle feature on and off during game by pressing '8'.
-l <snapshot file name> or -loadsnapshot <snapshot file name>
Load snapshot file and required ROM image and restart game from saved
position.
-H or -nohdma (default: H-DMA enabled)
Turn off the H-DMA emulation. Pressing '0' during a game toggles H-DMA on
and off. Only use if H-DMA causes a problem for a game, e.g.
Super Punchout.
-N or -nospeedhacks (default: speed hacks)
Turn off a couple of speed hacks. The hacks boost the speed of many ROMs
with sound enabled but cause problems a few ROMs, e.g. Super Off-Road Racer.
-SH or -speedhacks
Re-enables the speed hacks which can, in some cases, double the emulation
speed of the ROM.
Joystick options:
-2 or -two (default: Off)
Joystick connected to computer has 2 buttons.
-4 or -four (default: Off)
Joystick connected to computer has 4 buttons.
-6 or -six (default: Off)
Joystick connected to computer has 6 buttons.
-s or -swap
Swap emulated joy-pad 1 and 2 around, pressing '6' during a game does the
same thing.
-j or -nojoy
Turn off automatic joystick detection (joystick polling on the PC slows
the emulator down).
Limited use options:
-nogui
Turns off the menu system, and reverts to snes9x 0.12-type handling of
ESC, F2 and F3. Only useful for front-end systems.
-quiet
Turns off the pre-game status report when you specify a game on the
command line. No effect if you just run snes9x without specifying a
ROM, because the GUI system will start-up instead. Only useful for
front-end systems.
For example, to start a game called "mario", with sound, tile-based redrawing
and 256x256 graphics mode, type:
snes9x mario.smc -O -m 2 -sound
Keyboard Controls
-----------------
While the emulator is running:
'Escape' Enter the in-game menu system
'Pause' or 'Scroll Lock' Pause the emulator
Joy-pad 1:
'up' or 'u' Up direction
'down', 'j' or 'n' Down direction
'left' or 'h' Left direction
'right' or 'k' Right direction
'a', 'v' or 'q' TL button
'z', 'b' or 'w' TR button
's', 'm' or 'e' X button
'x', ',' or 'r' Y button
'd', '.' or 't' A button
'c', '/' or 'y' B button
'Left Control' or 'Left Meta' Start button
'Left Shift' Select button
Joy-pad 2:
'Keypad 8' Up direction
'Keypad 2' Down direction
'Keypad 6' Left direction
'Keypad 4' Right direction
'Insert' TL button
'Delete' TR button
'Home' X button
'End' Y button
'Page Up' A button
'Page Down' B button
'Right Control' or 'Right Meta' Start button
'Right Shift' Select button
'0' Toggle H-DMA emulation on/off.
'1' Toggle background 1 on/off (useful for speeding up the
'2' Toggle background 2 on/off emulation and for ROMs
'3' Toggle background 3 on/off that use colour addition in
'4' Toggle background 4 on/off a certain way, e.g. Zelda)
'5' Toggle sprites (OBJs) on/off
'6' Toggle swapping of joy-pad one and two around
'7' Take a snapshot of the current screen and save it to
a file.
'8' Toggle background layer priorities for backgrounds
involved in sub-screen addition/subtraction.
'9' Toggle old, cached-tiled based screen redrawing method
on/off. Gives noticeable speed increase but many ROMs
can exhibit slight to severe screen redisplay
problems.
'-' Decrease frame redraw skip rate
'+' Increase frame redraw skip rate
The sequence is auto-frame rate adjust, render every
frame, render 1 frame in two, render 1 frame in three,
render 1 frame in four, etc.
'F2' Load a game's saved position
'F3' Save a game's position
'F4' -> 'F11' Toggle sound channels on/off
'F12' Turn on all sound channels.
Joystick Support
----------------
The MS-DOS port of Snes9X supports one or two 2-button joysticks, or one
4-button or 6-button joystick - this limitation is imposed by PC hardware.
Currently, there's no way to remap the buttons on the joystick.
On a 2-button joystick only the A and B SNES buttons are available, the
remaining 4 can still be accessed via the keyboard.
The following diagram showing you the button layout for 6-button PC joy-pads
that look similar to real SNES joy-pads:
---TL--- ---TR---
^ X
|
<- -> Y A
| / /
v B
Make sure the joystick is centred or no buttons pressed for joy-pads when
the emulator is first started to enable auto-calibration to work.
Problems With ROMs
------------------
If the emulator just displays a black screen for over 10 seconds then one
of the following could be true:
1) The ROM image is corrupt. More likely is the ROM image is in interleaved
format; use the -i command line flag to tell the emulator it is in this
format.
2) Some ROMs have a bad ROM header, mostly home-brewed SNES games or hacked
commercial games. Snes9X cannot then detect if it is a Lo-ROM or Hi-ROM
game and just guesses. You might have to use the -F to force Hi-ROM or -FL
to force Lo-ROM to help it out.
3) The ROM is in a loop waiting for the Sound CPU to respond with a particular
value. Try turning off sound support. You might also have to change the
sound skip method using the -ss command line option.
4) The ROMs FAST ROM protection check has failed and the ROM has deliberately
crashed itself. The only thing you could try is one of the utilities on
the 'net that remove such protection.
5) You have set the -h command line value too low.
6) The original SNES ROM cartridge had additional hardware inside that is not
emulated yet - this is true for all SuperFX games (DOOM, etc.) and DSP
games (Mario Kart, Yoshi's Island, etc.).
7) The ROM image has found a CPU emulator instruction or memory map bug -
please e-mail with name of ROM images that do this. Unfortunately, it is
difficult to tell this problem from the protection failure problem
described above without disassembling the ROM.
If the game starts normally but refuses to go beyond the title screen try
using the -o command line flag to enable old-style SNES joy-pad emulation or
try pressing '6' in the emulator to swap joy-pads around; Mario All Stars
swaps joy-pads around with old-style SNES joy-pad emulation enabled.
If the ROM says "This game is not for your system" or something similar,
try using the -p flag to force PAL mode or -n to force NTSC mode.
Also, some ROMs use background colour addition (which isn't emulated yet) in
such a way that is hides the character you are trying to control or important
scenery; try toggling the background layers on and off with the keys 1 to 4 to
see if you can find the background layer causing the problem and leave it
switched off or try pressing '8' which changes the background priority levels
for backgrounds involved in sub-screen addition/subtraction.
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 specify the name of the first part, as above.
Speeding up the Emulation
-------------------------
Try the following command line flags:
-f or -frameskip <frame skip rate> (default auto-adjust)
Set this value to set the frame skip rate. Use a larger value for faster
emulation but more jerky movement and a smaller value for smooth but
slower screen updates. Use '+' and '-' keys to modify the value during a
game.
-fauto
Turn on auto-regulation of speed. Just beware that it will not exceed a
fixed frame-rate setting of -f 10.
-ft or -frametime <Milliseconds per emulated frame> (default: 20 or 17)
If auto-speed regulation is in effect, this value is used as the time, in
milliseconds, that an emulated frame should take. The frame skip rate
is automatically adjusted or the CPU paused to try and maintain this
target. 486 and low-end Pentium machines might never be able to hit the
default 20ms target with sound enabled, so you might want to increase this
value to maintain a constant, but slower game speed.
Under Windows 95 this value is currently limited to next greater
5ms value. You can by-pass that by editing the snes9x.ini file, and the
PIF file for snes9x.exe
-h or -cycles <CPU percentage of cycles execute> (default: 90)
Lowering this value will increase the frame rate but setting the
value too low can cause problems from some ROMs because not
enough CPU instructions are being executed per frame as the ROM
expects and can actually slow down a game! Most games work with a value
of 85 or above.
-m or -mode <screen mode> (default: 2)
Some screen modes allow faster screen update than others, -m 2, the default
is usually the fastest on most systems, but try the other modes, you never
know.
-j or -nojoy (default: off)
Disable automatic joystick detection. Reading joystick values on a PC takes
a relatively long time. If you have a joystick attached to your computer
that you are not using, use this option to stop the joystick from being
polled.
Disabling sound also speeds up the emulator because to get sound on an SNES
another 2.5MHz CPU must be emulated together with the eight channel sound DSP
and real-time sample decompression. If you must have sound, don't enable
stereo output and also consider lowering the playback rate.
Turning off some of the background layers by pressing '1' to '4' also speeds
up the emulator. As always, you could try running the emulator on a faster
machine/graphics card!
Known Problems
--------------
Problem: The GUI may stop responding if Windows 95 suggests that this program
should be run in DOS mode.
Solution: Press CTRL-ALT-END (not CTRL-ALT-DEL) to terminate snes9x, and
either change the snes9x.pif file so that win95 won't suggest DOS
mode, or set WindowsFriendly=1 in the snes9x.ini file.
Problem: After loading several games, some games will refuse to run.
Solution: I'm forgetting to reinitialise something, but I'm not sure what.
But since it doesn't happen too often, the only solution is to exit
snes9x, then restart it.
Problem: "Near" and "Changed" searches take FOREVER!
Solution: Sorry, those searches have to analyse a lot of data, so you'll just
have to wait it out.
Problem: Can't specify Game Genie/PAR/GoldFinger cheats within the GUI.
Solution: I haven't yet finished a GUI-based dialog interface to add and
remove these codes.
Problem: Some previously working games do not run anymore, or run very
slowly.
Solution: The default cycles per scanline was reduced to be comparable to
esnes and nlksnes. You may need to specify -h 100 on the command
line to get a few games running.
Credits
-------
Thanks to Jared Hoag (Aquis) for the background graphic which integrated
nicely into the menu system.
Game Genie(TM), Gold Finger and Pro Action Replay cheat system information was
obtained from DiskDude's SNES Kart v1.6 document.
A great big thank you to Steve Snake for his insights into SNES sound sample
decompression.
Many thanks must go to Jerremy Koot (jkoot@euronet.nl) because without all
his hard work on the original Snes96 and Snes97 Windows 95 versions, Snes9X
would not exist in its current form.
Thanks to Lee Hyde (lee@jlp1.demon.co.uk) for his quest for sound information
and the Windows 95 icons.
Thanks also to a person who shall remain nameless for his continuing quest for
SNES information on my behalf (thanks to him, SuperFX emulation might be a
reality one day).
SNES is a trademark of Nintendo.
MS-DOS, Windows 95 and Windows are trademarks of Microsoft.
Sound Blaster is a trademark of Creative Labs.
Game Genie is a trademark of Lewis Galoob Toys, Inc.
The Graphics Interchange Format(c) is the Copyright property of CompuServe
Incorporated. GIF(tm) is a Service Mark property of CompuServe Incorporated.
LZW compression, used as a part of GIF generation is patented by Unisys.
------------------------------------------------------------------------------
Chad Kitching (kitchingc@mail.techplus.com)