Snes9x : Emulateur Super Nintendo Entertainment 
===============================================
Les fichiers inclus dans l'archive Snes9x sont :
Snes9x.exe, readme.txt, license.txt fmod.dll faqs.txt changes.txt

Version 1.51, 1er Mai 2007
==========================

Page Web : http://www.snes9x.com

Contenus :
==========

Changements depuis la dernire version
Introduction
Ce dont vous avez besoin
Comment dmarrer
Les contrles du clavier
Le support du Joystick
La sauvegarde d'un jeu
Le support rseau
Le support des films
Le support des cheats
Ce qui est mul ?
Ce qui ne l'est pas ?
Le Super FX
Le S-DD1 et le SPC7110
Le S-RTC
Le SA-1
Le C4
Problmes avec les ROMS
Problmes de sons
Convertir les images ROMs
Acclrer l'mulation
Obtenir de l'aide
Crdits

Changements depuis la dernire version :
========================================

Consultez le fichier changes.txt file pour voir l'historique complet des changements de Snes9x.

Introduction :
==============

Snes9x est un mulateur gratuit Super Nintendo Entertainment System (SNES).
Il vous permets de jouer  la plupart des jeux cres pour les systmes de jeux SNES
et la Super Famicom de Nintendo sur votre PC ou votre station de travail. De trs bons jeux
ont seulement t ralis au Japon.



"Pourquoi muler la SNES ?"

En fait, il peut y avoir de nombreuses raisons. La raison principale est  but nostalgique.
Il est assez difficile de trouver une console et des jeux SNES de nos jours. Nombreux parmi nous,
ne possdent plus leur bien aim console, mais possdent toujours les jeux originaux. Sans aucune  
possibilit de pouvoir les rutilisez, c'est ainsi que nous nous tournons maintenant vers les mulateurs. 
Hormis cela, il ya de bonnes raisons d'utiliser un mulateur au lieu de ressortir votre console.

Les avantages sont les suivant :
- La possibilit de sauvegarder  n'importe quel moment du jeu, en dpit de comment le jeu a t programme.
  C'est trs pratique quand vous ne souhaitez rejouer encore et encore le mme niveau.
- Les priphriques intgrs (les multi-taps, les super scopes, les priphriques de triches.
- La possibilit de ripper (rcuprer) les sprites et la musique pour soi.
- Plus facile  organiser et pas de stockage de cartouches qui peuvent effrayer les femmes qui ne sont pas nerds.
- Les filtres peuvent tre utiliss pour amliorer les graphismes des vieux jeux.

Et voici maintenant les inconvnients qui vont avec :
- Si votre PC est assez ancien (pr Pentium 2), vous ne pourrez pas en profiter convenablement.
- Certains jeux ne sont pas muls (cela concerne encore une trs petite minorit).
- L'mulateur peut tre difficile  configurer pour les nouveaux utilisateurs (veuillez consulter la section "Comment dmarr
  se trouvant dans un des paragraphes suivant).


Ce dont vous avez besoin :
==========================

Une machine avec windows 9x/2k
DirectX 6.1b ou suprieur
Un processeur 133mhz MINIMUM (1ghz+ recommand pour les meilleurs paramtres)
16MB ram BARE MINIMUM (128megs+ recommand pour les packs graphiques des jeux)
N'importe quelle carte son Directsound

Certains jeux utilisent du matriel supplmentaires qui NECESSITERONT un PC plus rapide. Encore une fois,
les spcifications lists au dessus sont vraiment les MINIMUM pour utiliser snes9x dans des conditions jouables.
La plupart des personnes les trouveront mme pas jouable. Il est recommand d'avoir un PC assez rcent avec un
processeur  600mhz Pentium 3/Celeron/Duron/Athlon pour de meilleurs rsultats. Un processeur d'1 Ghz est recommand
pour ceux qui souhaitent en profiter un maximum. De plus, Il vous faut 64MB de RAM, plus de RAM permettra de jouer 
 certains jeux utilisant les packs graphiques.


Logiciel :
----------

Les images des ROMS (jeux) SNES sont au format *.smc, *.sfc, *.fig ou *.1, *.2, ou sf32xxxa,
sf32xxxb, etc...

Des images ROMS fait maison peuvent tre tlcharg sur le site http://www.zophar.com. Pour trouver
des jeux commerciaux, vous pouvez essayer un moteur de recherche ou autre mthode de recherche.
Veuillez noter, qu'il est illgale dans la plupart des pays d'avoir des images ROMS de jeux sans tre le
propritaire de la cartouche ROM SNES original.

Comment dmarr :
=================

Lancer Snes9x en utilisant l'explorateur de Windows pour localiser le rpertoire o vous avez dzipp 
les fichiers snes9x.exe et fmod.dll. Double cliquez sur l'excutable snes9x.exe. Vous pouvez crer un raccourci vers 
Snes9x et le mettre sur le bureau.

Le chargement des jeux :
------------------------

Utilisez le menu "Ouvrir"  partir du menu "Fichier" pour ouvrir la fentre de chargement des ROMs. Cela vous permettra
de naviguer sur votre ordinateur pour localiser le rpertoire ou vous avez stocks vos jeux SNES. Cliquez une fois et pressez
"Charger" pour charger et dmarrer le jeu.

Les images ROMs SNES existent en diffrent formats. En gnral, vous jouerez avec des ROMS encore zipps. Snes9x supporte les ROMs
zipps du moment qu'il n'y en a qu'une seule par fichier zip. Les autres formats sont lists ci dessus dans la section "Logiciel".

Systme de couleur d'un jeu :
-----------------------------

Snes9x affiches les informations d'une ROM lorsqu'une ROM est charg. Grce  ce systme de couleur,
vous savez si la ROM est jouable ou pas ou si elle est altr ou corrompu.

blanc   la ROM est une trs bonne copie.
vert    la ROM est en mode 1 interleaved.
orange  la ROM est en mode 2 interleaved.
aqua    la ROM est le Game Doctor 24M interleaved.
jaune   la ROM a probablement tait altr. Soit c'est une traduction, une ROM du Domaine Publique,
        une ROM hack, ou tout simplement une mauvaise ROM. Cela peut aussi tre une ROM overdump.
rouge   la ROM est compltement hack et une version de qualit doit exister.
        Certains utilitaires de ROM tel que NSRT peuvent aussi corriger ces ROMs.

Lorsque vous demandez de l'aide sur les forums Snes9x, veuillez lister la couleur et le CRC32
qui est affich. Ceci aidera  dterminer d'ou vient le problme.

Ces couleurs NE SIGNIFIE PAS si un jeu est jouable ou pas. Cela sert juste de point de rfrence
afin de dterminer d'ou peut venir ou pas le problme. Si le nom est affich en rouge, veuillez
rechercher sur Internet un programme appel NSRT (Pour le moment, il peut tre trouv sur
http://nsrt.edgeemu.com). Ce programme pourra aider  rsoudre le problme. La plupart des frquents
problmes avec les jeux qui ne fonctionnent pas c'est soit qu'ils sont corrompues, soit c'est une mauvaise
copie et de fait le jeu devra tre retlcharg.

Emulation du Joypad SNES :
--------------------------

La dfinition des touches pour le joypad 1 est la suivante :

'Flche haut'           Direction Haut
'Flche bas'            Direction Bas
'Flche gauche'         Direction Gauche
'Flche Droite'         Direction Droite
'a'                     Bouton TL (Gchette Gauche)
's'                     Bouton TR (Gchette Droite)
'd'                     Bouton X
'x'                     Bouton Y
'v'                     Bouton A
'c'                     Bouton B
'space'                 Bouton Start
'enter'                 Bouton Select

Sur la console SNES, vous avez la possibilit de brancher 5 Joypads via un adaptateur
spcial. Avoir au moins 5 personnes autour du clavier ne serait pas drle, et cependant,
tous les claviers possdent une limite sur le nombre de touches qui peuvent tre presss
simultanment ; il est bien mieux d'utiliser plusieurs joysticks ou le rseau.

Support du Joystick :
=====================

Configurer et calibrer votre Joystick/joypad --> Panneau de Configuration --> Contrleur de Jeu AVANT 
de lancer Snes9x, ensuite dans Snes9X allez sur : Contrleur --> Configuration du Contrleur afin de dfinir
les boutons du Joypad SNES  muler. Consultez la section "Configuration du Clavier/Joystick' ci-dessous pour
plus de dtails.

Configuration du Clavier/Joystick :
-----------------------------------

Pour le joystick consultez le section "Support du Joystick" ci dessus.
Slectionnez le Joypad SNES que vous souhaitez utiliser en utilisant la bote combo (#1  #5). Soyez sr, 
de cliquer sur la bote "enabled" se trouvant  ct du contrleur sinon snes9x ne reconnatra pas le 
contrleur comme tant connect. Cliquez sur la bote intitul "UP" puis pressez une touche du clavier
ou du joystick.


Aprs avoir press la touche/bouton pour "UP", vous irez directement sur la seconde bote intitul
"RIGHT", pressez une touche du clavier ou le bouton d'un joystick pour configurer.

Les utilisateurs de clavier qui peuvent avoir des problmes lors de la pression de plusieurs touches 
en mme temps doivent cocher la case "Permet Gau+Droi/Haut+Bas".

Si vous souhaitez lancer jouer avec un jeu qui utilise le multitap, vous devez d'abord l'activer dans le 
menu Contrleur --> Utiliser le multitap (8 joueurs). Les contrleurs #3, #4, et #5 ne seront pas actif tant que 
le multitap n'est pas activ.

Contrleurs Alternatifs :
=========================

Les priphriques comme la souris SNES, le Super Scope, les Justifiers, le Multitap sont dsactiv
par dfaut, mais vous pouvez les activer de la manire suivante :

Premirement, charger votre jeu. Ensuite slectionnez, le contrleur que vous souhaitez utiliser en allant sur le 
menu Contrleur. Le contrleur est aussi slectionnable en pressant la touche "7", en rappuyant dessus, vous
changer de contrleur.

Si vous utilisez l'utilitaire NSRT pour ajouter des informations dans l'en-tte des ROMS, Snes9x dtectera 
automatiquement cette information et choisira la meilleure configuration du contrleur pour vous
quand le jeu sera lanc. Les choix incompatibles seront aussi gris dans le menu, mais vous pouvez malgr tout
les changer en pressant la touche "7".



Contrles du Clavier supplmentaires :
======================================

Pendant que l'mulateur est lanc :

'Escape'       Affiche/Cache la barre menu.

'Pause'        Pause ou dpause l'mulateur.

Alt+'Enter'    Bascule du mode Plein Ecran vers le mode Fentr.

'Tab'          Mode Turbo (avance rapide) - pour passez des longues intros.

'F12'          Prendre une capture d'cran.

'0'            Bascule l'mulation du du H-DMAv sur on/off.

'1'            Bascule l'arrire plan 1 sur on/off.

'2'            Bascule l'arrire plan 2 sur on/off.

'3'            Bascule l'arrire plan 3 sur on/off.

'4'            Bascule l'arrire plan 4 sur on/off.

'5'            Bascule les sprites sur on/off.

'6'            Toggle swapping of joy-pad one and two around

'7'            Rotation entre l'mulation du Multi-player 5, la souris sur le port 1,
               la souris sur le port 2 et le SuperScope. (vous devez d'abord activer l'option
               dans le menu).

'8'            Bascule l'mulation des effets graphiques de la fentre sur on/off.

'9'            Bascule les effets de transparence sur on & off  uniquement si
               le mode de couleur 16-bit ou suprieur est slectionn.

'`'            Bouton Turbo du Superscope.

'~'            Bouton Pause du Superscope.

Shift+'F1-F9 ' Sauvegarde un fichier jeu gel.

'F1-F9'        Charge un fichier jeu gel, et le restore sur la position exact de votre dernire sauvegarde.

'-'            Augmente le temps d'image mul de 1ms - ralentit le jeu. (le saut
	       d'image auto doit tre activ).

'+'            Diminue le temps d'image mul de 1ms - acclre le jeu. (le saut
	       d'image auto doit tre activ).

'\'            Met le jeu en Pause.

Shift+'insert' Bascule le turbo sur le bouton 'L'. Note : basculent tous les contrleurs

Shift+'delete' Bascule le turbo sur le bouton 'R'...

Shift+'['      Bascule le turbo sur le bouton 'select'...

Shift+']'      Bascule le turbo sur le bouton 'start'...

Shift+'home'   Bascule le turbo sur le bouton 'Y'...

Shift+'pageup' Bascule le turbo sur le bouton 'X'...

Shift+'end'     Bascule le turbo sur le bouton 'B'...

Shift+'pagedown' Bascule le turbo sur le bouton 'A'...


Shift+'+'      Increase frame rendering skip rate, making the screen
               updates more jerky but speeding up the game.

Shift+'-'      Decrease frame rendering skip rate, making the game
               update more smoothly, but potentially slowing down the
               game. Repeatedly pressing the key will eventually
               switch to auto-frame skip rate where the rate is
               dynamically adjusted to keep a constant game play
               speed.

','            Bascule sur l'affichage du contrleur, ainsi vous pouvez voir quels boutons SNES sont enregistrs
               lorsqu'ils sont presss.

'.'            Bascule l'affichage de l'image du film sur on/off. Le film doit tre ouvert.

Shift+'8'      Bascule sur le statut du film en "lecture seule". Le film doit tre ouvert.

Ctrl+Shift+'R' Redmarre le jeu.


Allez sur Contrleur --> Personnalise les raccourcis... pour les configurer et plus encore.


La sauvegarde de jeu :
======================

De nombreux jeux SNES sont trs long  finir, ainsi il est possible de sauvegarder
vos progrs dans de la mmoire RAM insr  l'intrieur du pack jeu ; le contenu de
la RAM est conserv dans une batterie lorsque la SNES est arrt ou que le jeu est
retir. Snes9x simule ceci en sauvegardant les contenus de la RAM dans un fichier (*.srm)
lorsque vous chargez un nouveau jeu ou que vous quittiez Snes9x. Le fichier est 
ensuite automatiquement recharg la prochaine fois que vous jouerez avec le mme jeu.

Snes9x fournis aussi les fichiers gels ; ce sont des fichiers qui sauvegardent la position 
d'un jeu ou vous voulez, pas seulement par les points de sauvegardes choisies par les 
dveloppeurs du jeu - c'est trs pratique de sauvegard votre jeu avant qu'un ppin n'arrive !
Snes9x fournis 9 emplacements de sauvegarde ; pendant un jeu, pressez Shift + F1 jusqu' F9 pour
sauvegarder un jeu, et pressez seulement F1  F9 pour le recharger plus tard.

Les fichiers de jeux gels et les fichiers de sauvegarde Save-RAM (S-RAM) sont normallement crit
vers et lu  partir de du dossier "Saves" ou se trouve le fichier snes9x.exe, mais ceci n'est pas
souhaitable ou possible, particulirement si c'est un CD-ROM, lequel est bien sr en "lecture seule" !
Vous pouvez changer le dossier ou Snes9x sauvegarde et charge la S-RAM et les fichiers gels en passant par 
le menu Options --> Paramtres.

Snes9x utilise son propre format pour les fichiers gels, comme le fait ZSNES, mais Snes9x
peut aussi charger les fichiers gels au format ZSNES. Copier simplement les fichiers gels ZSNES dans
votre rpertoire de sauvegarde et, si le format natif du fichier gel Snes9x n'existe pas
(<Nom de l'image ROM>.00X o X est un chiffre), Snes9x essayera de charger le fichier gel ZSNES
correspondant (<Nom de l'image ROM>.zsX o X est un 't' ou un chiffre). Lorsque vous gelez une position aprs avoir
charg une sauvegarde provenant de ZSNES, Snes9x le sauvegardera dans son format natif.

Support du Rseau :
===================

Le support du rseau devrait tre considr en beta. Le support du rseau permet
jusqu' 5 joueurs de se mettre devant un PC diffrent afin de jouer 
simultanment, ou simplement regarder les autres jouer. Tous les ordinateurs
doivent tre connect  un rseau qui autorise le trafic TCP/IP ; ceci inclus
un rseau Ethernet local, une connexion modem vers une autre machine, un cble de 
connexion direct Windows, ou , si vous tes chanceux et possdez de pings bas, Internet.

Il est plus simple lors du jeu en rseau, de jouer ne mode fentr. En effet, 
le rseau affiche des informations dans la barre de titre de la fentre, et il peut 
tre utile de configurer un systme de chat sparer ce qui permettra  chaque joueur de
de discuter sur le choix d'un jeu par exemple.

Une machine devra agir en tant que serveur avec les autres joueurs (session client) qui se
connecteront dessus. Le joueur "matre", le joueur 1, utilise la machine serveur ; le matre
est le dcisionnaire final du jeu  lancer. La machine serveur doit tre la machine la plus rapide
sur la connexion la plus rapide du groupe, ceci tant d au fait qu'elle est plus sollicit.

Charger un jeu, ensuite slectionnez l'option Rseau --> Agir en tant que serveur pour devenir
un serveur Rseau ; le 'rseau', sous quelque forme qu'il soit a besoin d'tre initialis. Ensuite,
patientez en attendant que les autres joueurs se connectent...

Les clients se connectent au serveur en utilisant Rseau --> Connexion au serveur. Tapez l'adresse
IP ou le nom d'hte de la machine qui lance la session serveur de Snes9x et pressez Ok. Le premier client
 distance  se connecter devient le joueur 2, et ainsi de suite. 

Si l'option Rseau --> Envoyer l'image ROM au client est activ, il enverra au client, une copie du jeu
qui est lanc sur le serveur ; n'activez pas cette option sur un rseau lent  l'envoi de 4Mbytes+  plusieurs
clients prendra beaucoup de temps dans le cadre de l'utilisation d'un modem ! Si l'option n'est pas
slectionn , le serveur demandera au client de charger le bon en premier avec de rejoindre une partie.

Une fois que le client a une copie du jeu qui est lanc sur le serveur, le serveur enverra soit
les donnes de la S-RAM et redmarrera les jeux de tous les joueurs si l'option Rseau -->
Synchro en utilisant le redmarrage du jeu ; ou il enverra un fichier gel pour que tous les 
joueurs dbutent au mme endroit.

Si le joueur Matre charge un jeu diffrent, le serveur enverra automatiquement aux clients  distances
une copie du jeu ou demandera aux joueurs qu'ils chargent le mme jeu.
Si le joueur Matre charge un fichier gel, le serveur l'enverra automatique aux autres clients 
distances.

Les sessions client doit toujours tre en rapport avec le serveur - si ce n'est pas le cas,
soit la machine est trop lente, soit elle est occup et dans ce cas les jeux ne seront plus
synchroniss et il sera impossible de jouer en multi-joueur...

...Pour tre sr que cela ne se produise pas, ne dplacer la fentre Snes9x inutilement
et n'utilisez pas CTRL+ALT+DEL pour afficher le gestionnaire de tches. Arrtez aussi toutes les applications
inutiles ainsi que les tches en arrires plans. Une application aussi simple qu'un diteur de texte
peut des donnes non sauvegards sur le disque, ce qui utilise des ressources CPU qui ne sont pas 
attribus  Snes9x. Cela peut provoquer des sauts d'images ou un retard du son ; ce n'est pas un problme
pour la plupart des jeux, mais la srie des Bomberman (le meilleur jeu multi-joueur de la SNES) synchronise
le jeu avec le son. En dcochant l'option Son --> Paramtres --> Lecture de la Hauteur d'enveloppe du Volume,
cela peut rsoudre le problme.

Le support des Films :
======================

Cette fonctionnalit vous permet d'enregistrer vos actions pendant une partie. Ceci peut tre
utilis  but priv ou destin  tre partag afin de montrer vos exploits  vos amis. Ces fichiers 
peuvent tre sauvegard et partag avec facilit tant donn la taille relativement petite de ces fichiers.

Allez sur le menu Fichier --> Enregistrer un Film. Cliquez sur le bouton enregistrer. Vous pouvez
ainsi dcider le moment de l'enregistrement. Si vous souhaitez enregistrer ds le dbut du jeu, cliquez sur
Fichier --> Enregistrer un Film --> Enregistrer ds le redmarrage. Si vous souhaitez dbuter l'enregistrement
de l'endroit ou vous tes, allez sur Fichier --> Enregistrer un Film --> Enregistrer maintenant.
Si vous jouez tout seul, cochez uniquement le joypad 1, sinon plus vous cochez de contrleur, plus la taille
du fichier enregistr sera grande.

Pour lancer un film que vous avez dj enregistr, allez sur Fichier --> Lancer un Film et slectionnez 
le film de votre choix. Soyez sr, que le film qui a t enregistr, utilise la mme ROM.

Si vous avez commis une erreur pendant l'enregistrement d'un film, il existe une fonction de 
renregistrement. Crer une sauvegarde d'tat  n'importe quel moment de l'enregistrement. Si vous 
voulez renregistrer, charger simplement la sauvegarde d'tat, ce qui provoquera l'apparition 
d'un message "movie re-record". Loading any save state while a movie is playing or recording
will cause this to happen. If you want to watch a video with no chance to
accidentally alter it check "open as read only" when you go to play it.


Support des Cheats :
====================

Use the Cheat Code Entry and Editor dialog from the Cheats menu to enter
Game Genie or Pro-Action Reply cheat codes. Cheat codes allow you to,
surprisingly, cheat at games; they might give you more lives, infinite health,
enable special powers normally only activated when a special item is found,
etc.

Many existing Game Genie and Pro-Action Reply codes can be found at:
http://vgstrategies.about.com/library/ggn/bl_ggnsnes.htm?once=true&

Type in a Game Genie or Pro-Action Reply code into the "Enter Cheat Code" text
edit box and press <Return>. Be sure to include the '-' when typing in a Game
Genie code. You can then type in an optional short description as a reminder
to yourself of what function the cheat performs. Press <Return> again or click
the Add button to add the cheat to the list.

Note that the Add button remains insensitive while "Enter Cheat Code" text
edit box is empty or contains an invalid code. The cheat code is always
translated into an address and value pair and displayed in the cheat list as
such.

Beware of cheat codes designed for a ROM from a different region compared to
the one you are playing or for a different version of the ROM; the source of
the cheats should tell you which region and for which version of the game they
were designed for. If you use a code designed for a different region or version
of your game, the game might crash or do other weird things.

It is also possible to enter cheats as an address and value pair; some users
have requested this functionality. Type in the address into the "Address"
text edit box then type the value into the "Value" text edit box. The value is
normally entered in decimal, but if you prefix the value with a '$' or append
an 'h' then you can enter the value in hex.

Double-clicking on an cheat line from the list in the dialog or clicking on
the "En" column toggles an individual cheat on and off. All cheats can be
switched on and off by checking and unchecking the "Apply cheats" item from
the Cheat menu.

Selecting a cheat from the list causes its details to be filled into the text
edit boxes in the dialog box; the details can then be edited and the Change
button pressed to commit the edits. Note that the "Enter Cheat Code" text edit
box always redisplays the cheat code as a Pro-Action Replay code regardless of
whether you originally entered it as a Game Genie or Pro-Action Replay code.

Selecting a cheat from the list then pressing the Delete button permanently
removes that cheat.

Cheats are saved in .cht files stored in the Freeze File Directory and are
automatically loaded the next time a game with the same filename is loaded.
The format for the .cht files is the same format as used by the other excellent
SNES emulator, ZSNES.

Snes9X also allows new cheats to be found using the Search for New Cheats
dialog, again available from the Cheats menu. The easiest way to describe the
dialog is to walk through an example.

Cheat Search Example
--------------------
Lets give ourselves infinite health and lives on Ocean's Addams Family
platform game:

Load up the game; keep pressing the start button (Return key by default) to
skip past the title screens until you actually start playing the game. You'll
notice the game starts with 2 health hearts and 5 lives. Remember that
information, it will come in useful later.

Launch the cheat search dialog for the first time; Alt+A is its accelerator.
Press the Reset button just in case you've used the dialog before, leave the
Search Type and Data Size radio boxes at their default values and press OK.

Play the game for a while until you loose a life by just keep walking into
baddies, when the game restarts and the life counter displays 4, launch the
cheat search dialog again but this time press the Search button rather than
Reset. The number of items in the list will reduce, each line shows a memory
location, its current value and its previous value; what we're looking for is
the memory location where the game stores its life counter.

Look at address line 7E00AC, its current value is 4 and its previous value was
5. Didn't we start with 5 lives? Looks interesting...

Note that some games store the current life counter as displayed on the screen,
while others store current number of lives minus 1. Looks like Addams Family
stores the actual life count as displayed on the screen.

Just to make sure you've found the correct location, press OK on the dialog,
and play the game until you loose another life. Launch the search dialog again
after the life counter on screen has been updated and press the Search
button. Now there are even fewer items in the list, but 7E00AC is there again,
this time the current value is 3 and the previous value was 4. Looks very much
like we've found the correct location.

Now that we're happy we've found the correct location, click on the 7E00AC
address line in the list and then press the Add Cheat button. Another dialog,
Cheat Details, will be displayed. Type in a new value of say 5, this will be
number of lives that will be displayed by the lives counter. Don't be greedy;
some games display a junk life counter or might even crash if you enter a
value that's too high; Snes9X keeps the value constant anyway, so even if you
do loose a life and life counter goes down by one, less than 20ms later,
Snes9X resets the counter back to the value you chose!

If the memory location you add a cheat on proves to be wrong, just go to the
Cheat Code Editor dialog and delete the incorrect entry.

Now lets try and find the Addams Family health counter. While two hearts are
displayed on the screen, visit the cheat search dialog and press the Reset
button followed by OK. Play the game until you loose a heart by touching a
baddie, then visit the cheat search dialog again.

Press the Search button to update the list with all memory locations that have
gone down in value since the last dialog visit. We're going to have to try and
find the heart memory location now because there were only two hearts to start
with.

Look at address line 7E00C3, its current value is 1 and its previous value was
2. Scrolling through the list doesn't reveal any other likely memory locations,
so lets try our luck. Click on the 7E00C3 line, press the Add Cheat button and
type in a new value of say 4 into the dialog that appears and press OK. Press
OK on the Search for New Cheats dialog to return to the game.

At first sight it looks like 7E00C3 wasn't the correct memory location because
the number of hearts displayed on screen hasn't gone up, but fear not, some
games don't continually update health and life displays until they think they
need to. Crash into another baddie - instead of dying, the number of hearts
displayed jumps up to 4! We've found the correct location after all!

Now every time you play Addams Family you'll have infinite lives and health.
Have fun finding cheats for other games.

What's Emulated?
===============
- The 65c816 main CPU.
- The Sony SPC700 sound CPU.
- SNES variable length machine cycles.
- 8 channel DMA and H-DMA (raster effects).
- All background modes, 0 to 7.
- Sound DSP, with eight 16-bit, stereo channels, compressed samples, hardware
  attack-decay-sustain-release volume processing, echo, pitch modulation
  and digital FIR sound filter.
- 8x8, 16x8 and 16x16 tile sizes, flipped in either direction.
- 32x32, 32x64, 64x32 and 64x64 screen tile sizes.
- H-IRQ, V-IRQ and NMI.
- Mode 7 screen rotation, scaling and screen flipping.
- Vertical offset-per-tile in modes 2, and 4.
- Horizontal offset-per-tile in modes 2, 4 and 6.
- 256x224, 256x239, 512x224, 512x239, 512x448 and 512x478 SNES screen
  resolutions.
- Sub-screen and fixed colour blending effects.
- Mosaic effect.
- Single and dual graphic clip windows, with all four logic combination modes.
- Colour blending effects only inside or outside a window.
- 128 8x8, 16x16, 32x32 or 64x64 sprites, flipped in either direction.
- SNES palette changes during frame (15/16-bit internal rendering only).
- Direct colour mode - uses tile and palette-group data directly as RGB value.
- Super FX, a 21/10MHz RISC CPU found in the cartridge of several games.
- S-DD1, a data decompression chip used only in Star Ocean and Street Fighter 2
  Alpha. The compression algorithm is integrated into Snes9x, but you may still
  use the old graphics pack cheat as a speed boost.
- SPC7110, similar in use to S-DD1, but the algorithm is still unknown.
- S-RTC, a real-time clock chip. Dai Kaijyu Monogatari II is the only game
  that uses it.
- SA-1, a faster version of CPU found in the main SNES unit together with some
  custom game-accelerator hardware.
- C4, a custom Capcom chip used only in Megaman X2 and X3. Its a sprite scaler/
  rotator/line drawer/simple maths co-processor chip used to enhance some
  in-game effects.
- OBC1 is a sprite management chip. Metal combat is the only game to use this.
- Greater DSP-1 support, enough that all games should load, but some may have
  graphical glitches.
- DSP-2 support. Only used in Dungeon Master
- DSP-4 partial support. Top Gear 3000 goes in game but still very glitchy
- SNES mouse.
- SuperScope (light gun) emulated using computer mouse.
- Multi-player 5 - allowing up to five people to play games simultaneously on
  games that support that many players.
- Game-Genie and Action Replay cheat codes.
- Multiple ROM image formats, with or without a 512 byte copier header.
- Single or split images, compressed using zip and gzip, and interleaved in one
  of two ways.
- Auto S-RAM (battery backed RAM) loading and saving.
- Freeze-game support, now portable between different Snes9x ports.
- 4-point gaussian interpolated sound.
- Justifier support. Konami's Justifier is similar to the Super Scope and
  used in Lethal Enforcers.
- Seta-10 CPU (ST010). This is used F1 Race of Champions 2.
- Fixed color and mosaic effects in SNES hi-res. (512x448) modes.
- Offset-per-tile in mode 6.
- Pseudo hi-res.
- Mosaic effect on mode 7.
- Satellaview and BS-X, partially.

What's Not?
==========
- DSP-1 support not complete, enough to play Mario Kart, Pilotwings and many
  others. All DSP-1 games should boot, but may display graphical errors.
- Any other odd chips that manufactures sometimes placed inside the
  cartridge to enhance games and as a nice side-effect, also act as an
  anti-piracy measure. (DSP-3, SETA 11 and SETA 18, as examples)
- A couple of SPC700 instructions that I can't work exactly out what they
  should do.
- The expansion slot found in many carts.

Super FX
========
The Super FX is a 10.5/21MHz RISC CPU developed by Argonaut Software used as a
game enhancer by several game tiles. Support is still a little buggy but most
games work very well, if a little slowly. Released SNES Super FX games included
Yoshi's Island (best single-player game on SNES, if you like platform games),
Doom, Winter Gold, Dirt Trax FX, StarFox, Stunt Race FX and Vortex. If you're
lucky, you might find a copy of the unreleased Starfox 2 image floating around,
but its sound code is corrupt and you'll need to disable sound CPU emulation to
play it. (NOTE: A new version of Starfox 2 was recently released that is closer
to being a complete ROM. It is mostly playable in the emulator but due to it
being an  incomplete game it does have many errors. This is not the fault of
the emulator)

Lots of Super FX ROM images available are in an odd, interleaved format that I
haven't worked out an easy way to auto-detect. If Snes9x detects that a
Super FX game crashes (by executing a BRK instruction), it automatically
assumes the ROM is in this odd format and de-mangles the ROM and tries to run
it again. If your ROM image isn't working, you could try selecting the
Interleave mode 2 option on the ROM load dialog before loading the game to help
out Snes9x.

S-DD1 and SPC7110
=====
The S-DD1 is a custom data decompression chip that can decompress data in real-
time as the SNES DMA's data from the ROM to RAM. Only two games are known to
use the chip: Star Ocean and Street Fighter Alpha 2.

SPC7110 is a compression and memory mapping chip. It provides a few extra
features, as well. It functions as an RTC interface, and has a multiply/divide
unit that has more precision than the SNES. The SPC7110 is found only in 4
games: Super Power League 4, Far East of Eden Zero, Far East of Eden Zero -
Shounen Jump no Shou, and Momotaro Densetsu Happy.

These chips use some unknown compression algorithms, so to actually support the
games using these, pre-decompressed graphics packs must be downloaded from the
web, unpacked, and the resultant folder can be selected from the Snes9x options
-> GFX Pack Configuration. As of Snes9x 1.42, the S-DD1 can be used without the
graphics packs.

To use the graphics packs for the S-DD1, as of 1.42 and later, you MUST tell
Snes9x where the pack is located. If you do not, it will use on-the-fly
decompression. On the other hand, to use on-the-fly decompression, make sure the
game's pack entry is blank.

The SPC7110 still uses packs at all times, and if no pack is defined, it will
search the locations just like ZSNES.

SA-1
====
The SA-1 is a fast, custom 65c816 8/16-bit processor, the same as inside the
SNES itself, but clocked at 10MHz compared to a maximum of 3.58MHz for the CPU
inside the SNES.

The SA-1 isn't just a CPU; it also contains some extra circuits developed by
Nintendo which includes some very fast RAM, a memory mapper, DMA and, several
real-time timers.

Snes9X includes emulation of most features of the SA-1, enough to play all SA-1
games I've located so far, these include Mario RPG, Kirby Superstar and
Parodius 3.

C4
==

The C4 is custom Capcom chip used only in the Megaman X2 and Megaman X3 games.
It can scale and rotate images, draw line-vector objects and do some simple
maths to rotate them.

Snes9x's C4 emulation is a direct copy of the ZSNES C4 emulation; Intel-based
ports even make use of ZSNES code. Without zsKnight's hard work, Snes9x would
not have C4 emulation. Many thanks go to him.


Problems With ROMs
==================

If the emulator just displays a black screen for over 10 seconds after you've
loaded a ROM image, then one of the following could be true:

1) You just loaded some random ROM image you've downloaded from the Internet
   and it isn't even a SNES game or you only downloaded part of the image.
   Snes9x only emulates games designed for the Super NES, not NES, or
   Master System, or Game Boy, or <insert your favourite old games system here>.
2) If it's a Super FX game, chances are it's in interleaved2 format, try
   switching to "Interleaved mode 2" on the ROM load dialog before loading the
   game.
3) Someone has edited the Nintendo ROM information area inside the ROM image
   and Snes9x can't work out what format ROM image is in. Try playing
   around with the ROM format options on the ROM load dialog.
4) The ROM image is corrupt. If you're loading from CD, I know it might
   sound silly, but is the CD dirty? Clean, un-hacked ROM images will display
   [checksum ok] when first loaded, corrupt or hacked ROMs display
   [bad checksum].
5) The original SNES ROM cartridge had additional hardware inside that is not
   emulated yet and might never be.
6) You might be using a file that is compressed in a way Snes9x does not
   understand.

The following ROMs are known to currently not to work with any version of Snes9x:
- SD Gundam GX - DSP-3
- Hayazashi Nidan Morita Shougi - Seta 11
- Hayazashi Nidan Morita Shougi 2 - Seta 18

Sound Problems
==============

No sound coming from any SNES game using Snes9x? Could be any or all of
these:

- If all sound menu options are grayed out, or an error dialog about Snes9x not
  being able to initialize DirectSound is displayed - then DirectSound could
  not initialize itself. Make sure DirectX 6 or above is installed and your
  sound card is supported by DirectX.

  Installing the latest drivers for your sound card might help. Another
  Windows application might have opened DirectSound in exclusive mode or
  opened the Windows WAVE device - WinAmp uses the Windows WAVE device by
  default - in which case you will need to stop that application and then
  restart Snes9x. It is possible to switch WinAmp to use DirectSound, in
  which case both Snes9x and WinAmp output can be heard at the same time.

  If your sound card isn't supported by DirectX very well (or not at all) you
  will have to use FMOD's WAVE output option; but WAVE output introduces a
  0.15s delay between Snes9x generating sample data and you hearing it.
  Select FMOD's WAVE output by choosing the "FMOD Windows Multimedia" sound
  driver option from the Sound Settings dialog.

- The sound card's volume level might be set too low. Snes9x doesn't alter the
  card's master volume level so you might need to adjust it using the sound
  card's mixer/volume controls usually available from the task bar or start
  menu.
- Make sure your speakers and turned on, plugged in and the volume controls are
  set to a suitable level.
- You've turned off sound CPU emulation, clicked the Mute button in the
  sound settings dialog, or set the playback rate to "<No sound>".

General sound problems:
- A continuous, crackling sound or buzz can be heard.

  First make sure it is happening in all games - Snes9x still does have one or
  two sound emulation bugs that cause the odd pop, crackle and buzz in a few
  games.

  Once you're happy that it is not just the game you're playing, set the
  playback rate in the Sound Settings dialog to 32KHz, and uncheck "Stereo" and
  "16bit playback". Next set both sound buffer length and mix values to 10ms,
  then try slowly increasing both values until clear sound can be heard. The
  ideal is that the mix interval and sound buffer length values should be as
  small as possible. The mix interval value must always be smaller than the
  sound buffer length otherwise sound data will be lost.

  If your sound card requires larger values, above, say, 40ms, then it might
  also be necessary to enable the "Generate sample data in sync with sound CPU"
  option to maintain accurate sound emulation.

  If all else fails, try selecting the "FMOD Window Multimedia" sound driver
  option and live with the 0.15s lagged sound that is unavoidable when using
  the older Windows WAVE sound API.

  Once you have clear sound, set the playback rate, 16bit sound and stereo
  settings to quality you would like - it might be necessary to tweak the
  sound buffer length and mix interval values again.

- Sound the lagged/delayed compared to on-screen action. If you're using the
  "FMOD Windows Multimedia" sound driver then delayed sound is unavoidable;
  otherwise your sound buffer length/mix interval settings are too large - if
  you can, reduce their values.
- Sound quality is poor on all games. You might have a noisy sound card
  (usually cheaper sound cards), turning on 16-bit, interpolated sound,
  sync-sound and/or increasing the playback rate might help.
- Sound seems to have gaps. Using larger sound buffer or mix interval values
  can cause this; reduce them if you can, or click on the "Generate sample data
  in sync with sound CPU" option.
- Sound is awful in all games. You might have selected a playback rate/stereo/
  8-bit/16-bit combination that your sound card can't cope with. Try setting
  8-bit (uncheck the 16bit playback option), mono (uncheck the Stereo option)
  22KHz from the sound menu and if that cures the problem, try other
  combinations until you find the best setting that works on your sound card.
- Snes9x plays any game fine for a few seconds then freezes or crashes.
  Try turning off the "Generate sample data in sync with sound CPU" option.

If all else fails, try posting a message describing your problem and
requesting help on the Snes9X message board at the Snes9X web site,
http://www.snes9x.com/

Converting ROM Images
=====================

If you have a ROM image in several pieces, simply rename them so their
filename extensions are numbered: e.g. game.1, game.2, etc. Then, when
loading the ROM image, just specify the name of the first part; the remaining
parts will be loaded automatically.

If they are already in the form sf32xxxa, sf32xxxb, etc., you don't even have
to rename them; just choose the name of the first part from the ROM load
dialog, as above.

If you want the ROM to be 1 piece instead of many, you can use tools such as
SNESTool to remerge the files into one file.

Emulation speed
===============

Emulating an SNES is very processor intensive, with its two or sometimes three
CPUs, an 8 channel digital sound processor with real-time sound sample
decompression and stereo sound, two custom graphics processors, etc.

If you only have a minimum level machine, you will need to stick to using 
minimal or no graphics filters or sound. Disabling the joystick support will
also help.

Full-screen mode is generally faster than windowed mode.

Enabling one of the output image processing modes from the Display Config
dialog can slow down overall emulation speed greatly depending on the type of
game and video RAM speed. Enabling the stretch image option further reduces
emulation speed.

Lowering the sound playback rate, selecting 8-bit mono sound or turning off
interpolated or sync-sound modes, or turning off sound CPU emulation altogether
will also help boost emulation speed.

Credits
-------

- Jerremy Koot for all his hard work on previous versions of Snes96, Snes97
  and Snes9x.
- Ivar for the original Super FX C emulation, DSP-1 emulation work and
  information on both chips.
- zsKnight and _Demo_ for the Intel Super FX assembler, DSP-1 and C4 emulation
  code.
- zsKnight and _Demo_ for all the other ideas and code I've nicked off them;
  they've nicked lots of my ideas and information too!
- John Weidman and Darkforce for the S-RTC emulation information and code.
- Kreed for his excellent image enhancer routines.
- Nose000 for code changes to support various Japanese SNES games.
- Neill Corlett for the IPS patching support code.
- DiskDude's SNES Kart v1.6 document for the Game Genie(TM) and Pro-Action
  Replay cheat system information.
- Lord ESNES for some nice chats and generally useful stuff.
- Lee Hyde (lee@jlp1.demon.co.uk) for his quest for sound information and
  the Windows 95 icon.
- Shawn Hargreaves for the rather good Allegro 3.0 DOS library.
- Robert Grubbs for the SideWinder information - although I didn't use his
  actual driver in the end.
- Steve Snake for his insights into SNES sound sample decompression.
- Vojtech Pavlik for the Linux joystick driver patches.
- Maciej Babinski for the basics of Linux's DGA X server extensions.
- Alexander Larsson for the GGI Linux port code.
- Harald Fielker for the original sound interpolation code (never used directly
  due to problems).
- Takehiro TOMINAGA for many speed up suggestions and bug fixes.
- Predicador for the Windows icon.
- Lindsey Dubb for the mode 7 bi-linear filter code and the improved
  colour addition and subtraction code.
- Anti Resonance for his super-human efforts to help get his fast sound CPU
  core and sound DSP core working in Snes9x.
- Brad Martin and TRAC for sound emulation.
- byuu for the most exact timing information.
- pagefault, TRAC, Dark Force, byuu, and others who have donated ideas
  and/or code to the project.

Nintendo is a trademark.
Super NES, SuperScope and Super FX are trademarks of Nintendo.
Sun, Solaris and Sparc are all trademarks of Sun Microsystems, Inc.
Game Genie is a trademark of Lewis Galoob Toys, Inc.
MS-DOS and Windows 95 are trademarks of Microsoft Corp.
Intel, Pentium and MMX are all trademarks of Intel Corp.
Sony is a trademark of Sony Corp.
UNIX is a registered trademark of X/Open.
Glide is a trademark of 3Dfx Interactive, inc.
Linux is a registered trademark of Linus Torvalds.

------------------------------------------------------------------------------
Gary Henderson
gary@snes9x.com
