|
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 tche 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 de 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 sre ý 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 !!! Grce ý 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, grce aux tentatives
de piratage puissantes de Cyan,vous pouvez maintenant changer les
palettes pour de nombreuses sections du jeu!
En premier lieu, soyez sr 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 |