From c71ad1a2118e00387942062b353929ff0a22f57b Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Tue, 18 Jan 2005 00:38:28 +0000 Subject: [PATCH] Doc updates from the doc team. --- zsnes/docs/DOS/about.htm | 188 ++- zsnes/docs/DOS/credits.htm | 290 ++--- zsnes/docs/DOS/faq.htm | 1236 ++++++------------- zsnes/docs/DOS/gui.htm | 1186 +++++++++--------- zsnes/docs/DOS/images/cheat.png | Bin 10264 -> 9207 bytes zsnes/docs/DOS/images/config.png | Bin 13249 -> 15509 bytes zsnes/docs/DOS/images/corner.png | Bin 562 -> 626 bytes zsnes/docs/DOS/images/game.png | Bin 12249 -> 12549 bytes zsnes/docs/DOS/images/get.png | Bin 2305 -> 1872 bytes zsnes/docs/DOS/images/gui.png | Bin 8377 -> 6072 bytes zsnes/docs/DOS/images/misc.png | Bin 11557 -> 11997 bytes zsnes/docs/DOS/images/netplay.png | Bin 9539 -> 7435 bytes zsnes/docs/DOS/images/quick.png | Bin 13064 -> 11747 bytes zsnes/docs/DOS/images/safer.png | Bin 2331 -> 1900 bytes zsnes/docs/DOS/images/zsneslogo.png | Bin 7050 -> 7338 bytes zsnes/docs/DOS/readme.htm | 1373 ++++++++++----------- zsnes/docs/DOS/style.css | 279 +++-- zsnes/docs/Linux/about.htm | 194 ++- zsnes/docs/Linux/credits.htm | 296 ++--- zsnes/docs/Linux/faq.htm | 190 ++- zsnes/docs/Linux/gui.htm | 1172 +++++++++--------- zsnes/docs/Linux/netplay.htm | 379 +++--- zsnes/docs/Linux/readme.htm | 1322 +++++++++----------- zsnes/docs/Linux/style.css | 279 +++-- zsnes/docs/Windows/about.htm | 212 ++-- zsnes/docs/Windows/credits.htm | 314 +++-- zsnes/docs/Windows/faq.htm | 1178 ++++++------------ zsnes/docs/Windows/gui.htm | 1226 +++++++++--------- zsnes/docs/Windows/images/cheat.png | Bin 10264 -> 11704 bytes zsnes/docs/Windows/images/config.png | Bin 13249 -> 20755 bytes zsnes/docs/Windows/images/corner.png | Bin 562 -> 626 bytes zsnes/docs/Windows/images/game.png | Bin 12249 -> 16494 bytes zsnes/docs/Windows/images/get.png | Bin 2305 -> 1872 bytes zsnes/docs/Windows/images/gui.png | Bin 8377 -> 8094 bytes zsnes/docs/Windows/images/misc.png | Bin 11557 -> 15669 bytes zsnes/docs/Windows/images/netplay.png | Bin 9539 -> 9440 bytes zsnes/docs/Windows/images/quick.png | Bin 13064 -> 15191 bytes zsnes/docs/Windows/images/safer.png | Bin 2331 -> 1900 bytes zsnes/docs/Windows/images/windowslogo.png | Bin 2278 -> 2396 bytes zsnes/docs/Windows/images/zsneslogo.png | Bin 7050 -> 7338 bytes zsnes/docs/Windows/netplay.htm | 410 +++--- zsnes/docs/Windows/readme.htm | 1326 +++++++++----------- zsnes/docs/Windows/style.css | 279 +++-- 43 files changed, 5905 insertions(+), 7424 deletions(-) diff --git a/zsnes/docs/DOS/about.htm b/zsnes/docs/DOS/about.htm index 3b331e4b..9beb7d93 100644 --- a/zsnes/docs/DOS/about.htm +++ b/zsnes/docs/DOS/about.htm @@ -1,109 +1,81 @@ - - - - - - - ZSNES Documentation - DOS v1.4 - About - - - - - - - - - - - -
- ZSNES
- ZSNES DOS v1.4 -
-
-     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
-

- - - - - -
- - - - - - - -
- About -
- The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
-
- Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
-
-
-
- Best viewed in a real web browser such as Firefox.
- Get Firefox!Get Firefox! -
-
- - + + + + + ZSNES Documentation - DOS v1.41 - About + + + + + + + + +
+ [About] [Credits] [ZSNES.com] [Donate] [GPL] +
+ + + +
+

About

+ +
+ The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
+
+ Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
+
+
+ + + +
+ ZSNES Documentation v2.0 +
+ + + \ No newline at end of file diff --git a/zsnes/docs/DOS/credits.htm b/zsnes/docs/DOS/credits.htm index aa435484..4a12a390 100644 --- a/zsnes/docs/DOS/credits.htm +++ b/zsnes/docs/DOS/credits.htm @@ -1,165 +1,127 @@ - - - - - - - ZSNES Documentation - DOS v1.4 - Credits - - - - - - - - - - - -
- ZSNES
- ZSNES DOS v1.4 -
-
-     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
-

- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Credits -
- Developers -
- zsKnight
- _Demo_
- pharos
- pagefault
- Nach
-
- Contributers -
- StatMat
- ipher
- theoddone33
- Siloh
-
- Documentation Writers/Contributers -
- RichardC
- Nach
- LDAWG
- kevman
- IceFox
- Noxious Ninja
- Clements
-
- Special Thanks -
- Radio
-
- Donations -
- ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
-
-
-
- Best viewed in a real web browser such as Firefox.
- Get Firefox!Get Firefox! -
-
- - + + + + + ZSNES Documentation - DOS v1.41 - Credits + + + + + + + + +
+ [About] [Credits] [ZSNES.com] [Donate] [GPL] +
+ + + +
+

Credits

+ +
+
+ +

Developers

+ +
+ zsKnight
+ _Demo_
+ Pharos
+ pagefault
+ Nach
+
+ +

Contributers

+ +
+ StatMat
+ ipher
+ theoddone33
+ Siloh
+ Jonas Quinn
+ TRAC
+ Diablo-D3
+ Overload
+ zinx
+
+ +

Documentation Writers/Contributers

+ +
+ RichardC
+ Nach
+ LDAWG
+ kevman
+ IceFox
+ Noxious Ninja
+ Clements
+ Jonas Quinn
+
+ +

Special Thanks

+ +
+ Radio
+
+ +

Donations

+ +
+ ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
+
+
+ + + +
+ ZSNES Documentation v1.1 +
+ + + \ No newline at end of file diff --git a/zsnes/docs/DOS/faq.htm b/zsnes/docs/DOS/faq.htm index 508f025b..7b97503d 100644 --- a/zsnes/docs/DOS/faq.htm +++ b/zsnes/docs/DOS/faq.htm @@ -1,878 +1,380 @@ - - + + - - - ZSNES Documentation - DOS v1.4 - Frequently Asked Questions + ZSNES Documentation - DOS v1.41 - FAQ + + - - - - - - - - - -
- ZSNES
- ZSNES DOS v1.4 -
-
-     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
-

- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- FAQ - -
- Sound Compatibility -
- Q: How come I don't get any sound?
- Q: When do you think you'll support GUS/PAS sound cards?
- Q: I get a sound initialization error using my SB Live! (or any other PCI card) How do I fix it?
- -
- Transparency Issues -
- Q: Are there transparencies in ZSNES?
- Q: How do you enable transparencies?
- Q: There is this layer of fog blocking my view. What's wrong?
- -
- Game Compatibility Issues -
- Q: Why doesn't *name of game* work on zsnes?
- Q: Can you get *name of game* working by the next release?
- Q: Why is *name of game* not working in v.*version #* of zsnes? It was working before.
- Q: When do you think you will emulate the *DSP/SFX/C4* chip? My favorite game *name of game with chip* won't run without it.
- Q: This game tells me that it is not compatible with the MultiTap (or an external device attached). What should I do?
- Q: How do I improve the compatibility of ZSNES?
- Q: How come Mario RPG doesn't work?
- Q: Why am I experiencing problems with Chrono Trigger?
- Q: Why doesn't MegamanX2/MegamanX3 work?
- -
- Speed Issues -
- Q: How do I speed up zsnes?
- Q: Can you implement dynamic recompilation into zsnes?
- Q: Why does the game slow down even though I'm using auto frame rate and the FPS is pretty high?
- -
- Keyboard/Joystick Issues -
- Q: Why can't I press more than 2 keys at a time?
- Q: How come my sidewinder pad doesn't work?
- Q: How do I use more than one sidewinder pads?
- Q: Why doesn't my Gamepad Pro work?
- Q: Why doesn't my joystick work anymore?
- Q: How come my joystick keeps holding in one direction?
- Q: How do I use both my Keyboard and Joystick for the 1st player like v0.400?
- Q: Why does JB5/JB6 keep getting pressed whenever I try to change a key?
- -
- In-Game Sound Issues -
- Q: Why does ZSNES produce a lot of static?
- Q: How come stereo is reversed?
- -
- Cheat Issues -
- Q: How come the game genie codes don't work?
- Q: How do I use .CHT files?
- Q: Why don't multi-part codes work?
- -
- Freezing/Crashing Issues -
- Q: How come ZSNES freezes when I run it under pure dos?
- Q: When I load a ROM, how come ZSNES crashes?
- Q: How come zsnes freezes when it tries to enter the GUI?
- -
- Miscellaneous -
- Q: ZSNES gives me an out of memory error and I only have 16MB of RAM. How do I fix this?
- Q: How does the auto .IPS patching feature work?
- Q: Does the modem mode work well?
- Q: Why is modem mode so choppy and slow?
- Q: Does the IPX support work well?
- Q: Why does ZSNES display a blank (or messed) screen when I start it up on my laptop?
- Q: Can I run .ZIP files from the commandline?
- Q: What is this "sdd1dat.dat" file?
- Q: Where do I get the games?
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Answers -
- Sound Compatibility Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:How come I don't get any sound?
A: - There could be several situations: -
 
Q:When do you think you'll support GUS/PAS sound cards?
A:We've considered implementing those sound cards, but a lack of time and also by the fact that we haven't really touched those cards before prevents us from implementing it.
 
Q:I get a sound initialization error using my SB Live! (or any other PCI card). How do I fix it?
A: - Here is a solution: (Thanks CyberGodz for the post on the wwwboard!)

- SB Live uses what is known as a NMI or Non Maskable Interrupt to emulate SB 16 sound. Don't ask me exactly what it does (it's a type of IRQ) but that is pretty much all it is good for.
-
- The problem is that many boards either lack NMI support or don't have it enabled. (No NMI = No Dos Support)
-
- To try and solve this problem do the following: -
    -
  • 1. Check your BIOS. If there is an option for RAM Parity Checking ENABLE IT. It usually turns on NMI support. If there is something that says NMI turn it on.
  • -
  • 2. If you don't find anything in your BIOS, then go to your motherboards website and download the latest BIOS flash. Install it and try your dos sound (You may still have to enable the stuff in the BIOS after).
  • -
  • 3. Failing the first two things you will either have to get a new motherboard or install a SB 16, or other Compatible sound card alongside the Live. Just attach a cable from the Line Out of the SB 16 to the Line In of the Live. Enable line in on the mixer of your SB Live and it should route the sound through the old sound card (Don't use the SPDIF to connect the cards if you have one. Wave sound doesn't pass through SPDIF only MIDI).
  • + Seta's DSP has 2 major firmwares. ZSNES supports the first one, known as the Seta 10 (ST010). Games that are known to use the Seta DSP chips include: +
      +
    • Seta 10: F1 ROC 2
    • +
    • Seta 11: Hayazashi Nidan Morita Shougi
    -
-
- Transparency Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:Are there transparencies in ZSNES?
A:Yes. Transparencies are in zsnes.
 
Q:How do you enable transparencies?
A:First, try setting the video mode to a 16bit color video mode in the GUI (If 320x240x16b doesn't work, then try 640x480x16b). If it gives you an error that says that your video card isn't compatible with vesa 2.0, you might want to get the Scitech Display Doctor which is located at www.scitechsoft.com which provides certain cards with vesa 2.0 support. Running with transparencies on is definitely slower because of the extra math equations, memory, and video space involved.
 
Q:There is this layer of fog blocking my view. What's wrong?
A:You need to either enable transparencies (see above) or you can disable certain backgrounds by pressing the 1,2,3, or 4 keys. If you get lost while pressing those keys, press 6 to re-enable all the backgrounds.
-
- Game Compatibility Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:Why doesn't *name of game* work on zsnes?
A:Getting the compatibility higher is a very hard task to do. We're always trying to get more games working.
 
Q:Can you get *name of game* working by the next release?
A:We're always trying, but we can never guarantee a specific game will be working because of the difficulties involved in bug fixing.
 
Q:Why is *name of game* not working in v.*version #* of zsnes? It was working before.
A:Whenever we change something in the emulation, whether it's optimization or bug fixes, it has a good potential to have caused a problem elsewhere. Usually, these problems aren't discovered until after a release.
 
Q:When do you think you will emulate the *DSP/SFX/C4* chip? My favorite game *name of game with chip* won't run without it.
A:We will consider emulating extra chips only if decent information on those chips are found. However, even if we find info on them, we cannot guarantee to be able to implement them.
 
Q:This game tells me that it is not compatible with the MultiTap. What should I do?
A:Set both Player 3 and Player 4's input device to 'None'
 
Q:How do I improve the compatibility of ZSNES?
A:Turning on sound helps a lot here. If you can't enable sound, run zsnes using the commandlines -s and -dd. Also, try to keep the % of execution at 100%. If a game still doesn't work, try tweaking the percentage of execution to both 120% or 80% in zsnes.cfg. If that still doesn't work, then it's either a corrupt rom, a game that requires a special chip, or a bug in zsnes.
 
Q:How come Mario RPG doesn't work?
A:If the emulator crashes, then your rom file is corrupt. If it only displays a blank screen, then you need to enable sound (or use -s -dd as the commandlines when running zsnes under dos)
 
Q:Why am I experiencing problems with Chrono Trigger?
A: - - If there is a layer of fog blocking the view, then you need to either enable transparencies or remove the fog layer by pressing one of the 1,2,3 keys.
- - If the game freezes after the switching character sequence, then you need to enable sound (or use -s -dd as the commandlines when running zsnes under dos) and do not load from a save state, instead load from the game selection menu when you start the game normally.
- - If you cannot press the L+R+A sequence, then you would need to assign both the L and R key as the same key such as set L and R to PageUp and set A to Home, then pressing PageUp+Home will be the same as pressing L, R, and A together. This is a hardware limitation of the keyboard, not a bug in zsnes. - -
 
Q:Why doesn't MegamanX2/MegamanX3 work?
A:If it crashes after the Capcom logo, then you have a corrupt rom dump. The actual ROM size for both of them is about 2 megabytes.
-
- Speed Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:How do I speed up zsnes?
A:Running zsnes under pure dos instead of in a windows box would help for low-end systems.
 
Q:Can you implement dynamic recompilation into zsnes?
A:There is no plans to implement it since it doesn't seem necessary. The snes only uses a 3mhz cpu compared to say a 33mhz on a playstation or a 93mhz on an n64. Implementing a dynamic recompilation engine will be hard work and won't improve performance by much.
 
Q:Why does the game slow down even though I'm using auto frame rate and the FPS is pretty high?
A:A game slows down like that when it executes its code beyond the speed of cpu emulation that zsnes currently handles. To reduce such slowdowns, increase the percentage of execution by using either -p or editing zsnes.cfg.
-
- Keyboard/Joystick Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:Why can't I press more than 2 keys at a time?
A:It's mainly the limitation of the PC Keyboard. If you want to press more than 2 keys at a time, either use a joystick or change the keyboard keys around until you find a combination where you can press more than 2 keys at a time. Another technique that works is to set multiple buttons to a single key. That way, pressing that key presses multiple buttons at the same time.
 
Q:How come my sidewinder pad doesn't work?
A: - First, for non-USB Sidewinders, the first thing you should try is to first disable the sidewinder profiler from the Win9x icon tray, run ZSNES, set Input #1 as SidewinderPad1, then press the mode button a few times. If it doesn't work, then try the following:
- - Disable the Win9x Sidewinder Profiler, run Zsnes and press the Mode button a few times
- - Try checking or unchecking the Sidewinder Fix in the Options menu of the GUI and repeat the above steps
- - Fully disable the Win9x Sidewinder Drivers by going to Control Panel/Game Controllers. Then remove the sidewinder (Thanks Scarlet-Slider for this info!)
- - Run zsnes under pure dos
- - Try checking or unchecking the Sidewinder Fix in the Options menu of the GUI and repeat the above 2 steps
- - Make sure your sidewinder is plugged in and not broken

- For USB Joysticks, you can either set ZSNES as a 6-button joystick or simulate keyboard keys through the Sidewinder Profiler and set Input #1 as a keyboard with those defined keys.
-
 
Q:How do I use more than one sidewinder pads?
A:First, run ZSNES, temporarily disconnect the second sidewinder pad from the first one, get the first one to work, then re-connect the second sidewinder pad.
 
Q:Why doesn't my Gamepad Pro work?
A:For the non-USB version, be sure to have your Gamepad Pro set on 'GrIP' mode. Then set the input device as Gamepad Pro P0. For the USB version, you can use a keyboard emulator which should be included with the software that came with your joystick.
 
Q:Why doesn't my joystick work anymore?
A:You might have accidentally clicked the 'Use Joystick Port 209' check box. Just uncheck it.
 
Q:How come my joystick keeps holding in one direction?
A:That happens when you hold a direction when ZSNES starts up. If that happens, then exit ZSNES and reload to recalibrate. Clicking on SET in the input device window also calibrates the joystick, but it also resets the controls to the default joystick settings.
 
Q:How do I use both my Keyboard and Joystick for the 1st player like v0.400?
A:In the GUI, enter the CONFIG -> OPTIONS menu. Then check 'USE Pl1/2 AS Pl3/4'. Once you've done that, Player 3 controls will control Player 1 so if you have joystick set on Player 1, set Player 3 as keyboard. This disables multitap emulation however.
 
Q:Why does JB5/JB6 keep getting pressed whenever I try to change a key?
A:Try changing your joystick type from a 6-button to a 4-button.
-
- In-Game Sound Issues - -
- - - - - - - - - - - - - - - - - - - - - -
Q:Why does ZSNES produce a lot of static?
A:Try reducing your sampling rate or disable stereo sound
 
Q:How come stereo is reversed?
A:Click on the box by 'Reverse Stereo' in the Sound configuration in the GUI.
-
- Cheat Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:How come the game genie codes don't work?
A:You probably didn't insert the '-'. Otherwise, try clicking on the FIX button once while the highlight is over the code. If it still doesn't work, chances are that the code is for another version of the game you're trying to run or the code is a fake.
 
Q:How do I use .CHT files?
A:Copy the .CHT file to the ROM Directory or if you have a save directory defined, copy it to the Save Directory. Then rename the .CHT file if necessary so that the filename before the . matches the ROM file.
 
Q:Why don't multi-line codes work?
A:They do. Just enter each line as a code.
-
- Freezing/Crashing Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:How come ZSNES freezes when I run it under pure dos?
A:Try loading your mouse driver or run zsnes using -j. For the most compatible result, use the Microsoft Mouse driver if possible
 
Q:When I load a ROM, how come ZSNES crashes?
A:It could be that ZSNES doesn't recognize your sound configuration so to fix it, disable sound or try changing your sound configuration. It could also be that the ROM you're loading isn't compatible with ZSNES.
 
Q:How come zsnes freezes when it tries to enter the GUI?
A:Run zsnes using the commandline -j
-
- Miscellaneous Issues - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:ZSNES gives me an out of memory error and I only have 16MB of RAM. How do I fix this?
A: - First, create a shortcut to the DOS Prompt on the desktop (the filename that it points at can be c:\command.com)
-
- Then right-click on the icon and go to properties.
-
- Select the memory tab and look below for Protected Mode (DPMI) settings and set a high value (like 20000).
-
- Then double click on that icon and load ZSNES as usual.
-
 
Q:How does the auto .IPS patching feature work?
A:The auto .IPS feature works by copying the .IPS file to the directory of your ROM file or if you have a save directory defined, then the .IPS file goes into the save directory. Next, rename the .IPS file so that it matches filename (eg. If your ROM filename is THISGAME.SMC, then your .IPS filename is THISGAME.IPS.) A Zip file is patched by the name of the ROM it contains, not by the zip name itself (tg.zip containing THISGAME.SMC is patched the same as THISGAME.SMC)
 
Q:Does the modem mode work well?
A:It should work quite well. First, make sure that you are using a modem that is compatible with dos (a non winmodem). It is recommended that both sides has a modem that uses a 16550a UART, otherwise the game may go out of sync. Also, be sure to load a fresh new Zsnes session before starting a modem session. If it still doesn't work, then try running Zsnes under pure dos since some modems doesn't seem to work in windows in Zsnes while works in pure dos.
 
Q:Why is modem mode so choppy and slow?
A:Try increasing the latency value one by one until the gameplay becomes smooth
 
Q:Does the IPX support work well?
A:No. It does not work very well unless you have a very fast LAN. Otherwise, the game will easily go out of sync.
 
Q:Why does ZSNES display a blank (or messed) screen when I start it up on my laptop?
A:Your laptop is probably not compatible with ZSNES default 256x256x256 resolution. One way to fix it is to set the resolution to 320x240x256 by using the DOS commandline -v 0.
 
Q:Can I run .ZIP files from the commandline?
A:Yes. But you have to specify the full path/drive (eg. ZSNES D:\GAMES\GAME.ZIP)
 
Q:What is this "sdd1dat.dat" file?
A:The debug log for S-DD1 partial emulation. It is not needed for proper functioning of ZSNES.
 
Q:Where do I get the games?
A:The ZSNES Team will *NOT* provide any games or any links to games.
-
-
-
- Best viewed in a real web browser such as Firefox.
- Get Firefox!Get Firefox! -
-
+ There is also a Seta RISC proccessor, the Seta 18 (ST018), which is not yet emulated by ZSNES. It is used by Hayazashi Nidan Morita Shougi 2.

+ + +
  • Q: What is the Sufami Turbo? And what do I need to do to run Sufami Turbo games?
  • +
  • A: The Sufami Turbo is a special add-on that was released only in Japan by Bandai. It used small, GameBoy-sized cartridges. It could run 2 games at once, some of which could enable certain extra features when run together.

    ZSNES currently only supports running one Sufami Turbo game at a time. To emulate it, you will first need the Sufami Turbo BIOS (Don't ask us where to get it.). In the Config-->Paths menu, under the Sufami Turbo field, enter in its exact location on your hard drive (eg. "C:\Games\STBIOS.bin"). Then run your game.

    Sometimes, you may have a Sufami Turbo ROM that is hacked to include the BIOS with it. Use NSRT with the -split command to take it out (see NSRT readme for more details). This will give you at least two separate files: One will be the game, and the other will be the BIOS (Sometimes, you will get 3 files: Two games, one BIOS.). After you have the BIOS and the game(s) separated, simply follow the directions stated above.

  • +
  • Q: What are the Same Game and SD Gundam G-Next expansion packs? How do I use them in ZSNES?
  • +
  • A: These were 2 special carts that were released only in Japan. They had a BS expansion on top, to which expansion carts could be connected to improve/change the game a little (similar to the Sonic 3 cart for Sega Genesis).

    ZSNES can run the original base carts (Same Game and SD Gundam G-Next), but to run the expansion carts, go to Config-->Paths and specify the exact location of each of the base carts on your hard drive into the appropriate fields (eg. C:\Games\SAMEGAME.zip). Then run your expansion cart game. Doing this will load the base cart for you and plug in the expansion cart.

  • +
  • Q: Why don't my SuperFX games work? They used to work before.
  • +
  • A: Your SuperFX ROM is probably interleaved. Support for interleaved SuperFX ROMs was removed in v1.40, because it was more trouble than it was worth.

    To fix this problem, deinterleave your SuperFX ROM with a SNES ROM auditing tool (we recommend NSRT), then try again. Known SuperFX games include Dirt Trax FX, Vortex, Dirt Racer, Stunt Race FX/Wild Trax, Winter Gold FX, Super Mario World 2: Yoshi's Island, and Doom.

  • + + + +

    Speed Questions

    + +
    + +
    + +

    Keyboard/Joystick Questions

    + +
    + +
    + +

    In-Game Sound Issues

    + +
    + +
    + +

    Cheat Issues

    + +
    + +
    + +

    Freezing/Crashing Questions

    + +
    + +
    + +

    Miscellaneous Questions

    + +
    + +
    + + + + +
    + ZSNES Documentation v1.1 +
    + \ No newline at end of file diff --git a/zsnes/docs/DOS/gui.htm b/zsnes/docs/DOS/gui.htm index fdbf8071..2460cf87 100644 --- a/zsnes/docs/DOS/gui.htm +++ b/zsnes/docs/DOS/gui.htm @@ -1,604 +1,584 @@ - - - - - - - ZSNES Documentation - DOS v1.4 - GUI - - - - - - - - - - - -
    - ZSNES
    - ZSNES DOS v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - GUI -
    - Note : If any window exists in the GUI field, pressing ESC always closes the top-most window.
    - Note : Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    -
    - Notes on the filename box where you can manually type in the filename:
    - - Typing text into the box will automatically seek to the closest matching filename in the box where the file selection cursor is located.
    - - When you press enter with text in the box without any '\' or ':' in the filename, ZSNES will first look for a directory matching the text and will then change its directory if one is found. Otherwise, it will load the current file or directory highlighted by the selection cursor.
    - - You can type in the full filename or directory including path (eg. d:\games\mario.smc) or the drive name (eg. d:).
    - -
    - Game Menu -
    - Game Menu
    -
      -
    • Load: -
        -
      • Perform: Load File and Run
      • -
      • Usage: -
          -
        • Loading a File: -
            -
          • You can move through the list using either the mouse or the keyboard. The keys for the keyboard are: -
              -
            • Up/Down - Move Up/Down through the list
            • -
            • Left/Right - Switch between the File and Directory Window
            • -
            • PageUp/PageDown/Home/End - Move through the list in larger increments
            • -
            • A .. Z, \, : - Enters filename/directory into the load box
            • -
            • Enter - Load file or change directory (depending on which window you are in)
            • -
            -
          • -
          -
        • -
        • Show all Extensions: -
            -
          • This will force the GUI to show all of the file extensions instead of the default (.SMC,.SFC,...).
          • -
          -
        • -
        • Force: -
            -
          • Make ZSNES treat a ROM as NTSC or PAL region format, as well as LoROM and HiROM.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Run: -
        -
      • Perform: Runs the game
      • -
      -
      -
    • -
    • Reset: -
        -
      • Perform: Resets the game, but asks user for confirmation first.
      • -
      -
      -
    • -
    • Save State: -
        -
      • Perform: Saves the state (equivalent to default F2), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Load State: -
        -
      • Perform: Loads the state (equivalent to default F4), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Pick State: -
        -
      • Perform: Allows user to select the state position to use (equivalent to default F3).
      • -
      -
      -
    • -
    • Quit: -
        -
      • Perform: Quits ZSNES
      • -
      -
    • -
    - -
    - Quick Menu -
    - Quick Menu
    -
      -
    • Perform: -
        -
      • Allows the user to quickly select the last 10 games loaded off the GUI. Also allows the user to freeze/clear the list.
      • -
      -
      -
    • -
    • Tip: -
        -
      • You can create a favorites list by first clearing the list, then loading up all the games (last game loaded will be at the top), and last turning freeze on.
      • -
      -
    • -
    - -
    - Config Menu -
    - Config Menu
    -
      -
    • Input #1-#5: -
        -
      • Perform: Allows user to select the input device and control keys for each player.
      • -
      • Usage: -
          -
        • Selecting an Input Device: -
            -
          • Using your mouse, move through the list of input devices until the device of your choice is highlighted. From there, click on SET and the input device you selected should appear after CDV: (CDV = Current Device).
          • -
          -
        • -
        • Changing default keys: -
            -
          • Click on the key which you want to change by using your mouse and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the game key.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Options: -
        -
      • Perform: Allows the user to select some in-game options.
      • -
      • Usage: -
          -
        • Auto Frame Rate - enables auto frame rate.
        • -
        • Max Frame Skip - Shown only when auto frame rate is enabled, this sets the maximum allowable frame skip in auto frame rate mode.
        • -
        • Frame Rate - Sets the constant frame skip value used when a game plays. This is only shown when auto frame rate is disabled.
        • -
        • New Gfx Engine - Enables/Disables the new graphics engine in 256 color modes or 320x240x65536 mode.
        • -
        • Auto Increment Save Slot - When enabled, the save slot will automatically move to the next slot after you save a state.
        • -
        • MMX Support - Enables MMX Copying routines for a slight speed increase (MMX processors only).
        • -
        • Use Pl3/4 as Pl1/2 - Allows the user to use 2 devices for 1 player, such as the keyboard and the joystick. (set keyboard as input device 1 and joystick as input device 3). This, however, disables multitap support.
        • -
        • FPS at Program Start - Checking this will make the FPS appear whenever you start ZSNES.
        • -
        • Use 30Hz for Turbo - When activated, Turbo will change at 30hz NTSC or 25hz PAL. Otherwise, Turbo will change at 60hz NTSC or 50hz PAL
        • -
        • Enable Game Clock - Enabling this will show the system clock on-screen.
        • -
        • Toggled Fast Fwd/Slowdown - Checking this will change the way how the fast forward button functions. Having it checked will cause it to act as a switch and having it unchecked will cause it to act as a push button.
        • -
        • SRAM Check+Save - This will enable automatic save RAM write detection and save the SRAM (.srm) to disk approximately 10 seconds after.
        • -
        • Old Gfx Mode 2 - This will enable the Old Gfx Engine Mode 2, which fixes many transparency bugs that currently plagues ZSNES in the current engine. However, it also creates some new ones. This mode can be slower at times so it's recommended that you only turn it on when you need it.
        • -
        • Start at Latest Save - Checking this will automatically set the save state pointer (F3 Menu) to the most recently saved location whenever you load a ROM image.
        • -
        • Auto State Save/Load - Enabling this will allow ZSNES to automatically re-load the state whenever you return back to the game after a proper exit.
        • -
        • Don't Save Current Path - This will prevent ZSNES from changing the current start-up game path in the configuration.
        • -
        • Use Small Message Text - On-screen messages that pop up when you save a state, disable a background, ect. will be smaller.
        • -
        • Disable Screensaver - Disables the screensaver while ZSNES is running, so that your gameplay will not be interrupted if you're using a gamepad.
        • -
        -
      • -
      -
      -
    • -
    • Add-ons: -
        -
      • Perform: Changes the current special input selected for the game.
      • -
      • Usage: -
          -
        • None - Uses the regular SNES controllers.
        • -
        • SNES Mouse at Port #1 - Emulates the SNES Mouse at controller port #1.
        • -
        • SNES Mouse at Port #2 - Emulates the SNES Mouse at controller port #2.
        • -
        • Super Scope - Emulates the SNES Super Scope.
        • -
        • Lethal Enforcer Gun - Simulates the SNES Mouse movements for Lethal Enforcers 1.
        • -
        • Super System - Toggle DIP switches here to configure the Nintendo Super System.
        • -
        -
      • -
      -
      -
    • -
    • Video: -
        -
      • Perform: Changes the current video mode and sets some options.
      • -
      • Usage: -
          -
        • Changing the video mode - Use the mouse to select the video mode and click 'SET'. If the resulting video changes don't look right, wait for 10 seconds without pressing any key or button and the display will return to the previous one.
        • -
        • Full Scanlines - This mode adds a blank line in between every line to produce a scanline effect similar, if not exact, to a TV.
        • -
        • 50% Scanlines - This will enable scanline mode, except that each line is 50% darker than the line above it.
        • -
        • 25% Scanlines - This will enable scanline mode, except that each line is 25% darker than the line above it.
        • -
        • 2xSaI Engine - Setting this will enable Kreed's 2x Scale Advanced Interpolation engine.
        • -
        • Super Eagle - Setting this will enable Kreed's Super Eagle engine.
        • -
        • Super 2xSaI Engine - Setting this will enable Kreed's Super 2x Scale Advanced Interpolation engine.
        • -
        • HQ2X, HQ3X, and HQ4X - Depending on what D mode resolution you are using, you will be able to choose one of these three graphic filters created by MaxSt.
        • -
        • Interpolation - Setting this enables interpolation, which basically blends all the inbetween colors to produce a blurry effect. However, this slows down emulation.
        • -
        • Hi-resolution Mode 7 - Enabling this will activate high resolution mode 7 whenever standard mode 7 is used within a game. This mode is only available in video modes that support it.
        • -
        • Grayscale Mode - Makes the game display in monochrome color. This option is just there for fun and is not something that you probably want to keep on using.
        • -
        • Triple Buffering - Uses an extra buffer for drawing. Thus, a buffer can be drawn on while one is pending Vsync, and another is being drawn. The primary use is to reduce the impact of Vsync on slower systems.
        • -
        • Vsync - Synchronizes drawing to the monitor's refresh rate. This may reduce frame rate on your computer, but will reduce tearing.
        • -
        -
      • -
      -
      -
    • -
    • Sound: -
        -
      • Perform: Allows user to change the sound configurations of ZSNES.
      • -
      • Usage: -
          -
        • Enable Sound - Setting this turns on the sound.
        • -
        • Stereo Sound - Enables stereo sound (noticeably slower though unless you have a fast CPU).
        • -
        • Sampling Rate - To change the sound sampling rate, just click on the box containing the value to rotate through all the possible values. The default sampling rate (and the one that is most accurate to a real SNES) is 32000hz.
        • -
        • Volume Level - To change, just slide the bar.
        • -
        • Reverse Stereo - This function swaps the L and R volume levels in stereo mode.
        • -
        • Surround Sound - Enables simulated 2 speaker surround sound.
        • Sound Buffering - Enable to provide a larger sound buffer for sound cards that have problems with the sound.
        • Disable SPC Emulation - Disables the emulation of the SPC700 chip. Doing this will speed up emulation, but the downside is that it tends to bring more sound errors.
        • -
        • Sound Interpolation - This feature smoothes out the wave forms of lower frequency sounds. Choose either gaussian (default and the most accurate to a real SNES), cubic spline, or 8-point interpolation.
        • -
        • Low Pass Filter - This produces better bass in certain sound effects. However, the side effect is that the sound will overall be more muffled. Choose either simple, dynamic, or hi quality.
        • -
        -
      • -
      -
      -
    • -
    • Paths: -
        -
      • Perform: Allows user to change the default directories used by ZSNES.
      • -
      • Usage: -
          -
        • Snapshots - Configure which directory bitmap (.bmp; 16bit color) and PNG (.png; 32bit ARGB color) format snapshots will save in.
        • -
        • SPCs - Configure which directory SPC700 sound dumps (.spc; SNES music files) will save in.
        • -
        • BIOS/Base Carts - Enter the location of BIOS/Base carts here, to support emulation of the BS Satellaview, Sufami Turbo, and the Same Game and SD Gundam G-Next expansion packs.
        • -
        • SPC7110 Graphic Packs - Enter the directories that contain SPC7110 graphic packs in the appropriate fields here. The SPC7110 games are Far East of Eden Zero (FEOEZ), Far East of Eden Zero - Shounen Jump no Shou (FEOEZ-SJNS), Momotarou Dentetsu Happy (MDH), and Super Power League 4 (SPL4).
        • -
        • Note: Paths can be absolute (C:\Path\To\File\) or relative (..\Path\Relative\To\ZSNES\).
        • -
        -
      • -
      -
    • -
    - -
    - Cheat Menu -
    - Cheat Menu
    -
      -
    • Add Code: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor on the cheat code entry box.
      • -
      • Usage: Type in the code in either Game Genie, Pro Action Replay, or GoldFinger format, then press enter. Then enter the description. Note : Be sure to include the '-' when entering Game Genie codes.
      • -
      • Note: You can also quickly modify the value of the currently selected cheat code (in the browse window) by typing a 2 digit hex number in the cheat code enter space.
      • -
      -
      -
    • -
    • Cheat Code Reflector - What this feature does is that it allows a value of one cheat code to be mirrored from a value of another cheat code. To enable this option, type an 'R' at the end of any cheat code as the destination, then type another cheat code (Without the 'R') as the source. For example, if you want address 7E1000 to reflect the value at address 7F2000 (whatever value written to 7E2000 from the game will also be written to 7E1000), enter cheat code 7E1000FFR, then cheat code 7F2000FF (where FF can be any value).

    • -
    • Browse: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor at the browse box.
      • -
      • Usage: Move through the list using either the mouse or keyboard and select the cheat code you want to modify. Then click on the buttons to the right or type in the key of the first letter of the action. -
          -
        • Actions: -
            -
          • Toggle - Turns a cheat code on or off.
          • -
          • Remove - Deletes the cheat code off the list.
          • -
          • Save - Saves the current list into a .cht file, which will be located in the save directory.
          • -
          • Load - Loads a previously saved list.
          • -
          • Fix - Clicking this fixes some cheat codes that don't work, but it will not always work.
          • -
          • You can also toggle a cheat code on or off by double clicking on them.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Search: -
        -
      • Perform: Allows you to search for values in memory such as life, score, etc. and allows you to change their values to your own preferred choice.
      • -
      • Usage: -
          -
        • Select Size: You can choose what data size to search for. If you know the numerical values of the data you're going to select, select the smallest number range that fits the data values. (eg. If you know the value cannot go higher than 50000, then select 2 BYTES (0..65535) instead of 3 BYTES (0..16777215)). Sometimes, you don't know the numerical value (in the case of life bars) so you have to guess the size.
        • -
        • Select Format: DEC (Decimal, 0 .. 9), HEX (Hexadecimal, 0 .. F) Most of the time, it's recommended that you'd use decimal, although there are some cases that the values in memory are sometimes stored as hex.
        • -
        • Search Type: -
            -
          • Exact Value Search - In this mode, you have to enter the exact numerical value that you want to search for. Such as if you have 3 lives left, then search for the value 3. The cheat search engine also looks for value - 1 since even if a game tells you that you have 3 lives left, it stores the value as 2 in memory.
          • -
          • Comparative Search - In this mode, you select whether the value is less than, greater than, equal to, or not equal to the previous value. Such as if you have a life bar and if the life bar suddenly goes down, go back to the cheat search engine and select less than to search for any value that has been decreased.
          • -
          -
        • -
        -
      • -
      -
    • -
    - -
    - Netplay Menu -
    - Netplay Menu
    -
      -
    • Modem Mode: -
        -
      • Note #1: DOS Compatible modem is REQUIRED! If you don't know your modem settings and you're in win95/98, go to Control Panel -> System -> Device Manager -> Modem and select your modem. Then click on your resources tab and the settings should be there. -
          -
        • 1.) Dial Menu - Allows you to enter the phone number to dial and then dials and connects
        • -
        • 2.) Wait for Ring - Waits for ring
        • -
        • 3.) Config Modem - Allows you to configure your modem: -
            -
          • ComPort, IRQ, Baudrate - Sets your modem settings
          • -
          • Use Fossil Driver - Set this option if you want ZSNES to use your a fossil driver. If you don't know what a fossil driver is, just leave this option unchecked and pretend it doesn't exist.
          • -
          -
        • -
        • 4.) Manual - Allows you to connect manually through the terminal. However, if both remote and local users select manual, the player numbers will not be assigned.
        • -
        -
      • -
      • IPX: IPX mode currently connects at the first remote connection it detects. This will probabily change in the future if there is a demand.
      • -
      • Chat Mode: -
          -
        • Latency - The lower the number, the better the control response time. But setting it too low can cause a lot of frame skip problems. This value should vary depending on the traffic of the connection you are using. A value of 2 or 3 is recommended for modem. The value for IPX varies. Latency is basically the amount of time between a user input and that input being affected in the actual game. The delay should be higher than the time it takes for data to move from one end to the other. Latency value of 1 is equivalent to 1/30th of a second on NTSC games or 1/25th of a second on PAL games.
        • -
        • Player # boxes - This will allow you to select up to a 5 player multiplayer game. Anything that is checked will be controlled locally starting from player 1 as the lowest checked player. Anything marked with an X will be controlled remotely. For example, if players 2,3,5 are checked and 1,4 are X'ed: -
            -
          • local player 1 will control player 2
          • -
          • local player 2 will control player 3
          • -
          • local player 3 will control player 5
          • -
          • remote player 1 will control player 1
          • -
          • remote player 2 will control player 4
          • -
          -
        • -
        -
      • -
      -
    • -
    - -
    - Misc Menu -
    - Misc Menu
    -
      -
    • Game Keys: -
        -
      • Perform: Allows user to change and make game keys and quick keys to his own preference.
      • -
      • Usage: -
          -
        • Click on the key which you want to change using your mouse, and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the key.
        • -
        -
      • -
      -
      -
    • -
    • GUI Options: -
        -
      • Perform: Allows the user to customize some of the GUI.
      • -
      • Usage: -
          -
        • Mouse Wrap - Allows the mouse pointer to wrap at the borders of the screen.
        • -
        • Mouse Shadow - Disables/Enables the Mouse Shadow.
        • -
        • Keep Menu Positions - When enabled, re-entering the GUI from the game does not automatically enter the Load Menu, but instead the previous menu which you were on when you last exited the GUI.
        • -
        • Save Window Positions - When enabled, the GUI doesn't reset the locations of the windows when you exit/enter the GUI.
        • -
        • Click Enters/Exits GUI - When enabled, it allows the right mouse button to automatically run and exit the game to the GUI. This however, slows down emulation by a bit since it has to check the mouse button status once in a while. In the Win32 port, the right click button won't return back to the game.
        • -
        • Use JoyPad1 to Control - When enabled, it allows Player 1's device to be used to move through the GUI. This is mainly used if you want to use your joystick in the GUI. The equivalent SNES keys to the keyboard keys are: -
            -
          • SNES ControlPad = Move
          • -
          • SNES A = Enter
          • -
          • SNES B = ESC
          • -
          • SNES L = PageUp
          • -
          • SNES R = PageDown
          • -
          -
        • -
        • Transparent Messages - Makes in-game messages appear transparent.
        • -
        • Wheel Mouse - Enables or disables the mouse wheel.
        • -
        • Filtered GUI - Use your favorite ZSNES display filters in the GUI. ZSNES, HQ3X style!
        • -
        • Trap Mouse Cursor - Prevents the mouse cursor from exiting the ZSNES GUI. You will have to move the mouse with extra speed to make the cursor exit the GUI with this feature enabled.
        • -
        • Snow Effect - Enables the snow effect in the GUI background.
        • -
        • Water Effect - Enables one of the two available water effects in the GUI background.
        • -
        • Burning Effect - Enables the burning effect in the GUI background.
        • -
        • Color - Allows you to customize your ZSNES GUI colors. Background, title bar, and window colors are supported.
        • -
        • Always on Top - Puts the ZSNES window on top of almost all other Windows applications at all times.
        • -
        • Save Main Window Position - Saves the window position when you exit and restores it when you load ZSNES again.
        • -
        • Allow Multiple Instances - Allows you to load more than one ZSNES window at a time.
        • -
        -
      • -
      -
      -
    • -
    • Key Comb. (Key Combination Editor): -
        -
      • Perform: Allows you to specify certain keyboard combination routines with a single keystroke/joystick button press.
      • -
      • Usage: -
          -
        • Description - Allows you type in the description of the combination key.
        • -
        • Key - Clicking on this box will allow you to select which key/button to use.
        • -
        • Combination Keys - This window will display the sequence of events selected by the user.
        • -
        • P# - Selects which player # will use those keys.
        • -
        • > = Last </> - Enabling this would mean that the event symbol > will mean the last left or right direction the user presses in the game and the symbol < is the opposite of that direction. When disabled, > means right and < means left.
        • -
        • Game Specific (Game Specific) - Enabling this will tell ZSNES to use separate key combination files for each individual game.
        • -
        • Clear - Clears the current key combination field.
        • -
        • Add - Adds the key combination fields below as a new entry.
        • -
        • Replace - Copies the contents of the key combination fields below to the current highlighted key combination above.
        • -
        • Delete - Deletes the highlighted key combination above.
        • -
        • Events: -
            -
          • Press+Rel - The key will be pressed and held. It will be released once another key is pressed after any amount of frame or second delay.
          • -
          • Press Only - The key will be pressed and held.
          • -
          • Rel Only - The key will be released if it is pressed by a press only event.
          • -
          • Frame Delay - Delays for the specified number of frames.
          • -
          • Second Delay - Delays for the specified number of seconds.
          • -
          • Del - Deletes the event at the end of the combination keys list if one exists.
          • -
          -
        • -
        -
      • -
      • Note: A 1 frame delay exists after the combination key list has finished processing.

      • -
      • Example Key Combination: (Down / Down+Right / Right / L): -
          -
        • Method 1: -
            -
          • Press+Rel Down / 2 Frame Delay / Press+Rel Down / Press+Rel Right / 2 Frame Delay / Press+Rel Right / 2 Frame Delay / Press+Rel L
          • -
          -
        • -
        • Method 2: -
            -
          • Press Only Down / 2 Frame Delay / Press Only Right / 2 Frame Delay / Rel Only Down / 2 Frame Delay / Rel Only Right / Press Only L
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Movie Options: -
        -
      • Perform: Allows you to record SNES Movies so that you can play them back at a later date either to amuse your friends, torture your friends, or whatever. Just don't play anything in front of your enemies since they might break your computer. ;)
      • -
      • Usage: -
          -
        • Movies are saved as .ZMV, .ZM1, .ZM2, etc. files. They should be located in the same directory as your save files. A movie file consists of a save state file, SRAM data, and the recorded controller data. The initial filesize of a .ZMV file is the combination of a .zst and a .srm file (around 300kbytes), and it averages around 7kbytes/minute (value varies) or 420kbytes/hour.

        • -
        • You can record: -
            -
          • - Standard 1/2 player games
          • -
          • - 3-4 player Multitap games
          • -
          • - SNES Mouse games
          • -
          • - Network/Modem games
          • -
          -
        • -
        • You cannot record: -
            -
          • - Super Scope Games
          • -
          -
        • -
        -
      • -
      • GUI Usage: -
          -
        • Record - Begins recording the movie file. You can even record while your already playing a movie (append).
        • -
        • Play - Begins playing the movie file.
        • -
        • Stop - Stops the movie process.
        • -
        • The numbers at the right side select which movie file to play/record.
        • -
        -
      • -
      • NOTE: Movies recorded without sound cannot be played when sound is enabled and vice versa.
      • -
      • NOTE: Loading another game, loading a state, or resetting the game will halt the play/record process.
      • -
      • NOTE: When you play a movie file, the SRAM data becomes invalid, and ZSNES won't save it until you load a game. This way, you don't have to worry about your SRAM when you load up a movie file.
      • -
      -
      -
    • -
    • Save Cfg: -
        -
      • Perform: Saves the configuration files.
      • -
      -
      -
    • -
    • About: -
        -
      • Perform: Just displays the version # and the authors of ZSNES.
      • -
      -
    • -
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - DOS v1.41 - GUI + + + + + + + + +
    + [About] [Credits] [ZSNES.com] [Donate] [GPL] +
    + + + +
    +

    GUI

    + +
    + This is the ZSNES GUI.
    + Note: If any window exists in the GUI field, pressing ESC always closes the top-most window.
    + Note: Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    +
    + + +
    + +

    Game Menu

    + +
    + Game Menu
    + + +
    + +

    Quick Menu

    + +
    + Quick Menu
    + + +
    + +

    Config Menu

    + +
    + Config Menu
    + + +
    + +

    Cheat Menu

    + +
    + Cheat Menu
    + + +
    + +

    Netplay Menu

    + +
    + Netplay Menu
    + + +
    + +

    Misc Menu

    + +
    + Misc Menu
    + +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/DOS/images/cheat.png b/zsnes/docs/DOS/images/cheat.png index e49574382bf40b55ba98e336726c44e07426565b..ced539e2fb6ebed2fd463bbc357a1cbe4f5abf13 100644 GIT binary patch literal 9207 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 a#RRNQ>wri+3P$X|`q5O?Q7Hr4y#HT9Amu0k literal 10264 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 o6bWl%T3S*$IWbB~LOD4( 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 delta 537 zcmV+!0_Oel1hNE>B!BHtOjJcoPEw?)uv1l8k(HZjZE|B~Yi4O~XKHU^Wok`NQ*m{A zWoT_^YjA6Bb6j3yl9!!MP*hl3Uv+qXZgF;Ra(G~3XI^1uUt(ulU1Du)dbU0`HvZ*^f~Xn1^qYj1Q^R$5wJVQp}Ad3}RyZ**E* zVPIoub9a1XXKQ+Xgk4}|Twh~iWNBAgUVDFqQdC%Ye1dRucy@VzO;1#Dbb4uQa-^{+ zivR!t07*naRDXEdrPS9_!cY`OVGgDs1Qdg!5k+Z&3L;jDf(_~K|2UqrlTDZj&d-o_ z|J|<0&ShllLZaVqM|Kl*CsO zv&C3*?tGkAm@USy9==&(witH;{z8zB{j=5N_wlGWs7me#V3TTCH<$* z7UQDC=kfcpkJnnUw+4>`m@US=mnD94F`1rjS6gpP^y00000NkvXXu0mjfbhGZv diff --git a/zsnes/docs/DOS/images/game.png b/zsnes/docs/DOS/images/game.png index e5f90b62559cba057b4da82b5aceb7b49daaf3fc..3fa7c8176d6465723789d2e8bca8a8768bd4e632 100644 GIT binary patch literal 12549 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 AFA#*Vyb4oFUIWc27F;X!pQZXq?IVnm)F?&Kn zLODV?LODV?IXOy7N--&8V`XJpT3S+CQfqB(T4P#5N9a%O0lr6ZD(bB zcXKHrA)lX|F)=B*wYD)aF+xH)l$?|)DIqZ_DKR-QDKRN2DJd~2F*z|Yv8kzZdvjV+ zQe#?DN=8CbNV~OIUyk-IWakegnLRkdt*{sdqOR1N?Kz=QgOYY-{_dp-4FGy6Lpr2tBd2vW5=qBtr%nfjzPgFN~H)fdjL75F>9?MWB*<$ zwFpA_7!5foYin9_sE(MiIdiobM*l4k=M)?v6-?eKG2R#>-Ut|k2vQ*-Ybhy&DJgp? zDRUtqb5K-yIZA6#O=d`1jTkX|03mAtDU1j)ln60|IVpqyA$tHZoB%1504baZF`O77 zdqOF5LODtRA%p-ir4TW5DKT0hF;XEpYXmW=2sx!GN{k^fS}8eWAvtp~LSq;ygfS^X zIWbB~LQViNwK+ms2tBnBIg~j5J8gcw4M04b#aA#(s2W3Krh zBme*`yGcYrRCwC$egB^%M|IflebXHm1e((h-7~Y=?wMh>zubK9xxU`n`=*`i?cJLj zu{ujAv4MjGP`IE3jCF!su;Z8{;DC-e;Ftss&Owe36yd}81cZQ2vgE^-Ksg~KVL%et zNgRiK`3v%@x@UT3s;gf0-thx`+*MuQtGfI3t1qwKtE!p*_xpcy;n$~je&iK9KeCH& zer)FdUU=Yv2ma&A!G((#FZ|EH{xZ4#n%u;H;dj6I#sBq1xDow( zpNGT`{v^zs()=cU&`;83dhp@}c-t@kB=l|0Bt=~O-*PYgO`7=sT==ssvs-Sz{oFaC zsj)lsMaJ&g?K7XfeChJ#b4sNjs{Z|tUAlbf;@<*6snSAAdiq3qSQN5T8#6LNrDJ^$Y!_tTCZ=B6es zg{sJo;^L4nsQCC5$oqXKiq^-I@!ZAW;isN_iULxnh3S*=Qf2JD@)SH-QFR&|zh9(6 zBXX>L`wBb{(*FReHUP4jUC(5Sp4olmp@k}aXPP~D2r%;EbI&~Y+<8)LzeB$7(Wjn! z?wMyZ6i`lm!?K(p0F>?oLABFq^{v_(U^oe;7zvr5`IbYAtXq}^#g=Q9+422Otph=w zY7OdwX;+;MVw=A2fJNf<*0*V1g#x1kp{u?_UZ8BA=x>ljH3$Yr*)MO@z-ylH_2MIs zJp*rdzDnMF-MnF)3*RI7D(4;>N~gPQ=5mtTPEJOQui zuK57StKff*Vq~>un`d2Tt!mn~>9p#u<(OWtW!u(S+wKg4;KcbCAoaHhR#hF6s8cOh zz%m`kVmYe~yV@`z+;tq=@|tJuq60xl1YNzQGj|UGy)qdjnm!5wfUajn#_CZqPUVwnBS%729byogj zWp2f9o>)5AGRk#pUt8Jm2Cl#F$jbix1A>u1gv{R~Ki_GVS8f}4`I@cm+vj*yyPWX~ z4LfKI{_-Fs4uX9R=fL5Cxe?q3ozwt6=({gI|NQfR?hqtwI!m`5=+!#z!B)9$1XgF? z!Tl@yyUk8;r0ZFJ>o4refrINUznFbCdRyN&Yx~+2%NyA00eHYtxAm7+?ZEz(in(v! zQomhwTSt8IT0N(Gq-8jMzv;O4+B*DtbvI`o$$sIcg%hj3YjwQUZg8ApoOQgWXBbAw^dQqltJ?G0@Z5UFFZMc1#Uf;yf0krAPpg!5;FwzTy3HQEjYA&b zTDKO97RhVtnTCIu;<`u6CV=NAC2 zJ)^nd2amr50WT0hW_#-XmSdPoyQ-;`#j<5CdDWVc?R7N0oXOBO@?}W;JxBEcklg{i zY`*3mXz7+wbn``H-fj48r3i^zP|3VX*I#uzNBq9gSj+iq-+dACQjDy6^8;V+bt-L5 zSL=&8+XTCq)xEx^E5=6P>+RYcd^f>Jl8IpCs%hS8lxs%NtQXbld={{;VXgzBx-DJx zGsT{|1R394IleiZ_q z-AgdC)~Q&Q-FLk8rFDNXZ`muRRx@&KGvDb%oz3%*_2#$r~!7lZ&}clxPEPeyrf02{M(S0C<;i2UU|?; z;g-*otCsDoHf_?`%*=dj=F-)x&wS_n0{O@8Akd1BJ_`W=NOA#ejY8lw=LUgpP1wfuSp(_NEeW&baW=>S0H5>%1Mh!4>D**E1lTSYR z)cGnMQ3cSMK6(WLu0-R=Y`2vK)Le%KvFNvgm4Mor!F*QJTLdGYgzH=3II>y{T3KkI zSF=Get5t)pUr>v>J_y3m+8{Gu)BqTIX024D?f8>VL0*Mq)lZayRtYNJN(;(?xIvID z=KN|Gzy~8-h%eGo{Q0NJ18GOG+FCEJsyTl(=w^yq5n`*5X!V4@UL+;127^qIxYk=x zMvm0m78DLx{m2#a#o<^qfF=c=u$t)xMNNa3?5<@?Bx1gpErA6u8D0dCF#K_Q1mug$ ztzhOeWxqNI;LBG1A_e5<2!TQWF<=Q9N0Nd3W0@elLL110zX-Q(8rU{GELO;z7a0Fc$_ z72u*(`?Htf`dX$-6#T{RqYqzx?DE44<#LrMrwR`0R=^6q3W*6l=OFK6fBXo^JRq6j z2KUXu0Gg>mK%8L^alt)GLgF631bH9K4iklUR1OL14rmd>kTCF%A47iNtknDpF~;uD z3>}gFN|^Yo{}~>1=>qshslP%ramT*lYemVv_8@uS7e}Rz%AU}Z(IhwV5ACm#=U)7y z$@IjCpEq(5XwZuQ^3`Ae`q#hljc2J(=8;w_Xsxx@vTJ~!w*Vl2{{p=}cj5E& zzVHAT;C%1`s0ZO5+SCYrk)LGyJh`a~^A8ImMtBch#GJaLNYHWK2SY20e_&KZTwLg% zxMOpaKE4?jz2a`gm%Zk-{Dw2`0qcjWr_pZvt9K0)qJQTvnU zJ{?`3fqUc*@Az6cpO;s^OG=)+iHV2e=|A}iVpA`E6D654RvvuZY|C++cUE@`oz;Twv$PeBZf#9QO&zyb#$&+{AcjoMwdrp4vKJeaq zHy>hmfBfSg|Lx!Yx9^+=Wa;MtjsVDA6M(#7vW=YG!eZooXF~{lkO1(^hwk|(vF>}{ zeLZ5|dk+_o|N7m(`CGsB;eYdU3P{px?~2vV9j~B{ZM!H&lB&IJW?X&b{&(DWIz+Iu z1T#;cdB6A3-}ul+7e9LM>AO$fbKl~r_wWGut8abl+kW}OLmvysZ9mhB^e3Q*p4~w_ z(G3&3+rsc2pkiZ39sv0s3dqwGkf+~w>=;aYEZ%z`0P^I$i>FR<0r{?Xz3XiszWY54 zAa4mP1AT_PG3{jhiE+Ht6Gm)ekDraRj361Qq23<0ks}>lyOj_lDKb*y*NuBW_@R3j z-+SNbe|+-f84(~q@PQA!>o?#2ub9qeYY52MpY4l4D+X5#P58Q@e;m%c^Y1uw?96FU z@4NR5m}lPm>&8DjdGa?F-+RU&-ZSqM0P>gq`5WH)wzvO_xBScTp8Xy3w}dsDJ|}*g z6nAnc(buV<$$O;Y5Ed0j&aF`!ITZ^SdGG1d$BrF4ed^?W;CSz;_Yq8d-?8`Jdm6lF zPMzdl|KtttKlQ6`c=y|W?VrBo%}E$J@d86j%1#U&TB&Tgl+n%Pi=DA|)J9IioM7bL zcb_`-4^Evr_0CiD3Q_PBXb9%R@l7Z1x#ymf|L`BZ>)pTn_V*->BX=eI(#cjw=x1Z6 z6Jvha$5Ji)*O29t~bB&O`wF=TmJ6fBenbPv7ohC1DJ!_IUY2wL5>u9e2L|t~>91{T+7^>#jRqf5)9bT!WVe z-U+e9HK9R4*d37gZ~vWJfAN>z@QV}S*{Ij%yy_^B3xqiQ+TclV{IN-uUGPYXk?i;E zRu@5E32R^o}FgduV3oa)rHz4q2 zMqO3B3I*Oslc-*=t*CXE$l!pZ)&$8Q$YwX&?i}D`18kLC!*L`6EZje>ag<_%5tL7c z9h-TYvSBeEFw$~Q6hH`1Y2@eBLeI{DSdZx#`67j2td*vvI2p}ys|Cf$2Q{k(mXbBC zN+EBx4rz7AZDc4$zGkws;e0Xsnp`ZwfjLrgnySQXypl(nX(J|evM3k?oWg5=moa!xW-dxSyv#88Zc0Yxx z*IxpMWkB+#t`Y~xuPI)JG>@eKq8hz9NH^VU$C?4p^q2Bs%7$_PCxM`ePTsGbai$*K)eojGurz4bjHb(Vvkrwj63d1Eb8P!=~x zf<`+tg^~Ceg`+vq$!U`^^2^|M$haPFBbmwt7}-0L%`dl=iVf1A%lWF2&6&p*Yo$pz zLjPm5J*8k8y@m&!jok)eQM<1l1&3jkHO2E5y&yL>{NW7d@P>|$SV=+R9-J47Ctx2q zMQcx{gU+UIEop^HqoCK^<%XjbmNP-W-OT6IDU`I`W$2cVx*!_vx@F5=w%vY7Q%%>k z3&orQfmT*kN5h|23?G4v@tCS4{2&~^*p@jN)~s(jijR@8Z@g+3v;jdRUsbhC0FY6; zB~>kHI)qK?Yz8FYAoU&)#q-rHv9$sTUdxgKGMQ{~s@De1rAdT6u6Vjf+zxW{3I7DA z0!(YRjf`A3AsIW<5BV`AdR6F>z_D%UQ zKt#Y1fpP3k%*OWGoa!fN>NoNE7?~r4ewvvmmS;0!HH;ubm4rqDSjuJ#M!ShqOq7D- zbP{+{)2B@FY#TY1eT!3AP!z>c032ZFiG$h&>Qx-DXs|S3b0by*@86~)>ez1*)p7p# z8hId!$3j}0w2?6T05bkA3~$a6Pb()_QHQJ!QE`f?YnkPWs}iEyAQE!Zudo zsV{yb!1i0IewP?CdGnEx1tg;7u6O7AZKcs4%m<}x(XDIq#Zso?X1ZCh%UapcwQN@o zA>*pO4Qs{{@oI87j$?Faa4WU2?#2qI?ZvcqIF7V>l?p5t)f%>QwB`qzW!LJRY*6p@ zD>Y|6(6XvAw?3am>o$v#?4Ogz1bpzs)4ZplZOYIPHsU;5dkfIop4%|m#rb9rCMNqZ zw6>egrd5VTu5QmHGv6H}GcW3XrhvNlmf<*({dhr_J8p0pddT<$;jBq?|J+t}nrAao z@eH}y+;`Y+WL2-Ta;O_<(ASh;9bMgQ4_3MvLi8P73`%PH&W2m3@L?ni3Uu&1-M+FB ztbsJV$skUqwP74tHQPr@ifQEA29fz`OIgu)NHC6MzJ%q$3p;B* z{G_Wrn}sF6aRO(g;x;liqKVyn1?FS(R-s<+AFWxiLch{KTGw)lMHXDv$h=Q2OKP~J zjyoHC+H7d>BBmmfJ@OOjY?8^piN7N=j*RU*d^(-|($#D?n=NW!&%>I(TtN%wq1V>Q z7+cFpf{~@Q<ova_GDW7_WZ<@1JQ|HNE(d1g+pu0B3{zBiYFCB<4|NCBn7)%#IxA~ z!yi^G;2QK4t-V=bj_ee&EqE)-A>q08I`L84IXoLhiNSb1w5lf4+7lH`9+-@kj8KBq zk_-mET%n|VWPS*PYsST>6s^Sc+9-cCIZQasn;eyBaGo>;@z^h-!q_%)G>(LCzpgkr z>b3blAD>c;!z2+(K)TC}6vY2;Tytq{<@$mVFp_pQ+h=x7LQeF8^1NDH94dv}3OAJV zRD`d6eQNYj$Fe`WlD`jgP6Q%@as=1d8a$mrmfDME@OKL($T!f{eyRJFN$ZQwKHL9Q$h*2v+6&XFg!;)vlr zk)b>`X(9TO6ko|!P^zWc25v{hgB<$*W?#$WYZD~Wbq#JHw|%g{_JMcpQyYBXp^hjF zT>kKmgH(;ABzj`fVspTZjl?o=4?8NHjuE%4qB_FmYm@nk2s&_u;0PW1D3HQ4boj&= zW{85qkT9=!(n9RR_;{F%vmEO%B`_y!5nnqV_>5f9J?Uet#6$%St3lX9;Go!yTrXRC z9LW8R_#ff&wK|;6|}?Qe#4Ne7?5Ir)^RaJt2w6 zvSaz30Dm55OG@#G#J?uY%Lk@V_JGURmYrsl&{I`=>a#@Sz*JS1lM1h~kpmm%2n*)( zwL!wdGGVjZ1+`*Yc3v%83Iv(?ycGtIFmeODB-pf;ZBs4eVaH%t`Vgk7M5&dr8FEoK z%!YAm69+1rkO+*SDA^+=>eupUZAGbrjA+Bv^A^}v-f0wolV}{R_v~c|R&x=uRczO8 zH1ieL^x6=tSm3qtif#71Mzd0Bg4}7Np(hLDOL7#%Ux|x6;u93fKL8&i#7ZDTUTc(> z_OC3hyQY75#ce3Cqh+CDl=Jq%14|IBh1FJRRx*dd8x#-p`Uj5;04bMNT#(8?*l`cs zddP7h^?s6iG>+u-AlMWv8Xw!&K+W?8Q36J8yr4fxGwX{3Qy@f) zqdtePeLD<)lzO4M;VC^!SIb@_D0p=RIN6rB3M5Y^?n#d3b;s*KB{w=yfYjXtyB!$IT*vZcvVG(K2dJ8*_oO-D|^f6|qW;S5!)us#5DRv{5^&uGQt^xhGh&I#IO+5>m;Yz4CjA~ciRNcMG8S8x&b zB6(PwFR2n~K~BDWWCWtvi0#-pJa z`~HmKB0dQ;j;cwq?8+~kV<>7TMO{m5v+$8(bKv8vDb0}~kC|q1 z+pyrX5yR1Jz-|kb3PgjDw4xpjQ=2q(JwFVNF_H^6@q0_L{_%-f+&2oufhpHU!hB90 zgz>8`oX)Xf)}3~}4}P`Ys91T+(4vO004F`cVNt4MRXo?KYkiBHB2rVVj_pC}N|Q+R z*R&ifL?t9{(7_**oXv+w|Kgn%F1gRPk+F*Rv}gv04?2d@sDRA4Z7V$=&J9~%so48^ zHOuHm!nz8q8tDeFThEq`^!ob_4Ip7AXf`!@-({dclN=D@Bnkc#@_W|U0Iq3A@aQ8l5Qt&wwG$Q zx2WfaRlDKB)UJ}FlNJTFZ5;`+UOSq!C|HIK-Hxm9xrn^6iPTaeHia0uh4bY?1_L@q z-O8o4t9dwv%+6`c${e8#^G&id63mb<@7G+TJ){wp2H7~NP=qG4S(yhsB)bH;%OIw2 zF5jF}>yQhkBo#fL*yUgYzV3ig)0&4)LBOgJX&&ULe;qEB{c z$d&xj^5M)}H^@@AmIWi*rL;Dsu1V84*ppc!skMnVQd0gY4wBIP^oYz=idjy6)3cRF zYttPSqFoe*TP;v;L05+~^)P(Mz|lkhh%6*_&WHFUE+U^g;mztZn)|6zvlmh1W5M^b1cQO^lsu_Jlu2&lN%7Bx;O<`{8cPsE6SMe1Gt*mv5B(AxB7XLMp6hfD=b zEiD;a9x`3SVt>L2n@erW0UHKBWsd~c zj?&ED_@o8Dhd{?cQVX=XJu$uqCwHAJK5UxZ%BQv6u zBrW!2VBb^4@nF(o9Zut&>*jmavQphc0m&{8!I#I4IdN!+B5@(WX%ANBq*Fj^TLx50 zR|6OvHTGl+d2bG&m(O+}IA4l;k#ZBN@X<11%vR=Lvq+E1Wn^;DBplXMi+J65(qh~A z3^`7s;T4+=#h36%Fb+A7OMX=$t?iJl7?$?Wb#u_{EoNZ}yw?iK`Nf*qJh*?kr^JIJ zC3`4XtbxO*b=7jO1_yrk+Q5l*dvj#cV&xDVE}WZO9V>v4a2YGw1I6)pcRu-Se5@ee zzl~38D*&-9;iWc+Jiy|z(s5x%tOlT2f^8*@;kZ(16P&9Rv_jdi=%mH1B@HGm0FdoH zKA<&;rUC-XIWjC8LIK@CP^EP@tu5=hE6o>xbx^Bgmwf%XVEam~iP@zIF&s zEni;H3sD;h(I)V^f#=}NLuv)&GE57m#OqcjM`SDEwC&}>m@qyMK=>CR1LsXJ`td-~ z?;Ls&TDzcS^pI=SB|AduYPA$(v%oXBnQ;I0(bzl#a~3U1Y-@!7P|8pOn=)XD3l6k} z)3lQW1o#*u_$q{|4y{d3QQ{)dybX-`v^FYc9~lgF$Qq%8a|{dnZ#TQ?MQq5foe?}^ z+D4|&QCge3@MAKHLl?&BrU&GB9ZF8XZ|bC_faGayloU-#YvVf6HzhJK-bRX=F5&E= zNIGIOz{I0PGKTW?Pm)5>!2u7OSV^>5m^T)~PiF!g|LA(go zkIhI;rsC4tD(s*z((yg!i*$6wv9WU$&D~^9daF&WFB0LX2wM1$nh4{M%(=9-7PJD` zQ{nok308wxAX!!#Z7PFk5ROUq;I#walTEBkAvWXT&o+!< zCtl^sh9%p`%2q^NBaP%QPHPv`RbXOQb#-LxV1o~gDmYgmpbG9)!q6ruRGmbVl*EoA zNLpei%aEsA%pN=NDw}R67kt_TiCZJsuNn&=5t0rNkJ? z_Q~6-aor=pYmLX5xabc2*PNEKD_oOx6Yey;(Qc_FzMa)$xv4XUFRfS44 znYR_CwOKGt!!p*~lLq2Nov*+qEW~Xjw-prhAL2O*K8X{DO#7$9WN2+ZL5Rf&Fp}G3 zi3f`lf%tL|!G2Sm|096r(40zw%a99zqizDo@v4SY=WBB1bYw>La^m=D#Q6nz1hlqN zt63G;B7iiPM=Rx{HSoh3h)0Q469bvm@eDchk@zvL!q1vYF_mCb=lxC9b_D+sT3b~* z&1TQdt8N`wH$8X3b=yYI%hz4Pac!oh71^Vza0#=aB?XzJuyhj6ad1LrAp-~DYrE>< zg9@x_C?6pQOzzPS*6dpktz@+WJ!ffYt|*U=iCe=ad>pvkLo1 z#k4kA)lhRAR<@bnuNS;V1~}EtCAy5x$amAv1F^C{+|jTs8Hb%7DR;t;3^0*}7(!aR zTC=NgpmD8a*UFaFG+VV=+i*aTifmp%*L$SWF=dl#t21$Sxq2`BXq;4=Trj$@ZtXaFFy;?oA&`&S}RnT3ab)H6;gP zq*)z~j8wAoCB2X%OG4=Kg*1BdpmLlah4cJJj@0ZxF(R^0uOQWUW;bVh4;ckhN6KVJ+f8w)O#q*Iw>N{4UC$>i_ zS;wyUPTq3O=Wyh8j+6%Wz=I=wE$?Vy4^PW9>z#?{J&Jq6{gi;rEhM`k| znUP5XGSr=P#DKg&GW%`GJ-lQeBi;*${Yiqv%v!|BM1PB3ue|Y9H{SSaVnnVR!FnY% zUKNJkNJB@-UPXN5eicatdStxvl`}((U28o}4T2aWje90RgQY2aGzK?K9Wwib%xGoc+p%$?ip!QXHE1 zzqs#|ybpQokK4%WftuU5jQ}a0(}@kyd9VmS0Yx+c==nb`Icv1(D@)*!-6B45y*Bshqw8A0%OJ_7_A`=LZOIEj3z8NdVkIq*nPdKnCu}m1RrpYP z`Z;o2>&Xk9p?@XK^7=R;dA&CBE^MnNUV)NgsT}_s@p_4b;?qqmLmNMe9_4FKKY~Ri z!T16fZ)fck6;tLMMA4F3Aqj-M+_)j$(}Jyc$g*IW(K6ny%TdXkKO)6n5VIEX(`c~? zAU>^)(pnsP6_uXFX<~E?jO?B!`jM$dK6oF7?2R^V3w}B#e2df>jP1!C1EWAiDsyP0 z=Q!~3oWs`^)Hb{tu>fJC#9+c@B_w+>tYGe^NVZd$3^`sFuN6v$3A#nKFm^H?0kW`U zwo#PnB02dJccPMP>N)Y;uVl9@EA;=8C| z(n469DyT97TANn|#H;*mZN)c#y!#Lh^@I92II8JQQ=@}h3Ut4Ay zZ}F4U)~bYurP$9WcH?iGI4jIXqU?~Q^R?wA3(<3(ktG&_BH6@9jTR0j@bMSAS2oTo zK>6B?#)r=-3XyCckQyB-QO(8>L#|`v)Rg2lGI@Z9H^S-RiF_f_li&h(^u~e78ho3# z)4Q0~7JVx}AjQT!-T?r^=1Z# z3DgJYHzw2C(i;P(-hd0&+(Dpt{!kFpEV1rLx6!cmZyU%nX>HaeT&Yfrhwx#U|^q+{o1 z#*Yl!jMOOJs3jAV(tK_1J8XJ;_SnLjNu2V;2C?aP>ts_4um$I9r(Y{1?69O6HF8I> zBt26~=$#XTt&-vm21dR1rv9JkzoRTP9G>D&N^$nSG}S9JAmhs3h-mFi;TW45tDbmQ niak#(QJ8{dmTH*GR_*@}pN(d3$W@{~00000NkvXXu0mjfz-zNG diff --git a/zsnes/docs/DOS/images/get.png b/zsnes/docs/DOS/images/get.png index b9d7e111f4fa6ce133008df9155b57ee4123a951..c484b33864412af09df9e29de734d6b7de1eb95f 100644 GIT binary patch delta 1857 zcmV-H2fp}$63`BiB!35VNliru)C?RH7&t3(+SC95010qNS#tmY9>M?s9>M``&~-il z000DMK}|sb0I`n?{9y$E00DqdOjJe4&)8;}nWMnav(L}g-rm*b=Fi{Xv$3+mcx2g- zd*F$2;Ff6Po^Oe8Yhq`IUvHjzoSd4XuXUlL_xJbj@9)ga%zu|lN4O3I!yg6TRSe}* z0q0r>?`RS5Y#H@-9&aBL5(_RT2O|I$SO5Ss934jH=H{fMpr9ZI)I}BHbQ^~i761xG zkF~Yh(aYjw54bc4)jkc(GXOprA->hs-rnBB$H(DU9Z5<`;A#}!OAPp{WX^U>jg5`1 zQa5KtNW@(s|9^uq`insLzkho`GXOb!06m@~QG=>`Prh?K0VZwa@9*#S_P3IN06vKT zQIY^rqX02@#ogVz!oqEJby;3sW@cvp|Nk>HGtOT>*keTU*U#_2vetNB&OR3N%)-=F zGv}Fv+P$;pqmh}JnLt57=*GLcri}nzr1j+90Bo-Ddw(m}yrtrnfdGKJc6xfunPxb3 zj)`SW0GZ4gcdV>MCENE1Zvmw9jrq120-RX$a_pAT_ z00DGTPE!Ct=GbNc00l-#L_t(|+P#+xSK3GzK!cC~uBBE$AR)HWqC{$BHYixAidCyg zp`=7&Dt{1pR76FsuEjq0ukSZW(CyalX?r-m=Omd|=H|=HWPl(D!v32e4D5D_93&1n zce|~@U;lsrz!H#3|4$>x_ zrjMl2$ktX7eED~ypW0WJuG6`I`0V5$ZROeJiGPeI9s%E0abxOe6~Ez}D>+Y@i$H$VH!X9M6xtMn)Q^x!lCtcDMKb3iILW z^0Hfy32LB2H@le*h1iu`F85@GW!bY!px3+V^>CtFAPI4>x~GZ60?RTC69!x8-Q^AE z=YQuNFYzOt95fF8TlD(4aoeE#|4Ps_&oh{Cn4Y=#mkf{~I)nLAD^;5J-r)1WNy7|# zb=2^F%`rk~*ZVE?Wj@5GO&!B524>DKF1qJ^x+Fn~65vz~{8FD2bso+LqZvBsD|EEC zTb8~-JcWtErD@vKh3106x#^bW0tCX2b$5 zLN)Og>Kqs1xW0{H;9=R^TQj_FyU-pYhDd03qNd8$9a%*=A;oMu)j{ zFpg&4AF7g@4(JT&Y;-bdAV>qK&ZG`#P8^&8FJQW>cz@R6t2W zuezr7b$cY4L7Ll*&;eAufs$eD-6b7WIE&EyD4phMnzM8)dw6)bROny|MFXs(C@Q5k zN&CE_HnZjoZBn3va@;FPQlNulkAjoI8(e`)$m`+*XiYgcSqP4^LOVQ!uYb#PQ`gBC zi}2OPI$4%WszS=Lf}>0Mfhdj+%Ar>{%bRQO>v#85@r zfhprgRfjC>R}&1+!|*XE5DW&@ViC4X*WlDyLqBy;>6MRv5M|+Jc zU2t(}yO8o%s_;HVvjQ^uUb()b?TUU)Yf!?A*doI-V5316M9>+2g!&o^D3wXJwO{vBQNm+)t2531MI;@utqQiTjfe z9zKkxK==5&xBGsQ=87@nE5wVTh)%;A@c=Kg$Wa2Is8pYHbizNzUL7qWCXuIZU+ z;QphyVS6-YBM93l=^YS0|9Bt>Q}cR52;YA&Ir$(Gxv@cbwmPBzUkpF~Z-jEXTrT(U vA0{Kf9gpWO;PH&!8?)Jrzd*L%1gQQ2K~d4=YDN3900000NkvXXu0mjfyL6jX literal 2305 zcmeHJ`9BnT8~s|7(6wfZEUA#26q7Av%QB5=h>1}nV-(?9vt&!IT^lBo3Rwpk(J%%X zOWm1w5Mwg7k!6V6WJ$r@%D9k+)2!}h^fO>}N(%vB)VC`xRKx5v4-RmO%b^1BNT>*&I0U+rf06Tk9 z(jownrvUhJ4FJ<301k!X+uY0n5CSk4gdG4zy_1u`qJ(KFNsFBIzYje{VG+#Pd6qx0`M9uK%Z%xi9* zEeQ#*cU+Cr<8=~&f+wHPpT8_XHv*$mQ#m;~bUK}fl|GHS3xetqc}?HvrmU>3JHjnG zn9R2ilNQPz#90|}3b51e5={dGK-`XWMhu*bk9=7sSu!k@|KXFLZCTggR_zT82E$xf z0H|`#O}VJp*qtn^f$8Z&XNPrqH^cWlkH@QtyR_IxesM%}VPS!b6#E{f#;{c2WP}~t zr&V6|V#H29!`~H$!?A~GPfHu~cGFpMGC9Use& z18!x6$tAH;=C>dvF76&AGM7zhB6oLJFeWcLImsL_FfuaQE9n38KTKfTE^iwEk?@PQ z)(A&uN@3O&wxe91>;r|MG^Vgh4fB+_Q}1Jg7ifY&hNGVJ6ZFZ=ty0Ut8e&uy`{Oq2 zN3rnc24!3g+Ic}ITCKHn;*JcoV16z{2BuoJgfx-AXLPrv?x4EmuH;OG_9KZxgm+hz z>#S@lad+2l8bSH`nqg0^H1_V z9M0H4*}_SuwS3g|Y5U!l_=)GrLJbX#O~#OTdDqV5kK`fjLWeBL=1SQ30&)BJ*-gPO z>gF-}BMB15LQe;{4FW9Y13gPaS2u4(WwqRpxj$$Fr#m)^l`1B2(Y*M(CBtOXh-KL^ z+tSwOw0Sk2N%4PbqhY2NkDx|WE(=mkCS8^4zta?`XfOPxC&4~&dGqh_AqxVTKN=Ii zOS5ly`*~V<^eM0kI z_FcC=A}auGLuW&%kQEDxsp(p>AFVR1Z7u~r0xudXSXk15Lyp=uhw?`~@27j`{`LG& zBmPZt1{xzIpi)>w@Hke84lWqrUM6W%MNUY5AU2`nj$4JF$$p$4W65W`(`g1vM$!-Y z?OhC?VodiLvoq8#nsNBR%C~r>L`*?3b1d&*)dw=eC-z4Ln;QCEY4d@`2ZKaB0~i(TJ6(wUIc;2Kl^>GMEyUWMcsTrSP4XiYN`CT zx}5z?Lv8MsnG$C=GEtNicpLdn6dGt}X5>u&&Y6Mna?xtI%4yb-t z>)>uia&|S-`O+(*F6 za_C{PVBNhHCFD@@g>&mQfu^O@$ZD;|jmPe3<&`ym#bY%g!>Gul>(O`6v!&nd zg~-O#Rr5p}ksNMv?VyLEE^!ei)!=xC6Y8_JYZ%6Tnd1H~^pySg;1;AOxw#2*B)>V; zES;f~MEhjUKSts{uJ?kZ!R_31p`Uzb<>ob37c)O2Iz6=7bXF6=kJ{ zLZMVvkG#j9_p4{7iJga&(STraIf6+a`8cL&;w|nX?c|=?%+&>*gRxtE8 za6Iu|Z~SPwMy8@=>V`+HI~&V!44GB-gYE0@JTJWf#SS>)V6BNe&7oxqm1-vCL1ci`~~R>ctwn$tp_r zu_vy-ccQ-uIXpbC+u}@Ud3SB7#yWg{=0-}df|#nHy=tE$C4Dvai`n;*xBBJ^KCiEe zr^g-)n=n+pCgq^LhOMcr3<#L}&;#Qme087fNHKmoi>E^mYbu9mKG|esBFXdSRI%qNywqpo)~ya-q58LBgcFBMoKziWL7nUf%3$O(~#@xj%f!>^=TVS6tK02l3` Kw)HmGQvL-1)~~t% diff --git a/zsnes/docs/DOS/images/gui.png b/zsnes/docs/DOS/images/gui.png index e1c8410ab4fa577fb8e85211b24db951691553a4..85f921b6e2aa1b5e97ad54c881c9aadc4bca9411 100644 GIT binary patch literal 6072 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 KxmM9O>OTOHHh2aA diff --git a/zsnes/docs/DOS/images/misc.png b/zsnes/docs/DOS/images/misc.png index f1afbff05214e301ac731ea3b98f77a944c613c6..2da8e5cecf05edca3d07ef87fa9208560cb66615 100644 GIT binary patch literal 11997 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 literal 11557 zcmX9^bzD@>*Iq;rBn44IVo8@?kXTZeUV5dwYo%dn>5^`xk?!tpq`SLOx|<*0_nnzL zbN-ln&U2n~?|i0$733svUX#8C001~rlA>?`07ddy?!Z8Ou0O;VVgUdzRup8E#K1s9 zD98^A_5%YoK*SngAVQGA1p>5(fb1ba1dtdG#D_sZeh?4>3^Ig(;SdN6@|?g>Fc<=b zKFe@8T;utH!C=tm42KyS8frWzLk&vXXVu3;+8XEB8{Cp6I?%6_UfHwpRp`ajzK3j!9;{?N?Pz|^tkof@E+ga9f?Kb zh0P86A;tKH#Xv+2#HkoxqgdFnn%EElh7}VV{sd_hvmnY@tc!t$$;2AzbcVl8ykSto z?`DpMP`Doe0tbMc0D^`92n+y%0ze3uhT$_`APDps5%9UufPwvf$#Ckjg5_a)Kp+AH z@&iNtKp;2b=UBiHa_XTFDBKj~K0^@zAOZji#Q?_wh~WVIXQv@g*5D@t zrY9J%mPrBv)Bph80N`W*C>8)p#sDX4Kw(c@1hF6p1Ox*B{Q%%%05}^TY!3v(L0}Ca zSOWyn074KLT-n4BHz33w15ylz8iF8(a;mP!Y#*RNI2Z&2gP{Mh3wb6M4ggn!q4r=1 z0v{3!ff|+~M2_I}07yT8s~JP684N{`L6eE0#ZTUl3RVqbP$&R8ZKwgqfDQv7({Dwa zh@XK8E@MEK---`^07n9#I{@er80tm*6!>59BZkHjLqhSvZusD5LbBmdHvrHcKx{aXBzXe>Frr9_eo=Cs-}kul zCF^yWjgo*z$1nL8RCg}KvJyml#<`Iww|3~wWc;5x;{RXls}zyaN0a*ZCJ29I#1*b zB{`48m#?_3?a#e$x!4nCnDGqUVH+lB(`~pE?md6{5}9@*jYpmT)U7W0iXi&+If2x% zr)!C#;}zP|-vQmnQ{B!p+Ofx5sj{o0WBiM(e-ElpSdm`@%Uve6YagAi`0(UM9G9nr z%UuR$cSe%yZMNO{&dhQy&Ct(5HmQ(YpD8p)S=HR?v-eczS4uu_y3U}P`Wqhv=4l=T zF&ws=mahJ7;mM9)$;P}Fx;kI)U+n*ocif0z{*Dt(b8`=lZLHHCtUWD`UuG0ayy+5Z z{0Z{eQe@{yn-vhcT+dcz)8;FN$aQ)bj=3b)=_+G-eROu^%Z8+=vZ7pGeJcxC#p(Hs zNXeC)r7ZZ*=E;iW;qVpe#iuCRM#k!$4_zmJCk~K}hs%}$a(6p+E!-4tmO-KS; z^gq)q(RY*I+~^cl3wll;E$`Ol*fJ*XR^~qmAus>N6{^Z10R5X7$0s4GY`Pve7*bTO z1MD2(BK?&cvp4QQ)2ig(hdxULm~{!Q){QrVCsk=7(!xlv;w_^h?5Gn!r>YPBn; zY`zh^Yf7GUD*Zf5*|Sv3+j@;=*j4yFWmYX;+2G@F!=OT|L^WK`x4)U)jueGm+KK8vR%l z^A>dd^FjU5eIMgu(=e6#Z{+>N#TGSM$Vq`<4*3otv5uCKXlp$({5s-N^^5QrFjjyV zff)pe6={#QU^et=;9Wjzl&Vzv#F>?qX7z=NayfQe1w{&vhU{m?O_rd-ILNm-M`-Uw zXhN|86Y7|{T)*w57QOX7FUUq5Ldll26+YHK99w*Y>k?>Jzw{B>Q2hdb9O6M_gYsnB zT4y=IkmBeZ_pMT6YT-GO@7ajEp&7GP{BlXLebUx#Xnx5~p{MYSv71XSo2Q_vD73;l z=Y@_gSSHCz<7mE-!^3B;r28ub}TLPJ%VxCEon5 zj{WhT$x+Zr&m4(FLNpg!-OA_f_+I58q_G<3N5xwXw~-WPMw_@wh~mF~%DiRg`(OHo zSX>`RaEGTtQD2!LI1}SE02U%O`#7#TfJJ(=#*iO%x?6v!G??TgW?nV5-a-RO-hC z4bkq)OI0fT{H3J`KWWgmgi7lKlXeZ}zNRIwjFtYx$JwnO^a8etu(DF_RmArAy-cu`{Qz}sQe>o5)ssi~*?e}Skm-IrsDe-B^I1e*lP?*kEK#ufFh*3qdwt21Q zbo&;PA9s)Rz!hSz2N?_Aw-lM8uk*a!PI@xNE;%_V|5s~Cf2Fy=eH0>s>D5p(i-aps z*M@4pXc87Iw&<=<|FfNPTU+|2FD;tet~r0my!(f~DwkMcoIwNF)ZzyANmGf`U$XfN zj897)Uv#>VOYAF?>ymB34biolUnFh&1Q<@OS(%f_Lo@Vy zeeh@(K#Lg6{?G~kAS;zcbp#skSH=1f59;QV%P^=#3Be~Azkp@M1xL!z&s);)Cz#Ff zTZjx8e^s%>q$)=Ke*Bllf8$Gef7xl>a+BsA-dbVJC^Xe*9YBW}=Xt3oiH3fu>=A6C7yo(Vb^|K_h z2NZ9aAV*jV>4y5}BR?1GalebFiBp-hmGMxtolBcpTI}F&lOB|B*BZ5!<3A&HIPv<>c&^{03Vz?VDY^APL!7L7ssHg&m?li=(l^wZ#I#sAD zU&v2>{d3?zY3F1B;H8s9s}YcB!h}TrKAerKvSR)i-1KWuMG7q${ppqo|58G@YDP*V zl1ui?rpi!N_BcfCQWWJ!-E^`Rec1Ox*o$BO0l4DjgpQz7g`y8xP^dsN79!#3m4f_o3`S#=7L!BqQ zVo6Kx^RhD9k7f<)I=WM?@w3Jh*|}89BY%p5y`CsgH2cJXWHZJv>Cb~Bfvd&$IxQRh zQ-#9xe#}L^mi(#Sz2*@|OnE~h2VJgoM_!2iW9E7^f1#_j7YZtj`EgDcq z{}un`!y$g%$MjzN^3|bF^sZ zDQ}yIn@|<%V)7*ZdL5?-yByXh2;a|lGd+3Z+bs=q|JebNAHM!L zp2#9AotxTY!$&$4z z6XbMv{~8=nu{mR6U^=DI>7u9bCIq&x+z{41UcX9UeQ>K4<#haL5t?^}p~ zLSAn_e{+(>6TpwydF0M=Tg!H3OUXD+cUtR2AzblcH*Hy~|KgOUH~an3>Y`#rMCVfB zGPxO0-=dw87BLdDgAc~bKMQ;M;Yraded03+idsvXmeSG8- zNa2f>r`kMfTGe4|Ii|Do#U$0zb={UuztJ1{*PYPzrVDMNchB{fw>c1bLHPZT>`=4Y z_YrpAjxCqVPn27~yfGRSZ&L+Td6d~w-|L(X9$pZ*xb{c`Jkjwz|2aK#G4OOAVt80> zK2cL%eE2YudQnneZ<@9wjBB}R?eVzte#dqD?CCm9;BN6u_u4WddZF**VU29-?#WhC zjkYkioE4l}_@awY-u*Us#QpEr^t^wZOM%25Lo?>ZM+4Zqnb>Y;ksb>%pHd@;u#dCw zFj|&PQyU&YSM!(=h^MTbOYf52z4N_X>xMl_k4yX3j0X4XShwul2Gy`x&lrX4_dPw_ zo(7ztvcu|&p5kTBZ3~-=Rn*Ip;YLYjZ?Eqd!ug*`1z&{;ZW7wy0gv%bnn=`*MNpC6k}FPcWY1Fw1?3+c?=t>A7DX zA$%$1EOdKPvIV}{<7+tVjCg3)T)CQE(Y<|zbtil~+l%>Ee-zI%mN;-JGOE{&j=4xa)xYlg`YLAJADwOw)I%G_S`q5yqo&cH+E>h z>C4laDQ$EgP9rg+LaDAT=(_1$JvH@}lJ~Z6KL1WtmD2g=XUy5g!|$72QFk+PA6%}- zB7|PA2Fj(pSk14_l#qM#Y5jWD4Sl|EXeO+=v*bFElCN5YJ_~Y!@e_f!yrAV_WLaEw z`MI)5ysg=1M!@liw2s2;@sy@;YbrCB0)pnCg-RId^(YbUzALC{J?pyUCKXKEd^rt1 zYSF*OY;dK=qhSt65B6U*ycvxI?Amv#DEuYQH93UX9X;Sts%v^&r{1YXP^P%(9n3bz zRe$BYN^!o<_>R+ZH%o))ZFAS#ZVx=F4~*?G#49Z!7i@6-n-M56+Uy$w%eC0OX2z?vBjc64 zfb;!k%I7|B?uy)1iZZ-8*8Y>>Q8d*xMf{lpJ?gljIE3Dr*{z_Krjr zyMIsa!qfO{$LTg1>ks#;qk84Zy~R(n@LF0O2-M9@gFM{w?1qbRt*RM0G7LUaoXqKWvNubcd7kBk!+ID1b+Ff@fn> z)pr8N9smf^=X20m3xC8logG3lyuNf|>cyp3hxYf`mN-fpq4-tBQm zYuA|3Eu*EYwFeMzfGJF#W~m^9usa7>Ed@;unNr@kuvyH*{m{%dcx^PjVGyzAp^ zEnJz3)XeX#-oh(x1+W)^S0Q1oxWh59Z>bmc+IdW0D0(5^s>6*yPCZk0Ww;oS3|ry~ z5SSHIkqpT7QczbDQ;_|~r_fn8x%Z7Q{&82Q{3VP?pFnd4fNi27tvQz%k1kz~X}_S} zdTlYb#vOgpU&O(n^40wH?{g!LL&*{OTHi%$K_Y3ghSxN!cQ_uoz#LSEiT*6i`Kla|Njf@ux{DI08Y zZj#&I-n%izBN!`V&@3zBTE#-thno9Ei|fk}X`*xh?G2wt%L1o-mFwuS*%PmFxgJeh)IzNFBSyxf5L#)1k9R6vIWW5qB;bP$vi{?_H zxwxaso{Bn^xUeD9q63d1hPu4zF~3qjpRU$NzBV{6p2d+3dB4|Y@SMGj<=qa8Uk0)p+r7CQ5oHbE-YmLoKQlj*gO}ywa9h+gW#;Nrmkqn zmGd@xmYQ3mO{C8^c<|e$w`P6=9YIhTjbg+LE@TI_&_{z9!m=Pm^Ya^0oHh{4bcx%P zhvHatnbOx^k}|GpsRmV1&R7ACpEKaV%4pl(xob+j+2PW6Ra_+&sN~|~)da;0WR3Ea zyC~7A5rO-KALXaxoflFKeoU>?h&h}C)%9Z*ov^UuWgMk2`m3Eyba4(o!)Qd9sINuZstNvNSo$`a!;6ieMar z4MQE7u2i(#+@mfA+Ij(Y`?^k|H6tpBMlZ=#-wQTg2TI{sNm)^I-E=8DZS2vVG|`z znw%B^g=(~(+WOB%IbMr0c{2LF^$N&#oW$kyZmUQ`*pD%?DzlE=a6ytW1I}V?BRw4M zj_o)d&zQo))JeOtX1q4e27+R7tZmk>Y3Jz3T6W`uu^zBO1)8rU5mLN$5Plz^q8qx#sYGi@rJoM!JaUXPTU&0iXo``g+!Cp=Tn z@p^SS63$O_#WQvmuZ=n#C<55`-HTNQ|7m~|yi>BfjUpa?&DeMUjxNe?BwY>P${b(} zO=ALs)stMMn?M^EUHjhZ>REHtmq4l$h5FePdNUMlW|IOFq8IXCPEumy>*D{U11smuEx>j$mQ-;#(l>V- zg<&gAZ`W98wI?asd@Q(Cv86!QO(aq%Qt@Ea62cDGxxQ>s#V24yNOQ139SL*?86;&? zSayzYi`eG1sXiAHkC3xkNr)O*Zu>covQ)yohDgfXBh4Lz#5y;wV6?@~Rx45w66+Pn zqj$PGzC883kk1Lq&Y+`}D$ z6Q6L1i`Z8qew*Bu)^un+K(C%lp?qZ!D4| zOM2_QR7u!q6{apu%6lkU`;N@m@~TKE)8s5_DTGtJ*riNsIPSO2^_XR4eZe~p@{j?h zDxRr(>9DAbY_3H-T|+Mkp}Nm)%t^PRZ^NlUnl>-wV`bX5>1hOU7spK*G7HGfd+6!o zew1{;u(X-PG+#C*OVI}A8a@YD7AjtiMH^V@dp`6%|fvWT~>1lf;O=7x18nBq9Ns zc2SM@MfOrwsr4z_g9rY8Ol(BY{&whidk(5i)?i%-<>K@=Se~@B@9ujKD?pjWF$`da z71tlo3YCVbN`)5%*2bd{U`}cXng5h=Q!8ooeK)3-8Y&mNTF_=RTlGufJ~{_=@93%xHEnWPEpk{k)7{8YM1+kK$`!DfZ_`>?udU3`_mkvp zPu`14HmQ$>e~l_uLc9_P>^~>g81^?2gyl1_cPUC2STGboUVnT>7jVoqr18TKn;mvlQjErdHcjHwP{@K_8ZtP?FgC@sk-}p28i`@! zao;Zc`sWwjC-mOb_^lD*zLqE1krT;uNDz9(ph?0J=85NWF-vK#PG&v4JM(5gKO5cW zhX1PWgO8`Yi-Z1%{$2PZC-y(ciHqeUL&9w4E@IFL59LZ| zkaM%HNS0qb${kX@%%g5e`?}L#hOasw@WwcjTCA(x@rF|#IxjbDjiD^$#(J}4HS zz^PMW!NKOn*4eb|h?!Ap-txH<9oT#M2Q@+aTityF3j^W~y&^}-=FO*Uzgr`#@=ncI zl&!EwwfMMdg92PESxqjk!WV?*f2+689Uw^uGY3^DW(}|PB5^7ykkbn2x0gx&#+D^A zW2)z}&7lf3J~#pE9`E?3X0@pzm#fP-_{S=$mh8oqhmiCJ1;3a+C9LXg&ebb9u^0c6 zUPPA7Gji|5uTE|eH77S%>RTE7{*ur)Ix_5yF%(?hiYsK}57Gw#>*L>&W)IY$w}Q z?D118M>4cp6li?19I(^#k0p`f#>svg@>aGOtow8Sg074}Pws1y>wGAKvL!*dpl~F! z3e%Vl8Kj_yMOr59-SuubcJT?LylL$Gjq#?Pc#R&3v>Txc-3x!&+E}v^Xt=@j&Ykc3 znY53js8kiP5ph^@&|;9> zKc1*KA;r9!AvICk_PFSIhFG-R5~ElLd+NV0PFMMx?bAhbHm4&)hP&;5^`wKqhF;db zU9+Am`%>JstewfiHj{*5#Ofabkq@Jn-SLDmQq*o&lE3^W;`GJ3e~c43BSmRSVrAdX zi*w`$su<}KYLbd)uac25-Y(kGCqzv4QB#Z~>ZFJ7CA?Ej^xk3|YgK)}idn>L@m&zv zG`4IySzD(OIlRxn@J7P7B?;ivfkr0tTLX)WbJoU-!>C_ z+V}>Q254iy;ja>fmH%;=dcQ~ry!-25;QM1>rR?ew#}aQXXso3JOnq9xy>U>ViCC-T zHw)`U2C@H{38XqWeH#PwL4B7wh}ifRf-M{_bG6|it0si6&#!l>nz`oC0TL`IlD(6Z z!K%OrQgo3tqzym25y7sPj;s}t>Yx7>KGSP5EfOAA<2QV4a6(0g?6Xe~TjV7%gd_UO z1&ah~t$P`iMe9g1$g}se&@T~$R%K5PIP=^5=B;|cu?y9dw~xNF@MLoB5?h0H0u-Sa zMTbQaeM?9j`Gq6Wk{50xV~4IsSIOVm75alJxcR7rIFbhcMS=4X_=DF4=R9dX1j=4+ z%Trh)$lvbHMFKj6)MGrM!^m&V*p^;HKb%QN3X6#*UZUGTwlF!1I z%F=-$L?_Ge2K%oTpl~p3#p$)&{rIr{)cZFn=vs2)Tv|*Y->;L{T(t{|ph&OC19N7? ztz1e&i-t0J#wG6L%KhDUt&n5(-}7qENbIic!b+;gI0Yk8C+r<$%g&)(uJ+u|jC)4X zxih{tzqF}4qSMK$_b(rbY~=A!N;AD3Z4VS5gL71HYYcq+x}J{L9^>i!r7DlguO}C#8qv^ydzH@<%KrSjd|!p-h4}tp z5sM?U+)TsYkB~qXIstQ#J30^RGlIf)yONP8t?dMm=%S&*dou|iJY3E{VQ5{LOEY&H zQH=X0Uj6_+2!3?(rZW0O_*6f*BA<7OTJI^n@5?Qk@xjR(BTLu`LA_${pjHw)m zA@%%eC#p_X*eNNAB-vUk?{8dutu9Z-8^kF;EvK~l5&hcUp*u*dAWBJ1e5%eqE$rLW^IgC1x9^^Uh6`xeX&nA{MLFxRooT6sDq6 z^M^qeB`<$FH)M%6wFG206$qX-)vTTbbPP~-(Rb6H_L7qwM;NeMCo280`E8B{%TW%Q zX0C*WM=%e!l?#jc<8!D`evH~LU|~VnC%SCP^gVfYWgYMaZih+aTxcKTofXA%p58j3 zPcQrn5Ym=pWMuZ7T(W0cwUH9nJ@CE7zQL$K&X72i$C~~5(9_ZNb`A5>{E{YB8D~aU z-}SdoQ9*SGhTk!7oH9`%zU};mgz>oPXTiS_eS4)tyAm!-tQ-cwx9FDsbX}K^f38K& zCV>@LxuUn&^;Jc(rmy&eNuKnBjxWjThu$>hOId6*T3>1rREGEgDJ@%T+%^!YXiS=B zYQcmHb7`RlRYPj7I1nV9p0zKmtUN}$v)g2x#QjE&j^J15E#r&V6lV18 zQiJ+vR2nX`Z`9SvgnRrD7uH#AcY04IhqGkHVd;fWq|>_^a|-qoAn)o zsg`Ya6G&&|A~RoUm{eWf2WF497d49f>AN;>gH#r{JLM~$&~Lc71q3bkds6@PulpML*4|J1_)V1ap zZgW*Z>SV?-{woDe8*Y?cNxF>Rn-*J^=-@Kb+bLLsuW4)A-lPS-CGo``Vz}E{zAO;@ z+r%vd>+@uCAHb0QL!r;_fcLwi@G`#mcytt)8bMQw zJ9jS)pY9oPFd8uRA;aYzsBlkN@&0pAwSZi@;L&ngn*LXUy2Mp#pR)81{dYi7d9 zSH@{i+8`{uzIvyq-k3XDWLrQHBXd3bJ_&8BG#yjCEekdiLlg_++Z7gCZ{q%_^m#kT zwbPoKOMJw1r0yRvbamfZEJ4U2%vN7LX~F?rq3)g_j?%9+{@)<)Q`7I?-4fYz){=#` z^)8mAyScPn1^#KiL)M<<9>R%CUlTFvW_)u zMXCKP;)IkLTm)6u2xt5pnm-|`ZWNImkx>{qjrt?X%m&R6;x6&N-@{1qg?h6$#{H-8 zuA@$O5%|7cVNF>Pc{sh&M!ClWuP||$ZK1$$h@Ga@T+D4_xb4lud|!|Bp^w5^u)B=T z8+E0@sES!8P9xF?;H8ACPSSU-HNzm6MohGUnAv{VZRRD_Z>VqN8cB z#oeM5g?vqkcho7q#6j*sk!^7@%Ko_S`jlz|yDbCF|VF|)Jb>qP?3!!;f&&CQ)^ zv|ELYr-KS1N(47}aq|z0+Ck2W{iL=+T~V0j%I8GA;YTVyT zUMdCdO6?FZ{8<-qz4yhMts+ch#ayNtM!af!(OT917|YyKEN!{c)tfPT7!!v}4%3>( zZE6;M-%d_Tc~WI~&ya_@yiQ(L_6-_1&(YCTb6loy6~9ON23_+L@l$0#n`c|4Kt~gD zCE;PIY=5kjrt)QuX|Flm^zlZg!!_vV>Dj!);u>3c3tK!y=b?=T4>KUVd9};PX?y%^ z-g%0+X7vT;-HNH*lYM(D8NbiYl{my={%I^a?g-ZK2vBj#CoGRE@| zQBPTOIwNp~mA+4fKCjV#Kd+}0E{W7hT0ptBQHfoDbpJcice(;FG*V~C7>#75b^3$m8a3j>W|nA#o#%vWBE@GnY7q`u`$)Q zB_z5GBiIp@YMF2BB@F|_*5BSZZS?FsPd|FV@i<5LQU2^5?q#C4?R8_~NW-)F=-k0` zockbban!(JdPP_f-F9GRA|wr^O*P-|AZYRlBIMAFLsjl@HT%=DVp zj#}_EEaH1G%afsL;FEpkn6YKKt^9sBnER_yw9Ct$WZz($eqX&|;cV_tr3Z|Dz3Xv| z-`$wCN7T|%)7aUX%8o15?QkGOctX$nh50|%eH3v+rbVwEq^!DX!=9I~r6q>;@jluD zBZ0bV#^0Y<8e~$5vWtoi7W{hHI?^*B*;XYyjH7x)1an7kVU8Kzn`7J6^}4~AP}5^) z{(Fhtk-Ymm9#4t2yooWgw3&CRTIvz4ooToXtRjBdZPfHF2i}$UZUYOPr7U*Xlqq5= zvDT`UBrvfkk!0w>{V?L0OkXPTu=Og8>k_kD@xPRIKYwrHE2zOj)p&SIhon@tM*|dM zG?SgBxg@UN*sb)eT(+&Ha`To7CRcPF{S)IMfj69kj|SQNM*C`ihXte;h4H_z#VY;v zUT1uTE6YhlpM{FYP8_4>-?OtU6T;spY=?kCwVkCCp8|GgOYcQDydk}Uvk17 zTXQli`h6#Y>Cq;8P(Co=o`<`XTwKR|EwE-yF}wzq`Mz6pBz&#pX=SyEoAb^&!Izl` z=jEIGfv>w^PYoZ6wFJBOC~HHxONaK2x};@!r?Mh)JK{V;?)N{tCiOoR9^l#mUg}c; zDDI!qWSf4f#iMwS5)112RXOULH~P;^dvUcIQW1Cee)Q(=wMcZENJ|@{(BU^T*%2!t z(`C4CMKH66YkS-YP^?!gz8cHtL@-eDJBF}ZeY{>)LkgEJwVeN|7=t-Rk*CZ^tw&v| zzVvFQC>_ENuZ1*bs=|Zv4q)W<@@*=AT+1m+S!&a;X*H(5ag<6KjI&}k#{hMBBva9! VYI&r@p07Uxq{QSzOQ3o_{{!%fd1e3r diff --git a/zsnes/docs/DOS/images/netplay.png b/zsnes/docs/DOS/images/netplay.png index 44322a14a3ea27a457262383aa25254fa4ea3202..f9e55f5156bf66f3f5d097aa98d25d6a72dc8d28 100644 GIT binary patch literal 7435 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 literal 9539 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 diff --git a/zsnes/docs/DOS/images/quick.png b/zsnes/docs/DOS/images/quick.png index d8e088d64f1494928b3a0c7ae797690608e8e837..21b9f2039f5b160a58dc413457759bde9e422c03 100644 GIT binary patch literal 11747 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®+XVi5cvwNu zkYI{DCI%A!D?d9rs$yWgC;XIQI^zQ1#-pdsy~hKl3XCuA@xtn>lK+?C7lN_=6&2Bh z=r*Lyz)8U+8RwX0WoEXwww7ryTJNdN5pZaQA<*}UC%D<#9zH&1{U_WSe~*fe#vITA zs3<8Z;Wmcdy z2xL51e8Fk>ss! zanogJaFLS}qzI%KZd{%ReE86LEJiza$%L=7*9Q%Zc$|+###a6=EY)>>seG)sJX}c% zVAwnf@3-u&8xzS$;sC?;6u~lhTh?@D7~zm?ubs4AV9*jG_1U%i%Wk3l7fmxYnd>j0 zG12FCFCWTyBJLYmM0wC32mkcW65Q|!qpH>0{H@q;aFiMJwp@5f$ zfjV9e2K<2&Al~YWYJ-Yw9b415CrExr4ReP6k8X5z-s{cPLXnF=U0Vf=9ZyzB=^DMu z9j!hsHQG%`b!?&o^Q?mKzrz1!3yaFN4ZQ|TPQO)Mapjg*>Nm|+StqjSHzr-pclv&* zbEV^%sh+LWpJVoYyu19cK=o&$j`$l2kNvVv+holJN_FR*b+Uc0BBFV*7X^p=bsbRH z3PfLqc3gFUL*L4S4Acgn9`E003Ai0Ew*b68oNfPJ^*N8`R3?#HOL?4-CFd`{>iYXITjbLwJ~@Ugoe&I1#Llf18F=@2v6;X)lSS-9`Vdw(-Cnj`uQ=(*+j>3*gy zVbElhr%}&k?LIyf*sLctY$Y z1s0tNGHDCPQaSogg6>#8HlN1JlA-NOP3bF>`P~>#rZDT~Gwq1&BVFM)=C2gtjT2Ov zn(-+x7RL`kCjz~OBCKr5+SUX({eh8K`XDNqr&uB|5KI^5J=8YD?F%l9Ivz6>_Bty} zj>a60`D7#n4Eg+4NifSZS9ue&v)(t6cI^dK1C4$2h3Wnr{N%TlLkBbEX$ySP!pfgi zY|gfTfz;E@CeHjx&}I^slT7{SK9qL;02s1h?3;?q8MV3FSp~(4KHUru8cCUAg?#++ z8QJC+Wo`b%g_uALdvKh}^QzZwR$Qm`3?s_(^{RiDYmM7L{i#3Zwy5G<#LT<&oPcz=jI;<8u{HK3+BT8%u;pMw(ecDaJc_t zvmv?`&AakRuDs;yI>qU*m7;+I15_a!VL+$V)r#aqPM8a=NxD4Fa4|^LLR`;J5%J<^ zXC%XxN?@>e?rjrI;nXwls!wA6Hx$b?;2}wk?Lw{has~BCbdv(Fp+Oo!nLY|~Uq5S< zA8{5o%1*334uMTMSNFhLP&1}h=t86w_|Ml=ndK5RGTvzO6|wQp*@E1Ma{>|!~>fcO(DhfA5OQXUiHiRVE_)+d97Jm&Fzg{fxqk#uBq0*$;Y z=H*bdb&s&>B|usWF}^Y`lAaGThBTFog(y z{FPaKFr0A_AR_$Msj4>{Jl0GtA~>8}CkC(cbYSvjGMnma&g9}#eca+n{V#pdf^03M zSj+No^v^-#IYFW=6r*N5uiUmj*Ul4GV4$>DV+8XIis^uEN)JReAC8(Q?opAQccOadHUGIb^q0ozxBW0YLt$aBVj+J=W50Dm$ zUGtcq9+wg(KBL6&6C@<79ZaicCRS$GxDjkUW091^d)D&{5)>LB>gVl2xVv_cD{(vY z@|JG(!zd&ZQ;rZ0EPKY+#5AwpNkM65c_3EqJ=~Qs7BdtxVHA)Q#njC*K3Fb$$3thE zSd!znh}m^Hs~?u?8f51cVcSYXSdo{o2Lj}by`4|#m;0@D5?d(p;C3!k+r=&(gAgUJ zMoOteg+3d7ddVn?1u>F6Iy&0`#ELIGBG2yfqmNj73)XVmTV+@QqAw z7sYj^-Rpa(-#6Ok&V*Mt74qjQ@Dm+6lbA5fulgF{gQ%0JTe2=@35xj^fQ4p5a{rW( zRlg;2Y~3u6_(nTIR4TuF7r|PHz0&Bfy$x9IPmy24yXW!QR1DOJgLpvRGiH(pg-fZ) zsL4>pCrxA|B*n{t%`ouH!emRsv&jTzQ!VpQ-|^TIv9s0fgtm$#=(=q%jj7Mb5)^x9 zNflL5*>I-6T4gTc47QcVGw=%2&q8*>e=%?FLVR6m&NY!*b#P5AMA&KMEOf)}U+q(kNEstP4#nWm#^Ou)q*f8N(H0Lh zJ#j^+H;Y;O%SUN|&0KSa7=v|BXMprgJ)a*WRTWnVlH7T% z$371?|5%ifqV5l>+KyX&VQ-=%NVvmG*(WT4ej8I$q?1&ukhU%-WfmqCgxgtupd|cW z%1dHmYZJF*B{z8NouDWUu1~d5mwjp#b2tuQFUOp^`=XfmsJg;F>%;LQJ%(XEWdxB~ zkv+Meq-y#qt9ogu6O&u2L~v!eN&@QTAQ@v^5ox*Mwj8Yy%CGa`pdA0Z zeY%{=)4S@liV-o^D&DxI*gAqMRyLW$PpoZ}5ZyGM(Lk#BF|{H^i9XrF$eIYI?cc8q zG}UvBEB@Ip>yNbE0)>e3D_X|?kdNq)DjXK9Fg~a-*D`>o7xx*2dJ1lZgsB(Fz*tGn*{JkTAyl$~{`ENZ6Lwn(8kS zNLo91gWB~IM=YUFGpe&)@nTSY+d4A8NOQU8x%A<0=URm?ds5ix{nwPmv&kfQz2OumCA_e<<6*FPkj%=`I$RJHzP$WnLDvz00by$l1$S||IE^c)+W+5jBs)- zJzZ9xQ}@2WymnCkiYm6T_(v^-ks7K`(~-7$vHAcZ!*mOw);qVvqsEm7Nft$Ulkn7Q z^gA|7~6XuL;bLbotLkUm!@} zgjPBGU!A4oc>sXEO{gb8YE6fLPl10{k_w}kU*G`?MK2c_#c#|n2u$~t^?OM;*f=vN4w8637591M;O2A2dclmt(Y=t+;L zigK!ol8dqSf9;@kNsRmpi71y29r*W1oTdLqa3grrO(w8fULw7KmX}tMs*?B=_`d+^ Ch(Lt^ literal 13064 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 biL|Lp_J0B(Wx{{jf*}1>LA*lLAmIN1P2dcM diff --git a/zsnes/docs/DOS/images/safer.png b/zsnes/docs/DOS/images/safer.png index 5948eaebd8091a607de127488d031cff6d9420fc..c8d11983fdb3658d647d09820682fe92170e5f2c 100644 GIT binary patch delta 1885 zcmV-j2cr0!66_9;B!35VNliru)C?RH7$iS)hMNEY010qNS#tmY9>M?s9>M``&~-il z000DMK}|sb0I`n?{9y$E00DqdOjJe4&)8;}nV-D8v(L}g-rm;d=g!^TtgWr8V^z#% zX3T8k5)Tg#E)6OG05bp&PyiZS7A9Zj=H{fMpq(Hb(?t#5b{*hb3F})9 zlp+L~00009L*Zo)wKEFRI1P7zpuW}B!pFzn-rgA-8#hpJ0001RaBwLpDQ0G7kB^Tt zGc&QZwcTeF-+xL6|DILgj!t-cdp<-&o{f#HRw;ByMu}5F&TuUMgE9S*NA<6Nnx&=8 z%*3uC=voMK%CJi2z2O9Y}t%Y(2zuMzMTi05y03C3U;Ky~-&G08yF6-Q9hO ziB(xy0A8d3X{rDtX6<$;$G)osd9(n8z25BX|Lw2k?|<*kv5Gc*mwszi0FT6^#MA(p z%pV^gEoYJ$cdY;a{|KVh4W82#vEdPt%Og>PV~nLCzwP|+<)gL8sLa~C-rqMID;@v< z00DGTPE!Ct=GbNc00m-6L_t(|+P#*IThdw>z=sUzX1CY~aDW~aEU*Xf*1?AB|wnyRXeX7}^w&mT`)t>aHAJIU=v zZOmYPk9ip0t=Ea~!}h1kH z9Dj`Muo)u>QjJCMp?v*x+v&+ z6(KZF1}Y=rTxa%Ivk2|zI-eE$qkj%!fj}(I#e2HK^6Kk@H?4LXmR(z|*9IuJwr@~2 zPw9Q9(=6@x&bgia3(Wqs(=7Kz(SwOXK5tDG@;vjaueV<`K&RH!rdqGtC|l}^FT68% zoee|FX%0tvInHqxwqR(uI9FGjtrlcv06P24?LB+>JosYP#0-UAt*q=2TYsx{N#_Jo zrBX?8{$Hx=A$V~yLlz9Z0^7;syXx|&6QfFlb5d_J$&J2EpP z=hTKlvli~xAx(2-d9olU!;snhd}<1=ih`*XQ#IWRJCU zjZN4C!xs+|C~2A?6Ke@W6IAV>79?#4DaLSDy*kLQ5J&`Ia&kW3*4EbZy7BwL6xMn= z5?R7xNk)njX9XTZ4VrKX&b*KnoE71EGbOb+J4ABhxB|$wl2gxXYkx$yR(nxfTdR+c zj}sjYlyHeI;|h&rn4(aFCTOX`O_Zv1MWC-md2u?LNRXvhND_iU@U5-Ac)I>_qf+0z zq>ErNlEV>Nf{`OoBf1DpqdD5MK+pB-GC#&cbn!fSn#p7|8l4ITm!3X-wmiJDQe3?| z1CXx@iFCoM%g$voX@4H!Tqce9NQQ^Hi+mC@b3*1?coyy_^8um@6ryAy3*#C2aUw=z*x^De(d(hyH!Jl{US-9OclAJ00Er9A@ X=N{GiG(MRLgDNh^t#k<7{|EJk6< z(=>9}qZx%wDaXuG8BdAV^H;pTyr1j3KlgQiuKS1kx_|lPczL=&c)Ug=5!c+UH>i(~+9QK=%4$il)R znoK@*Ixi+ZegJy_$T>A~IMLD3kjqUUqZEM^et2f4jmgx|(%RVA_z)zw>xGccV4QQd ze$d|j*>?*77T{#XM!Na1Kw#sAot~bqj_@auNFQ!`a-E@o#Bx9&M6t@iAUZ`$Wx4*U zSS;?~@e~ymsf_Mgv~hAyj!8_ub#f6vmOx9nLfqa8YMEeRq3Cif!$N+5&*#Uey|slV zx+44f`Zk31#>U3efilw-*uJ#WKr?uU;i&<7?lSI=X9^GxPtS-OGMVBo|tnZMX|!Ki)mq(o1N|Egs4}no^UX%dQtqaKt*Nri z0%K0p5(NtgC|(YDf_C;!yZiY`P>Vp+7M#UVrKH*}o;bbK?|yi_&g{#QlHfOO=5Deo zrb_#Q_9W|!+YQK@yz}kM%YJ*+1~{CJ>bo-{Ouh()DymUw_m$RmN^rkwxN@*4;aJsR zaqLoAujnlEIX!_`-q74^O}v<#lG1xZ>fL%rjZal;L6VbpBh%#LTeHz^(?QhRR=ZIH z^@eT}Wmzlt``uT#0`BAQoW)Dl0!RodRVc#L{L*#s+rFJPN98IRm_Y{h%`H)>l+#Ux zgG!2{UTu!w5%z)i>Y37Pa(s)fY;gTO_ z;_vHt%K4yXsU6Q#HQ}KT#oCDpI6LRKoqUP{!Tq_kbd2kg=FveaBI|8Yw_ zsccp4#C^CgWF%GKCuwMk{o6tq79?ji`N4LccHWv#esn~stf{fY|Iesps+v_SFV5=P zv+dHB+=%w4eX-qRjz^Jqc1oYQ(bD-t>61zStR8f5E1gJeRbNhA<q(86d;E*2=X{bHoN3#CEhPL28Y9C zH+B{#=)uLWx~}_qI$IyAaR1K?hR2$+o15PC-0-kWVL08^#@zeDK3H`w!z}kz_2^0u z9(7lFYy$o*zcnN3)TyXFwIO?6u~55_}dztO>37cdk}oWVim9#06*%cE~s zR<>J%a~Qu(d#I8UTjx0n6kK^XjLry__?4*VlExJ=%n=x#3 zPkA)vxP&x8#+JD10$;B`Z@U}=nJ0ONpib(tU*~p_u;a$(`r}>F_|rP*g$L)zoi*jO zwg@z4uPpuW6@p!|pINN+ku_w)m@tK~v!kY_=tknkqAtg}s?_KA`s^d)VyNS1btQ>) b6^VIWchLpM+Hs28zkdPc?1`v@ho=1(&sd=f diff --git a/zsnes/docs/DOS/images/zsneslogo.png b/zsnes/docs/DOS/images/zsneslogo.png index b0c052c7caa0357ead146f8ce26100731313171c..777e580f064032769756b4bee971a318e9f9a84a 100644 GIT binary patch delta 6600 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 ezyD`f{ue5{65Em{t~yfy0000)^q diff --git a/zsnes/docs/DOS/readme.htm b/zsnes/docs/DOS/readme.htm index bc9bc05b..26d06b98 100644 --- a/zsnes/docs/DOS/readme.htm +++ b/zsnes/docs/DOS/readme.htm @@ -1,699 +1,676 @@ - - - - - - - ZSNES Documentation - Dos v1.4 - Readme - - - - - - - - - - - -
    - ZSNES
    - ZSNES DOS v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Readme -
    - ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    -
    - Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    - -
    - What's New -
    - DOS Only: -
      -
    • - Fixed cublic spline interpolation. It should actually save the option now! [pagefault]
    • -
    • - Fixed other various DOS sound bugs. [Nach, pagefault]
    • -
    • - Fixed a frameskipping bug. [pagefault]
    • -
    -
    -All Ports: -
      -
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • -
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, changed much hard coding to variables. Fixed more SRAM bugs than can be counted. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2 now loads and plays great without the Dejap patch. [Nach]
    • - -
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • -
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • -
    • - Removed many, many hacks. [Nach, pagefault]
    • -
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • -
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • -
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • -
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • -
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • -
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • -
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • -
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • -
    • - Fixed a small bug in SPC saving. [pagefault]
    • -
    • - Fixed issues with config file saving. [pagefault, Nach]
    • -
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • -
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • -
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • -
    • - Fixed rewind when using commandline filename. [StatMat]
    • -
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • -
    • - Removed ROM info that appears when loading via command line. [Nach]
    • -
    • - Added a command-line savestate fix. [StatMat]
    • -
    • - Fixed an annoying savestate bug. [pagefault]
    • -
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • -
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • -
    • - Lufia 2 problems are now fixed. [pagefault]
    • -
    • - Emerald Dragon now works - again. [pagefault]
    • -
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • -
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • -
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • -
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • -
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • -
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • -
    • - Added support for many more ROM extensions. [Nach]
    • -
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • -
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • -
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • -
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • -
    • - Added better handling of bad files. [_Demo_, Nach]
    • -
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • -
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • -
    • - Fixed variable types in many locations, ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • -
    • - Added motion blur (Thanks ipher for fixing the entry in the GUI). [pagefault]
    • -
    • - Made ZSNES more HTPC friendly. [pagefault]
    • -
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • -
    • - Unicode support partially supported. Will complete later. [pagefault]
    • -
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • -
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • -
    -
    - We have also greatly improved support for special hardware in ZSNES v1.40.
    - These require special mention: :)
    -
    - - SuperFX core updates:
    - pagefault
    -
    - - SA-1 core updates:
    - pagefault
    -
    - - C4 core updates:
    - Research: anomie
    - Main Code: Nach
    - Special thanks to The Dumper and TRAC!
    -
    - - DSP-1 core updates:
    - Data Retrieval: pagefault, Overload, The Dumper
    - Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
    - Integration: MKendora, Nach
    - Processing Code: pagefault, Nach
    -
    - - DSP-2 Emulation:
    - Data Retrieval: Overload
    - Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
    - Main Code: kentaro-k.21
    - Processing Code: pagefault, kentaro-k.21
    - Special thanks to Lord Nightmare!
    -
    - - S-DD1 Emulation:
    - Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
    - Research: Andreas Naive
    - Main Code: anomie
    - Processing Code: _Demo_, Nach
    - Special thanks to all the other developers and users who worked on this hard project!
    -
    - - ST010 Emulation:
    - Data Retrieval: The Dumper, MKendora
    - Main Code: The Dumper, Overload, Feather, Nach
    - Processing Code: The Dumper
    - Code Fixes: pagefault
    -
    - - Sufami Turbo Support (preliminary):
    - Nach
    -
    - - SD Gundam G-Next and Same Game expansion pack Support:
    - Nach
    -
    - v1.36
    -
      -
    • - Fixed Gunforce, added invalid HDMA modes. (Thanks Overload!) [_Demo_]
    • -
    • - New BRR decoding method, this should resolve all the sound issues introduced in 1.35 and fix new ones. (Noise simulation isn't used anymore) [_Demo_]
    • -
    • - Fixed another bug with command-line netplay. (Windows only) [pagefault]
    • -
    • - Fixed hang in NBA Live 95 and 96. (Thanks Overload!) [_Demo_]
    • -
    • - Fixed sound not working on first run. (Windows only) [pagefault]
    • -
    • - Fixed some more mode 4 issues in the new gfx engine. [pagefault]
    • -
    • - Added offset mode disable toggle to 8-bit new gfx engine. [pagefault]
    • -
    • - Fixed SPC hang in 90 Minutes European Prime Goal by clearing spcram. [_Demo_]
    • -
    • - Updated fix for Clayfighter to fix some bugs in battle. [_Demo_]
    • -
    • - Fixed crash with certain games. (SDL/*nix only) [theoddone33]
    • -
    • - Added better OBC1 detection. [_Demo_]
    • -
    • - Special hack for Samurai Showdown IRQ problem. [_Demo_]
    • -
    • - Special hack for Kamen Rider menu, requires special latch reading. [_Demo_]
    • -
    • - Special hack for Super Famista 1 and 2 SPC bugs. [_Demo_]
    • -
    • - Fixed some more bugs in video code. (Thanks Perryman for the video table) (Windows only) [pagefault]
    • -
    • - Fixed Digital Devil Story hang by modifying the spc code. You must start a new game for the fix to work. [_Demo_]
    • -
    • - Modified work ram init value to 0x55. (Thanks TRAC)
    • -
    - -
    - Disclaimer -
    - The ZSNES development team, including all developers and contributers, are in no way responsible for any damage caused by the use of this software. In addition, ZSNES may not be distributed with ROM images. - -
    - System Requirements -
    -   150MHz Processor (500MHz recommended)
    -   16MB of RAM (64MB recommended)
    -   3D Graphics accelerator (nVidia GeForce 2 or equivalent recommended)
    -   DirectX v8.1 or higher
    - -
    - Things To Know -
    -
      -
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • -
    • - Several special chip emulation routines (SA-1) have unknown bugs to them.
    • -
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • -
    • - Screen Snapshot, Snapshot Format, and FPS counter are available through a menu by pressing F1 during emulation.
    • -
    • - Screen Snapshot can save in bitmap format (65536 colors) or PNG format (32-bit ARGB color).
    • -
    • - FPS counter currently only works when auto frame rate is on.
    • -
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • -
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • -
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • -
    • - SNES Mouse support is still missing some features, such as speed settings.
    • -
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • -
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • -
    - -
    - Current Progress -
    - The following are implemented: -
      -
    • - Complete 65816 instruction set
    • -
    • - SRAM support
    • -
    • - LoROM and HiROM support
    • -
    • - SlowROM and FastROM support
    • -
    • - Full DMA support
    • -
    • - HIRQ/VIRQ/NMI Interrupts
    • -
    • - Support for most SNES file formats
    • -
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • -
    • - Interleaved format support
    • -
    • - PAL/NTSC timing support
    • -
    -
    - The following are implemented in the new graphics engine 8 bit: -
      -
    • - Combination of line by line and tile based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - Mosaic effects
    • -
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • -
    • - High res 512 resolution and 448/478 vertical resolution
    • -
    • - Windowing effects
    • -
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • -
    -
    - The following are implemented in the old graphics engine: -
      -
    • - Line by line based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - Mosaic effects
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - Single and dual windowing routines
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - 16-bit graphics support
    • -
    • - Offset per tile mode (mode 2/vertical only)
    • -
    • - High res 512 horizontal resolution (missing in 16x16)
    • -
    -
    - Following are present in 16-bit graphics mode: -
      -
    • - Palette changing in the middle of a screen
    • -
    • - Screen addition (full and half)
    • -
    • - Screen subtraction (full)
    • -
    • - Fixed color addition/subtraction
    • -
    • - Window clipping for fixed color
    • -
    -
    - The following are implemented in the new graphics engine 16 bit: -
      -
    • - All of old graphics engine 16bit
    • -
    • - Combination of line by line and tile based graphics engine
    • -
    • - High resolution mode 7
    • -
    • - High resolution 16x16 tiles for mode 5
    • -
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • -
    -
    - The following are present in sound: -
      -
    • - 16bit digital stereo sound
    • -
    • - SPC700 Sound CPU
    • -
    • - DSP Sound Processor -
        -
      • - Echo effects
      • -
      • - FIR filter
      • -
      • - ADSR volume effects
      • -
      • - GAIN volume effects
      • -
      • - Noise effects
      • -
      • - Pitch modulation
      • -
      -
    • -
    -
    - The following are extra features emulated: -
      -
    • - Super NES Mouse support
    • -
    • - Super NES Super Scope support
    • -
    • - Nintendo Super System support (except the menu system)
    • -
    • - SuperFX support (still has a bug or 2 left)
    • -
    • - MultiTap (Multiplayer 5) support (4 players on a single computer, 5 players remote (ipx/modem))
    • -
    • - DSP-1 emulation
    • -
    • - DSP-2 emulation
    • -
    • - SA-1 emulation (not complete)
    • -
    • - OBC1 emulation (still may have bugs)
    • -
    • - S-DD1 emulation
    • -
    • - BS Sattelaview emulation (not complete)
    • -
    • - ST010 emulation
    • -
    • - Sufami Turbo support (not complete)
    • -
    • - SD Gundam G-Next and Same Game expansion pack support
    • -
    • - SPC7110 emulation (via decompression packs)
    • -
    -
    - The following are the features present in ZSNES: -
      -
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • -
    • - Movie recording
    • -
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • -
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • -
    • - Configuration file support (zsnes.cfg)
    • -
    • - 5 player support w/ joystick and gamepad support
    • -
    • - Netplay
    • -
    -
    - The following features are missing: -
      -
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • -
    • - Some modes in offset per tile mode
    • -
    • - Some direct color modes (haven't seen any game that uses them yet)
    • -
    • - True SPC7110 decompression
    • -
    -
    - What will not run (or not play properly): -
      -
    • - Some SuperFX games
    • -
    • - Some BS Sattelaview games
    • -
    • - Games with unknown co-processors
    • -
    • - Games that don't have a valid header
    • -
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • -
    • - Games that require special timing
    • -
    - -
    - ZSNES Default Keys -
    - Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and ESC:
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Disable Backgrounds 1,2,3,4 = 1,2,3,4
    Disable Sprites = 5
    Panic Key (enable all) = 6
    Enable SNES Mouse/SuperScope = 7
    Enable New Graphics Engine = 8
    Disable Windowing = 9
    Disable Offset Mode = 0
    Fast Forward Key = ~
    PopUp Extra Menu = F1
    Save State = F2
    Switch State = F3
    Load State = F4
    Disable Sound Channel = F5 - F12
    Quit = ESC
    -
    - Here are the default keys for the game play (unless modified through the GUI):
    -
    - Player 1:
    - - - - - - - - - - - - - - - - - -
    Up,Down,Left,Right : Cursor Keys
    A,B,X,Y : X,Z,S,A
    L,R : D,C
    Start, Select : Enter, RShift
    - -
    - F1 Menu -
    -
      -
    • Save Snapshot - Saves a snapshot as either .BMP (16-bit) or .PNG (32-bit ARGB).
    • -
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • -
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • -
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • -
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • -
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • -
    • Move This Window - Moves the F1 menu to a different location.
    • -
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are BMP (bitmap) and PNG (Portable Network Graphic).
    • -
    - -
    - Configuration File -
    - Almost everything in zsnes.cfg should now be editable through the GUI. An exception is the save directory, which is required in order to access games from a read-only medium (such as a CD).
    - -
    - Cheat Codes -
    - Currently, ZSNES supports Game Genie, Pro Action Replay and GoldFinger codes.
    -
    - Here are the steps to get the codes working :
    -
    - 1.) Load the ROM which you want to patch.
    - 2.) Exit to the GUI, enter the code of your choice in the cheat menu.
    - 3.) After that, you may have to RESET the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.
    -
    - NOTE : Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    - -
    - Extra Features -
    - To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    - To enable SNES Super Scope, press 7 three times.
    - To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    -
    - Here are the controls for the Super Scope :
    -
    - Fire = Left mouse button
    - Cursor Mode Button = Right mouse button
    - Pause = Backspace key on keyboard
    - Enable/Disable Autofire = =/+ key on keyboard
    -
    - ZSNES auto-detects the SFX emulation from the header and enables it when found. Also, take note that the SFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    -
    - Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    -
    - IPS patcher:
    - Rename your .IPS file to the ROM filename with the .IPS extension (eg. If your ROM is SD3.SMC and your ips is SD3V05.IPS, rename SD3V05.IPS to SD3.IPS) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .IPS files that are inside .ZIP files.
    - -
    - Bugs -
    - - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    - - Games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    - - The Sound DSP chip still has its bugs (not many though). Most noticeably, no one knows the exact timing of the SPC700 chip.
    - -
    - Contact Information -
    - The ZSNES homepage is located at : http://www.zsnes.com
    -
    - If you have any questions about ZSNES, and you have read through this whole help file to make sure the answer isn't here, then you can post your question at the ZSNES Forums. -

    - Remember - This board should be mainly used for ZSNES related discussion. - ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    -
    - If you wish to contact the authors, you may contact them through:

    - pagefault AT zsnes DOT com
    - _demo_ AT zsnes DOT com
    - n-a-c-h AT users.sf DOT net

    - Remember - No ROM requests please! And don't send any files without permission!
    -
    - Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    - -
    - Credits -
    - ZSNES DOS uses DJGPP (GCC) NASM .98.39, GNU Make, and UPX to compile, link, compress, and execute. Thanks for the work put into these programs.
    -
    - Special thanks to wnelson! Without him, ZSNES would have never existed!
    - Also to Y0SHi for his excellent SNES docs, his help, and his excellent support!
    -
      -
    • Also Thanks to:
    • -
    • - The_Teach of Snes9x for some great info and the nice chats!
    • -
    • - Trepalium of Snes9x for some great info and help!
    • -
    • - Gary of Snes9x and Steve Snake of KGen for being the source of info for sound decompression!
    • -
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • -
    • - MrGrim for his great support!
    • -
    • - Crono for info on Sound Blaster Programming, Surround Sound, Sound Interpolation, and other sound stuff!
    • -
    • - Aquis for the ZSNES logo!
    • -
    • - Alucard for helping us with an issue in the 65816!
    • -
    • - Vertigo for making a compatibility list!
    • -
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • -
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • -
    • - Chris Hickman for redesigning the ZSNES web page!
    • -
    • - CSoft for hosting our web page!
    • -
    • - Marius Fodor for the code for VSync, Sidewinder, Gamepad Pro, and some optimisation info!
    • -
    • - Sardu for some great info and help!
    • -
    • - Lord ESNES for some great help!
    • -
    • - Robert Grubbs for the sidewinder info!
    • -
    • - Nerlaska for some useful info on optimizing and also for some help!
    • -
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • -
    • - DarkForce for some great help!
    • -
    • - Pharos for some keyboard coding help!
    • -
    • - Ivar and Gary of the Snes9x team for all the great help which includes their superfx info and code, DSP1 info, info on interleave formats (hirom and superfx), offset per tile mode, FIR filter, some spc700 and hdma bugs!
    • -
    • - WolfWings ShadowFlight for help on several issues of nasm!
    • -
    • - Wildfire for some help!
    • -
    • - A CoolMan for the algorithm for EAGLE!
    • -
    • - Neill Corlett for some info on the .IPS format and also helping out a lot on improving the sound engine!
    • -
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle Source Codes!
    • -
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • -
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • -
    • - Kode54 for the low pass filter routines!
    • -
    • - Andy Goth for some help on the design of the key combination engine!
    • -
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • -
    • - All those people who helped us by either sending us docs, helping us, supporting us, and reporting bugs!

    • -
    • Special Thanks to:
    • -
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • -
    • - And also to all those whom we forgot!

    • -
    • Special Thanks to all our beta testers for being a great help!
    • -
    • Info on 256x256x256 scanlines mode is from the MAME source. Thanks to those behind MAME!
    • -
    - Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, Nlke, SNEeSe, and SNEMul! And also good luck to the makers of TheSE!
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - DOS v1.41 - Readme + + + + + + + + +
    + + + +
    +

    Readme

    + +
    + ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    +
    + Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    + +
    + +

    What's New

    + +
    +
      +
    • DOS Only:
    • +
    • - Fixed a number of keyboard shortcuts in the GUI. [ipher] +
    +
    +
      +
    • All Ports:
    • +
    • - Improved accuracy of base rates used for ADSR, GAIN, noise, and echo emulation. [TRAC]
    • +
    • - Fixed GUI escape stack corruption if .srm file could not be written to. [Nach]
    • +
    • - Stereo settings now obey config file. [Nach]
    • +
    • - Fixed framerate loading from config file. [ipher]
    • +
    • - ZSNES no longer hacks itself in order to access variables; this eliminates a few issues we had. [Nach]
    • +
    • - Source code cleanup. [Nach, ipher]
    • +
    • - Makefile overhaul; ZSNES can now be cross compiled. [Nach, ipher, malcster, SamB]
    • +
    • - Fixed some invalid memory reads. [Nach]
    • +
    • - Ported config file creation/loading to C. [MKendora, Nach]
    • +
    • - Percent of execution now takes h-blank values into consideration. [pagefault] +
    • - Fixed Winter Gold FX crash. [Nach]
    • +
    • - Filtered GUI is now enabled by default. [Nach]
    • +
    • - Save location can now be edited in the GUI. [Nach]
    • +
    • - Added option to enable/disable auto IPS patching. [Nach, ipher]
    • +
    • - Saving last ROM info to rominfo.txt can now be turned off. [ipher, Nach]
    • +
    • - Organized options menu, and split off save related options into its own menu. [ipher]
    • +
    • - Moved Super System DIP switches to the chip configuration menu. [ipher]
    • +
    • - More boxes have borders now! [ipher] +
    • - New one-time user reminder text. [grinvader]
    • +
    • - Updated about box. [Nach, ipher]
    • +
    • - Overhauled toaster support. [Nach] +
    + +
    + +

    Previous Updates

    + +
    + v1.40 +
      +
    • DOS Only:
    • +
    • - Fixed cublic spline interpolation. It should actually save the option now! [pagefault]
    • +
    • - Fixed other various DOS sound bugs. [Nach, pagefault]
    • +
    • - Fixed a frameskipping bug. [pagefault]
    • +
    +
    +
      +
    • All Ports:
    • +
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes, and a slew of SRAM fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • +
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, and changed much hard coding to variables. Fixed more SRAM bugs than we can count. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2; it now loads and plays great without the Dejap patch. [Nach]
    • +
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • +
    • - Removed many, many hacks. [Nach, pagefault]
    • +
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • +
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • +
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • +
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • +
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • +
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • +
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • +
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • +
    • - Fixed a small bug in SPC saving. [pagefault]
    • +
    • - Fixed issues with config file saving. [pagefault, Nach]
    • +
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • +
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • +
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • +
    • - Fixed rewind when using commandline filename. [StatMat]
    • +
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • +
    • - Removed ROM info that appears when loading via command line. [Nach]
    • +
    • - Added a command-line savestate fix. [StatMat]
    • +
    • - Fixed an annoying savestate bug. [pagefault]
    • +
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • +
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • +
    • - Lufia 2 problems are now fixed. [pagefault]
    • +
    • - Emerald Dragon now works - again. [pagefault]
    • +
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • +
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • +
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • +
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • +
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • +
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • +
    • - Added support for many more ROM extensions. [Nach]
    • +
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • +
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • +
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • +
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • +
    • - Added better handling of bad files. [_Demo_, Nach]
    • +
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • +
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • +
    • - Fixed variable types in many locations; ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • +
    • - Made ZSNES more HTPC friendly. [pagefault]
    • +
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • +
    • - Unicode support partially supported. Will complete later. [pagefault]
    • +
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • +
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • +
    +
    + We have also greatly improved support for special hardware in ZSNES v1.40.
    + These require special mention:
    +
    +
      +
    • - SuperFX core updates:
      pagefault

    • +
    • - SA-1 core updates:
      pagefault

    • +
    • - C4 core updates:
      Research: anomie
      Main Code: Nach
      Special thanks to The Dumper and TRAC!

    • +
    • - DSP-1 core updates:
      Data Retrieval: pagefault, Overload, The Dumper
      Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
      Integration: MKendora, Nach
      Processing Code: pagefault, Nach

    • +
    • - DSP-2 emulation:
      Data Retrieval: Overload
      Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
      Main Code: kentaro-k.21
      Processing Code: pagefault, kentaro-k.21
      Special thanks to Lord Nightmare!

    • +
    • - S-DD1 emulation:
      Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
      Research: Andreas Naive
      Main Code: anomie
      Processing Code: _Demo_, Nach
      Special thanks to all the other developers and users who worked on this hard project!

    • +
    • - ST010 emulation:
      Data Retrieval: The Dumper, MKendora
      Main Code: The Dumper, Overload, Feather, Nach
      Processing Code: The Dumper
      Code Fixes: pagefault

    • +
    • - Sufami Turbo support (preliminary):
      Nach

    • +
    • - SD Gundam G-Next and Same Game expansion pack support:
      Nach
    • +
    + +
    + +

    Disclaimer

    + +
    + The ZSNES development team, including all developers and contributers, is in no way responsible for any damage caused by the use of this software. Please read the license for more details. In addition, ZSNES may not be distributed with ROM images.
    + +
    + +

    System Requirements

    + +
    +
      +
    • Somewhat Recommended System:
    • +
    • - 486/100 processor
    • +
    • - Min 14.5MB of RAM (or min 12.5MB free, which can only run 2MB rom images)
    • +
    • - VGA card
    • +
    • - Sound Blaster or 100% compatible
    • +
    • **You might need to disable SPC emulation for this system (go to Config-->Sound)** +
    +
    +
      +
    • Strongly Recommended System:
    • +
    • - Pentium processor (P133 or higher)
    • +
    • - 32MB of RAM (min 17.0MB free)
    • +
    • - SVGA card
    • +
    • - Sound Blaster 16 or 100% compatible
    • +
    +
    +
      +
    • Recommended System for 65536 (16bit) Color Mode:
    • +
    • - Fast Pentium processor (P166 or higher)
    • +
    • - 32MB of RAM (min 17.0MB free)
    • +
    • - SVGA card which supports 320x240x65536 or 640x480x65536 colors
    • +
    • - Sound Blaster 16 or 100% compatible
    • +
    +
    +
      +
    • Recommended System for SuperFX Support:
    • +
    • - Fast Pentium processor (P200 - P2-300 (depending on the game))
    • +
    • - 32MB of RAM (min 17.0MB free)
    • +
    • - VGA card
    • +
    • - Sound Blaster 16 or 100% compatible
    • +
    +
    +
      +
    • Recommended System for SA-1 Support (Mario RPG):
    • +
    • - Fast Pentium processor (P200 or higher)
    • +
    • - 32MB of RAM (min 17.0MB free)
    • +
    • - VGA card
    • +
    • - Sound Blaster 16 or 100% compatible
    • +
    +
    +
      +
    • *You need 17.0MB of RAM to run 48mbit (6 megabytes) ROMs.
    • +
    • *An FPU is required for DSP-1 emulation.
    • +
    +
    + +
    + +

    Things To Know

    + +
    +
      +
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • +
    • - If your Sidewinder support doesn't work, a quick way of getting it to is to fully disable the Windows driver from the Control Panel.
    • +
    • - For modem mode, if you don't have a 16550A UART compatible modem + (It will tell you when the modem initializes), chances are that both + sides will go out of sync.
    • +
    • - IPX support seems to randomly lose packets in certain network + configurations, which causes both sides to go out of sync.
    • +
    • - Transparency effects are only available in 65536 color mode.
    • +
    • - Using 320x240 resolution modes are faster than 640x480 modes. Use + 640x480 modes only if you can't run 320x240 modes or if you want the + added features of 640x480 modes.
    • +
    • - To view 512 resolutions properly, use 640x480 mode. Only a few games + use 512 resolution. One way to find out if a game has + that feature is to look for text that looks squished.
    • +
    • - In 640x480 resolution, the image is scaled so it will look like 320x240 + resolution. Only use 640x480 resolution if you want to use scanlines, + interpolation, or if 320x240 doesn't work.
    • +
    • - Several special chip emulation routines have unknown bugs to them.
    • +
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • +
    • - Screen Snapshot, Snapshot Format, and FPS Counter are available through a menu by pressing F1 during emulation.
    • +
    • - Screen Snapshot can save in PCX format (8bit color), bitmap format (65536 colors), or PNG format (32bit ARGB color).
    • +
    • - FPS Counter currently only works when auto frame rate is on.
    • +
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • +
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • +
    • - Certain video cards/monitors cannot support ModeQ (default resolution). If your video card/monitor doesn't support it, run ZSNES with -v 0. If that doesn't work, use -v 2 (vesa 2 required).
    • +
    • - 16bit mode in ZSNES requires a Scitech Display Doctor (v5.3+) to provide + high color, low resolution modes. If your video card already supports lo-res and hi-color, don't worry about getting this driver.
    • +
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • +
    • - Vsync won't run well unless you specify a frame skip (eg. -f 0). But this feature is highly recommended if you have at least a Pentium II.
    • +
    • - SNES Mouse support is still missing some features, such as speed settings.
    • +
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • +
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • +
    + +
    + +

    Current Progress

    + +
    +
      +
    • The following are implemented:
    • +
    • - Complete 65816 instruction set
    • +
    • - SRAM support
    • +
    • - LoROM and HiROM support
    • +
    • - SlowROM and FastROM support
    • +
    • - Full DMA support
    • +
    • - HIRQ/VIRQ/NMI Interrupts
    • +
    • - Support for most SNES file formats
    • +
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • +
    • - Interleaved format support
    • +
    • - PAL/NTSC timing support
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 8bit:
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - Mosaic effects
    • +
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • +
    • - High res 512 resolution and 448/478 vertical resolution
    • +
    • - Windowing effects
    • +
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • +
    +
    +
      +
    • The following are implemented in the old graphics engine:
    • +
    • - Line by line based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - Mosaic effects
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - Single and dual windowing routines
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - 16bit graphics support
    • +
    • - Offset per tile mode (mode 2/vertical only)
    • +
    • - High res 512 horizontal resolution (missing in 16x16)
    • +
    +
    +
      +
    • Following are present in 16bit graphics mode:
    • +
    • - Palette changing in the middle of a screen
    • +
    • - Screen addition (full and half)
    • +
    • - Screen subtraction (full)
    • +
    • - Fixed color addition/subtraction
    • +
    • - Window clipping for fixed color
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 16bit:
    • +
    • - All of old graphics engine 16bit
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - High resolution mode 7
    • +
    • - High resolution 16x16 tiles for mode 5
    • +
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • +
    +
    +
      +
    • The following are present in sound:
    • +
    • - 16bit digital stereo sound
    • +
    • - SPC700 Sound CPU
    • +
    • - DSP Sound Processor +
        +
      • - Echo effects
      • +
      • - FIR filter
      • +
      • - ADSR volume effects
      • +
      • - GAIN volume effects
      • +
      • - Noise effects
      • +
      • - Pitch modulation
      • +
      +
    • +
    +
    +
      +
    • The following are extra features emulated:
    • +
    • - Super NES Mouse
    • +
    • - Super NES Super Scope
    • +
    • - Nintendo Super System (except the menu system)
    • +
    • - SuperFX chip (still has a bug or 2 left)
    • +
    • - MultiTap (5 player support)
    • +
    • - DSP-1 and DSP-2 chips
    • +
    • - SA-1 chip (not complete)
    • +
    • - OBC1 chip (still may have bugs)
    • +
    • - S-DD1 chip
    • +
    • - BS Sattelaview (not complete)
    • +
    • - Seta 10 (ST010) chip
    • +
    • - Sufami Turbo (not complete)
    • +
    • - SD Gundam G-Next and Same Game expansion packs
    • +
    • - SPC7110 chip (via decompression packs)
    • +
    +
    +
      +
    • The following are the features present in ZSNES:
    • +
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • +
    • - Movie recording
    • +
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • +
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • +
    • - Configuration file support (zsnes.cfg)
    • +
    • - 5 player support w/ joystick and gamepad support
    • +
    • - Netplay
    • +
    +
    +
      +
    • The following features are missing:
    • +
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • +
    • - Some modes in offset per tile mode
    • +
    • - Some direct color modes (haven't seen any game that uses them yet)
    • +
    • - True SPC7110 decompression
    • +
    +
    +
      +
    • What will not run (or not play properly):
    • +
    • - Some SuperFX games
    • +
    • - Some BS Sattelaview games
    • +
    • - Games with unknown co-processors
    • +
    • - Games that don't have a valid header
    • +
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • +
    • - Games that require special timing
    • +
    + +
    + +

    ZSNES Default Keys

    + +
    +
      +
    • Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and Esc:
    • +
    • Disable Backgrounds 1, 2, 3, and 4 -- 1, 2, 3, 4
    • +
    • Disable Sprites -- 5
    • +
    • Enable All Backgrounds and Sprites -- 6
    • +
    • Enable SNES Mouse or Super Scope -- 7
    • +
    • Enable New Graphics Engine -- 8
    • +
    • Disable Windowing -- 9
    • +
    • Disable Offset Mode -- 0
    • +
    • Fast Forward Key -- ~
    • +
    • F1 Menu -- F1
    • +
    • Save State -- F2
    • +
    • Switch State -- F3
    • +
    • Load State -- F4
    • +
    • Disable Sound Channel -- F5 - F12
    • +
    • Quit -- Esc
    • +
    +
    +
      +
    • Here are the default keys for the game play (unless modified through the GUI):
    • +
    • Player 1: +
        +
      • Directions Up, Down, Left, and Right -- Cursor Keys on Numerical Pad (You can also use the non-numerical pad, but numerical pad is strongly recommended)
      • +
      • Buttons A, B, X, and Y -- Keys Home, End, Insert, and Delete
      • +
      • Buttons L and R -- Keys Page Up and Page Down
      • +
      • Buttons Start and Select -- Enter and Right Shift
      • +
      +
    • Player 2: +
        +
      • Directions Up, Down, Left, and Right -- Keys K, M, N, and ,
      • +
      • Buttons A, B, X, and Y -- Keys D, X, S, Z
      • +
      • Buttons L and R -- Keys F and C
      • +
      • Buttons Start and Select -- Left Ctrl and Left Alt
      • +
      +
      +
    • To run the emulator, just type ZSNES .
    • +
    • To run it with sound, type ZSNES -s .
    • +
    • To run it in 16-bit mode (VESA2 w/ video card that supports 320x240x65536 + required), type ZSNES -v 3 ; with sound, type ZSNES -v 3 -s .
    • + +
    + +

    F1 Menu

    + +
    + +
      +
    • Save Snapshot - Saves a snapshot as either .pcx (8bit), .bmp (16bit), or .png (32bit ARGB).
    • +
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • +
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • +
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • +
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • +
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • +
    • Move This Window - Moves the F1 menu to a different location.
    • +
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are PCX (available only in 8bit color depth mode), BMP (bitmap) and PNG (Portable Network Graphic).
    • +
    + +
    + +

    Configuration File

    + +
    + Almost everything in zsnes.cfg should now be editable through the GUI. The GUI also has a few more options that are not found in the configuration file, such as more graphic pack directory configurations.
    + +
    + +

    Cheat Codes

    + +
    + Currently, ZSNES supports Game Genie, Pro Action Replay, and GoldFinger codes.
    +
    +
      +
    • Here are the steps to get the codes working:
    • +
    • 1.) Load the ROM which you want to patch.
    • +
    • 2.) Exit to the GUI and enter the code of your choice in the cheat menu.
    • +
    • 3.) After that, you may have to reset the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.

    • +
    • NOTE: Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    • +
    + +
    + +

    Extra Features

    + +
    + To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    + To enable SNES Super Scope, press 7 three times.
    + To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    +
    +
      +
    • Here are the controls for the Super Scope:
    • +
    • Fire -- Left mouse button
    • +
    • Cursor Mode Button -- Right mouse button
    • +
    • Pause -- Backspace key on keyboard
    • +
    • Enable/Disable Autofire -- =/+ key on keyboard
    • +
    +
    + ZSNES auto-detects the SuperFX emulation from the header and enables it when found. Also, take note that the SuperFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    +
    + Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    +
    + IPS patcher:
    + Rename your .ips file to the ROM filename with the .ips extension (eg. If your ROM is SD3.smc and your ips is SD3V05.ips, rename SD3V05.ips to SD3.ips) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .ips files that are inside .zip files. You can disable IPS patching by going to Config-->Options and unchecking Enable Auto-Patch.
    + +
    + +

    Bugs

    + +
    +
      +
    • - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    • +
    • - Some games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    • +
    • - The Sound DSP chip still has its bugs (not many though). Additionally, no one knows the exact timing of the SPC700 chip.
    • +
    + +
    + +

    The Debugger

    + +
    + Note: The debugger is disabled when you don't enter ZSNES with a -d.
    +
    +
      +
    • Here are the keys:
    • +
    • Enable/Disable SPC700 display -- 1
    • +
    • Enable/Disable 65816 display -- 2
    • +
    • Trace (in 65816 opcodes) -- T
    • +
    • 65816 break point -- B
    • +
    • SPC break point -- S
    • +
    • Clear counter -- C
    • +
    • 65816 modify -- M
    • +
    • SPC modify -- A
    • +
    • Debug dump (SPC/DSPRAM dump only) -- D
    • +
    • Break at signal (used only by the programmers) -- W
    • +
    • Exit debugger and return to game -- F1
    • +
    • Save state -- F2
    • +
    • Load state -- F4
    • +
    • Exit entire program -- Esc
    • +
    + +
    + +

    Error Codes

    + +
    +
      +
    • Unable to Initialize VESA 2:
    • +
    • VBE not detected - ZSNES failed to detect any VBE interrupts (Your video card doesn't support VESA).
    • +
    • VESA not detected - ZSNES failed to detect any VESA extensions (Your video card doesn't support VESA).
    • +
    • VESA 2.0 or greater required - Your video card supports VESA, but it has an older version. You may want to use SDD to upgrade your VESA driver. If you have an S3 video card, however, you can get a VESA 2 driver from here.
    • +
    • VESA 2 mode does not work on your video card/driver - Meaning that the resolution you chose does not exist in the supported resolutions of your video card. Choose a different resolution or upgrade with SDD, which can sometimes help increase the number of resolutions supported.
    • +
    • Unable to initialize video mode - A VESA 2.0 driver is found, but the video mode failed to start. There could possibly be an error on the video card setting or it may be a defective hardware.
    • +
    • Linear frame buffer not detected - Meaning that your video card does not support linear frame buffering, which is required for the ZSNES VESA 2 routines.
    • +
    • Modem Mode:
    • +
    • Modem response timeout - If this appears, then either your modem isn't configured properly (Even though your COM port is set up properly, chances are your IRQ isn't), some other application is using the modem (such as an internet connection), you don't have a DOS compatible modem, or your baud rate isn't set up to the speed of your modem (this isn't required for all modems, but for some, it is).
    • +
    • Cannot init driver - This means that you have the fossil driver option enabled, but no fossil drivers are loaded.
    • +
    • Carrier detected (when you're not connected) - This probably means that you have set your COM Port/IRQ incorrectly. This also might mean that you either don't have a DOS compatible modem, or the modem is being used somewhere else (such as with an internet account).
    • +
    • After Connection (Modem and IPX Mode):
    • +
    • Incompatible version - This means that both sides are using different versions of ZSNES. Both sides must use the same version in order for remote play to proceed.
    • +
    • Invalid sound setting - This means that one side has sound disabled while the other has it enabled. Both sides have to either have sound disabled or sound enabled, because the game timings of both settings are different.
    • +
    + +
    + +

    Contact Information

    + +
    + The ZSNES homepage is located at : http://www.zsnes.com
    +
    + If you have any questions about ZSNES, and you have read through this whole documentation to make sure the answer isn't here, then you can post your question at the ZSNES board. +

    + Remember - This board should be mainly used for ZSNES related discussion.
    + ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    +
    + If you wish to contact the authors, you may contact them through:

    + pagefault AT zsnes DOT com
    + _demo_ AT zsnes DOT com
    + n-a-c-h AT users.sf DOT net

    + Remember - No ROM requests please! And don't send any files without permission!
    +
    + Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    + +
    + +

    Credits

    + +
    + ZSNES DOS uses NASM, DJGPP, WDOSX, and CWSDPMI (source codes & binary updates located at http://www.dbit.com/pub/cwsdpmi) as the compilers and DOS extenders. Thanks to those who produced these fine programs!
    +
    +
      +
    • Special Thanks to:
    • +
    • - wnelson; without him, ZSNES would have never existed!
    • +
    • - Y0SHi for for his excellent SNES docs, his help, and his excellent support!
    • +
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • +
    • - All of our beta testers for being a great help!
    • +
    • - The MAME team; info on 256x256x256 scanlines mode is from the MAME source!
    • +
    +
    +
      +
    • Also Thanks to:
    • +
    • - The_Teach of Snes9x for some great info and the nice chats!
    • +
    • - Trepalium of Snes9x for some great info and help!
    • +
    • - Gary of Snes9x and Steve Snake of Kega for being the source of info for sound decompression!
    • +
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • +
    • - MrGrim for his great support!
    • +
    • - Crono for info on Sound Blaster programming, surround sound, sound interpolation, and other sound stuff!
    • +
    • - Aquis for the ZSNES logo!
    • +
    • - Alucard for helping us with an issue in the 65816!
    • +
    • - Vertigo for making a compatibility list!
    • +
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • +
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • +
    • - Chris Hickman for redesigning the ZSNES web page!
    • +
    • - CSoft for hosting our web page!
    • +
    • - Marius Fodor for the code for Vsync, Sidewinder, Gamepad Pro, and some optimization info!
    • +
    • - Sardu for some great info and help!
    • +
    • - Lord ESNES for some great help!
    • +
    • - Robert Grubbs for the Sidewinder info!
    • +
    • - Nerlaska for some useful info on optimizing and also for some help!
    • +
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • +
    • - DarkForce for some great help!
    • +
    • - Pharos for some keyboard coding help!
    • +
    • - Ivar and Gary of the Snes9x team for all their great help, which includes their SuperFX info and code, DSP-1 info, info on interleave formats (HiROM and SuperFX), offset per tile mode, FIR filter, and some insights on SPC700 and HDMA bugs!
    • +
    • - WolfWings ShadowFlight for help on several issues of NASM!
    • +
    • - Wildfire for some help!
    • +
    • - A CoolMan for the algorithm for EAGLE!
    • +
    • - Neill Corlett for some info on the .ips format and also helping out a lot on improving the sound engine!
    • +
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle source codes!
    • +
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • +
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • +
    • - kode54 for the low pass filter routines!
    • +
    • - Andy Goth for some help on the design of the key combination engine!
    • +
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • +
    • - ipher for his contributions and for compiling and releasing CVS builds!
    • +
    • - grinvader for his dedication and for contributing some small code changes!
    • +
    • - All those people who contributed by either updating the docs, helping us, supporting us, or reporting bugs!
    • +
    +
    + Also thanks to all those whom we forgot!
    +
    + Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, SNEeSe, and Super Sleuth!
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/DOS/style.css b/zsnes/docs/DOS/style.css index c00ac197..d4b1048b 100644 --- a/zsnes/docs/DOS/style.css +++ b/zsnes/docs/DOS/style.css @@ -1,141 +1,140 @@ -body{ - background-color:#ffffff; - font:normal 11px Verdana, Sans-Serif; - color:#000000; - margin:0px; -} - -img { - border-width:0px; -} - -.PHeader{ - background-color:#C8CFD8; - color:#000000; - padding:3px; -} -.PSubHeader{ - background-color:#A4A9B0; - color:#000000; - padding:3px; - font:bold 11px Verdana, Sans-Serif; - text-align:center; -} - -a:link, a:active, a:visited{ - background-color:transparent; - text-decoration:underline; - color:#203040; -} -a:hover{ - background-color:#d0d0d0; - text-decoration:underline; - color:#506070; -} - -.MMenu{ - width:200px; - padding:10px; - padding-top:0px; - padding-right:0px; - vertical-align:top; -} -.MBody{ - padding:10px; - padding-top:0px; - vertical-align:top; -} - -.TBox{ - background-color:#C8CFD8; - border:solid 1px #404040; - color:#000000; -} -.TBoxHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding:0px; - padding-left:4px; - background-image: url( '../images/corner.png' ); - background-position:top right; - background-repeat: no-repeat; - height:25px; -} -.TBoxSubHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding-left: 5px; -} -.TBoxText{ - background-color:#C8CFD8; - color:#000000; - font:normal 13px Verdana, Sans-Serif; - padding:5px; -} -.TBoxFoot{ - background-color:#A4A9B0; - color:#000000; - font:bold 12px Verdana, Sans-Serif; - padding:4px; -} - -.FListing{ - background-color:#000000; - color:#ffffff; -} -.FListing td{ - background-color:#e0e0e0; - color:#000000; - width: 30%; - text-align:center; -} -.FListing td.FLabel{ - background-color:#000000; - color:#ffffff; - font:bold 11px Verdana, Sans-Serif; - width: 10%; - text-align:left; -} -.FListing th{ - background-color:#405060; - color:#ffffff; - text-align:center; -} - .small{ - font-size:11px; -} -.big{ - font-size:16px; -} - -p{ - text-indent: 12px; -} - -input, textarea, select { - background-color:#ffffff; - color:#000000; - border:solid 1px #000000; - font:normal 12px Verdana, Sans-Serif; - padding:3px; -} - -.indent_list{ - margin-top: 0px; - margin-bottom: 0px; - list-style-type:none; - padding-left:24px; -} - -.indent_list ul, li{ - list-style-type:none; - margin-left: -12px; - /*padding-left: -12px;*/ - text-indent: -12px; -} - -abbr { -cursor: help; +a:link, a:active, a:visited { + background-color: transparent; + text-decoration: underline; + color: #203040; +} +a:hover { + background-color: #D0D0D0; + text-decoration: underline; + color: #506070; +} + +#zsnes-documentation { + margin: 0px; + background-color: #FFFFFF; + font: normal 11px Verdana, Sans-Serif; +} + +#header { + padding: 3px; + background-color: #C8CFD8; +} +#header h1 { + float: left; + margin: 0px; +} +#header h2 { + padding: 83px 0px 0px 0px; + margin: 0px; +} +#header_oslogo { + float: right; +} + +#header_nav { + background-color: #A4A9B0; + padding: 3px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; + border-bottom: solid 1px #404040; +} + +#navigation { + float: left; + width: 192px; + margin: 10px; + padding: 1px 1px 3px 1px; + background-color: #C8CFD8; + border: solid 1px #404040; + font: Normal 13px Verdana, Sans-Serif; +} +#navigation h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url( 'images/corner.png' ); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#navigation ul { + list-style-type: none; + margin: 0px 0px 0px -20px; + padding: 0px 4px 0px 41px; +} + +#content { + margin: 10px 10px 10px 216px; + padding: 1px; + background-color: #C8CFD8; + border: solid 1px #404040; +} +#content h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url('images/corner.png'); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#content h2 { + background-color: #A4A9B0; + margin: 0px; + padding: 3px; + font: Bold 14px Arial, Sans-Serif; +} +.content_body { + margin: 0px; + padding: 4px; + font: Normal 13px Verdana, Sans-Serif; +} +.content_body ul { + list-style-type: none; + margin: 0px 0px 0px -24px; + text-indent: -12px; + padding: 0px 4px 0px 52px; +} + +#footer { + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; +} + +#version { + margin-top: 8px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-size: 8px; + color: #BBBBBB; +} + +.list_head { + padding: 3px; + margin: 0px 0px 0px -20px; + font-weight: bold; +} + +.faq_question { + margin: 0px 0px 0px -16px; + font-weight: bold; +} + +.faq_answer { + margin: 0px 0px 0px -16px; +} + +.previous_version_number { + font-weight: bold; + text-decoration: underline; } \ No newline at end of file diff --git a/zsnes/docs/Linux/about.htm b/zsnes/docs/Linux/about.htm index 4d51676c..0517bbbc 100644 --- a/zsnes/docs/Linux/about.htm +++ b/zsnes/docs/Linux/about.htm @@ -1,107 +1,89 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - About - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - -
    - About -
    - The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
    -
    - Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - About + + + + + + + + + + + + +
    +

    About

    + +
    + The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
    +
    + Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/credits.htm b/zsnes/docs/Linux/credits.htm index 2d0e958d..1b2372d1 100644 --- a/zsnes/docs/Linux/credits.htm +++ b/zsnes/docs/Linux/credits.htm @@ -1,163 +1,135 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - Credits - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Credits -
    - Developers -
    - zsKnight
    - _Demo_
    - pharos
    - pagefault
    - Nach
    -
    - Contributers -
    - StatMat
    - ipher
    - theoddone33
    - Siloh
    -
    - Documentation Writers/Contributers -
    - RichardC
    - Nach
    - LDAWG
    - kevman
    - IceFox
    - Noxious Ninja
    - Clements
    -
    - Special Thanks -
    - Radio
    -
    - Donations -
    - ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - Credits + + + + + + + + + + + + +
    +

    Credits

    + +
    +
    + +

    Developers

    + +
    + zsKnight
    + _Demo_
    + Pharos
    + pagefault
    + Nach
    +
    + +

    Contributers

    + +
    + StatMat
    + ipher
    + theoddone33
    + Siloh
    + Jonas Quinn
    + TRAC
    + Diablo-D3
    + Overload
    + zinx
    +
    + +

    Documentation Writers/Contributers

    + +
    + RichardC
    + Nach
    + LDAWG
    + kevman
    + IceFox
    + Noxious Ninja
    + Clements
    + Jonas Quinn
    +
    + +

    Special Thanks

    + +
    + Radio
    +
    + +

    Donations

    + +
    + ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/faq.htm b/zsnes/docs/Linux/faq.htm index 5f807cf6..7db4b369 100644 --- a/zsnes/docs/Linux/faq.htm +++ b/zsnes/docs/Linux/faq.htm @@ -1,105 +1,87 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - Frequently Asked Questions - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - -
    - FAQ -
    - Coming soon... -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - FAQ + + + + + + + + + + + + +
    +

    Frequently Asked Questions (FAQ)

    + +
    + Coming soon... +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/gui.htm b/zsnes/docs/Linux/gui.htm index 6b04cc07..d702c1f0 100644 --- a/zsnes/docs/Linux/gui.htm +++ b/zsnes/docs/Linux/gui.htm @@ -1,609 +1,565 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - GUI - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - GUI -
    - Note : If any window exists in the GUI field, pressing ESC always closes the top-most window.
    - Note : Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    -
    - Notes on the filename box where you can manually type in the filename:
    - - Typing text into the box will automatically seek to the closest matching filename in the box where the file selection cursor is located.
    - - When you press enter with text in the box without any '\' or ':' in the filename, ZSNES will first look for a directory matching the text and will then change its directory if one is found. Otherwise, it will load the current file or directory highlighted by the selection cursor.
    - - You can type in the full filename or directory including path (eg. d:\games\mario.smc) or the drive name (eg. d:).
    - -
    - Game Menu -
    - Game Menu
    -
      -
    • Load: -
        -
      • Perform: Load File and Run
      • -
      • Usage: -
          -
        • Loading a File: -
            -
          • You can move through the list using either the mouse or the keyboard. The keys for the keyboard are: -
              -
            • Up/Down - Move Up/Down through the list
            • -
            • Left/Right - Switch between the File and Directory Window
            • -
            • PageUp/PageDown/Home/End - Move through the list in larger increments
            • -
            • A .. Z, \, : - Enters filename/directory into the load box
            • -
            • Enter - Load file or change directory (depending on which window you are in)
            • -
            -
          • -
          -
        • -
        • Show all Extensions: -
            -
          • This will force the GUI to show all of the file extensions instead of the default (.SMC,.SFC,...).
          • -
          -
        • -
        • Force: -
            -
          • Make ZSNES treat a ROM as NTSC or PAL region format, as well as LoROM and HiROM.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Run: -
        -
      • Perform: Runs the game
      • -
      -
      -
    • -
    • Reset: -
        -
      • Perform: Resets the game, but asks user for confirmation first.
      • -
      -
      -
    • -
    • Save State: -
        -
      • Perform: Saves the state (equivalent to default F2), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Load State: -
        -
      • Perform: Loads the state (equivalent to default F4), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Pick State: -
        -
      • Perform: Allows user to select the state position to use (equivalent to default F3).
      • -
      -
      -
    • -
    • Quit: -
        -
      • Perform: Quits ZSNES
      • -
      -
    • -
    - -
    - Quick Menu -
    - Quick Menu
    -
      -
    • Perform: -
        -
      • Allows the user to quickly select the last 10 games loaded off the GUI. Also allows the user to freeze/clear the list.
      • -
      -
      -
    • -
    • Tip: -
        -
      • You can create a favorites list by first clearing the list, then loading up all the games (last game loaded will be at the top), and last turning freeze on.
      • -
      -
    • -
    - -
    - Config Menu -
    - Config Menu
    -
      -
    • Input #1-#5: -
        -
      • Perform: Allows user to select the input device and control keys for each player.
      • -
      • Usage: -
          -
        • Selecting an Input Device: -
            -
          • Using your mouse, move through the list of input devices until the device of your choice is highlighted. From there, click on SET and the input device you selected should appear after CDV: (CDV = Current Device).
          • -
          -
        • -
        • Changing default keys: -
            -
          • Click on the key which you want to change by using your mouse and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the game key.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Options: -
        -
      • Perform: Allows the user to select some in-game options.
      • -
      • Usage: -
          -
        • Auto Frame Rate - enables auto frame rate.
        • -
        • Max Frame Skip - Shown only when auto frame rate is enabled, this sets the maximum allowable frame skip in auto frame rate mode.
        • -
        • Frame Rate - Sets the constant frame skip value used when a game plays. This is only shown when auto frame rate is disabled.
        • -
        • New Gfx Engine - Enables/Disables the new graphics engine in 256 color modes or 320x240x65536 mode.
        • -
        • Auto Increment Save Slot - When enabled, the save slot will automatically move to the next slot after you save a state.
        • -
        • MMX Support - Enables MMX Copying routines for a slight speed increase (MMX processors only).
        • -
        • Use Pl3/4 as Pl1/2 - Allows the user to use 2 devices for 1 player, such as the keyboard and the joystick. (set keyboard as input device 1 and joystick as input device 3). This, however, disables multitap support.
        • -
        • FPS at Program Start - Checking this will make the FPS appear whenever you start ZSNES.
        • -
        • Use 30Hz for Turbo - When activated, Turbo will change at 30hz NTSC or 25hz PAL. Otherwise, Turbo will change at 60hz NTSC or 50hz PAL
        • -
        • Enable Game Clock - Enabling this will show the system clock on-screen.
        • -
        • Toggled Fast Fwd/Slowdown - Checking this will change the way how the fast forward button functions. Having it checked will cause it to act as a switch and having it unchecked will cause it to act as a push button.
        • -
        • SRAM Check+Save - This will enable automatic save RAM write detection and save the SRAM (.srm) to disk approximately 10 seconds after.
        • -
        • Old Gfx Mode 2 - This will enable the Old Gfx Engine Mode 2, which fixes many transparency bugs that currently plagues ZSNES in the current engine. However, it also creates some new ones. This mode can be slower at times so it's recommended that you only turn it on when you need it.
        • -
        • Start at Latest Save - Checking this will automatically set the save state pointer (F3 Menu) to the most recently saved location whenever you load a ROM image.
        • -
        • Auto State Save/Load - Enabling this will allow ZSNES to automatically re-load the state whenever you return back to the game after a proper exit.
        • -
        • Don't Save Current Path - This will prevent ZSNES from changing the current start-up game path in the configuration.
        • -
        • Use Small Message Text - On-screen messages that pop up when you save a state, disable a background, ect. will be smaller.
        • -
        • Disable Screensaver - Disables the screensaver while ZSNES is running, so that your gameplay will not be interrupted if you're using a gamepad.
        • -
        -
      • -
      -
      -
    • -
    • Add-ons: -
        -
      • Perform: Changes the current special input selected for the game.
      • -
      • Usage: -
          -
        • None - Uses the regular SNES controllers.
        • -
        • SNES Mouse at Port #1 - Emulates the SNES Mouse at controller port #1.
        • -
        • SNES Mouse at Port #2 - Emulates the SNES Mouse at controller port #2.
        • -
        • Super Scope - Emulates the SNES Super Scope.
        • -
        • Lethal Enforcer Gun - Simulates the SNES Mouse movements for Lethal Enforcers 1.
        • -
        • Super System - Toggle DIP switches here to configure the Nintendo Super System.
        • -
        -
      • -
      -
      -
    • -
    • Video: -
        -
      • Perform: Changes the current video mode and sets some options.
      • -
      • Usage: -
          -
        • Changing the video mode - Use the mouse to select the video mode and click 'SET'. If the resulting video changes don't look right, wait for 10 seconds without pressing any key or button and the display will return to the previous one.
        • -
        • Full Scanlines - This mode adds a blank line in between every line to produce a scanline effect similar, if not exact, to a TV.
        • -
        • 50% Scanlines - This will enable scanline mode, except that each line is 50% darker than the line above it.
        • -
        • 25% Scanlines - This will enable scanline mode, except that each line is 25% darker than the line above it.
        • -
        • 2xSaI Engine - Setting this will enable Kreed's 2x Scale Advanced Interpolation engine.
        • -
        • Super Eagle - Setting this will enable Kreed's Super Eagle engine.
        • -
        • Super 2xSaI Engine - Setting this will enable Kreed's Super 2x Scale Advanced Interpolation engine.
        • -
        • HQ2X, HQ3X, and HQ4X - Depending on what D mode resolution you are using, you will be able to choose one of these three graphic filters created by MaxSt.
        • -
        • Interpolation - Setting this enables interpolation, which basically blends all the inbetween colors to produce a blurry effect. However, this slows down emulation.
        • -
        • Hi-resolution Mode 7 - Enabling this will activate high resolution mode 7 whenever standard mode 7 is used within a game. This mode is only available in video modes that support it.
        • -
        • Grayscale Mode - Makes the game display in monochrome color. This option is just there for fun and is not something that you probably want to keep on using.
        • -
        • Triple Buffering - Uses an extra buffer for drawing. Thus, a buffer can be drawn on while one is pending Vsync, and another is being drawn. The primary use is to reduce the impact of Vsync on slower systems.
        • -
        • Vsync - Synchronizes drawing to the monitor's refresh rate. This may reduce frame rate on your computer, but will reduce tearing.
        • -
        -
      • -
      -
      -
    • -
    • Sound: -
        -
      • Perform: Allows user to change the sound configurations of ZSNES.
      • -
      • Usage: -
          -
        • Enable Sound - Setting this turns on the sound.
        • -
        • Stereo Sound - Enables stereo sound (noticeably slower though unless you have a fast CPU).
        • -
        • Sampling Rate - To change the sound sampling rate, just click on the box containing the value to rotate through all the possible values. The default sampling rate (and the one that is most accurate to a real SNES) is 32000hz.
        • -
        • Volume Level - To change, just slide the bar.
        • -
        • Reverse Stereo - This function swaps the L and R volume levels in stereo mode.
        • -
        • Surround Sound - Enables simulated 2 speaker surround sound.
        • Sound Buffering - Enable to provide a larger sound buffer for sound cards that have problems with the sound.
        • Disable SPC Emulation - Disables the emulation of the SPC700 chip. Doing this will speed up emulation, but the downside is that it tends to bring more sound errors.
        • -
        • Sound Interpolation - This feature smoothes out the wave forms of lower frequency sounds. Choose either gaussian (default and the most accurate to a real SNES), cubic spline, or 8-point interpolation.
        • -
        • Low Pass Filter - This produces better bass in certain sound effects. However, the side effect is that the sound will overall be more muffled. Choose either simple, dynamic, or hi quality.
        • -
        -
      • -
      -
      -
    • -
    • Paths: -
        -
      • Perform: Allows user to change the default directories used by ZSNES.
      • -
      • Usage: -
          -
        • Snapshots - Configure which directory bitmap (.bmp; 16bit color) and PNG (.png; 32bit ARGB color) format snapshots will save in.
        • -
        • SPCs - Configure which directory SPC700 sound dumps (.spc; SNES music files) will save in.
        • -
        • BIOS/Base Carts - Enter the location of BIOS/Base carts here, to support emulation of the BS Satellaview, Sufami Turbo, and the Same Game and SD Gundam G-Next expansion packs.
        • -
        • SPC7110 Graphic Packs - Enter the directories that contain SPC7110 graphic packs in the appropriate fields here. The SPC7110 games are Far East of Eden Zero (FEOEZ), Far East of Eden Zero - Shounen Jump no Shou (FEOEZ-SJNS), Momotarou Dentetsu Happy (MDH), and Super Power League 4 (SPL4).
        • -
        • Note: Paths can be absolute (C:\Path\To\File\) or relative (..\Path\Relative\To\ZSNES\).
        • -
        -
      • -
      -
    • -
    - -
    - Cheat Menu -
    - Cheat Menu
    -
      -
    • Add Code: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor on the cheat code entry box.
      • -
      • Usage: Type in the code in either Game Genie, Pro Action Replay, or GoldFinger format, then press enter. Then enter the description. Note : Be sure to include the '-' when entering Game Genie codes.
      • -
      • Note: You can also quickly modify the value of the currently selected cheat code (in the browse window) by typing a 2 digit hex number in the cheat code enter space.
      • -
      -
      -
    • -
    • Cheat Code Reflector - What this feature does is that it allows a value of one cheat code to be mirrored from a value of another cheat code. To enable this option, type an 'R' at the end of any cheat code as the destination, then type another cheat code (Without the 'R') as the source. For example, if you want address 7E1000 to reflect the value at address 7F2000 (whatever value written to 7E2000 from the game will also be written to 7E1000), enter cheat code 7E1000FFR, then cheat code 7F2000FF (where FF can be any value).

    • -
    • Browse: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor at the browse box.
      • -
      • Usage: Move through the list using either the mouse or keyboard and select the cheat code you want to modify. Then click on the buttons to the right or type in the key of the first letter of the action. -
          -
        • Actions: -
            -
          • Toggle - Turns a cheat code on or off.
          • -
          • Remove - Deletes the cheat code off the list.
          • -
          • Save - Saves the current list into a .cht file, which will be located in the save directory.
          • -
          • Load - Loads a previously saved list.
          • -
          • Fix - Clicking this fixes some cheat codes that don't work, but it will not always work.
          • -
          • You can also toggle a cheat code on or off by double clicking on them.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Search: -
        -
      • Perform: Allows you to search for values in memory such as life, score, etc. and allows you to change their values to your own preferred choice.
      • -
      • Usage: -
          -
        • Select Size: You can choose what data size to search for. If you know the numerical values of the data you're going to select, select the smallest number range that fits the data values. (eg. If you know the value cannot go higher than 50000, then select 2 BYTES (0..65535) instead of 3 BYTES (0..16777215)). Sometimes, you don't know the numerical value (in the case of life bars) so you have to guess the size.
        • -
        • Select Format: DEC (Decimal, 0 .. 9), HEX (Hexadecimal, 0 .. F) Most of the time, it's recommended that you'd use decimal, although there are some cases that the values in memory are sometimes stored as hex.
        • -
        • Search Type: -
            -
          • Exact Value Search - In this mode, you have to enter the exact numerical value that you want to search for. Such as if you have 3 lives left, then search for the value 3. The cheat search engine also looks for value - 1 since even if a game tells you that you have 3 lives left, it stores the value as 2 in memory.
          • -
          • Comparative Search - In this mode, you select whether the value is less than, greater than, equal to, or not equal to the previous value. Such as if you have a life bar and if the life bar suddenly goes down, go back to the cheat search engine and select less than to search for any value that has been decreased.
          • -
          -
        • -
        -
      • -
      -
    • -
    - -
    - Netplay Menu -
    - Netplay Menu
    -
      -
    • Internet: -
        -
      • Port - -
          -
        • This is the port ZSNES will communicate on. While the number can range from 0 to 65535, it is recommended you stay above 5000 to avoid conflicts with other services.
        • -
        -
      • -
      • Nickname - -
          -
        • What you will be called.
        • -
        -
      • -
      • Start As Server - -
          -
        • This will start the ZSNES Server. Your opponent can then join via the Connect to Server option.
        • -
        -
      • -
      • IP - -
          -
        • This is the IP of the server you wish to connect to. You will need to receive this information from the person to whom you are connecting.
        • -
        -
      • -
      • Connect to Server - -
          -
        • This will connect you to another ZSNES user if the port and server are correct. This is only used on the client side.
        • -
        -
      • -
      • Your IP - -
          -
        • This is your IP. The client doesn't really need to do anything with it. The server needs to give this information to the client.
        • -
        -
      • -
      • Allow UDP Connections - -
          -
        • UDP is slightly faster than TCP, and should provide a better experience. Some users, however, can only use TCP. Turn this off if you are experiencing connection problems in mid-game, and see if it helps.
        • -
        -
      • -
      -
    • -
    - -
    - Misc Menu -
    - Misc Menu
    -
      -
    • Game Keys: -
        -
      • Perform: Allows user to change and make game keys and quick keys to his own preference.
      • -
      • Usage: -
          -
        • Click on the key which you want to change using your mouse, and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the key.
        • -
        -
      • -
      -
      -
    • -
    • GUI Options: -
        -
      • Perform: Allows the user to customize some of the GUI.
      • -
      • Usage: -
          -
        • Mouse Wrap - Allows the mouse pointer to wrap at the borders of the screen.
        • -
        • Mouse Shadow - Disables/Enables the Mouse Shadow.
        • -
        • Keep Menu Positions - When enabled, re-entering the GUI from the game does not automatically enter the Load Menu, but instead the previous menu which you were on when you last exited the GUI.
        • -
        • Save Window Positions - When enabled, the GUI doesn't reset the locations of the windows when you exit/enter the GUI.
        • -
        • Click Enters/Exits GUI - When enabled, it allows the right mouse button to automatically run and exit the game to the GUI. This however, slows down emulation by a bit since it has to check the mouse button status once in a while. In the Win32 port, the right click button won't return back to the game.
        • -
        • Use JoyPad1 to Control - When enabled, it allows Player 1's device to be used to move through the GUI. This is mainly used if you want to use your joystick in the GUI. The equivalent SNES keys to the keyboard keys are: -
            -
          • SNES ControlPad = Move
          • -
          • SNES A = Enter
          • -
          • SNES B = ESC
          • -
          • SNES L = PageUp
          • -
          • SNES R = PageDown
          • -
          -
        • -
        • Transparent Messages - Makes in-game messages appear transparent.
        • -
        • Wheel Mouse - Enables or disables the mouse wheel.
        • -
        • Filtered GUI - Use your favorite ZSNES display filters in the GUI. ZSNES, HQ3X style!
        • -
        • Trap Mouse Cursor - Prevents the mouse cursor from exiting the ZSNES GUI. You will have to move the mouse with extra speed to make the cursor exit the GUI with this feature enabled.
        • -
        • Snow Effect - Enables the snow effect in the GUI background.
        • -
        • Water Effect - Enables one of the two available water effects in the GUI background.
        • -
        • Burning Effect - Enables the burning effect in the GUI background.
        • -
        • Color - Allows you to customize your ZSNES GUI colors. Background, title bar, and window colors are supported.
        • -
        • Always on Top - Puts the ZSNES window on top of almost all other Windows applications at all times.
        • -
        • Save Main Window Position - Saves the window position when you exit and restores it when you load ZSNES again.
        • -
        • Allow Multiple Instances - Allows you to load more than one ZSNES window at a time.
        • -
        -
      • -
      -
      -
    • -
    • Key Comb. (Key Combination Editor): -
        -
      • Perform: Allows you to specify certain keyboard combination routines with a single keystroke/joystick button press.
      • -
      • Usage: -
          -
        • Description - Allows you type in the description of the combination key.
        • -
        • Key - Clicking on this box will allow you to select which key/button to use.
        • -
        • Combination Keys - This window will display the sequence of events selected by the user.
        • -
        • P# - Selects which player # will use those keys.
        • -
        • > = Last </> - Enabling this would mean that the event symbol > will mean the last left or right direction the user presses in the game and the symbol < is the opposite of that direction. When disabled, > means right and < means left.
        • -
        • Game Specific (Game Specific) - Enabling this will tell ZSNES to use separate key combination files for each individual game.
        • -
        • Clear - Clears the current key combination field.
        • -
        • Add - Adds the key combination fields below as a new entry.
        • -
        • Replace - Copies the contents of the key combination fields below to the current highlighted key combination above.
        • -
        • Delete - Deletes the highlighted key combination above.
        • -
        • Events: -
            -
          • Press+Rel - The key will be pressed and held. It will be released once another key is pressed after any amount of frame or second delay.
          • -
          • Press Only - The key will be pressed and held.
          • -
          • Rel Only - The key will be released if it is pressed by a press only event.
          • -
          • Frame Delay - Delays for the specified number of frames.
          • -
          • Second Delay - Delays for the specified number of seconds.
          • -
          • Del - Deletes the event at the end of the combination keys list if one exists.
          • -
          -
        • -
        -
      • -
      • Note: A 1 frame delay exists after the combination key list has finished processing.

      • -
      • Example Key Combination: (Down / Down+Right / Right / L): -
          -
        • Method 1: -
            -
          • Press+Rel Down / 2 Frame Delay / Press+Rel Down / Press+Rel Right / 2 Frame Delay / Press+Rel Right / 2 Frame Delay / Press+Rel L
          • -
          -
        • -
        • Method 2: -
            -
          • Press Only Down / 2 Frame Delay / Press Only Right / 2 Frame Delay / Rel Only Down / 2 Frame Delay / Rel Only Right / Press Only L
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Movie Options: -
        -
      • Perform: Allows you to record SNES Movies so that you can play them back at a later date either to amuse your friends, torture your friends, or whatever. Just don't play anything in front of your enemies since they might break your computer. ;)
      • -
      • Usage: -
          -
        • Movies are saved as .ZMV, .ZM1, .ZM2, etc. files. They should be located in the same directory as your save files. A movie file consists of a save state file, SRAM data, and the recorded controller data. The initial filesize of a .ZMV file is the combination of a .zst and a .srm file (around 300kbytes), and it averages around 7kbytes/minute (value varies) or 420kbytes/hour.

        • -
        • You can record: -
            -
          • - Standard 1/2 player games
          • -
          • - 3-4 player Multitap games
          • -
          • - SNES Mouse games
          • -
          • - Network/Modem games
          • -
          -
        • -
        • You cannot record: -
            -
          • - Super Scope Games
          • -
          -
        • -
        -
      • -
      • GUI Usage: -
          -
        • Record - Begins recording the movie file. You can even record while your already playing a movie (append).
        • -
        • Play - Begins playing the movie file.
        • -
        • Stop - Stops the movie process.
        • -
        • The numbers at the right side select which movie file to play/record.
        • -
        -
      • -
      • NOTE: Movies recorded without sound cannot be played when sound is enabled and vice versa.
      • -
      • NOTE: Loading another game, loading a state, or resetting the game will halt the play/record process.
      • -
      • NOTE: When you play a movie file, the SRAM data becomes invalid, and ZSNES won't save it until you load a game. This way, you don't have to worry about your SRAM when you load up a movie file.
      • -
      -
      -
    • -
    • Save Cfg: -
        -
      • Perform: Saves the configuration files.
      • -
      -
      -
    • -
    • About: -
        -
      • Perform: Just displays the version # and the authors of ZSNES.
      • -
      -
    • -
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - GUI + + + + + + + + + + + + +
    +

    GUI

    + +
    + This is the ZSNES GUI.
    + Note: If any window exists in the GUI field, pressing ESC always closes the top-most window.
    + Note: Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    +
    +
      +
    • Notes on the filename box where you can manually type in the filename:
    • +
    • - Typing text into the box will automatically seek to the closest matching filename in the box where the file selection cursor is located.
    • +
    • - When you press enter with text in the box without any '\' or ':' in the filename, ZSNES will first look for a directory matching the text and will then change its directory if one is found. Otherwise, it will load the current file or directory highlighted by the selection cursor.
    • +
    • - You can type in the full filename or directory including path (eg. "d:\games\mario.smc" or just "d:").
    • +
    + +
    + +

    Game Menu

    + +
    + Game Menu
    +
      +
    • Load: +
        +
      • Perform: Loads and runs a file.
      • +
      • Usage: +
          +
        • Loading a File: +
            +
          • You can move through the list using either the mouse or the keyboard. The keys for the keyboard are: +
              +
            • Up/Down - Move Up/Down through the list.
            • +
            • Left/Right - Switch between the File and Directory Window.
            • +
            • PageUp/PageDown/Home/End - Move through the list in larger increments.
            • +
            • A .. Z, \, : - Enters filename/directory into the load box.
            • +
            • Enter - Load file or change directory (depending on which window you are in).
            • +
            +
          • +
          +
        • +
        • Show all Extensions: +
            +
          • This will force the GUI to show all of the file extensions instead of the default (.smc, .sfc, ...).
          • +
          +
        • +
        • Force: +
            +
          • Make ZSNES treat a ROM as NTSC or PAL region format, as well as LoROM and HiROM.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Run: +
        +
      • Perform: Runs the game.
      • +
      +
      +
    • +
    • Reset: +
        +
      • Perform: Resets the game, but asks user for confirmation first.
      • +
      +
      +
    • +
    • Save State: +
        +
      • Perform: Saves the state (equivalent to default F2), but asks user for confirmation first.
      • +
      +
      +
    • +
    • Load State: +
        +
      • Perform: Loads the state (equivalent to default F4), but asks user for confirmation first.
      • +
      +
      +
    • +
    • Pick State: +
        +
      • Perform: Allows user to select the state position to use (equivalent to default F3).
      • +
      +
      +
    • +
    • Quit: +
        +
      • Perform: Quits ZSNES.
      • +
      +
    • +
    + +
    + +

    Quick Menu

    + +
    + Quick Menu
    +
      +
    • Perform: +
        +
      • Allows the user to quickly select the last 10 games loaded off the GUI. Also allows the user to freeze/clear the list.
      • +
      +
      +
    • +
    • Tip: You can create a favorites list by first clearing the list, then loading up all the games (last game loaded will be at the top), and last turning freeze on.
    • +
    + +
    + +

    Config Menu

    + +
    + Config Menu
    +
      +
    • Input #1-#5: +
        +
      • Perform: Allows user to select the input device and control keys for each player.
      • +
      • Usage: +
          +
        • Selecting an Input Device: +
            +
          • Using your mouse, move through the list of input devices until the device of your choice is highlighted. From there, click on SET and the input device you selected should appear after CDV: (CDV = Current Device).
          • +
          +
        • +
        • Changing default keys: +
            +
          • Click on the key which you want to change by using your mouse and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the game key.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Options: +
        +
      • Perform: Allows the user to select some in-game options.
      • +
      • Usage: +
          +
        • Auto Frame Rate - Enables auto frame rate.
        • +
        • Max Frame Skip - Shown only when auto frame rate is enabled, this sets the maximum allowable frame skip in auto frame rate mode.
        • +
        • Frame Rate - Sets the constant frame skip value used when a game plays. This is only shown when auto frame rate is disabled.
        • +
        • New Gfx Engine - Enables/Disables the new graphics engine in 256 color modes or 320x240x65536 mode.
        • +
        • Auto Increment Save Slot - When enabled, the save slot will automatically move to the next slot after you save a state.
        • +
        • MMX Support - Enables MMX copying routines for a slight speed increase (MMX processors only).
        • +
        • Use Pl3/4 as Pl1/2 - Allows the user to use 2 devices for 1 player, such as the keyboard and the joystick. (set keyboard as input device 1 and joystick as input device 3). This, however, disables MultiTap support.
        • +
        • FPS at Program Start - Checking this will make the FPS appear whenever you start ZSNES.
        • +
        • Use 30Hz for Turbo - When activated, turbo will change at 30hz NTSC or 25hz PAL. Otherwise, turbo will change at 60hz NTSC or 50hz PAL.
        • +
        • Enable Game Clock - Enabling this will show the system clock on-screen.
        • +
        • Toggled Fast Fwd/Slowdown - Checking this will change the way how the fast forward button functions. Having it checked will cause it to act as a switch and having it unchecked will cause it to act as a push button.
        • +
        • SRAM Check+Save - This will enable automatic save RAM write detection and save the SRAM (.srm) to disk approximately 10 seconds after.
        • +
        • Old Gfx Mode 2 - This will enable the Old Gfx Engine Mode 2, which fixes many transparency bugs that currently plagues ZSNES in the current engine. However, it also creates some new ones. This mode can be slower at times, so it's recommended that you only turn it on when you need it.
        • +
        • Start at Latest Save - Checking this will automatically set the save state pointer (F3 Menu) to the most recently saved location whenever you load a ROM image.
        • +
        • Auto State Save/Load - Enabling this will allow ZSNES to automatically re-load the state whenever you return back to the game after a proper exit.
        • +
        • Don't Save Current Path - This will prevent ZSNES from changing the current start-up game path in the configuration.
        • +
        • Use Small Message Text - On-screen messages that pop up when you save a state, disable a background, ect. will be smaller.
        • +
        • Enable Auto-Patch - When checked, ZSNES will automatically soft patch ROMs when a corresponding .ips file is found.
        • +
        +
      • +
      +
      +
    • +
    • Add-ons: +
        +
      • Perform: Changes the current special input selected for the game.
      • +
      • Usage: +
          +
        • None - Uses the regular SNES controllers.
        • +
        • SNES Mouse at Port #1 - Emulates the SNES Mouse at controller port #1.
        • +
        • SNES Mouse at Port #2 - Emulates the SNES Mouse at controller port #2.
        • +
        • Super Scope - Emulates the SNES Super Scope.
        • +
        • Lethal Enforcer Gun - Simulates the SNES Mouse movements for Lethal Enforcers 1.
        • +
        • Super System - Toggle DIP switches here to configure the Nintendo Super System.
        • +
        +
      • +
      +
      +
    • +
    • Video: +
        +
      • Perform: Changes the current video mode and sets some options.
      • +
      • Usage: +
          +
        • Changing the video mode - Use the mouse to select the video mode and click 'SET'. If the resulting video changes don't look right, wait for 10 seconds without pressing any key or button and the display will return to the previous one.
        • +
        • Full Scanlines - This mode adds a blank line in between every line to produce a scanline effect similar, if not exact, to a TV.
        • +
        • 50% Scanlines - This will enable scanline mode, except that each line is 50% darker than the line above it.
        • +
        • 25% Scanlines - This will enable scanline mode, except that each line is 25% darker than the line above it.
        • +
        • 2xSaI Engine - Setting this will enable Kreed's 2x Scale Advanced Interpolation engine.
        • +
        • Super Eagle - Setting this will enable Kreed's Super Eagle engine.
        • +
        • Super 2xSaI Engine - Setting this will enable Kreed's Super 2x Scale Advanced Interpolation engine.
        • +
        • Bilinear Filter - Setting this will enable the bilinear filter, available only in OpenGL video modes.
        • +
        • HQ2X - Setting this will enable MaxSt's HQ2X graphic filter.
        • +
        • Interpolation - Setting this enables interpolation, which basically blends all the inbetween colors to produce a blurry effect. However, this slows down emulation.
        • +
        • Hi-resolution Mode 7 - Enabling this will activate high resolution mode 7 whenever standard mode 7 is used within a game. This mode is only available in video modes that support it.
        • +
        • Grayscale Mode - Makes the game display in monochrome color, i.e. black and white. This option is just there for fun and is not something that you probably want to keep on using.
        • +
        +
      • +
      +
      +
    • +
    • Sound: +
        +
      • Perform: Allows user to change the sound configurations of ZSNES.
      • +
      • Usage: +
          +
        • Enable Sound - Setting this turns on the sound.
        • +
        • Stereo Sound - Enables stereo sound (slower unless you have a fast CPU).
        • +
        • Sampling Rate - To change the sound sampling rate, just click on the box containing the value to rotate through all the possible values. The default sampling rate (and the one that is most accurate to a real SNES) is 32000hz.
        • +
        • Volume Level - To change, just slide the bar.
        • +
        • Reverse Stereo - This function swaps the L and R volume levels in stereo mode.
        • +
        • Surround Sound - Enables simulated 2 speaker surround sound.
        • Sound Buffering - Enable to provide a larger sound buffer for sound cards that have problems with the sound.
        • +
        • Disable SPC Emulation - Disables the emulation of the SPC700 chip. Doing this will speed up emulation, but the downside is that it tends to bring more sound errors.
        • +
        • Sound Interpolation - This feature smoothes out the wave forms of lower frequency sounds. Choose either gaussian (default and the most accurate to a real SNES), cubic spline, or 8-point interpolation.
        • +
        • Low Pass Filter - This produces better bass in certain sound effects. However, the side effect is that the sound will overall be more muffled. Choose either simple, dynamic, or hi quality.
        • +
        +
      • +
      +
      +
    • +
    • Paths: +
        +
      • Perform: Allows user to change the default directories used by ZSNES.
      • +
      • Usage: +
          +
        • Snapshots - Configure which directory bitmap (.bmp; 16bit color) and PNG (.png; 32bit ARGB color) format snapshots will save in.
        • +
        • SPCs - Configure which directory SPC700 sound dumps (.spc; SNES music files) will save in.
        • +
        • BIOS/Base Carts - Enter the location of BIOS/Base carts here, to support emulation of the BS Satellaview, Sufami Turbo, and the Same Game and SD Gundam G-Next expansion packs.
        • +
        • SPC7110 Graphic Packs - Enter the directories that contain SPC7110 graphic packs in the appropriate fields here. The SPC7110 games are Far East of Eden Zero (FEOEZ), Far East of Eden Zero - Shounen Jump no Shou (FEOEZ-SJNS), Momotarou Dentetsu Happy (MDH), and Super Power League 4 (SPL4).
        • +
        • Note: Paths can be absolute (C:\Path\To\File\) or relative (..\Path\Relative\To\ZSNES\).
        • +
        +
      • +
      +
    • +
    + +
    + +

    Cheat Menu

    + +
    + Cheat Menu
    +
      +
    • Add Code: +
        +
      • Perform: Enters the cheat code window and sets the keyboard cursor on the cheat code entry box.
      • +
      • Usage: Type in the code in either Game Genie, Pro Action Replay, or GoldFinger format, then press enter. Then enter the description. Note : Be sure to include the '-' when entering Game Genie codes.
      • +
      • Note: You can also quickly modify the value of the currently selected cheat code (in the browse window) by typing a 2 digit hex number in the cheat code enter space.
      • +
      +
      +
    • +
    • Cheat Code Reflector - What this feature does is that it allows a value of one cheat code to be mirrored from a value of another cheat code. To enable this option, type an 'R' at the end of any cheat code as the destination, then type another cheat code (Without the 'R') as the source. For example, if you want address 7E1000 to reflect the value at address 7F2000 (whatever value written to 7E2000 from the game will also be written to 7E1000), enter cheat code 7E1000FFR, then cheat code 7F2000FF (where FF can be any value).

    • +
    • Browse: +
        +
      • Perform: Enters the cheat code window and sets the keyboard cursor at the browse box.
      • +
      • Usage: Move through the list using either the mouse or keyboard and select the cheat code you want to modify. Then click on the buttons to the right or type in the key of the first letter of the action. +
          +
        • Actions: +
            +
          • Toggle - Turns a cheat code on or off.
          • +
          • Remove - Deletes the cheat code off the list.
          • +
          • Save - Saves the current list into a .cht file, which will be located in the save directory.
          • +
          • Load - Loads a previously saved list.
          • +
          • Fix - Clicking this fixes some cheat codes that don't work, but it will not always work.
          • +
          • You can also toggle a cheat code on or off by double clicking on them.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Search: +
        +
      • Perform: Allows you to search for values in memory such as life, score, etc. and allows you to change their values to your own preferred choice.
      • +
      • Usage: +
          +
        • Select Size: You can choose what data size to search for. If you know the numerical values of the data you're going to select, select the smallest number range that fits the data values. (eg. If you know the value cannot go higher than 50000, then select 2 BYTES (0..65535) instead of 3 BYTES (0..16777215)). Sometimes, you don't know the numerical value (in the case of life bars) so you have to guess the size.
        • +
        • Select Format: DEC (Decimal, 0 .. 9), HEX (Hexadecimal, 0 .. F) Most of the time, it's recommended that you'd use decimal, although there are some cases that the values in memory are sometimes stored as hex.
        • +
        • Search Type: +
            +
          • Exact Value Search - In this mode, you have to enter the exact numerical value that you want to search for. Such as if you have 3 lives left, then search for the value 3. The cheat search engine also looks for value - 1 since even if a game tells you that you have 3 lives left, it stores the value as 2 in memory.
          • +
          • Comparative Search - In this mode, you select whether the value is less than, greater than, equal to, or not equal to the previous value. Such as if you have a life bar and if the life bar suddenly goes down, go back to the cheat search engine and select less than to search for any value that has been decreased.
          • +
          +
        • +
        +
      • +
      +
    • +
    + +
    + +

    Netplay Menu

    + +
    + Netplay Menu
    +
      +
    • Internet: +
        +
      • Port - +
          +
        • This is the port ZSNES will communicate on. While the number can range from 0 to 65535, it is recommended you stay above 5000 to avoid conflicts with other services.
        • +
        +
      • +
      • Nickname - +
          +
        • What you will be called.
        • +
        +
      • +
      • Start As Server - +
          +
        • This will start the ZSNES Server. Your opponent can then join via the Connect to Server option.
        • +
        +
      • +
      • IP - +
          +
        • This is the IP of the server you wish to connect to. You will need to receive this information from the person to whom you are connecting.
        • +
        +
      • +
      • Connect to Server - +
          +
        • This will connect you to another ZSNES user if the port and server are correct. This is only used on the client side.
        • +
        +
      • +
      • Your IP - +
          +
        • This is your IP. The client doesn't really need to do anything with it. The server needs to give this information to the client.
        • +
        +
      • +
      • Allow UDP Connections - +
          +
        • UDP is slightly faster than TCP, and should provide a better experience. Some users, however, can only use TCP. Turn this off if you are experiencing connection problems in mid-game, and see if it helps.
        • +
        +
      • +
      +
    • +
    + +
    + +

    Misc Menu

    + +
    + Misc Menu
    +
      +
    • Game Keys: +
        +
      • Perform: Allows user to change and make game keys and quick keys to his own preference.
      • +
      • Usage: +
          +
        • Click on the key which you want to change using your mouse, and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the key.
        • +
        +
      • +
      +
      +
    • +
    • GUI Options: +
        +
      • Perform: Allows the user to customize some of the GUI.
      • +
      • Usage: +
          +
        • Mouse Wrap - Allows the mouse pointer to wrap at the borders of the screen.
        • +
        • Mouse Shadow - Disables/Enables the Mouse Shadow.
        • +
        • Keep Menu Positions - When enabled, re-entering the GUI from the game does not automatically enter the Load Menu, but instead the previous menu which you were on when you last exited the GUI.
        • +
        • Save Window Positions - When enabled, the GUI doesn't reset the locations of the windows when you exit/enter the GUI.
        • +
        • Click Enters/Exits GUI - When enabled, it allows the right mouse button to automatically run and exit the game to the GUI. This however, slows down emulation by a bit since it has to check the mouse button status once in a while. In the Win32 port, the right click button won't return back to the game.
        • +
        • Use JoyPad1 to Control - When enabled, it allows Player 1's device to be used to move through the GUI. This is mainly used if you want to use your joystick in the GUI. The equivalent SNES keys to the keyboard keys are: +
            +
          • SNES ControlPad = Move
          • +
          • SNES A = Enter
          • +
          • SNES B = ESC
          • +
          • SNES L = PageUp
          • +
          • SNES R = PageDown
          • +
          +
        • +
        • Transparent Messages - Makes in-game messages appear transparent.
        • +
        • Wheel Mouse - Enables or disables the mouse wheel.
        • +
        • Filtered GUI - Use your favorite ZSNES display filters in the GUI. ZSNES, HQ2X style!
        • +
        • Trap Mouse Cursor - Prevents the mouse cursor from exiting the ZSNES GUI. You will have to move the mouse with extra speed to make the cursor exit the GUI with this feature enabled.
        • +
        • Snow Effect - Enables the snow effect in the GUI background.
        • +
        • Water Effect - Enables one of the two available water effects in the GUI background.
        • +
        • Burning Effect - Enables the burning effect in the GUI background.
        • +
        • Color - Allows you to customize your ZSNES GUI colors. Background, title bar, and window colors are supported.
        • +
        • Always on Top - Puts the ZSNES window on top of almost all other Windows applications at all times.
        • +
        • Save Main Window Position - Saves the window position when you exit and restores it when you load ZSNES again.
        • +
        • Allow Multiple Instances - Allows you to load more than one ZSNES window at a time.
        • +
        +
      • +
      +
      +
    • +
    • Key Comb. (Key Combination Editor): +
        +
      • Perform: Allows you to specify certain keyboard combination routines with a single keystroke/joystick button press.
      • +
      • Usage: +
          +
        • Description - Allows you type in the description of the combination key.
        • +
        • Key - Clicking on this box will allow you to select which key/button to use.
        • +
        • Combination Keys - This window will display the sequence of events selected by the user.
        • +
        • P# - Selects which player # will use those keys.
        • +
        • > = Last </> - Enabling this would mean that the event symbol > will mean the last left or right direction the user presses in the game and the symbol < is the opposite of that direction. When disabled, > means right and < means left.
        • +
        • Game Specific (Game Specific) - Enabling this will tell ZSNES to use separate key combination files for each individual game.
        • +
        • Clear - Clears the current key combination field.
        • +
        • Add - Adds the key combination fields below as a new entry.
        • +
        • Replace - Copies the contents of the key combination fields below to the current highlighted key combination above.
        • +
        • Delete - Deletes the highlighted key combination above.
        • +
        • Events: +
            +
          • Press+Rel - The key will be pressed and held. It will be released once another key is pressed after any amount of frame or second delay.
          • +
          • Press Only - The key will be pressed and held.
          • +
          • Rel Only - The key will be released if it is pressed by a press only event.
          • +
          • Frame Delay - Delays for the specified number of frames.
          • +
          • Second Delay - Delays for the specified number of seconds.
          • +
          • Del - Deletes the event at the end of the combination keys list if one exists.
          • +
          +
        • +
        +
      • +
      • Note: A 1 frame delay exists after the combination key list has finished processing.

      • +
      • Example Key Combination: (Down / Down+Right / Right / L): +
          +
        • Method 1: +
            +
          • Press+Rel Down / 2 Frame Delay / Press+Rel Down / Press+Rel Right / 2 Frame Delay / Press+Rel Right / 2 Frame Delay / Press+Rel L
          • +
          +
        • +
        • Method 2: +
            +
          • Press Only Down / 2 Frame Delay / Press Only Right / 2 Frame Delay / Rel Only Down / 2 Frame Delay / Rel Only Right / Press Only L
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Movie Options: +
        +
      • Perform: Allows you to record SNES movies so that you can play them back at a later date either to amuse your friends, torture your friends, or whatever. Just don't play anything in front of your enemies since they might break your computer. ;)
      • Usage: +
          +
        • Movies are saved as .zmv, .zm1, .zm2, etc. files. They should be located in the same directory as your save files. A movie file consists of a save state file, SRAM data, and the recorded controller data. The initial filesize of a .zmv file is the combination of a .zst and a .srm file (around 300kbytes), and it averages around 7kbytes/minute (value varies) or 420kbytes/hour.

        • +
        • You can record: +
            +
          • - Standard 1/2 player games
          • +
          • - 3-4 player MultiTap games
          • +
          • - SNES Mouse games
          • +
          • - Network/Modem games
          • +
          +
        • +
        • You cannot record: +
            +
          • - Super Scope games
          • +
          +
        • +
        +
      • +
      • GUI Usage: +
          +
        • Record - Begins recording the movie file.
        • +
        • Play - Begins playing the movie file.
        • +
        • Stop - Stops the movie process.
        • +
        • The numbers at the right side select which movie file to play/record.
        • +
        +
      • +
      • NOTE: Movies recorded without sound cannot be played when sound is enabled and vice versa.
      • +
      • NOTE: Loading another game, loading a state, or resetting the game will halt the play/record process.
      • +
      • NOTE: When you play a movie file, the SRAM data becomes invalid, and ZSNES won't save it until you load a game. This way, you don't have to worry about your SRAM when you load up a movie file.
      • +
      +
      +
    • +
    • Save Cfg: +
        +
      • Perform: Saves the configuration files.
      • +
      +
      +
    • +
    • About: +
        +
      • Perform: Just displays the version # and the authors of ZSNES.
      • +
      +
    • +
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/netplay.htm b/zsnes/docs/Linux/netplay.htm index a7c37314..b6aab78e 100644 --- a/zsnes/docs/Linux/netplay.htm +++ b/zsnes/docs/Linux/netplay.htm @@ -1,208 +1,173 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - Netplay - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Netplay - -
    - System Recommendations -
    - *** FOR SMOOTH NETPLAY, IT IS REQUIRED THAT BOTH SIDES HAVE FAST COMPUTERS (LOOK BELOW FOR REQUIREMENTS). IF ONE SIDE HAS A SLOW COMPUTER (EG. 200MHZ) WHILE THE OTHER HAS A FAST ONE (EG. 800MHZ), THE SLOW COMPUTER'S LOW FRAMERATE WILL BOG DOWN THE FAST COMPUTER, CAUSING POOR FRAME RATES ON THE FAST COMPUTER. IT IS ALSO STRONGLY RECOMMENDED THAT YOU KEEP LATENCY AT 3 (OR REDUCE IT TO 2 FOR FAST PACED PLATFORM GAMES), ALLOW UDP CONNECTIONS, AND KEEP BACK BUFFER ENABLED.
    -
    - Also, the higher than ping time, the worse the netplay experience, since ping times measure the time it takes for data to get to the other side and back. You can expect a not so great performance if you have a ping time of 400 or greater.
    -
    - Note: You cannot use cheat codes, key combinations, or turbo keys in netplay.
    -
    - Note: Firewall users - You may need to disable your firewall (or just disable it for UDP port 7845) in order to get the UDP protocol that ZSNES's netplay uses to work.
    -
    - System Recommendations for Smooth Netplay:
    - ------------------------------------------
    -
      -
    • - Back Buffer must be enabled and the latency value must be 3 or 2.
    • -
    • - The games have to run at least 50 FPS on BOTH computers without netplay. This can completely depend on factors such as CPU, video card, video mode, and the game you are running.
    • -
    • - Your system should be able to handle the UDP protocol. Without it, lost packets can cause lots of in-game pauses in your netplay experience.
    • -
    • - You can also try changing your resolution to different video modes and find the video mode that provides the optimal performance if the current performance isn't satisfactory.
    • -
    • - You will also need an Internet connection with ping times of less than 400ms between both connections.
    • -
    -
    - Simple Instructions on How to Get it Working -
    -
      -
    1. 1.) Go to Netplay -> Internet.
    2. -
    3. 2.) Decide who will be the server and who will be the client (Neither has the gameplay advantage since ZSNES treats both the same after a connection is established).
    4. -
    5. 3.) If you're the server, send the IP that is shown to your friend (eg. through any chat program (ICQ, AIM, IRC, etc.)). Then click on 'Start Server'.
    6. -
    7. 4.) If you're the client, type in the IP address that your friend has given you and then click on 'Connect to Server'.
    8. -
    9. 5.) Chat with your friend on what game to play.
    10. -
    11. 6.) Once decided, make sure that the filename on both sides are the same and that the load window points to the directory where the filename is.
    12. -
    13. 7.) Load the game.
    14. -
    15. 8.) Have fun! (If it worked).
    16. -
    17. 9.) If it said 'Checksum Mismatch', try unzipping the file if it is a .ZIP file. If not, then both sides have a different version of that ROM (eg. One side has the Japanese version while the other has the English, or both versions are English, but are different version releases of the same game).
    18. -
    19. 10.) If you want to chat in-game, press 'T' and type in your line. You can change this key in the Misc -> Game Keys options from the GUI.
    20. -
    -
    - Getting the IP Address -
    -
    - The IP address should be displayed on the connection window. The person being the client has to somehow tell the person who is the server his own IP address in order to connect. However, if your system has multiple IP addresses, the one on the connection window probably isn't the correct one.
    -
    -
    - Connecting -
    -
    - When you're ready, select Internet from the Netplay menu.
    -
    - If you are the server, just click on 'Start Server' and wait for the client to connect.
    - If you are the client, and after obtaining the IP of your friend (your friend has to send you his IP if you cannot figure out his IP on your own), type in the IP into the space provided and then click on 'Connect to Server'. Once you click on it, your system may look as if it's frozen, but it actually isn't. You just have to wait for a bit until it either connects or fails to connect.
    - If it failed to connect, then check to make sure that the IP you entered is correct and that you are properly connected to the net.
    - If the client says 'Found Client' and nothing else happens, chances are that your net connection does not support UDP. If this is the case, both sides will need to deselect 'Allow UDP Connection'. However, it is strongly recommended that you use this option if it is possible since it is much faster than without UDP.
    -
    -
    - Loading a Game -
    -
    - Once successfully connected, the chat window should open up. From there, you can load a game like how you normally load a game. But in order to load a game, both sides have to have their load window pointing to the directory where the game is located and also have to have the filename the same on both sides. Only one side has to load the game. After that, the other side will automatically load the game without the user's interaction. If an error pops up saying 'ROM data mismatch', then it means that either side has a different version of the ROM. This error sometimes happens with zip files even when both files are the same, so it is recommended that you unzip the games and try again if this error occurs.
    -
    -
    - Configuring the Options in the Chat Window -
    -
    - The default settings are recommended.
    -
    - However, if your computer is slower than 266 MHz, then it is recommended that both sides play with back buffer disabled. However, disabling this would degrade controller response.
    -
    - You can increase the latency value if the average ping time between both connections is high (you can tell if the gameplay runs too jerky).
    -
    - Reducing the latency value when back buffer is enabled will improve controller response time. But, however, this will cause the remote player to jump around more in order to keep both sides in sync.
    -
    - For controller options (PL1,PL2,PL3,..), the first checkmarked player would be using Input #1 of the local side. The second checkmarked player would be using Input #2 and so on. Players marked with an 'X' are checkmarked on the remote side.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - Netplay + + + + + + + + + + + + +
    +

    Netplay

    + +
    + For smooth netplay, it is required that both sides have fast computers (look below for requirements). If one side has a slow computer (eg. 200mhz) while the other has a fast one (eg. 800mhz), the slow computer's low framerate will bog down the fast computer, causing poor frame rates on the fast computer. It is also strongly recommended that you keep latency at 3 (or reduce it to 2 for fast paced platform games), allow UDP connections, and keep back buffer enabled.
    +
    + Also, the higher than ping time, the worse the netplay experience, since ping times measure the time it takes for data to get to the other side and back. You can expect a not so great performance if you have a ping time of 400 or greater.
    +
    + Note: You cannot use cheat codes, key combinations, or turbo keys in netplay.
    +
    + Note: Firewall users - You may need to disable your firewall (or just disable it for UDP port 7845) in order to get the UDP protocol that ZSNES's netplay uses to work.

    + +
    + +

    System Recommendations for Smooth Netplay

    + +
    +
      +
    • - Back Buffer must be enabled and the latency value must be 3 or 2.
    • +
    • - The games have to run at least 50 FPS on BOTH computers without netplay. This can completely depend on factors such as CPU, video card, video mode, and the game you are running.
    • +
    • - Your system should be able to handle the UDP protocol. Without it, lost packets can cause lots of in-game pauses in your netplay experience.
    • +
    • - You can also try changing your resolution to different video modes and find the video mode that provides the optimal performance if the current performance isn't satisfactory.
    • +
    • - You will also need an Internet connection with ping times of less than 400ms between both connections.
    • +
    + +
    + +

    Simple Instructions

    + +
    +
      +
    • 1.) Go to Netplay -> Internet.
    • +
    • 2.) Decide who will be the server and who will be the client (Neither has the gameplay advantage since ZSNES treats both the same after a connection is established).
    • +
    • 3.) If you're the server, send the IP that is shown to your friend (eg. through any chat program (ICQ, AIM, IRC, etc.)). Then click on 'Start Server'.
    • +
    • 4.) If you're the client, type in the IP address that your friend has given you and then click on 'Connect to Server'.
    • +
    • 5.) Chat with your friend on what game to play.
    • +
    • 6.) Once decided, make sure that the filename on both sides are the same and that the load window points to the directory where the filename is.
    • +
    • 7.) Load the game.
    • +
    • 8.) Have fun! (If it worked)
    • +
    • 9.) If it said 'Checksum Mismatch', try uncompressing the file if it is compressed. If not, then both sides have a different version of that ROM (eg. One side has the Japanese version while the other has the English, or both versions are English, but are different version releases of the same game).
    • +
    • 10.) If you want to chat in-game, press 'T' and type in your line. You can change this key in the Misc -> Game Keys options from the GUI.
    • +
    + +
    + +

    Getting The IP Address

    + +
    + Your IP address should be displayed on the connection window.
    +
    + The person being the client has to somehow tell the person who is the server his own IP address in order to connect. However, if your system has multiple IP addresses, the one on the connection window probably isn't the correct one.
    + +
    + +

    Connecting

    + +
    + When you're ready, select Internet from the Netplay menu.
    +
    +
      +
    • - If you are the server, just click on 'Start Server' and wait for the client to connect.
    • +
    • - If you are the client, and after obtaining the IP of your friend (your friend has to send you his IP if you cannot figure out his IP on your own), type in the IP into the space provided and then click on 'Connect to Server'. Once you click on it, your system may look as if it's frozen, but it actually isn't. You just have to wait for a bit until it either connects or fails to connect.
    • +
    • - If it failed to connect, then check to make sure that the IP you entered is correct and that you are properly connected to the net.
    • +
    • - If the client says 'Found Client' and nothing else happens, chances are that your net connection does not support UDP. If this is the case, both sides will need to deselect 'Allow UDP Connection'. However, it is strongly recommended that you use this option if it is possible since it is much faster than without UDP.
    • +
    + +
    + +

    Loading A Game

    + +
    + Once successfully connected, the chat window should open up.
    +
    + From there, you can load a game like how you normally load a game. But in order to load a game, both sides have to have their load window pointing to the directory where the game is located and also have to have the filename the same on both sides. Only one side has to load the game. After that, the other side will automatically load the game without the user's interaction.
    +
    + If an error pops up saying 'ROM data mismatch', then it means that either side has a different version of the ROM. This error sometimes happens with .zip files even when both files are the same, so it is recommended that you unzip the games and try again if this error occurs.
    + +
    + +

    Configuring Chat Windows Options

    + +
    + The default settings are recommended.
    +
    + However, if your computer is slower than 266 MHz, then it is recommended that both sides play with back buffer disabled. However, disabling this would degrade controller response.
    +
    + You can increase the latency value if the average ping time between both connections is high (you can tell if the gameplay runs too jerky).
    +
    + Reducing the latency value when back buffer is enabled will improve controller response time. But, however, this will cause the remote player to jump around more in order to keep both sides in sync.
    +
    + For controller options (PL1, PL2, PL3,..), the first checkmarked player would be using Input #1 of the local side. The second checkmarked player would be using Input #2 and so on. Players marked with an 'X' are checkmarked on the remote side.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/readme.htm b/zsnes/docs/Linux/readme.htm index 68392d46..6ee36541 100644 --- a/zsnes/docs/Linux/readme.htm +++ b/zsnes/docs/Linux/readme.htm @@ -1,720 +1,604 @@ - - - - - - - ZSNES Documentation - Linux v1.4 - Readme - - - - - - - - - - - -
    - ZSNES
    - ZSNES Linux v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Readme -
    - ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    -
    - Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    - -
    - What's New -
    - Linux/SDL/POSIX Only: -
      -
    • - Updated icon. [cdbsi]
    • -
    • - Updated Linux video code to Windows Version. [pagefault]
    • -
    • - Fixed problems with nVidia cards. [Diablo-D3]
    • -
    • - Fixed audio problems with broken drivers. [Diablo-D3]
    • -
    • - Added 48khz sound support. [pagefault]
    • -
    • - Updated joystick input support. [theoddone33, Sander]
    • -
    • - Fixed Savestate incrementor, this caused some crashes. [pagefault]
    • -
    • - Cleaned up the Linux Autoconfigure [Diablo-D3]
    • -
    • - Added a couple of things for the start of BeOS compatibility. [theoddone33]
    • -
    • - Fixed 16->32bpp LUT Related bug. [kode54]
    • -
    • - Added hardcoded alt-enter fullscreen toggle. [theoddone33]
    • -
    • - Added dialog for why the video mode couldn't be set. [theoddone33]
    • -
    • - Added Circle buffer patch (savestate fix). [zinx]
    • -
    • - Fixed problem with man page when installing (when man1 directory doesn't exist). [hpsolo]
    • -
    • - Fixed cmd line sound quality. [pagefault]
    • -
    • - Fixed zlib and libpng issues. [theoddone33, pagefault]
    • -
    • - Updated libpng Version checking [theoddone33]
    • -
    • - Added -lm to acinclude.m4 so AC_TRY_RUN doesn't return negative on some systems looking for libpng. [theoddone33]
    • -
    • - Overhauled Makefile. [theoddone33]
    • -
    • - Fixed install target, -D should not be used. [theoddone33]
    • -
    • - Added the name of the start address to the error message, when mprotect fails. [theoddone33]
    • -
    • - Update config.sub. This allows configuration on 64bit targets, and requires autogen.sh to be rerun. [theoddone33]
    • -
    • - Added HQ2X filter! [MaxSt, pagefault, zinx]
    • -
    • - Snapshots now use the full ROM file name. [Nach]
    • -
    • - Prefixed Snapshots with leading zeroes. [Nach]
    • -
    • - Renamed Linux Version to SDL. [pagefault]
    • -
    -
    -All Ports: -
      -
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • -
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, changed much hard coding to variables. Fixed more SRAM bugs than can be counted. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2 now loads and plays great without the Dejap patch. [Nach]
    • - -
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • -
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • -
    • - Removed many, many hacks. [Nach, pagefault]
    • -
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • -
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • -
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • -
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • -
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • -
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • -
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • -
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • -
    • - Fixed a small bug in SPC saving. [pagefault]
    • -
    • - Fixed issues with config file saving. [pagefault, Nach]
    • -
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • -
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • -
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • -
    • - Fixed rewind when using commandline filename. [StatMat]
    • -
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • -
    • - Removed ROM info that appears when loading via command line. [Nach]
    • -
    • - Added a command-line savestate fix. [StatMat]
    • -
    • - Fixed an annoying savestate bug. [pagefault]
    • -
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • -
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • -
    • - Lufia 2 problems are now fixed. [pagefault]
    • -
    • - Emerald Dragon now works - again. [pagefault]
    • -
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • -
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • -
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • -
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • -
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • -
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • -
    • - Added support for many more ROM extensions. [Nach]
    • -
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • -
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • -
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • -
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • -
    • - Added better handling of bad files. [_Demo_, Nach]
    • -
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • -
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • -
    • - Fixed variable types in many locations, ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • -
    • - Added motion blur (Thanks ipher for fixing the entry in the GUI). [pagefault]
    • -
    • - Made ZSNES more HTPC friendly. [pagefault]
    • -
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • -
    • - Unicode support partially supported. Will complete later. [pagefault]
    • -
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • -
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • -
    -
    - We have also greatly improved support for special hardware in ZSNES v1.40.
    - These require special mention: :)
    -
    - - SuperFX core updates:
    - pagefault
    -
    - - SA-1 core updates:
    - pagefault
    -
    - - C4 core updates:
    - Research: anomie
    - Main Code: Nach
    - Special thanks to The Dumper and TRAC!
    -
    - - DSP-1 core updates:
    - Data Retrieval: pagefault, Overload, The Dumper
    - Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
    - Integration: MKendora, Nach
    - Processing Code: pagefault, Nach
    -
    - - DSP-2 Emulation:
    - Data Retrieval: Overload
    - Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
    - Main Code: kentaro-k.21
    - Processing Code: pagefault, kentaro-k.21
    - Special thanks to Lord Nightmare!
    -
    - - S-DD1 Emulation:
    - Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
    - Research: Andreas Naive
    - Main Code: anomie
    - Processing Code: _Demo_, Nach
    - Special thanks to all the other developers and users who worked on this hard project!
    -
    - - ST010 Emulation:
    - Data Retrieval: The Dumper, MKendora
    - Main Code: The Dumper, Overload, Feather, Nach
    - Processing Code: The Dumper
    - Code Fixes: pagefault
    -
    - - Sufami Turbo Support (preliminary):
    - Nach
    -
    - - SD Gundam G-Next and Same Game expansion pack Support:
    - Nach
    -
    - v1.36
    -
      -
    • - Fixed Gunforce, added invalid HDMA modes. (Thanks Overload!) [_Demo_]
    • -
    • - New BRR decoding method, this should resolve all the sound issues introduced in 1.35 and fix new ones. (Noise simulation isn't used anymore) [_Demo_]
    • -
    • - Fixed another bug with command-line netplay. (Windows only) [pagefault]
    • -
    • - Fixed hang in NBA Live 95 and 96. (Thanks Overload!) [_Demo_]
    • -
    • - Fixed sound not working on first run. (Windows only) [pagefault]
    • -
    • - Fixed some more mode 4 issues in the new gfx engine. [pagefault]
    • -
    • - Added offset mode disable toggle to 8-bit new gfx engine. [pagefault]
    • -
    • - Fixed SPC hang in 90 Minutes European Prime Goal by clearing spcram. [_Demo_]
    • -
    • - Updated fix for Clayfighter to fix some bugs in battle. [_Demo_]
    • -
    • - Fixed crash with certain games. (SDL/*nix only) [theoddone33]
    • -
    • - Added better OBC1 detection. [_Demo_]
    • -
    • - Special hack for Samurai Showdown IRQ problem. [_Demo_]
    • -
    • - Special hack for Kamen Rider menu, requires special latch reading. [_Demo_]
    • -
    • - Special hack for Super Famista 1 and 2 SPC bugs. [_Demo_]
    • -
    • - Fixed some more bugs in video code. (Thanks Perryman for the video table) (Windows only) [pagefault]
    • -
    • - Fixed Digital Devil Story hang by modifying the spc code. You must start a new game for the fix to work. [_Demo_]
    • -
    • - Modified work ram init value to 0x55. (Thanks TRAC)
    • -
    - -
    - Disclaimer -
    - The ZSNES development team, including all developers and contributers, are in no way responsible for any damage caused by the use of this software. In addition, ZSNES may not be distributed with ROM images. - -
    - System Requirements -
    -   200MHz Processor (500MHz recommended)
    -   32MB of RAM (64MB recommended, more if SDL is compiled to use X)
    -   3D Graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    -   SDL v1.20 or higher required
    - -
    - Things To Know -
    -
      -
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • -
    • - Several special chip emulation routines (SA-1) have unknown bugs to them.
    • -
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • -
    • - Screen Snapshot, Snapshot Format, and FPS counter are available through a menu by pressing F1 during emulation.
    • -
    • - Screen Snapshot can save in bitmap format (65536 colors) or PNG format (32-bit ARGB color).
    • -
    • - FPS counter currently only works when auto frame rate is on.
    • -
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • -
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • -
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • -
    • - SNES Mouse support is still missing some features, such as speed settings.
    • -
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • -
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • -
    - -
    - Current Progress -
    - The following are implemented: -
      -
    • - Complete 65816 instruction set
    • -
    • - SRAM support
    • -
    • - LoROM and HiROM support
    • -
    • - SlowROM and FastROM support
    • -
    • - Full DMA support
    • -
    • - HIRQ/VIRQ/NMI Interrupts
    • -
    • - Support for most SNES file formats
    • -
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • -
    • - Interleaved format support
    • -
    • - PAL/NTSC timing support
    • -
    -
    - The following are implemented in the new graphics engine 8 bit: -
      -
    • - Combination of line by line and tile based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - Mosaic effects
    • -
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • -
    • - High res 512 resolution and 448/478 vertical resolution
    • -
    • - Windowing effects
    • -
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • -
    -
    - The following are implemented in the old graphics engine: -
      -
    • - Line by line based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - Mosaic effects
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - Single and dual windowing routines
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - 16-bit graphics support
    • -
    • - Offset per tile mode (mode 2/vertical only)
    • -
    • - High res 512 horizontal resolution (missing in 16x16)
    • -
    -
    - Following are present in 16-bit graphics mode: -
      -
    • - Palette changing in the middle of a screen
    • -
    • - Screen addition (full and half)
    • -
    • - Screen subtraction (full)
    • -
    • - Fixed color addition/subtraction
    • -
    • - Window clipping for fixed color
    • -
    -
    - The following are implemented in the new graphics engine 16 bit: -
      -
    • - All of old graphics engine 16bit
    • -
    • - Combination of line by line and tile based graphics engine
    • -
    • - High resolution mode 7
    • -
    • - High resolution 16x16 tiles for mode 5
    • -
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • -
    -
    - The following are present in sound: -
      -
    • - 16bit digital stereo sound
    • -
    • - SPC700 Sound CPU
    • -
    • - DSP Sound Processor -
        -
      • - Echo effects
      • -
      • - FIR filter
      • -
      • - ADSR volume effects
      • -
      • - GAIN volume effects
      • -
      • - Noise effects
      • -
      • - Pitch modulation
      • -
      -
    • -
    -
    - The following are extra features emulated: -
      -
    • - Super NES Mouse support
    • -
    • - Super NES Super Scope support
    • -
    • - Nintendo Super System support (except the menu system)
    • -
    • - SuperFX support (still has a bug or 2 left)
    • -
    • - MultiTap (Multiplayer 5) support (4 players on a single computer, 5 players remote (ipx/modem))
    • -
    • - DSP-1 emulation
    • -
    • - DSP-2 emulation
    • -
    • - SA-1 emulation (not complete)
    • -
    • - OBC1 emulation (still may have bugs)
    • -
    • - S-DD1 emulation
    • -
    • - BS Sattelaview emulation (not complete)
    • -
    • - ST010 emulation
    • -
    • - Sufami Turbo support (not complete)
    • -
    • - SD Gundam G-Next and Same Game expansion pack support
    • -
    • - SPC7110 emulation (via decompression packs)
    • -
    -
    - The following are the features present in ZSNES: -
      -
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • -
    • - Movie recording
    • -
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • -
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • -
    • - Configuration file support (~/.zsnes/zsnesl.cfg)
    • -
    • - 5 player support w/ joystick and gamepad support
    • -
    • - Netplay
    • -
    -
    - The following features are missing: -
      -
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • -
    • - Some modes in offset per tile mode
    • -
    • - Some direct color modes (haven't seen any game that uses them yet)
    • -
    • - True SPC7110 decompression
    • -
    -
    - What will not run (or not play properly): -
      -
    • - Some SuperFX games
    • -
    • - Some BS Sattelaview games
    • -
    • - Games with unknown co-processors
    • -
    • - Games that don't have a valid header
    • -
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • -
    • - Games that require special timing
    • -
    - -
    - ZSNES Default Keys -
    - Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and ESC:
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Disable Backgrounds 1,2,3,4 = 1,2,3,4
    Disable Sprites = 5
    Panic Key (enable all) = 6
    Enable SNES Mouse/SuperScope = 7
    Enable New Graphics Engine = 8
    Disable Windowing = 9
    Disable Offset Mode = 0
    Fast Forward Key = ~
    PopUp Extra Menu = F1
    Save State = F2
    Switch State = F3
    Load State = F4
    Disable Sound Channel = F5 - F12
    Quit = ESC
    -
    - Here are the default keys for the game play (unless modified through the GUI):
    -
    - Player 1:
    - - - - - - - - - - - - - - - - - -
    Up,Down,Left,Right : Cursor Keys
    A,B,X,Y : X,Z,S,A
    L,R : D,C
    Start, Select : Enter, RShift
    - -
    - F1 Menu -
    -
      -
    • Save Snapshot - Saves a snapshot as either .BMP (16-bit) or .PNG (32-bit ARGB).
    • -
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • -
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • -
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • -
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • -
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • -
    • Move This Window - Moves the F1 menu to a different location.
    • -
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are BMP (bitmap) and PNG (Portable Network Graphic).
    • -
    - -
    - Configuration File -
    - Almost everything in zsnesl.cfg should now be editable through the GUI. An exception is the save directory, which is required in order to access games from a read-only medium (such as a CD).
    - -
    - Cheat Codes -
    - Currently, ZSNES supports Game Genie, Pro Action Replay and GoldFinger codes.
    -
    - Here are the steps to get the codes working :
    -
    - 1.) Load the ROM which you want to patch.
    - 2.) Exit to the GUI, enter the code of your choice in the cheat menu.
    - 3.) After that, you may have to RESET the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.
    -
    - NOTE : Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    - -
    - Extra Features -
    - To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    - To enable SNES Super Scope, press 7 three times.
    - To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    -
    - Here are the controls for the Super Scope :
    -
    - Fire = Left mouse button
    - Cursor Mode Button = Right mouse button
    - Pause = Backspace key on keyboard
    - Enable/Disable Autofire = =/+ key on keyboard
    -
    - ZSNES auto-detects the SFX emulation from the header and enables it when found. Also, take note that the SFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    -
    - Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    -
    - IPS patcher:
    - Rename your .IPS file to the ROM filename with the .IPS extension (eg. If your ROM is SD3.SMC and your ips is SD3V05.IPS, rename SD3V05.IPS to SD3.IPS) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .IPS files that are inside .ZIP files.
    - -
    - Bugs -
    - - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    - - Games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    - - The Sound DSP chip still has its bugs (not many though). Most noticeably, no one knows the exact timing of the SPC700 chip.
    - -
    - Contact Information -
    - The ZSNES homepage is located at : http://www.zsnes.com
    -
    - If you have any questions about ZSNES, and you have read through this whole help file to make sure the answer isn't here, then you can post your question at the ZSNES Forums. -

    - Remember - This board should be mainly used for ZSNES related discussion. - ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    -
    - If you wish to contact the authors, you may contact them through:

    - pagefault AT zsnes DOT com
    - _demo_ AT zsnes DOT com
    - n-a-c-h AT users.sf DOT net

    - Remember - No ROM requests please! And don't send any files without permission!
    -
    - Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    - -
    - Credits -
    - ZSNES Linux uses GCC, NASM .98.39, SDL v1.20+, GNU Make, and UPX to compile, link, compress, and execute. Thanks for the work put into these programs.
    -
    - Special thanks to wnelson! Without him, ZSNES would have never existed!
    - Also to Y0SHi for his excellent SNES docs, his help, and his excellent support!
    -
      -
    • Also Thanks to:
    • -
    • - The_Teach of Snes9x for some great info and the nice chats!
    • -
    • - Trepalium of Snes9x for some great info and help!
    • -
    • - Gary of Snes9x and Steve Snake of KGen for being the source of info for sound decompression!
    • -
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • -
    • - MrGrim for his great support!
    • -
    • - Crono for info on Sound Blaster Programming, Surround Sound, Sound Interpolation, and other sound stuff!
    • -
    • - Aquis for the ZSNES logo!
    • -
    • - Alucard for helping us with an issue in the 65816!
    • -
    • - Vertigo for making a compatibility list!
    • -
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • -
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • -
    • - Chris Hickman for redesigning the ZSNES web page!
    • -
    • - CSoft for hosting our web page!
    • -
    • - Marius Fodor for the code for VSync, Sidewinder, Gamepad Pro, and some optimisation info!
    • -
    • - Sardu for some great info and help!
    • -
    • - Lord ESNES for some great help!
    • -
    • - Robert Grubbs for the sidewinder info!
    • -
    • - Nerlaska for some useful info on optimizing and also for some help!
    • -
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • -
    • - DarkForce for some great help!
    • -
    • - Pharos for some keyboard coding help!
    • -
    • - Ivar and Gary of the Snes9x team for all the great help which includes their superfx info and code, DSP1 info, info on interleave formats (hirom and superfx), offset per tile mode, FIR filter, some spc700 and hdma bugs!
    • -
    • - WolfWings ShadowFlight for help on several issues of nasm!
    • -
    • - Wildfire for some help!
    • -
    • - A CoolMan for the algorithm for EAGLE!
    • -
    • - Neill Corlett for some info on the .IPS format and also helping out a lot on improving the sound engine!
    • -
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle Source Codes!
    • -
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • -
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • -
    • - Kode54 for the low pass filter routines!
    • -
    • - Andy Goth for some help on the design of the key combination engine!
    • -
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • -
    • - All those people who helped us by either sending us docs, helping us, supporting us, and reporting bugs!

    • -
    • Special Thanks to:
    • -
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • -
    • - And also to all those whom we forgot!

    • -
    • Special Thanks to all our beta testers for being a great help!
    • -
    • Info on 256x256x256 scanlines mode is from the MAME source. Thanks to those behind MAME!
    • -
    - Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, Nlke, SNEeSe, and SNEMul! And also good luck to the makers of TheSE!
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Linux v1.41 - Readme + + + + + + + + + + + + +
    +

    Readme

    + +
    + ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    +
    + Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    + +
    + +

    What's New

    + +
    +
      +
    • Linux Only:
    • +
    • - Get_Date() now returns the proper value (it always returned the proper value in DOS). [Nach]
    • +
    • - Fixed a memory leak. [Nach]
    • +
    • - Fixed buffer underflow in sound code when rate was changed several times. [Nach]
    • +
    • - Save files can now be correctly saved in locations other than ~/.zsnes. [Nach]
    • +
    • - Updated video selection menu. (Thanks, Aerdan!) [ipher, Nach]
    • +
    • - 256x224 R Full for is now actually 256x224, not 320x240. (Thanks, Pieter Hulshoff!) [ipher]
    • +
    • - 640x480 ODS Win is now actually 640x480, not 512x448. [ipher] +
    • - Added 1280x1024. [ipher]
    • +
    • - Changed text in netplay window to be more clear about TCP/UDP. [pagefault] +
    • - Homepage button to open browser now appears in about box. [Nach]
    • +
    +
    +
      +
    • All Ports:
    • +
    • - Improved accuracy of base rates used for ADSR, GAIN, noise, and echo emulation. [TRAC]
    • +
    • - Fixed GUI escape stack corruption if .srm file could not be written to. [Nach]
    • +
    • - Stereo settings now obey config file. [Nach]
    • +
    • - Fixed framerate loading from config file. [ipher]
    • +
    • - ZSNES no longer hacks itself in order to access variables; this eliminates a few issues we had. [Nach]
    • +
    • - Source code cleanup. [Nach, ipher]
    • +
    • - Makefile overhaul; ZSNES can now be cross compiled. [Nach, ipher, malcster, SamB]
    • +
    • - Fixed some invalid memory reads. [Nach]
    • +
    • - Ported config file creation/loading to C. [MKendora, Nach]
    • +
    • - Percent of execution now takes h-blank values into consideration. [pagefault] +
    • - Fixed Winter Gold FX crash. [Nach]
    • +
    • - Filtered GUI is now enabled by default. [Nach]
    • +
    • - Save location can now be edited in the GUI. [Nach]
    • +
    • - Added option to enable/disable auto IPS patching. [Nach, ipher]
    • +
    • - Saving last ROM info to rominfo.txt can now be turned off. [ipher, Nach]
    • +
    • - Organized options menu, and split off save related options into its own menu. [ipher]
    • +
    • - Moved Super System DIP switches to the chip configuration menu. [ipher]
    • +
    • - More boxes have borders now! [ipher] +
    • - New one-time user reminder text. [grinvader]
    • +
    • - Updated about box. [Nach, ipher]
    • +
    • - Overhauled toaster support. [Nach] +
    + +
    + +

    Previous Updates

    + +
    + v1.40 +
      +
    • Linux Only:
    • +
    • - Updated icon. [cdbsi]
    • +
    • - Updated Linux video code to Windows version. [pagefault]
    • +
    • - Fixed problems with nVidia cards. [Diablo-D3]
    • +
    • - Fixed audio problems with broken drivers. [Diablo-D3]
    • +
    • - Added 48khz sound support. [pagefault]
    • +
    • - Updated joystick input support. [theoddone33, Sander]
    • +
    • - Fixed savestate incrementor; this caused some crashes. [pagefault]
    • +
    • - Cleaned up the Linux Autoconfigure [Diablo-D3]
    • +
    • - Added a couple of things for the start of BeOS compatibility. [theoddone33]
    • +
    • - Fixed 16->32bpp LUT related bug. [kode54]
    • +
    • - Added hardcoded alt-enter fullscreen toggle. [theoddone33]
    • +
    • - Added dialog for why the video mode couldn't be set. [theoddone33]
    • +
    • - Added circle buffer patch (savestate fix). [zinx]
    • +
    • - Fixed problem with man page when installing (when man1 directory doesn't exist). [hpsolo]
    • +
    • - Fixed cmd line sound quality. [pagefault]
    • +
    • - Fixed zlib and libpng issues. [theoddone33, pagefault]
    • +
    • - Updated libpng version checking [theoddone33]
    • +
    • - Added -lm to acinclude.m4 so AC_TRY_RUN doesn't return negative on some systems looking for libpng. [theoddone33]
    • +
    • - Overhauled makefile. [theoddone33]
    • +
    • - Fixed install target; -D should not be used. [theoddone33]
    • +
    • - Added the name of the start address to the error message that occurs when mprotect fails. [theoddone33]
    • +
    • - Update config.sub. This allows configuration on 64bit targets, and requires autogen.sh to be rerun. [theoddone33]
    • +
    • - Added HQ2X filter! [MaxSt, pagefault, zinx]
    • +
    • - Snapshots are now numbered and use the full ROM file name. [Nach]
    • +
    • - Renamed Linux version to SDL. [pagefault]
    • +
    +
    +
      +
    • All Ports:
    • +
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes, and a slew of SRAM fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • +
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, and changed much hard coding to variables. Fixed more SRAM bugs than we can count. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2; it now loads and plays great without the Dejap patch. [Nach]
    • +
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • +
    • - Removed many, many hacks. [Nach, pagefault]
    • +
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • +
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • +
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • +
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • +
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • +
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • +
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • +
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • +
    • - Fixed a small bug in SPC saving. [pagefault]
    • +
    • - Fixed issues with config file saving. [pagefault, Nach]
    • +
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • +
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • +
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • +
    • - Fixed rewind when using commandline filename. [StatMat]
    • +
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • +
    • - Removed ROM info that appears when loading via command line. [Nach]
    • +
    • - Added a command-line savestate fix. [StatMat]
    • +
    • - Fixed an annoying savestate bug. [pagefault]
    • +
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • +
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • +
    • - Lufia 2 problems are now fixed. [pagefault]
    • +
    • - Emerald Dragon now works - again. [pagefault]
    • +
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • +
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • +
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • +
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • +
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • +
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • +
    • - Added support for many more ROM extensions. [Nach]
    • +
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • +
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • +
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • +
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • +
    • - Added better handling of bad files. [_Demo_, Nach]
    • +
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • +
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • +
    • - Fixed variable types in many locations; ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • +
    • - Made ZSNES more HTPC friendly. [pagefault]
    • +
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • +
    • - Unicode support partially supported. Will complete later. [pagefault]
    • +
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • +
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • +
    +
    + We have also greatly improved support for special hardware in ZSNES v1.40.
    + These require special mention:
    +
    +
      +
    • - SuperFX core updates:
      pagefault

    • +
    • - SA-1 core updates:
      pagefault

    • +
    • - C4 core updates:
      Research: anomie
      Main Code: Nach
      Special thanks to The Dumper and TRAC!

    • +
    • - DSP-1 core updates:
      Data Retrieval: pagefault, Overload, The Dumper
      Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
      Integration: MKendora, Nach
      Processing Code: pagefault, Nach

    • +
    • - DSP-2 emulation:
      Data Retrieval: Overload
      Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
      Main Code: kentaro-k.21
      Processing Code: pagefault, kentaro-k.21
      Special thanks to Lord Nightmare!

    • +
    • - S-DD1 emulation:
      Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
      Research: Andreas Naive
      Main Code: anomie
      Processing Code: _Demo_, Nach
      Special thanks to all the other developers and users who worked on this hard project!

    • +
    • - ST010 emulation:
      Data Retrieval: The Dumper, MKendora
      Main Code: The Dumper, Overload, Feather, Nach
      Processing Code: The Dumper
      Code Fixes: pagefault

    • +
    • - Sufami Turbo support (preliminary):
      Nach

    • +
    • - SD Gundam G-Next and Same Game expansion pack support:
      Nach
    • +
    + +
    + +

    Disclaimer

    + +
    + The ZSNES development team, including all developers and contributers, is in no way responsible for any damage caused by the use of this software. Please read the license for more details. In addition, ZSNES may not be distributed with ROM images.
    + +
    + +

    System Requirements

    + +
    +
      +
    • - 200MHz processor (500MHz recommended)
    • +
    • - 32MB of RAM (64MB recommended; more if SDL is compiled to use X)
    • +
    • - 3D graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    • +
    • - SDL v1.20 or higher required
    • +
    + +
    + +

    Things To Know

    + +
    +
      +
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • +
    • - Several special chip emulation routines have unknown bugs to them.
    • +
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • +
    • - Screen Snapshot, Snapshot Format, and FPS Counter are available through a menu by pressing F1 during emulation.
    • +
    • - Screen Snapshot can save in PCX format (8bit color), bitmap format (65536 colors), or PNG format (32bit ARGB color).
    • +
    • - FPS Counter currently only works when auto frame rate is on.
    • +
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • +
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • +
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • +
    • - SNES Mouse support is still missing some features, such as speed settings.
    • +
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • +
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • +
    + +
    + +

    Current Progress

    + +
    +
      +
    • The following are implemented:
    • +
    • - Complete 65816 instruction set
    • +
    • - SRAM support
    • +
    • - LoROM and HiROM support
    • +
    • - SlowROM and FastROM support
    • +
    • - Full DMA support
    • +
    • - HIRQ/VIRQ/NMI Interrupts
    • +
    • - Support for most SNES file formats
    • +
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • +
    • - Interleaved format support
    • +
    • - PAL/NTSC timing support
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 8bit:
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - Mosaic effects
    • +
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • +
    • - High res 512 resolution and 448/478 vertical resolution
    • +
    • - Windowing effects
    • +
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • +
    +
    +
      +
    • The following are implemented in the old graphics engine:
    • +
    • - Line by line based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - Mosaic effects
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - Single and dual windowing routines
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - 16bit graphics support
    • +
    • - Offset per tile mode (mode 2/vertical only)
    • +
    • - High res 512 horizontal resolution (missing in 16x16)
    • +
    +
    +
      +
    • Following are present in 16bit graphics mode:
    • +
    • - Palette changing in the middle of a screen
    • +
    • - Screen addition (full and half)
    • +
    • - Screen subtraction (full)
    • +
    • - Fixed color addition/subtraction
    • +
    • - Window clipping for fixed color
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 16bit:
    • +
    • - All of old graphics engine 16bit
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - High resolution mode 7
    • +
    • - High resolution 16x16 tiles for mode 5
    • +
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • +
    +
    +
      +
    • The following are present in sound:
    • +
    • - 16bit digital stereo sound
    • +
    • - SPC700 Sound CPU
    • +
    • - DSP Sound Processor +
        +
      • - Echo effects
      • +
      • - FIR filter
      • +
      • - ADSR volume effects
      • +
      • - GAIN volume effects
      • +
      • - Noise effects
      • +
      • - Pitch modulation
      • +
      +
    • +
    +
    +
      +
    • The following are extra features emulated:
    • +
    • - Super NES Mouse
    • +
    • - Super NES Super Scope
    • +
    • - Nintendo Super System (except the menu system)
    • +
    • - SuperFX chip (still has a bug or 2 left)
    • +
    • - MultiTap (5 player support)
    • +
    • - DSP-1 and DSP-2 chips
    • +
    • - SA-1 chip (not complete)
    • +
    • - OBC1 chip (still may have bugs)
    • +
    • - S-DD1 chip
    • +
    • - BS Sattelaview (not complete)
    • +
    • - Seta 10 (ST010) chip
    • +
    • - Sufami Turbo (not complete)
    • +
    • - SD Gundam G-Next and Same Game expansion packs
    • +
    • - SPC7110 chip (via decompression packs)
    • +
    +
    +
      +
    • The following are the features present in ZSNES:
    • +
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • +
    • - Movie recording
    • +
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • +
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • +
    • - Configuration file support (zsnesl.cfg)
    • +
    • - 5 player support w/ joystick and gamepad support
    • +
    • - Netplay
    • +
    +
    +
      +
    • The following features are missing:
    • +
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • +
    • - Some modes in offset per tile mode
    • +
    • - Some direct color modes (haven't seen any game that uses them yet)
    • +
    • - True SPC7110 decompression
    • +
    +
    +
      +
    • What will not run (or not play properly):
    • +
    • - Some SuperFX games
    • +
    • - Some BS Sattelaview games
    • +
    • - Games with unknown co-processors
    • +
    • - Games that don't have a valid header
    • +
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • +
    • - Games that require special timing
    • +
    + +
    + +

    ZSNES Default Keys

    + +
    +
      +
    • Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and Esc:
    • +
    • Disable Backgrounds 1, 2, 3, and 4 -- 1, 2, 3, 4
    • +
    • Disable Sprites -- 5
    • +
    • Enable All Backgrounds and Sprites -- 6
    • +
    • Enable SNES Mouse or Super Scope -- 7
    • +
    • Enable New Graphics Engine -- 8
    • +
    • Disable Windowing -- 9
    • +
    • Disable Offset Mode -- 0
    • +
    • Fast Forward Key -- ~
    • +
    • F1 Menu -- F1
    • +
    • Save State -- F2
    • +
    • Switch State -- F3
    • +
    • Load State -- F4
    • +
    • Disable Sound Channel -- F5 - F12
    • +
    • Quit -- Esc
    • +
    +
    +
      +
    • Here are the default keys for the game play (unless modified through the GUI):
    • +
    • Player 1: +
        +
      • Directions Up, Down, Left, and Right -- Cursor Keys
      • +
      • Buttons A, B, X, and Y -- Keys X, Z, S, and A
      • +
      • Buttons L and R -- Keys D and C
      • +
      • Buttons Start and Select -- Enter and Right Shift
      • +
      +
    • Player 2: +
        +
      • Directions Up, Down, Left, and Right -- Keys K, M, N, and ,
      • +
      • Buttons A, B, X, and Y -- Keys D, X, S, Z
      • +
      • Buttons L and R -- Keys F and c
      • +
      • Buttons Start and Select -- Left Ctrl and Left Alt
      • + +
      + +
    + +

    F1 Menu

    + +
    + +
      +
    • Save Snapshot - Saves a snapshot as either .pcx (8bit), .bmp (16bit), or .png (32bit ARGB).
    • +
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • +
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • +
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • +
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • +
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • +
    • Move This Window - Moves the F1 menu to a different location.
    • +
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are PCX (available only in 8bit color depth mode), BMP (bitmap) and PNG (Portable Network Graphic).
    • +
    + +
    + +

    Configuration File

    + +
    + Almost everything in zsnesl.cfg should now be editable through the GUI. The GUI also has a few more options that are not found in the configuration file, such as more graphic pack directory configurations.
    + +
    + +

    Cheat Codes

    + +
    + Currently, ZSNES supports Game Genie, Pro Action Replay, and GoldFinger codes.
    +
    +
      +
    • Here are the steps to get the codes working:
    • +
    • 1.) Load the ROM which you want to patch.
    • +
    • 2.) Exit to the GUI and enter the code of your choice in the cheat menu.
    • +
    • 3.) After that, you may have to reset the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.

    • +
    • NOTE: Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    • +
    + +
    + +

    Extra Features

    + +
    + To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    + To enable SNES Super Scope, press 7 three times.
    + To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    +
    +
      +
    • Here are the controls for the Super Scope:
    • +
    • Fire -- Left mouse button
    • +
    • Cursor Mode Button -- Right mouse button
    • +
    • Pause -- Backspace key on keyboard
    • +
    • Enable/Disable Autofire -- =/+ key on keyboard
    • +
    +
    + ZSNES auto-detects the SuperFX emulation from the header and enables it when found. Also, take note that the SuperFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    +
    + Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    +
    + IPS patcher:
    + Rename your .ips file to the ROM filename with the .ips extension (eg. If your ROM is SD3.smc and your ips is SD3V05.ips, rename SD3V05.ips to SD3.ips) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .ips files that are inside .zip files.
    + +
    + +

    Bugs

    + +
    +
      +
    • - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    • +
    • - Some games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    • +
    • - The Sound DSP chip still has its bugs (not many though). Additionally, no one knows the exact timing of the SPC700 chip.
    • +
    + +
    + +

    Contact Information

    + +
    + The ZSNES homepage is located at : http://www.zsnes.com
    +
    + If you have any questions about ZSNES, and you have read through this whole documentation to make sure the answer isn't here, then you can post your question at the ZSNES board. +

    + Remember - This board should be mainly used for ZSNES related discussion.
    + ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    +
    + If you wish to contact the authors, you may contact them through:

    + pagefault AT zsnes DOT com
    + _demo_ AT zsnes DOT com
    + n-a-c-h AT users.sf DOT net

    + Remember - No ROM requests please! And don't send any files without permission!
    +
    + Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    + +
    + +

    Credits

    + +
    + ZSNES Linux uses GCC, NASM .98, SDL v1.20+, GNU Make, and UPX to compile, link, compress, and execute. Thanks for the work put into these programs.
    +
    +
      +
    • Special Thanks to:
    • +
    • - wnelson; without him, ZSNES would have never existed!
    • +
    • - Y0SHi for for his excellent SNES docs, his help, and his excellent support!
    • +
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • +
    • - All of our beta testers for being a great help!
    • +
    • - The MAME team; info on 256x256x256 scanlines mode is from the MAME source!
    • +
    +
    +
      +
    • Also Thanks to:
    • +
    • - The_Teach of Snes9x for some great info and the nice chats!
    • +
    • - Trepalium of Snes9x for some great info and help!
    • +
    • - Gary of Snes9x and Steve Snake of Kega for being the source of info for sound decompression!
    • +
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • +
    • - MrGrim for his great support!
    • +
    • - Crono for info on Sound Blaster programming, surround sound, sound interpolation, and other sound stuff!
    • +
    • - Aquis for the ZSNES logo!
    • +
    • - Alucard for helping us with an issue in the 65816!
    • +
    • - Vertigo for making a compatibility list!
    • +
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • +
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • +
    • - Chris Hickman for redesigning the ZSNES web page!
    • +
    • - CSoft for hosting our web page!
    • +
    • - Marius Fodor for the code for Vsync, Sidewinder, Gamepad Pro, and some optimization info!
    • +
    • - Sardu for some great info and help!
    • +
    • - Lord ESNES for some great help!
    • +
    • - Robert Grubbs for the Sidewinder info!
    • +
    • - Nerlaska for some useful info on optimizing and also for some help!
    • +
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • +
    • - DarkForce for some great help!
    • +
    • - Pharos for some keyboard coding help!
    • +
    • - Ivar and Gary of the Snes9x team for all their great help, which includes their SuperFX info and code, DSP-1 info, info on interleave formats (HiROM and SuperFX), offset per tile mode, FIR filter, and some insights on SPC700 and HDMA bugs!
    • +
    • - WolfWings ShadowFlight for help on several issues of NASM!
    • +
    • - Wildfire for some help!
    • +
    • - A CoolMan for the algorithm for EAGLE!
    • +
    • - Neill Corlett for some info on the .ips format and also helping out a lot on improving the sound engine!
    • +
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle source codes!
    • +
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • +
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • +
    • - kode54 for the low pass filter routines!
    • +
    • - Andy Goth for some help on the design of the key combination engine!
    • +
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • +
    • - ipher for his contributions and for compiling and releasing CVS builds!
    • +
    • - grinvader for his dedication and for contributing some small code changes!
    • +
    • - All those people who contributed by either updating the docs, helping us, supporting us, or reporting bugs!
    • +
    +
    + Also thanks to all those whom we forgot!
    +
    + Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, SNEeSe, and Super Sleuth!
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Linux/style.css b/zsnes/docs/Linux/style.css index c00ac197..d4b1048b 100644 --- a/zsnes/docs/Linux/style.css +++ b/zsnes/docs/Linux/style.css @@ -1,141 +1,140 @@ -body{ - background-color:#ffffff; - font:normal 11px Verdana, Sans-Serif; - color:#000000; - margin:0px; -} - -img { - border-width:0px; -} - -.PHeader{ - background-color:#C8CFD8; - color:#000000; - padding:3px; -} -.PSubHeader{ - background-color:#A4A9B0; - color:#000000; - padding:3px; - font:bold 11px Verdana, Sans-Serif; - text-align:center; -} - -a:link, a:active, a:visited{ - background-color:transparent; - text-decoration:underline; - color:#203040; -} -a:hover{ - background-color:#d0d0d0; - text-decoration:underline; - color:#506070; -} - -.MMenu{ - width:200px; - padding:10px; - padding-top:0px; - padding-right:0px; - vertical-align:top; -} -.MBody{ - padding:10px; - padding-top:0px; - vertical-align:top; -} - -.TBox{ - background-color:#C8CFD8; - border:solid 1px #404040; - color:#000000; -} -.TBoxHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding:0px; - padding-left:4px; - background-image: url( '../images/corner.png' ); - background-position:top right; - background-repeat: no-repeat; - height:25px; -} -.TBoxSubHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding-left: 5px; -} -.TBoxText{ - background-color:#C8CFD8; - color:#000000; - font:normal 13px Verdana, Sans-Serif; - padding:5px; -} -.TBoxFoot{ - background-color:#A4A9B0; - color:#000000; - font:bold 12px Verdana, Sans-Serif; - padding:4px; -} - -.FListing{ - background-color:#000000; - color:#ffffff; -} -.FListing td{ - background-color:#e0e0e0; - color:#000000; - width: 30%; - text-align:center; -} -.FListing td.FLabel{ - background-color:#000000; - color:#ffffff; - font:bold 11px Verdana, Sans-Serif; - width: 10%; - text-align:left; -} -.FListing th{ - background-color:#405060; - color:#ffffff; - text-align:center; -} - .small{ - font-size:11px; -} -.big{ - font-size:16px; -} - -p{ - text-indent: 12px; -} - -input, textarea, select { - background-color:#ffffff; - color:#000000; - border:solid 1px #000000; - font:normal 12px Verdana, Sans-Serif; - padding:3px; -} - -.indent_list{ - margin-top: 0px; - margin-bottom: 0px; - list-style-type:none; - padding-left:24px; -} - -.indent_list ul, li{ - list-style-type:none; - margin-left: -12px; - /*padding-left: -12px;*/ - text-indent: -12px; -} - -abbr { -cursor: help; +a:link, a:active, a:visited { + background-color: transparent; + text-decoration: underline; + color: #203040; +} +a:hover { + background-color: #D0D0D0; + text-decoration: underline; + color: #506070; +} + +#zsnes-documentation { + margin: 0px; + background-color: #FFFFFF; + font: normal 11px Verdana, Sans-Serif; +} + +#header { + padding: 3px; + background-color: #C8CFD8; +} +#header h1 { + float: left; + margin: 0px; +} +#header h2 { + padding: 83px 0px 0px 0px; + margin: 0px; +} +#header_oslogo { + float: right; +} + +#header_nav { + background-color: #A4A9B0; + padding: 3px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; + border-bottom: solid 1px #404040; +} + +#navigation { + float: left; + width: 192px; + margin: 10px; + padding: 1px 1px 3px 1px; + background-color: #C8CFD8; + border: solid 1px #404040; + font: Normal 13px Verdana, Sans-Serif; +} +#navigation h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url( 'images/corner.png' ); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#navigation ul { + list-style-type: none; + margin: 0px 0px 0px -20px; + padding: 0px 4px 0px 41px; +} + +#content { + margin: 10px 10px 10px 216px; + padding: 1px; + background-color: #C8CFD8; + border: solid 1px #404040; +} +#content h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url('images/corner.png'); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#content h2 { + background-color: #A4A9B0; + margin: 0px; + padding: 3px; + font: Bold 14px Arial, Sans-Serif; +} +.content_body { + margin: 0px; + padding: 4px; + font: Normal 13px Verdana, Sans-Serif; +} +.content_body ul { + list-style-type: none; + margin: 0px 0px 0px -24px; + text-indent: -12px; + padding: 0px 4px 0px 52px; +} + +#footer { + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; +} + +#version { + margin-top: 8px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-size: 8px; + color: #BBBBBB; +} + +.list_head { + padding: 3px; + margin: 0px 0px 0px -20px; + font-weight: bold; +} + +.faq_question { + margin: 0px 0px 0px -16px; + font-weight: bold; +} + +.faq_answer { + margin: 0px 0px 0px -16px; +} + +.previous_version_number { + font-weight: bold; + text-decoration: underline; } \ No newline at end of file diff --git a/zsnes/docs/Windows/about.htm b/zsnes/docs/Windows/about.htm index f62e1ba0..b41c5b11 100644 --- a/zsnes/docs/Windows/about.htm +++ b/zsnes/docs/Windows/about.htm @@ -1,116 +1,98 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - About - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - -
    - About -
    - The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
    -
    - Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - About + + + + + + + + + + + + +
    +

    About

    + +
    + The ZSNES Documentation Project was started by RichardC in an attempt to format all of the ZSNES documentation into an easy to read, easy to access collection.
    +
    + Special thanks to Nach and the ZSNES community for all the help and support they gave to the project and me.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/credits.htm b/zsnes/docs/Windows/credits.htm index 71c5a87a..cbc655d2 100644 --- a/zsnes/docs/Windows/credits.htm +++ b/zsnes/docs/Windows/credits.htm @@ -1,172 +1,144 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - Credits - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Credits -
    - Developers -
    - zsKnight
    - _Demo_
    - pharos
    - pagefault
    - Nach
    -
    - Contributers -
    - StatMat
    - ipher
    - theoddone33
    - Siloh
    -
    - Documentation Writers/Contributers -
    - RichardC
    - Nach
    - LDAWG
    - kevman
    - IceFox
    - Noxious Ninja
    - Clements
    -
    - Special Thanks -
    - Radio
    -
    - Donations -
    - ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - Credits + + + + + + + + + + + + +
    +

    Credits

    + +
    +
    + +

    Developers

    + +
    + zsKnight
    + _Demo_
    + Pharos
    + pagefault
    + Nach
    +
    + +

    Contributers

    + +
    + StatMat
    + ipher
    + theoddone33
    + Siloh
    + Jonas Quinn
    + TRAC
    + Diablo-D3
    + Overload
    + zinx
    +
    + +

    Documentation Writers/Contributers

    + +
    + RichardC
    + Nach
    + LDAWG
    + kevman
    + IceFox
    + Noxious Ninja
    + Clements
    + Jonas Quinn
    +
    + +

    Special Thanks

    + +
    + Radio
    +
    + +

    Donations

    + +
    + ziola, Pugz, Micropolis, Alex Chavez, GenIV (former sysop of POT-D), 52, ShadowNall, DapoBelg, Zhocef, H-Clone, CC_Devil, Brian Day, Evan Yost, Sarany Oum, Gabriel Golcher, Tyson Anderson, Dans Wharehouse, Shaun MacPherson, Alain Bougeniere, Oliver Welsh, Daryl Johnson, Ivan Kanis, Taras Tyulyakov, Meng Wu, Shengjie Wu, Dustin Sides, Eric VanHeest, Anthony Borel, Erik Tande, Denis Evans, Feilos, cpickett, and stainless.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/faq.htm b/zsnes/docs/Windows/faq.htm index 54635253..84c49308 100644 --- a/zsnes/docs/Windows/faq.htm +++ b/zsnes/docs/Windows/faq.htm @@ -1,812 +1,368 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - Frequently Asked Questions - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - FAQ - -
    - General Issues -
    - Q: Why does ZSNESw crash and give me an error with dinput.dll?
    - Q: Why do I get a black (or corrupted) box when I start up ZSNESw?
    - Q: Why in the GUI under Config/Options are some of the choices gone?
    - Q: How do I use CD-ROMs with ZSNESw?
    - Q: Why is netplay choppy/slow?
    - Q: Why aren't my settings saved after I close ZSNES?
    - -
    - Sound Compatability Issues -
    - Q: Will ZSNES Windows be able to use my sound card now? It wouldn't work for me in the DOS version.
    - Q: How come I don't get any sound?
    - Q: ZSNES Windows tends to have some static when playing games. Is there any way to remove it?
    - Q: How come stereo is reversed?
    - -
    - Video Issues -
    - Q: Why do I get a dark line every quarter inch roughly on my screen when I use 25/50% scanlines in a full screen stretched video mode?
    - Q: In the Video section where I set my resolution, what do those letters stand for to the right of the resolution?
    - Q: Will ZSNES Windows support a 3DFX graphics mode?
    - Q: Are there transparencies in ZSNES?
    - Q: How come the graphics are really screwed up?
    - Q: How come the video is choppy with an FPS of 60 and Vsync on?
    - Q: What is the KitchenSync, and how do I enable it?
    - -
    - Game Compatibility -
    - Q: Why doesn't *name of game* work on ZSNES?
    - Q: Can you get *name of game* working by the next release?
    - Q: Why is *name of game* not working in v.*version #* of ZSNES? It was working before.
    - Q: This game tells me that it is not compatible with the MultiTap (or an external device attached). What should I do?
    - Q: How do I improve the compatibility of ZSNES?
    - Q: Why am I experiencing problems with Chrono Trigger?
    - Q: What games use which DSP chip? How many of the DSP chips are emulated?
    - -
    - Speed Issues -
    - Q: Why is ZSNES slow?
    - Q: Can you please make ZSNES faster?
    - Q: Can you implement dynamic recompilation into ZSNES?
    - Q: Why does the game slow down even though I'm using auto frame rate and the FPS is pretty high?
    - -
    - Keyboard/Joystick Issues -
    - Q: Will ZSNES Windows now be able to use my Windows joystick/gamepad?
    - Q: Why can't I press more than 2 keys at a time?
    - Q: How come my joystick keeps holding in one direction?
    - Q: How do I use both my keyboard and joystick for the 1st player?
    - -
    - Cheat Issues -
    - Q: How come the game genie codes don't work?
    - Q: How do I use .CHT files?
    - Q: Why doesn't ZSNES support multi-line codes?
    - -
    - Freezing/Crashing Issues -
    - Q: When I load a ROM, how come ZSNES crashes?
    - -
    - Miscellaneous -
    - Q: How does the auto .IPS patching feature work?
    - Q: Where do I get the games?
    - Q: How do I convert .ZMV movies to AVI/DIVX/WMV/MPEG?
    - Q: Can you make a Mac/PocketPC/PS2/whatever port?
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Answers -
    - General Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Why does ZSNESw crash and give me an error with dinput.dll?
    A:If you get this error, download and install the latest version of DirectX. If you already have already had the newest version of DirectX installed for a while, try re-installing it (and make sure that you're installing DirectX v8.0a or higher).
     
    Q:Why do I get a black (or corrupted) box when I start up ZSNESw?
    A:First of all, make sure that you have the latest version of DirectX installed (see above question). If that didn't help, check your desktop color settings and make sure that the number of colors is set to either 16bit or 32bit (since ZSNESw will only work with those modes).
     
    Q:Why in the GUI under Config/Options are some of the choices gone?
    A:Basically, they have become obsolete due to the abilities of Windows.
     
    Q:How do I use CD-ROMs with ZSNESw?
    A:You need to define a save directory that points to your hard drive. In order to do this, use a text editing program such as WordPad or Notepad and open up zsnesw.cfg, which should be located in the directory where you installed ZSNESw (this will only appear after you run ZSNESw at least once). Then look for the line SaveDirectory= and enter the directory where you want all the writeable files to be stored.
     
    Q:Why is netplay choppy/slow?
    A:Please read the Netplay section that is included in this documentation.
     
    Q:Why don't my settings get saved after I close ZSNES?
    A:Make sure zsnesw.cfg, which is created in the same directory as ZSNES, is not marked read-only.
    -
    - Sound Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Will ZSNES Windows be able to use my sound card now? It wouldn't work for me in the DOS version.
    A:It is very likely that your sound card will in fact work given that your card is supported by Windows and DirectSound from Microsoft's DirectX.
     
    Q:How come I don't get any sound?
    A:There could be several situations:
    Either you accidentally disabled sound (You can enable it through the GUI), you don't have a sound card, or the sound drivers aren't properly installed in your system.
     
    Q:ZSNES Windows tends to have some static when playing games. Is there any way to remove it?
    A:First of all, make sure that you have the latest sound drivers installed. Also, the problem could be in relation to many different variables. The emulator uses DirectSound for audio so it is likely not an issue with Windows but most likely a setting in the emulator. The problem could be in relation to using a lower khz value than the SNES uses, which is 32000khz. Another more likely reason is that you have one of the special sound filters engaged. For higher end cards (better than SB16), it appears that the Low Pass Filter can cause static.
     
    Q:How come stereo is reversed?
    A:Turn on 'Reverse Stereo' in the Sound configuration in the GUI.
    -
    - Video Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Why do I get a dark line every quarter inch roughly on my screen when I use 25/50% scanlines in a full screen stretched video mode?
    A:This is a video card based issue in which your card does not scale the video image properly.
     
    Q:In the Video section where I set my resolution, what do those letters stand for to the right of the resolution?
    A:There are four different sets of letters which are R, S, DR, and DS. R stands for ratio as these modes will retain the screen size ratio to the output of a real SNES. S stands for stretched, which means that any of these modes will stretch the image to the exact size of the resolution you have chosen. The D in DR/DS means high resolution, which allows for the use of interpolation, 25/50% scanlines, and the other graphic filters.
     
    Q:Will ZSNES Windows support a 3DFX graphics mode?
    A:Probably not; the author has little interest in adding support for it.
     
    Q:Are there transparencies in ZSNES?
    A:Yes, transparencies are in ZSNES. If something is not showing that should, try pressing '6', which is the default to turn on all layers.
     
    Q:How come the graphics are really screwed up?
    A:It's probably a problem with the emulation. You can try running the game at 80% or 120% execution, which can be set in the zsnesw.cfg through the DOS prompt or another editor. It might fix your problem, but then again maybe it won't be the solution.
     
    Q:How come the video is choppy with an FPS of 60 and Vsync on?
    A:Your monitor needs to be set for a refresh rate that is a multiple of the framerate of the game. For an NTSC game, it's 60. You need to either set the refresh rate in Windows to a multiple of 60 (KitchenSync, see below), or start ZSNES with the -6 switch. There is no -5 switch for PAL.
     
    Q:What is the KitchenSync, and how do I enable it?
    A:This makes NTSC games (60 hz) run at 120 hz, and PAL games (50 hz) run at 100 hz. To enable it, first create a shortcut to ZSNESw in Windows. Next, right-click on the shortcut and choose Properties. Then, put the cursor right after the quotation marks in the Target box, press the space bar, and type -K. Finally, click OK. If ZSNESw crashes or refuses to start after enabling this, your monitor does not support the 100/120 hz refresh rate.
    -
    - Compatibility Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Why doesn't *name of game* work on ZSNES?
    A:Getting the compatibility higher is a very hard task to do. We're always trying to get more games working.
     
    Q:Can you get *name of game* working by the next release?
    A:We're always trying, but we can never guarantee a specific game will be working because of the difficulties involved in bug fixing.
     
    Q:Why is *name of game* not working in v.*version #* of ZSNES? It was working before.
    A:Whenever we change something in the emulation, whether it's optimization or bug fixes, it has a good potential to have caused a problem elsewhere. Usually, these problems aren't discovered until after a release.
     
    Q:This game tells me that it is not compatible with the MultiTap. What should I do?
    A:In the Config menu, go to Add-Ons and choose None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". Additionally, you could add an NSRT header to your ROM if you desire.
     
    Q:How do I improve the compatibility of ZSNES?
    A:Turning on sound helps a lot here. Also, in the ZSNES configuration file, try to keep the % of execution at 100%. If a game still doesn't work, try tweaking the percentage of execution to both 120% or 80%. If that still doesn't work, then it's either a corrupt rom, a game that requires a special chip, or a bug in ZSNES.
     
    Q:Why am I experiencing problems with Chrono Trigger?
    A:If you cannot press the L,R, and A buttons at the same time on your keyboard, then you will need to assign both the L and R key to the same key, such as L and R to PageUp and A to Home. Pressing PageUp+Home will be then be the same as pressing L,R, and A together. This is a hardware limitation of the keyboard, not a bug in ZSNES. If this bothers you, you might want to use a gamepad if possible.
     
    Q:What games use which DSP chip? How many of the DSP chips are emulated?
    A:There are two hardware DSP chips: Nintendo's DSP and Seta's DSP. Nintendo's DSP has 4 different major firmwares of which two, the DSP-1 and DSP-2, are supported. Games that are known to use the Nintendo DSP chips include:
    -
    - DSP-1: Pilotwings, Mario Kart, Suzuka 8 Hours, Lock On, Michael Andretti's Indy Car Challenge, Super Bases Loaded 2, Ballz
    - DSP-2: Dungeon Master
    - DSP-3: SD Gundam GX
    - DSP-4: Top Gear 3000
    -
    - Seta's DSP has 2 major firmwares. ZSNES supports the first one, known as the Seta 10 (ST010). Games that are known to use the Seta DSP chips include:
    -
    - Seta 10: F1 ROC 2
    - Seta 11: Hayazashi Nidan Morita Shougi
    -
    - There is also a Seta RISC proccessor, the Seta 18 (ST018), which is not yet emulated by ZSNES. It is used by Hayazashi Nidan Morita Shougi 2. -
    -
    - Speed Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Why is ZSNES slow?
    A:For the Windows version, you might want to change your video mode to different settings until you find the mode that's optimal in performance.

    Emulating a SNES is slow because it is a complex system. Also, ZSNES by default uses a tile/line engine which is newly completed in v1.0. This engine is faster than the old, so if the speed isn't up to par you may try a solution below. Or your computer just may be too slow.

    Vsync, by nature of syncing to the monitor, is also slower. So if speed is paramount to you, Vsync should be disabled. You should also use auto frame rate and frame skip.
     
    Q:Can you please make ZSNES faster?
    A:We're always trying and there is still a lot of room left for optimization, but a lack of time keeps us from implementing it.
     
    Q:Can you implement dynamic recompilation into ZSNES?
    A:There are no plans to implement it since it doesn't seem necessary. The SNES only uses a 3mhz CPU compared to, say, the 93mhz CPU inside the Nintendo 64. Implementing a dynamic recompilation engine would be hard work and would not improve performance by much.
     
    Q:Why does the game slow down even though I'm using auto frame rate and the FPS is pretty high?
    A:A game slows down like that when it executes its code beyond the speed of CPU emulation that ZSNES currently handles. To reduce slowdowns, increase the percentage of execution by using editing zsnesw.cfg.
    -
    - Keyboard/Joystick Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:Will ZSNES Windows now be able to use my Windows joystick/gamepad?
    A:Yes, the controls are now handed via DirectInput so all Windows based control devices should work within ZSNES Windows.
     
    Q:Why can't I press more than 2 keys at a time?
    A:It's mainly a limitation of the PC keyboard. If you want to press more than 2 keys at a time, either use a joystick or change the keyboard keys around until you find a combination where you can press more than 2 keys at a time. Another technique that works is to set multiple buttons to a single key. That way, pressing that key presses multiple buttons at the same time.
     
    Q:How come my joystick keeps holding in one direction?
    A:This happens when you hold a direction when ZSNES Windows starts up. To fix this, exit ZSNES and reload to recalibrate. Clicking on SET in the input device window also calibrates the joystick, but it also resets the controls to the default joystick settings.
     
    Q:How do I use both my keyboard and joystick for the 1st player?
    A:In the GUI, enter the CONFIG -> OPTIONS menu. Then check 'USE Pl1/2 AS Pl3/4'. Once you've done that, Player 3 controls will control Player 1, so if you have joystick set on Player 1, set Player 3 as keyboard. This disables MultiTap emulation, however.
    -
    - Cheat Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:How come the Game Genie codes don't work?
    A:You probably didn't insert the '-'. Otherwise, try clicking on the FIX button once while the highlight is over the code.
     
    Q:How do I use .CHT files?
    A:Copy the .CHT file to the ROM directory or, if you have a save directory defined, copy it to the save directory. Then rename the .CHT file if necessary so that the filename before the . matches the ROM file.
     
    Q:Why doesn't ZSNES support multi-line codes?
    A:It does. Just enter each line as a code.
    -
    - Freezing/Crashing Issues - -
    - - - - - - - - - -
    Q:When I load a ROM, how come ZSNES crashes?
    A:For ZSNESw, you first might want to see if you have any other major program running in the background (eg. Winamp). If it still crashes after you close those programs, you might want to download and install the newest version of DirectX.

    Odds are, if the emulator crashes as you load a ROM, then it is probably not compatible with ZSNES Windows due to it being incomplete, having a bad header, or having something else in it that makes it broken.
    -
    - Miscellaneous Issues - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Q:How does the auto .IPS patching feature work?
    A:The auto .IPS feature works by copying the .IPS file to the directory of your ROM file or, if you have a save directory defined, into the save directory. Next, rename the .IPS file so that it matches the ROM filename (eg. If your ROM filename is THISGAME.SMC, then your .IPS filename needs to be THISGAME.IPS.). ZSNES uses the ROM file name, even with zipped files. So, for example, TG.ZIP containing THISGAME.SMC is still patched by THISGAME.IPS. Additionally, if you have IPS patches inside a zipped file, ZSNES will automatically patch with the first IPS file it finds.

    If, after doing the above, you still have problems with this feature, you may need to add or remove a header in your ROM. Use a utility such as NSRT to do this.
     
    Q:Where do I get the games?
    A:The ZSNES Team will *NOT* provide any games or any links to games.
     
    Q:How do I convert .ZMV movies to AVI/DIVX/WMV/MPEG?
    A:You can't, really. ZMVs are only a save state and the recorded sequence of button presses. The only way you can do it is to use another program to capture the video from ZSNES, such as SnagIt.
     
    Q:Can you make a Mac/PocketPC/PS2/whatever port?
    A:Since ZSNES is written in assembly, ports to any systems that are not 100% x86 compatible are impossible. For x86 compatible machines, such as the XBox, it is still difficult. Try Snes9x for other systems.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - FAQ + + + + + + + + + + + + +
    +

    Frequently Asked Questions (FAQ)

    + +
    + +
    + +

    General Questions

    + + + +

    Sound Compatibility Questions

    + + + +

    Video Questions

    + + + +

    Game Compatibility Questions

    + + + +

    Speed Questions

    + + + +

    Keyboard/Joystick Questions

    + + + +

    Cheat Questions

    + + + +

    Freezing/Crashing Questions

    + + + +

    Miscellaneous Questions

    + + + +

    Answers

    + +
    + +
    + +

    General Questions

    + +
    +
      +
    • Q: Why does ZSNESw crash and give me an error with dinput.dll?
    • +
    • A: If you get this error, download and install the latest version of DirectX. If you already have already had the newest version of DirectX installed for a while, try re-installing it (and make sure that you're installing DirectX v8.1 or higher).

    • +
    • Q: Why do I get a black (or corrupted) box when I start up ZSNESw?
    • +
    • A: First of all, make sure that you have the latest video card drivers and the latest version of DirectX installed (see above question). If that didn't help, check your desktop color settings and make sure that the number of colors is set to either 16bit or 32bit (since ZSNESw will only work with those modes).

    • +
    • Q: Why in the GUI under Config-->Options are some of the choices gone?
    • +
    • A: Basically, they have become obsolete due to the abilities of Windows.

    • +
    • Q: How do I use CD-ROMs with ZSNESw?
    • +
    • A: You need to define a save directory that points to your hard drive. In order to do this, use a text editing program such as WordPad or Notepad and open up zsnesw.cfg, which should be located in the directory where you installed ZSNESw (this will only appear after you run ZSNESw at least once). Then look for the line SaveDirectory= and enter the directory where you want all the writeable files to be stored.

    • +
    • Q: Why is netplay choppy/slow?
    • +
    • A: Please read the Netplay section that is included in this documentation.

    • +
    • Q: Why don't my settings get saved after I close ZSNES?
    • +
    • A: Make sure zsnesw.cfg, which is created in the same directory as ZSNES, is not marked read-only.
    • +
    +
    + +

    Sound Compatibility Questions

    + +
    +
      +
    • Q: Will ZSNES Windows be able to use my sound card? It wouldn't work for me in the DOS version.
    • +
    • A: It is very likely that your sound card will in fact work given that your card is supported by Windows and DirectSound from Microsoft's DirectX.

    • +
    • Q: How come I don't get any sound?
    • +
    • A: There could be several situations:
      Either you accidentally disabled sound (You can enable it through the GUI), you don't have a sound card, or the sound drivers aren't properly installed in your system.

    • +
    • Q: ZSNES Windows tends to have some static when playing games. Is there any way to remove it?
    • +
    • A: First of all, make sure that you have the latest sound drivers installed. Also, the problem could be in relation to many different variables. The emulator uses DirectSound for audio, so it is likely not an issue with Windows but most likely a setting in the emulator. The problem could be in relation to using a lower khz value than the SNES uses, which is 32000khz. Another more likely reason is that you have one of the special sound filters engaged. For higher end cards (better than SB16), it appears that the Low Pass Filter can cause static.

    • +
    • Q: How come stereo is reversed?
    • +
    • A: Turn on 'Reverse Stereo' in the Sound configuration in the GUI.
    • +
    +
    + +

    Video Questions

    + +
    +
      +
    • Q: Why do I get a dark line every quarter inch roughly on my screen when I use 25/50% scanlines in a full screen stretched video mode?
    • +
    • A: This is a video card based issue in which your card does not scale the video image properly.

    • +
    • Q: In the Video section where I set my resolution, what do those letters stand for to the right of the resolution?
    • +
    • A: There are four different sets of letters which are R, S, DR, and DS. R stands for ratio as these modes will retain the screen size ratio to the output of a real SNES. S stands for stretched, which means that any of these modes will stretch the image to the exact size of the resolution you have chosen. The D in DR/DS means high resolution, which allows for the use of interpolation, 25/50% scanlines, and the other graphic filters.

    • +
    • Q: Will ZSNES Windows support a 3DFX graphics mode?
    • +
    • A: Probably not; the author has little interest in adding support for it.

    • +
    • Q: Are there transparencies in ZSNES?
    • +
    • A: Yes, transparencies are in ZSNES. If something is not showing that should, try pressing '6', which is the default to turn on all layers.

    • +
    • Q: How come the graphics are really screwed up?
    • +
    • A: It's probably a problem with the emulation. You can try running the game at 80% or 120% execution, which can be set in the zsnesw.cfg through the DOS prompt or another editor. It might fix your problem, but then again maybe it won't be the solution.

    • +
    • Q: Why am I seeing double, with strange colors?
    • +
    • A: You need to update your video card drivers. If that's not possible, either switch to 16bit color depth or use fullscreen video mode.

    • +
    • Q: How come the video is choppy with an FPS of 60 and Vsync on?
    • +
    • A: Your monitor needs to be set for a refresh rate that is a multiple of the framerate of the game. For an NTSC game, it's 60. You need to either set the refresh rate in Windows to a multiple of 60 (KitchenSync, see below), or start ZSNES with the -6 switch. There is no -5 switch for PAL.

    • +
    • Q: What is the KitchenSync, and how do I enable it?
    • +
    • A: This makes NTSC games (60 hz) run at 120 hz, and PAL games (50 hz) run at 100 hz. To enable it, first create a shortcut to ZSNESw in Windows. Next, right-click on the shortcut and choose Properties. Then, put the cursor right after the quotation marks in the Target box, press the space bar, and type -K. Finally, click OK. If ZSNESw crashes or refuses to start after enabling this, your monitor does not support the 100/120 hz refresh rate.

    • +
    +
    + +

    Game Compatibility Questions

    + +
    +
      +
    • Q: Why doesn't *name of game* work on ZSNES?
    • +
    • A: Getting the compatibility higher is a very hard task to do. We're always trying to get more games working.

    • +
    • Q: Can you get *name of game* working by the next release?
    • +
    • A: We're always trying, but we can never guarantee a specific game will be working because of the difficulties involved in bug fixing.

    • +
    • Q: Why is *name of game* not working in v.*version #* of ZSNES? It was working before.
    • +
    • A: Whenever we change something in the emulation, whether it's optimization or bug fixes, it has a good potential to have caused a problem elsewhere. Usually, these problems aren't discovered until after a release.

    • +
    • Q: This game tells me that it is not compatible with the MultiTap (or an external device attached). What should I do?
    • +
    • A: Go to Config-->Add-Ons and choose None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". Additionally, you could add an NSRT header to your ROM if you desire.

    • +
    • Q: How do I improve the compatibility of ZSNES?
    • +
    • A: Turning on sound helps a lot here. Also, in the ZSNES configuration file, try to keep the % of execution at 100%. If a game still doesn't work, try tweaking the percentage of execution to both 120% or 80%. If that still doesn't work, then it's either a corrupt rom, a game that requires a special chip, or a bug in ZSNES.

    • +
    • Q: Why am I experiencing problems with Chrono Trigger?
    • +
    • A: If you cannot press the L,R, and A buttons at the same time on your keyboard, then you will need to assign both the L and R key to the same key, such as L and R to PageUp and A to Home. Pressing PageUp+Home will be then be the same as pressing L,R, and A together. This is a hardware limitation of the keyboard, not a bug in ZSNES. If this bothers you, you might want to use a gamepad if possible.

    • +
    • Q: What games use which DSP chip? How many of the DSP chips are emulated?
    • +
    • + + A: There are two hardware DSP chips: Nintendo's DSP and Seta's DSP. Nintendo's DSP has 4 different major firmwares of which two, the DSP-1 and DSP-2, are supported. Games that are known to use the Nintendo DSP chips include:
      +
        +
      • DSP-1: Pilotwings, Mario Kart, Suzuka 8 Hours, Lock On, Michael Andretti's Indy Car Challenge, Super Bases Loaded 2, Ballz
      • +
      • DSP-2: Dungeon Master
      • +
      • DSP-3: SD Gundam GX
      • +
      • DSP-4: Top Gear 3000
      • +
      +
      + Seta's DSP has 2 major firmwares. ZSNES supports the first one, known as the Seta 10 (ST010). Games that are known to use the Seta DSP chips include: +
        +
      • Seta 10: F1 ROC 2
      • +
      • Seta 11: Hayazashi Nidan Morita Shougi
      • +
      +
      + There is also a Seta RISC proccessor, the Seta 18 (ST018), which is not yet emulated by ZSNES. It is used by Hayazashi Nidan Morita Shougi 2.

      +
      +
    • +
    • Q: What is the Sufami Turbo? And what do I need to do to run Sufami Turbo games?
    • +
    • A: The Sufami Turbo is a special add-on that was released only in Japan by Bandai. It used small, GameBoy-sized cartridges. It could run 2 games at once, some of which could enable certain extra features when run together.

      ZSNES currently only supports running one Sufami Turbo game at a time. To emulate it, you will first need the Sufami Turbo BIOS (Don't ask us where to get it.). In the Config-->Paths menu, under the Sufami Turbo field, enter in its exact location on your hard drive (eg. "C:\Games\STBIOS.bin"). Then run your game.

      Sometimes, you may have a Sufami Turbo ROM that is hacked to include the BIOS with it. Use NSRT with the -split command to take it out (see NSRT readme for more details). This will give you at least two separate files: One will be the game, and the other will be the BIOS (Sometimes, you will get 3 files: Two games, one BIOS.). After you have the BIOS and the game(s) separated, simply follow the directions stated above.

    • +
    • Q: What are the Same Game and SD Gundam G-Next expansion packs? How do I use them in ZSNES?
    • +
    • A: These were 2 special carts that were released only in Japan. They had a BS expansion on top, to which expansion carts could be connected to improve/change the game a little (similar to the Sonic 3 cart for Sega Genesis).

      ZSNES can run the original base carts (Same Game and SD Gundam G-Next), but to run the expansion carts, go to Config-->Paths and specify the exact location of each of the base carts on your hard drive into the appropriate fields (eg. C:\Games\SAMEGAME.zip). Then run your expansion cart game. Doing this will load the base cart for you and plug in the expansion cart.

    • +
    • Q: Why don't my SuperFX games work? They used to work before.
    • +
    • A: Your SuperFX ROM is probably interleaved. Support for interleaved SuperFX ROMs was removed in v1.40, because it was more trouble than it was worth.

      To fix this problem, deinterleave your SuperFX ROM with a SNES ROM auditing tool (we recommend NSRT), then try again. Known SuperFX games include Dirt Trax FX, Vortex, Dirt Racer, Stunt Race FX/Wild Trax, Winter Gold FX, Super Mario World 2: Yoshi's Island, and Doom.

    • +
    +
    + +

    Speed Questions

    + +
    +
      +
    • Q: Why is ZSNES slow?
    • +
    • A: For the Windows version, you might want to change your video mode to different settings until you find the mode that's optimal in performance.

      Emulating a SNES is slow because it is a complex system. Also, ZSNES by default uses a tile/line engine which is newly completed in v1.0. This engine is faster than the old, so if the speed isn't up to par you may try a solution below. Or your computer just may be too slow.

      Vsync, by nature of syncing to the monitor, is also slower. So if speed is paramount to you, Vsync should be disabled. You should also use auto frame rate and frame skip.

    • +
    • Q: Can you please make ZSNES faster?
    • +
    • A: We're always trying and there is still a lot of room left for optimization, but a lack of time keeps us from implementing it.

    • +
    • Q: Can you implement dynamic recompilation into ZSNES?
    • +
    • A: There are no plans to implement it since it doesn't seem necessary. The SNES only uses a 3mhz CPU compared to, say, the 93mhz CPU inside the Nintendo 64. Implementing a dynamic recompilation engine would be hard work and would not improve performance by much.

    • +
    • Q: Why does the game slow down even though I'm using auto frame rate and the FPS is pretty high?
    • +
    • A: A game slows down like that when it executes its code beyond the speed of CPU emulation that ZSNES currently handles. To reduce slowdowns, increase the percentage of execution by editing zsnesw.cfg.
    • +
    +
    + +

    Keyboard/Joystick Questions

    + +
    +
      +
    • Q: Will ZSNES Windows be able to use my Windows joystick/gamepad?
    • +
    • A: Yes, the controls are handled via DirectInput; all Windows based control devices should work within ZSNES Windows.

    • +
    • Q: Why can't I press more than 2 keys at a time?
    • +
    • A: It's mainly a limitation of the PC keyboard. If you want to press more than 2 keys at a time, either use a joystick or change the keyboard keys around until you find a combination where you can press more than 2 keys at a time. Another technique that works is to set multiple buttons to a single key. That way, pressing that key presses multiple buttons at the same time.

    • +
    • Q: How come my joystick keeps holding in one direction?
    • +
    • A: This happens when you hold a direction when ZSNES Windows starts up. To fix this, exit ZSNES and reload to recalibrate. Clicking on SET in the input device window also calibrates the joystick, but it also resets the controls to the default joystick settings.

    • +
    • Q: How do I use both my keyboard and joystick for the 1st player?
    • +
    • A: In the GUI, enter the Config-->Options menu. Then check 'USE Pl3/4 AS Pl1/2'. Once you've done that, Player 3 controls will control Player 1, so if you have joystick set on Player 1, set Player 3 as keyboard. This disables MultiTap emulation, however.
    • +
    +
    + +

    Cheat Issues

    + +
    +
      +
    • Q: How come the Game Genie codes don't work?
    • +
    • A: You probably didn't insert the '-'. Otherwise, try clicking on the FIX button once while the highlight is over the code.

    • +
    • Q: How do I use .cht files?
    • +
    • A: Copy the .cht file to the ROM directory or, if you have a save directory defined, copy it to the save directory. Then rename the .cht file if necessary so that the filename before the . matches the ROM file.

    • +
    • Q: Why doesn't ZSNES support multi-line codes?
    • +
    • A: It does. Just enter each line as a code.
    • +
    +
    + +

    Freezing/Crashing Questions

    + +
    +
      +
    • Q: When I load a ROM, how come ZSNES crashes?
    • +
    • A: For ZSNESw, you first might want to see if you have any other major program running in the background (eg. Winamp). If it still crashes after you close those programs, you might want to download and install the newest version of DirectX.

      Odds are, if the emulator crashes as you load a ROM, then it is probably not compatible with ZSNES Windows due to it being incomplete, having a bad header, or having something else in it that makes it broken.
    • +
    +
    + +

    Miscellaneous Questions

    + +
    +
      +
    • Q: How does the automatic IPS patching feature work?
    • +
    • A: ZSNES will soft-patch your ROMs if you have auto-patching enabled (In the GUI, go to Config-->Options; it's enabled by default). To get it to work, copy the .ips file to the directory of your ROM file or, if you have a save directory defined, into the save directory. Next, rename the .ips file so that it matches the ROM filename (eg. If your ROM filename is THISGAME.smc, then your .ips filename needs to be THISGAME.ips.). ZSNES uses the ROM file name, even with zipped files. So, for example, TG.zip containing THISGAME.smc is still patched by THISGAME.ips. Additionally, if you have IPS patches inside a zipped file, ZSNES will automatically patch with the first .ips file it finds.

      If, after doing the above, you still have problems with this feature, you may need to add or remove a header in your ROM. Use a utility such as NSRT to do this.

    • +
    • Q: Where do I get the games?
    • +
    • A: The ZSNES Team will *NOT* provide any games or any links to games.

    • +
    • Q: How do I convert .zmv movies to AVI/DIVX/WMV/MPEG?
    • +
    • A: You can't, really; .zmv files are only a save state and the recorded sequence of button presses. The only way you can do it is to use another program to capture the video from ZSNES, such as SnagIt.

    • +
    • Q: Can you make a Mac/PocketPC/PS2/whatever port?
    • +
    • A: Since ZSNES is written in assembly, ports to any systems that are not 100% x86 compatible are impossible. For x86 compatible machines, such as the XBox, it is still difficult. Try Snes9x for other systems.
    • +
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/gui.htm b/zsnes/docs/Windows/gui.htm index 57258c8e..96aa59f2 100644 --- a/zsnes/docs/Windows/gui.htm +++ b/zsnes/docs/Windows/gui.htm @@ -1,619 +1,609 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - GUI - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - GUI -
    - Note : If any window exists in the GUI field, pressing ESC always closes the top-most window.
    - Note : Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    -
    - Notes on the filename box where you can manually type in the filename:
    - - Typing text into the box will automatically seek to the closest matching filename in the box where the file selection cursor is located.
    - - When you press enter with text in the box without any '\' or ':' in the filename, ZSNES will first look for a directory matching the text and will then change its directory if one is found. Otherwise, it will load the current file or directory highlighted by the selection cursor.
    - - You can type in the full filename or directory including path (eg. d:\games\mario.smc) or the drive name (eg. d:).
    - -
    - Game Menu -
    - Game Menu
    -
      -
    • Load: -
        -
      • Perform: Load File and Run
      • -
      • Usage: -
          -
        • Loading a File: -
            -
          • You can move through the list using either the mouse or the keyboard. The keys for the keyboard are: -
              -
            • Up/Down - Move Up/Down through the list
            • -
            • Left/Right - Switch between the File and Directory Window
            • -
            • PageUp/PageDown/Home/End - Move through the list in larger increments
            • -
            • A .. Z, \, : - Enters filename/directory into the load box
            • -
            • Enter - Load file or change directory (depending on which window you are in)
            • -
            -
          • -
          -
        • -
        • Show all Extensions: -
            -
          • This will force the GUI to show all of the file extensions instead of the default (.SMC,.SFC,...).
          • -
          -
        • -
        • Force: -
            -
          • Make ZSNES treat a ROM as NTSC or PAL region format, as well as LoROM and HiROM.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Run: -
        -
      • Perform: Runs the game
      • -
      -
      -
    • -
    • Reset: -
        -
      • Perform: Resets the game, but asks user for confirmation first.
      • -
      -
      -
    • -
    • Save State: -
        -
      • Perform: Saves the state (equivalent to default F2), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Load State: -
        -
      • Perform: Loads the state (equivalent to default F4), but asks user for confirmation first.
      • -
      -
      -
    • -
    • Pick State: -
        -
      • Perform: Allows user to select the state position to use (equivalent to default F3).
      • -
      -
      -
    • -
    • Quit: -
        -
      • Perform: Quits ZSNES
      • -
      -
    • -
    - -
    - Quick Menu -
    - Quick Menu
    -
      -
    • Perform: -
        -
      • Allows the user to quickly select the last 10 games loaded off the GUI. Also allows the user to freeze/clear the list.
      • -
      -
      -
    • -
    • Tip: -
        -
      • You can create a favorites list by first clearing the list, then loading up all the games (last game loaded will be at the top), and last turning freeze on.
      • -
      -
    • -
    - -
    - Config Menu -
    - Config Menu
    -
      -
    • Input #1-#5: -
        -
      • Perform: Allows user to select the input device and control keys for each player.
      • -
      • Usage: -
          -
        • Selecting an Input Device: -
            -
          • Using your mouse, move through the list of input devices until the device of your choice is highlighted. From there, click on SET and the input device you selected should appear after CDV: (CDV = Current Device).
          • -
          -
        • -
        • Changing default keys: -
            -
          • Click on the key which you want to change by using your mouse and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the game key.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Options: -
        -
      • Perform: Allows the user to select some in-game options.
      • -
      • Usage: -
          -
        • Auto Frame Rate - enables auto frame rate.
        • -
        • Max Frame Skip - Shown only when auto frame rate is enabled, this sets the maximum allowable frame skip in auto frame rate mode.
        • -
        • Frame Rate - Sets the constant frame skip value used when a game plays. This is only shown when auto frame rate is disabled.
        • -
        • New Gfx Engine - Enables/Disables the new graphics engine in 256 color modes or 320x240x65536 mode.
        • -
        • Auto Increment Save Slot - When enabled, the save slot will automatically move to the next slot after you save a state.
        • -
        • MMX Support - Enables MMX Copying routines for a slight speed increase (MMX processors only).
        • -
        • Use Pl3/4 as Pl1/2 - Allows the user to use 2 devices for 1 player, such as the keyboard and the joystick. (set keyboard as input device 1 and joystick as input device 3). This, however, disables multitap support.
        • -
        • High Priority Mode - Enabling this will allow ZSNESw to take up more of the CPU resources to increase speed. But it will reduce the amount of resources given to applications running in the background.
        • -
        • FPS at Program Start - Checking this will make the FPS appear whenever you start ZSNES.
        • -
        • Use 30Hz for Turbo - When activated, Turbo will change at 30hz NTSC or 25hz PAL. Otherwise, Turbo will change at 60hz NTSC or 50hz PAL
        • -
        • Enable Game Clock - Enabling this will show the system clock on-screen.
        • -
        • Toggled Fast Fwd/Slowdown - Checking this will change the way how the fast forward button functions. Having it checked will cause it to act as a switch and having it unchecked will cause it to act as a push button.
        • -
        • SRAM Check+Save - This will enable automatic save RAM write detection and save the SRAM (.srm) to disk approximately 10 seconds after.
        • -
        • Old Gfx Mode 2 - This will enable the Old Gfx Engine Mode 2, which fixes many transparency bugs that currently plagues ZSNES in the current engine. However, it also creates some new ones. This mode can be slower at times so it's recommended that you only turn it on when you need it.
        • -
        • Start at Latest Save - Checking this will automatically set the save state pointer (F3 Menu) to the most recently saved location whenever you load a ROM image.
        • -
        • Auto State Save/Load - Enabling this will allow ZSNES to automatically re-load the state whenever you return back to the game after a proper exit.
        • -
        • Don't Save Current Path - This will prevent ZSNES from changing the current start-up game path in the configuration.
        • -
        • Use Small Message Text - On-screen messages that pop up when you save a state, disable a background, ect. will be smaller.
        • -
        • Disable Screensaver - Disables the screensaver while ZSNES is running, so that your gameplay will not be interrupted if you're using a gamepad.
        • -
        -
      • -
      -
      -
    • -
    • Add-ons: -
        -
      • Perform: Changes the current special input selected for the game.
      • -
      • Usage: -
          -
        • None - Uses the regular SNES controllers.
        • -
        • SNES Mouse at Port #1 - Emulates the SNES Mouse at controller port #1.
        • -
        • SNES Mouse at Port #2 - Emulates the SNES Mouse at controller port #2.
        • -
        • Super Scope - Emulates the SNES Super Scope.
        • -
        • Lethal Enforcer Gun - Simulates the SNES Mouse movements for Lethal Enforcers 1.
        • -
        • Super System - Toggle DIP switches here to configure the Nintendo Super System.
        • -
        -
      • -
      -
      -
    • -
    • Video: -
        -
      • Perform: Changes the current video mode and sets some options.
      • -
      • Usage: -
          -
        • Changing the video mode - Use the mouse to select the video mode and click 'SET'. If the resulting video changes don't look right, wait for 10 seconds without pressing any key or button and the display will return to the previous one.
        • -
        • Full Scanlines - This mode adds a blank line in between every line to produce a scanline effect similar, if not exact, to a TV.
        • -
        • 50% Scanlines - This will enable scanline mode, except that each line is 50% darker than the line above it.
        • -
        • 25% Scanlines - This will enable scanline mode, except that each line is 25% darker than the line above it.
        • -
        • 2xSaI Engine - Setting this will enable Kreed's 2x Scale Advanced Interpolation engine.
        • -
        • Super Eagle - Setting this will enable Kreed's Super Eagle engine.
        • -
        • Super 2xSaI Engine - Setting this will enable Kreed's Super 2x Scale Advanced Interpolation engine.
        • -
        • HQ2X, HQ3X, and HQ4X - Depending on what D mode resolution you are using, you will be able to choose one of these three graphic filters created by MaxSt.
        • -
        • Interpolation - Setting this enables interpolation, which basically blends all the inbetween colors to produce a blurry effect. However, this slows down emulation.
        • -
        • Hi-resolution Mode 7 - Enabling this will activate high resolution mode 7 whenever standard mode 7 is used within a game. This mode is only available in video modes that support it.
        • -
        • Grayscale Mode - Makes the game display in monochrome color. This option is just there for fun and is not something that you probably want to keep on using.
        • -
        • Triple Buffering - Uses an extra buffer for drawing. Thus, a buffer can be drawn on while one is pending Vsync, and another is being drawn. The primary use is to reduce the impact of Vsync on slower systems.
        • -
        • Vsync - Synchronizes drawing to the monitor's refresh rate. This may reduce frame rate on your computer, but will reduce tearing.
        • -
        -
      • -
      -
      -
    • -
    • Sound: -
        -
      • Perform: Allows user to change the sound configurations of ZSNES.
      • -
      • Usage: -
          -
        • Enable Sound - Setting this turns on the sound.
        • -
        • Stereo Sound - Enables stereo sound (noticeably slower though unless you have a fast CPU).
        • -
        • Sampling Rate - To change the sound sampling rate, just click on the box containing the value to rotate through all the possible values. The default sampling rate (and the one that is most accurate to a real SNES) is 32000hz.
        • -
        • Volume Level - To change, just slide the bar.
        • -
        • Reverse Stereo - This function swaps the L and R volume levels in stereo mode.
        • -
        • Surround Sound - Enables simulated 2 speaker surround sound.
        • Sound Buffering - Enable to provide a larger sound buffer for sound cards that have problems with the sound.
        • Disable SPC Emulation - Disables the emulation of the SPC700 chip. Doing this will speed up emulation, but the downside is that it tends to bring more sound errors.
        • -
        • Sound Interpolation - This feature smoothes out the wave forms of lower frequency sounds. Choose either gaussian (default and the most accurate to a real SNES), cubic spline, or 8-point interpolation.
        • -
        • Low Pass Filter - This produces better bass in certain sound effects. However, the side effect is that the sound will overall be more muffled. Choose either simple, dynamic, or hi quality.
        • -
        -
      • -
      -
      -
    • -
    • Paths: -
        -
      • Perform: Allows user to change the default directories used by ZSNES.
      • -
      • Usage: -
          -
        • Snapshots - Configure which directory bitmap (.bmp; 16bit color) and PNG (.png; 32bit ARGB color) format snapshots will save in.
        • -
        • SPCs - Configure which directory SPC700 sound dumps (.spc; SNES music files) will save in.
        • -
        • BIOS/Base Carts - Enter the location of BIOS/Base carts here, to support emulation of the BS Satellaview, Sufami Turbo, and the Same Game and SD Gundam G-Next expansion packs.
        • -
        • SPC7110 Graphic Packs - Enter the directories that contain SPC7110 graphic packs in the appropriate fields here. The SPC7110 games are Far East of Eden Zero (FEOEZ), Far East of Eden Zero - Shounen Jump no Shou (FEOEZ-SJNS), Momotarou Dentetsu Happy (MDH), and Super Power League 4 (SPL4).
        • -
        • Note: Paths can be absolute (C:\Path\To\File\) or relative (..\Path\Relative\To\ZSNES\).
        • -
        -
      • -
      -
    • -
    - -
    - Cheat Menu -
    - Cheat Menu
    -
      -
    • Add Code: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor on the cheat code entry box.
      • -
      • Usage: Type in the code in either Game Genie, Pro Action Replay, or GoldFinger format, then press enter. Then enter the description. Note : Be sure to include the '-' when entering Game Genie codes.
      • -
      • Note: You can also quickly modify the value of the currently selected cheat code (in the browse window) by typing a 2 digit hex number in the cheat code enter space.
      • -
      -
      -
    • -
    • Cheat Code Reflector - What this feature does is that it allows a value of one cheat code to be mirrored from a value of another cheat code. To enable this option, type an 'R' at the end of any cheat code as the destination, then type another cheat code (Without the 'R') as the source. For example, if you want address 7E1000 to reflect the value at address 7F2000 (whatever value written to 7E2000 from the game will also be written to 7E1000), enter cheat code 7E1000FFR, then cheat code 7F2000FF (where FF can be any value).

    • -
    • Browse: -
        -
      • Perform: Enters the cheat code window and sets the keyboard cursor at the browse box.
      • -
      • Usage: Move through the list using either the mouse or keyboard and select the cheat code you want to modify. Then click on the buttons to the right or type in the key of the first letter of the action. -
          -
        • Actions: -
            -
          • Toggle - Turns a cheat code on or off.
          • -
          • Remove - Deletes the cheat code off the list.
          • -
          • Save - Saves the current list into a .cht file, which will be located in the save directory.
          • -
          • Load - Loads a previously saved list.
          • -
          • Fix - Clicking this fixes some cheat codes that don't work, but it will not always work.
          • -
          • You can also toggle a cheat code on or off by double clicking on them.
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Search: -
        -
      • Perform: Allows you to search for values in memory such as life, score, etc. and allows you to change their values to your own preferred choice.
      • -
      • Usage: -
          -
        • Select Size: You can choose what data size to search for. If you know the numerical values of the data you're going to select, select the smallest number range that fits the data values. (eg. If you know the value cannot go higher than 50000, then select 2 BYTES (0..65535) instead of 3 BYTES (0..16777215)). Sometimes, you don't know the numerical value (in the case of life bars) so you have to guess the size.
        • -
        • Select Format: DEC (Decimal, 0 .. 9), HEX (Hexadecimal, 0 .. F) Most of the time, it's recommended that you'd use decimal, although there are some cases that the values in memory are sometimes stored as hex.
        • -
        • Search Type: -
            -
          • Exact Value Search - In this mode, you have to enter the exact numerical value that you want to search for. Such as if you have 3 lives left, then search for the value 3. The cheat search engine also looks for value - 1 since even if a game tells you that you have 3 lives left, it stores the value as 2 in memory.
          • -
          • Comparative Search - In this mode, you select whether the value is less than, greater than, equal to, or not equal to the previous value. Such as if you have a life bar and if the life bar suddenly goes down, go back to the cheat search engine and select less than to search for any value that has been decreased.
          • -
          -
        • -
        -
      • -
      -
    • -
    - -
    - Netplay Menu -
    - Netplay Menu
    -
      -
    • Internet: -
        -
      • Port - -
          -
        • This is the port ZSNES will communicate on. While the number can range from 0 to 65535, it is recommended you stay above 5000 to avoid conflicts with other services.
        • -
        -
      • -
      • Nickname - -
          -
        • What you will be called.
        • -
        -
      • -
      • Start As Server - -
          -
        • This will start the ZSNES Server. Your opponent can then join via the Connect to Server option.
        • -
        -
      • -
      • IP - -
          -
        • This is the IP of the server you wish to connect to. You will need to receive this information from the person to whom you are connecting.
        • -
        -
      • -
      • Connect to Server - -
          -
        • This will connect you to another ZSNES user if the port and server are correct. This is only used on the client side.
        • -
        -
      • -
      • Your IP - -
          -
        • This is your IP. The client doesn't really need to do anything with it. The server needs to give this information to the client.
        • -
        -
      • -
      • Allow UDP Connections - -
          -
        • UDP is slightly faster than TCP, and should provide a better experience. Some users, however, can only use TCP. Turn this off if you are experiencing connection problems in mid-game, and see if it helps.
        • -
        -
      • -
      -
    • -
    - -
    - Misc Menu -
    - Misc Menu
    -
      -
    • Game Keys: -
        -
      • Perform: Allows user to change and make game keys and quick keys to his own preference.
      • -
      • Usage: -
          -
        • Click on the key which you want to change using your mouse, and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the key.
        • -
        -
      • -
      -
      -
    • -
    • GUI Options: -
        -
      • Perform: Allows the user to customize some of the GUI.
      • -
      • Usage: -
          -
        • Mouse Wrap - Allows the mouse pointer to wrap at the borders of the screen.
        • -
        • Mouse Shadow - Disables/Enables the Mouse Shadow.
        • -
        • Keep Menu Positions - When enabled, re-entering the GUI from the game does not automatically enter the Load Menu, but instead the previous menu which you were on when you last exited the GUI.
        • -
        • Save Window Positions - When enabled, the GUI doesn't reset the locations of the windows when you exit/enter the GUI.
        • -
        • Click Enters/Exits GUI - When enabled, it allows the right mouse button to automatically run and exit the game to the GUI. This however, slows down emulation by a bit since it has to check the mouse button status once in a while. In the Win32 port, the right click button won't return back to the game.
        • -
        • Use JoyPad1 to Control - When enabled, it allows Player 1's device to be used to move through the GUI. This is mainly used if you want to use your joystick in the GUI. The equivalent SNES keys to the keyboard keys are: -
            -
          • SNES ControlPad = Move
          • -
          • SNES A = Enter
          • -
          • SNES B = ESC
          • -
          • SNES L = PageUp
          • -
          • SNES R = PageDown
          • -
          -
        • -
        • Transparent Messages - Makes in-game messages appear transparent.
        • -
        • Wheel Mouse - Enables or disables the mouse wheel.
        • -
        • Filtered GUI - Use your favorite ZSNES display filters in the GUI. ZSNES, HQ3X style!
        • -
        • Trap Mouse Cursor - Prevents the mouse cursor from exiting the ZSNES GUI. You will have to move the mouse with extra speed to make the cursor exit the GUI with this feature enabled.
        • -
        • Snow Effect - Enables the snow effect in the GUI background.
        • -
        • Water Effect - Enables one of the two available water effects in the GUI background.
        • -
        • Burning Effect - Enables the burning effect in the GUI background.
        • -
        • Color - Allows you to customize your ZSNES GUI colors. Background, title bar, and window colors are supported.
        • -
        • Always on Top - Puts the ZSNES window on top of almost all other Windows applications at all times.
        • -
        • Save Main Window Position - Saves the window position when you exit and restores it when you load ZSNES again.
        • -
        • Allow Multiple Instances - Allows you to load more than one ZSNES window at a time.
        • -
        -
      • -
      -
      -
    • -
    • Key Comb. (Key Combination Editor): -
        -
      • Perform: Allows you to specify certain keyboard combination routines with a single keystroke/joystick button press.
      • -
      • Usage: -
          -
        • Description - Allows you type in the description of the combination key.
        • -
        • Key - Clicking on this box will allow you to select which key/button to use.
        • -
        • Combination Keys - This window will display the sequence of events selected by the user.
        • -
        • P# - Selects which player # will use those keys.
        • -
        • > = Last </> - Enabling this would mean that the event symbol > will mean the last left or right direction the user presses in the game and the symbol < is the opposite of that direction. When disabled, > means right and < means left.
        • -
        • Game Specific (Game Specific) - Enabling this will tell ZSNES to use separate key combination files for each individual game.
        • -
        • Clear - Clears the current key combination field.
        • -
        • Add - Adds the key combination fields below as a new entry.
        • -
        • Replace - Copies the contents of the key combination fields below to the current highlighted key combination above.
        • -
        • Delete - Deletes the highlighted key combination above.
        • -
        • Events: -
            -
          • Press+Rel - The key will be pressed and held. It will be released once another key is pressed after any amount of frame or second delay.
          • -
          • Press Only - The key will be pressed and held.
          • -
          • Rel Only - The key will be released if it is pressed by a press only event.
          • -
          • Frame Delay - Delays for the specified number of frames.
          • -
          • Second Delay - Delays for the specified number of seconds.
          • -
          • Del - Deletes the event at the end of the combination keys list if one exists.
          • -
          -
        • -
        -
      • -
      • Note: A 1 frame delay exists after the combination key list has finished processing.

      • -
      • Example Key Combination: (Down / Down+Right / Right / L): -
          -
        • Method 1: -
            -
          • Press+Rel Down / 2 Frame Delay / Press+Rel Down / Press+Rel Right / 2 Frame Delay / Press+Rel Right / 2 Frame Delay / Press+Rel L
          • -
          -
        • -
        • Method 2: -
            -
          • Press Only Down / 2 Frame Delay / Press Only Right / 2 Frame Delay / Rel Only Down / 2 Frame Delay / Rel Only Right / Press Only L
          • -
          -
        • -
        -
      • -
      -
      -
    • -
    • Movie Options: -
        -
      • Perform: Allows you to record SNES Movies so that you can play them back at a later date either to amuse your friends, torture your friends, or whatever. Just don't play anything in front of your enemies since they might break your computer. ;)
      • -
      • Usage: -
          -
        • Movies are saved as .ZMV, .ZM1, .ZM2, etc. files. They should be located in the same directory as your save files. A movie file consists of a save state file, SRAM data, and the recorded controller data. The initial filesize of a .ZMV file is the combination of a .zst and a .srm file (around 300kbytes), and it averages around 7kbytes/minute (value varies) or 420kbytes/hour.

        • -
        • You can record: -
            -
          • - Standard 1/2 player games
          • -
          • - 3-4 player Multitap games
          • -
          • - SNES Mouse games
          • -
          • - Network/Modem games
          • -
          -
        • -
        • You cannot record: -
            -
          • - Super Scope Games
          • -
          -
        • -
        -
      • -
      • GUI Usage: -
          -
        • Record - Begins recording the movie file. You can even record while your already playing a movie (append).
        • -
        • Play - Begins playing the movie file.
        • -
        • Stop - Stops the movie process.
        • -
        • The numbers at the right side select which movie file to play/record.
        • -
        -
      • -
      • NOTE: Movies recorded without sound cannot be played when sound is enabled and vice versa.
      • -
      • NOTE: Loading another game, loading a state, or resetting the game will halt the play/record process.
      • -
      • NOTE: When you play a movie file, the SRAM data becomes invalid, and ZSNES won't save it until you load a game. This way, you don't have to worry about your SRAM when you load up a movie file.
      • -
      -
      -
    • -
    • Save Cfg: -
        -
      • Perform: Saves the configuration files.
      • -
      -
      -
    • -
    • About: -
        -
      • Perform: Just displays the version # and the authors of ZSNES.
      • -
      -
    • -
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - GUI + + + + + + + + + + + + +
    +

    GUI

    + +
    + This is the ZSNES GUI.
    + Note: If any window exists in the GUI field, pressing ESC always closes the top-most window.
    + Note: Pressing ESC when no window is active is equivalent to RUN. It will not function if no game is loaded.
    +
    +
      +
    • Notes on the filename box where you can manually type in the filename:
    • +
    • - Typing text into the box will automatically seek to the closest matching filename in the box where the file selection cursor is located.
    • +
    • - When you press enter with text in the box without any '\' or ':' in the filename, ZSNES will first look for a directory matching the text and will then change its directory if one is found. Otherwise, it will load the current file or directory highlighted by the selection cursor.
    • +
    • - You can type in the full filename or directory including path (eg. "d:\games\mario.smc" or just "d:").
    • +
    + +
    + +

    Game Menu

    + +
    + Game Menu
    +
      +
    • Load: +
        +
      • Perform: Loads and runs a file.
      • +
      • Usage: +
          +
        • Loading a File: +
            +
          • You can move through the list using either the mouse or the keyboard. The keys for the keyboard are: +
              +
            • Up/Down - Move Up/Down through the list.
            • +
            • Left/Right - Switch between the File and Directory Window.
            • +
            • PageUp/PageDown/Home/End - Move through the list in larger increments.
            • +
            • A .. Z, \, : - Enters filename/directory into the load box.
            • +
            • Enter - Load file or change directory (depending on which window you are in).
            • +
            +
          • +
          +
        • +
        • Show all Extensions: +
            +
          • This will force the GUI to show all of the file extensions instead of the default (.smc, .sfc, ...).
          • +
          +
        • +
        • Force: +
            +
          • Make ZSNES treat a ROM as NTSC or PAL region format, as well as LoROM and HiROM.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Run: +
        +
      • Perform: Runs the game.
      • +
      +
      +
    • +
    • Reset: +
        +
      • Perform: Resets the game, but asks user for confirmation first.
      • +
      +
      +
    • +
    • Save State: +
        +
      • Perform: Saves the state (equivalent to default F2), but asks user for confirmation first.
      • +
      +
      +
    • +
    • Load State: +
        +
      • Perform: Loads the state (equivalent to default F4), but asks user for confirmation first.
      • +
      +
      +
    • +
    • Pick State: +
        +
      • Perform: Allows user to select the state position to use (equivalent to default F3).
      • +
      +
      +
    • +
    • Quit: +
        +
      • Perform: Quits ZSNES.
      • +
      +
    • +
    + +
    + +

    Quick Menu

    + +
    + Quick Menu
    +
      +
    • Numbers: +
        +
      • Perform: Choose a game to load. +
      • Usage: Allows the user to quickly select the last 10 games loaded off the GUI. The most recently loaded game will be at the top of the list.
      • +
      +
      +
    • +
    • Freeze Data: +
        +
      • Perform: Choose whether games are added to this list when loaded from the GUI.
      • +
      • Usage: If freeze data is on, the list will not change when you load a new game.
      • +
      +
      +
    • +
    • Clear all data: +
        +
      • Perform: Erases the current quick-load list.
      • +
      +
      +
    • +
    • Tip: You can create a favorites list by first clearing the list, loading all the games you want on the list one by one, then turning freeze on.
    • +
    + +
    + +

    Config Menu

    + +
    + Config Menu
    +
      +
    • Input #1-#5: +
        +
      • Perform: Allows user to select the input device and control keys for each player.
      • +
      • Usage: +
          +
        • Selecting an Input Device: +
            +
          • Using your mouse, move through the list of input devices until the device of your choice is highlighted. From there, click on SET and the input device you selected should appear after CDV: (CDV = Current Device).
          • +
          +
        • +
        • Changing default keys: +
            +
          • Click on the key which you want to change by using your mouse and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the game key.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Add-ons: +
        +
      • Perform: Changes the current special input selected for the game.
      • +
      • Usage: +
          +
        • None - Uses the regular SNES controllers.
        • +
        • SNES Mouse at Port #1 - The controller in port one will be an emulated SNES Mouse.
        • +
        • SNES Mouse at Port #2 - The controller in port two will be an emulated SNES Mouse.
        • +
        • Super Scope - Emulates the SNES Super Scope.
        • +
        • Lethal Enforcer Gun - Simulates the SNES Mouse movements for Lethal Enforcers 1.
        • +
        +
      • +
      +
      +
    • +
    • Chip CFG: +
        +
      • Perform: Configure the Super System settings.
      • +
      • Usage: Set which Super System DIP switches are enabled.
      • +
      +
      +
    • +
    • Options: +
        +
      • Perform: Allows the user to select some in-game options.
      • +
      • Usage: +
          +
        • Auto Frame Rate - Enables auto frame rate.
        • +
        • Max Frame Skip - Shown only when auto frame rate is enabled, this sets the maximum allowable frame skip in auto frame rate mode.
        • +
        • Frame Rate - Sets the constant frame skip value used when a game plays. This is only shown when auto frame rate is disabled.
        • +
        • New Gfx Engine - Enables/Disables the new graphics engine in 256 color modes or 320x240x65536 mode.
        • +
        • MMX Support - Enables MMX copying routines for a slight speed increase (MMX processors only).
        • +
        • Use Pl3/4 as Pl1/2 - Allows the user to use 2 devices for 1 player, such as the keyboard and the joystick. (set keyboard as input device 1 and joystick as input device 3). This, however, disables MultiTap support.
        • +
        • High Priority Mode - Enabling this will allow ZSNES to take up more of the CPU resources to increase speed; however, it will reduce the amount of resources given to applications running in the background.
        • +
        • FPS at Program Start - Checking this will make the FPS appear whenever you start ZSNES.
        • +
        • Use 30Hz for Turbo - When activated, turbo will change at 30hz NTSC or 25hz PAL. Otherwise, turbo will change at 60hz NTSC or 50hz PAL.
        • +
        • Enable Game Clock - Enabling this will show the system clock on-screen.
        • +
        • Toggled Fast Fwd/Slowdown - Checking this will change the way how the fast forward button functions. Having it checked will cause it to act as a switch and having it unchecked will cause it to act as a push button.
        • +
        • Old Gfx Mode 2 - This will enable the Old Gfx Engine Mode 2, which fixes many transparency bugs that currently plagues ZSNES in the current engine. However, it also creates some new ones. This mode can be slower at times, so it's recommended that you only turn it on when you need it.
        • +
        • Don't Save Current Path - This will prevent ZSNES from changing the current start-up game path in the configuration.
        • +
        • Use Small Message Text - On-screen messages that pop up when you save a state, disable a background, ect. will be smaller.
        • +
        • Enable Auto-Patch - When checked, ZSNES will automatically soft patch ROMs when a corresponding .ips file is found.
        • +
        • Enable ROMINFO.TXT - When checked, ZSNES will create a file named ROMINFO.TXT when you load a ROM. This file contains information about the ROM.
        • +
        • Disable Screensaver - Disables the screensaver while ZSNES is running, so that your gameplay will not be interrupted if you're using a gamepad.
        • +
        +
      • +
      +
      +
    • +
    • Video: +
        +
      • Perform: Changes the current video mode and sets some options.
      • +
      • Usage: +
          +
        • Changing the video mode - Use the mouse to select the video mode and click 'SET'. If the resulting video changes don't look right, wait for 10 seconds without pressing any key or button and the display will return to the previous one.
        • +
        • Full Scanlines - This mode adds a blank line in between every line to produce a scanline effect similar, if not exact, to a TV.
        • +
        • 50% Scanlines - This will enable scanline mode, except that each line is 50% darker than the line above it.
        • +
        • 25% Scanlines - This will enable scanline mode, except that each line is 25% darker than the line above it.
        • +
        • 2xSaI Engine - Setting this will enable Kreed's 2x Scale Advanced Interpolation engine.
        • +
        • Super Eagle - Setting this will enable Kreed's Super Eagle engine.
        • +
        • Super 2xSaI Engine - Setting this will enable Kreed's Super 2x Scale Advanced Interpolation engine.
        • +
        • HQ2X, HQ3X, and HQ4X - Depending on what D mode resolution you are using, you will be able to enable one of these three graphic filters created by MaxSt.
        • +
        • Interpolation - Setting this enables interpolation, which basically blends all the inbetween colors to produce a blurry effect. However, this slows down emulation.
        • +
        • Hi-resolution Mode 7 - Enabling this will activate high resolution mode 7 whenever standard mode 7 is used within a game. This mode is only available in video modes that support it.
        • +
        • Grayscale Mode - Makes the game display in monochrome color, i.e. black and white. This option is just there for fun and is not something that you probably want to keep on using.
        • +
        • Triple Buffering - Uses an extra buffer for drawing. Thus, a buffer can be drawn on while one is pending Vsync, and another is being drawn. The primary use is to reduce the impact of Vsync on slower systems.
        • +
        • Vsync - Synchronizes drawing to the monitor's refresh rate. This may reduce frame rate on your computer, but will reduce tearing.
        • +
        +
      • +
      +
      +
    • +
    • Sound: +
        +
      • Perform: Allows user to change the sound configurations of ZSNES.
      • +
      • Usage: +
          +
        • Enable Sound - Setting this turns on the sound.
        • +
        • Stereo Sound - Enables stereo sound (slower unless you have a fast CPU).
        • +
        • Sampling Rate - To change the sound sampling rate, just click on the box containing the value to rotate through all the possible values. The default sampling rate (and the one that is most accurate to a real SNES) is 32000hz.
        • +
        • Volume Level - To change, just slide the bar.
        • +
        • Reverse Stereo - This function swaps the L and R volume levels in stereo mode.
        • +
        • Surround Sound - Enables simulated 2 speaker surround sound.
        • Sound Buffering - Enable to provide a larger sound buffer for sound cards that have problems with the sound.
        • +
        • Sound Buffering - Enabling this may reduce/prevent sound crackling on some computers.
        • +
        • Disable SPC Emulation - Disables the emulation of the SPC700 chip. Doing this will speed up emulation, but the downside is that it tends to bring more sound errors.
        • +
        • Sound Interpolation - This feature smoothes out the wave forms of lower frequency sounds. Choose either gaussian (default and the most accurate to a real SNES), cubic spline, or 8-point interpolation.
        • +
        • Low Pass Filter - This produces better bass in certain sound effects. However, the side effect is that the sound will overall be more muffled. Choose either simple, dynamic, or hi quality.
        • +
        +
      • +
      +
      +
    • +
    • Paths: +
        +
      • Perform: Allows user to change the default directories used by ZSNES.
      • +
      • Usage: +
          +
        • Saves - Configure the directory in which ZSNES will place SRAM and state save files.
        • +
        • Snapshots - Configure which directory bitmap (.bmp; 16bit color) and PNG (.png; 32bit ARGB color) format snapshots will save in.
        • +
        • SPCs - Configure which directory SPC700 sound dumps (.spc; SNES music files) will save in.
        • +
        • BIOS/Base Carts - Enter the location of BIOS/Base carts here, to support emulation of the BS Satellaview, Sufami Turbo, and the Same Game and SD Gundam G-Next expansion packs.
        • +
        • SPC7110 Graphic Packs - Enter the directories that contain SPC7110 graphic packs in the appropriate fields here. The SPC7110 games are Far East of Eden Zero (FEOEZ), Far East of Eden Zero - Shounen Jump no Shou (FEOEZ-SJNS), Momotarou Dentetsu Happy (MDH), and Super Power League 4 (SPL4).
        • +
        • Note: Paths can be absolute (C:\Path\To\File\) or relative (..\Path\Relative\To\ZSNES\).
        • +
        +
      • +
      +
    • +
    • Saves: +
        +
      • Perform: Allows user to configure options regarding state saves and in-game saves.
      • +
      • Usage: +
          +
        • Auto Increment Save Slot - When enabled, the save slot will automatically move to the next slot after you save a state.
        • +
        • SRAM Check+Save - This will enable automatic save RAM write detection and save the SRAM (.srm) to disk approximately 10 seconds after.
        • +
        • Start at Latest Save - Checking this will automatically set the save state pointer (F3 Menu) to the most recently saved location whenever you load a ROM image.
        • +
        • Auto State Save/Load - Enabling this will allow ZSNES to automatically re-load the state whenever you return back to the game after a proper exit.
        • +
        +
      • +
      +
    • +
    + +
    + +

    Cheat Menu

    + +
    + Cheat Menu
    +
      +
    • Add Code: +
        +
      • Perform: Enters the cheat code window and sets the keyboard cursor on the cheat code entry box.
      • +
      • Usage: Type in the code in either Game Genie, Pro Action Replay, or GoldFinger format, then press enter. Then enter the description. Note : Be sure to include the '-' when entering Game Genie codes.
      • +
      • Note: You can also quickly modify the value of the currently selected cheat code (in the browse window) by typing a 2 digit hex number in the cheat code enter space.
      • +
      +
      +
    • +
    • Cheat Code Reflector - What this feature does is that it allows a value of one cheat code to be mirrored from a value of another cheat code. To enable this option, type an 'R' at the end of any cheat code as the destination, then type another cheat code (Without the 'R') as the source. For example, if you want address 7E1000 to reflect the value at address 7F2000 (whatever value written to 7E2000 from the game will also be written to 7E1000), enter cheat code 7E1000FFR, then cheat code 7F2000FF (where FF can be any value).

    • +
    • Browse: +
        +
      • Perform: Enters the cheat code window and sets the keyboard cursor at the browse box.
      • +
      • Usage: Move through the list using either the mouse or keyboard and select the cheat code you want to modify. Then click on the buttons to the right or type in the key of the first letter of the action. +
          +
        • Actions: +
            +
          • Toggle - Turns a cheat code on or off.
          • +
          • Remove - Deletes the cheat code off the list.
          • +
          • Save - Saves the current list into a .cht file, which will be located in the save directory.
          • +
          • Load - Loads a previously saved list.
          • +
          • Fix - Clicking this fixes some cheat codes that don't work, but it will not always work.
          • +
          • You can also toggle a cheat code on or off by double clicking on them.
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Search: +
        +
      • Perform: Allows you to search for values in memory such as life, score, etc. and allows you to change their values to your own preferred choice.
      • +
      • Usage: +
          +
        • Select Size: You can choose what data size to search for. If you know the numerical values of the data you're going to select, select the smallest number range that fits the data values. (eg. If you know the value cannot go higher than 50000, then select 2 BYTES (0..65535) instead of 3 BYTES (0..16777215)). Sometimes, you don't know the numerical value (in the case of life bars) so you have to guess the size.
        • +
        • Select Format: DEC (Decimal, 0 .. 9), HEX (Hexadecimal, 0 .. F) Most of the time, it's recommended that you'd use decimal, although there are some cases that the values in memory are sometimes stored as hex.
        • +
        • Search Type: +
            +
          • Exact Value Search - In this mode, you have to enter the exact numerical value that you want to search for. Such as if you have 3 lives left, then search for the value 3. The cheat search engine also looks for value - 1 since even if a game tells you that you have 3 lives left, it stores the value as 2 in memory.
          • +
          • Comparative Search - In this mode, you select whether the value is less than, greater than, equal to, or not equal to the previous value. Such as if you have a life bar and if the life bar suddenly goes down, go back to the cheat search engine and select less than to search for any value that has been decreased.
          • +
          +
        • +
        +
      • +
      +
    • +
    + +
    + +

    Netplay Menu

    + +
    + Netplay Menu
    +
      +
    • Internet: +
        +
      • Port - +
          +
        • This is the port ZSNES will communicate on. While the number can range from 0 to 65535, it is recommended you stay above 5000 to avoid conflicts with other services.
        • +
        +
      • +
      • Nickname - +
          +
        • What you will be called.
        • +
        +
      • +
      • Start As Server - +
          +
        • This will start the ZSNES Server. Your opponent can then join via the Connect to Server option.
        • +
        +
      • +
      • IP - +
          +
        • This is the IP of the server you wish to connect to. You will need to receive this information from the person to whom you are connecting.
        • +
        +
      • +
      • Connect to Server - +
          +
        • This will connect you to another ZSNES user if the port and server are correct. This is only used on the client side.
        • +
        +
      • +
      • Your IP - +
          +
        • This is your IP. The client doesn't really need to do anything with it. The server needs to give this information to the client.
        • +
        +
      • +
      • Allow UDP Connections - +
          +
        • UDP is slightly faster than TCP, and should provide a better experience. Some users, however, can only use TCP. Turn this off if you are experiencing connection problems in mid-game, and see if it helps.
        • +
        +
      • +
      +
    • +
    + +
    + +

    Misc Menu

    + +
    + Misc Menu
    +
      +
    • Game Keys: +
        +
      • Perform: Allows user to change and make game keys and quick keys to his own preference.
      • +
      • Usage: +
          +
        • Click on the key which you want to change using your mouse, and then press the key or joystick button/pad which you want to change it to. Pressing ESC disables the key.
        • +
        +
      • +
      +
      +
    • +
    • GUI Options: +
        +
      • Perform: Allows the user to customize some of the GUI.
      • +
      • Usage: +
          +
        • Mouse Wrap - Allows the mouse pointer to wrap at the borders of the screen.
        • +
        • Mouse Shadow - Disables/Enables the Mouse Shadow.
        • +
        • Keep Menu Positions - When enabled, re-entering the GUI from the game does not automatically enter the Load Menu, but instead the previous menu which you were on when you last exited the GUI.
        • +
        • Save Window Positions - When enabled, the GUI doesn't reset the locations of the windows when you exit/enter the GUI.
        • +
        • Click Enters GUI - When enabled, clicking the right mouse button will switch to and from the GUI when running a game. This however, slows down emulation by a bit since it has to check the mouse button status once in a while. If you are running in a windowed video mode, the right click button won't return back to the game.
        • +
        • Use JoyPad1 to Control - When enabled, it allows Player 1's device to be used to move through the GUI. This is mainly used if you want to use your joystick in the GUI. The equivalent SNES keys to the keyboard keys are: +
            +
          • SNES ControlPad = Move
          • +
          • SNES A = Enter
          • +
          • SNES B = ESC
          • +
          • SNES L = PageUp
          • +
          • SNES R = PageDown
          • +
          +
        • +
        • Transparent Messages - Makes in-game messages appear transparent.
        • +
        • Wheel Mouse - Enables or disables the mouse wheel.
        • +
        • Filtered GUI - Use your favorite ZSNES display filters in the GUI. ZSNES, HQ3X style!
        • +
        • Trap Mouse Cursor - Prevents the mouse cursor from exiting the ZSNES GUI. You will have to move the mouse with extra speed to make the cursor exit the GUI with this feature enabled.
        • +
        • Snow Effect - Enables the snow effect in the GUI background.
        • +
        • Water Effect - Enables one of the two available water effects in the GUI background.
        • +
        • Burning Effect - Enables the burning effect in the GUI background.
        • +
        • Color - Allows you to customize your ZSNES GUI colors. Background, title bar, and window colors are supported.
        • +
        • Always on Top - Puts the ZSNES window on top of almost all other Windows applications at all times.
        • +
        • Save Main Window Position - Saves the window position when you exit and restores it when you load ZSNES again.
        • +
        • Allow Multiple Instances - Allows you to load more than one ZSNES window at a time.
        • +
        +
      • +
      +
      +
    • +
    • Key Comb. (Key Combination Editor): +
        +
      • Perform: Allows you to specify certain keyboard combination routines with a single keystroke/joystick button press.
      • +
      • Usage: +
          +
        • Description - Allows you type in the description of the combination key.
        • +
        • Key - Clicking on this box will allow you to select which key/button to use.
        • +
        • Combination Keys - This window will display the sequence of events selected by the user.
        • +
        • P# - Selects which player # will use those keys.
        • +
        • > = Last </> - Enabling this would mean that the event symbol > will mean the last left or right direction the user presses in the game and the symbol < is the opposite of that direction. When disabled, > means right and < means left.
        • +
        • Game Specific (Game Specific) - Enabling this will tell ZSNES to use separate key combination files for each individual game.
        • +
        • Clear - Clears the current key combination field.
        • +
        • Add - Adds the key combination fields below as a new entry.
        • +
        • Replace - Copies the contents of the key combination fields below to the current highlighted key combination above.
        • +
        • Delete - Deletes the highlighted key combination above.
        • +
        • Events: +
            +
          • Press+Rel - The key will be pressed and held. It will be released once another key is pressed after any amount of frame or second delay.
          • +
          • Press Only - The key will be pressed and held.
          • +
          • Rel Only - The key will be released if it is pressed by a press only event.
          • +
          • Frame Delay - Delays for the specified number of frames.
          • +
          • Second Delay - Delays for the specified number of seconds.
          • +
          • Del - Deletes the event at the end of the combination keys list if one exists.
          • +
          +
        • +
        +
      • +
      • Note: A 1 frame delay exists after the combination key list has finished processing.

      • +
      • Example Key Combination: (Down / Down+Right / Right / L): +
          +
        • Method 1: +
            +
          • Press+Rel Down / 2 Frame Delay / Press+Rel Down / Press+Rel Right / 2 Frame Delay / Press+Rel Right / 2 Frame Delay / Press+Rel L
          • +
          +
        • +
        • Method 2: +
            +
          • Press Only Down / 2 Frame Delay / Press Only Right / 2 Frame Delay / Rel Only Down / 2 Frame Delay / Rel Only Right / Press Only L
          • +
          +
        • +
        +
      • +
      +
      +
    • +
    • Movie Options: +
        +
      • Perform: Allows you to record SNES movies so that you can play them back at a later date either to amuse your friends, torture your friends, or whatever. Just don't play anything in front of your enemies since they might break your computer. ;)
      • Usage: +
          +
        • Movies are saved as .zmv, .zm1, .zm2, etc. files. They should be located in the same directory as your save files. A movie file consists of a save state file, SRAM data, and the recorded controller data. The initial filesize of a .zmv file is the combination of a .zst and a .srm file (around 300kbytes), and it averages around 7kbytes/minute (value varies) or 420kbytes/hour.

        • +
        • You can record: +
            +
          • - Standard 1/2 player games
          • +
          • - 3-4 player MultiTap games
          • +
          • - SNES Mouse games
          • +
          • - Network/Modem games
          • +
          +
        • +
        • You cannot record: +
            +
          • - Super Scope games
          • +
          +
        • +
        +
      • +
      • GUI Usage: +
          +
        • Record - Begins recording the movie file.
        • +
        • Play - Begins playing the movie file.
        • +
        • Stop - Stops the movie process.
        • +
        • The numbers at the right side select which movie file to play/record.
        • +
        +
      • +
      • NOTE: Movies recorded without sound cannot be played when sound is enabled and vice versa.
      • +
      • NOTE: Loading another game, loading a state, or resetting the game will halt the play/record process.
      • +
      • NOTE: When you play a movie file, the SRAM data becomes invalid, and ZSNES won't save it until you load a game. This way, you don't have to worry about your SRAM when you load up a movie file.
      • +
      +
      +
    • +
    • Save Cfg: +
        +
      • Perform: Saves the configuration files.
      • +
      +
      +
    • +
    • About: +
        +
      • Perform: Just displays the version # and the authors of ZSNES.
      • +
      +
    • +
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/images/cheat.png b/zsnes/docs/Windows/images/cheat.png index e49574382bf40b55ba98e336726c44e07426565b..148ba2507349035271007a9a602a2e5d840f005c 100644 GIT binary patch literal 11704 zcmch7bx_;Ew=a|uEEJbOaf)kjhXTdjt!VI4T#FSeP9eBMafjmWB|vfaV#VF=bYVdxT>-YCOQc^0s;c2oUD{O0s^8X{40q13O-Vb`gs%q zfz@A5N|?Pc*tk#%vJjI8$Ke3_1_~78ri5FZy+hrYG-(n8||~c zRr7CzL1MfV1-4J~UxLTIV{)1=C)phL4$P`XDcglcP(C*NeJ;`4W$TL_`QUB<6qbDK zGc!2yvk;9~e2P@+yie-n{8+0h)x>n2ejUHLu+o%dr`BIr{w(jQues?LBk=55`e5pn z04~=qF*#e(!0WGlT&CaTx#rfg>pVdH8R1;(xaYNztn8wh%)NrLuI}W}0AG_!c2eGE zCHEww*Ttiz5xf*KZ#N_3rq%0q**w_A75v6OMZdNEx~|wrLOb*y3o(uZa{dj`q8FU; z;M-Y((>e~J3+4()5&rtKXD+vp);V{+v5=*2||WG@|mT$=8A`8b*^_io!C<9f)QBO)&h63KCbLAStv&Mv@auE_{pbRsd0ODTXR)$@ ze#a-$h)))oUE|{w1aonA@N?BSadbAcI3G_Bxmbi__y16TI_tKHhHIo3Z4t zF&@9%8Hz5&<^bb*bfA@Q&&hW}(xDr!+2~0pml|rJ7XolzkMDMg*+`)qU!wQp=}x92 zWkBSnKaa<)bV|i~vITeVG2-!Ng0sfDu+><^i{Dj>GuA7V=%vPVu-Pz%*VS!ECR|pDv8pgP=(oP!7&|_x& zMH4K!VpNxamym#W+uGQA(bHU~`u&?UB;>BnJfFkO%;sz)T&viy^Gk`ss#FoMQ3&q1 z?d)ahAGFh;t~Opa-@R>IT`eF^8zcMZhr3o*xbJ_s*J&i=)AaWFbLIyr$QqVe^w({g zbGSKA6*RIN+m=-IzY8gw(onc?kvgh0U1ExvC*8ok(6z&NMI7vUEc5vbwdD^t}I^1XY! z+upPJljUjyyS#+H_dDJ4MNN~Li*WIT93CeoZbuWx(MckUNU!qp2y=7szK82f%l7EnnS7i9 ziGa!sK|(7fLApZf$rGdiz#>V^2$?rwV@V#$3sdN)r69JpaAATq|GQ96Zk z#)R(1;_;kJhTf;on$@q1Y@jv5VsnPZ2Rjy>(ctA1)%t6nP8p2k$HS<_(ul=<*vO?O zB_BOrAUPTN*JsMD{*b$pc#B`8q_zikr8!@789&>~;z#PIk?5z9%7meubiRmcMx56Y zSz7hw%|m|#UuvRhTJ(p6=jl>ZKJdaE{bk+crfxowK=5}g@uaPO$Ze=g_$jOCpm?$h zh$h7m5o{I6X_$02mvj{70h!h@w%mro&6;TCu(hE0-38+ao#%ggQisssBg(-%Jq5QZ z48VuQ^GR+wXDzRV`r+gV^a~R_W~J4)eB;<^=%sO~-_w%QLjV#CsBK;b(C+XYx3G?| zi~%BRJ_g*1Y8zs5g{;M*t)+s9HkH5 zumTq0Y5|~_6jip=a`0g|Ma?DG^U+Hfv-FYoI zvX9SU_%`zMDMSZe^Loiiunll1hUZZ)XOdZe3B=WE6*7tsP8GhF{b+!h7bxi2&{%=I z@oh3h0?`1v;gkeV2+L#EP&FOBn9~4-Lz z*VDz^*Qe}l^!n!L#rb89I-nazX(o}U;N5L&O=-L}A+QG9pMn6k{uqR=okQKOdG5il zEqFEv-&qTi8d&Kr|Ai&ZJ_yW@RigjkE1DOgAY(8*ZXyPoni6v`$+5G7IGk9VSbt^( zq6vGQOKGR|MGithB;umN+|};)v?LH)=U0e73hwR=KDXphw41MXV}20~RiIr$oDx!r0SS3iI<#MF!?FIy!GfYdH~N5@|k1X~7UDCV4h)_d<} zlJ?&<3xI4K(N-)!Tls1}V44SQ;%(*+D_}U$e}KeMs21t?@4vmtv4Y;KyP zCj&1P6{GOkQbBqKsWoJu)Z)Se9UKEFG+9QYfS6Z`qtTi6tU^mmf=dQ!ElDv+-*Y=M z>qGJ+4$DPWG8mya(g$yRl~JO>Ny*6^&qi;LxYzj0{S6gZBK#f(+=TgTOPK)o59{$& z^z@4B6oka5-6%H^7#HIK#bk5Q6;);CIrffRT;`q!*5(syb5oPcuayIrdq!xvWdj!9 z_4S){6ChI+RWKwdDM#hvCw=b-Y39^yPz${|DXFx*75*_OZl_=u`PfzVP*_OUBDffL z(j_|2L_1Ew*33V@cR)sO*7erN*7U13I_9aHTlLJ0;Mdv6a9onV2gKD5 zV`}E>(?fVhM->x2sww9?E_#FYHqeQc1x{}MIBZggrGu@d?TD#R{-v`XCo!T3XVnJ|65(c0)RtC=Xo z+&c*^Ao_a}q_3Mwn!q_ets3Tpm>i`PJvtioiFH&}NXX8`$&lL?k=1}yf%=t3X5V<~lSbpxGUo8N!1$>qI!*)i*!i(>?jS`*;7$LeRCp~3#1SR16MkKnLniOwvmT3OqE z(^IvRTme8%J92D~ZeB77*%)d&%Qm}mkq|{6XLkm$#M-c~b{3hc|JGmZRvNW>9}Fzr ztohzNhuw%hZEd;~shB;oj4JM0LaYz0CCDi#NZEiP5tIx$lwvn&;5zSxe;C?ZUWJA5W6N~Zk)Fe`>#&M`il>#b(%AO(ET+4xy99N^D z5g(-p+=y2tMz31OWgz+P@ri4p)qnSmq5Qn{O+`5YlXgQAxdU7JMeD}>J`J65_Q)N4HE2FPMC;Cm1#-7j4w+xnD&xxjNPkCS*A7J*D%ZC7X2SwQ+MWh)=BR zR4spb5S&=o+AattJm0lTW_vG9)#-DSA4@L&4$Rc!#--BDZHkOEBfDm#G~; zoOMJAP=BFcY)qm!?j1i+;=ljqicmi;T6wf(qOb~DKL|k$=7OgZ9|RT6nz3izZlY2X z(i!260+yNjD0>_9FTa(N@6QD0W&B6<0XLn+CdfwA3^XDFxeba9!d$)&v!i@fhFR%p z#f;22gHrcr&FHXozxVLc`++kPeD4iFxsS0Slh9^V!q-Vo7QO%DLOV7|%h^LD=j`bz zs|n>0kZ^TBy6nf;YHr!Kgr@o=89z~mZFwRA~2VrPXuAke=>#76Zb z5x1b5+WYPn3GO_Cc(JbKG+hPXzE#i9Gc;}O?FEXi=0#277B>klnNK!JfD$%GqcIuC z$l|EvY;DTJO4`aVDaAh9CQ1B*Ir>a6TZYW4Lr#(8BN5)-RFU#&(=nVOD#hx9r+ z~RAq4_;G@K@W8BM&ZuCK;wf360YO4gR7^ty#;Z_<;D|MoYN_< zPn)`Slzz3*+uOIiC5gmD(S5vvbhvC(r`UnbsWt`Dcf}z!xuOD36cpXCkF8x}LSNG$ zj%z{mrSn!knOmp^A~hW1Ea)mq-$oFA)JVq$F*J4E>w4SkQpn5%_m=PQkxgNJ5H@aQ@A zz&yO-DwL)1eNM*DOPvGKGMZXYqjp!c!o2)oYPBeC0V*0AOr1UG#+eYj@9N;Qfd)3e zeMRIx&fr**TZqfXSa>zL6@JF4rl=W8+pMo`XvCJDow;|g7pkD^H#|J_3er^o)>D%y zd&?Grj6rf>yHU|m*-%hWk{^U=8)%Pg8oMV*xDSgs?@pN?h5eRg{yi))kef0;+)eDp zK!%mQUyECwlygZ7G@%d;0aL@9w}<&(jx6Z}TNbA1?G5g*x#7AB=@?|? zCJReT3%gG-dP~`zw}z{_u>g2&mr(qzI%S^W=SS}}+IIpth1G(p#s)|P7z!FuyYs&| zrj_HN>-}!@FcQ$ASgSj1bzpL86oLXfz5ljf8hRrF2Q#e8*w~mZzt1XsxaU#R`14hj zEDE@h>*}`h>Y5g}g$n8=wBefg(r_o___bpAmhZl@^7_0V16_wz@$F$E=J9dFU?_t; zss`kpba)$B#IKDeIa;}wyPMANJ}2FPHvb1+Mc?b8!C29U z%ZY4?r@^)7h~{Eg%#ab>6<2jMJrw05(M@(;3KXy?{9cE5c47sHIka6|pNRS0{+$x* z5_P7&BsA>Ff-dMJm+CK9NZmK6SUpQuqaP z6PHc-!>Ro5x2T*5EYHdiAE`9EJ`Nh107$o3R`;ymp?5e9v5^;!QTVSMZacX z*kxO@ZO4Q&LHI>-zHSRi<^x&6q(T8_!t=T+F{p(09m!5vrS<+rB3_R~={Sh5I=jUE zO|9c%vppPh#8yfA;_D-WFvon&}K>jfr0G;#58k}D5>2;PV%nj2k8 z4;zR^#f*rE>EhDZZja(CVY4|`E>j20@^8fZ2YkjhL`Mr&_)DxQucoA?DCPOBsuSxl zA0L4&_xSl^R!l>Zlzb{N1!;&5QerAs*5`(#!W@gzCu_(N2hqiji-{qssT6VByUGD3 z1r((mvYy0(Fb8PI)ki>u(B*AxzjU`C`J2_Q`cZ-!u*QU>vD-aaA|E=H{@S(t0|TT{SvpbES%F$ zn*Fx2Je>U5&>tfbh;`f+CaPWll#V@ZK32Xq4fH!jsh4ySp&NGeOh!){BaYDY^~Jzx z{**AY_gc$NYJOOv&57`m`|2)+Ge8K3{3q&i9&lIBGcUr|Qlk_aDBUZ# z?ZBpu#F5YsrC|JG?#tRx`CaPvj9(KruPEaA7eBG3SUq$_iwSt^JCvupe96Bao|^*< z6DUmzT@wC@dax!k{u)L!pi{y|cAfH7;Tzi3kw0IT#ZtdW$}AZRABZs4os=V<0NVX= zl^h9Uj1ztWEbaoI@K93!U{%CbOjgSQpMeyRh!5T12mGs-U4wrBeYD#q$0*<92%QNo z%ILN%vX~>0V&IkQnwnF@5{?r_gJr+)K*m-2^@g&(_)RSQmX`oENNQH-lnc&?f$r*S zw&Ux+g6-*w*`8pfdcMPJ@0K%5f+f} zCf=30m*nHHADVWiaf4Gya zAMFquC~-w1Y>R)%+yeFky21 zxjtoL2W#MTqB6A_aBsY6m<*?~2d_O_bglOfh_=_#YYfbVBsSo;#P*W=RlYB0;AN%xbVDf@k559Y-C5u1KmQ}@yr^wWU7<&HAQBT9BCBpD zNlh$__!Yt5qe1*>_W3z5H;Uq|I7m-zh}Gv6NEp$HumcF;fOeY%ft~Z?Wo}-BJzvEW z!%P^05amE#YD0BCuL4VqgQLk}Nv9&S$B9&IB2hQCm~(>`C(xTKtqs}zV3eji*^=-x zYyAlt!J1&$4~d@3Zfn#|+|9HJ4xSGw_w{j5l_zipi|@VlTdIs(Y2x9`| zYOl`3TvAqIZ&MruGf|oI{CQ{-YHVeTCaQo!kdo%ANVDBLD<`$*yOL>+d=*?hs2(+G z04>-gosF0@jt%^>Q$YFaY=!9yp_H2UXTIMPvA{PaV{iVWhV>GLe3_Ib`d?}HTDQ|x zAyW_3mTq`DEup*heZ7`wqi#G2odoaSj2uSl!anOol?O+(wRi`xhM-erdyIv^4r7DJ z`A+G0sFyHcgRXyM6Z_{&x7!E}_hUv+ZboSpvbp2~OPc34L+#_!>`KuDa%)-ajDc*( zkghU`LHtQ5?)UvVBuS7llEDdNdi_&nktD(KV5drxl@+X7C~Me+kFt+1At#D0yqvzs zIX;yS;3vLD^w`$#gLl!ov>VJqTw-W+gJaH0C-FaV{D1Ot0~Zuz?_LQJG1ak) zB!THZ#)g)JOB!4xdkz0YR?ecn`o(g9F|rU(p`Z$V{_t3BB(GqOH1jLsiz8zPArw&~ zC@)^lkL~TpQ|2tb_+k}I<76<)&-j^>uS6u27+3zmiJ>C<=_aQ~5)2HK4EaJ8d94+n zG*?9zXZV)*+Q5Qdf40KCo}f5o(AjHkCP+CqkgbSWJ*Xim$#ig<73Me=21{VrR0S$3 zy^W!I=fWN~dV;Bgt?i)YFZ)ag`Af?rFUCaf9@o&&V4oiqGf~h7Pz5MnH8w;yxc6-I z2Tt@?J71NU%9KBjh>gLROZD|GYQq3doHjLZgL5ZBNGxCdO}C zsBw`~q!?Ms725yMl}LFiVudx$3;OXEA^AtSx+%3-#GT_UQx}hP{B$Z}D#RLOBBbFq zmm5mGY>3QEh?tBdr3>!=@nz2wtjKEfPFb)h_R>`&+HgNpl;-=`Gc9ppp}oe8RWQBz zUD5Nw`zN>O8n+^v151?I`s)e`?`;Yczi!omMwC#nJ5K`xO{bHgA^hM?rf;s&@FOo& zd7&U0h{XosW8ZG5#COd|xXQX@(wmf1SN-7sqUbiL-tdL7^GQ)|EUn3DhRW(%CUz8D zJp+a$wNX~;!E6H26*JLG40+`=s>3TiXNCM3%RuK-{VP`BMH6(iUq9@2evMOZS?tjZ zM~c780ebQnG;7^A*FL)xAnm)n#vB&I&`s8@984`o*{?L9&=os}rH92>kzZRdY%amQ zvXz7uq8L0x*M8n;2_mW4O{XVZlT883k_>+`WOFcJJ2I^JD`G4Z{5rVFilxl7QoO@( zvcquIrNQ#_$9hR2K*4Edxb{tP*K~x|&a6eBVuU)SaT&R;!uQXIZE1z}NvqP(j%wr7 zA8q)r?+i^b^zQFMCtR+~_g#X~A*iz$Z|CYN=J2BD+UsZQjX_gCU+Zx|&yL`DW`y|_ zJWZj$ro+<7qFd!|!0w{YUZc}>Ue8HJ8Vc^v;(*qaA;Nye$UCgz{W6icd@`(F?Kb|r zThZt|N4jtzSNJlhaH3&u1g91GFIrimqAmE;d7N#++yhC!M&`C%4c~ztq!*8dP4B3) z7q_Y7Nf!d^FfQoXC%AhVVX6+W2|srD#4$uXR!!ujL8EWLqN7_+o!m=qx!o<>-Off? z2Q~OttpSLVAa-10m?z2W*MPVxXSX}#DxD@K_m7!8Cu#a+Ysf(Of8V=Q2j&WZfpUt- z^sXXfen!9Ujk7}Mj#geN${ksfVI*qeG`EeJ`YWoa$k-sB{kYz+3RyIVpc4FolAo8FwU@N= zdrhwi@GG9J{plzfg97qn{m544qCxYN*Jl5i z!k{Oppb`cd0dr0cvh$XTtKz~I~YcDyc58kC=MKUht?Htr2J&Qek%YBP5VNTIE zgDTBm96o%|cTnCLW`BA8MNKzu_wS#k+9qsLG8;Sd)a-O4&A8-@jBn~Du!IBC6O-Nj zKi`C0z*9q$l1NDQN1u!`$lBWP_OU##B=UhfT9uy(fRIDmIH;PI#>~X(;?(Tq)EpPD zF#q%vD{iDc*(ap0@Y_-^kKHblm;FaW+fwLmKNmL-v=O#Ie)v>%LO+mLt{J*n6h}`> zzeTX~^q82PtdpcL^#cWq!ce3p0{M*sslsw-xT3KNk$fr{DQhBuoPW-RB0_R35MmTRp+J(RKi$jVVNyRWLTr?Aib+iZ|s@+&IJC;9Yp~EJn6}cV! z>;}fWe`j2*xZVv_D!cb(+I#TI2e!5Rv~aQ{iFfzH^Lv}ZVDwO22tT>%`0i)onDgIk z1y)%Wf9xqTn?A{;pd*IO&&=mVCGEs$H~-Or4qMdEBr5S}$s)cALY`mmqTb%HpJ%~(X#@EvWg)}b^ypzsc$&`HZC97anb#knZ{)Rd{`a76$M1o0PVatst zF6=eR`JLh4hDP|k?7k}c){HLZ(C@Cv(6@GFtfNwUZZnDJp@Kg+=1bK4e~RIKVTDys zC-LtS)pdq^9(xprhkoV2?75XzNL#boM+2JA-)~&qfAaAGLSK8Ii{zWmt4{826Vwx}}*p?D$!Hv5+@aF1GERdeI4`>#U;c=4-SjRh>P1~5(uUo{D^kPr}>^wtC$AUy$5RZ zYO6<Ua<{mRUrYnuS`u_&Gp_!Z;E<5=*CRUC>0LU9u)5rua{c?lz8RMFu3} zg+`$)BwgDA?Br8MBP*mGX=gb2dzdgt`og-ri`pH?C$e}2Q-6VZ^=QHtK0z2Z9{{1? z=^`LW#w7$QCm(Zi2|F6H7DK+Cc$M#qK&gZYQjzGq6TA|<=O$jw$Q ztMtD@;o>y?Ct*C;LK@jq4^OWbr-DXsFotA*k2nqf0ik|rPv5tVc{|PT`nT&l-y70> zaxQK#hxS`Bo?=FJtt<;n0oSd#ju=AaTIDxb8?<&3AC>*I2dJXg$OXTsDjc9{(uD#r zFwXnY&idrE*S!G=o!z^xp{Kld?2xzELZ@wCD){@)cU=Hm>f-o zXyy7*JdK~eEVMpk6&~{gH&0B5YX3s}o7SzF?SEs!B$u?x$qLl<#kr}mLs-;)cI6aM z?wJ7X7*)T&nO5fNKceuBZdIt^wRce1w;5Zg+%li!7U`s;+m#>dy%7g1RzQI(-%7H9 zXY)~(at}1QfvZ`TR&{0hSNn+yX%;h4Hk9j~^LTB7c1MPgzrk29$!1C{iDI5GR# zRx`6(d==9B@XlH>!l(BmlGND^j~iefw=m8jeI?r7X&9CwU4ElSV{LQha^0i(O05W3 zusj=x=RpVdJ{;ZgcJQ(D@Yrp%QgM5e=NUPtPxoX(lQ8UHov_=vb=A6lb)XYN_Yi${ zK-#b5jFr8U-R9j~G}ij_#m7j0f9gJgSEjdHAaa9B#G!Z9LSZ zoq5wz{>Y3(yD9c}Oh?i6*J-8Ptht*E#*OQeN}@_F`Q0f}boOlaqm;^D0q!C1t-mtg zpTC6~e~RWE?c5je)!(l`zae}<|Jhn+NAi%vin93iam_j6O~%Jj_kC^F}A;Prgtd5ieXqG7Q%~YAz$g0r`_%a zpZwNFMt(j=+4;1(cnh|)WoVi$3hKL&Hi>4)7r82H&KVcdo%~fZA~9JRaS*-tGC-l6 zN>IyOlw}5O^8E}?YFWRDj(KBOBFp~+!o0S@ECVhLw@A@v1PvAZs0_F8(;q6gayCd) zZm*(173AdP2LC7{4Y`@R;p3aVXg+#O7#tq{=McKK9vr87y(K|q^e#2+$v#=14ZTsT zKT=dZG;v2N=L=7q&z}%$m zwU-So`3{UX<%Jte7BIv?3g5x+MwgO!JQ3#+Q=|!Mp@})f!E>`v<8F0BRWbUUR3)VL z$H}cV^NBWJP&V}H=d_Bge;3t%J;VXy)g)827I9G|)Sy{OucM);Ce1l9MmNV3IGR$fe|1GSP%pl0yzu;iYWZQ zMJRqa&4~tQu`B1fBH1k41d#Z@xA*@{?Ei~HivLvw{ZE+8aoAS5AjvmjLib4)=2|8LTD kE07gdSN=P>c&IC4*b0f~DrAlWZZHHnX=SO(_aN0pF-k%? zN=iyfMoL0LLP|M8Qc5{{Yiny-V_I5TT2fL{PEJZfLQ-ODb7Ny#V{2nVLPAnfN>W-< zT3S+bb8~rpcWYy7gn@pHjD%xjV>v=OmX?w+F)=wgImg1m+0W9Vpq{vQj7pnlmJqU5K@!~Qd$5h|9dx_2tteiN@FQXoDfo_ z2wJ58Qmp_|tq5AB2vYBJO4?dMi~vHM07|e`g1%&s#)6~An5@&SzqKK2ts!T@2t8{l zO05`Uy)}2WDQm4MYo!oc_cR!5V`HrVO0_w2|6L~i91O+?F|RXlIVoei9XvTHgdrGG zArMMADRW~=T2e}5F)3pqA!{iqgefU|DJg3hA#+VobwW~WIZA6_q!yrl|4+RhN5YeQ8NcQv$TK6u(mN-Pv_; z>r{lcfzlWBL1@6OAsA>WF^}M+q$Dl^$4T5YBqeP^D9{$l>u=zjT}h+e*_m%fXA^#4 zXEg8Ux8Hm--+VKxz<>Yt|3CQinU8G~tB(f$>w*7&@aJzg3=M(i|277G?;Je;_QQWC z4>5mm7W`*_XuJO%Gk-ubf8~dsaD}{Q|Ks+-Ji=P#arC>sVhs>>HHLh2u6!K1D(oQJ&s znwVdh0kt6Y`{${zkk(yTg!}{RT@PJ^ny;4A(v5`QHvsLfmX~zBK@`LcKLPP1g>4c* ze({k@k6gMCvEWI;PrK#o;Qx9y3O@AFzDY8Ft(9^zE1BA3B=19eLKXQZ-u&7n$aP`V zTF0~V>rliqSF!HVMv``ZV|Zx86U|n=UYniG=Z!ln+pjk7w5&VZcUoXowrt-N_`>DO zmoGgzYNbGd)^53U`O@WQvMJ(2lofyUGNk_N7J+&BzEs%*L1>~&eIYzK@ycje0W zuRPg=fVm|Sc*|w*KXuhklWsIjbID5SjfS4G%6g`mF&piSZU+-Ue)Ic~_~}-gl$mKX z8qm6?-XL*HIvDy=69&V$X|@)@HqG(26()HzkUakA_o3!zf;Otn>AJ2hx69y6=~^q3 zf#ge-<#MJ0!B7@>8`^Ru-g+7`UAd68?AElcxkh`*u3%}DB(W>%)W7I-vrU=>sh7ZA zZjhiGFOwc$g{DHm>9(F*YT9{oEo&6=LI+bV@GjaQ`YK5azpo9!&~ERpF3qJgjXVHy z>(yp7(@a@yvy}pj+^{Kd@dbFEgrHQTP$3xk9QdCj7zyR&a=F5iwFs8E6x9ojIb(J< zW#k$pSR;TWnV)V!+UBAOsnX5SG+2$fRL;=D?LwhlFwLA%XqC;Z&~w;K>zwpxYx=UeX;@J4O?C$_Kp7S^a;{J;q@291 z6lr_6kvhCB(#U6DAkVjlwru@`m4a9p+(kV^FtQ1+ubHlwH3uUfc^)1Z+Rc<{9B2YE zzX1Mk0gbepg>>nA3sW`M~1~CBVoRNv8V=Hkp~5tLgFT ze4*2t*sYDsf$#21HxBH7JY9_zw8u37Rk+rA7d;Cw=>jFF1+)1h3oI$O+C;$T6&nNp=xTRNC1 zRRAMjbXp7fO?_{%nJFgh){K$iVVL_htx*Jw$wdM*(>3%YD3yXdfRT`_7M*OT^X6hP z8H+AWXZ74Q(&uI+ptig@`#8=?zyLDI+s;AVXR+Sr_nMl;nYG!n|s#UU{?(pCf`|KaM@tGheD zs~>v;-lkzTs+QK)D)(*vXyD@WFW5sn)hOmoD_*(fg%_TG!5-S}@ywE$E2I~TGy6)- z>F~HQnTzT9WYsJK#VteAD}N7}zx8yPps$(MA#p2gh8w0~#OrevL(kVD#nNPHJ`^uE zOn6OZTi4U3S@osVpt2;r-DGb z06=?Vl}s^KCj&5_OOY4$EIeegf!PKydNvx5EzTD6Mlx=cXGV+pLbH}Akyw3};d-lpRdn%#jV8wvYRA{a+S*o=1(VSgDU8`F&m3UE)hbjeq!okR=uRtby zYBa|W#_IV_Yo<-8!x&FkR>M3PgO<0QMjDH?QXMSWEtkwzb$Qms>4u5BRdx*79;Qufy^u5csXY zxy$f8IZ9?Yt3ojU(v{1XpUQTYh6ybQZJ2>30M5o12*99tKrt%`?%<;&Gc12dVi@i5 zAao)cipQZ1p?RyBOj@b=kW*5r6x2u;QxF{|9eRx9eTKjX=Is#V4ON0Lp#T|(FP9QQ zEosH)X8?Gb21bQEAy`L}Oc(6d#uuQjq|=&s4C)~5hsDMWnPjYHsFctkv^@iD0l-5C zpjy(98!tf-PhE|YGAa{Jk3yvoDIx{9tOb)$N&*@Q#XuvS#{p!kP@RR>Go8~a;IrEE zA*iU`!N@P#yh6lYCzEE~{fI2#Bhu1=m#2CcIS zkCR|0jOKmhuM-s;l*^6$V+CnnBxX zckr`qk|?Hi({>uIb<%_FEXewstV^YsU z7w*5%uN@1Nzy9n)=OELUX`Pxhe~#2>1M<%we)!?n zzy9?PKm0nd0)L?e_rxoXs(cbK^0&{PecYpG2SESsgAdL>2+zWU3-fOvH1an;|9|Rvpx><){eahd4WG|+0XZ}Ti}9_X zwm522fG9F+f9luB^Xs4b^k+W(DR}ye8>C@1Uo*)V$!nKr$76-&;5o=Q>U$5 z`g8Z&&#sbpQz<+)SU>jC`yU4j38OFbrxd@z_X9t)7Dh z(uj`TdAdF}juz(U*?iwvBod7z;g^D6GznG;+@Oe)dOBu!F&v&7+cgKqTzD5T;MX-h z{!e@oYGHci?iu}UW*h7B_AqiwpzqnbwGWU(8$f+5@ajDGg+KoBJ3s!GkKcLwo#f}Z z9ZxryM%$LG(sl-}!!t6pwcopKOCKO@+097c)p_m~jZ%8m443ZLKL*P0*LqpqK7}-Cx2^;}o zU!8{l^3>|u+DGm>va)KduAM%9devNATkQky3Pj%n_A105KJpO~y>i@1O&q-E7p@CN zj%*m=4s8O*4ch{*&I5ovv$ATgt=@a6zD6K(=1gr3V6<|q3y_bj5Xham=UxK2drz;_ zSJxo*;R2+FyvF9vzbYAeT&A3Cvis&>y^N8dO7fet(l*Y7=c;uS+w1L;6(IcHB0iB1sHxU}?__o*qUB?J@ zP*0z8#QW=6TWr%6)s3gY-GYW&hgS2&{K@H)_nd%ndidn(nc33>VrRO5JVCJT*j;Ce zFuYGszkj9vi!jPhp01N!n0tGGeA_R5@IxOy+Jj<`Mnc!S{h)Qzj?!SJt0Qhe&~9z8 z0oGF;Ym-AGdzyWQ`QBk_Q;T)6LDbr@`_S5nQ)fP~MsN%Oc5?01NkF|bJ&e4^2IPs= z59Dq5zJK)uA(zv~POP3e^S;AfsJ-{yZ+qJZ@AjpUg3ho_;&qO?hbgG~VMzdKyIj#j zem>8yXAO6Jy`pLSu&1P98rOB~*!|Ac6EI@{AWxoH1M2tw59HT~eY%5Qcde}2!N*pd z;MF{_R*%}L*H(^p0r~EC-|_alxqzfqcJ+2%--i7H=|hpuF}e-_WG~zeQLm2|V6qbqCRT|Ii#P7RI@Am97m zpCgcb&wGx00XfpEOwc%Lb0Vl>ogIwaO!K)DGTEr5)(}zK0Fa060SXW~eDoN=t7~_j zj-TM>QQJNSHiw@A~=U9vV5syle(KE(ZbyM|+C#(8#WV z`k6A>g#DWJ(~upzf6`%JdM0&H&pT`jbjRpM^pd?3c$s(I1~~aM@975pY!4&Zmbyt$ zzeCs^7SOKAhV8At?e=-vgM_;L@yZv_{Se;h&`334vQ_pM>63?#<~w#pqS0u?*7ze# zHo5;zx4rqcA5C@&)Nblxq_>0AkQq?Cfkl;@MxsNNjqMM{sic21h8H6pFxnQX1W}Wd z`<8Ee)4pVL&YA>}p=j*jfxY`WA+ejBy~N&{#UEbckuM(qwxY`)ZsBZkB24Eu zg(|k1;jxHbsMV_D(MXQiX#lHHtJbqo-2`yxwMf(?=fBJ_90RKsXVb}k)Qt8!lc1B6 z`#X?~#QP>2A@Yf1@Zr^)wY|B-by7E%Hv5hV&Wa2$(lnZp-HlwNu1B-soIYkY!r63T z(Hx&L=geYIA5Ui&!_i1J8wFd7^{7A(qW%8R)c(CwNqcDD*uUTS(z=65ZLnB#e zGJQwiFb-atXh%4jGlCkNy^PkD;@YU8k5!YCd$nnR=dH!`cyYoUPsbyPsb;kqPg)aG z@qXx0SC7($_U)aD6Lad`PQ8|Nna{TqE~r0~TF z7d6=2&PKz~HjIU-gqe>N7bk<$W5INBCJumHG>yr884eLfv&pGMu`rhp%}iAiNd%7Y zBs;VAPG{C0aVo;-Io@n{2#-cm#U-|Exl~C)+LO_lYzldpMhcl&F}yF9sg7qe1wg*> zWOlsJs6(((tk#O=SU6vU$)*@~4{KKU205Lz*=F^W1o873jzSvgt%SFb63*l7EQAfD z9pQ*>m<9kWnM=+`B8DCX6g6_uSTb!S%?1R+Q^>}~j2xUruZQ~p=Bw>rAC08TAMDLj zh0WH~U}>b==+A~j*!y;67E_c(1l*aJsKnzies0s#XN=#m6+2wrymr@S-VU;0=e%!;yc_Jv#zrICNP^*78rt5Z zV?~Lb>YyC1dy|a^V1mscd?_a&Ta-qk{0tk+a$3Ry*l2ql*#|q<(x&TmGl$YTev9OO zB#q?LM3lel@Y>j$5NgK|Z-jE`%#N@P9%csNgepKXM)xCGiq6?~5Er%LbBhrHu2bONz#s8qrhE{g@IIN z$FkvYI6}N**$8+cI13;Fza2^-8kPquOCy~+1=FLL=M^mx>3*bN3Sbu=xm$ zOp`kW)vQsilFJg&Y`s_n##$%K#vDMzgy?iMTnFHe<_3k;R&!qF(VTUHLG)GZek*ssg33uV-xX$nXb)* zqT%UiTzay(!8xxt!l!Sn&Gr&qwbP+3gNX>;>vQ&eQu}-aBhzqOHj@nnYi2r=i6yed zoSrdZ)1r`0!)4W2J-lz?je2@)7OoN%;4Yl>(B8=kzYyu&K>I&#nTm&@!KTIjNo_i88aMAP7{N$2oEXdIjdXtM z00gJC0hT}b;!VsZ`vv!uM`q(+9g`lF|9T2TdqMUi^Kgm>xalIXrwi%g#GYh&I-N82 z0)w58WD5|gN5c7uL^3>`iOJGPijm$Ph)0T?)WtghJ-jxPeIWk1qmW`Ljm!XT+^r=u z86b+|;cR9i9v#a?!r{qiG_5D289l8>wTM0ygy3vU2_rXlWj10F6SvJ0OKf&O5+lI8 zS0!-b#gYYiECILD06;<5oFLm22?DHCDi%t1HW(8S9ED);L69OwdIu~@`Vn}tQ7EsC z4|5!tg5Blrg52(QztPVNx|EWR^|sNJw#D#%v#-TPBju(GnhGHzIA2Z|iX#c#=jgBGx+}P&`a%p7GkFC~(LykQ}C9`f6Z$HsMoCokE z-~J=71$D#gUi-S&lV88;gb+hoy|!n+?hQY}ieq_m40lHwXKMWA+Gti*`?EDDI(uHZ zeMfCm!24|KTC&fkep@uOWlq%yNy0$9wvfrf*RtaGZ96sxuG=#rxelQr*ofyHSwXA7 zH$hS6feU9_T~9#vVvPNzcAi>0RO11g_gNGBk{BGU8-WFzV!Z zZK-__{fSdi{J-zh&#Tt=mT2 zs^?%Lwm9~duE|yKY@==V6KINh!Nm=CZ{&DwYKSH-)X&lZT+B3Vo4#+&>!HeBr9IF1 zRj+icQ%ID$0U}vMexol5j;jEW4azr)=LC2|9VBv8kCMBaj7>(UD-Zwl;X90hnBHUtV(bD$z~!GLX<%uN974hS+P@Ku~N zugz*9XNtUh!Rd0T3lpM(uuUF>4`sWI&!pHHa$KY97^;LY#)pLL5{bWI!$WqA*O8R| z$)6#26>#k?;Jbh;*uE8SkMLoI-XKRWV@s}eQC?eccMG5E@wWO{Qmq%V^W2^wFS)1u zJ1N>;P~)}Hojr6i;@9Gf{;bVqUinCcoGTNR!dA+*SW&LspH;k2$LGpEw}Ql0ft=75 zU~J7mt9!NtDY-UN3J+ciJQ;q|9G5A`oKRL>cM4uVwl%28YxCZdTKjvp075vwBd$YC z2t`_Q=5i;Jlxqtp29kJ?mq5c&V9M2jFXCnD;tL~{d2OBtdjqIg0EeHXP?W#iVDZkk zR1|zHy;J42y%UBM(MQIVz$sn^;PAxRYMGUzZ!Z+@BBEW!Pds~+|9mDtv#4>vy-fIS zrTX-^G%jwvtTti7R!TLJJMrmGKAd?afb7juP>r-3W;}@b;KL5%V z!odtRUK?NX_vt}Tr@6y?%NJ5^&i1#=7+E+G<}j#t{skD)COTsrV;E@E41Z zFX~`p6?tu<)V^jcvllH5Oi2+IQT`#qVZ$qyDU5?jIIqpx$g9QPD9#(o@cP)&M}%{@ zSQlH6^l6ndt(g#yHP#MDEW~Xs*$8lu$&xXgOXg^6(oi_w*U#W6z>(FpD{xZ z)Cjk9kgvdsTCK)w^WedHQEcm3O6wez?H&A!JHmyn_#zICl)SHvkPdw1kK6#|9}E%g z7kWJE=K%$;2%mBLLzM4p3tpqReO}Y2U2>xtmgX>?)B1tzZX``Yreh44G`qC1k;9GG0nhf99N#JXP%EZ4@REch0y(gy|vCuXo5 zxSRn0P@e2}GY6DwWAh3dE;-)i?$==)ygYmcyZ_ETE4WdK*Jf>%n{hJ#AkZ-%g? ztXKZ1FAd-%#)+ti*B%s@REemm>O03Sjr-T9wmT{Dzc;=uQkHAWiZCz{vj_#H?q>9~ zR9C6r*Mp(4)Otouu8ol|h4a!>$qQ&y_v97-Tax=FI++W0igIoIKS2k$z$&Vhn*x2= zvIR0P4ZmUTGh_ypYqNb5ZJ*-6RKs9#*V!iE3$Csf_ggesZItJ=*<=cLq~s_At8lz> z=X4q9Ta?+dr?6r(4SHW2yMsK~HkFtX%8vT3Tl)Lr3NlgD*f5Y>TYRB^fKLK*ad{Bt z5?vRmaRJ;L9iASnPp&O@R2@TcxdVvkHv+}L!7sA&@l@tT4I?6%rg2{4|}Q5{w@~Zh|ZD+Bo}%4i0>um~_@7uQ%+q2R zDNWkks@OH;dRAZ5P?u}7)!>`)*!U2=b8JSC`a5)=F+B)H7YI7kcx`kujfJA*C|19p z&1S=a&7suT1cm`v-YkG zIPM{pqTd=2&u)?jyVZDY!AhHn5Z_kvcZo3uXWBV0858{o3iQ#wMGqv`?nNn|<`vx~ z!H@8(@88pA3;)AWbSO|tnxpbJjyp2fHa_3x1PJoqUTE`acpdHBw|-1#beCULyj3zC+X z4su^xqMzO@$jVnB8&Lx$cK<-~`UM*x;AsZ>Hk!g*$gX{*mIvzrCf=l;Oa2~-+|pm3 z*B;pMd(cWhhjC^5%YJ-8$Mup%dlmcU0K*_W-x zYvVE)L|7y$%j-dkXJH}7PvI*r8rL5!>fUK`)DwS>fe*MRr6J)!tE7WOr8e2+-+SQT~P1fDY!NSCvY z``VZ|kvny}tO5QunBNcdjpJuS+}Xqn8NbF4AlDWl7wZy@Qsf`sRPJ?qY7=L~8_YUU znYj9WZOJ9DQ0y-CU;m;S1%qAvj-7lF{1wrFa&3GTW}}cn&e7;46YR5M_`IUE)$(l161+z5uu;a%~!qoJf^FATA?E5LLsLp>nZIhDGq^ zU9VibKPNt)@Vkt^difJ)suLCKcJi0>^5YDGSSCgNPKg;=IrL- z6RY5l^CZ8OBQtPu9=WUVnGj_>*DKfNw3f*r`!8k!`Yy^X_csBo&8JrQ4#xVwL(XBC z@vm1?txRZr2ZH=b^1;5Rif_SRE4emxA!7<(ajRWRVJgE5Ms55aJ~z?&<=W`wd;}+D zzu_iknYbNTKQQraX7W?!wI#pK*L5n~l*1=~A%h|+M3hA(m544}8@aaNJqU_cAd=!B zZ=l*@+JD6`z?T>|u1l_subl7?W8)gXeC9P|{yH811cCe?e5_xtEu7@=4M&e+!+6a= zMQ?*Jv7TIVNZZ56b;-5mSy|r>NbkqXbxi#OE0Uio>-Vku|Fz|gka@DBV8VlV@sj^M zjbS1F0a;O3u9;jLKYuAcktoWAk6{h~krO<;jB;PJ;1qF<VVq-%IzTk5+K*XTb7I0RVc43#KA@>}n`9M|B!w(lIkDqp0Q|EGG;TWD> zc?sIw`-bST<_7Y$SF;sn)vYW(8>i@wL+3ZG#F@F8lHVY%4RZUAYuYUj(sC_pwOCC6 z5Z-H#VO%>Y%dj(vz;@F8dM*fgYkUr%9fIaD2D&_ZRcQGn5Oz@LtF1)zV>F<)FAG@M=L02FDbvg e69Nl0^Ed(4%)AublTr8p0000hJFE>Z(swS9eD!DM%v1;lh3U_6<>5N=)V3H!yS1j~C`UsHPmoe)8Klr8Q|WVKtAn zb6*QJeC_1o;*t`JVvf^ljTo8o)6??!5$~M85z@rySMs~kHoN+}!Z0W>uuPqpTi*8M z!9TD_)KuCSrMu=A%{Mc*1T4PJ{|KC?0RF;}9+by3CMjj!5hz@fUiv<5y8pwTHa}l4 z@ri>%#IA>~8$AsSP%r`$VAM|^WFM?PNc#uu8m zB$fS;D~S8+74(<2Y{!tD&OguK6Kf}DfsSVJ2EOW*>vE-q8p;h-XxWB5<&ua!U8&uF zzA8@t4tZF}DiWVDhRjMm{?Vp5-Xbq;V3zkyM$0OD=SrO0N=lm<%@-G*?2z^*$y!r)tPxTHfLV!;vN1`E^wUu|Z zmW_w;FllYKKiETXMim7c^^>=49dKx)8oGr5h}2LYWnGzm6NkA!^yKC1wpfr(=KV?Q zWEtLrO!$0*dVB$!@W}QGq$FUi1T)i0WuAX`)%3F5^o&!vZ>nk>bxXO>w88+V(oM6GA-vRD3{oCXOVHkHChWtp|iz@ZEfx4g zWzLLLE~xLYbQd1%twDGjEhgl|^9f?9jk#F; z)`bC|(ut==txM9X5}&JVoBCO#S23|_$w_t;<`zrIDRD%)=~+DPlyvkniu+xU&E2+P zOcQd*PcG=wh2+Bnb@}&kJI&(^Vx%&X+&;A}7CsK&NHr}itmwu{6OFx+Y)*|YSt+2V zjt*U#n|~;#w!*ZAz)ecaMj*hVom^R_4EF9$xY)0oDI2LJlR>rf@`cZ#vJk_-jbc!$ z{3K>qDnz%%IfosM}(4QG~yKti}jkEr{t6mE1+;#pah*Im#S2a;aU{@exEzg#6K zxVhCigpazo-}}#6${|yeSUKZC=KVWeoBH`G(J@nsitWL_VSc3PBk0}U{OreCZyvVda&PrE-0>Ko>m)DvG?J1`E8@{WGx zR_*+>kmvV&I-G1sI}yCB4)X1Sbz~tC4h$YpjgRweY-*!{lUsnCGbtcbRgKT3W$#5+ zPfJM(oLgK}LwtA=CT9@G!NP!vBS~gPxNJ{VvXyEH)+7 z>$MSD`L|dKIT7YT3Gp97#jEkVKmQ_KVH$G(;r*S$Jf4t=vb?@19UC|o5C5wlqS3e% z?)or|1%T20BUbE0NqAH?730sGcu1HL`JXxcQ9k(mz~`dfD0K>K)Y#F@`PChOSuNFQ z(YpN&VhHQ)w5e;eeyFqs>wH9bS5y0M9f$fI5utKC*IK;o6-neh7JY%a%V@vTde@9U$Q5Lh(vf&QI zLylykn0jG3m+g`AQPMfJ60jXwK+|b?B0c+0PR{B=6R4 zRT7Em*{Q!#@~k*;ET{_#yhg-tL?j;$Urr$*trx1wsYg0d8OIZ|QwvhUQEI2x1xMU4 zFiesrVC<`@CmF}rm&Yd;)2bTc0cbM$4{hw>Q5js##E0f-tz@)XX+&KyF-f1MV|~jj zsY_}KV8fX2o8%E5q!Qyq%8)|6@zPksPe-NXhog4qO>$^QvtW?!JN$fC;S-e|s+)^( zDLuJ)jF4E#d)+^_bgZ06@x$k|Q`1Lt1j~rsT8oRz+e0JcvNhy6c1y@dr}0kGPs{D5 zVyOwV&~2drzOS=8=M(qiRg)GO`*+F?f=RP*xd1OKt(cP8FpUp@zHZ{%!~ncX{`kUOy?A-kj^?N-YnmTh z4U0?OyST@h7@2yM<~Od4%p;apwqZq<#Hvyk)OR8XNG2-ii^}WELuN}}YM+#eoxH9w zrC=ONhCv$Ul;IBE3oA+K)8c+I(c;NE>MEna%Py6rzY4fZz}^6_Aqg!;G&A6 zL6YSV=b`e(OBB%+6_=J)kUzh^gM6{XW|kJ0hwLjZDT@O=G_Bs|TSP=#sR@92&LO)cO`VUj(I&SD1s!DzzQjLs+E2pJRM_}*`6&z0m9;Q3C zY9Q&sTO*C9u`<&L_*XX+q4otSSn7-Obb@7Ev|*_v_HB}j&YDH!MyJ=uXLHWt7@NBk zmJ%CE%flAr?*4vf7~AG20YwJ>a)`@6gS zr?*WHcw9?YHU1yRJNw7XYl?=Fd|Q4aiiDzGM!7j*C3s@^Sp>n-uu;3&i&baK%l4bU z!-=`Cd7J?oJ@N9qgKeUD2rgc-Q`r6FVt>fvhFB3`u7jlEWNu5vNgZu+?Q=`uDUBUS zVBov$ds!mgg=e#i}y*pi0kY)2cDn}?iBAz|Rd^ zj=nn&ZqkU7Qp#(z}FC7XhpjFz36iLI-r;N$RgEa|1K zx_N11g1x&2yZwN4tky#e&+QIICt5-HPw+m=;hi4zhKwrja;{ZNE|Wn)tj_GG4E*TMh~mX5U~ z!oRaf+&KWd5)TfmMQBM^65i65gExFJB@V4yAQa1Z_b32Fj{C(3y8Z1XSbO`f5WPO2J-$5SVD2V5u0Vo6n5glq{M*hN_Cn(<8A^?kq z1~~ZJJSs4<^;R7A=DIr6+8?<+ilV;y0X3RhO5YCigKz4p800YzikM;N?NcLW7Bxmj zVFm*0cj1|Vn?rTXLdZ*FIfB*2#f23Gfh1^Nbh!xLbh0+l5m9J~DSCre8hS3K-$N@| z;zk98p6CNM&2XtFW3Cu-{?so%XE{*B} zm)OE(3Z!S$$w}PmA&#TT|97Jrw@)ut8{)e!v93b z$w!CTqDV(a_UieWm(K|Ga)n>z;9v)}M`6l8!s_Uzv!Fy_2BQ`oU!3%p&c?7Z8#DEx z{lZ_!N>YLnjYH)BWA*xervyh9UGOBDXpL$@aZW)JaRH2I1GZHGL54V zm7K~L{Z2=z2vl;x$(8f3HqfuEDH9=z@L;pANu^IHiv4RoPJuE!k_-NFkz&X{^mh65 zj~J3bDzNp)gc29k#uf62YS>P%!^+H>gNr4wr6s8DeQ%^b-*%L!(}3N_e0KUPNL&2~5SY&!V%?pjk3 z6OrHN{aH<}VJZrIcYt&%`|w0geL5Op@4}P2|2uN(exEZ_n-aSaOJH{?Y=ZF8)xjzK z>92pf-p?=KEer67K zH5C^^(sg(W7HWOd!f#hTq>u^*nQ0=69g(Vq8gkWf@&XfG3K3xRgb&Rv!aWID9Nc@z z{vL22kVj4+$%s={{d?QpISQ8kx={SLsjp3`3N?q0zAHBw-Lht3+;^HJUMkY{m!XeQ zFs{6*BS&b382>W`G@B!;KjOaBmE9biKZ2PB7yeavyO(kuYXLN=?RZ3WijCR8$57Nv@8KO)ZY0($xwYoO<_R5l{SMA%uK( z!a`Q441g1H*zk<|H~M?pa}yK-TI&ILjCUD^|A;Yz^?MrNR*7?8#XnFz_vt5 z@nN2LR~%pxlz5rQy}Wn9=%L#qWl74I!i|avn&b+N)`>K@lpd}J?jFtL;z7YZ3t0qM z1UDSy$0%fSFf?SZH$So_DbzNiH68qV7A0!HBsB-W%{WWSgdN0-r*KkN667jcz6;|c z3?iq@QQd_Dse5(>nb-!wML3l*Z!1huLMv)r%v=PIxR;>>Rh!G3yar8TAeu1veF3;) zBm7D<22-81f}2Jn4l#Z#<`1#@n5v`(Zm8>kj06E=H1kRpk4AJ!;$8dz3ce>Zg#P~^ za-LL-;F8S8yT(GtB~f`eHOauFKSVw-e4$%P_G=7f5oWo6VzhS?7)ymj)p`cmg)scz z!lxItI7OrwFQDGVVcYK2H65;KI}^u3ML;zqjT)OolYP{(;oBP1W=)|l z=0{-m_m8O*j`d*~6sd&nV5}C3PK-0Hv74FqH!`zf={qxoW66GtXr*XBOa<4Cpp-C| z1K-6(7KMPy{V)+&T#zCfq^cqsFj1u(SO^9V^(5O^)5%tP2g;AOp_gB~A8Ay3{FjoH zp-Ci(APFxJ4aDZgmo3*p&ks=wSf!^MXV_y&xT=>2v$R3+1fIc|LZiO>BAMYJg4Sum zPXVD9=lE%5Di#fVTF$9>7DQ`E7S zcRK6BWP}8qSKNZ(24`y!n^3@#{GNeh_aM8c6BeYx85kFDk(H%b>e1 z@pPtz3E}ZB?tdqehmJP@-~#r{pd@=P&rRqJuG5L%FZS3u&yKdy>M!VC`A)*8Zeuq3 zxMATY30N~6YN*Hy7fJ}BmveWjKmO$&udVr!zpIOB&2teE9@=b7X0Sq7$vrsCloW@4 zmGrzfQq(Bve8t(Mi3r zb{a^MxOD@60B}=)&lWL}LAWPOeQ)W2FxTmA3yx70q2{%Yv7d_?$d_;~mjN`JjsV@iOEX~Ba&U^P?# z{KH-wf&A->`Us#tk`=wNTvYt0m`W?Q$vU1a&k<)5Z@Op-t^>}7 zd=;)>oRGNZ5`}|`5z?p&4g;*`1xwr^irCF&a%n^*#w-Q5*IWl{bOoG#uzCHUGgqRr z6XP--Brf}M7tZ?H|9vkQQ`(JAlJ%DPjU35(Xea+nOQ}X8QA&)@O^V7-OCZ!E_iULz z+~sovav1^&lN3q;-eIuiLRnlD3NfA4v?SUfh5r2&@`jC#n_50IFB6{W%4-_Fr-YY{MbNc4+0x0`*v$Q~ zI--@V>U)@HcurtjU8j$QX|hMIBo!_xF_JW$e)VaO#s-DeR+WB&Nr7%pN5cmhmq5>> zmnT^cqh+dG_2AIj`y4_|fRnqillkBSy*z;3a_pIfI4^q2u-%>D_T;7aNk{s~$xQJd zs(2Ndwad?jZ;Hrw8M7E%j!xw&;9vC;XUZx)$VA$^FuFz{cX>8Um)9b z3BrdetUVt+;x5eC-^NmFY~Gadc8V{zuVK8NLpUrP4vgKfEidF3MoCTouJ%w})wT!t zN#6#)Ba4@zsJrg>>0DE|t)RXu0E7F-fy0yA!yuUEIQb^r2U55J;*fdLz zv#fy0@|xtKh%C{juAwz<$Ejv#(UHd}PS5ey>EuaO^+<)|f#|rdl|)rC?_&AHSVHC4 zGyW!_N*yarVx8Wa^M}e;g9J#NV~cb_ zP_P9Prti$AS0p_LEA94nLMSoVQyff825o#@9#3Oq17|HnF$SCIZOn4PFlnrphS>%c z1l|$=B1naWgHH< zbXJ9-8mb5XZFj1=n;JaBh|vR)5hvvimj-+jIFh+HJbUS}s}8JgtMue|zH41UHF?(H z8k?ODB4`yqdib8r`;tY(Tej^uy3e5+S-|l5q*m9Y!-M=IRmRwrJ>d&>*7WxuSRh+m z(LeVc!?7q~GCXhB-TEUuvd4#K$f4l7$m>5;rX&WicAp(O7TV`BiF+w^+V4n$_V>Nl z+8{bHU_6PpOYZu*L`7?EXr$2S1#3orO#QA^8m@{E=TawZI1b65j?@)HLUzi z6#ncYVf2IPpP;7_C%biK_mF(LBl9zG`QN+WRLf?D(Y1p?UtLdFpHN zPd-i1@IP?x99GI!Z90yivlx@JD%BkK3Ey?+gY~{MSwd`Yzo8BT0p>z9arQPQ>*1b@ zo=3AigzCC%R&0&W{9(_MM*A)^rvhKBa!NH5clz|tj(=Y36X7cN)^3Q^R7(sY;jFLi zX6Cb$n(?t^8aN2*hAvY=^Z*}*vD&(|39j`CV>@#^JE#gfR>4SKvk`$q5I15rhqg)( z*h}2O4EfgWG_)cd;=0nzsB!ZwebhYC<^NX$!jfosXg%2{o-X*-tApnfnXqqMbkO<+ zWifZ=%{Rpr8(%-OwA5AdKoeyA`A1bEKUp$9e!U|=hp1&q4g04dl;U{F>d?uT__0m< z*cbBB2^^0Jb`d#9vxA1WN}^kiuRG4Kw>|&1IDJ@@zkDG=TaVgW`I4(4HmUHCb!h$q zLDu9dKn?)m#ZMqMPMv+5fi+U{z+m=7i-^l^c1{4wxP%oeMidR0|CK=>7tj;XaI2Zi zt$U&&Bc~^4Bw?hXA(2j{mP0KrDlRN45f_WJBN1R>5v1jfw{(({Q;;4GAyz@j!C^v^ zR*(VZabVewB?LBn4vgqf)Z+@}c3NO<>e7 zsYVrM1$#+6v1j2xz1X%iRB$S7(d$|5VzBY(5aihPH64K#&#=&t==+CV>qE`Mqqw&& zZ|kSajqDt(I&i7N;(Ahgel<~DQAN%9#aXO2_=E(@vD_QgUXY&UGn|}QHnVfGb1jUI z=diPK{@kN`oOs`v2l6eS;%?UPXf;@*F=tIAko zy?-ciG8OWBr3CfeH0M1^t`(G^0zU&klgAn0XyNP#?FN~=_OxizOM?=?V{=$jqu+nO zKg77|Ei5e3>uc+2YiVh>b-TSSOPw}9bVZs(l-l9PM^bmT8_G%u8%?N!c%`8JVDn?sjmLl z6=aN>n4z7jt)o3A0zhapmB}BTHR@7ztnWx4<_mETXQh;s4E1im7M5{WL^TTzhB7e# z&v|^>YulqQYij$Y4jd{m^bNEJy0$d4Yv{)dd8!#mD~Rf^{*VO6*goD(%}N48^+8&m zNEAQT({JbH5`;s|PGuz}g;WZ;y3B|o@<0uz0x7lM-8Gma7ncyWDhZB?Bg3lLsUpI;Z?WUmEf8;m}-wEVC7`+Xdx9i=Q`6zaV^JySC>urkMq zPA`3G-LQ|8sw(L_`1o+~PWLetc82Vt?83VkyhttorUr0lBy8$w&M$9r2(ol@vu!Hr z25}&UUw4Wp2IA+Du#=B&Y@8oV;<U4E?$R?t!i$xEPbN($>)DWM#h| z&JIKXBkFeg>H@p#Zt7N^wbEHF-!W=IoVe248a*C;Hu`#gKAyPWAKT>*#WOo7^6~pN zr@yI>Bat5wLD#^>rCB{aF}1R~u4Yh9&2N}nS$=$Z!nnyw1;S4WC1nX^u1sp;_U_@& zBg>Jy!w5=_0a0u$?04{YZoQ~w?LA9-TbeG1tsk1`1%Eov<*Z|Q)E1W(V`C8_5VG+N zQ?m@(>TB!UjUf~=gxPWCe2e&3`jnBq0GDG6~IIEy5T zw(&EAd6iN^EJ5_>-|&>qeV`8$vZN$mxJNjRD6VB%s9dO26356EFxzQ)EA*_kN$J)q zS2xfR+MJI0%gWlmqo{8Ss*P-OA~+(6!1O5gmm2c&W)Z@VEApuo`+d9r~ zcRgCRLui%ff+aVM0mac>L026~vTtIA!?U?no-y;%lrk1(?tC!<$my()NPfMSinkD9 zOE(Uyn+hh=LI1S}G59$?CeMeK1=*_b#}!18uxe-yaieUh*$kETiM}qo8!E^H zI7DN{=;=!vxWqTL0SBf21>4%#*jO?M0%_N>c1}CFIVgC5kpZ#lpVKt+D)hw z?Gk8Un~%D49wngCc1$(1v-;k0T3%63M+fnnnL(cc-^1CxUh-1Jm=qMU`@ubbooD@0 zRn;aO?io~*mseMuRGBxk{u7H=Dhy-&9Reko{C6bjcVk4@aGOwZn809$b7EuITolV6 zFtRJ+Bq&%N>)9vS>5uZ7lbxA0%!;jOzpQ?&r@`$U8h(zoXYXe^|JxYxwx7CsUnK%e zs8q``9`UXD+0`2eO_*MsEKqFrq$I{urxejR5&cY~WIb?5Sp1iReSG!AmXPG13xw0| zZkAy)!^h*iPoci8i}!W0tnIvaoN3Ax5%-gj;8jqGrw9Hm!aO`OdQ4sE_^U_F8csGs zLmJd)gmZknkj3kJ+Xdtm!p5M7LF{Pm>N+@_qESz_v9;gLEo*Z`MTWe)qob?Yj!!qF zzeulKVl>R;4J^u;NTr;=56C0ZuPwGdqL3mD?f=aZ`<8^9Udi%wDM*BGv$T{ctqL^=Liy%N;b)A8vt_T&)?>mV2M7lL8J01U?MiN!hU$t}$aiyCTD z-Er`rh4=sd`l#{8q9&XTg580s6=H>pgnP|?j6uLPu($hG2xW)Jo`jnL9NT+ItVj$s z_;`F>6HG|L?hSJNz6VYU%P93;s;r`SUs(6~tH$sC<#-~vuBwQKith|vPGjSzQ7Jb3 z9eTk)+Ap9`*T=}6u&Cc-(9E@x4Tp}VZV)=5@Gv6Mw!XA$(xJjc7K|f=IF#c)XbiQE zNc%StJ9)5sD--t%W4|993p8}W6EH9G^%GoY*}Ix=;dBpsO{?rnnKV)VqOaW;*;q&*GfRs#dT_hu4 zk~SL~+x`T0Zbk0+7EZs=PVFwSdOGd;Mf}4zR%djw1YorSwWK7vU!(YC8kH)XIn_6Q8cOZXY>U3UV!nzd+vmO62h-b9u@Mq=dzv z23dqe1Ck7gt}(7nK%g|0LKZb64W|OmbX%sVt9T?rKdO{9sv>owEo zek_Gbx517viSxYbcmJ)X+}^5(CWjqY2Dv3ywxfFZYAws#cyISQ5q|yjTk1Dqdv~hL z#QS@87oM9JqRkCA`6Xb)XE&kCDvS0jSvFhOO)3{_}IK z@el3NXD@4$^9tdndWed)cHTAUw;c6yx_Fg%FRyk@14fG@v%RHI(jW(jOj1_CK2v?2 z)RBSTtDSHRW*-Nv8lF4VJAUt9^QIx3-@&WOnqQd=vppJ`@@N@*HzPB`bk7o&LfW*? z&aDr*40}Fr?EODJ!>*j2oE?z)p!Bv(`MsK&$sdd-rKDyZ?E!E}b4Q6|@gF5a z^Oa`T*Y6g8d_9Ijt}7xuJoHklS}$D5Yjpo<7vadgTGL^>;?n-`Y(;FtLUUm_&jRYa zwzf7ItXEv&5(0)Rpl$Y(GTyG|Oaq zS#_zC&k+!m)}pGuA;r7I39e2yE=%kol4uAaIW|w}mGR`Tk3((PZ*`Q`Io-0lMWMh~ zE936Q(q8lWweFd<4Q_!){=Zjr-6VzXfMBxT&r$AfN;+^m-cgY9LYIUiY<%C=Fr>!n zURHFZxa61VwS~NrU!pD+fLms67bCE#hr2o2RQjp_M&_l0N4w3qD7XCg<#*7RRR5zn z{(okA{s)16bz@eph}E-wQEszrBGOP4WRZ1HnU2z6xHpi8#0&zHYZRiP@ug0l?I2>L zbg=~2k49JGy?UMv>CC+CDgKterx zgNBhUvkb?}w-0mE2N8i9jbm5|{Rwb$Ll8WreW1UU+)t-hik&Erm(_ zsZM%TgY0e*jdWQAEKcOnQH<-^|FQv$xIShhoEg_sg-aG~$0H^ftX`tNETLqhWNKN? z7B0sbm;_fxW8asdcC(9&WnH|A8XHQwb|XCa=i)2U0rpM%V@d4FSyKa1keL@AkA=x; z1UTby;G|oXE9ShvPaaBW$Mpy8MaHeKtt+7}@xBeew$!vZ1flzK;U3Znq@u(Ipo#%_gQkS(ZaQ4T&W<3L$`p*nShCmu`+%5OLL^y(=`Ve>2>yd z`$y-W00zofw7un+`nh;Y+nDYO6H5=68p5@8om*#T!6DO_m_DWPD0m!lJ~9Hz3P+Dp zY9VM!Yjt_`uuExKeOp;wS$9cq!xAJ4ovW=5Sq^Pj$$*bI2VqJ&Khv}fj>)M>qtf$p=+=0U z<;jlA64}=aUYt}{%=Mb;>+7gtVY5=w5z0}<>@A^Zb1*PXDgKFxEGVU<+o1-zIIoN;T7~`$xtnPR8LV1 z-#1F#h=?}y6cmtCUqMWkgd&v7O%r8KlG@dtkk_JV$p?8sJ`hKG{d-z7w@d0XsagIT zNhTR<@1#_+D2Oup4(X!~-~Vg&Bd(9|e=4^z;sSf-3(KfoXp^LsjX1noPz|NzWsLIRN@fNLZLEuMe9z<#omFZFxxl-rcN4A6lu^P-gxWX!4JB5cs0& z*T%GdvtEb%G`PgiW6lIkP-}$Bzl^UYvePH#m_HTe7S%K-I zBdH_n(fgB8M!V58gmv9eQ1nnB#kIf3iHod&k5v<|MZ!=MgJCG6>SWp3+MAb`STP>j zr&966=dIhdcT`4}G1)I(?e39Zc~?&jJY{7bd2jq+Jw!H5385zxuT7 z#WH!vO*i+N!Wi1BFBv5%t*h!Dqk4P-wZ0`cMt&Qd$duzB&)r|$B_$+XS~6JC`MAEE z+T?piQc0X+o9}r)m0c>YZ%3mLiK~4VdD)&J)^XKspR_eMrL^DH_W?G?0?wlHr4x8nv;=v|NLes!0+yLaffjG;P-an)v{WsI;KTg(Nn{v z>-3@N?Vk*c?6pYFiBwyN&;JgAOQPU;bxA--=>K%T7Na5D_nDW+pQvSFu7G*y?RjZh zb&9}2JxgPX*gDe25vyS$3O?!}mOI!J~qWCZ|k-SaBYFrBoHec+!vI~X|a9<@vrCOPej!9!-8Gy1J zsj+9mB?0xS{ClP$)N5~lP=CTePtDTK?zF|_^XQ*Yb85Abn{164D2iGnlx=8ho1R-; z+=`4r4i+Z^k01|n&~9Y{EQX%q6>vGI635A|%<1UpSlL*KeZK8~NWbf`^11rE**&h_ zsyLf~J0TRo{j&BxTlny9NI-9BKu)QG|6^WUhZ`3e`OrBTX=_#4G9@5ZQ6d}lJOn`j zqcy}P^<^Yvo|sWOb@Nm#hhn^NE4Lj9 z!0x*=)DDCcYb*HwRBni{#>b;OJ3E7t(|5542S-E$#C#G-NeM#;#Yo_Eaz*E)d{pZi zPW0HE8j1VZhkIIF-O*@Ea74!Z4-TjH)uwVSu5J_KP_winc131YxA3=)eKO3;)8-=! zAcdma#)_|tNoYD2L#-x&T9SnSBj{EyXlO8;b~)!w3b@}h*5Id{VLUuYA!k^b%$n%vPGz~ZhL)NkJDT4-=9sedZ zN<`!%S@GW;dnOMlXQ`lF(%;utA8zKY*`-$(Am})ph6V@(M(_*eKtEkB8njc#VC@F0 zn?eYENWsa7?c{ale)F@0(RpxdesXiSYlvntpdN8&?$AO*CnSuFKZ)QA#mzXvtcw5H z)cM1oFoy~iwlLn(!k`gf`GNt_)J?A5<&i65^Q)_i zz(0aK6tGna82GXZ;X%TjTx{}H@nONY`J@A0yz8JhG0NXn>7nlG=kDNcF`QthN)k*_ zatOHoM)M9#-eg?I!?nDpga#(@Xy<5QXA5~o^L@G37OROPC~qv>xMoI-PDATXZ3i5 z-G%{QAT>RGX+@b`IorKfyJTpXU5vq%jkSPdKJ|$bX=WuXtk)IzTd+flRKBsj@7JX_ zw>Fcy!TCiK!lVAj<>XmgTG{7iwQh^OaY19{Ilj#MJMt^^tGGCP-5YU|Z1Yn&CN_aZ zL&45yxb0)C2Ajd1=l-#AP@g}qAg&bUdzbpwGrnh=5?ql4)tp?yT)uySK8aI-CoTB z{>baoc2{546hdhNEZHFZLvBd1awGpwH2c3%?*CTL%?NO+lcJB_W|m0{2K_T7eoC}f zmJU$`=!j{LRw^>&BoZ_|5Spw7>J`5{EZkKlWg>dE5h!`vRw4KP=D)Q z0661ytYNf$jJ!DQY2Jb;AY(5e2J~{dp`6T+$StwZqOeYQkft7Op*}9N6W^4t{;cu7 z;CXZw4*P#Oa1d|hDbL7Nl&P*rLM&Y!XBQU2Z-f$ouRgA>9;T`4B%Bw0U9jGn@vfy; zxOkQ2)$N|n2vw0$e;VQrM#d545zpJFK^K7JG~yBZhjzM66SEjDF3!3AI)9XDz&Q5n zp!s^=ht^F6$Y~T(mlRQkg+PRehwfNbY?QzvTI-JF&dr{MKe@m+zE|)1{mnc(* zgEWR~d)De>5!RA=2)ScJN4E@71B;-i%p_V^w5qPE9-Ew$p!+4K=ID1h@Rktv2cL5Z zH}tJKPyNoUplp^>`fOUWg2_Nhs^HC=el$wJha8gvu2DtifEJ+h%hd`rP&3d#i4z_& zGECz7r3&*2uWyjxuJwI8H>@~^D28{0-hut^+*Pixpb`6=9mJe=1n@>OUVwP3# z`!VaB{NwCq{^g*) zjg`;KVoEDi(qa;f3T9;R0rr?SrFBcu`i8j#aJU8UIgw~;WO=yekIkfM(fe-L3H({vaVD-0LX)meWuj zFpC&1He5j$hhsNK-h*^W%K(K-6hLA<{7YF0Wo2XEtUfK*vW5m$7y5WrfL3LgMMFNuZ{@J*;u}-=P$x6jp87r_V!pXe- z#VCsyL<#*&1=^IK2Ow9>7^N#Ud<8W9;8633h>@ywg-ELm1nUkrY;Hn}+J~cwE|lZ= z8ysGRVq-iU4x!a`W200f-dQ12WOVQ|O)Cb$JuBU;9_p1yOqyLs96k^G-be%#{E-8s z#Kp&c*_60xKS*ro#K3K&|Eb*WHr;mZ`!%82F0J9Vv@F>Znt*x4 zVQa4OH!ID=J$IMvP-}qCW7UIGu0k7tV@g#s$2CGgaRN9&nlCSaz*(RAK4=G+t0sk3~ZCI)9cSjWCvl zZ)V4zkB&qbXPVF)8(if+Hft&-KjyH4oU-1o6q7XppK_7xjiiK02^SCBePByKr&7eq z;dMnj)GU+w7L`s+t3sAy*+|=__d9-S2@C(*kXcqrSqJ=TP>FT*Iz7|B>8MP%QXOkpe`W+=;3q-2e(qrsSAY?bgJjESkS zMHG*WEh@5P$x;#`jA1PA-T(J|`G0voz3y3_A?;Q2-a)7AKaP9c!a~(MXQ|x>rEx!0`E~cF?!^w!Vt){H0zFC;@QQz~4fx#3Z z@6;&Lp~%1qg#v8^^4bTq?@2v(xEOuv^l8n+lQ`j5M4G6*v)WCyi_;uCO=G9tVEG~3 zJ7Fq-xb!%(YQwFko{^GDyZ!JfbeSV{SNiz&Z!K;Fjk(^l3gJBCAvj+2L7Nm3>j_Q3ZdPdU1 z9fFCr-#YrxEuPx515?M2^^a^$*?o-bQJopC?&j$!Uv^L6QDMDSYW$V@nQN?|#_YPK}JL~pMB%vx%`WQoQiuh^}hIO@* zNwsV*YiAInx07!7o(*h@4tcs|yq|fW#TRAK9tyAh^zpvK#gNU49r{uA=TVI1(eF(z ztKSn`_`5!3UX0DoiR}xXa3c&q{Y;+b>(;cCwkWCPhfH8!Y#_cPv}xLQ{dTA)?d+Vd z|JG{I3a@XNd>ygBk+Q8H+}}F+xOD*2t89`WusX@cm>L__7@P(UgascaeQ(j=El=QA1?uGL#oe3=5A{oBH?8S zjJMbOZAE&oOL8rDd;)_%Qe}WMc5i;Y^P^&Yoqzp}i4Si#8lHOr`+)4~KUaT9#q5rr z-R<-%bjvI17?QlFFtkKNshZJ6#}&K${mQ3bqwcZ%esuLqZD%B;2{efxADOEHxinV|eD zLXgzrZn)B+8ofCd`p5DVwpX*nw?rPA9(3=FnW^L^x6JFB0{Pta%W~7Ajk@D(g(aLT zZ<#tX5l3RHELgd)>Qd$GJm@8Ati&I4Ex?>9?#fN)lJA|dK!aftsfdJ=Ss1*BER{dj zlw=edZ+Z=!!F1xTp}?wmE1z}S`Zf$^Tyh#oeYMO64|^cI%&8|CE_ey?B-1P2V(rY> z(VE$tyu0y_)Rh^9lxg-q0lidGi_^|0-(_8}bbe{_xJJdRA5HVDoqeFBt#Zc>9*Btm zzq+%st8Gq|pI%(8DKw=L8YK=%S-FJ?w>tWWU?Dj4t+lN#jSeYB$}Oost0--KHWL)E zB-bu$Uc>8HsYCI6GinkfWo%Wy--wkF#f1~MpL@x$l*BYrWnF1$gJ1fH`&X|v-ucC- zDL$Aoyze#tWC4TW?%f*{3w0Ap&vEXF-jB@thAyit21GA3&(c{qcXnD+lHQZi5wYVFpGCgjnH*v( zufE*yYjhylBg%rcw-FIEZ92cCV>#0AuH*lt2c1vOeeQXpX(n+ z-)^(_hg=MqSGWEW{wn8De<3*P8!h~MhhD>pFU|3Ux)g!Ou%F+=2sDU-kW`M51xy*M zynYj0L3Pm9*11b-7#)#Nfp58N=x8{g<1&bF6S?GJD?2!P-97 zztr2)k-F*gwJS$X-qp$@?SAjAj515_%DkNDd^+zBoNhci$?K_^p#AFZX}T1J=h|nf zR&!Zbqvw&Ye!&6v8i3D#y#2~^wz?kn%R;poD8?|3gL>sb#4 zS_=JYp)oLJn34OGYYf0-Lda;jx zu6m#0bE^Aw2|PZrle5@#<}#R`cDMLZuw2sUooM4P1;Q7a{$&RsX5DD6o6QAiJItHj zX_%{vKXtsK+?hyD4HWMg+Hg7JD%6%N9Hj2mCWOb}&t?PD{iY&KITN{=DaqW`S9o6- zMFp=Roy^WpDK$^HKjh>4@BwKeRt#?~FKJxcU68}+i^3HZOE~{}u<885F(s3Ft=I^- zQX@6ST)5OjwZj*OmRbJAx0(A=mRMJU(BGGA)?E7JM`Tm@4Z2ukPWzYt06%kb7IBLQ-Fc-gw&h4CKp?3b?w`B%+w%d&ca`!81y|IG(JVaNO6S?6}1y_}1_; znK)5@FthMeVIvn}Z)I#{n<%HEuoLtqf40PUnTdu4noRB#R9Vm0msA5M4*%9Gg{d1> z4HGc7^ThJJlZZRt(DlZ_wcics( zRs`auvqlvZk!cESaQD6?3lf2JB}p9f@P4Huo%rzm3aS`y-IA*^XKMg;oy__QfuvH* zPwM-?0#|m%N#DvxzI73P3)?!nNi7+*`KUE1bKn62R~0-YU8}77(iHArI59F@FCYUh_9Et>yq?#V2*xK4>XN$Awd!z4xdNx~~kVC`aaI!=(g$`)PGVVuKS^R*M#MAtrCksNLP6EV9DpooMNNpNELdIXfS{@ z*a_@gP4%!ly6HQCw>jgg25(Azm8eeEt&$(RfH7nK_Hi42kita}JLIydz@hIfR2Bh= zEZ0huBq#h|nXFrr`CnMG6eY2hh&saQ?Y3Euct3{2yKdP&=(p+#2dmP*g4)#G)0j)_d;ef7#!Sx;$5TIbYII zDqYysVu)3GtC*MXM?f%JQSv>uBqW=M80;sl*hVrcxEo!An0|fd1)jcpJfCdw0Z9}w zqDp6v(`R}5&9@A{Kz#=GNw=ki3q0ZMI7BE$R!Uln#|9b#uS0RaeH0R` zwd7L@jVUugR%V)mleZskXb->3IK&0Tb2yd{kjj(Bz<9D)**};hu7X-YJhai>(>e5T z#BQw;TX*D=k2!mRu803%Nwr~9pUZ4Nf&&)l>c@qu6Ku(+ja$+=;xFrn> z1e!wDwTz*m@fP(n>E9RLgxYG2;K}~)=lP%{OJ{;4pqtt?VI$BG=CP8@w+Zax<-w1G zRcblNUXZlREygHcAt-%(#CyMSlNW3$1UEUzk48jTq6ySAO>bc1#Mn*B6Lm>geq)0X z`mUO{nLz(r?wVY+gxy&3`jiq@jC6N#zgc79C&kD~K${&UT}a~{ z0J)gBjO=bCnI%b5?vX1ii<{Ps9j%6%s?x**WrRITOZtIzdQRk!>MCLJ9iB)$@w* z#ih>TGREj36+Y)mR7G_>iM&v01>Q6uNwJ5 z8(4PYki3keh!LCw_SFc(Om~9Q++xpD6PLWVGx1`C;YFqzH=Z2n0Z4*bBw&^WNVs|S zEX*2|%1_`kCB4b~4~82^LbLhU_wv>>;T?`y00=*}#T!Up+mt8Yxzw9a860>{Aw3tA z*9DGUZoYZml4P{I-&uo+b|R>ZNnVr}1;$5V5hkMYy|OWCS(sE~H2Cjd3RHeaV7ARx zQ<5AnfVG1Tdzp_Q9y2!nPbLqzxX~I9LQU6tf2*G7l4(xE;Jm?PA21ZfU5)DEA-y^M zf)uj4U3Zn^F>9ms1kRn?8{B>$!BNZq^cpx013K0VLU3G10Z$D(G(o)}DH0osd$5+j zT{A8j10u0${l5-vpRkt^VFR(V@%v)h+gTE6T$0UY631x&C(i95=9by+y@Xj22&$q( Xrwn6~nX15Lhaf96dsB+B_k;fd<|vu> literal 13249 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 delta 537 zcmV+!0_Oel1hNE>B!BHtOjJcoPEw?)uv1l8k(HZjZE|B~Yi4O~XKHU^Wok`NQ*m{A zWoT_^YjA6Bb6j3yl9!!MP*hl3Uv+qXZgF;Ra(G~3XI^1uUt(ulU1Du)dbU0`HvZ*^f~Xn1^qYj1Q^R$5wJVQp}Ad3}RyZ**E* zVPIoub9a1XXKQ+Xgk4}|Twh~iWNBAgUVDFqQdC%Ye1dRucy@VzO;1#Dbb4uQa-^{+ zivR!t07*naRDXEdrPS9_!cY`OVGgDs1Qdg!5k+Z&3L;jDf(_~K|2UqrlTDZj&d-o_ z|J|<0&ShllLZaVqM|Kl*CsO zv&C3*?tGkAm@USy9==&(witH;{z8zB{j=5N_wlGWs7me#V3TTCH<$* z7UQDC=kfcpkJnnUw+4>`m@US=mnD94F`1rjS6gpP^y00000NkvXXu0mjfbhGZv diff --git a/zsnes/docs/Windows/images/game.png b/zsnes/docs/Windows/images/game.png index e5f90b62559cba057b4da82b5aceb7b49daaf3fc..6531a21329c98088a2bd20ed19585f6e5f122bb7 100644 GIT binary patch literal 16494 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 diff --git a/zsnes/docs/Windows/images/get.png b/zsnes/docs/Windows/images/get.png index b9d7e111f4fa6ce133008df9155b57ee4123a951..c484b33864412af09df9e29de734d6b7de1eb95f 100644 GIT binary patch delta 1857 zcmV-H2fp}$63`BiB!35VNliru)C?RH7&t3(+SC95010qNS#tmY9>M?s9>M``&~-il z000DMK}|sb0I`n?{9y$E00DqdOjJe4&)8;}nWMnav(L}g-rm*b=Fi{Xv$3+mcx2g- zd*F$2;Ff6Po^Oe8Yhq`IUvHjzoSd4XuXUlL_xJbj@9)ga%zu|lN4O3I!yg6TRSe}* z0q0r>?`RS5Y#H@-9&aBL5(_RT2O|I$SO5Ss934jH=H{fMpr9ZI)I}BHbQ^~i761xG zkF~Yh(aYjw54bc4)jkc(GXOprA->hs-rnBB$H(DU9Z5<`;A#}!OAPp{WX^U>jg5`1 zQa5KtNW@(s|9^uq`insLzkho`GXOb!06m@~QG=>`Prh?K0VZwa@9*#S_P3IN06vKT zQIY^rqX02@#ogVz!oqEJby;3sW@cvp|Nk>HGtOT>*keTU*U#_2vetNB&OR3N%)-=F zGv}Fv+P$;pqmh}JnLt57=*GLcri}nzr1j+90Bo-Ddw(m}yrtrnfdGKJc6xfunPxb3 zj)`SW0GZ4gcdV>MCENE1Zvmw9jrq120-RX$a_pAT_ z00DGTPE!Ct=GbNc00l-#L_t(|+P#+xSK3GzK!cC~uBBE$AR)HWqC{$BHYixAidCyg zp`=7&Dt{1pR76FsuEjq0ukSZW(CyalX?r-m=Omd|=H|=HWPl(D!v32e4D5D_93&1n zce|~@U;lsrz!H#3|4$>x_ zrjMl2$ktX7eED~ypW0WJuG6`I`0V5$ZROeJiGPeI9s%E0abxOe6~Ez}D>+Y@i$H$VH!X9M6xtMn)Q^x!lCtcDMKb3iILW z^0Hfy32LB2H@le*h1iu`F85@GW!bY!px3+V^>CtFAPI4>x~GZ60?RTC69!x8-Q^AE z=YQuNFYzOt95fF8TlD(4aoeE#|4Ps_&oh{Cn4Y=#mkf{~I)nLAD^;5J-r)1WNy7|# zb=2^F%`rk~*ZVE?Wj@5GO&!B524>DKF1qJ^x+Fn~65vz~{8FD2bso+LqZvBsD|EEC zTb8~-JcWtErD@vKh3106x#^bW0tCX2b$5 zLN)Og>Kqs1xW0{H;9=R^TQj_FyU-pYhDd03qNd8$9a%*=A;oMu)j{ zFpg&4AF7g@4(JT&Y;-bdAV>qK&ZG`#P8^&8FJQW>cz@R6t2W zuezr7b$cY4L7Ll*&;eAufs$eD-6b7WIE&EyD4phMnzM8)dw6)bROny|MFXs(C@Q5k zN&CE_HnZjoZBn3va@;FPQlNulkAjoI8(e`)$m`+*XiYgcSqP4^LOVQ!uYb#PQ`gBC zi}2OPI$4%WszS=Lf}>0Mfhdj+%Ar>{%bRQO>v#85@r zfhprgRfjC>R}&1+!|*XE5DW&@ViC4X*WlDyLqBy;>6MRv5M|+Jc zU2t(}yO8o%s_;HVvjQ^uUb()b?TUU)Yf!?A*doI-V5316M9>+2g!&o^D3wXJwO{vBQNm+)t2531MI;@utqQiTjfe z9zKkxK==5&xBGsQ=87@nE5wVTh)%;A@c=Kg$Wa2Is8pYHbizNzUL7qWCXuIZU+ z;QphyVS6-YBM93l=^YS0|9Bt>Q}cR52;YA&Ir$(Gxv@cbwmPBzUkpF~Z-jEXTrT(U vA0{Kf9gpWO;PH&!8?)Jrzd*L%1gQQ2K~d4=YDN3900000NkvXXu0mjfyL6jX literal 2305 zcmeHJ`9BnT8~s|7(6wfZEUA#26q7Av%QB5=h>1}nV-(?9vt&!IT^lBo3Rwpk(J%%X zOWm1w5Mwg7k!6V6WJ$r@%D9k+)2!}h^fO>}N(%vB)VC`xRKx5v4-RmO%b^1BNT>*&I0U+rf06Tk9 z(jownrvUhJ4FJ<301k!X+uY0n5CSk4gdG4zy_1u`qJ(KFNsFBIzYje{VG+#Pd6qx0`M9uK%Z%xi9* zEeQ#*cU+Cr<8=~&f+wHPpT8_XHv*$mQ#m;~bUK}fl|GHS3xetqc}?HvrmU>3JHjnG zn9R2ilNQPz#90|}3b51e5={dGK-`XWMhu*bk9=7sSu!k@|KXFLZCTggR_zT82E$xf z0H|`#O}VJp*qtn^f$8Z&XNPrqH^cWlkH@QtyR_IxesM%}VPS!b6#E{f#;{c2WP}~t zr&V6|V#H29!`~H$!?A~GPfHu~cGFpMGC9Use& z18!x6$tAH;=C>dvF76&AGM7zhB6oLJFeWcLImsL_FfuaQE9n38KTKfTE^iwEk?@PQ z)(A&uN@3O&wxe91>;r|MG^Vgh4fB+_Q}1Jg7ifY&hNGVJ6ZFZ=ty0Ut8e&uy`{Oq2 zN3rnc24!3g+Ic}ITCKHn;*JcoV16z{2BuoJgfx-AXLPrv?x4EmuH;OG_9KZxgm+hz z>#S@lad+2l8bSH`nqg0^H1_V z9M0H4*}_SuwS3g|Y5U!l_=)GrLJbX#O~#OTdDqV5kK`fjLWeBL=1SQ30&)BJ*-gPO z>gF-}BMB15LQe;{4FW9Y13gPaS2u4(WwqRpxj$$Fr#m)^l`1B2(Y*M(CBtOXh-KL^ z+tSwOw0Sk2N%4PbqhY2NkDx|WE(=mkCS8^4zta?`XfOPxC&4~&dGqh_AqxVTKN=Ii zOS5ly`*~V<^eM0kI z_FcC=A}auGLuW&%kQEDxsp(p>AFVR1Z7u~r0xudXSXk15Lyp=uhw?`~@27j`{`LG& zBmPZt1{xzIpi)>w@Hke84lWqrUM6W%MNUY5AU2`nj$4JF$$p$4W65W`(`g1vM$!-Y z?OhC?VodiLvoq8#nsNBR%C~r>L`*?3b1d&*)dw=eC-z4Ln;QCEY4d@`2ZKaB0~i(TJ6(wUIc;2Kl^>GMEyUWMcsTrSP4XiYN`CT zx}5z?Lv8MsnG$C=GEtNicpLdn6dGt}X5>u&&Y6Mna?xtI%4yb-t z>)>uia&|S-`O+(*F6 za_C{PVBNhHCFD@@g>&mQfu^O@$ZD;|jmPe3<&`ym#bY%g!>Gul>(O`6v!&nd zg~-O#Rr5p}ksNMv?VyLEE^!ei)!=xC6Y8_JYZ%6Tnd1H~^pySg;1;AOxw#2*B)>V; zES;f~MEhjUKSts{uJ?kZ!R_31p`Uzb<>ob37c)O2Iz6=7bXF6=kJ{ zLZMVvkG#j9_p4{7iJga&(STraIf6+a`8cL&;w|nX?c|=?%+&>*gRxtE8 za6Iu|Z~SPwMy8@=>V`+HI~&V!44GB-gYE0@JTJWf#SS>)V6BNe&7oxqm1-vCL1ci`~~R>ctwn$tp_r zu_vy-ccQ-uIXpbC+u}@Ud3SB7#yWg{=0-}df|#nHy=tE$C4Dvai`n;*xBBJ^KCiEe zr^g-)n=n+pCgq^LhOMcr3<#L}&;#Qme087fNHKmoi>E^mYbu9mKG|esBFXdSRI%qNywqpo)~ya-q58LBgcFBMoKziWL7nUf%3$O(~#@xj%f!>^=TVS6tK02l3` Kw)HmGQvL-1)~~t% diff --git a/zsnes/docs/Windows/images/gui.png b/zsnes/docs/Windows/images/gui.png index e1c8410ab4fa577fb8e85211b24db951691553a4..35d545121daf150581197bf4e49bd076312697c4 100644 GIT binary patch literal 8094 zcmc&(RZyHkkY3yt3BEvZ_bd|J-N^!h;7)MDB7qPfgoWTN8eD>VAi*sJ2oT&Mz~b)i zw@Kae)zwwq-NRJ>)&I1MEn0stCzsyhXb@~#I#SqW`&RfKA< z_U|UM=tI!ictxB2h_X?uJU@HDqqxkrTWG}V=hh-Hoyub^1r%$Ot1tUY*He6ofZg(-}Lck6@+xV z#l!-KhcyC)q^hZNjZ5Y)Iyu>RFj5xD9=aVfv{but@e<#RLy&t`FbL-cJ)?2fReYf_ zaUpq#KCuVe)|+&`U3!b(BD=SFIhGHpp_GRjaj4E;-c{733lt-2UtfTL?93r?PGj+lhiA@`rI_^)l7jv605?)*>?p-#ngJ&ig#r$xe0*Kc5bo6R!w< z9v+U6QMh!PclCpE8k~mnz9Mc3cw9nVmL2;TXd#gEPpjx>%uJkuB796VFBh6sY)Xwa;09^JR%r0x)1gwj{hJyn92 zf#rQ-si~BgceP7K^G4z`^Um_%y{xfLVod>N>n~MBjfD{$po_o4@3{Kc;Y1{&!op4b z0e5S6f5!T{%QlCT)@&guP0iv(Y;0OX8rc$!sVPaaLKk)4VxCfqc{^jb&(FtXn3;W0 zb#C~=FYf7_Lsz*Gqn(+N9@@9=X>Yvi^cij$n69NN@2+J8enGrKnphaCJ<4}}c{!+| znU#?l{P=sqru2z=bIr2#eL(Akc}+eV3%7~-sb?=H7Q)d?YrDU(7GIyNfw@2o{O+Aq zM#RD0HblKvAn~n|8nFiXD6cWy4}F6-D|UTH_CT!pW@95T=YSe(Pw$rp3az?tf>qDS zDZHP)&Rz1p-uqk%&r7Y2^HMwcXfERE_x{a?CN?%E{6wvOc6>T&6E_X@Tw*CM?Oz48 z_D!#hQ<0i~($bF(OwvXBwq9T@A96&(golzs^yamhmYm+liN~$*JWPY3j4UcCR-UNu zOvS;+HM*Q)rI;&>%%Mi0D5`LRgqxoA!tRobZ*RQ3X>zEU7fCkaS=jP49Oy0EPC_7tIu*3htteXOZ zVUpo!t4A%#f%mjI{<LcqH;J zMp7QEbbEU;1|gG7rq~EcpXv4F>T|zJBS^kQl?NBH_3V~%?p1ILtHQcmnv$9j>YuvIiB8+>0F#0+#F>@^LzreM`1Q1yrcP$<@cR&QT=enL@f3s(hUfi|LzT^lB_No zC6hvMc^>9h8=<)Pv^raS^xIpV{n^jkdKgpF`dvH_FwM&j1yH-7d5uV_Z09TSQOFiI z^o@clsZ9Z-%QQ6`Z_`Uie=z!70|9fNaP@M+S{My!9B1Z*bQM| ziI{}M#~9QWNrbeJXy<$vexmctMp_twj*vwVgV021AYJ@OvWvI-u&WK9;a*iiqq(wq zx{G6K8mYACGp(v%l2gx$!D!hBDR&lxrxDf#m^pu6MP1v6B5(Zp$oTa5@{CdbW!{|$ zXVWTEZ<-@#f)!&`rgW@J`>$D?R%=&h70gXkNiniTJeUna^ts4L>{ePj73PhChiMIKPUHu8op6v98lCH!1aH^?ifdu(iS^qCFy=h{IR=ZdG-1QKnv z;lpG{&JrN%gpIkW~y}*=VB%=G$ z^sV6`zqf4kWYR9Y(_aaRF#P-3DWJ2nb0^DgQlyPX)Vq!cOXeYOO%*xxpz9MS{r#c4 zFRRKI8fv@)_fOekQz$l`1;)h2Ahzp$9%<{sLPM{vZ##Z2KoXNaw=o(UEi`$%>`(Ee z{#1mycqDf|;vqxjtu@RB2=x-2oC<=cq(|nBj*eT?Ts+GV;#)b~qJr9wH-gB_tHb zkO{QiZylU;bd#pmkGtCZ<^rhkW#8vO;@uU1HFyQU#@2gY@Wy8v$XfcnuzBQdWG!$J zBBn1?Zy!a~VOCgHLB=qwt!eNwQGRP#nu}{;X(^>NSpO|P0#sI=_nq2-kdRR5nb4P4 zrRtHEa#g`s#qJdLZ2mElbBc@%kzU~pp!=u$Glv~(2j{zn3x85rBt$tnJ4anjAyhjC zd?s;ILHP5dX@h@Kk1EIWAs*LU^5AN$&$QHvP|1B|f3dmvf^Wvpot#R`T`G#HtKZ0y zvTpPcd@Vu^z1!2!X~I(TkqXYyi8dslk7&iZcvUk<>J#yCs8}X$HV(Lm#;*%2?bcM| zOSCL9eTaztnm7!8v1-*JD*0?EX}E@eDzMK8^D=PT;%!y|Gt)D%ygdFuKj_-V`DEng za5N!d62(R+7FN?q}`{5t|^U*1oCll`abM&kWYH(F0-3+ z!|(4}x~(3!u=~bVetaGupusYx;kCdi8WgMZzH~JKded5^qTk$-u5GT!bo359O%N6l zA!2<;+dCLKoCrMdM8>{)agDyM-Oha4#1>n4u;gaRdV(S0Y9p4K5@yr)#W$ zn$*kp0m{5^)|1yHGqL@`?AL_5RR%<&)&S+taE}easr|WESkq-ZYQ>%ATbT1gx8^W5ov{`WzR;>-aJJI(o;fTBsCOQ$=cwS!KuTr8O z7O!VP*7By?cFIQJhFD~A^HDn$9^5#w5E@6Zu}QV#$n!f2(OykY0mo7sjUS`RVQ*ye zkr;y6px-d~BVn0v@-C#fDG!K+n(hej3dhQ+$1=IT@uk{%jWm7{wL0@_In;aRTv(>42^xgp{c1{(z zp&prMOYKs~s4TtN|Cp2V9!JJvYoM;ky)nc5^fI}x?I+QaN~q05QpyVAE4%pV)i3@S zK3n4r{Jv@nMZ|lHY2Mz)FCpviUw9V@LR7`TE*cGu>J17`csl!%H{{p#~ zJQGsuKVuV=h~3bI*G95timD7S2_cXiDa_+*ZOz2E?dNoA`Gq33-j_q!-5WbU|Ii4V z`iZ@w#L?5&^WBP+zB6{vk$LU099nC?%&D@+7mwbnsLag5g5X4g1?d9F7*Qpd8O>jm zl=qIFBS+8F3{?$8S>Ldg+liuDEy5w(#4TN4&K_vxT({~#&Axoa!^DFDM^OvC7UhXP z&sp1DH-i|Vd{4u=v}$zi6ILWOtjO7`G3}K#wbWuIC2^~L;UN(IbPFR0y!I!-)GkH9QBvG5O=};yd}(@#V3E-xmyGfLc$_ zjR9EAT+;uQIV2RFaoK{A;0T}K36uXPoSI{gXJe8>6MFiJq8h({N4szj9!tnTYjmGP z2zCD&=@?tV!GkcB{NhB~^C>cdb($*SpLu%`TwHbr-i``$|4LY~MzoiI;pa3#RXcvB zyCNekTF}ri!ycN;JVH3z#av%sV?x*5AK_`Q)kWs5?~G^k+bH3Ll{mn=ajQRd{Efpspr=}YXZ6VDyPwtPT@nD7gxENwi$)WMJs2C z44}btFTB&!BXfPDnE23awpd!LqA;*wRq%zdLVPlJ1&Vt@Rv=r?Dt9~ob1pq%nkTdo zb6qn9DulNyI>9sH1wXrWbTu?%tf#lSW>Q7WFiC8S)3WqcFw@BhvW^mxiEeS3dzHd4 z6jmNAvfb6dxZv?-V`IPA?~TnzG3Q>Z5)DmX!g)cgVL$aKe63G12$CIO9(Ql=$JDg# z#ivyGyWnOIJ!_l`YMI`zDrF2_fyv{{9}dPheHZT^@aim3Ky1d>BJO)G&QmELHdDym zOd8j?p;GmAAB!$6P06W5X>Mm`irXL7om73<3FxO?7eAKqWl6k$=-wP|_j_0}e+2pK z7CdM5*-8{d-`s}h`m%NnLqG+}v9x*JgM%0yv1QYhcL&G$o7sVwkA@_cbuu_%JtEg# zFi4ZEc)(6K-6KHlJxW{Z<7P^7H947>=k~+#d*!CFHlNGm{4hhzRp<>L-^0~K;o?0yPo*pGFP!^m9Hh@JO7^>H-1s%o_9xH!IuG@kp<{m>+OJS{Cm>YA z#lNYNZtYOO$0ICYmyFkygFZeKQN-G|W~Ze)m6nBmx>HmI=c%iNd!|6-;4gb5HOYnOubM+9f~@$2g}}f^+DcT1o|op5VUIhdCo?k+90lL}v!&iE=-$Liw>H%J zCGmnBkj2e6pK8Gjr##aT>dTDr-DU(9!@t2N=guC8}@ebw3d%0)lk{)~&dDD1%-7#O2McrK&7Z@amx z&8j4Ll!+KCr1HJkCQ1FR9R>04vHyzO;&T{Nhq^B0e!3Aoyhes?)Jdj?DAb4Dzy6yh zj~V5`M_Yd9{*Yqk=``h(sOGXV5#pX&l-noejqVqppnZ#}?CP*dG%>>;x=0)-!aUNO zu;~zXx(49$x%L4SA)8IctqHy6$6&d&gPrANSZ_{bS;s(^=H6~7lN0rKj$zAy1i~JN zPLbuXusAnME17j{pB`mcFjOUok5|-l9|M&ZPK{XQAi(VqfNVEMMMBl6S}<(;IzVjf zjh{Yd<*eCrJ*-d%*% zQ&ai@Zw!`fxyMUNJ%-sGWh`T4KO!|_^M4a3JagM;usZ*RG4}wM*9R6ubZQuA#i?Gzx%y#+;qr5QU@^0}i$K5ETd=z>Xbdiy{s1~O1k zX>q748NBM>+WNKf`&e5cWDK-arqvBV zd(_Zs6U>o1nGhFq4 z_;4am{Yu;s#ve4!ZO_KRLI`5v6J^m5PIbQLhKJ#h+%<;U7!Hn=l#06QqS2#0zCSsj z6sne0Wln_50qnqfA-ZUbjEV!8M{Q`QM3wv`UvN_F0r_Yo7}q?zxUEc|ja6Xh0A#h3 zjtA_UDMlGJ5JI$g;Ri`;jI`O}BeW8+@=>2NcliM|5_3zX%eg@!g5`;=gWazITJF{B zy~J&WrKnYvHR0~-9$Rn*bH5{gcC{Mh#ks~1tGjyYD-fG*hAHvv3%rxI$hc%yyCdS{ z;UbvymlS1o0pzA)m7hJA_50!DJ|NwN8jG*TJ+*mK0fz3fbe)c&k0xy!>rxrq=kvE+ z9Va@AwVHXh_1@Wwc=S_13v!V$pp-cYIDqo^I-6z7fw>JW!C6^}xjoA53++D7cM)dE zG07#lyjnTOR@sLRc(Yb2Fw`Y((C?EOO*_3ph1wI%~o+KqU zsRW}O_rDulZ?l$IY07z=X(TASj^jOkUr4rl7=BiDLKN98q&ww!-Db7pRSOCws=*Y| zB%A1{2wj#=h1o%>EL|;L1CMZh{pO?#QzgVM8MQw(+|oTNh7MF$O10LG+Ro3dBf!%s zT_#(96D&)?+sdVrcvOWm!f~H3+l!QN>U#f$jUhU-ebRhq^7D`k;p& zC@Ue2a1zjCf{D_(#20RZWE1rvpEYJc{|G%? zRz{{;;2$}P)_LH~r!n_zrB(Bget6d{X^ixyVCdf`kEcYD`;Xd&pqXz06zJ&afztn0 z$S{Wl1zFhtBSA|L zhwMx-Rutr;5#>bt`HMZ0-w1h75I86d46p?d+5-9kwEciY6p2I>b~ImhG#$(%9n2gc zA{QtF>i9pK_*3g?0#ZW&aA(Pn;{wM{=l@XlfA82oD;G`$$+|sgmNLU}K1Jvj&y5+( znW-A9mDKA#JIPUSK{1{H)PKoQ(p=B2BgOxOHrm}lNm1q2(RW3BCV52=rNv8-+U`Js zHa^(M)|m1xVc5NJX|}DaZ#2XPKo0_(A%_YkKoU9NC^Cd_lpq_x$p8AUjMoGP`|n1z zma3z1#Kl~(l=nNWrChzOLTZ3{_aD27uaRzzBX& z0_4P9h8(}qT`n)oCx+(5(#P01pom6K=2yX?fj6&`fgrrSj02tjWW&6Sv&<9i3!OJ? zq%Qooe3|StFDpv;x+qjIX;@bm%Uh`Kce`0$+Z8y5dqBm_49sDCe|J-=IPq%M)2NRq ziLS>`fAy9F_CC#CiVeK8dL#u$u}_;$F&~m}%%&Jjx*YdBq2~xas(*K8`fkN;sp*F7 z2n8h!q+kN?7AM#==$>t?bjUes3UUsN`Jg@;V?rgLp+W76(oau-`pil~Xm=WaO zDd)OBI4N4QQWa)buAmt}l%)tp#59*o@O@Pc9@JhVL1z; z2e})GgZzQ$bY*;9cq*7C7knUthrMyrM)%gtD9?qYhpf^Yk%wxh-eMdDT}q{CMogjn zq?{bM>}8(t95y4l+J{+R7=2UFaki|8dxY`A3D<#tMFP;QoVzmiGJgH2D6KbhKTu@q z^kLL=bwL%=BjLdH&+MN=s*rIn&^kr1!|%g0Yx5h?hYe=5I3T?|7|;hmmb3rwpAT~-){Fod%AjCV5Wmi&Tuldj z-?NGVe*nOZ=3t0v0g~wg0|o$8$tZ@HBh|nTa1hKEkc=Y8jaCiJu>=L#0{)AsJ%4He f*-CI`j%^eZQu?s-5Gc>z0Hvy^rBEqn@!>xJtrO&R literal 8377 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 KxmM9O>OTOHHh2aA diff --git a/zsnes/docs/Windows/images/misc.png b/zsnes/docs/Windows/images/misc.png index f1afbff05214e301ac731ea3b98f77a944c613c6..712f215ca74b924642c54d07c53d9343f92456ab 100644 GIT binary patch literal 15669 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 VYI&r@p07Uxq{QSzOQ3o_{{!%fd1e3r diff --git a/zsnes/docs/Windows/images/netplay.png b/zsnes/docs/Windows/images/netplay.png index 44322a14a3ea27a457262383aa25254fa4ea3202..2e6a6df3db72af8d0732c3e1281cf4c8e329acf0 100644 GIT binary patch literal 9440 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 diff --git a/zsnes/docs/Windows/images/quick.png b/zsnes/docs/Windows/images/quick.png index d8e088d64f1494928b3a0c7ae797690608e8e837..ea1b5c1dea7dd6427719a46c29adf7d68101b538 100644 GIT binary patch literal 15191 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 literal 13064 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 biL|Lp_J0B(Wx{{jf*}1>LA*lLAmIN1P2dcM diff --git a/zsnes/docs/Windows/images/safer.png b/zsnes/docs/Windows/images/safer.png index 5948eaebd8091a607de127488d031cff6d9420fc..c8d11983fdb3658d647d09820682fe92170e5f2c 100644 GIT binary patch delta 1885 zcmV-j2cr0!66_9;B!35VNliru)C?RH7$iS)hMNEY010qNS#tmY9>M?s9>M``&~-il z000DMK}|sb0I`n?{9y$E00DqdOjJe4&)8;}nV-D8v(L}g-rm;d=g!^TtgWr8V^z#% zX3T8k5)Tg#E)6OG05bp&PyiZS7A9Zj=H{fMpq(Hb(?t#5b{*hb3F})9 zlp+L~00009L*Zo)wKEFRI1P7zpuW}B!pFzn-rgA-8#hpJ0001RaBwLpDQ0G7kB^Tt zGc&QZwcTeF-+xL6|DILgj!t-cdp<-&o{f#HRw;ByMu}5F&TuUMgE9S*NA<6Nnx&=8 z%*3uC=voMK%CJi2z2O9Y}t%Y(2zuMzMTi05y03C3U;Ky~-&G08yF6-Q9hO ziB(xy0A8d3X{rDtX6<$;$G)osd9(n8z25BX|Lw2k?|<*kv5Gc*mwszi0FT6^#MA(p z%pV^gEoYJ$cdY;a{|KVh4W82#vEdPt%Og>PV~nLCzwP|+<)gL8sLa~C-rqMID;@v< z00DGTPE!Ct=GbNc00m-6L_t(|+P#*IThdw>z=sUzX1CY~aDW~aEU*Xf*1?AB|wnyRXeX7}^w&mT`)t>aHAJIU=v zZOmYPk9ip0t=Ea~!}h1kH z9Dj`Muo)u>QjJCMp?v*x+v&+ z6(KZF1}Y=rTxa%Ivk2|zI-eE$qkj%!fj}(I#e2HK^6Kk@H?4LXmR(z|*9IuJwr@~2 zPw9Q9(=6@x&bgia3(Wqs(=7Kz(SwOXK5tDG@;vjaueV<`K&RH!rdqGtC|l}^FT68% zoee|FX%0tvInHqxwqR(uI9FGjtrlcv06P24?LB+>JosYP#0-UAt*q=2TYsx{N#_Jo zrBX?8{$Hx=A$V~yLlz9Z0^7;syXx|&6QfFlb5d_J$&J2EpP z=hTKlvli~xAx(2-d9olU!;snhd}<1=ih`*XQ#IWRJCU zjZN4C!xs+|C~2A?6Ke@W6IAV>79?#4DaLSDy*kLQ5J&`Ia&kW3*4EbZy7BwL6xMn= z5?R7xNk)njX9XTZ4VrKX&b*KnoE71EGbOb+J4ABhxB|$wl2gxXYkx$yR(nxfTdR+c zj}sjYlyHeI;|h&rn4(aFCTOX`O_Zv1MWC-md2u?LNRXvhND_iU@U5-Ac)I>_qf+0z zq>ErNlEV>Nf{`OoBf1DpqdD5MK+pB-GC#&cbn!fSn#p7|8l4ITm!3X-wmiJDQe3?| z1CXx@iFCoM%g$voX@4H!Tqce9NQQ^Hi+mC@b3*1?coyy_^8um@6ryAy3*#C2aUw=z*x^De(d(hyH!Jl{US-9OclAJ00Er9A@ X=N{GiG(MRLgDNh^t#k<7{|EJk6< z(=>9}qZx%wDaXuG8BdAV^H;pTyr1j3KlgQiuKS1kx_|lPczL=&c)Ug=5!c+UH>i(~+9QK=%4$il)R znoK@*Ixi+ZegJy_$T>A~IMLD3kjqUUqZEM^et2f4jmgx|(%RVA_z)zw>xGccV4QQd ze$d|j*>?*77T{#XM!Na1Kw#sAot~bqj_@auNFQ!`a-E@o#Bx9&M6t@iAUZ`$Wx4*U zSS;?~@e~ymsf_Mgv~hAyj!8_ub#f6vmOx9nLfqa8YMEeRq3Cif!$N+5&*#Uey|slV zx+44f`Zk31#>U3efilw-*uJ#WKr?uU;i&<7?lSI=X9^GxPtS-OGMVBo|tnZMX|!Ki)mq(o1N|Egs4}no^UX%dQtqaKt*Nri z0%K0p5(NtgC|(YDf_C;!yZiY`P>Vp+7M#UVrKH*}o;bbK?|yi_&g{#QlHfOO=5Deo zrb_#Q_9W|!+YQK@yz}kM%YJ*+1~{CJ>bo-{Ouh()DymUw_m$RmN^rkwxN@*4;aJsR zaqLoAujnlEIX!_`-q74^O}v<#lG1xZ>fL%rjZal;L6VbpBh%#LTeHz^(?QhRR=ZIH z^@eT}Wmzlt``uT#0`BAQoW)Dl0!RodRVc#L{L*#s+rFJPN98IRm_Y{h%`H)>l+#Ux zgG!2{UTu!w5%z)i>Y37Pa(s)fY;gTO_ z;_vHt%K4yXsU6Q#HQ}KT#oCDpI6LRKoqUP{!Tq_kbd2kg=FveaBI|8Yw_ zsccp4#C^CgWF%GKCuwMk{o6tq79?ji`N4LccHWv#esn~stf{fY|Iesps+v_SFV5=P zv+dHB+=%w4eX-qRjz^Jqc1oYQ(bD-t>61zStR8f5E1gJeRbNhA<q(86d;E*2=X{bHoN3#CEhPL28Y9C zH+B{#=)uLWx~}_qI$IyAaR1K?hR2$+o15PC-0-kWVL08^#@zeDK3H`w!z}kz_2^0u z9(7lFYy$o*zcnN3)TyXFwIO?6u~55_}dztO>37cdk}oWVim9#06*%cE~s zR<>J%a~Qu(d#I8UTjx0n6kK^XjLry__?4*VlExJ=%n=x#3 zPkA)vxP&x8#+JD10$;B`Z@U}=nJ0ONpib(tU*~p_u;a$(`r}>F_|rP*g$L)zoi*jO zwg@z4uPpuW6@p!|pINN+ku_w)m@tK~v!kY_=tknkqAtg}s?_KA`s^d)VyNS1btQ>) b6^VIWchLpM+Hs28zkdPc?1`v@ho=1(&sd=f diff --git a/zsnes/docs/Windows/images/windowslogo.png b/zsnes/docs/Windows/images/windowslogo.png index 276eadf53ac8cbef68b515af2af62c71309f2362..99db5cdb947079615f80b15298cf846d88994da5 100644 GIT binary patch delta 1996 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 diff --git a/zsnes/docs/Windows/images/zsneslogo.png b/zsnes/docs/Windows/images/zsneslogo.png index b0c052c7caa0357ead146f8ce26100731313171c..777e580f064032769756b4bee971a318e9f9a84a 100644 GIT binary patch delta 6600 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 ezyD`f{ue5{65Em{t~yfy0000)^q diff --git a/zsnes/docs/Windows/netplay.htm b/zsnes/docs/Windows/netplay.htm index e387e721..44fa09c8 100644 --- a/zsnes/docs/Windows/netplay.htm +++ b/zsnes/docs/Windows/netplay.htm @@ -1,223 +1,189 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - Netplay - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Netplay - -
    - System Recommendations -
    - *** FOR SMOOTH NETPLAY, IT IS REQUIRED THAT BOTH SIDES HAVE FAST COMPUTERS (LOOK BELOW FOR REQUIREMENTS). IF ONE SIDE HAS A SLOW COMPUTER (EG. 200MHZ) WHILE THE OTHER HAS A FAST ONE (EG. 800MHZ), THE SLOW COMPUTER'S LOW FRAMERATE WILL BOG DOWN THE FAST COMPUTER, CAUSING POOR FRAME RATES ON THE FAST COMPUTER. IT IS ALSO STRONGLY RECOMMENDED THAT YOU KEEP LATENCY AT 3 (OR REDUCE IT TO 2 FOR FAST PACED PLATFORM GAMES), ALLOW UDP CONNECTIONS, AND KEEP BACK BUFFER ENABLED.
    -
    - If you have Windows 95 and you are getting a init failed error, you should download and install the Winsock 2.0 update for Windows 95. -

    - *** Note: Do not update the above if you do not have Windows 95.
    -
    - Also, the higher than ping time, the worse the netplay experience, since ping times measure the time it takes for data to get to the other side and back. You can expect a not so great performance if you have a ping time of 400 or greater.
    -
    - Note: You cannot use cheat codes, key combinations, or turbo keys in netplay.
    -
    - Note: Firewall users - You may need to disable your firewall (or just disable it for UDP port 7845) in order to get the UDP protocol that ZSNESw's netplay uses to work.

    - Note: Internet Connection Sharing users (Win9x systems) - You may need to download an ICS Configuration software to get your connection to work and map UDP port 7845. You can find one here.
    -
    -
    - System Recommendations for Smooth Netplay:
    - ------------------------------------------
    -
      -
    • - Back Buffer must be enabled and the latency value must be 3 or 2.
    • -
    • - The games have to run at least 50 FPS on BOTH computers without netplay. This can completely depend on factors such as CPU, video card, video mode, and the game you are running.
    • -
    • - Your system should be able to handle the UDP protocol. Without it, lost packets can cause lots of in-game pauses in your netplay experience.
    • -
    • - You can also try changing your resolution to different video modes and find the video mode that provides the optimal performance if the current performance isn't satisfactory.
    • -
    • - You will also need an Internet connection with ping times of less than 400ms between both connections.
    • -
    -
    - Simple Instructions on How to Get it Working -
    -
      -
    1. 1.) Go to Netplay -> Internet.
    2. -
    3. 2.) Decide who will be the server and who will be the client (Neither has the gameplay advantage since ZSNESw treats both the same after a connection is established).
    4. -
    5. 3.) If you're the server, send the IP that is shown to your friend (eg. through any chat program (ICQ, AIM, IRC, etc.)). Then click on 'Start Server'.
    6. -
    7. 4.) If you're the client, type in the IP address that your friend has given you and then click on 'Connect to Server'.
    8. -
    9. 5.) Chat with your friend on what game to play.
    10. -
    11. 6.) Once decided, make sure that the filename on both sides are the same and that the load window points to the directory where the filename is.
    12. -
    13. 7.) Load the game.
    14. -
    15. 8.) Have fun! (If it worked).
    16. -
    17. 9.) If it said 'Checksum Mismatch', try uncompressing the file if it is compressed. If not, then both sides have a different version of that ROM (eg. One side has the Japanese version while the other has the English, or both versions are English, but are different version releases of the same game).
    18. -
    19. 10.) If you want to chat in-game, press 'T' and type in your line. You can change this key in the Misc -> Game Keys options from the GUI.
    20. -
    -
    - Getting the IP Address -
    -
    - The IP address should be displayed on the connection window. The person being the client has to somehow tell the person who is the server his own IP address in order to connect. However, if your system has multiple IP addresses, the one on the connection window probably isn't the correct one. In this case, Windows9x users can refer to winipcfg (go to the Windows Start Button -> Run, then type in winipcfg and press enter) while Windows XP users can refer to ipconfig (use the commandline). Or, if you're using mIRC, just type /dns <nick>.
    -
    -
    - Connecting -
    -
    - When you're ready, select Internet from the Netplay menu.
    -
    - If you are the server, just click on 'Start Server' and wait for the client to connect.
    - If you are the client, and after obtaining the IP of your friend (your friend has to send you his IP if you cannot figure out his IP on your own), type in the IP into the space provided and then click on 'Connect to Server'. Once you click on it, your system may look as if it's frozen, but it actually isn't. You just have to wait for a bit until it either connects or fails to connect.
    - If it failed to connect, then check to make sure that the IP you entered is correct and that you are properly connected to the net.
    - If the client says 'Found Client' and nothing else happens, chances are that your net connection does not support UDP. If this is the case, both sides will need to deselect 'Allow UDP Connection'. However, it is strongly recommended that you use this option if it is possible since it is much faster than without UDP.
    -
    -
    - Loading a Game -
    -
    - Once successfully connected, the chat window should open up. From there, you can load a game like how you normally load a game. But in order to load a game, both sides have to have their load window pointing to the directory where the game is located and also have to have the filename the same on both sides. Only one side has to load the game. After that, the other side will automatically load the game without the user's interaction. If an error pops up saying 'ROM data mismatch', then it means that either side has a different version of the ROM. This error sometimes happens with zip files even when both files are the same, so it is recommended that you unzip the games and try again if this error occurs.
    -
    -
    - Configuring the Options in the Chat Window -
    -
    - The default settings are recommended.
    -
    - However, if your computer is slower than 266 MHz, then it is recommended that both sides play with back buffer disabled. However, disabling this would degrade controller response.
    -
    - You can increase the latency value if the average ping time between both connections is high (you can tell if the gameplay runs too jerky).
    -
    - Reducing the latency value when back buffer is enabled will improve controller response time. But, however, this will cause the remote player to jump around more in order to keep both sides in sync.
    -
    - For controller options (PL1,PL2,PL3,..), the first checkmarked player would be using Input #1 of the local side. The second checkmarked player would be using Input #2 and so on. Players marked with an 'X' are checkmarked on the remote side.
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - Netplay + + + + + + + + +
    + + + +
    +

    Netplay

    + +
    + For smooth netplay, it is required that both sides have fast computers (look below for requirements). If one side has a slow computer (eg. 200mhz) while the other has a fast one (eg. 800mhz), the slow computer's low framerate will bog down the fast computer, causing poor frame rates on the fast computer. It is also strongly recommended that you keep latency at 3 (or reduce it to 2 for fast paced platform games), allow UDP connections, and keep back buffer enabled.
    +
    + If you have Windows 95 and you are getting a init failed error, you should download and install the Winsock 2.0 update for Windows 95. +

    + *** Note: Do not update the above if you do not have Windows 95.
    +
    + Also, the higher than ping time, the worse the netplay experience, since ping times measure the time it takes for data to get to the other side and back. You can expect a not so great performance if you have a ping time of 400 or greater.
    +
    + Note: You cannot use cheat codes, key combinations, or turbo keys in netplay.
    +
    + Note: Firewall users - You may need to disable your firewall (or just disable it for UDP port 7845) in order to get the UDP protocol that ZSNESw's netplay uses to work.

    + Note: Internet Connection Sharing users (Win9x systems) - You may need to download an ICS Configuration software to get your connection to work and map UDP port 7845. You can find one here.
    + +
    + +

    System Recommendations for Smooth Netplay

    + +
    +
      +
    • - Back Buffer must be enabled and the latency value must be 3 or 2.
    • +
    • - The games have to run at least 50 FPS on BOTH computers without netplay. This can completely depend on factors such as CPU, video card, video mode, and the game you are running.
    • +
    • - Your system should be able to handle the UDP protocol. Without it, lost packets can cause lots of in-game pauses in your netplay experience.
    • +
    • - You can also try changing your resolution to different video modes and find the video mode that provides the optimal performance if the current performance isn't satisfactory.
    • +
    • - You will also need an Internet connection with ping times of less than 400ms between both connections.
    • +
    + +
    + +

    Simple Instructions

    + +
    +
      +
    • 1.) Go to Netplay -> Internet.
    • +
    • 2.) Decide who will be the server and who will be the client (Neither has the gameplay advantage since ZSNESw treats both the same after a connection is established).
    • +
    • 3.) If you're the server, send the IP that is shown to your friend (eg. through any chat program (ICQ, AIM, IRC, etc.)). Then click on 'Start Server'.
    • +
    • 4.) If you're the client, type in the IP address that your friend has given you and then click on 'Connect to Server'.
    • +
    • 5.) Chat with your friend on what game to play.
    • +
    • 6.) Once decided, make sure that the filename on both sides are the same and that the load window points to the directory where the filename is.
    • +
    • 7.) Load the game.
    • +
    • 8.) Have fun! (If it worked)
    • +
    • 9.) If it said 'Checksum Mismatch', try uncompressing the file if it is compressed. If not, then both sides have a different version of that ROM (eg. One side has the Japanese version while the other has the English, or both versions are English, but are different version releases of the same game).
    • +
    • 10.) If you want to chat in-game, press 'T' and type in your line. You can change this key in the Misc -> Game Keys options from the GUI.
    • +
    + +
    + +

    Getting The IP Address

    + +
    + Your IP address should be displayed on the connection window.
    +
    + The person being the client has to somehow tell the person who is the server his own IP address in order to connect. However, if your system has multiple IP addresses, the one on the connection window probably isn't the correct one.
    +
    + In this case, Windows9x users can refer to winipcfg (go to the Windows Start Button -> Run, then type in winipcfg and press enter) while Windows XP users can refer to ipconfig (use the commandline). Or, if you're using mIRC, just type /dns <nick>.
    + +
    + +

    Connecting

    + +
    + When you're ready, select Internet from the Netplay menu.
    +
    +
      +
    • - If you are the server, just click on 'Start Server' and wait for the client to connect.
    • +
    • - If you are the client, and after obtaining the IP of your friend (your friend has to send you his IP if you cannot figure out his IP on your own), type in the IP into the space provided and then click on 'Connect to Server'. Once you click on it, your system may look as if it's frozen, but it actually isn't. You just have to wait for a bit until it either connects or fails to connect.
    • +
    • - If it failed to connect, then check to make sure that the IP you entered is correct and that you are properly connected to the net.
    • +
    • - If the client says 'Found Client' and nothing else happens, chances are that your net connection does not support UDP. If this is the case, both sides will need to deselect 'Allow UDP Connection'. However, it is strongly recommended that you use this option if it is possible since it is much faster than without UDP.
    • +
    + +
    + +

    Loading A Game

    + +
    + Once successfully connected, the chat window should open up.
    +
    + From there, you can load a game like how you normally load a game. But in order to load a game, both sides have to have their load window pointing to the directory where the game is located and also have to have the filename the same on both sides. Only one side has to load the game. After that, the other side will automatically load the game without the user's interaction.
    +
    + If an error pops up saying 'ROM data mismatch', then it means that either side has a different version of the ROM. This error sometimes happens with .zip files even when both files are the same, so it is recommended that you unzip the games and try again if this error occurs.
    + +
    + +

    Configuring Chat Windows Options

    + +
    + The default settings are recommended.
    +
    + However, if your computer is slower than 266 MHz, then it is recommended that both sides play with back buffer disabled. However, disabling this would degrade controller response.
    +
    + You can increase the latency value if the average ping time between both connections is high (you can tell if the gameplay runs too jerky).
    +
    + Reducing the latency value when back buffer is enabled will improve controller response time. But, however, this will cause the remote player to jump around more in order to keep both sides in sync.
    +
    + For controller options (PL1, PL2, PL3,..), the first checkmarked player would be using Input #1 of the local side. The second checkmarked player would be using Input #2 and so on. Players marked with an 'X' are checkmarked on the remote side.
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/readme.htm b/zsnes/docs/Windows/readme.htm index ca76348e..b0671db5 100644 --- a/zsnes/docs/Windows/readme.htm +++ b/zsnes/docs/Windows/readme.htm @@ -1,722 +1,606 @@ - - - - - - - ZSNES Documentation - Windows v1.4 - Readme - - - - - - - - - - - -
    - ZSNES
    - ZSNES Windows v1.4 -
    -
    -     - [About] - [Credits] - [ZSNES.com] - [Donate] - [GPL] -
    -

    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Readme -
    - ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    -
    - Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    - -
    - What's New -
    - Windows Only: -
      -
    • - Updated icon with Windows XP compliancy. [cdbsi]
    • -
    • - Added new disable screensaver code. [pagefault]
    • -
    • - Added a CPU utilization fix. [kode54, pagefault]
    • -
    • - Added 48khz sound support, updated sound code, and fixed sound bugs. [pagefault, Nach, ipher, StatMat]
    • -
    • - Fixed a couple of input bugs, such as one concerning the 5th joystick and another that made the mouse get stuck in an endless loop. [pagefault]
    • -
    • - Removed alternate timer. [pagefault]
    • -
    • - Fixed Netplay freezing bug. [pagefault]
    • -
    • - Many new video features, including (but not limited to): HQ2X, HQ3X and HQ4X graphic filters, support for hi-res and D modes in 32bpp windowed mode (now default), new aspect ratio code for scaling, and the KitchenSync (usable only via the commandline). [MaxSt, pagefault, Darkfalz]
    • -
    • - Fixes for video code errors, such as those that occured when alt-tabbing in fullscreen, MMX interpolation fixes, and blitter fixes. [pagefault, zsKnight]
    • -
    • - Snapshots are now numbered and use the full ROM file name. [Nach]
    • -
    • - Renamed Windows version to Win32. [pagefault]
    • -
    • - Win32 port can now also be compiled with MinGW (but we won't support it till the next release). [Nach]
    • -
    -
    - All Ports: -
      -
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • -
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, changed much hard coding to variables. Fixed more SRAM bugs than can be counted. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2 now loads and plays great without the Dejap patch. [Nach]
    • - -
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • -
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • -
    • - Removed many, many hacks. [Nach, pagefault]
    • -
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • -
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • -
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • -
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • -
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • -
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • -
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • -
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • -
    • - Fixed a small bug in SPC saving. [pagefault]
    • -
    • - Fixed issues with config file saving. [pagefault, Nach]
    • -
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • -
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • -
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • -
    • - Fixed rewind when using commandline filename. [StatMat]
    • -
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • -
    • - Removed ROM info that appears when loading via command line. [Nach]
    • -
    • - Added a command-line savestate fix. [StatMat]
    • -
    • - Fixed an annoying savestate bug. [pagefault]
    • -
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • -
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • -
    • - Lufia 2 problems are now fixed. [pagefault]
    • -
    • - Emerald Dragon now works - again. [pagefault]
    • -
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • -
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • -
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • -
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • -
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • -
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • -
    • - Added support for many more ROM extensions. [Nach]
    • -
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • -
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • -
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • -
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • -
    • - Added better handling of bad files. [_Demo_, Nach]
    • -
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • -
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • -
    • - Fixed variable types in many locations, ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • -
    • - Added motion blur (Thanks ipher for fixing the entry in the GUI). [pagefault]
    • -
    • - Made ZSNES more HTPC friendly. [pagefault]
    • -
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • -
    • - Unicode support partially supported. Will complete later. [pagefault]
    • -
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • -
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • -
    -
    - We have also greatly improved support for special hardware in ZSNES v1.40.
    - These require special mention: :)
    -
    - - SuperFX core updates:
    - pagefault
    -
    - - SA-1 core updates:
    - pagefault
    -
    - - C4 core updates:
    - Research: anomie
    - Main Code: Nach
    - Special thanks to The Dumper and TRAC!
    -
    - - DSP-1 core updates:
    - Data Retrieval: pagefault, Overload, The Dumper
    - Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
    - Integration: MKendora, Nach
    - Processing Code: pagefault, Nach
    -
    - - DSP-2 Emulation:
    - Data Retrieval: Overload
    - Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
    - Main Code: kentaro-k.21
    - Processing Code: pagefault, kentaro-k.21
    - Special thanks to Lord Nightmare!
    -
    - - S-DD1 Emulation:
    - Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
    - Research: Andreas Naive
    - Main Code: anomie
    - Processing Code: _Demo_, Nach
    - Special thanks to all the other developers and users who worked on this hard project!
    -
    - - ST010 Emulation:
    - Data Retrieval: The Dumper, MKendora
    - Main Code: The Dumper, Overload, Feather, Nach
    - Processing Code: The Dumper
    - Code Fixes: pagefault
    -
    - - Sufami Turbo Support (preliminary):
    - Nach
    -
    - - SD Gundam G-Next and Same Game expansion pack Support:
    - Nach
    -
    - v1.36
    -
      -
    • - Fixed Gunforce, added invalid HDMA modes. (Thanks Overload!) [_Demo_]
    • -
    • - New BRR decoding method, this should resolve all the sound issues introduced in 1.35 and fix new ones. (Noise simulation isn't used anymore) [_Demo_]
    • -
    • - Fixed another bug with command-line netplay. (Windows only) [pagefault]
    • -
    • - Fixed hang in NBA Live 95 and 96. (Thanks Overload!) [_Demo_]
    • -
    • - Fixed sound not working on first run. (Windows only) [pagefault]
    • -
    • - Fixed some more mode 4 issues in the new gfx engine. [pagefault]
    • -
    • - Added offset mode disable toggle to 8-bit new gfx engine. [pagefault]
    • -
    • - Fixed SPC hang in 90 Minutes European Prime Goal by clearing spcram. [_Demo_]
    • -
    • - Updated fix for Clayfighter to fix some bugs in battle. [_Demo_]
    • -
    • - Fixed crash with certain games. (SDL/*nix only) [theoddone33]
    • -
    • - Added better OBC1 detection. [_Demo_]
    • -
    • - Special hack for Samurai Showdown IRQ problem. [_Demo_]
    • -
    • - Special hack for Kamen Rider menu, requires special latch reading. [_Demo_]
    • -
    • - Special hack for Super Famista 1 and 2 SPC bugs. [_Demo_]
    • -
    • - Fixed some more bugs in video code. (Thanks Perryman for the video table) (Windows only) [pagefault]
    • -
    • - Fixed Digital Devil Story hang by modifying the spc code. You must start a new game for the fix to work. [_Demo_]
    • -
    • - Modified work ram init value to 0x55. (Thanks TRAC)
    • -
    - -
    - Disclaimer -
    - The ZSNES development team, including all developers and contributers, are in no way responsible for any damage caused by the use of this software. In addition, ZSNES may not be distributed with ROM images. - -
    - System Requirements -
    - Windows 95/98/ME:
    -   150MHz Processor (500MHz recommended)
    -   16MB of RAM (64MB recommended)
    -   3D Graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    -   DirectX v8.1 or higher required
    -
    - Windows NT/2000/XP:
    -   200MHz Processor (500MHz recommended)
    -   32MB of RAM (64MB recommended)
    -   3D Graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    -   DirectX v8.1 or higher required
    - -
    - Things To Know -
    -
      -
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • -
    • - Several special chip emulation routines (SA-1) have unknown bugs to them.
    • -
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • -
    • - Screen Snapshot, Snapshot Format, and FPS counter are available through a menu by pressing F1 during emulation.
    • -
    • - Screen Snapshot can save in bitmap format (65536 colors) or PNG format (32-bit ARGB color).
    • -
    • - FPS counter currently only works when auto frame rate is on.
    • -
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • -
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • -
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • -
    • - SNES Mouse support is still missing some features, such as speed settings.
    • -
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • -
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • -
    - -
    - Current Progress -
    - The following are implemented: -
      -
    • - Complete 65816 instruction set
    • -
    • - SRAM support
    • -
    • - LoROM and HiROM support
    • -
    • - SlowROM and FastROM support
    • -
    • - Full DMA support
    • -
    • - HIRQ/VIRQ/NMI Interrupts
    • -
    • - Support for most SNES file formats
    • -
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • -
    • - Interleaved format support
    • -
    • - PAL/NTSC timing support
    • -
    -
    - The following are implemented in the new graphics engine 8 bit: -
      -
    • - Combination of line by line and tile based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - Mosaic effects
    • -
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • -
    • - High res 512 resolution and 448/478 vertical resolution
    • -
    • - Windowing effects
    • -
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • -
    -
    - The following are implemented in the old graphics engine: -
      -
    • - Line by line based graphics engine
    • -
    • - Graphic modes 0,1,2,3,4,5,6,7
    • -
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • -
    • - Mosaic effects
    • -
    • - 8x8 and 16x16 tiles
    • -
    • - 32x32,64x32,32x64,64x64 tile modes
    • -
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • -
    • - Mode 7 rotating and scaling effects
    • -
    • - Single and dual windowing routines
    • -
    • - BG priorities
    • -
    • - Sprite priorities
    • -
    • - Add/sub of back area
    • -
    • - 16-bit graphics support
    • -
    • - Offset per tile mode (mode 2/vertical only)
    • -
    • - High res 512 horizontal resolution (missing in 16x16)
    • -
    -
    - Following are present in 16-bit graphics mode: -
      -
    • - Palette changing in the middle of a screen
    • -
    • - Screen addition (full and half)
    • -
    • - Screen subtraction (full)
    • -
    • - Fixed color addition/subtraction
    • -
    • - Window clipping for fixed color
    • -
    -
    - The following are implemented in the new graphics engine 16 bit: -
      -
    • - All of old graphics engine 16bit
    • -
    • - Combination of line by line and tile based graphics engine
    • -
    • - High resolution mode 7
    • -
    • - High resolution 16x16 tiles for mode 5
    • -
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • -
    -
    - The following are present in sound: -
      -
    • - 16bit digital stereo sound
    • -
    • - SPC700 Sound CPU
    • -
    • - DSP Sound Processor -
        -
      • - Echo effects
      • -
      • - FIR filter
      • -
      • - ADSR volume effects
      • -
      • - GAIN volume effects
      • -
      • - Noise effects
      • -
      • - Pitch modulation
      • -
      -
    • -
    -
    - The following are extra features emulated: -
      -
    • - Super NES Mouse support
    • -
    • - Super NES Super Scope support
    • -
    • - Nintendo Super System support (except the menu system)
    • -
    • - SuperFX support (still has a bug or 2 left)
    • -
    • - MultiTap (Multiplayer 5) support (4 players on a single computer, 5 players remote (ipx/modem))
    • -
    • - DSP-1 emulation
    • -
    • - DSP-2 emulation
    • -
    • - SA-1 emulation (not complete)
    • -
    • - OBC1 emulation (still may have bugs)
    • -
    • - S-DD1 emulation
    • -
    • - BS Sattelaview emulation (not complete)
    • -
    • - ST010 emulation
    • -
    • - Sufami Turbo support (not complete)
    • -
    • - SD Gundam G-Next and Same Game expansion pack support
    • -
    • - SPC7110 emulation (via decompression packs)
    • -
    -
    - The following are the features present in ZSNES: -
      -
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • -
    • - Movie recording
    • -
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • -
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • -
    • - Configuration file support (zsnesw.cfg)
    • -
    • - 5 player support w/ joystick and gamepad support
    • -
    • - Netplay
    • -
    -
    - The following features are missing: -
      -
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • -
    • - Some modes in offset per tile mode
    • -
    • - Some direct color modes (haven't seen any game that uses them yet)
    • -
    • - True SPC7110 decompression
    • -
    -
    - What will not run (or not play properly): -
      -
    • - Some SuperFX games
    • -
    • - Some BS Sattelaview games
    • -
    • - Games with unknown co-processors
    • -
    • - Games that don't have a valid header
    • -
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • -
    • - Games that require special timing
    • -
    - -
    - ZSNES Default Keys -
    - Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and ESC:
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Disable Backgrounds 1,2,3,4 = 1,2,3,4
    Disable Sprites = 5
    Panic Key (enable all) = 6
    Enable SNES Mouse/SuperScope = 7
    Enable New Graphics Engine = 8
    Disable Windowing = 9
    Disable Offset Mode = 0
    Fast Forward Key = ~
    PopUp Extra Menu = F1
    Save State = F2
    Switch State = F3
    Load State = F4
    Disable Sound Channel = F5 - F12
    Quit = ESC
    -
    - Here are the default keys for the game play (unless modified through the GUI):
    -
    - Player 1:
    - - - - - - - - - - - - - - - - - -
    Up,Down,Left,Right : Cursor Keys
    A,B,X,Y : X,Z,S,A
    L,R : D,C
    Start, Select : Enter, RShift
    - -
    - F1 Menu -
    -
      -
    • Save Snapshot - Saves a snapshot as either .BMP (16-bit) or .PNG (32-bit ARGB).
    • -
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • -
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • -
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • -
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • -
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • -
    • Move This Window - Moves the F1 menu to a different location.
    • -
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are BMP (bitmap) and PNG (Portable Network Graphic).
    • -
    - -
    - Configuration File -
    - Almost everything in zsnesw.cfg should now be editable through the GUI. An exception is the save folder, which is required in order to access games from a read-only medium (such as a CD).
    - -
    - Cheat Codes -
    - Currently, ZSNES supports Game Genie, Pro Action Replay and GoldFinger codes.
    -
    - Here are the steps to get the codes working :
    -
    - 1.) Load the ROM which you want to patch.
    - 2.) Exit to the GUI, enter the code of your choice in the cheat menu.
    - 3.) After that, you may have to RESET the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.
    -
    - NOTE : Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    - -
    - Extra Features -
    - To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    - To enable SNES Super Scope, press 7 three times.
    - To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    -
    - Here are the controls for the Super Scope :
    -
    - Fire = Left mouse button
    - Cursor Mode Button = Right mouse button
    - Pause = Backspace key on keyboard
    - Enable/Disable Autofire = =/+ key on keyboard
    -
    - ZSNES auto-detects the SFX emulation from the header and enables it when found. Also, take note that the SFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    -
    - Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    -
    - IPS patcher:
    - Rename your .IPS file to the ROM filename with the .IPS extension (eg. If your ROM is SD3.SMC and your ips is SD3V05.IPS, rename SD3V05.IPS to SD3.IPS) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .IPS files that are inside .ZIP files.
    - -
    - Bugs -
    - - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    - - Games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    - - The Sound DSP chip still has its bugs (not many though). Most noticeably, no one knows the exact timing of the SPC700 chip.
    - -
    - Contact Information -
    - The ZSNES homepage is located at : http://www.zsnes.com
    -
    - If you have any questions about ZSNES, and you have read through this whole help file to make sure the answer isn't here, then you can post your question at the ZSNES Forums. -

    - Remember - This board should be mainly used for ZSNES related discussion. - ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    -
    - If you wish to contact the authors, you may contact them through:

    - pagefault AT zsnes DOT com
    - _demo_ AT zsnes DOT com
    - n-a-c-h AT users.sf DOT net

    - Remember - No ROM requests please! And don't send any files without permission!
    -
    - Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    - -
    - Credits -
    - ZSNES Windows uses Visual C++ 6 or MinGW (GCC), NASM .98.39, DirectX 8, GNU Make, and UPX to compile, link, compress, and execute. Thanks for the work put into these programs.
    -
    - Special thanks to wnelson! Without him, ZSNES would have never existed!
    - Also to Y0SHi for his excellent SNES docs, his help, and his excellent support!
    -
      -
    • Also Thanks to:
    • -
    • - The_Teach of Snes9x for some great info and the nice chats!
    • -
    • - Trepalium of Snes9x for some great info and help!
    • -
    • - Gary of Snes9x and Steve Snake of KGen for being the source of info for sound decompression!
    • -
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • -
    • - MrGrim for his great support!
    • -
    • - Crono for info on Sound Blaster Programming, Surround Sound, Sound Interpolation, and other sound stuff!
    • -
    • - Aquis for the ZSNES logo!
    • -
    • - Alucard for helping us with an issue in the 65816!
    • -
    • - Vertigo for making a compatibility list!
    • -
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • -
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • -
    • - Chris Hickman for redesigning the ZSNES web page!
    • -
    • - CSoft for hosting our web page!
    • -
    • - Marius Fodor for the code for VSync, Sidewinder, Gamepad Pro, and some optimisation info!
    • -
    • - Sardu for some great info and help!
    • -
    • - Lord ESNES for some great help!
    • -
    • - Robert Grubbs for the sidewinder info!
    • -
    • - Nerlaska for some useful info on optimizing and also for some help!
    • -
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • -
    • - DarkForce for some great help!
    • -
    • - Pharos for some keyboard coding help!
    • -
    • - Ivar and Gary of the Snes9x team for all the great help which includes their superfx info and code, DSP1 info, info on interleave formats (hirom and superfx), offset per tile mode, FIR filter, some spc700 and hdma bugs!
    • -
    • - WolfWings ShadowFlight for help on several issues of nasm!
    • -
    • - Wildfire for some help!
    • -
    • - A CoolMan for the algorithm for EAGLE!
    • -
    • - Neill Corlett for some info on the .IPS format and also helping out a lot on improving the sound engine!
    • -
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle Source Codes!
    • -
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • -
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • -
    • - Kode54 for the low pass filter routines!
    • -
    • - Andy Goth for some help on the design of the key combination engine!
    • -
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • -
    • - All those people who helped us by either sending us docs, helping us, supporting us, and reporting bugs!

    • -
    • Special Thanks to:
    • -
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • -
    • - And also to all those whom we forgot!

    • -
    • Special Thanks to all our beta testers for being a great help!
    • -
    • Info on 256x256x256 scanlines mode is from the MAME source. Thanks to those behind MAME!
    • -
    - Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, Nlke, SNEeSe, and SNEMul! And also good luck to the makers of TheSE!
    -
    -
    -
    - Best viewed in a real web browser such as Firefox.
    - Get Firefox!Get Firefox! -
    -
    - - + + + + + ZSNES Documentation - Windows v1.41 - Readme + + + + + + + + + + + + +
    +

    Readme

    + +
    + ZSNES is a Super Nintendo Entertainment System emulator written entirely in assembly and C. Using cutting edge SNES emulation, ZSNES is easily comparable to other leading SNES emulators, such as Snes9x, SNEeSe, and Super Sleuth.
    +
    + Special thanks to the Snes9x team for all of their help and also for the excellent SNES emulator they have developed. We wish them the very best of luck!
    + +
    + +

    What's New

    + +
    +
      +
    • Windows Only:
    • +
    • - Get_Date() now returns the proper value (it always returned the proper value in DOS). [Nach]
    • +
    • - Correct timing when compiled with MinGW (Special thanks to Jonas Quinn for all his help in getting ZSNESw compiled with MinGW and working). [Nach]
    • +
    • - More informative error messages when some DirectX component fails to load. [Nach]
    • +
    • - Return 0 instead of random value on exit (keeps certain frontends happy). [Nach]
    • +
    • - Fixed keyboard shortcut for "Trap Mouse Cursor". [ipher]
    • +
    • - Changed text in netplay window to be more clear about TCP/UDP. [pagefault]
    • +
    • - Updated ZSNESw compilation instructions in install.txt. [Nach]
    • +
    +
    +
      +
    • All Ports:
    • +
    • - Improved accuracy of base rates used for ADSR, GAIN, noise, and echo emulation. [TRAC]
    • +
    • - Fixed GUI escape stack corruption if .srm file could not be written to. [Nach]
    • +
    • - Stereo settings now obey config file. [Nach]
    • +
    • - Fixed framerate loading from config file. [ipher]
    • +
    • - ZSNES no longer hacks itself in order to access variables; this eliminates a few issues we had. [Nach]
    • +
    • - Source code cleanup. [Nach, ipher]
    • +
    • - Makefile overhaul; ZSNES can now be cross compiled. [Nach, ipher, malcster, SamB]
    • +
    • - Fixed some invalid memory reads. [Nach]
    • +
    • - Ported config file creation/loading to C. [MKendora, Nach]
    • +
    • - Percent of execution now takes h-blank values into consideration. [pagefault] +
    • - Fixed Winter Gold FX crash. [Nach]
    • +
    • - Filtered GUI is now enabled by default. [Nach]
    • +
    • - Save location can now be edited in the GUI. [Nach]
    • +
    • - Added option to enable/disable auto IPS patching. [Nach, ipher]
    • +
    • - Saving last ROM info to rominfo.txt can now be turned off. [ipher, Nach]
    • +
    • - Organized options menu, and split off save related options into its own menu. [ipher]
    • +
    • - Moved Super System DIP switches to the chip configuration menu. [ipher]
    • +
    • - More boxes have borders now! [ipher] +
    • - New one-time user reminder text. [grinvader]
    • +
    • - Updated about box. [Nach, ipher]
    • +
    • - Overhauled toaster support. [Nach] +
    + +
    + +

    Previous Updates

    + +
    + v1.40 +
      +
    • Windows Only:
    • +
    • - Updated icon with Windows XP compliancy. [cdbsi]
    • +
    • - Added new disable screensaver code. [pagefault]
    • +
    • - Added a CPU utilization fix. [kode54, pagefault]
    • +
    • - Added 48khz sound support, updated sound code, and fixed sound bugs. [pagefault, Nach, ipher, StatMat]
    • +
    • - Fixed a couple of input bugs, such as one concerning the 5th joystick and another that made the mouse get stuck in an endless loop. [pagefault]
    • +
    • - Removed alternate timer. [pagefault]
    • +
    • - Fixed Netplay freezing bug. [pagefault]
    • +
    • - Many new video features, including (but not limited to): HQ2X, HQ3X, and HQ4X graphic filters, support for hi-res and D modes in 32bpp windowed mode (now default), new aspect ratio code for scaling, and the KitchenSync (usable only via the commandline). [MaxSt, pagefault, Darkfalz]
    • +
    • - Fixes for video code errors, such as those that occured when alt-tabbing in fullscreen, MMX interpolation fixes, and blitter fixes. [pagefault, zsKnight]
    • +
    • - Snapshots are now numbered and use the full ROM file name. [Nach]
    • +
    • - Renamed Windows version to Win32. [pagefault]
    • +
    • - Win32 port can now also be compiled with MinGW (but we won't support it till the next release). [Nach, Jonas Quinn]
    • +
    +
    +
      +
    • All Ports:
    • +
    • - Added multiple timing tweaks, fixed various emulation bugs, and many other technical updates, including (but not limited to): SPC core updates (with improved sound decoding), safer memory allocation in certain areas, HIRQ and VIRQ fixes, color add/sub and color bleeding fixes, HDMA improvements, sprite priority and flickering fixes, and a slew of SRAM fixes. Many more games work :D. [pagefault, _Demo_, Nach, TRAC, Overload, theoddone33]
    • +
    • - Overhauled a lot of code, such as checksum calculation and mirroring code. Overhauled and added much better EHi/Hi/Lo ROM code, improved reset vector, and changed much hard coding to variables. Fixed more SRAM bugs than we can count. Made optimizations to complex loading functions, syntax, memory init (Thanks kode54), execution, and initialization code. Also greatly improved PAL/NTSC detection. Also now has much better chip detection and gives more informative chip names. More games which never loaded before now load properly, such as Dai Kaiju Monogatari 2; it now loads and plays great without the Dejap patch. [Nach]
    • +
    • - Cleaned up, overhauled, removed, and ported a lot of code (asm to C). [pagefault, MKendora, Nach]
    • - Overhauled IO latch behavior, added proper latching behavior and other latch fixes (such as proper latching of bit 7 on $4201), and added proper behavior of RDIO regs. [pagefault]
    • +
    • - Removed many, many hacks. [Nach, pagefault]
    • +
    • - There have been some modifications and reorganizations of the GUI, including new path setup and chip configuration windows and a reorganization of the Game Key window. [pagefault, Nach]
    • +
    • - Updates to the video code, with enhancements of triple buffering, better input support in the video dialog, and other general video code updates and bug fixes, such as a fix for the 60hz mode. [pagefault, MaxSt]
    • +
    • - New extra options are now available in various locations, like the "GUI burning effect", new commandline options, a new quick key to control players 1/2 with 3/4, and smaller message text. Some obsolete ones have been removed. [pagefault]
    • +
    • - Some changes in the Input configuaration: Hitting "Set Keys" is now prevented if controller is set to "None". Also, if no controller is selected, the settings of the individual keys are now locked. [Nach]
    • +
    • - Updated default configuration, in general. For example, stereo sound is now enabled by default at 32khz, with gaussian interpolation. [pagefault]
    • +
    • - Signed saturation fix for gaussian interpolation (Thanks kode54). [pagefault]
    • +
    • - Fixed several Netplay issues. [_Demo_, pagefault, Nach]
    • +
    • - Fixed some of our .zmv movie recording problems. [Nach]
    • +
    • - Fixed a small bug in SPC saving. [pagefault]
    • +
    • - Fixed issues with config file saving. [pagefault, Nach]
    • +
    • - Fixed PNG snapshot filenames and PNG height. [StatMat, Nach]
    • +
    • - Fixed DIP switch 2 on Super System. [pagefault]
    • +
    • - Fixed an auto frameskip issue (Thanks MKendora). [pagefault]
    • +
    • - Fixed rewind when using commandline filename. [StatMat]
    • +
    • - Fixed some issues when loading ROMs via command line. [Nach]
    • +
    • - Removed ROM info that appears when loading via command line. [Nach]
    • +
    • - Added a command-line savestate fix. [StatMat]
    • +
    • - Fixed an annoying savestate bug. [pagefault]
    • +
    • - Super Bases Loaded 2 works better, due to a fix in DSP-1 mapping. [_Demo_]
    • +
    • - Horai Gakuen works better, due to a special fix. [_Demo_]
    • +
    • - Lufia 2 problems are now fixed. [pagefault]
    • +
    • - Emerald Dragon now works - again. [pagefault]
    • +
    • - Many updates on the SPC7110, such as normal timing, special ratio removal, and better pack loading code. [_Demo_, pagefault, Nach]
    • +
    • - Removed SPC7110 logger and S-DD1 test. [grinvader]
    • +
    • - Removed support for interleaved SuperFX ROMs. [Nach]
    • +
    • - Added several improvements and memory map adjustments for more accurate BS emulation. [Nach, pagefault]
    • +
    • - Added call init code for DSP-2,3, and 4. [pagefault]
    • +
    • - Added better support for split ROMs with headers and detecting interleaved ROMs. [Nach]
    • +
    • - Added support for many more ROM extensions. [Nach]
    • +
    • - ROM info now dumped to rominfo.txt on game load. [Nach]
    • +
    • - Added more information lines on ROM load, such as CRC32, video, and bank information. [pagefault, Nach]
    • +
    • - Added support for some NSRT features, such as NSRT header support and support for ROMs using NSRT's JMA compression format. [Nach]
    • +
    • - Zipped ROMs no longer need a temporary directory. [Nach]
    • +
    • - Added better handling of bad files. [_Demo_, Nach]
    • +
    • - Implemented soft IPS patching functionality, with in-zip file support, buffering, and RLE support. [Nach]
    • +
    • - Added a compatibility update to PPU. Passes one more electronics test (Thanks MKendora!). [pagefault]
    • +
    • - Fixed variable types in many locations; ZSNES can now play games without hacking the binary to make code segments writable. [Nach]
    • +
    • - Made ZSNES more HTPC friendly. [pagefault]
    • +
    • - Fixed many compiler warnings, added compiler optimizations, and more compiler fixes and code cleanups. [Nach, MKendora, theoddone33, pagefault, ipher, SamB]
    • +
    • - Unicode support partially supported. Will complete later. [pagefault]
    • +
    • - ZSNES now displays the day it was compiled in the about box. [Nach]
    • +
    • - Updated authors.txt, support.txt, thanks.txt, and todo.txt. [pagefault]
    • +
    +
    + We have also greatly improved support for special hardware in ZSNES v1.40.
    + These require special mention:
    +
    +
      +
    • - SuperFX core updates:
      pagefault

    • +
    • - SA-1 core updates:
      pagefault

    • +
    • - C4 core updates:
      Research: anomie
      Main Code: Nach
      Special thanks to The Dumper and TRAC!

    • +
    • - DSP-1 core updates:
      Data Retrieval: pagefault, Overload, The Dumper
      Main Code: pagefault, Overload, The Dumper, neviksti, Andreas Naive, _Demo_
      Integration: MKendora, Nach
      Processing Code: pagefault, Nach

    • +
    • - DSP-2 emulation:
      Data Retrieval: Overload
      Research: Overload, neviksti, MKendora, The Dumper, CaitSith2
      Main Code: kentaro-k.21
      Processing Code: pagefault, kentaro-k.21
      Special thanks to Lord Nightmare!

    • +
    • - S-DD1 emulation:
      Data Retrieval: The Dumper, Dark Force, zsKnight, Gary Henderson
      Research: Andreas Naive
      Main Code: anomie
      Processing Code: _Demo_, Nach
      Special thanks to all the other developers and users who worked on this hard project!

    • +
    • - ST010 emulation:
      Data Retrieval: The Dumper, MKendora
      Main Code: The Dumper, Overload, Feather, Nach
      Processing Code: The Dumper
      Code Fixes: pagefault

    • +
    • - Sufami Turbo support (preliminary):
      Nach

    • +
    • - SD Gundam G-Next and Same Game expansion pack support:
      Nach
    • +
    + +
    + +

    Disclaimer

    + +
    + The ZSNES development team, including all developers and contributers, is in no way responsible for any damage caused by the use of this software. Please read the license for more details. In addition, ZSNES may not be distributed with ROM images.
    + +
    + +

    System Requirements

    + +
    +
      +
    • Windows 95/98/ME:
    • +
    • - 150MHz processor (500MHz recommended)
    • +
    • - 16MB of RAM (64MB recommended)
    • +
    • - 3D graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    • +
    • - DirectX v8.1 or higher required
    • +
    +
    +
      +
    • Windows NT/2000/XP:
    • +
    • - 200MHz processor (500MHz recommended)
    • +
    • - 32MB of RAM (64MB recommended)
    • +
    • - 3D graphics accelerator required (nVidia GeForce 2 or equivalent recommended)
    • +
    • - DirectX v8.1 or higher required
    • +
    + +
    + +

    Things To Know

    + +
    +
      +
    • - You can use both keyboard and joystick for player 1 or 2 with some configuration adjustments. Refer to the FAQ for details.
    • +
    • - Several special chip emulation routines have unknown bugs to them.
    • +
    • - SuperFX can be slow because it is an extra 10/20mhz CPU that has to be emulated as well as the SNES emulation.
    • +
    • - Screen Snapshot, Snapshot Format, and FPS Counter are available through a menu by pressing F1 during emulation.
    • +
    • - Screen Snapshot can save in PCX format (8bit color), bitmap format (65536 colors), or PNG format (32bit ARGB color).
    • +
    • - FPS Counter currently only works when auto frame rate is on.
    • +
    • - To use the cheat function, be sure to have the ROM which you want to patch loaded already.
    • +
    • - If the cheat codes do not work, chances are that you are either using a different version of the ROM that was originally used to create them or the codes are converted incorrectly from other code formats.
    • +
    • - There are still many bugs left in ZSNES, so don't expect it to run all your favorite games.
    • +
    • - SNES Mouse support is still missing some features, such as speed settings.
    • +
    • - Pressing the Fast Forward key is equivalent to running ZSNES using -f 9.
    • +
    • - If ZSNES doesn't work for you, then don't use it. Use Snes9x, SNEeSe, or Super Sleuth instead! In fact, even if you use ZSNES, use those emulators too!
    • +
    + +
    + +

    Current Progress

    + +
    +
      +
    • The following are implemented:
    • +
    • - Complete 65816 instruction set
    • +
    • - SRAM support
    • +
    • - LoROM and HiROM support
    • +
    • - SlowROM and FastROM support
    • +
    • - Full DMA support
    • +
    • - HIRQ/VIRQ/NMI Interrupts
    • +
    • - Support for most SNES file formats
    • +
    • - Multi file format support (.1,.2,.3,A.,B.,C.)
    • +
    • - Interleaved format support
    • +
    • - PAL/NTSC timing support
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 8bit:
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - Mosaic effects
    • +
    • - Offset per tile mode (mode 2/vertical only, mode 4)
    • +
    • - High res 512 resolution and 448/478 vertical resolution
    • +
    • - Windowing effects
    • +
    • - High res mode 7 (only in 640x480x256 video mode/disable Eagle/Scanlines)
    • +
    +
    +
      +
    • The following are implemented in the old graphics engine:
    • +
    • - Line by line based graphics engine
    • +
    • - Graphic modes 0,1,2,3,4,5,6,7
    • +
    • - 8x8, 16x16, 32x32, and 64x64 sprite support (flipped in all directions)
    • +
    • - Mosaic effects
    • +
    • - 8x8 and 16x16 tiles
    • +
    • - 32x32,64x32,32x64,64x64 tile modes
    • +
    • - Full HDMA effects for wavy backgrounds, interesting mode 7 effects, etc.
    • +
    • - Mode 7 rotating and scaling effects
    • +
    • - Single and dual windowing routines
    • +
    • - BG priorities
    • +
    • - Sprite priorities
    • +
    • - Add/sub of back area
    • +
    • - 16bit graphics support
    • +
    • - Offset per tile mode (mode 2/vertical only)
    • +
    • - High res 512 horizontal resolution (missing in 16x16)
    • +
    +
    +
      +
    • Following are present in 16bit graphics mode:
    • +
    • - Palette changing in the middle of a screen
    • +
    • - Screen addition (full and half)
    • +
    • - Screen subtraction (full)
    • +
    • - Fixed color addition/subtraction
    • +
    • - Window clipping for fixed color
    • +
    +
    +
      +
    • The following are implemented in the new graphics engine 16bit:
    • +
    • - All of old graphics engine 16bit
    • +
    • - Combination of line by line and tile based graphics engine
    • +
    • - High resolution mode 7
    • +
    • - High resolution 16x16 tiles for mode 5
    • +
    • - Full 15bit color transparencies (instead of the previous 13bit speed hack) for improved picture quality (MMX compatible CPUs only)
    • +
    +
    +
      +
    • The following are present in sound:
    • +
    • - 16bit digital stereo sound
    • +
    • - SPC700 Sound CPU
    • +
    • - DSP Sound Processor +
        +
      • - Echo effects
      • +
      • - FIR filter
      • +
      • - ADSR volume effects
      • +
      • - GAIN volume effects
      • +
      • - Noise effects
      • +
      • - Pitch modulation
      • +
      +
    • +
    +
    +
      +
    • The following are extra features emulated:
    • +
    • - Super NES Mouse
    • +
    • - Super NES Super Scope
    • +
    • - Nintendo Super System (except the menu system)
    • +
    • - SuperFX chip (still has a bug or 2 left)
    • +
    • - MultiTap (5 player support)
    • +
    • - DSP-1 and DSP-2 chips
    • +
    • - SA-1 chip (not complete)
    • +
    • - OBC1 chip (still may have bugs)
    • +
    • - S-DD1 chip
    • +
    • - BS Sattelaview (not complete)
    • +
    • - Seta 10 (ST010) chip
    • +
    • - Sufami Turbo (not complete)
    • +
    • - SD Gundam G-Next and Same Game expansion packs
    • +
    • - SPC7110 chip (via decompression packs)
    • +
    +
    +
      +
    • The following are the features present in ZSNES:
    • +
    • - Game state save (F2=Save, F3=Select, F4=Load). Warning: A state file takes 260 kbytes of HD space!
    • +
    • - Movie recording
    • +
    • - Game Genie, Pro Action Replay, and GoldFinger cheat code support
    • +
    • - Auto frame rate to give you constant Super Nintendo speed up to 9 frame skips
    • +
    • - Configuration file support (zsnesw.cfg)
    • +
    • - 5 player support w/ joystick and gamepad support
    • +
    • - Netplay
    • +
    +
    +
      +
    • The following features are missing:
    • +
    • - Pseudo 512 SNES horizontal resolution (haven't seen any game that uses them yet)
    • +
    • - Some modes in offset per tile mode
    • +
    • - Some direct color modes (haven't seen any game that uses them yet)
    • +
    • - True SPC7110 decompression
    • +
    +
    +
      +
    • What will not run (or not play properly):
    • +
    • - Some SuperFX games
    • +
    • - Some BS Sattelaview games
    • +
    • - Games with unknown co-processors
    • +
    • - Games that don't have a valid header
    • +
    • - Games that hit a severe bug in the 65816/PPU/SPC700/DSP routines
    • +
    • - Games that require special timing
    • +
    + +
    + +

    ZSNES Default Keys

    + +
    +
      +
    • Here are the default keys while running the emulator. They can be changed through the GUI, except for F1 and Esc:
    • +
    • Disable Backgrounds 1, 2, 3, and 4 -- 1, 2, 3, 4
    • +
    • Disable Sprites -- 5
    • +
    • Enable All Backgrounds and Sprites -- 6
    • +
    • Enable SNES Mouse or Super Scope -- 7
    • +
    • Enable New Graphics Engine -- 8
    • +
    • Disable Windowing -- 9
    • +
    • Disable Offset Mode -- 0
    • +
    • Fast Forward Key -- ~
    • +
    • F1 Menu -- F1
    • +
    • Save State -- F2
    • +
    • Switch State -- F3
    • +
    • Load State -- F4
    • +
    • Disable Sound Channel -- F5 - F12
    • +
    • Quit -- Esc
    • +
    +
    +
      +
    • Here are the default keys for the game play (unless modified through the GUI):
    • +
    • Player 1: +
        +
      • Directions Up, Down, Left, and Right -- Cursor Keys
      • +
      • Buttons A, B, X, and Y -- Keys X, Z, S, and A
      • +
      • Buttons L and R -- Keys D and C
      • +
      • Buttons Start and Select -- Enter and Right Shift
      • +
      +
    • Player 2: +
        +
      • Directions Up, Down, Left, and Right -- Keys K, M, N, and ,
      • +
      • Buttons A, B, X, and Y -- Keys D, X, S, Z
      • +
      • Buttons L and R -- Keys F and c
      • +
      • Buttons Start and Select -- Left Ctrl and Left Alt
      • + +
      + +
    + +

    F1 Menu

    + +
    + +
      +
    • Save Snapshot - Saves a snapshot as either .pcx (8bit), .bmp (16bit), or .png (32bit ARGB).
    • +
    • Show/Hide FPS - Shows or hides the frame per second display which appears on the bottom-left corner of the screen. This can only be enabled in auto frame rate mode.
    • +
    • Save SPC Data - Selecting this will search for the beginning of the next song and save the data into a .spc file, which saves it similarly as a .srm file. To capture a song, it is best recommended to initiate this feature approximately 2 seconds before the next song starts. This does have potential to fail though, so don't expect it to work all the time.
    • +
    • Sound Buffer Dump - This dumps the sound buffer in ZSNES and also filters out any unoccupied space. The sound buffer contains decompressed samples which are written to when ZSNES plays/decodes a sample from sound memory. Because of the way ZSNES buffers the sound data, this can produce inaccurate results.
    • +
    • Snapshot/Increment Frame - Same as snapshot, but it returns to the F1 menu after a couple of frames. Useful for making animations.
    • +
    • Increment Frame Only - Does the same as above, except no snapshot is taken.
    • +
    • Move This Window - Moves the F1 menu to a different location.
    • +
    • Screen Shot Format - Chooses what format to use for screen shots. Choices are PCX (available only in 8bit color depth mode), BMP (bitmap) and PNG (Portable Network Graphic).
    • +
    + +
    + +

    Configuration File

    + +
    + Almost everything in zsnesw.cfg should now be editable through the GUI. The GUI also has a few more options that are not found in the configuration file, such as more graphic pack directory configurations.
    + +
    + +

    Cheat Codes

    + +
    + Currently, ZSNES supports Game Genie, Pro Action Replay, and GoldFinger codes.
    +
    +
      +
    • Here are the steps to get the codes working:
    • +
    • 1.) Load the ROM which you want to patch.
    • +
    • 2.) Exit to the GUI and enter the code of your choice in the cheat menu.
    • +
    • 3.) After that, you may have to reset the game to get the cheat code to work. Sometimes, it is not necessary. You also may have to click on the FIX button.

    • +
    • NOTE: Some cheat codes are meant to be for different versions of the game. If a cheat code doesn't work and there is one for both Game Genie and Pro Action Replay, try them both.
    • +
    + +
    + +

    Extra Features

    + +
    + To enable SNES Mouse, press 7 once for 1st player and twice for 2nd player.
    + To enable SNES Super Scope, press 7 three times.
    + To disable either one, either press 6 or press 7 until you see a disable message onscreen.
    +
    +
      +
    • Here are the controls for the Super Scope:
    • +
    • Fire -- Left mouse button
    • +
    • Cursor Mode Button -- Right mouse button
    • +
    • Pause -- Backspace key on keyboard
    • +
    • Enable/Disable Autofire -- =/+ key on keyboard
    • +
    +
    + ZSNES auto-detects the SuperFX emulation from the header and enables it when found. Also, take note that the SuperFX is an additional 10Mhz(Ver1) or 20Mhz(Ver2) chip which also has to be emulated with the SNES; it will most likely produce a very noticeable slow down in emulation if you don't have a fast computer.
    +
    + Sometimes, the MultiTap isn't compatible with some games. If that happens, disable MultiTap by going to Config-->Add-Ons and choosing None. You may also need to go to Config-->Options, and enable "Use Player 3/4 as Player 1/2". You could also add an NSRT header to your ROM.
    +
    + IPS patcher:
    + Rename your .ips file to the ROM filename with the .ips extension (eg. If your ROM is SD3.smc and your ips is SD3V05.ips, rename SD3V05.ips to SD3.ips) and ZSNES will patch the ROM in realtime without modifying the ROM file's contents. Zipped ROMs are patched according to the unzipped name (eg. Seiken3.zip containing SD3.smc is patched by SD3.ips, not Seiken3.ips). You can also use .ips files that are inside .zip files. You can disable IPS patching by going to Config-->Options and unchecking Enable Auto-Patch.
    + +
    + +

    Bugs

    + +
    +
      +
    • - 65816 lacks correct timing. Although ZSNES bases the timing on a variable cycle/instruction, it does not deduct correct values (such as 16bit instructions should deduct 1 more cycle than 8bit instructions). 100% cycles of ZSNES isn't 100% cycles of a SNES because of that. This means that a lot of games either won't run or will produce horrible displays. Sometimes, adjusting the % of execution can fix those problems. This is all due to inaccurate documentation used when the ZSNES 65816 core was written. There are no plans on re-writing the 65816 timing yet.
    • +
    • - Some games sometimes tend to not display things properly because of graphic features that aren't implemented yet.
    • +
    • - The Sound DSP chip still has its bugs (not many though). Additionally, no one knows the exact timing of the SPC700 chip.
    • +
    + +
    + +

    Contact Information

    + +
    + The ZSNES homepage is located at : http://www.zsnes.com
    +
    + If you have any questions about ZSNES, and you have read through this whole documentation to make sure the answer isn't here, then you can post your question at the ZSNES board. +

    + Remember - This board should be mainly used for ZSNES related discussion.
    + ROM requests (or asking for games, a link to a ROM site, or where to find ROMs/games) are forbidden!!! Be sure to also read the RULES!
    +
    + If you wish to contact the authors, you may contact them through:

    + pagefault AT zsnes DOT com
    + _demo_ AT zsnes DOT com
    + n-a-c-h AT users.sf DOT net

    + Remember - No ROM requests please! And don't send any files without permission!
    +
    + Try not to send a copy of your e-mail to all of us since that will just waste our time. Also, don't expect to get a reply since we are often busy.
    + +
    + +

    Credits

    + +
    + ZSNES Windows uses Visual C++ 6, NASM .98, DirectX 8, GNU Make, and UPX to compile, link, compress, and execute. Thanks for the work put into these programs.
    +
    +
      +
    • Special Thanks to:
    • +
    • - wnelson; without him, ZSNES would have never existed!
    • +
    • - Y0SHi for for his excellent SNES docs, his help, and his excellent support!
    • +
    • - Ashley, Barubary, CyberWarriorX, DCX, DooMStalK, Fanwen, GreenImp, Hucard, Kaiden, PolestaR, Stalphos Knight, Star Creator, TeleKawaru, the people in #ZSNES efnet, and the regulars of the ZSNES message board!
    • +
    • - All of our beta testers for being a great help!
    • +
    • - The MAME team; info on 256x256x256 scanlines mode is from the MAME source!
    • +
    +
    +
      +
    • Also Thanks to:
    • +
    • - The_Teach of Snes9x for some great info and the nice chats!
    • +
    • - Trepalium of Snes9x for some great info and help!
    • +
    • - Gary of Snes9x and Steve Snake of Kega for being the source of info for sound decompression!
    • +
    • - Gary of Snes9x for being the source of info for TCall/PCall and also for lots of help!
    • +
    • - MrGrim for his great support!
    • +
    • - Crono for info on Sound Blaster programming, surround sound, sound interpolation, and other sound stuff!
    • +
    • - Aquis for the ZSNES logo!
    • +
    • - Alucard for helping us with an issue in the 65816!
    • +
    • - Vertigo for making a compatibility list!
    • +
    • - EFX for being a great supporter and also giving a lot of help and stuff!
    • +
    • - Zophar for being a great supporter and also maintaining the mirror site!
    • +
    • - Chris Hickman for redesigning the ZSNES web page!
    • +
    • - CSoft for hosting our web page!
    • +
    • - Marius Fodor for the code for Vsync, Sidewinder, Gamepad Pro, and some optimization info!
    • +
    • - Sardu for some great info and help!
    • +
    • - Lord ESNES for some great help!
    • +
    • - Robert Grubbs for the Sidewinder info!
    • +
    • - Nerlaska for some useful info on optimizing and also for some help!
    • +
    • - Diskdude for writing SNESkart which we used for the info on cheat codes!
    • +
    • - DarkForce for some great help!
    • +
    • - Pharos for some keyboard coding help!
    • +
    • - Ivar and Gary of the Snes9x team for all their great help, which includes their SuperFX info and code, DSP-1 info, info on interleave formats (HiROM and SuperFX), offset per tile mode, FIR filter, and some insights on SPC700 and HDMA bugs!
    • +
    • - WolfWings ShadowFlight for help on several issues of NASM!
    • +
    • - Wildfire for some help!
    • +
    • - A CoolMan for the algorithm for EAGLE!
    • +
    • - Neill Corlett for some info on the .ips format and also helping out a lot on improving the sound engine!
    • +
    • - Kreed (derek-liauw _at_ usa.net) for the 2xSaI and Super Eagle source codes!
    • +
    • - Markus Oberhumer and Laszlo Molnar for the UPX compression utility.
    • +
    • - Jean-loup Gailly, Mark Adler, and Gilles Vollant for the unzip routines!
    • +
    • - kode54 for the low pass filter routines!
    • +
    • - Andy Goth for some help on the design of the key combination engine!
    • +
    • - Yamaha of XYZZ (Scott Scriven) for his water effect code.
    • +
    • - ipher for his contributions and for compiling and releasing CVS builds!
    • +
    • - grinvader for his dedication and for contributing some small code changes!
    • +
    • - All those people who contributed by either updating the docs, helping us, supporting us, or reporting bugs!
    • +
    +
    + Also thanks to all those whom we forgot!
    +
    + Also, good luck to all those who are writing emulators, especially those who are writing SNES emulators, including Snes9x, SNEeSe, and Super Sleuth!
    +
    +
    + + + +
    + ZSNES Documentation v2.0 +
    + + + \ No newline at end of file diff --git a/zsnes/docs/Windows/style.css b/zsnes/docs/Windows/style.css index c00ac197..d4b1048b 100644 --- a/zsnes/docs/Windows/style.css +++ b/zsnes/docs/Windows/style.css @@ -1,141 +1,140 @@ -body{ - background-color:#ffffff; - font:normal 11px Verdana, Sans-Serif; - color:#000000; - margin:0px; -} - -img { - border-width:0px; -} - -.PHeader{ - background-color:#C8CFD8; - color:#000000; - padding:3px; -} -.PSubHeader{ - background-color:#A4A9B0; - color:#000000; - padding:3px; - font:bold 11px Verdana, Sans-Serif; - text-align:center; -} - -a:link, a:active, a:visited{ - background-color:transparent; - text-decoration:underline; - color:#203040; -} -a:hover{ - background-color:#d0d0d0; - text-decoration:underline; - color:#506070; -} - -.MMenu{ - width:200px; - padding:10px; - padding-top:0px; - padding-right:0px; - vertical-align:top; -} -.MBody{ - padding:10px; - padding-top:0px; - vertical-align:top; -} - -.TBox{ - background-color:#C8CFD8; - border:solid 1px #404040; - color:#000000; -} -.TBoxHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding:0px; - padding-left:4px; - background-image: url( '../images/corner.png' ); - background-position:top right; - background-repeat: no-repeat; - height:25px; -} -.TBoxSubHead{ - background-color:#A4A9B0; - color:#000000; - font:bold 14px Arial, Sans-Serif; - padding-left: 5px; -} -.TBoxText{ - background-color:#C8CFD8; - color:#000000; - font:normal 13px Verdana, Sans-Serif; - padding:5px; -} -.TBoxFoot{ - background-color:#A4A9B0; - color:#000000; - font:bold 12px Verdana, Sans-Serif; - padding:4px; -} - -.FListing{ - background-color:#000000; - color:#ffffff; -} -.FListing td{ - background-color:#e0e0e0; - color:#000000; - width: 30%; - text-align:center; -} -.FListing td.FLabel{ - background-color:#000000; - color:#ffffff; - font:bold 11px Verdana, Sans-Serif; - width: 10%; - text-align:left; -} -.FListing th{ - background-color:#405060; - color:#ffffff; - text-align:center; -} - .small{ - font-size:11px; -} -.big{ - font-size:16px; -} - -p{ - text-indent: 12px; -} - -input, textarea, select { - background-color:#ffffff; - color:#000000; - border:solid 1px #000000; - font:normal 12px Verdana, Sans-Serif; - padding:3px; -} - -.indent_list{ - margin-top: 0px; - margin-bottom: 0px; - list-style-type:none; - padding-left:24px; -} - -.indent_list ul, li{ - list-style-type:none; - margin-left: -12px; - /*padding-left: -12px;*/ - text-indent: -12px; -} - -abbr { -cursor: help; +a:link, a:active, a:visited { + background-color: transparent; + text-decoration: underline; + color: #203040; +} +a:hover { + background-color: #D0D0D0; + text-decoration: underline; + color: #506070; +} + +#zsnes-documentation { + margin: 0px; + background-color: #FFFFFF; + font: normal 11px Verdana, Sans-Serif; +} + +#header { + padding: 3px; + background-color: #C8CFD8; +} +#header h1 { + float: left; + margin: 0px; +} +#header h2 { + padding: 83px 0px 0px 0px; + margin: 0px; +} +#header_oslogo { + float: right; +} + +#header_nav { + background-color: #A4A9B0; + padding: 3px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; + border-bottom: solid 1px #404040; +} + +#navigation { + float: left; + width: 192px; + margin: 10px; + padding: 1px 1px 3px 1px; + background-color: #C8CFD8; + border: solid 1px #404040; + font: Normal 13px Verdana, Sans-Serif; +} +#navigation h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url( 'images/corner.png' ); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#navigation ul { + list-style-type: none; + margin: 0px 0px 0px -20px; + padding: 0px 4px 0px 41px; +} + +#content { + margin: 10px 10px 10px 216px; + padding: 1px; + background-color: #C8CFD8; + border: solid 1px #404040; +} +#content h1 { + background-color: #A4A9B0; + margin: 0px; + padding: 4px 0px 0px 4px; + font: Bold 14px Arial, Sans-Serif; + background-image: url('images/corner.png'); + background-position:top right; + background-repeat: no-repeat; + height: 22px; +} +#content h2 { + background-color: #A4A9B0; + margin: 0px; + padding: 3px; + font: Bold 14px Arial, Sans-Serif; +} +.content_body { + margin: 0px; + padding: 4px; + font: Normal 13px Verdana, Sans-Serif; +} +.content_body ul { + list-style-type: none; + margin: 0px 0px 0px -24px; + text-indent: -12px; + padding: 0px 4px 0px 52px; +} + +#footer { + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-weight: bold; +} + +#version { + margin-top: 8px; + margin-left: auto; + margin-right: auto; + display: block; + text-align: center; + font-size: 8px; + color: #BBBBBB; +} + +.list_head { + padding: 3px; + margin: 0px 0px 0px -20px; + font-weight: bold; +} + +.faq_question { + margin: 0px 0px 0px -16px; + font-weight: bold; +} + +.faq_answer { + margin: 0px 0px 0px -16px; +} + +.previous_version_number { + font-weight: bold; + text-decoration: underline; } \ No newline at end of file