home *** CD-ROM | disk | FTP | other *** search
/ Computer Installation Guide - Dragon Clan Series / CD2.iso / GAME / SNES9X.DOS / README.TXT < prev    next >
Encoding:
Text File  |  1997-07-08  |  23.3 KB  |  523 lines

  1.         Snes9X 0.1 Released 8th July 1997
  2.         ---------------------------------
  3.  
  4. Gary Henderson (gary@daniver.demon.co.uk)
  5.  
  6. Contents
  7. --------
  8. Introduction
  9. Key Features
  10. What's New
  11. What's Missing
  12. What You Will Need
  13. Getting Started/Command Line Options
  14. Keyboard Controls
  15. Joystick Support
  16. Linux S-VGA Full-Screen Mode
  17. Problems With ROMs
  18. Converting ROM Images
  19. Speeding up the Emulation
  20. Credits
  21.  
  22. Introduction
  23. ------------
  24.  
  25. This is a Super Nintendo Entertainment System (SNES) emulator for Linux i386,
  26. MS-DOS and Sun Solaris Sparc featuring work-in-progress 16-bit, digital
  27. stereo sound on all ports. Jerremy Koot is working on a Windows 95 port.
  28.  
  29. Snes9X is coded in C++ with an assembler CPU emulation core on the Linux and
  30. MS-DOS ports. More parts will be recoded in assembler in later versions.
  31.  
  32. It is a spare-time project done for my own interest that I thought other
  33. people might enjoy. I've had virtually no help from anyone else over the past
  34. few months. 90% of the time I spend on Snes9X isn't spent writing new code at
  35. all - its time taken trying to discover how certain SNES features work,
  36. speeding up existing code while still keeping it portable, testing or writing
  37. documentation.
  38.  
  39. The SNES is a much more complex beast to emulate than say the NES. It has a
  40. more complex main CPU, clocked twice as fast the NES, that can address more
  41. memory and larger ROM images. It has four background layers compared to the
  42. one on the NES, each of which can display up to 256 colours at once compared
  43. to 32 on the NES. It has twice as many sprites as the NES, each of which can
  44. be twice as large as those on the NES and interleaved between background
  45. layers. It has more DMA channels, raster H-DMA effects, another CPU purely for
  46. sound and almost twice as many sound channels - each of which plays compressed
  47. sound samples rather than simple square or triangle waves and each sound
  48. channel has hardware volume envelopes. The SNES also has transparency effects
  49. (not emulated yet) that pushes up the possible number of colours on the screen
  50. to 32768.
  51.  
  52. For people who think all SNES emulators are "crap" - don't use them, go and
  53. use a real SNES instead. For people who think NLKSNES is the best emulator
  54. because its the fastest - good luck finding a ROM it works with and enjoy the
  55. silence. For people who think Bloodlust Software will be their only hope for
  56. SNES emulation - enjoy the wait. For everyone else, please enjoy this release
  57. and I'm sorry, but you'll just have to give me more time before a GUI/more
  58. speed/transparency effects/better joystick support/DSP/SuperFX/screen
  59. saving/cheat codes/net-link/speed-limiting code/<insert your favourite missing
  60. feature here> are implemented.
  61.  
  62. Sorry for not being able to respond to every e-mail message I get - all are
  63. read but wives/children/work/vacations/crappy mail reading programs all
  64. conspire to prevent me from having the time to respond to every message.
  65.  
  66. Key Features
  67. ------------
  68. o 16-bit, digital stereo sound on all ports. A large number of ROMs work with
  69.   sound enabled, but most suffer from problems ranging from varying music
  70.   playback speed to almost random noise output or silence. Sound emulation
  71.   work is continuing.
  72. o Two screen refresh methods, an accurate, but slow mode and a NLKSNES-type
  73.   mode which is much faster - although not as fast as NLKSNES as it is coded
  74.   in assembler - but only works well with some ROMs.
  75. o Multiple screen mode supported on the Linux S-VGA and MS-DOS ports.
  76. o Simultaneous two SNES joy-pad emulation allowing two player games to be
  77.   played.
  78. o Lots of ROMs work, the numbers are increasing with each release (slowly).
  79. o Support for one 2, 4 or 6 button joystick or two 2-button joysticks - Linux
  80.   and MS-DOS ports only.
  81. o The only Snes emulator to have a large part of its documentation ripped
  82.   off as well as its code.
  83. o Speed, with a 100% assembler CPU emulation core on Linux and MS-DOS ports -
  84.   it was the fastest SNES emulator around until recently and might be again
  85.   one day.
  86. o Snapshot a game in progress and restore the game to that exact point at
  87.   a later time.
  88. o Complete, fast mode 7 emulation (screen rotation and scaling) - all except
  89.   one rarely used feature.
  90. o Complete H-DMA emulation for those split screen and wavy background effects.
  91. o Background clip windows for those H-DMA zoom effects.
  92. o Variable CPU cycles length as on the real SNES, for fast and slow ROM
  93.   emulation.
  94. o Mosaic effect.
  95. o Compressed and/or split ROM image support.
  96. o SNES image scaling.
  97. o 8-bit, 16-bit and 24-bit X11 server support.
  98. o An uncrackable binary - mainly because it has no protection to crack such as
  99.   time limits, limited colours, etc., etc. and never will.
  100.  
  101. What's New
  102. ----------
  103. - Sound support on all ports.
  104. - The name has changed!
  105. - Multiple SPC700 CPU emulation fixes and several sound DSP fixes - many more
  106.   ROMs work with sound enabled.
  107. - Added fix for ROMs that re-use sprites during the same frame.
  108. - Fixed bug I accidentally added to Allegro keyboard scanning code - now no
  109.   more lock ups when Caps-lock or Pause pressed on DOS port.
  110. - Documented some extra keys and command line options that have always been
  111.   there.
  112. - Asm CPU core speed ups.
  113. - Minor bug fix that helps Final Fantasy 3.
  114. - Added code to help some games that use sub-screen addition/subtraction.
  115.   The lack of sub-screen addition/subtraction shows itself as background
  116.   'priority' problems - now you don't have to toggle background layers on
  117.   and off so often just to see hidden text, characters, or maps, etc.
  118.   Use -L to enable. Toggle with '8' during a game to see if it makes a
  119.   difference.
  120.   Acts as a good intermediate solution until sub-screen addition/subtraction
  121.   is actually implemented in a future release.
  122. - Made several bug fixes to the old, but faster tile-based drawing code
  123.   (enabled by pressing '9') - now several more ROMs work with it enabled.
  124. - Modified sound skipper code - helps several ROMs that previously didn't work
  125.   with the current selection of APU skippers.
  126. - Improved sound mixing code so volume is not attenuated so much, giving
  127.   better results on 8bit sound cards.
  128. - Changed the frequency at which the joystick polling routine is called - now
  129.   called every-other frame rather than every 3rd frame.
  130. - Recompiled Linux and DOS ports with the Pentium optimising version of gcc -
  131.   gives a few percent speed increase (on a Pentium processor).
  132. - Fixed sprite priority bug with Mode 7 - apparently Final Fantasy 3 needs
  133.   this.
  134. - Fixed a screen clipping problem with the Linux S-VGA mode.
  135. - Fixed bug that had crept in with -m 2 Linux S-VGA mode.
  136. - Fixed S-VGA Linux version with sound enabled.
  137. - Fixed #define problem that was stopping DOS snapshot saving from working.
  138.  
  139. What's Missing
  140. --------------
  141.  
  142. Sub-screen addition and subtraction (used for transparency effects), offset
  143. change mode (no idea what its used for), sound pitch modulation and echo
  144. effects and pseudo 512 horizontal pixel mode.
  145.  
  146. A couple of other odd features that no ROMs seem to use are also missing:
  147. direct colour output and interlaced display.
  148.  
  149. Some ROM cartridges contained additional hardware such as the SuperFX chip (a
  150. 16MHz RISC processor) or DSP chip, neither of these chips are emulated at the
  151. moment so games that use them like Mario Kart, DOOM, Yoshi's Island, etc.
  152. don't work.
  153.  
  154. What You Will Need
  155. ------------------
  156.  
  157. You will need a Pentium-class PC or higher running Linux, MS-DOS or Windows
  158. 95. Machines running MS-DOS will need at least 8Mb of RAM while machines
  159. running Linux or Windows 95 will need at least 16Mb of RAM.
  160.  
  161. The Linux port requires a recent, stable kernel version; I'm using 2.0.27.
  162. The Sun Solaris Sparc port requires a fast Sun Sparc workstation running
  163. Solaris 5.x.  Both the UNIX ports are dynamically linked and will require
  164. access to various shared libraries. Use ldd snes9x to make sure you have all
  165. the required libraries on your system.
  166.  
  167. The Solaris port and the Linux X11 version will also need an X server running.
  168.  
  169. For sound output on the Linux port, your kernel will require the 2.0 sound
  170. drivers configured and linked in. The MS-DOS port will require a Sound Blaster
  171. sound card or register-level compatible card.
  172.  
  173. Access to SNES ROM images in *.smc, *.sfc, *.fig or *.1, *.2, or sf32xxxa,
  174. sf32xxxb, etc., format will also help otherwise you will have nothing to run!
  175. Several public domain images are available from:
  176. http://www.rollanet.org/~khigh/emulator.htm
  177.  
  178. Some commercial ROM images are available via the Internet, try following links
  179. from:
  180. http://members.aol.com/zorkwiz/snesrom.htm
  181.  
  182. Please note, it is illegal in most countries to have commercial ROM images
  183. without also owning the actual SNES ROM cartridge.
  184.  
  185. PLEASE DO NOT ASK JERREMY OR MYSELF FOR ROM IMAGES OR FOR INFORMATION ON WHERE
  186. TO GET MORE, WE DO NOT KNOW AND WILL IGNORE ALL SUCH E-MAILS OR, IF WE ARE
  187. HAVING A PARTICULARLY BAD DAY, FORWARD THE E-MAIL TO THE EMULATOR ABUSE
  188. DATABASE.
  189.  
  190. Getting Started
  191. ---------------
  192.  
  193. From a shell or DOS session just type:
  194. snes9x <ROM filename>
  195.  
  196. ROM images are normally loaded from the directory ./roms. This can be
  197. changed by specifying a pathname with the image name or setting the
  198. environment variable SNES96_ROM_DIR to point to a different directory.
  199.  
  200. Snapshot files and S-RAM save files are normally read from and written to the
  201. directory $HOME/.snes96_snapshots for the UNIX ports or .\SNESNAPS for the
  202. MS-DOS port. This can be changed by setting the environment variable
  203. SNES96_SNAPSHOT_DIR to point to a different drive/directory.
  204.  
  205. Some command line flags are available:
  206.  
  207. Sound options:
  208. -S Enable sound CPU emulation and actual sound output. Also allows several
  209.    ROMs to run that used to get stuck in sound down-load code.
  210.    DO NOT USE GAME SNAPSHOT FEATURE WITH SOUND CPU ENABLED.
  211. -stereo Enable stereo sound output (needs high-end Pentium-class machine)
  212. -r 0-7 Sound playback rate/quality:
  213.        0 - disable sound, 1 - 8192, 2 - 11025, 3 - 16500, 4 - 22050 (default),
  214.        5 - 29300, 6 - 36600, 7 - 44000.
  215. Linux and Solaris ports only:
  216. -B Buffer size in bytes 128-4096 (default auto-select for playback rate)
  217.  
  218. Speed up/slow down options: (See "Speeding Up The Emulation")
  219. -f <frame skip count> (2)
  220. -h <0-100> Percentage of cpu cycles to execute per scan line (100)
  221. -O Enable old, cached-tiled based screen redrawing method. Gives noticeable
  222.    speed increase but many ROMs can exhibit slight to severer screen redisplay
  223.    problems.
  224. -j Turn off automatic joystick detection (joystick polling on the PC slows
  225.    the emulator down).
  226.  
  227. MS-DOS:
  228. -m <0-8> Screen mode/resolution (try -m 2)
  229.          0 - 320x240 ModeX, 1 - 320x200 VGA, 2 - 256x256 Non-standard VGA,
  230.          3 - 640x480 Auto-detect, 4 - 640x480 VESA1, 5 - 640x480 VESA2
  231.          6 - 640x480 VESA2 Linear, 7 - 640x400 Extended,
  232.          8 - 800x600 Auto-detect.
  233. -scale Scale SNES image to fit screen resolution.
  234.  
  235. Linux S-VGA:
  236. -m <0-4> Screen mode/resolution (try -m 2)
  237.          0 - 320x240 ModeX, 1 - 320x200 VGA, 2 - 256x256 Non-standard VGA,
  238.          3 - 640x480 S-VGA, 4 - 800x600 S-VGA
  239. -scale   Scale SNES image to fit screen resolution.
  240.  
  241. ROM image format options:
  242. -i Inform emulator ROM image is in interleaved format.
  243. -F Force Hi-ROM memory map for ROMs where the Hi-ROM header test fails.
  244. -FL Force Lo-ROM memory map for ROMs where the Hi-ROM header test fails.
  245. -o Enable old-style joy-pad emulation (required by a few ROMs, e.g.
  246.    Super Bomber man 1, Star Wars trilogy)
  247. -p Fool ROM into thinking this is a PAL SNES system.  (not usually
  248. -n Fool ROM into thinking this is a NTSC SNES system.  required)
  249. -ss <0-3> SPC-700 skip wait method (0) - NOT USED IF SOUND IS ENABLED.
  250.           Use 1 for Metroid 3 and Animatics, and 3 for NBA Live 96.
  251. -L Swap background layer priorities from background involved in sub-screen
  252.    addition/subtraction. Can improve some games playability - no need to
  253.    constantly toggle background layers on and off to read text/see maps, etc.
  254.    Toggle feature on and off during game by pressing '8'.
  255. -l <snapshot file name> Load snapshot file and required ROM image and restart
  256.             game from saved position. DO NOT USE WITH -S OPTION.
  257. -H Turn off the H-DMA emulation. Pressing '0' during a game toggles H-DMA
  258.    on and off.
  259.  
  260. Joystick options:
  261. -4 Joystick connected to computer has 4 buttons.
  262. -6 Joystick connected to computer has 6 buttons.
  263. -s Swap emulated joy-pad 1 and 2 around, pressing '6' during a game does the
  264.    same thing.
  265. -j Turn off automatic joystick detection.
  266.  
  267. For example, to start a game called "mario", with sound, tile-based redrawing
  268. and 256x256 graphics mode, type:
  269.  
  270. snes9x -S -m 2 -O mario.smc
  271.  
  272. Keyboard Controls
  273. -----------------
  274.  
  275. While the emulator is running:
  276. 'Escape'                 Quit the emulator
  277. 'Pause' or 'Scroll Lock' Pause the emulator
  278.  
  279. Joy-pad 1:
  280. 'up' or 'u'             Up direction
  281. 'down', 'j' or 'n'      Down direction
  282. 'left' or 'h'           Left direction
  283. 'right' or 'k'          Right direction
  284. 'a', 'v' or 'q'         TL button
  285. 'z', 'b' or 'w'         TR button
  286. 's', 'm' or 'e'         X button
  287. 'x', ',' or 'r'         Y button
  288. 'd', '.' or 't'         A button
  289. 'c', '/' or 'y'         B button
  290. 'Left Control' or 'Left Meta' Start button
  291. 'Left Shift'            Select button
  292.  
  293. Joy-pad 2:
  294. 'Keypad 8'              Up direction
  295. 'Keypad 2'              Down direction
  296. 'Keypad 6'              Left direction
  297. 'Keypad 4'              Right direction
  298. 'Insert'                TL button
  299. 'Delete'                TR button
  300. 'Home'                  X button
  301. 'End'                   Y button
  302. 'Page Up'               A button
  303. 'Page Down'             B button
  304. 'Right Control' or 'Right Meta'    Start button
  305. 'Right Shift'           Select button
  306.  
  307. '0'                     Toggle H-DMA emulation on/off.
  308. '1'                     Toggle background 1 on/off (useful for speeding up the
  309. '2'                     Toggle background 2 on/off  emulation and for ROMs
  310. '3'                     Toggle background 3 on/off  that use colour addition in
  311. '4'                     Toggle background 4 on/off  a certain way, e.g. zelda)
  312. '5'                     Toggle sprites (OBJs) on/off
  313. '6'                     Toggle swapping of joy-pad one and two around
  314. '8'                     Toggle background layer priorities for backgrounds
  315.                         involved in sub-screen addition/subtraction.
  316. '9'            Toggle old, cached-tiled based screen redrawing method
  317.             on/off. Gives noticeable speed increase but many ROMs
  318.             can exhibit slight to severer screen redisplay
  319.             problems.
  320.  
  321. '-'            Decrease frame redraw skip rate
  322. '+'            Increase frame redraw skip rate
  323. 'F2'                    Load snapshot of game in progress (DO NOT USE WITH
  324. 'F3'                    Save snapshot of game in progress  SOUND CPU ENABLED)
  325.  
  326. 'F4' -> 'F11'        Toggle sound channels on/off
  327. 'F12'            Turn on all sound channels.
  328.  
  329. Joystick Support
  330. ----------------
  331.  
  332. The Linux and MS-DOS ports of Snes9X supports one or two 2-button joysticks,
  333. or one 4-button or 6-button joystick - this limitation is imposed by PC
  334. hardware. The Linux port requires the kernel to have the joystick driver
  335. compiled in or loaded as a module to enable Snes9X to access the joystick(s).
  336. The driver source code is available from:
  337. http://sunsite.unc.edu/pub/Linux/kernel/patches/console/joystick-0.8.0.tar.gz
  338. Don't forget to also make the two devices in /dev - /dev/js0 and /dev/js1 and
  339. make them readable by everyone; documentation supplied with the driver gives
  340. details of this.
  341.  
  342. On a 2-button joystick only the A and B SNES buttons are available, the
  343. remaining 4 can still be accessed via the keyboard.
  344.  
  345. The following diagram showing you the button layout for 6-button PC joy-pads
  346. that look similar to real SNES joy-pads:
  347.  
  348.      ---TL---           ---TR---
  349.  
  350.         ^                  X
  351.         |
  352.      <-   ->            Y     A
  353.         |       /  /
  354.         v                  B
  355.  
  356.  
  357. Make sure the joystick is centred or no buttons pressed for joy-pads when
  358. the emulator is first started to enable auto-calibration to work.
  359.  
  360. For DOS users who want to use GRIP keyboard emulation support, use the -j
  361. command line option to disable automatic joystick detection.
  362.  
  363. Linux S-VGA Full-Screen Mode
  364. ----------------------------
  365.  
  366. The Linux port of Snes9X is supplied as two binaries: snes9x for the
  367. X Window System version and ssnes9x for the S-VGA 256x256 full-screen version.
  368.  
  369. The S-VGA version needs root permissions so it can write to the PC video
  370. registers to change screen modes (the X server has the same problem). You can
  371. either run as root (not recommended) or set the binary to run set-uid root as
  372. follows:
  373.  
  374. Log on as root or su to root.
  375. Change to the directory where the ssnes9x binary is stored.
  376. Type:
  377. chown root ssnes9x
  378. chmod 4555 ssnes9x
  379.  
  380. Now the binary can be run by an ordinary user in much the same way the
  381. X server can. The default VGA screen mode is 320x240x256 mode-X, which should
  382. work on any system. However, mode-X slows down the emulator a little so you
  383. might what to try using the -m 2 command line flag to see if the slightly
  384. faster 256x256x256 screen mode is compatible with your system.
  385.  
  386. Problems With ROMs
  387. ------------------
  388.  
  389. If the emulator just displays a black screen for over 10 seconds then one
  390. of the following could be true:
  391.  
  392. 1) The ROM image is corrupt. More likely is the ROM image is in interleaved 
  393.    format; use the -i command line flag to tell the emulator it is in this
  394.    format.
  395. 2) Some ROMs have a bad ROM header, mostly home-brewed SNES games or hacked
  396.    commercial games. Snes9X cannot then detect if it is a Lo-ROM or Hi-ROM
  397.    game and just guesses. You might have to use the -F to force Hi-ROM or -FL
  398.    to force Lo-ROM to help it out.
  399. 3) The ROM is in a loop waiting for the Sound CPU to respond with a particular
  400.    value and the sound wait skip code in the emulator hasn't spotted the fact.
  401.    Try using a different -ss command line option value in the range 0 to 3.
  402.    You could also try the -S command line flag which enables the
  403.    SPC700 emulation. This allows several ROMs to continue that previously were
  404.    stuck in sound down-load code.
  405. 4) The ROMs FAST ROM protection check has failed and the ROM has deliberately
  406.    crashed itself. The only thing you could try is one of the utilities on
  407.    the 'net that remove such protection.
  408. 5) You have set the -h command line value too low.
  409. 6) The original SNES ROM cartridge had additional hardware inside that is not
  410.    emulated yet - this is true for all SuperFX games (DOOM, etc.) and DSP
  411.    games (Mario Kart, Yoshi's Island, etc.). Some of the later ROMs (1994+)
  412.    had additional hardware as a form of protection (Williams Arcade Classics,
  413.    Clay Fighters II, etc.). There is nothing you can do about these games
  414.    except patching the ROM or wait until I emulate the missing hardware, but
  415.    this must be done individually, for each game.  (Williams Arcade Classics
  416.    is already supported).
  417. 7) The ROM image has found a CPU emulator instruction or memory map bug -
  418.    please e-mail with name of ROM images that do this. Unfortunately, it is
  419.    difficult to tell this problem from the protection failure problem
  420.    described above without disassembling the ROM.
  421.  
  422. If the game starts normally but refuses to go beyond the title screen try
  423. using the -o command line flag to enable old-style SNES joy-pad emulation or
  424. try pressing '6' in the emulator to swap joy-pads around; Mario All Stars
  425. swaps joy-pads around with old-style SNES joy-pad emulation enabled.
  426.  
  427. If the ROM says "This game is not for your system" or something similar,
  428. try using the -p flag to force PAL mode or -n to force NTSC mode.
  429.  
  430. Also, some ROMs use background colour addition (which isn't emulated yet) in
  431. such a way that is hides the character you are trying to control or important
  432. scenery; try toggling the background layers on and off with the keys 1 to 4 to
  433. see if you can find the background layer causing the problem and leave it
  434. switched off or try pressing '8' which changes the background priority levels
  435. for backgrounds involved in sub-screen addition/subtraction.
  436.  
  437. Converting ROM Images
  438. ---------------------
  439.  
  440. If you have a ROM image in several pieces, simply rename them so their
  441. filename extensions are numbered: e.g. game.1, game.2, etc. Then, when
  442. loading the ROM image, just specify the name of the first part; the remaining
  443. parts will be loaded automatically.
  444.  
  445. If they are already in the form sf32xxxa, sf32xxxb, etc., you don't even have
  446. to rename them; just specify the name of the first part, as above.
  447.  
  448. Speeding up the Emulation
  449. -------------------------
  450.  
  451. Try the following command line flags:
  452. -f <frame skip rate> (default 2: only every 3rd frame is rendered and
  453.               displayed)
  454.     Increasing this value will speed up the emulator but make screen
  455.     updates more jerky. During a game, the '+' and '-' keys increase or
  456.     decrease the frame skip rate.
  457.  
  458. -O Enable cached-tile based screen redraw code. Pressing '9' during a game
  459.    also toggles this redraw method on and off. It gives a very noticeable
  460.    speed increase but can cause severer screen redisplay problems on some ROMs,
  461.    which was why I removed the code in the first place. However, it might make
  462.    all the difference for people with slower machines.
  463.  
  464. -h <CPU percentage of cycles per scan line to execute> (default 100)
  465.     Lowering this value will also speed up the emulator but setting the
  466.     value too low can cause problems from some ROMs because not
  467.     enough CPU instructions are being executed per frame as the ROM
  468.     expects and can actually slow down a game!
  469.  
  470. -m <screen mode> Some screen modes allow faster screen update than others,
  471.         try -m 2 to see if the faster, non-mode X VGA mode is compatible with
  472.         your system. MS-DOS users could try -m 3 or higher to try one of the
  473.         VESA screen modes.
  474.  
  475. -j Disable automatic joystick detection. Reading joystick values on a PC takes
  476.    a relatively long time. If you have a joystick attached to your computer
  477.    that you are not using, use this option to stop the joystick from being
  478.    polled.
  479.  
  480. DOS users should make sure they have a good DOS graphics card. For example,
  481. Snes9X runs almost as fast on my P100 desktop machine as it does on my P166
  482. laptop; the reason being CPU write access speed to the graphics memory on my
  483. laptop is a lot slower than on my desktop machine. If you are suffering from a
  484. slow write-access graphics card, wait for the Windows 95 port as that will use
  485. hardware accelerated bit-blt, where available, to copy screen data into
  486. memory on the graphics card.
  487.  
  488. Not enabling sound also speeds up the emulator because to get sound on an SNES
  489. another 2.5MHz CPU must be emulated together with the eight channel sound DSP
  490. and real-time sample decompression. If you must have sound, don't enable
  491. stereo output and may be lower the playback rate.
  492.  
  493. Turning off some of the background layers by pressing '1' to '4' also speeds
  494. up the emulator. As always, you could try running the emulator on a faster
  495. machine/graphics card!
  496.  
  497. Credits
  498. -------
  499.  
  500. A great big thank you to Steve Snake for his insights into SNES sound sample
  501. decompression.
  502.  
  503. Many thanks must go to Jerremy Koot (jkoot@euronet.nl) because without all
  504. his hard work on the original Snes96 and Snes97 Windows 95 versions, Snes9X
  505. would not exist in its current form.
  506.  
  507. Thanks to Lee Hyde (lee@jlp1.demon.co.uk) and his quest for sound information.
  508.  
  509. Thanks also to a person who shall remain nameless for his continuing quest for
  510. SNES information on my behalf (thanks to him, SuperFX emulation might be a
  511. reality one day).
  512.  
  513. I would also like to thank Shawn Hargreaves (shawn@talula.demon.co.uk) for
  514. the Allegro library which made porting Snes9X relatively easy and my many beta
  515. testers - both official and unofficial!
  516.  
  517. SNES is a trademark of Nintendo. 
  518. Sun, Solaris and Sparc are trademarks of Sun Microsystems, Inc.  
  519. MS-DOS and Windows 95 are trademarks of the MicroSoft Corporation.
  520.  
  521. ------------------------------------------------------------------------------
  522. Gary Henderson (gary@daniver.demon.co.uk)
  523.