Guide de piratage de la technologie "Lock-On"

Le guide complet pour bénéficier des avantages de la technologie LockOn avec les ROMs de Sonic the hedgehog 2 et 3, et d'autres jeux.
De NO CARRIER

Révision: 2.11F (Français)
Mise en ligne: 22/01/2000
Traduction: le 22/01/2000 par Thomas Rodriguez

English | Español| Français
1. Introduction
2. Les choses à savoir
3. Sonic 3 and Knuckles
4. Sonic 2 and Knuckles
5. Sonic 1 and Knuckles
6. Sonic and Knuckles avec n'importe quel jeu
A Crédits:

Ce document présente une documentation technique complète sur la technologie "LockOn" introduite dans le jeu "Sonic and Knuckles" de SEGA. Les informations présentées ici sont le fruit d'années de travail de plusieurs passionnés , dont l'auteur,Andy Wolan. Nous espérons que vous trouverez tout ceci utile!

1.) Introduction

Ce que SEGA veut que vous sachiez:

En plaçant un jeu Sonic dans le port d'extension LockOn de la cartouche S&K,vous pouvez jouer avec Knuckles dans ce jeu. Branchez Sonic 2 et utilisez avantageusement les capacités de Knuckles pour découvrir de nouveaux passages ou bonus.Connectez Sonic 3 pour transformer le tout en un monstre de 32 mégabits (4 Mo...) avec un fil conducteur plus intense et plus d'une douzaine de zones immenses à explorer, le tout assuré par la protection de quatorze émeraudes et super-émeraudes du Chaos.Et découvrez Hyper Sonic,Hyper Knuckles, et le si mignon Super Miles (ou Super Tails, comme vous préférez).

Tout ceci est accompli en utilisant la nouvelle (à l'époque) technologie du LockOn.

Ce que SEGA ne veut PAS que vous sachiez:
Il n'y a rien de magique ni de révolutionnaire dans la technologie du LockOn.Des rumeurs affirment qu'un défaut dans Sonic 1 pouvait amener le jeu à planter si Knuckles planait au-dessus de certains objets,ce qui incita les développeurs de SEGA à créer un jeu identique aux zones de bonus en 3D,mais avec un générateur aléatoire capable de créer des millions de tableaux. Sonic 2 a nécessité des inclusions supplémentaires pour pouvoir utiliser Knuckles,grâce à l'utilisation d'une seconde mémoire de 256 Kilo-octets,placée à côté de la mémoire principale de la cartouche. Sonic 3 a été conçu avec S&K en tête. En fait, on peut penser que les niveaux ajoutés par S&K devaient au départ être tous destinés à Sonic 3.

Dans tous les cas,implémenter ce concept alors que Sonic 2 était déjà sur le marché depuis longtemps n'a pas été une tâche aisée. Mais cette nouvelle idée a été une innovation majeure qui a redonné une nouvelle dimension à la lignée des jeux Sonic.De plus, c'était une première.

2.) Les choses à savoir

Format binaire uniquement
Assurez-vous que les ROMs que vous utilisez pour ce projet sont en format binaire (.bin).Les autres formats de fichiers, à savoir .smd et .md ne conviennent pas,car les données sont stockées d'une façon différente du format natif. Plus précisément, ils sont formés de blocs de données du jeu répartis différemment.Le format binaire,au contraire, est le reflet exact du contenu de la cartouche, ce qui signifie que les données y sont stockées exactement au mêmes emplacements mémoire que dans la cartouche.Pour une explication complète des formats .smd et .md,et pour mieux comprendre pourquoi ils ne peuvent être utilisés dans le cas présent,référez-vous à cette documentation:
Lanchtool's Genesis ROM documentation (en anglais uniquement).

Bon, si les ROMs que vous possédez sont au format .md ou .smd,ne désespérez pas:elles peuvent être facilement converties en utilisant un petit utilitaire adapté.L'auteur préfère Lanchtool car c'est le plus rapide et simple d'utilisation,sur PC:Lanchtool homepage(en anglais uniquement).Si vous travaillez sur Mac,il y a les programmes de votre serviteur (le traducteur!) ici même.

ROMs foireuses
L'auteur a constaté après des mois d'expérimentation que certaines copies de la ROM de S&K trouvées sur le Web sont "foireuses" ("sales"). En fait, certains octets ne correspondent pas à l'original. Il y a plusieurs explications possibles à ce défaut,qui pourrait être dû à une défaillance du copieur de cartouches,mais heureusement le nombre de ces octets détériorés est faible, et toujours au mêmes emplacements.

Comment est-ce possible? L'auteur n'étant pas expérimenté dans les copieurs de ROMs, il pense naturellement à un défaut technique du copieur.Les données corrompues sont situées non loin de l'en-tête,donc le fait que ces octets soient incohérents ne doit pas être crucial pour le bon fonctionnement du jeu. Cependant, les données en question sont situées dans la zone mémoire dans laquelle semble être effectué le test du port d'extension de la cartouche.Il est donc probable qu'une version finalisée différente de Sonic & Knuckles circule aux côtés de la version normale sur le Web.

Dans tous les cas,s'il s'avérait que votre ROM soit corrompue de la sorte,vous n'aurez qu'une étape de plus à effectuer pour la corriger: il suffit pour cela de l'ouvrir dans un éditeur hexadécimal et de corriger les octets incriminés.Si l'idée d'utiliser un éditeur hexadécimal vous effraie,utilisez simplement l'une des "rustines" de l'auteur à la place.Cette étape peut être effectuée avant ou après la fusion en LockOn avec une autre cartouche.

La fusion des ROMs
Cette étape est vraiment très simple. Vous devez comprendre que,lorsque vous enfichez un autre jeu dans le port d'extension de S&K,la console va voir les mémoires des deux jeux comme un seul grand segment de mémoire contigüe. De ce fait, la combinaison se fait simplement en collant les deux ROMs bout à bout afin de créer le "grand segment de mémoire contigüe" que verra la console.

Prenons l'exemple de Sonic 3.Pour réaliser cette étape,il suffit de recopier la ROM de Sonic 3 après celle de S&K.Tâche fastidieuse si on l'effectue à la main,du fait de la taille importante des mémoires:2 Mo chacune.La façon la plus simple est d'effectuer une copie binaire pour concaténer les deux fichiers vers un nouveau grand fichier.Sur PC, la syntaxe est la suivante:


COPY /B S&K.BIN + SONIC3.BIN SONIC4.BIN 
           |            |            |
           |            |            - Fichier en sortie (le nom que vous voulez).
           |            |
           |            - Nom de la cartouche à fusionner
           |
           - Nom de la ROM de Sonic and Knuckles

Pour comprendre pourquoi cela fonctionne sur un émulateur, il faut mettre les mains dans le cambouis, c'est à dire regarder le hardware du point de vue d'un programmeur. Pour que le programme lise des données, il doit spécifier une adresse.Ainsi si un programmeur veut recevoir des données de la cartouche de Sonic 3,il lui suffit de transmettre l'adresse de ces données dans la ROM.Nul n'est besoin de savoir comment cela est traité physiquement, en dehors du fait que les deux cartouches sont considérées comme une seule grande cartouche. C'est pourquoi cette technique fonctionne sur un émulateur sans avoir à restructurer les données des ROMs ni à ajouter des instructions à l'émulateur,car il n'y a pas de hardware supplémentaire pour effectuer la fusion (en dehors du cas de Sonic 2,voir plus loin).

Pour mieux comprendre comment cela est implémenté physiquement, vous aurez à examiner les circuits supplémentaires dans la cartouche, et comprendre ce qu'ils font. Téléchargez le schéma électronique de la cartouche ainsi que le commentaire explicatif de l'auteur. Pour résumer à l'intention de ceux qui ont des connaissances en électronique,l'un des circuits supplémentaires se comporte comme un aiguillage, et sélectionne l'une ou l'autre des ROMs en fonction des bits de poids fort de l'adresse envoyée lors d'une lecture. Cependant,les circuits incorporés sont plus sophistiqués que les anciennes versions, qui permutaient,par exemple, 4 mémoires de 64 kilo-octets, ce qui mérite d'y jeter un coup d'oeil.

3.) Sonic 3 & Knuckles

Sonic 3 and Knuckles (S&K3)
Stealth, Tom, et quelques autres ont dit que le "tapage" associé à la technologie du LockOn était une honte. La raison en est l'évidence que Sonic 3 a été conçu pour être par la suite associé à S&K. L'exemple est la possibilité de choisir Knuckles dans l'écran de titre de Sonic 3. Ceci peut être accompli avec quelques modifications pertinentes d'une sauvegarde d'état du jeu à l'endroit nécessaire. Une autre grosse évidence est l'existence de certains des niveaux de S&K dans Sonic 3!!Pour plus d'informations sur la manière de mener à bien ce "piratage", visitez
Tom's Sonic Hacking station(en anglais uniquement).

L'évidence la plus flagrante est la façon dont la puce de SRAM de Sonic 3 est utilisée par Sonic 3 & Knuckles. Si vous enregistrez une partie dans Sonic 3, vous découvrirez en l'ouvrant dans S3&K que la sauvegarde est différente.En fait, les sauvegardes ne s'écrasent pas mutuellement, ce qui prouve encore une fois que Sonic 3 & été conçu avec Sonic&Knuckles en tête (Vérifiez donc avec les cartouches et avec un émulateur!).

Hélas, si vous essayez de sauvegarder une partie dans un S3&K sur un émulateur, le jeu ne sera pas enregistré sur le disque. Ce problème est attribué au fait que l'en-tête de la ROM de S&K ne spécifie pas qu'il y a une SRAM, celle-ci étant contenue dans la cartouche de Sonic 3.Pour comprendre le problème,et lui trouver une solution,il faut d'abord comprendre le mode de fonctionnement de cette SRAM.

Si vous examinez les circuits de la cartouche S&K,vous verrez que celle-ci transmet toutes les lignes de données et d'adresses à la cartouche située dans le port d'expansion. Ce procédé fait que les accès à une SRAM seront transmis à la cartouche du port d'expansion,en l'occurence les accès se feront sur la SRAM de Sonic 3.

Du point de vue d'un programmeur,n'importe quel hardware de la Genesis (MegaDrive), que ce soit un registre, la RAM système,une ROM, la RAM vidéo ou même une SRAM, est accessible par une adresse mémoire dans une certaine fourchette.C'est la technique dite du " I/O mapping".Un émulateur enregistrera les données écrites vers ou depuis une bande d'entrées/sorties dans sa mémoire; la SRAM n'y fait pas exception.Ainsi, si un jeu envoie une demande d'écriture vers une SRAM, l'émulateur enregistrera les nouvelles données et les conservera dans sa zone mémoire d'émulation. C'est ensuite à l'émulateur d'assurer un traitement correct de ces données ,et de les gérer pour commander un élément d'entrée/sortie ou comme simples données.

Dès que vous quittez l'émulateur,les données situées dans sa mémoire sont perdues,c'est à a dire que les données de la mémoire système,de la RAM vidéo ,etc... sont également perdues. Etant donné que l'émulateur ne sait pas que la SRAM existe, il ne se préoccupe pas de sauvegarder ses données sur disque. Cela peut sembler stupide pour l'auteur d'un émulateur de ne sauvegarder aucune donnée d'une bande de mémoire utilisée principalement pour les SRAMs. Cependant, toutes les cartouches n'utilisent pas forcément de SRAM, et les données situées à ces emplacement peuvent être de simples données du jeu, comme un brouillard aléatoire non implémenté.

Ainsi,comme vous pouvez l'imaginer, la solution est de faire croire à l'émulateur qu'il y a bel et bien une SRAM dans la cartouche de S&K.Cette étape nécessite l'édition hexadécimale de l'en-tête de la ROM combinée de S3&K.

Les données de 01B0h à 1BBh de l'en-tête de la ROM spécifient l'existence ou non d'une SRAM externe. S'il y en a une,ces données spécifieront également l'étendue de sa mémoire sous la forme de l'adresse de début et de celle de fin. L'auteur aime à utiliser la comparaison avec les registres de "base" et de "limite" utilisés dans la plupart des microprocesseurs actuels.

Si aucune mémoire externe n'est présente,cette partie de l'en-tête est remplie d'un espace vide (20h).Si vous regardez l'en-tête d'une ROM de S&K,vous constaterez que c'est effectivement le cas.Ainsi, nous devons modifier ces données pour informer explicitement l'émulateur de l'existence d'une SRAM. Pour cela, il suffit d'y recopier les données spécifiant la SRAM de l'en-tête de la ROM de Sonic 3.

Remplacez les données entre 1B0h et 1BCh avec 5241 F820 0020 0001 0020 03FF 
avec:
1B0h à 1B3h: -> Informer le système que la mémoire externe est présente. le code "RA" est utilisé.
1B4h à 1B7h: -> Adresse de début de la SRAM externe
1B8h à 1BBh: -> Adresse de fin de la SRAM externe.

Enregistrez les modifications et votre émulateur favori devrait maintenant tenir compte du fait que votre ROM S3&K utilise effectivement une SRAM. Comme exercice de style,essayez de vérifier par vous-même que les ROMs de Sonic 3 et S3&K ne remplacent pas leurs SRAMs respectives dans un émulateur.

4.) Sonic 2 & Knuckles

Sonic 2 and Knuckles
Le piratage pour rendre possible le fonctionnement de S2&K a nécessité plusieurs mois de recherche. De nombreuses théories on été imaginées pour essayer d'activer cette ROM et de nombreuses solutions compliquées ont été proposées.Finalement, la solution à ce problème était aussi simple que d'ajouter un paramètre supplémentaire à la ligne de commande lors de la fusion.

Ce qui a rendu la tâche si ardue était le fait que la cartouche S&K possédait une ROM de correction cachée de 256 kilo-octets.Si l'on essayait de copier le contenu de la cartouche S2&K à l'aide d'un copieur de ROM, il ne reconnaissait pas cette puce mémoire supplémentaire. Cette ROM cachée spéciale est uniquement activée si la cartouche S&K l'active; autrement, elle est inaccessible. Référez-vous au document technique mentionné plus haut pour comprendre comment cette activation est effectuée. Pour des informations sur l'accès à cette puce ROM cachée,référez-vous à la documentation technique de Rizzo sur la question. Si vous ne vous sentez pas l'ambition de recopier cette ROM par vous-même,vous pouvez la récupérer ici.

Notez au passage que la taille effective de cette ROM est bien de 256 Ko, et non 512 comme cela avait été pensé auparavant. Apparemment, la broche associée à l'adresse 18 est réellement vide, c'est à dire qu'elle n'est pas connectée à la puce. De plus,l'en-tête de la ROM de Sonic & Knucles vous informe qu'elle fait bien 256 Ko.

Il n'y avait jusqu'alors aucun document sur la section de l'en-tête dans laquelle est spécifiée l'existence de puces mémoire supplémentaires dans la cartouche. L'emplacement en question était désigné par "memo" dans les documentations techniques (situé de 1C8h à 1EEh). Apparemment, cet emplacement mémoire était réservé à des utilisations futures.

Cette section cachée commence à l'adresse 0x1E0 par "RO," (pour ROM,) et se trouve suivie des nombres $300000 et $33FFFF (les adresses de début et fin).Ceci implique que la taille de la ROM est de $33FFFF moins $300000 octets, soit 256 Ko.

Il y a plusieurs raisons crédibles sur l'utilisation d'une seconde ROM cachée. Pour les comprendre, il faut examiner les théories en question sur la façon dont le contrôle est passé de la cartouche S&K à celle de Sonic 2. L'auteur présente ici celle qui lui semble la plus cohérente.

Certains pensent que la ROM supplémentaire est une correction des images et niveaux de Sonic 2 (l'écran de titre de S2&K affiche effectivement deux lignes de copyright avec deux dates différentes). Ceci signifierait que la ROM S&K contrôle totalement la cartouche de Sonic 2 et utilise inteeelligemment la cartouche de Sonic 2 pour ses données. Si ceci est vrai,pourquoi ne pas implémenter ces corrections à l'intérieur même de la ROM de S&K? Tout simplement par manque de place:les 2 Mo de la puce sont totalement occupés par le jeu S&K.

Alors,pourquoi ne pas utiliser simplement une puce de ROM plus puissante? Les modules utilisés par SEGA dans leurs cartouches font 4,8,16 ou 32 Mbits(512 Ko,1,2 ou 4 Mo).Ainsi,pour une Rom supplémentaire de 256 Ko, ils auraient eu à augmenter la ROM principale d'au moins 4 mb,soit 512 Ko,ce qui aurait coûté plus cher. Cela aurait aussi compliqué la circuiterie et la programmation de plusieurs façons. Et étant donné que les données en question ne devaient être utilisées que par une seule ROM,la solution était plus élégante.

Mais revenons à nos moutons. Si vous examinez les schémas de Rizzo décrivant la cartouche de S&K et que vous regardez de nouveau les documents techniques de l'auteur sur l'implantation de la cartouche,vous découvrirez que la façon de concaténer trois ROMs est la même qu'auparavant. Plus simplement dit, la ligne de commande est la suivante:


COPY /B S&K.BIN + SONIC2.BIN + S2KUPMEM.BIN SONIC4.BIN 
           |            |           | 		|
           |            |           | 		- Fichier en sortie 
           |            |           |
           |            |           - "Patch" ou ROM cachée
           |	        |
           |            - Nom de la ROM de Sonic 2 
           |
           - Nom de la ROM de Sonic & Knuckles

Cette nouvelle ROM fonctionnera sur tous les émulateurs, SAUF KGen98 et DGen. La raison étant que Kgen98 et DGen sont plus conformes à l'électronique de la console que d'autres émulateurs. Ceci signifie qu'ils sont plus pointilleux concernant ce qu'ils lisent et exécutent. Une fois de plus, ce bug est attribué au syndrome des "ROMs corrompues" mentionné plus haut. Il suffit de modifier ces octets comme indiqué pour activer la ROM sur KGen98 et DGen.Notez cependant que le problème n'a été reporté,concernant DGen ,que pour sa version Mac.

000003B5: 01->02

Note: vous pouvez modifier cet octet quel que soit l'émulateur que vous souhaitez utiliser.

5.) Sonic 1 & Knuckles

Sonic 1 & Knuckles Il y a eu des rumeurs sur le fait que SEGA désirait ajouter la possibilité de jouer à Sonic 1 avec le personnage de Knuckles. Cependant, un problème dans le programme faisait planter le jeu à chaque fois que Knuckles planait sur un téléphérique. C'est ce qui a éventuellement mené à l'abandon de l'idée de faire apparaître Knucles dans Sonic 1... mais ce n'est qu'une rumeur.

Selon l'auteur,cette idée semble farfelue,car il n'est pas concevable de supprimer une telle possibilité à cause d'un programme précédent légèrement incomplet. Une suggestion plus logique serait l'existence d'emplacements dans le jeu impossibles à traverser pour Knuckles,tels des passages trop hauts pour sauter par-dessus ou un boss qui ne peut être battu à l'aide des mouvements normaux de Knuckles. Dans tous les cas, on ne peut pas jouer avec Knuckles dans Sonic 1.

Si vous connectez Sonic 1 à la cartouche S&K,un écran de présentation affichant Sonic et compagnie apparaît, accompagné par le texte "NO WAY" défilant en haut. Appuyez simultanément sur les trois boutons de la manette (A,B,C) pour activer l'immense jeu de bonus en 3D comptant 134 217 728 (2^27) niveaux. Il fonctionne de la même façon que ceux de Sonic 3 et S&K (donc que S3&K!),sauf que chaque tableau terminé vous fait avancer au tableau suivant. Il est important de noter que vous n'aurez pas à jouer les 134 217 728 niveaux. Si vous êtes bon,vous pouvez sauter les tableaux de 10 en 10 si vous faites un "perfect", c'est à dire que vous ramassez tous les anneaux d'or,comme dans S3,S&K et S3&K: référez-vous aux affichages en haut de l'écran pour savoir où vous en êtes: contrairement au jeu en mode normal, le compteur d'anneaux d'or part ici du maximum et diminue jusqu'à atteindre zéro.

Dès que vous avez terminé le dernier (!) niveau du jeu,celui-ci repart de zéro,vers le niveau 1, etc... Comme vous devez le penser,ce jeu n'a pas vraiment de sens,à moins que vous ne vouliez vous entraîner,et vous trouverez donc des codes pour le cas où vous désireriez vous lancer dans ce jeu, dont certains proposés par le traducteur,votre serviteur,qui est arrivé assez loin : au delà du tableau 2015.

Maintenant,revenons à notre sujet. En considérant que vous avez une ROM "propre" de S&K,vous devriez pouvoir combiner les deux jeux comme expliqué auparavant. Si tout fonctionne bien,vous devriez voir apparaître un écran de présentation avec le texte "NO WAY" défilant en haut.Par contre,si votre ROM de S&K est corrompue, l'animation normale de S&K se lancera. Pour corriger ce problème,vous devrez effectuer la modification suivante à la ROM:

00000433: 00->2C 

Une fois de plus, cet octet est situé dans la zone de la ROM dans laquelle semble se situer le test de la cartouche située éventuellement dans le port d'extension.

Pour en rajouter une couche,voici un truc découvert par l'auteur qu'il ne peut pas expliquer. Il vous faudra une ROM contaminée de S&K,mais vous pouvez toujours la contaminer vous-même pour qu'elle ne fonctionne pas avec Sonic 1. Combinez la ROM corrompue avec Sonic 1 et modifiez les octets suivants:

0000042D: FF->00
0000042F: AE->A1

La ROM ne se lancera pas et vous aboutirez à un écran vide. Maintenant modifiez l'octet spécifié plus haut ainsi:

00000433: 00->2C 

et la ROM fonctionne.Ce qui semble étrange est que les deux premiers octets (42Dh et 42Fh) sont situés avant la position du 3e (433h). L'on penserait en principe que la modification de cet octet ne devrait avoir aucun effet sur les changements affectés aux deux autres octets,mais c'est le contraire.Ce qui est également surprenant pour l'auteur est le fait qu'au lieu d'afficher l'animation de S&K,la modification fait planter le jeu avec un écran vide. Alors, que représentent ces deux premiers octets? Ce peuvent être des addresses, des instructions machine,ou des variables.
En fait,aux yeux avisés d'un programmeur expérimenté (moi!), ces lignes correspondent plus certainement à des retours de boucles (sous-fonctions) et le fait que le jeu plante est parfaitement normal.

6.) Sonic & Knuckles avec n'importe quel jeu (S1&K,suite)

Sonic & Knuckles avec n'importe quoi (seconde partie de Sonic 1 and Knuckles).
Il ne semble pas utopique d'imaginer que le possesseur d'une cartouche de S&K veuille essayer d'utiliser en Lock-On n'importe quelle cartouche MegaDrive qu'il a sous la main. Comme récompense de l'expérience,la cartouche S&K va sélectionner un nombre aléatoire basé sur le numéro de série de la cartouche insérée dans le port de Lock-On.

Si vous combinez une cartouche de S&K à n'importe quelle cartouche MegaDrive, vous verrez apparaître le même écran "NO WAY" qu'avec Sonic 1. Cependant, il y aura des différences importantes. Pour les débutants,la palette de couleurs utilisée pour Sonic et les autres à l'écran de présentation sera plus foncée,et ils ne seront pas animés. Même si le niveau aléatoire auquel vous êtes envoyé semble un bon début,il faut noter qu'après l'avoir terminé vous serez immédiatement renvoyé à ce même niveau.

Donc,la question est posée: "comment la cartouche S&K détermine-t-elle quel niveau aléatoire utiliser?". Pour commencer,expliquons comment elle détermine si le jeu inséré est Sonic 1. Si vous vous souvenez,les données aux alentours de l'adresse 3C0h semblent correspondre au code déterminant quelle cartouche se situe dans le port d'extension. Si vous regardez par là vous verrez les numéros de série correspondant à Sonic 2 et Sonic 3,mais aucun pour Sonic 1. Pourquoi? Simplement parce qu'il est ailleurs. Allez à l'adresse 4CD00h et vous découvrirez les numéros de série des versions japonaise et américaine de Sonic 1.

Pour preuve,essayez de changer le numéro de série de la ROM que vous connectez en LockOn en celui de Sonic 1. Le numéro de série est situé à l'adresse 180h:

GM 00001009-00 (Sonic 1 US) 
GM 00004049-00 (Sonic 1 Japonais)

Et le tour est joué: au lieu d'un niveau aléatoire,vous obtenez le jeu 3D complet associé à Sonic 1 & Knuckles.

Maintenant revenons à la question de départ, "comment un niveau aléatoire est-il généré?" Comme vous devez l'imaginer,le numéro de série de la cartouche insérée joue le rôle principal. Si vous traffiquez avec le numéro de série,vous obtenez un niveau différent. L'auteur n'a pas effectué beaucoup de recherches sur ce sujet, alors peut-être que quelqu'un peut venir compléter ici.

Exemple:
diagram

Contributions: (en anglais!)
Chaos Emerald: S&K1 3D gaming findings.
Cherry: Released the correct S&K2 ROM.
Jan Abaza: Suggestions
Rizzo: Inital S&K2 discovery, S&K1 suggestions.
Stealth: Initial Sonic 3&K SRAM fix discovery, S&K2 suggestions, S&K1 suggestions and for the support through-out the years.
Wiseman: Spanish mirror of this doc and the nifty GIF diagrams to replace my cheesy ascii diagrams.
Andy Wolan: Initial S&K3 discovery, this document, for pieceing together the "holes" in people's theories and for keeping the hope alive for almost 3 years!

Greetings:
Jarred, KidAlex, TC, DC, Sir Lamer, Stark, Sir James, Spector, Ruski, The G-Funks, T-Boy, Andy Watts, the SSRG Team and to everyone that has been following this project.

Disclaimer
The author of this page is not responsible for any damage caused by this procedure in any shape, way or form, no matter what. The author also has no relations with Sega or Sega of America. USE AT YOUR OWN RISK.


This Site is Sonic 2 Hacking Approved
Sonic is a registered trademark of Sega 1991. All other trademarks are trademarks of the respected companies.

Copyright 1999-2000 Andy Wolan
traduction française de
Thomas Rodriguez