Quelle bonne surprise de voir que pour une fois la protection de dungeon master est cité dans une publication sur les protection contre la copie !

Dommage que ce soit fait de manière un peu approximative. N'étant pas limité par le format de la page je vais apporter quelques précisions dans ce post.

Avant de commencer, une peite remarque à la personne en charge de relire les textes: cherchez l'erreur:
L'un des plus connus à l'époque était celui embarqué dans le jeu Dungeon Master sur Atari ST et Amiga.
Il est ici question d'un sujet évoqué dans le paragraphe précédent, s'agit il de "chaque ordinateur", "un lecteur de disquettes" ou "le logiciel adéquat" ? En tout cas ça ne peut pas être "leur propre protection" qui est féminin.

--

L'introduction fait un rapprochement entre la présence de protection contre la copie sur un jeu et la présence d'un lecteur de disquette permettant de copier les disquettes. Il faut préciser le contexte qui opposait les cartouches qui étaient peu piratées et les jeux sur disquettes qui l'étaient énormément en dépit des protection anti-copie comme le rappelle Doug Bell (lead designer et programmeur sur Dungeon Master qui a programmé la partie logicielle de la protection). Rappelons aussi, parce que ça a son importance, avant les disquettes il existait des ordinateurs qui utilisaient des cassettes qui pouvaient aussi être copiées et ça n'a pas pour autant généralisé les protections anti-copie pour ce média.

La faiblesse des protections anti-copie de l'époque provenait le plus souvent du fait qu'elles étaient rajoutées après coup avec un budget limité et étaient faciles à détecter et supprimer. Les crackers faisait sauter la protection en quelques heures à quelques jours et moins d'une semaine après sa sortie un jeu était distribué sans protection dans les réseaux pirates.

FTL (Faster Than Light), le studio dérrière dungeon master avait un avantage que les autres studios n'avaient pas. En plus d'une analyse pertinente de la situation ils possédaient un brevet (US4849836A - Copy protection for computer discs) sur une technique de protection contre la copie des disquettes qui nécéssitait un équipement spécialisé valant 40 000$ qu'il possédait et qui n'était plus fabriqué.
C'est cet équipement qui a permis de mettre un fuzzy bit sur le secteur 7 de la piste 0 de la disquette de Dungeon Master, offrant ainsi une protection matérielle.

Contrairement à ce qu'avance l'article de CPC, ce ne sont pas les logiciels de copie qui empéchait la copie de la disquette. La limitation était matériel et se situe au niveau du contrôleur du lecteur de disquette. D'ailleurs une extension matérielle de l'atari ST, la cartouche discovery apporte un contrôleur avancé du lecteur de disquette permettant d'écrire les fuzzy bits et de copier dungeon master, du moment qu'on sait quoi copier et comment piloter le contrôleur, c'est à dire comme ça:

Code:
DUNGEON MASTER
par FTL GAMES/SOFTWARE HEAVEN INC.
!
0 : W 1 9 535 14
1 : R 10
R : 79
)
credits to Jean Louis Guérin pour le code

Voici l'explication:
La première commande "W" ordonne de lire une partie de la piste "0" directement comme espacement de transition de flux. Dans cette piste, les secteurs "9" devraient avoir une bonne somme de contrôle. Le type de synchronisation "1" signifie que l'équivalent de "535" octets MFM doit être lu comme espacements de transition de flux commençant après le "14ème ensemble de 3 marques de synchronisation ($A1). Le 14ème ensemble de marques de synchronisation est celui qui indique le début du champ de données du secteur n°7 qui contient les fuzzy bits.
La deuxième commande "1 : R 10" indique de lire une piste non protégée contenant 10 secteurs
La troisième commande "R : 79" indique de répéter la commande précédente par la piste 79.
Petit retour sur la comparaison avec le support cassette: si dans les deux cas la copie ne peut se faire seulement avec le matériel intégré dans l'ordinateur, dans le cas de la cassette l'équipement nécessaire étant souvent déjà disponible ou facile d'accès avec une chaine double cassette donc sans surcoût majeur. Toutefois il s'agissait de copie analogique qui entrainait une perte de signal à chaque recopie, protégeant d'une copie massive et faisant office de protection anti-copie par défaut
.
L'éfficacité de l'utilisation du fuzzy bit repose sur la conversion du signal analogique présent sur la disquette en signal numérique interprétable par l'ordinateur. Lors de la copie d'une disquette, la conversion en signal numérique permets de s'affranchir de la perte de signal à chaque nouvelle copie permettant de copier massivement la disquette. L'investissement pour pouvoir copier ce fuzzy bit étant bien plus élevé que le prix du jeu, les gens ont logiquement préféré acheter le jeu (personnellement j'ai même acheté mon atari st pour ce jeu) au point que 50% des possesseurs d'atari ST ont acheté dungeon master.

Revenons à Doug Bell qui a su tirer parti de cet avantage matériel. Ce n'est pas tout de rendre très coûteux la simple copie de la disquette, il faut aussi que les routines de protection logicielle qui l'exploitent ne soit pas faciles à contourner ou à supprimer, ne soit pas invasive pour l'acheteur légitime et qu'elles ne coûtent pas une fortune.
Sachant que sa protection contre la copie serait crackée tôt ou tard, Doug Bell savait que son intérêt était qu'elle tienne aussi longtemps que possible. Tenant compte des faiblesses des autres mécanismes de protection et en partant du principe que les crackers se servent d'émulateur matériel la protection a été intégré au jeu lui même en prenant en compte les limitations des émulateurs matériel de l'époque.

Les routines de protections de Dungeon Master sont redondantes mais isolées entre elles de sortent que si une est trouvée elle ne mènera pas aux autres. Les vérifications se chevauchant et se recoupant entre elles.

Une astuce très efficace qui a été utilisé est une réponse variable et décalée dans le temps. Quand la routine de protection détecte l'absence de la protection anti-copie (le fuzzy bit) non seulement le jeu réagit de manière différente à chaque fois, mais il va se passer un certain temps avant que cette réaction se produise. Ce découplage permettant de tromper le cracker qui pensera avoir réussi à cracker le jeu alors qu'il n'aura pas trouvé toutes les routines de protection, et de faire croire au joueur que le crack est mal fait et a introduit des bugs dans le jeu.

Un exemple tout simple, tous les personnages meurent d'un coup sans raison apparente en plein milieu d'un niveau.
J'ai beaucoup joué à plusieurs version partiellement crackées sur atari ST à l'époque, mais je n'ai jamais rencontré certains des exemples avancés dans l'article CPC (pas de portes qui ne s'ouvrent pas, pas d'armes qui ne fonctionnent plus) qui font vraiment plus penser à des bugs dû à un mauvais crack qu'à l'effet d'une protection anti-copie puisque ces problèmes n'existent pas dans la version originale.

Il y a d'autres éléments notable dans la partie logicielle de la protection anti-copie, comme une routine dissimulée dans les graphismes du jeu. Encodé comme une image, cette routine est séparée en plusieurs parties et sont appelées de manière discrète par une fonction du code du jeu qui va chercher l'image en question et appeler une autre fonction qui va modifier son propre code en chargeant celui qui est caché dans l'image.

Au final le succès de Dungeon Master vient surtout que ce jeu était une révolution pour l'époque au point qu'il a lancé un nouveau genre de jeu, mais le fait que sa protection a tenu plus d'un an avant d'être vaincue a sans aucun doute été un point central à son succès commercial, boostant du même coup les ventes des Atari ST puis des barrettes d'extension de mémoire pour l'Amiga. Les deux semaines de développement investies ont été largement rentabilisées.

32 ans après sa sortie, en 2020 je joue encore à Dungeon Master et sa suite Chaos Strikes Back grace à Chaos Strikes Back for Windows (and Linux, Raspbian, MacOS X, Pocket PC). Je joue sous linux et si vous rencontrez des difficultés avec la version linux de la page précédente sur un linux 64bits, j'ai contribué à aider l'auteur Paul Stevens à corriger ce problème en 2018 et vous trouverez une version qui fonctionne ici pour CSB et ici pour DM.



Pour plus de détails de la protection contre la copie de Dungeon Master et lire l'interview de Doug Bell:
Technical Documentation - Copy Protection (Dungeon Master Encyclopaedia)
Technical Documentation - Dungeon Master and Chaos Strikes Back Graphics.dat: Hidden code (Dungeon Master Encyclopaedia)

Pour en savoir plus sur le fuzzy bit et les weak bits:
Technical Documentation - Dungeon Master and Chaos Strikes Back - Detailed analysis of Atari ST Floppy Disks (Dungeon Master Encyclopaedia)
Copy Protection Information: Weak Bits, Bit-rate ... (atari-forum.com version archive.org)

Si il est impossible d'écrire le fuzzy bit avec un simple lecteur de disquette, il est possible de le lire correctement pour produire une image de la disquette dans un fichier à des fins de préservation avec les outils de la Software Preservation Society