Gamoover

[move]Vous vous épilez le maillot et collectionnez les bornes d'arcade avec des hommes musclés dessus ? Alors soyez les bienvenus sur Gamoover ! [/move]

Décrypter les Jeux CPS-2

Démarré par Bonky0013, Lundi 11 Juillet 2016, 20:00:02 PM

Bonky0013

Salut les Filles  :D

Bon, cela fait un petit moment que je suis sur les sets de la team avalunch / IDC / leo.
Seul dans mon coin, avec mon petit (trés petit   ;) ) savoir , j'ai essayé de comprendre comment décrypter un jeux cps2..... et avec réalisme, c'est bien trop hors de portée pour mon cas  :bail: quand je regarde toutes les modifs faite (par rapport à l'original la rom a plus de 50000 dif...)

J'allais laisser tomber, rester aux modifications de code region et attendre les nouvelles release, quand je suis tombé sur un poste de IQ_132 :)

http://neosource.1emulation.com/forums/index.php?topic=755.0

A l'époque j'avais souvenir d'avoir vu ça, mais je n'étais pas du tout dans le trip ;)
Je me dit, avec le temps que j'ai paumé, je peut prendre 10 min et regardé ce vieux truc......

Je télécharge le fichier (en plus le code source est dispo ;) ) et je teste sur le premier jeux cps2 de la liste : 1944
En l'espace d' une seconde le programme me fait 2 fichiers "decrypté" mais comme IQ avait prévenu, non fonctionnel sur hard  ( d'ou peut etre la perte d'intéret à l'époque pour mon cas)

Petit coup de winhex et la je vois le code qui à été bousculé, normal je me dit.
Allez, je suis au bout de mon trip, plus qu'un coup de "comparer" et ce sera fini, je pourrais laisser tomber.

Mais voila, le voila qui tue  :D

En comparant le set decrypté généré par le logiciel d'IQ et la version décrypté de 1944 USA de Motzilla, je me rend compte qu'il n'y a "plus que" 23 différences sur la rom 03  !!  ;D

1. C:\temp\nffudm.03: 524 288 octets
2. C:\temp\nffu.03_decrypted_Bonky: 524 288 octets
Offsets: décimal

  208: 6F 17
  209: 6F 0D
  216: A0 A1
  217: 90 B8
 1112: FF 40
 1114: F2 02
 1115: FF 00
 1118: FF 40
 1120: F4 04
 1121: FF 00
 1124: FF 40
 1126: F6 06
 1127: FF 00
 1130: FF 40
 1132: F8 08
 1133: FF 00
 1136: FF 40
 1138: FA 0A
 1139: FF 00
 1760: FF 40
 1762: F0 00
 1763: FF 00
29258: F0 FF

23 différence(s) trouvé.



Dans la foulée je regarde la version Jap  :D   et .....


1. C:\temp\nffjdm.03: 524 288 octets
2. C:\temp\nffj.03_decrypted_Bonky: 524 288 octets
Offsets: décimal

  208: 6F 90
  209: 6D 8F
  216: A2 EA
  217: 90 B1
 1112: FF 40
 1114: F2 02
 1115: FF 00
 1118: FF 40
 1120: F4 04
 1121: FF 00
 1124: FF 40
 1126: F6 06
 1127: FF 00
 1130: FF 40
 1132: F8 08
 1133: FF 00
 1136: FF 40
 1138: FA 0A
 1139: FF 00
 1760: FF 40
 1762: F0 00
 1763: FF 00
29258: F0 FF

23 différence(s) trouvé.



Autant de diff  :D

Si cela se passe pareil pour les autres jeux / set ça pourrais motiver certain  :D
Comme je sais qu'il y a des tueurs ici j'apporte ce petit "truc" si cela peut motiver un membre de se lancer et d' apporter une meilleure compréhension du bouzin à modifier ;)

:-)=


EDIT : J'avais oublié de mettre le log généré en même temps que le set décrypté ( pas d'intérêt, mais je le rajoute).

Double match at address (08eea); it is most likely an opcode. (data 832d, opcode 41f9)
Double match at address (28eea); it is most likely an opcode. (data 832d, opcode 41f9)
Double match at address (29628); it is most likely an opcode. (data 48c3, opcode 41f9)
Double match at address (45af2); it is most likely an opcode. (data 4cd6, opcode 0005)
Double match at address (66cfc); it is most likely data. (data 0000, opcode 78dd)
Double match at address (69f22); it is most likely data. (data 0000, opcode 9c1a)
Double match at address (7efb0); it is most likely data. (data 2800, opcode e4ba)

TylerDurden67

Hello mon bonky  :-*

Avoir les différences nécessite de posséder une Version décryptée donc pas d'intérêt étant donné que les offsets (et le nombre a modifier)  different sur chaque jeu.

Bonky0013

Salut Tyler  :-*

Je pensais que cela fesais pas mal de taff en auto, mais comme tu dits cela diffère sur chaque jeu et certains c'est plus 23 diff  :'(

Dommage j'aurais aimé au moins réussir à faire un set  :D :D :D
Mais la wow c'est péchu c'est plus le Cps-1  ;)

<:)

TylerDurden67

#3
nan c'est cool,ca peut etre une bonne base!

en gros,le cps2 ca marche comme ca:données cryptées que l'on decrypte via une clé d'encryption qui est stockée dans la pile.
lorsqu'elle est morte,plus de clé
du coup,faut decrypter le code,et changer la region de la sram pile (0x400000-0x40000A ) en 0xFFFFF0-0xFFFFFA qui est dans la work ram.(donc patcher tout acces memoire a ces adresses pour eviter qu'elles ne soient effacées pour garder ton code/variables).la clé ne sert plus, vu que le code est décrypté

donc,si tu deassembles ton code de 1944 et regarde aux offsets qui diffèrent,tu as surement des patchs pour les memoires.
l'autre chose a faire,c'est de comparer un autre jeu pour voir s'il y a des similitudes (les offsets changeront par contre vu que chaque code est different)

il existe encore des jeux non decryptés?

Bonky0013

Merci pour tes infos  ^-

il reste "Vampire Hunter 2 - darkstalkers revenge" à faire en décrypté (que le set de raz dispo)
Et pas mal de révision de jeux à faire.
Mais bon je chipote, l'essentiel est fait ;)