Moon Patrol (Atari, 1982)

Que d'heures passées à essayer d'atteindre la borne Z sans succès...
J'ai récupéré (de nouveau) l'original d'une célèbre boîte rouge AtariSoft et je me suis lancé dans l'étude de la protection et cela a donné les résultats suivants, après un bon boot trace...


SYSTEME DE PROTECTION
Protection disque


BOOT TRACE
chargement du boot 0
déplacement sur la piste 1, chargement de $800 octets à partir de $B000
saut en $B000
quelques initialisations puis saut en $B100
déplacement sur la piste 2 et les suivantes,
chargement de $800 octets par piste à partir de $800 jusqu'à $A7FF
déplacement de zones mémoire dans la zone $B000-$BFFF
affichage de la page d'accueil, choix des options
chargement de 4 fois $800 octets de $4000 à $5FFF (image)
démarrage du jeu
...boucle...


STRUCTURE DE LA DISQUETTE
T0/S0 : $800, boot 0
T1 : $B000-$B7FF
T2..T21 : $800-$A7FF
T22..T25 : $4000-$5FFF


STRUCTURE D'UNE PISTE
Une piste est composée d'un seul "secteur", la routine de lecture recherche quelques nibbless de synchronisation $FE $FE, quelques nibbles d'entête puis les $800 octets de chaque piste sous la forme de nibbles codés en 4*4.
La routine de lecture est ainsi très simple et très rapide.
Cette structure est incopiable avec un Locksmith standard mais il est très facile de réutiliser la routine de lecture du jeu pour récupérer l'ensemble du contenu de la disquette. Le problème reste celui lié à la lecture sur une disquette standard...


MODIFICATION DE LA ROUTINE DE LECTURE
Trois options :
- utiliser une RWTS standard
- passer le disque en ProDOS
- routine de lecture $C65C

La première ne peut pas être utilisée parce que l'ensemble de la mémoire de $800 à $BFFF est utilisé. Il en est de même pour le passage en ProDOS à moins d'utiliser l'écran texte.

La dernière piste semble être la meilleure voire la seule : utiliser la routine de lecture en $Cx5C en remplacement de l'actuelle. Ce sera celle qui sera retenue, il faudra ainsi sauvegarder les paramètres de la page 0 qui sont utilisés, débrancher la lecture d'une piste en lecture de 8 secteurs d'une piste et roulez jeunesse...
Eh bien, ça y est...
...Moon Patrol boote proprement grâce à la routine de lecture en $Cx5C.
Ce jeu est une merveille ;-)


The disk image is available at https://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,
LoGo