Inscription : 04 Jan 2008, 09:09 Message(s) : 1107 Localisation : Var
De mon côté j'ai rajouté un embryon d'article (qu'il faudra étoffer, si quelqu'un veux nous aider a ce sujet, il sera le bien venu) concernant les softs compatible CPC-PCW. J'ai aussi ajouté un nouveau mot clef pour les trouver plus facilement. Tout les titres qui sont dans la liste, je les avais testé sur CPW il y a de long mois en arrière, je pensez pas m'en servir pour compléter la BDD comme quoi !!!
_________________ Mes pokes et Cheat-Mode sont tous vérifiés Mon site sur le CPC : http://www.cpc-p0wer.com
Attention cependant quand tu dis que "tout n'est pas compatible exemple : Yes Chancellor!". C'est inexact. Yes Chancellor étant programmé en MALLARD BASIC, il est 100% compatible avec le CPC sous CP/M. C'est seulement son affichage qui n'est pas optimisé pour le CPC. Difficile à jouer, moche, mais compatible.
Un logiciel est incompatible s'il plante, ou s'il produit des syntax error, des overflow, etc. Attention à cette nuance.
D'ailleurs, même en Locomotive BASIC sur CPC, même quand l'écran n'a que 25 lignes x 32, 40 ou 80 colonnes, tu peux faire un LOCATE 210, 180 : PRINT "BONJOUR" : (la limite est 255) Ca va décaler, comme Yes Chancellor, mais c'est compatible et accepté par le CPC.
En fait, tout ce qui tourne sous CP/M et qui ne fait pas appel au firmware de la machine est généralement compatible CPC/PCW.
Pour donner un exemple, si on écrit un programme en Turbo-Pascal qui utilise l'Amsdos et du langage machine pour afficher des graphiques, comme je l'ai fait, ce n'est plus compatible PCW. Sinon oui.
Une petite astuce : si vous écrivez sur votre CPC un programme en Locomotive BASIC qui n'utilise que des instructions compatibles avec le Mallard BASIC, vous pouvez l'enregistrer en Ascii : SAVE "monprog.bas",A Le MALLARD BASIC du PCW pourra le charger et l'exécuter.
Dernière édition par sPOKE le 15 Fév 2013, 13:53, édité 1 fois.
Inscription : 13 Jan 2010, 14:25 Message(s) : 2270
Il n'est pas faut de parler d'incompatibilité dès lors que le programme nécessite un mode d'affichage différent, ou encore plus de mémoire pour fonctionner correctement. (sans pour autant que le code ne puisse être interprété par les deux machines) C'est juste employer le terme dans son sens premier.
Maintenant, il serait tout à fait possible de résoudre cela en paramétrant le CRTC de façon à avoir un écran en 90x32 chars (24K) ... Mais le jeu n'en vaut vraiment pas la chandelle.
Je suis allé chercher la définition exacte du mot compatible dans le dictionnaire :
Citer :
Le mot compatibilité décrit l'état de ce qui est compatible. Ce dernier vient du latin compatibilis, qui qualifie d'une manière générale deux éléments pouvant aller ensemble ou s'accorder.
Effectivement, de ce point de vue, le jeu n'est pas compatible CPC. Mais il est compatible au niveau du langage de programmation. La nuance est fine, mais elle existe.
Ce jeu est donc à la fois compatible et incompatible, ce qui est en soi assez exceptionnel...
Autre solution, ce serait de pouvoir casser cette protection SAVE " ",P du Mallard BASIC, On pourrait ainsi adapter simplement l'affichage du jeu.
Pour rajouter une précision sur la compatibilité CP/M entre CPC et PCW :
Si vous utilisez CP/M 3.1 sur CPC et PCW, attention aux programmes Amstrad propriétaires comme SETKEYS par exemple : ils ne sont pas compatibles car ils utilisent le firmware de la machine. Donc vous ne pourrez pas redéfinir le clavier sur PCW avec Setkeys.com du CPC et vice versa. Palette, Disckit et tous les autres programmes spécifiques CPC ne marcheront pas.
Lancez Amsdos.com sur le PCW et ça plante la machine, vu qu'elle ne contient pas l'AMSDOS... ^^
Faudrait pouvoir casser la protection SAVE " ",P du MALLARD BASIC pour pouvoir adapter le jeu à l'écran du CPC.
Voilà, c'est fait, j'ai déplombé la protection SAVE " ",P du MALLARD BASIC de Locomotive Software! (à l'ancienne, sur un vrai CPC. Pas de Winape ni de Multiface...) C'est cool, j'ai enfin pu regarder le listing de l'éditeur de texte RPED du célèbre Roland Perry, qui est protégé. Je vous mets ci-dessous par exemple le listing du chargeur protégé "DISC.BAS" du jeu YES CHANCELLOR! Si quelqu'un veut adapter le jeu YES CHANCELLOR! à l'écran du CPC, je lui transmets tous les listings BASIC déprotégés.
(dans cas, si vous voulez l'adapter au CPC, je ferai que le jeu se lance avec un simple Run "disc" depuis AMSDOS. Plus besoin de Run "CPM" , Dir, taper BASIC , taper run "Disc"... )
L'avantage quand on déplombe un Langage avec SAVE " ",P par rapport à un logiciel commercial, c'est qu'on peut se créer une version du fichier non protégée, puis une autre protégée, afin de travailler avec la technique dite "d' analyse par comparaison" :
Écrivons un programme, le plus simple possible. On le sauvegarde normal, puis protégé pour comparer les fichiers.
On regarde avec un éditeur de secteur le fichier normal (pas d'en-tête de fichier ici, vu que c'est du CP/M) ça se décode facilement : D'abord 4 octets de tête, puis &11 qui donne 17 en décimal : longueur de la ligne : 17 octets Le 01 c'est le numéro de la ligne, le &B9 c'est le token de REM en Mallard BASIC, &20 c'est l'espace après le REM puis &41 est le code Ascii de "A", puis trois octets à Zéro pour signifier la fin du programme BASIC, et enfin &1A qu'on trouve à la fin de presque tous les fichiers sans-entête ou fichiers Ascii.
On regarde maintenant le fichier protégé : on s'aperçoit que tous les octets ont changé, sauf le dernier et les 5 premiers, dont l'un est passé de 0 à 1 : ça sent le flag de protection...
On mets ce flag à zéro et comme par hasard, LIST, SAVE, PEEK & POKE redeviennent utilisables !
Certes c'est encore encodé, mais ça liste. Maintenant qu'on sait où se repère le programme pour détecter la protection si ce flag est mis à 1, il nous suffit maintenant d' un désassembleur CP/M pour trouver cette routine de détection. Et voilà!
Inscription : 13 Jan 2010, 14:25 Message(s) : 2270
Yep. Et, à voir la zone "AAAAAA" cryptée avec des octets différents, on imagine très bien que le BASIC utilise un XOR avec un autre élément en mémoire qui sert de clef de cryptage. (pourquoi pas une partie du CP/M à défaut d'une clef définie pour cet usage)
Yep. Et, à voir la zone "AAAAAA" cryptée avec des octets différents,
Oui, c'est la base en cryptographie d'utiliser des clés. Ce n'est pas une coïncidence si j'ai choisi AAAAAAAA, afin de voir les variations. Les gars de chez Locomotive sont pas idiots, ils ont amélioré leur SAVE " ",P et les clés, ils ont aussi interdit SAVE, PEEK & POKE, chose qu'ils n'avaient pas faite dans leur protection précédente Locomotive BASIC.
Petite aide pour les chercheurs : comme je n'avais pas de doc sur le Mallard BASIC, il me fallait connaître le point d'entrée en mémoire vive où sont stockées les lignes de BASIC et identifier les numéros de token de ce BASIC, la structure, etc. Comme j'en savais rien, j'ai balancé mon "sniffer" maison :
Comme il y a rarement 3 lettres A qui se suivent en RAM, (vous pouvez porter le test à 5 ou à 10 au cas où...) Voilà, lancez et laissez tourner la bestiole, et partez tranquillement boire un café, ou allez vous regarder un film piraté... (moi, en bon geek, c'était Bangkok Adrénaline ^^) :
le sniffer s'arrêtera pile sur vos lignes BASIC et vous donnera le point d'entrée : 31382
(pourquoi pas une partie du CP/M à défaut d'une clef définie pour cet usage)
Non, surtout pas une partie du CP/M car Mallard BASIC peut tourner sur un CP/M différent, le 2.2 par exemple... et aussi sur un ordi différent (chaque CP/M est "un peu" différent (Bios, EMS filename) pour s'adapter à l'ordinateur hôte)
Le mieux c'est d'utiliser une partie du Mallard BASIC lui-même, qui se transportera n'importe où, qu'on soit sur un PCW, un CPC, un autre ordi CP/M. Les constructeurs aiment bien mettre des numéros de série dans leurs programmes par exemple... et utiliser plusieurs clés pour empêcher le décodage.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 20 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum