CPC Rulez
https://cpcrulez.fr/forum/

keytones des jeux ariolasofts (Killer Ring mais pas que)
https://cpcrulez.fr/forum/viewtopic.php?f=8&t=6155
Page 1 sur 1

Auteur :  dlfrsilver [ 04 Nov 2018, 21:49 ]
Sujet du message :  keytones des jeux ariolasofts (Killer Ring mais pas que)

Pour killer Ring d'Ariolasoft en K7, le keytone consiste en ceci :

un bloc de 4000 pulses (17 samples chacun en moyenne, donc 17*3500000/44100= 1350 T par pulse) suivi d'un bruit court et ensuite d'un bloc encore plus petit de 83 pulses (20 samples chacun en moyenne, 20*3500000/44100= 1587 T par pulse).

Auteur :  dlfrsilver [ 05 Nov 2018, 09:18 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Bon on a un gros souci avec le keytone de ce jeu.

déjà, la version dumpée par Megachur ne fonctionne pas sur mon CPC 464. La clé est perçue comme invalide par ce dernier.

Par contre, j'ai dumpé l'original que m'a confié Loic Daneels, et le keytone permet de finir le chargement du jeu.

Problème : César a calculé via le WAV que je lui ai envoyé le nombre de T et le nombre de pulse. Mais voilà, là encore, les blocs pure tones générés fonction du calcul de César comme celui de Megachur ne fonctionnent pas sur un vrai CPC.

Qui peut extraire la routine de la protection et documenter très exactement ce qu'elle fait, et demande exactement ?

Auteur :  dlfrsilver [ 06 Nov 2018, 21:34 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Voici la clé telle que je l'ai enregistrée, et qui est lue et qui fonctionne sur un vrai CPC en pièce jointe.

Si quelqu'un peut extraire donc la routine de protection, et la commenter, tout en examinant le bout de WAV que j'ai inclus, ça permettrait de comprendre d'ou vient le problème.

Est-ce que c'est simplement les outils de conversion qui sont pas assez précis ?

Est-ce que la routine requiert quelque chose de particulier côté signal ?

etc etc.....

Auteur :  Megachur [ 07 Nov 2018, 20:40 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...

on en reparlera après ton analyse...

si tu peux essayer ce wav aussi sur ton amstrad stp !?

:biere:

Auteur :  dlfrsilver [ 08 Nov 2018, 09:47 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...

on en reparlera après ton analyse...

si tu peux essayer ce wav aussi sur ton amstrad stp !?

:biere:


justement, la clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.

Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).

Auteur :  Megachur [ 08 Nov 2018, 19:03 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

dlfrsilver a écrit :
Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...

on en reparlera après ton analyse...

si tu peux essayer ce wav aussi sur ton amstrad stp !?

:biere:


justement, clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.

Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).


--> est-ce que tu as essayé le wav que je t'ai fourni en .zip sur ton cpc 464+ ?

Auteur :  dlfrsilver [ 08 Nov 2018, 23:08 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Megachur a écrit :
dlfrsilver a écrit :
Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...

on en reparlera après ton analyse...

si tu peux essayer ce wav aussi sur ton amstrad stp !?

:biere:


justement, clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.

Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).


--> est-ce que tu as essayé le wav que je t'ai fourni en .zip sur ton cpc 464+ ?


testé ce soir sur mon 464 standard.

La clé de ce WAV est erronée, son résultat étant faux, la routine de la protection fait faire un reset à mon CPC.

Auteur :  dlfrsilver [ 09 Nov 2018, 09:21 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

ah tant que j'y suis, explications supplémentaires :

la routine de protection gère manifestement 3 états différents :

1) je reconnais pas clé, donc j'attends indéfiniment la valeur dont j'ai besoin

2) je reconnais la clé, mais les valeurs me permettant de calculer la valeur de décryptage liées au signal sont incorrectes, et donc la valeur hexa de décryptage est erronée. Je reset le CPC !

3) je reconnais la clé, la valeur est bonne, j'envoie dans les registres la valeur attendue, et je décrypte le jeu.

Pour l'instant, on est coincé à l'étape 2.

Auteur :  hERMOL [ 09 Nov 2018, 11:18 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Code :
RAM:6C26 ; ---------------------------------------------------------------------------
RAM:6C26                 di
RAM:6C27                 ld      bc, 0F610h      ; B => I/O port address for PPI 8255 port C
RAM:6C2A                 out     (c), c
RAM:6C2C                 ld      bc, 0F500h      ; B => I/O port address for PPI 8255 port B
RAM:6C2F loc_6C2F:
RAM:6C2F                 call    _ReadTape_6C19
RAM:6C32                 jr      z, loc_6C2F
RAM:6C34                 ld      d, 0
RAM:6C36 loc_6C36:
RAM:6C36                 ld      e, 1Eh
RAM:6C38                 call    _ReadTape_6C19
RAM:6C3B                 jr      z, loc_6C2F
RAM:6C3D                 ld      a, 4
RAM:6C3F                 cp      e
RAM:6C40                 jr      c, loc_6C2F
RAM:6C42                 dec     d
RAM:6C43                 jr      nz, loc_6C36
RAM:6C45
RAM:6C45 loc_6C45:
RAM:6C45                 ld      e, 0FFh
RAM:6C47                 call    _ReadTape_6C19
RAM:6C4A                 jr      nz, loc_6C45
RAM:6C4C
RAM:6C4C loc_6C4C:
RAM:6C4C                 ld      hl, 26h
RAM:6C4F                 ld      (hl), 0
RAM:6C51
RAM:6C51 loc_6C51:
RAM:6C51                 ld      e, 5
RAM:6C53                 call    _ReadTape_6C19
RAM:6C56                 jr      z, loc_6C51
RAM:6C58 loc_6C58:
RAM:6C58                 ld      e, 32h
RAM:6C5A                 call    _ReadTape_6C19
RAM:6C5D                 jr      z, loc_6C62
RAM:6C5F                 inc     (hl)
RAM:6C60                 jr      loc_6C58
RAM:6C62 ; ---------------------------------------------------------------------------

RAM:6C62 loc_6C62:
RAM:6C62                 ld      a, (hl)        ; xor byte --> a=(26h)
RAM:6C63                 cp      0Ah
RAM:6C65                 jr      c, loc_6C4C

RAM:6C67                 ei
RAM:6C68                 ld      de, 40h        ; debut decode
RAM:6C6B                 ld      bc, 6C18h      ; len decode
RAM:6C6E                 ld      l, (hl)
RAM:6C6F                 ex      de, hl
RAM:6C70 loc_6C70:
RAM:6C70                 ld      a, (hl)
RAM:6C71                 xor     e
RAM:6C72                 ld      (hl), a
RAM:6C73                 inc     hl
RAM:6C74                 dec     bc
RAM:6C75                 ld      a, b
RAM:6C76                 or      c
RAM:6C77                 jr      nz, loc_6C70
RAM:6C79                 jp      &16AA                  ; GOODBOY
RAM:6C79 ; ---------------------------------------------------------------------------


RAM:6C19 _ReadTape_6C19:
RAM:6C19                 dec     e
RAM:6C1A                 ret     z  ; lit si e>0
RAM:6C1B                 in      a, (c)
RAM:6C1D                 xor     c
RAM:6C1E                 and     80h
RAM:6C20                 jr      z, _ReadTape_6C19
RAM:6C22                 ld      a, c
ROM:6C23                 cpl      ; Cette instruction permet d'inverser tous les bits du registre A.
RAM:6C24                 ld      c, a
RAM:6C25                 ret

Auteur :  dlfrsilver [ 09 Nov 2018, 17:33 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Fred, est-ce que tu peux commenter le code ?

merci ;)

Auteur :  hERMOL [ 09 Nov 2018, 19:38 ]
Sujet du message :  Re: keytones des jeux ariolasofts (Killer Ring mais pas que)

Ok , j'edit le source.

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/