English | FranÁais

Intro

Bases du piratage

Terminologie

Edition hexadÈcimale

Structure

Le programme du jeu

Piratage des cartouches binaires

Piratage des GameStates

Sonic The Hedgehog Hacking Documents


NouveautÈs

Qu'est-il advenu du "Guide de piratage de Sonic the Hedgehog" de Rocket et du "Manuel d'utilisation de Sonic 1" de Cyan? Les deux ont ÈtÈ fusionnÈes pour crÈer l'ultime page sur le piratage de Sonic sur le web. Avec ces deux "cerveaux" ensemble, nous pouvons vous assurer qu'il est impossible de trouver une meilleure source d'infos qu' ici ! Alors plongez!!


Des infos exclusives de Robert Flory.
Voici ce qu'il a Ècrit [traduit de l'anglais]:

J'ai dÈcouvert un endroit dans la zone Special Stage de Sonic 1 qui contient
une version
fonctionnelle des icÙnes 1-up. Cet endroit est lÈgËrement instable, car il rÈside
en dehors de la zone valide du puzzle, mais vous pouvez rÈcupÈrer les ÈlÈments, ce qui prouve que
les 1-ups sont (en qlelque sorte) implÈmentÈs dans le jeu final et fonctionnent,
ce qui pourrait indiquer que les autres ÈlÈments( icÙne "W" , icÙnes de zÙne 1, 2, et 3 ) fonctionneraient
Ègalement,pour peu que quelqu'un trouve un moyen de les placer dans un niveau valide.

J'ai inclus une archive ZIP contenant un SaveState Genecyst de cette zone,
ainsi qu'un texte dÈcrivant celle-ci et expliquant deux thÈories que j'ai
concernant celle-ci.

PlutÙt intÈressant,non? Cliquez ici pour rÈcupÈrer le SaveState.


TPLaing a envoyÈ des tonnes d'infos sur l'Èdition des niveaux. Cette page est actuellement en cours de restructuration afin d'Ítre rendue prÈsentable au public. En tous cas,tout ce qu'il a envoyÈ n'a pu Ítre inclus.Prochainement, peut-Ítre...Nous le remercions pour ces infos!


Introduction

Depuis plusieurs annÈes,l'on a essayÈ de pirater Sonic 1 de diverses maniËres. Visiblement, en tous cas, le seul rÈsultat qui a ÈtÈ obtenu a ÈtÈ de casser le jeu... Le piratage de Sonic 1 a ainsi perdu de sa popularitÈ il y a environ un an.
Cependant,ces temps-ci,le piratage de Sonic 1 fait un inÈvitable et essentiel retour, car des gens ont eu l'inspiration divine (sic). Ils ont vu la lumiËre en Mai 1999, lorsque le jeu "Sonic 1 Beta Hoax" fut mis en ligne par Cyan. Comme ce piratage Ètait effectuÈ d'une faÁon trËs spÈcifique, l'on a rÈalisÈ que c'Ètait faisable et les gens ont alors recommencÈ ý tenter le piratage par eux-mÍmes.
Cependant, parmi toute les informations donnÈes ici, aucune ne vous donnera l'info pour changer une palette de couleurs trËs exactement, activer ou dÈsactiver les intros, changer le texte dans l'Èdition des niveaux, et modifier les instruments de musique. Ce ne sont que quelques-unes des choses que vous apprendrez en lisant ce document.
Sachez Ègalement que les mÈthodes de piratage de ce guide et les adresses mÈmoire donnÈes se sont rÈvÈlÈes exactes, et le rÈsultat est obtenu ý l'identique pour peu que les consignes donnÈes soient suivies scrupuleusement.

Notez cependant que nous avons acquis plus d'informations en piratant par nous-mÍmes la ROm de Sonic 1, et n'avons rÈfÈrencÈ aucune autre information. Cependant, toutes les propositions de lecteurs seront ajoutÈes ý cette page, accompagnÈes par l'e-mail de l'auteur entre parenthËses aprËs les infos en question.
Si vous dÈsirez placer une partie des infos donnÈes ici dans un de vos guides au piratage, veuillez envoyer un e-mail ý l'un d'entre nous pour obtenir la permission. Nous devonsd'abord Ítre contactÈs ý ce but. Si nous ne sommes pas citÈs comme il se doit, alors...eh bien, SEGA le saura en premier lieu! :-<>



Bases du piratage

Etant donnÈ que pirater le jeu implique l'Èdition directe ý la fois des donnÈes et du cde compilÈ, vous devrez apporter des modifications ý votre ROM de Sonic 1. Notez que les informations diffusÈes ici sont relatives au test en piratage d'une ROM amÈricaine de Sonic 1 (version US). Aucun test n'a ÈtÈ effectuÈ avec une ROM europÈenne ou japonaise. Par consÈquent, la rÈussite n'est pas certaine.

Tout d'abord, assurez-vous que votre ROM est au format binaire (.BIN). Si elle est en .SMD ou aute chose, chargez-la dans Genecyst, allez dans le menu "CPU", choisissez "Dump" puis "ROM". Ceci convertira la ROM au format .BIN, enregistrÈ dans votre disque dur dans un fichier ROM. Vous devrez renommer le fichier et y ajouter ".BIN". Vous pouvez Ègalement utiliser un utilitaire de conversion de ROMs. La fonction "Dump" de Genecyst est une conversion intÈgrÈe: mÍme si vous devez changer par vous-mÍme l'extension du fichier, celui-ci contient bien le jeu en format binaire.
Notez que, contrairement ý ce que certaines personnes pourraient penser, le simple fait de changer l'extension ne convertit absolument pas le type du fichier, mais juste son nom (!). Ce n'est pas du tout la mÍme chose!

Maintenant que vous avez votre ROM de Sonic 1 au format binaire -ý laquelle vous pouvez donner un nom explicite, comme SONIC1.BIN - ,vous allez pouvoir vous attaquer ý son piratage. Mais avant tout, FAITES UNE COPIE DE SAUVEGARDE !!! Nommez-la SONICHK.BIN par exemple, car si vous modifiez l'original, si vous la dÈtÈriorez,vous ne pourrez pas revenir en arriËre pour effacer vos erreurs.D'o˜ la sauvegarde salutaire...
A chaque fois que vous rÈussisez une grande t’che de piratage, crÈez une copie numÈrotÈe de la ROM pour le mÍmes raisons. Par exemple, la ROM hackÈe de Cyan s'appelle SONICHX9.BIN - la 9e copie de la ROM hackÈe. Les versions prÈcÈdentes fonctionnaient aussi, mais n'Ètaient pas aussi complËtes. Par exemple, la version 6 ne contenait pas la Green Hill zone la nuit.

Maintenant, dans un Èditeur hexadÈcimal, ouvrez votre ROM, et observez. Les premiers 17% environ sont constituÈs principalement de code, et ce qui reste sont les donnÈes. Le code est trËs sensible au "blast-hacking" (traduisez par "piratage explosif"), mais par une Èdition attentionnÈe, les meilleurs rÈsultats peuvent Ítre obtenus. Si vous utilisez HexEdit pour Windows, alors commencez par aller au menu "Options", puis choisissez "Affichage". VÈrifiez de bien activer "CHARACTER COUNT" (comptage des caractËres) dans la boÓte de dialogue. Il est Ègalement trËs utile d'activer les options "HIGHLIGHT WORDS" et "WIDE CURSOR" ("inversion de la sÈlection" et "curseur large" respectivement). A l'aide du convertisseur de base, entrez l'adresse hexa que vous voulez pirater,et convertissez-la en dÈcimal. Choisissez ensuite"JUMP TO LINE, BYTE" et entrez la valeur dÈcimale obtenue.

Notez Ègalement que toutes les adresses et donnÈes de ce guide sont donnÈes en hexadÈcimal, sauf mention contraire.



Terminologie

Des termes ý l'allure bizzare seront employÈs tout au long de ce guide.
A chaque fois qu'une valeur HexadÈcimale est donnÈe, si elle contient des caractËres "x" en minuscules, alors ceux-ci doivent Ítre substituÈs par une valeur. Par exemple, pour une valeur donnÈe 104BD219xx20xx , les caractËres x dÈsignent quelque chose. En les remplaÁant par un nombre valide (0..9,A..F),on obtient une donnÈe valide.

Les noms des zones sont souvent utilisÈs,d'o˜ les abbrÈviations:
GHZx = Green Hill Zone Act x
MZx = Marble Zone Act x
etc...

Par rapport ý la zone Scrap Brain,vous noterez que 3 actes sont mentionnÈs,mais pas de zone Finale, et 4 actes ý la zone Labyrinth. Ceci est dš au fait que l'acte 3 de la Scrap Brain Zone est considÈrÈ comme l'acte 4 de la Labyrinth Zone, et que la Final Zone est considÈrÈe comme l'acte 3 de la Scrap Brain Zone.



L'Èdition hexadÈcimale

Beaucoup de monde ne comprend pas comment effectuer l'Èdition hexadÈcimale.
Ce n'est rien de plus que changer le contenu d'un fichier, octet par octet. Pour ce faire, il vous faut un programme appelÈ "Èditeur hexadÈcimal". Il en existe beaucoup, mais le plus simple et le plus fiable de tous est HexEdit for Windows (Ègalement disponible sous Mac).
Beaucoup de gens se sentent perdus vis-ý-vis des adresses, et ne comprennent pas qu'on puisse voir des choses comme 00D4 et 0019047. En bref, les "0" (zÈro) ý gauche ne signifient que du vide (mais donnent une indication de la taille physique du nombre: nombre de bits). Comme en dÈcimal: si l'on vous rÈdige un chËque de 10 Euros, il est inutile d'ajouter des "0" ý gauche, car 00010 E ,c'est toujours la mÍme chose que 10 E. Par contre, si vous ajoutez des zÈros ý droite du nombre, il est Èvident que l'intÈrÍt est tout autre!
En l'occurence,le fait d'ajouter des zÈros ý gauche renseigne sur la taille physique du nombre: par exemple, les adresses pour le processeur 68000 font 24 bits, soit 6 paires de caractËres hexadÈcimaux.

En Ètudiant l'image ci-dessous, vous constaterez que l'Ècran est divisÈ en 3 sections. La premiËre contient la liste des adresses. La plupart des Èditeurs hexadÈcimaux affichent cette adresse en hexa, mais HexEdit pour Windows l'affiche en dÈcimal.
Cependant, vous constaterez que les nombres ne se suivent pas par pas de 1 mais de 16 (10 en hexa). Ceci est dš au fait que chaque ligne contient 16 octets. Certains Èditeurs affichent plus ou moins d'octets par ligne.
En tous cas, la premiËre ligne contient les octets d'adresses 0 ý F, la suivante de 10 ý 1F, puis 20 ý 2F, et ainsi de suite.

La seconde zone de l'affichage contient une liste d'octets.Chaque octet nÈcessite 2 nombres hexadÈcimaux pour sa reprÈsentation. Ainsi, cette zone a une largeur de 32 caractËres. Vous pouvez cliquer sur l'octet que vous souhaitez modifier, et entrer au clavier la nouvelle valeur hexadÈcimale.

La troisiËme zone est une reprÈsentation textuelle des octets. Ainsi, vous pouvez voir si la ROM contient des chaÓnes de caractËres. Dans la plupart des cas, vous pouvez Èditer directement cette zone Ègalement.

En utilisant la fonction "JUMP TO BYTE" de l'Èditeur hexa,le curseur est placÈ automatiquement sur l'octet dont vous avez entrÈ l'adresse, sans avoir ý compter manuellement.



Structure de base

Voici les sections qui constituent la ROM. La plupart ds adresses sont quasiment des multiples de 16,et certaines le sont exactement:

ADRESSE HEX FONCTION
00000-01B58 En-tÍte et code d'initialisation. Table d'exceptions Ègalement.
01B59-1DC0D Code principal du programme et donnÈes littÈrales telles les palettes de couleurs.
1DC0E-21277 DonnÈes (fonction inconnue).
21278-21835 Sprite (objet animÈ) contenant des donnÈes et du code.
21836-21B7D DonnÈes relatives au code prÈcÈdent, ainsi que le code d'Èmulation, y compris les dÈfinitions des points d'arrÍt de dÈbogage.
21B7E-2BBFF Les sprites de Sonic. Piratez ici pour modifier les images.
2BC00-6292F DonnÈes essentielles.Contient les plans des niveaux,des graphiques, et d'autres donnÈes importantes.
62930-64A45 Informations sur les blocs d'angles. Certains y font rÈfÈrence sous le nom de "solides".
64A46-65463 DonnÈes inconnues.
65464-66B15 DonnÈes inconnues sur 16 bits.
66B16-66D45 DonnÈes inconnues sur 8 bits.
66D46-681C7 Graphiques, en particulier les sprites des niveaux. Pourrait Ítre des "mappings" en blocs pour les sprites.
681C8-????? Infos d'initialisation des niveaux.
?????-6B095 Mappings en blocs,en particulier de 8x8 ý 16x16, pour les niveaux.
6B096-713CB Position des objets pour chaque niveau.
713CC-719CF Espace vide.Partie du bloc prÈcÈdent ou du suivant?
719D0-796C5 Programmes sonores. Le code et les donnÈes exÈcutÈs pour jouer un air.
796C6-*END* DonnÈes ÈchantillonnÈes PCM pour le son "SEGA" d'intro, en 8 bits et en Mono.



Programme du jeu

Avant d'aller plus loin,vous devez connaÓtre les bases du programme du jeu.

Le programme de Sonic 1 est divisÈ en trois parties distinctes.La premiËre partie gËre les objets actifs, telles les plateformes qui s'effondrent, les Ècrans de bonus,les anneaux d'or, etc... Ce sont usuellement des sprites,et sont dÈfinies dans le niveau sous forme d'une liste de positions ainsi:
RING, 10, 10
TV, 50, 72
MOVING_PLATFORM, 100, 127

Bien entendu, ils ne sont pas dÈfinis en texte direct, mais c'est l'idÈe gÈnÈrale du systËme de gestion des objets.

La seconde partie du programme est le moteur de mouvement. Ceci a attrait ý la faÁon dont Sonic et de nombreux objets se dÈplacent dans le niveau.Il gËre la gravitÈ, la friction, etc. Cette partie ne se contente pas de permettre aux objets d'interagir avec le reste du "monde" (comme Ítre poussÈs et tomber) mais aussi permettre ý Sonic d'interagir avec les objets, de sorte que les objets puissent avoir une surface sur laquelle on peut marcher. Cette partie fonctionne Ègalement en Ètroite relation avec la troisiËme partie.

La troisiËme partie du jeu a attrait aux niveaux. Un niveau est un objet statique, sans parties mobiles ou objets ý interactionä. L'ensemble du niveau est composÈ de ses graphiques et de blocs ý des angles diffÈrents, sur lesquels marcher.
Un niveau est dÈfini sur une grille. Chaque carrÈ de la grille peut soit Ítre vide, soit contenir un bloc. Il y a un nombre dÈfini de blocs dans chaque niveau, et chacun a des propriÈtÈs diffÈrentes. Un bloc fait 16x16 pixels en gÈnÈral, tandis que le niveau fait en moyenne 300x40 blocs. Un bloc erst constituÈ de 4 petits blocs (briques) graphiques, et ce procÈdÈ est connu sous le nom de "mapping". Un bloc a Ègalement une sÈquence de lignes ý des angles donnÈs, dÈfinissant une surface de contact. Il peut aussi ne pas y avoir de lignes de sol, ce qui fait que vous tombez au travers.
Ainsi, chaque bloc est composÈ de quatre briques graphiques et d'un jeu de donnÈes de type "solide". Il y a de TRES nombreux blocs dans chaque niveau. Il existe une palette de blocs pour chaque niveau, 1024 blocs Ètant une estimation valable. Donc, chaque carrÈ du plan de niveau peut contenir un de ces 1024 blocs prÈdÈfinis. Ceci Èvite d'avoir ý dÈfinir les graphiques et les plans de contact pour chaque carrÈ du plan.

Un objet est constituÈ d'un ou plusieurs "sprites". Un sprite est constituÈ d'une ou plusieurs briques de 8x8 pixels. Un objet n'a pas besoin d'Ítre visible -- par exemple les "kill blocks". Ces blocs, en mode dÈbogage, sont visibles sous la forme de briques ý l'effigie de Robotnik. Lorsque vous entrez en contact avec eux, vous perdez une vie. Ils sont utilisÈs lorsqu'il y a un objet mobile destinÈ ý vous Ècraser quelque part dans le niveau. Sachant que Sonic peut Ítre ÈcrasÈ entre deux objets, il ne peut pas Ítre ÈcrasÈ par le niveau. D'o˜ l'utilisation des "kill blocks". Les objets communÈment appelÈs "piques" sont Ègalement utilisÈs par-dessus la lave. Cependant, ils sont utilisÈs sans leurs graphiques. Si vous dÈsactivez les objets dans un niveau, vous pouvez marcher sur la lave.

Cependant, mÍme si vous pouvez heureusement changer l'emplacement des sprites, et facilement changer les blocs sur lesquels on peut marcher et leurs angles, ne vous attendez pas ý modifier le plan du jeu aussi facilement.
La raison de cette difficultÈ est dše au fait qu'il est compressÈ. Imaginez un niveau typique.Il y a beaucoup de blocs vides, et de nombreux blocs rÈpÈtÈs ý l'identique qui se suivent.Chaque bloc occupe environ 2 octets en mÈmoire. Ainsi, chaque PLAN de niveau occupe au moins 64 kilo-octets. Cependant, il se trouve qu'une compression de style PKZip est appliquÈe ý ces donnÈes, et du fait de sa nature rÈpÈtitive, la taille du plan tombe ý moins de 2 kilo-octets.
Bien entendu, le niveau est dÈcompressÈ en RAM, donc vous pouvez pirater la RAM pour modifier le niveau, mais cette mÈthode de piratage n'est pas permanente.



Piratage des cartouches binaires

Commandes binaires
Voici une liste de commandes utiles prÈsentes dans le fichier binaire. Ceci vous expliquera l'utilitÈ de certaines sections du jeu. Une fonction accompagnÈe d'une "*" est en hexadÈcimal, non en texte.
La fonction exatce de ces commandes n'est pas encore entiËrement connue, et n'est pas sšre ý 100%.

NqNqNqNqNq Renvoie ý une autre trame d'Ècran
Sx ??????
Nu Offset d'un sprite
UrUrUrUrUr Palette de couleurs [Ganarii]
init Initialiseur C ?
HB Position de pixels
FF FF DÈbut d'un niveau *
4x F9 00 xx xx xx localise des emplacements hex pour trouver des donnÈes *

L'Èdition de position des objets
Ceci vous permettra de dÈplacer ou positionner des objets lý o˜ vous voulez dans un niveau typique. Cependant, comme les objets sont gÈrÈs sÈparÈment des blocs de placement, vous ne pourrez pas Èditer le niveau.
Chaque objet de chaque niveau est enregistrÈ dans une liste. Les coordonnÈes X et Y de l'objet dans le plan, le type d'objet et son code de variation sont ainsi mÈmorisÈs.

address+0 X (bits de poids fort)
address+1 X (bits de poids faible)
address+2 Y (bits de poids fort)
address+3 Y (bits de poids faible)
address+4 Type d'objet
address+5 Code de variation

Comme vous pouvez le constater au vu du tableau prÈcÈdent, si vous vous placez ý l'adresse du dÈbut de la table d'objets d'un niveau, alors le curseur est positionnÈ sur l'octet de poids fort de la coordonnÈe X du premier objet.Puis l'octet de poids faible en X, etc...
L'octet situÈ aprËs le "Code de variation" est l'octet de poids fort en X de l'objet suivant.

Voici les adresses des tables d'objets de chaque niveau:



GHZ1 6B096 [Stealth]

GHZ2 6B5A0 [Stealth]

GHZ3 6BB5E [Stealth]

LZ1  6C218 [Stealth]

LZ2  6C686 [Stealth]

LZ3  6C9C8 [Stealth]

LZ4  6CFAA [Stealth]

???? 6D442 [Stealth]

MZ1  6D592 [Stealth]

MZ2  6D8FE [Stealth]

MZ3  6DDA8 [Stealth]

SLZ1 6E31E [Stealth]

SLZ2 6E851 [Stealth]

SLZ3 6ECC6 [Stealth]

SYZ1 6F2A8 [Stealth]

SYZ2 6F734 [Stealth]

SYZ3 6FC9E [Stealth]

SBZ1 702A4 [Stealth]

SBZ2 709E2 [Stealth]

SBZ3 710C0

GEND 710D2 [Stealth]

BEND 71204 [Stealth]



Maintenant, une liste d'objets:

01 00 Sonic [TPLaing]
09 00 Fond dÈfilant [TPLaing]
0A 00 INCONNU (flotte) [TPLaing]
0B 00
Barre de suspension (from LZ) [TPLaing]
0D 00
Panneau de fin [TPLaing]
41 02
"Spring up" jaune
0C 00 Champ de force unidirectionnel
0C 01 porte automatique rapide
0C 02 Porte automatique lente
0E 00 Truc au-dessus de Sonic
0F 00 Truc sous Sonic
11 xx Ponts
25 xx Anneau(x)
34 00 Titre de zone
37 00 Perte d'anneaux
39 00 Game over
3A 00 Comptage du score (fin tableau)
3D 00 Robotnik et son vaisseau
15 00-0D Plate-formes mobiles de diffÈrentes tailles
15 10-1D SphËres mobiles de diffÈrents diamËtres

Ecrans de power-up
A6 00 Statique
A6 01 Robotnik
A6 02 1-Up
A6 03 Super-chaussures
A6 04 Bouclier
A6 05 Invincible
A6 06 Super Anneau (?)
A6 07 Super Sonic (??)
A6 08 Lunettes anti-rayons X (!!)
A6 09 Ecran brisÈ
A6 0A Ecran arrÍtÈ

PropriÈtÈs diverses
Ici se trouve le reste des informations configurÈes dans le jeu.

0337A PremiËre ligne de l'Ècran de sÈlection de niveau -- monde
0337B PremiËre ligne de l'Ècran de sÈlection de niveau -- acte
0337C Seconde ligne de l'Ècran de sÈlection de niveau -- monde
0337D Seconde ligne de l'Ècran de sÈlection de niveau -- acte
Et ainsi de suite, pour chaque acte de chaque zone.En modifiant ceci, vous pouvez changer les liens de l'Ècran de sÈlection de niveau vers des actes / zones diffÈrents.

Edition du texte
C'est clair !!! Gr’ce ý de nombreuses heures de piratage intensif, les informations sur l'Èdition des textes de la sÈlection de tableaux de Sonic 1 est maintenant disponible. Ceci fonctionne Ègalement avec la version finale de Sonic 2, dans l'Ècran de sÈlection de niveaux et la zone d'options! Cependant, Cyan n'a pas souhaitÈ diffuser la table et les adresses utilisÈs dans Sonic 2. Si vous Ítes suffisamment nombreux ý les rÈclamer ý Cyan via e-mail, ils pourraient Ítre placÈs quelque part ici.
Tout d'abord, vous devez comprendre le fonctionnement du code ASCII. Par exemple, si vous voulez coder une lettre A, son code hexadÈcimal est 41. La lettre B est codÈe par 42, et ainsi de suite. Pourquoi ont-ils dÈcidÈ de commencer l'alphabet ý ce rang... qui le sait? Cependant, les membres Èminemment populaires de l'Èquipe Sonic ont dÈcidÈ de virer ce systËme pourri. Voici la liste des valeurs hexadÈcimales correspondant aux caractËres dans l'Ècran de sÈlection de niveau:



00 = 0    01 = 1    02 = 2    03 = 3

04 = 4    05 = 5    06 = 6    07 = 7

08 = 8    09 = 9    0A = $    0B = -

0C = =    0D = <-   0E = <-   0F = Y

10 = Z    11 = A    12 = B    13 = C

14 = D    15 = E    16 = F    17 = G

18 = H    19 = I    1A = J    1B = K

1C = L    1D = M    1E = N    1F = O

20 = P    21 = Q    22 = R    23 = S

24 = T    25 = U    26 = V    27 = W

28 = X    FF = space


Vous les avez donc ý disposition ici. D'abord, convertissez le texte dont vous voulez modifier l'entrÈe en hexadÈcimal ý l'aide de la table ci-dessus.
Maintenant vous voici prÍt ý pirater. Paradoxalement, la raison de la complexitÈ de cette table n'est pas liÈe ý des impÈratifs de Hardware de la Genesis. C'est juste pour mettre le codage du texte ý l'abri des hackers... Hahahahaha!

Dans tous les cas, voici les adresses hexa de chaque ligne de texte:



35A2 = Green Hill Zone

35EA = Labyrinth Zone

3632 = Marble Zone

367A = Star Light Zone

36C2 = Spring Yard Zone

370A = Scrap Brain Zone

3752 = Final Zone (n'oubliez pas, ý partir d'ici il n'y a aucun message de STAGE)

376A = Special Stage

3782 = Sound Select

Vous remarquerez qu'aprËs le titre de la zone, il y a une flopÈe d'espaces, puis STAGE 1, puis encore des espaces suivis de STAGE 2,encore des espaces puis STAGE 3. GÈnÈralement, il n'y a aucun espace entre STAGE 3 et le titre de la zone suivante. Les adresses donnÈes ici correspondent au premier caractËre du titre de chaque zone.

Edition des palettes
Croyez-le ou non, gr’ce aux tentatives de piratage puissantes de Cyan,vous pouvez maintenant changer les palettes pour de nombreuses sections du jeu!
En premier lieu, soyez sšr d'avoir assimilÈ la faÁon dont la Genesis utilise son Hardware.
Comme vous le savez (j'espËre), une palette est une liste de couleurs. Les couleurs sont des mÈlanges des trois couleurs primaires - rouge, vert et bleu.
Lorsque vous dessinez sur un ordinateur, vous rencontrez normalement une palette fixe de 16 ou 256 couleurs (ý moins de travailler en 16 ou 32 bits). Cependant, la faÁon dont la Genesis traite ses palettes est lÈgËrement plus Ètrange.
Au lieu d'avoir une palette d'un certain nombre de couleurs, 16 ou 256 par exemple, la Genesis possËde quatre palettes, chacune contenant 15 couleurs. Lorsqu'un titre est dessinÈ ý l'Ècran, il peut utiliser l'une de ces quatre palettes. Par exemple, les sprites de Sonic utilisent toujours la premiËre palette. Cependant, les titres des zones peuvent utiliser n'importe laquelle des palettes, mais ils sont normalement contraints ý utiliser les trois derniËres.
La premiËre palette est une palette FIXE, c'est ý dire qu'elle contient les couleurs de ce qui apparaÓt dans TOUTES les zones- Sonic, les anneaux d'or, etc...
Cependant, les autres palettes peuvent changer en fonction des couleurs prÈsentes dans la zone.

Notez que, lorsque vous regardez la palette de la Genesis, vous voyez 16 couleurs dans chacune des palettes. Cependant, la premiËre couleur de la palette est toujours affichÈe comme la couleur du bord (uniquement visible sur la machine originale). Chaque fois que cette couleur est utilisÈe dans un sprite, elle apparaÓt transparente. Comme cette couleur n'en est pas une ý proprement parler, mais un indicateur, vous ne pouvez pas voir ses composantes RVB. C'est pourquoi, dans tous les cas de figure, la Genesis possËde 4 palettes de 15 couleurs. Lorsque je parle de la premiËre entrÈe de la palette, je veux dire celle situÈe aprËs la transparente.En principe, vous pouvez attribuer des valeurs RVB ý cette couleur transparente, comme elle dÈtermine la couleur du bord. Cependant, les quatre couleurs de transparence sont liÈes, donc cette procÈdure n'est pas une idÈe raisonnable.

Comme vous devez le savoir, les couleurs sont gÈrÈes par mÈlange des trois primaires, selon une Èchelle de variation sur 8 bits: 255 est la couleur ý son maximum, et 0 est noir.Chacune des trois couleurs primaires est ainsi dosÈe.
Cependant, la Genesis n'a pas une palette en 24 bits comme un ordinateur (ý cause de son anciennetÈ!).A la place, elle possËde 8 valeurs pour chaque couleur primaire.Ceceiu signifie que l'Èchelle varie entre 0 et 7, au lieu de 0 ý 255.
Ceci ne signifie pas que l'Ècran est foncÈ, car 7 est l'Èquivalent de 255, soit la luminositÈ maximale, et 0 reste noir.
Ainsi, pour convertir une teinte d'un PC vers une autre que la Genesis peut utiliser, il suffit de diviser le nombre par 32, et l'arrondir (7.8902 devient 7).

Sachant comment la Genesis travaille avec les couleurs, vous devez maintenant apprendre comment pirater les adresses spÈcifiques de faÁon productive (et fascinante).
A cet effet, il vous faut une palette sur laquelle travailler. Allez ý la zone que vous voulez modifier en vous servant de l'Èmulateur Genecyst et pressez F9 pour faire une copie d'Ècran.
Chargez cette image dans un programme d'Èdition tel Autodesk (pour DOS), ou Paint Shop Pro, et regardez la palette. Effectuez les modifications dÈsirÈes en notant quelles entrÈes vous avez modifiÈes et en quoi. Assurez-vous de ne pas modifier la couleur de transparence. Astuce: si vous utilisez PSP,et faites la copie d'Ècran avec Genecyst, vous rÈaliserezque la palette est affichÈe ý l'Ècran de faÁon organisÈe en quatre jeux de quatre.

Vous Ítes maintenant prÍt ý insÈrer les nouvelles palettes dans la ROM. A cet effet, vous devez convertir vos valeurs de faÁon ý ce qu'elles soient compatibles avec la ROM.
Pour ce faire, prenez vos valeurs et divisez-les par 16 (NON 32). Ensuite,enlevez les dÈcimales.
Si le nombre est impair, arrondissez-le ý l'entier pair le plus proche. Vous devez normalement obtenir 14 au maximum. Assurez-vous de ne pas Ítre en dessous de 0 ou au dessus de 14.
Convertissez ces valeurs en hexadÈcimal. Elles doivent Ítre reprÈsentÈes chacune par un unique caractËre hexadÈcimal.
Ouvrez la ROM dans l'Èditeur hexadÈcimal, allez ý l'adresse choisie (voir ci-dessous) et insÈrez les donnÈes. Chaque couleur est reprÈsentÈe par quatre caractËres hexadÈcimaux. Comme vous avez converti les composantes R V et B, pour chaque entrÈe, mettez un 0, puis la valeur hexa de la composante B, puis G et enfin R. Ceci modifiera la premiËre entrÈe de la palette.RÈpÈtez ce processus pour les entrÈes suivantes.

Voici une liste d'adresses des palettes.Il n'y en a pas beaucoup pour le moment, mais Cyan en ajoutera d'autres lorsqu'il aura le temps...

Voici le schÈma des octets:
_______MSB______LSB
octet 1 = ----bbb-
octet 2 = ggg-rrr-



238A = PremiËre couleur "rÈelle" de la palette principale (Commune ý toutes les zones)



23AA = PremiËre couleur "rÈelle" de la 2e palette de la "Green Hill Zone"

23CA = PremiËre couleur "rÈelle" de la 3e palette de la "Green Hill Zone"

23EA = PremiËre couleur "rÈelle" de la 4e palette de la "Green Hill Zone"



25AA = PremiËre couleur "rÈelle" de la 2e palette de la "Spring Yard Zone"

25CA = PremiËre couleur "rÈelle" de la 3e palette de la "Spring Yard Zone"

25EA = PremiËre couleur "rÈelle" de la 4e palette de la "Spring Yard Zone"


Piratage des Savestates Genecyst

Il y a des tonnes d'informations stockÈes dans les savestates. Toute la RAM dans laquelle le jeu tourne y est sauvegardÈe. Ceci inclut les dessins chargÈs, le tableau,et des tas d'autres. Voici les informations que nous avons dessus:

DonnÈes d'initialisation
Ces donnÈes contiennent le nombre de ves, le niveau,etc.TrËs pratique pour les petits tricheurs que vous Ítes! Il y a certaines choses que vous devez savoir d'abord. Les vies sont dÈfinies de cette faÁon:

000 00
001 01
002 02
003 03
004 04
005 05
006 06
007 07
008 08
009 09
010 0A
011 0B
012 0C
013 0D

Le premier nombre est le nombre de vies e tle dernier sa valeur hexadÈcimale.Vous devriez reconnaÓtre le motif dans cette table.Du fait que FF soit le maximum possible, vous pouvez avoir au maximum 255 vies.Les numÈros des actes sont dÈfinis de la mÍme faÁon: 00 est l'acte 1, 01 l'acte 2, et 02 l'acte 3. Simplissime.

011BD8 - Vitesse maximale
011BDA - AccÈlÈration
011BDC - Ralenti
012271 - Les sprites [
Tails]
012272 - Musique du niveau prÈcÈdent
012288 - Monde
012289 - Acte
01228A - Vies
012290 - Continues
012299 - Rings en base 1 (pour l'afficher, il faut attraper un anneau d'or)
01229A - Rings en base 256 (dËs que le nombre d'anneaux dÈpasse 256)
01229B - Minutes de l'horloge
01229C - Secondes de l'horloge
01229D - Secondes intermÈdiaires de l'horloge
01229E - Score en base 16 777 216 (dËs que le score dÈpasse cette valeur)
01229F - Score en base 65 536 (idem)
0122A0 - Score en base 256 (idem)
0122A1 - Score en base 1 (idem)
0123E9 - Joueur choisi dans le Special Stage (ne fonctionne pas dans Sonic 1) [
Yarharhar]
0123EB - Joueur dans le jeu (seulement Sonic pour Sonic 1) [
Yarharhar]

Gamma
Editez cette section pour changer la luminositÈ d'une couleur prÈcise.

011FB8-??????

DÈbogage
Cette section contient les informations pour activer le mode de dÈbogage et changer les afficheurs.

01227E - Modifie le moniteur sÈlectionnÈ en mode Debug
012472 - Changee en 01 pour activer le mode Debug
012280 - Sprite sÈlectionnÈ (02 est la seule valeur semblant fonctionner)
012281 - Bascule le mode Debug en actif/inactif.

Voici la description permettant de modifier certains moniteurs:

01 = InvincibilitÈ
03 = Super Ring (10 anneaux d'or)

SÈlection des tableaux
Cette section permet d'activer l'Ècran de sÈlection des tableaux et de changer la position du curseur avec les numÈros des sons.

012448 - Activation de l'affichage ralenti (activÈ normalement lors de l'ouverture de l'Ècran de sÈlection)
012449 - Activer le menu de sÈlection des tableaux
0123FB - SÈlection
0123FD - NumÈro du son affichÈ

La sÈlection des niveaux fonctionne ainsi:

00 Emerald Hill 1
01 Emerald Hill 2
02 Chemical Plant 1
03 Chemical Plant 2
04 Aquatic Ruin 1

( note du traducteur: je vous le livre tel que Áa m'a ÈtÈ transmis...)

15 est le sound test, et si vous sÈlectionnez 16, le Hidden Palace sera sÈlectionnÈ! Cependant, vous ne pourrez pas y jouer comme vous le pensez.

Images
Cette section vous permettra (plus tard!) de modifier les images pixel par pixel...

012478-FIN


Si vous avez des questions,commentaires,infos de piratage, ou n'importe quoi d'autre, vous pouvez nous envoyer un e-mail.
Cyan - manic@emulationzone.org / Website - The Underground Zone
Rocket - saxman@shentel.net / ICQ - 8257368.

Cette page fait partie de la "Sonic Hacking Community"!
Sonic The Hedgehog Sonic The Hedgehog 2 Sonic The Hedgehog 3 Sonic & Knuckles