Quelques news du coté de Charles MacDonald et du CPS2…:
-hein..? mais le CPS2 est déjà dans MAME…?
-oui mon petit, mais c’est pas accurate et toujours protégé…
-Mais ça marche pourtant…!!
-oui mon petit, mais grâce aux Xors, mon petit, grace aux Xors…
Oui on parle bien de decryption la, et non plus de feintes… Notre Ronald préféré travaille dur sur la decryption du CPS2 en ce moment depuis qu’il a mis de coté son travail sur le System32… La news, traduite par votre serviteur dans son intégralité approximativement, ne comprenant moi même pas entiérement ce qui est expliqué ici… 🙂
« J’ai fais des recherches sur le hardware CPS2 ces derniers mois, et ce depuis que j’ai mis en pause mon travail sur le system32… Tout d’abord, je precise que mes recherches sont basées sur le travail de Raz, qui se trouve sur CPS2Shock. Comme vous vous en doutez le résultat de ses premiéres experimentations fut essentiel à ce projet.
Le harware CPS2 utilise un CPU 68000 tournant 16MHz, bien que sa vitesse effective est plus basse due à la vidéo DMA. Dans la gamme d’adresse des 16Mb, les 4 Mb inférieurs sont répartis pour le stockage des ROMs du code de programmes et des données. Le premier Méga de ce secteur est la où se passe le decryptage, bien que cette limite de point de stockage puisse varier d’un jeu à l’autre.
En plus du contrôle de la gamme d’adresse, il y a un minuteur qui expire au bout d’un certain temps. Quand cela arrive, le decryptage est fini et 68ko exécuteront le code exactement telle qu’il est lu en mémoire. Une séquence d’une ou plusieurs instructions, selon les jeux, remettront ce minuteur à zéro, permettant le cryptage de nouveau. Ce minuteur peux être repris à n’importe quelle moment à partir du moment ou il a expiré (=0).
La logique de décryptage utilise les bits de A16 à A1 par le bus d’adresse 68k, ce qui veux dire que l’encryptage enveloppe chaque 128K. (NDT: ca c’est lui qui le dit, pasque moi je pige que dalle ^^). Pour chaque mot encrypté à une certaine adresse, il n’y a exactement qu’une decryption possible unique; en contraste avec le FD1094 il n’y a pas d’opcodes desactivés ou de datas vierges (‘blanked’) qui donneraient la même valeure decryptée. Les datas lues par le code principal, ou l’emplacement du code de l’utilisateur sont decryptées (opcodes et operands) et les datas du code principal ou l’emplacement du code de l’utilisateur ne le sont pas (NDT: encore une fois rien compris a ce que je viens de traduire, mais bon, c’est mot pour mot la news…).
La taille d’un set complet de données decryptées d’un jeu est plutot énorme, totallisant 8GB – ca prend un temps monstre à dumper (it takes forever to dump). Il n’y a pas de tables dupliquées dans le jeu de tables d’un jeu unique, ou d’un jeu à l’autre, bien que je n’ai examiné que les tables dumpées des deux ‘B’ boards que j’ai.
J’ai discuté de l’ analyse des données des tables avec quelques personnes et pour l’instant, trouver la solution de la decryption à l’air plutot balaise. En conséquence, je pense que le progrès envisageable dépendra de l’aide qu’on peux recevoir. Si vous avez des compétences dans ce type de chose (un background mathématique plutot costaud (NDT: math sup/math spé?) et êtes familiers avec la decryption, le decodage/encodage, et aimeriez nous donnez un coup de main, alors svp contactez moi.
Travailler sur le hardware CPS2 à été un vrai challenge dues aux nombres de parties différentes impliquées. J’ai conçu un systeme de communication avec un adaptateur USB, un generateur DTACK, et interfacé ça à la vidéo CPS2 et au bus péripherique (NDT: encore une fois pas tout compris), ainsi que plusieurs adaptateurs pour remplacer les GALs 16V8 avec des GALs 22V10 plus performant qui ont leur propre bus I/O partagés.
Euh voila, j’espere que ca vous parlera plus qu’à moi, ca a pas été evident de vous traduire tout ça ^^