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

Dark Sceptre / Firebird
https://cpcrulez.fr/forum/viewtopic.php?f=8&t=6641
Page 1 sur 4

Auteur :  dlfrsilver [ 05 Fév 2022, 14:28 ]
Sujet du message :  Dark Sceptre / Firebird

Je poste ça ici : Il m'a été remonté que le jeu Dark Sceptre tourne très bien en disquette sur émulateur, et ne fonctionne pas une fois écrit sur une disquette, que ce soit avec samdisk ou bien à la kryoflux.

@Megachur, si tu me lis, est-ce que tu pourrais faire usage de ton regard sur la chose, et me dire si tu vois un problème ?

sur un vrai CPC, les pistes 0,1,2 sont lues, mais dès qu'il s'agit de lire les pistes qui contiennent les données, c'est comme si le programme ne lisait rien, et on fini sur un écran noir avec un border bleu.

Merci d'avance, impossible pour moi de voir ce qui pourrait causer le problème :

Si je dumpe la disquette écrite, aucune erreur, le contenu est conforme à ce qui a été écrit.

Auteur :  marcel [ 05 Fév 2022, 17:17 ]
Sujet du message :  Re: Dark Sceptre / Firebird

j'arrive à lancer le jeu sur une vraie disquette (lecteur 3.5)

si certains ont un support de masse, je peux fournir le programme qui m'a servi à créer la disquette (données à partir du DSK dumpé par Maxit)

Auteur :  breiztiger [ 05 Fév 2022, 20:06 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Cela conforte le fait que le gotek comme le lecteur 3p1/2 ne fonctionne pas de la même façon qu’un vrai 3p d’origine

Auteur :  Megachur [ 08 Fév 2022, 16:34 ]
Sujet du message :  Re: Dark Sceptre / Firebird

dlfrsilver a écrit :
Je poste ça ici : Il m'a été remonté que le jeu Dark Sceptre tourne très bien en disquette sur émulateur, et ne fonctionne pas une fois écrit sur une disquette, que ce soit avec samdisk ou bien à la kryoflux.

@Megachur, si tu me lis, est-ce que tu pourrais faire usage de ton regard sur la chose, et me dire si tu vois un problème ?

sur un vrai CPC, les pistes 0,1,2 sont lues, mais dès qu'il s'agit de lire les pistes qui contiennent les données, c'est comme si le programme ne lisait rien, et on fini sur un écran noir avec un border bleu.

Merci d'avance, impossible pour moi de voir ce qui pourrait causer le problème :

Si je dumpe la disquette écrite, aucune erreur, le contenu est conforme à ce qui a été écrit.


Hello dlfrsilver,

Content d'avoir de tes nouvelles !

donc on résume un peu pour bien avoir les trucs en tête :

a) on réécrit sur une disquette 3p un dump réalisé avec samdisk ou l'outil kryoflux
-> un dump sous quel forme au départ en terme de données (IPFs, HFE, SCP, autre) ?

b) on test sur un cpc avec un lecteur 3p :
-> quel modèle, quel CRTC ?
-> qu'elle configuration de lecteur 3p : interne d'origine, externe, quel modèle (numéro) ?
-> est-ce que tu as essayé plusieurs disquettes ? un disquette pouvant avoir une mauvaise magnétisation n'est pas à exclure...

pour info : sur un vrai hardware, j'ai déjà eu le cas d'originals avec des gaps en piste 40, où la première lecture échoue... on reset, on relance et le loader passe la protection cette fois ;-) !
et oui, au changement de piste, le FDC peut tout simplement ne pas être positionné tout à fait au bon endroit et le loader (mal fait ou trop précis) peut échouer à la lecture des données à trouver les informations de protection ou le calcul du CRC...

également la vitesse du lecteur n'étant pas constante, certaines pistes peuvent ne pas être lues correctement à chaque passage... c'est pour cela que le kryoflux ou d'autres logiciels font plusieurs captures de pistes (5 par exemple) et les comparent entre elles pour être sûr des données 'originales'... mais j'imagine ne rien vous apprendre sur ce point pour les plus érudits des dumpers de la planète !!! :winner:

en dernier lieu, on peut aussi imaginer qu'on écrive quelque chose de pas bien sur la disquette (je parle en flux bit MFM) mais que l'outil de dump corrige le truc à la relecture ... ce qui expliquerait que l'émulateur a bien toujours le bon dump à lire...

:biere:

En dernier recours : ce qu'on pourrait faire aussi grâce à l'outil que je t'avais fait par exemple c'est de comparer ce que lit le loader sur la disquette 'dumpée' versus sur l'original masterisé d'origine...

Auteur :  dlfrsilver [ 11 Fév 2022, 10:30 ]
Sujet du message :  Re: Dark Sceptre / Firebird

marcel a écrit :
j'arrive à lancer le jeu sur une vraie disquette (lecteur 3.5)

si certains ont un support de masse, je peux fournir le programme qui m'a servi à créer la disquette (données à partir du DSK dumpé par Maxit)


J'ai fait une découverte déplaisante en faite ces derniers jours. Le jeu est équipé d'une protection qui passe totalement sous le radar aussi bien de Samdisk que du CTA (l'outil de génération d'IPF).

Concrètement, j'ai exécuté mon test comme ceci :

1) écriture de l'IPF et aussi DSK sur 3" : fail (écran blanc, raté du chargement des pistes avec secteurs 01 à 08, puis écran noir avec 4 pixels en haut à gauche de l'écran, border bleu).
2) redump de la 3" pour vérifier si piste défectueuse ou erreur.
Résultat : conforme en terme de données à ce qui a été gravé. Aucune différence, pas de piste en erreur.

3) écriture de l' IPF et du DSK sur 3.5" : fail (écran blanc, raté du chargement des pistes avec secteurs 01 à 08, puis écran noir avec 4 pixels en haut à gauche de l'écran, border bleu).
4) redump de la 3.5" pour vérifier si piste défectueuse ou erreur.
Résultat : conforme en terme de données à ce qui a été gravé. Aucune différence, pas de piste en erreur.

Puis je suis passé sur ma carte greasleweasle, qui donne une indication intéressante lors de la gravure.
Chaque piste gravée voit en face sa durée. C'est là que j'ai compris le problème.
L'IPF ou le DSK indique une longueur de piste de 200ms lors de l'écriture, alors que mon dump kryoflux tiré de la 3" originale du jeu indique une durée de piste supérieure à 201ms (entre 201 et 203ms précisément).

Comme par hasard, si je grave mon dump kryoflux directement sur 3" pouces ou 3.5", ça fonctionne presque...... J'ai le chargement de l'écran titre, par contre ça fini par planter au moment de charger le programme.

La conclusion est simple : la protection n'est pas au niveau secteur, et n'est pas liée au support physique de gravure (3" ou 3.5"). Samdisk ni le CTA ne voient la protection car celle ci se situe au niveau du flux, en terme de longueur de piste. ça veut dire que pour faire un IPF qui fonctionne, le format et les durées doivent être décrits afin que le loader puisse s'y retrouver.

A savoir que j'ai le log complet des accès disques de Dark Sceptre, et les 2 seules bizarreries trouvées sont les suivantes :

FDC 0000C96D: SPECIFY 03 A1,03 Rôle ? A1=1010
FDC 0000C96D: SPECIFY 03 A1,03 Rôle ?
FDC 0000C96D: RECALIBRATE 07 00 Go to track 0

La commande Specify a un rôle largement inconnu sur CPC, puisque celle ci concerne la vitesse et le DMA.
Le DMA sur CPC n'est pas cablé déjà, ensuite d'un point de vue vitesse, il faut savoir que ça joue sur le stepping (décrit dans le datasheet du FDC upd765).

Ce qui est intéressant, c'est que la commande READ DATA est utilisé de façon pas orthodoxe, à savoir non pas charger 1 secteur à la fois, mais 8 secteurs d'un coup (comme si on faisait un read Track pratiquement).

Ce qui est décevant je trouve, c'est que les émulateurs font tous passer le DSK de Dark Sceptre, alors que ça n'est pas le cas d'un vrai CPC. On a donc jamais pu voir qu'il y avait un problème.

A mon avis, je suis même sur qu'une fois l'émulation FDC corrigée pour reproduire le plantage comme sur un vrai CPC, le format DSK n'est même pas capable au final de supporter ce jeu. Tout simplement parce qu'il n'y a pas de timings stockés dans le format (à la différence du format STX de l'Atari, qui fonctionne comme le format eDSK, mais qui inclut les timings dans l'image).

J'ai fait le calcul par ailleurs aussi par sécurité, de la longueur des pistes totale. Sur Dark Sceptre, données header + secteurs + gap de fin de piste (pris en compte par la protection physique : si copie de dark sceptre par exemple avec discology de 3" à 3", la copie ne fonctionnera pas) on arrive à un total de 6450 octets de données en moyenne par piste.

C'est à dire que chaque piste fait un tour complet de la surface du disque....
On est au dessus de la longueur des pistes hexagon $18a0 (6304-6305 octets).

Je pense qu'en bout de ligne on est sur un cas particulier, tout semble l'indiquer.......

Auteur :  dlfrsilver [ 11 Fév 2022, 10:44 ]
Sujet du message :  Re: Dark Sceptre / Firebird

breiztiger a écrit :
Cela conforte le fait que le gotek comme le lecteur 3p1/2 ne fonctionne pas de la même façon qu’un vrai 3p d’origine


Il s'agit là d'une conclusion douteuse et infondée.

Pourquoi ? Tout simplement parce pour une raison toute bête : On a sur des softs CPC des pistes de protections aussi longues que celles qu'on peut trouver sur Amiga, ST ou PC.

Quelle est la différence entre un gotek et un drive 3 1/2 ou 3" ?

Simple : le gotek fourni quoiqu'il arrive une longueur de piste qui fait le tour complet.

Dans le cas de Dark Sceptre, ca explique pourquoi quoi qu'il arrive, le jeu se charge en DSK et en HFE aussi sur le gotek.

Alors que dans le cas d'un drive 3" ou 3.5", on est pas dans ce cas de figure. Déjà, le GAP de 1135 octets de fin de piste est amputé pour commencer, puisqu'on ne le stocke pas. En bref, quand on écrit le DSK, celui ci n'a que le contenu sectoriel, et les pistes sont courtes, alors que ce n'est manifestement pas ce qui est attendu.

Auteur :  marcel [ 11 Fév 2022, 10:52 ]
Sujet du message :  Re: Dark Sceptre / Firebird

le 03 A1 03 c'est la conrfig par défaut du FDC et il me semble que c'est le |CPM qui l'initie, pas le code du jeu

Auteur :  dlfrsilver [ 11 Fév 2022, 10:56 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Citer :
Hello dlfrsilver,

Content d'avoir de tes nouvelles !


Oui, je suis un peu moins dispo, ma fille prend la priorité :)

Citer :
donc on résume un peu pour bien avoir les trucs en tête :

a) on réécrit sur une disquette 3p un dump réalisé avec samdisk ou l'outil kryoflux
-> un dump sous quel forme au départ en terme de données (IPFs, HFE, SCP, autre) ?


Oui c'est ça. IPF ou DSK.

Citer :
b) on test sur un cpc avec un lecteur 3p :
-> quel modèle, quel CRTC ?
-> qu'elle configuration de lecteur 3p : interne d'origine, externe, quel modèle (numéro) ?
-> est-ce que tu as essayé plusieurs disquettes ? un disquette pouvant avoir une mauvaise magnétisation n'est pas à exclure...


6128 CRTC 1 (si je me trompe pas).
Interne d'origine
non pas plusieurs disquettes, tout simplement parce que je n'ai eu aucune erreur à la gravure. J'ai même redumpé la disquette, aucune erreur.

Citer :
pour info : sur un vrai hardware, j'ai déjà eu le cas d'originals avec des gaps en piste 40, où la première lecture échoue... on reset, on relance et le loader passe la protection cette fois ;-) !


C'est un souci effectivement. Les lecteurs en 30 ans passé et sont de moins en moins fiables :(

Citer :
et oui, au changement de piste, le FDC peut tout simplement ne pas être positionné tout à fait au bon endroit et le loader (mal fait ou trop précis) peut échouer à la lecture des données à trouver les informations de protection ou le calcul du CRC...


ça peut aussi. Sauf que..... 98% des softs s'écrivent sans problème.... C'est uniquement des cas particuliers qui posent souci.....

Citer :
également la vitesse du lecteur n'étant pas constante, certaines pistes peuvent ne pas être lues correctement à chaque passage...


Entre autre..... pour compenser l'état des disquettes et le manque de fiabilité des lecteurs 3 pouces.....

Citer :
c'est pour cela que le kryoflux ou d'autres logiciels font plusieurs captures de pistes (5 par exemple) et les comparent entre elles pour être sûr des données 'originales'... mais j'imagine ne rien vous apprendre sur ce point pour les plus érudits des dumpers de la planète !!! :winner:


Toutafé :)

Citer :
en dernier lieu, on peut aussi imaginer qu'on écrive quelque chose de pas bien sur la disquette (je parle en flux bit MFM) mais que l'outil de dump corrige le truc à la relecture ... ce qui expliquerait que l'émulateur a bien toujours le bon dump à lire...


Le principe de l'outil de dump (Kryoflux ou GW), c'est de lire niveau flux au ras du métal pour ne pas se coincer en cas de problème sur un ou des secteurs. Il n'y a pas de correction appliquée (ça reviendrait sinon à modifier les données, ce qui n'est pas le but recherché).

Citer :
En dernier recours : ce qu'on pourrait faire aussi grâce à l'outil que je t'avais fait par exemple c'est de comparer ce que lit le loader sur la disquette 'dumpée' versus sur l'original masterisé d'origine...


Fait. D'un point de vue registres FDC, il n'y a aucune différence en soit. La seule différence, dépend d'un seul truc : à savoir si tu graves un IPF, un DSK ou bien le dump kryoflux d'origine tiré de la disquette.

ce dont je suis sur, c'est que les pistes sont longues sur l'original, alors qu'elles ne le sont pas sur l'IPF ou le DSK.

Auteur :  dlfrsilver [ 11 Fév 2022, 10:57 ]
Sujet du message :  Re: Dark Sceptre / Firebird

marcel a écrit :
le 03 A1 03 c'est la conrfig par défaut du FDC et il me semble que c'est le |CPM qui l'initie, pas le code du jeu


C'est le loader qui déclenche la commande FDC 'SPECIFY' (03) avec les paramètres A1 03.

Auteur :  marcel [ 11 Fév 2022, 11:05 ]
Sujet du message :  Re: Dark Sceptre / Firebird

ça reste les valeurs de la ROM envoyées à l'init du CPC, pour moi y a rien à chercher sur cette commande

Auteur :  marcel [ 11 Fév 2022, 11:26 ]
Sujet du message :  Re: Dark Sceptre / Firebird

pour en revenir à ton hypothèse, on doit pouvoir le vérifier avec un gotek en patchant le HFE, suffit de raccourcir la longueur de piste "hard", vu qu'elles sont en fait assez courtes
éventuellement ralentir un peu le flux?

Auteur :  Kris [ 11 Fév 2022, 21:25 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Pour info, j'ai ré ecrit la disquette à partir de l'IPF sur une 3" avec une SCP: aucun pb de chargement (sur Old, ne passe pas sur Plus).

Auteur :  dlfrsilver [ 11 Fév 2022, 23:30 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Kris a écrit :
Pour info, j'ai ré ecrit la disquette à partir de l'IPF sur une 3" avec une SCP: aucun pb de chargement (sur Old, ne passe pas sur Plus).


Ah bon le SCP permet l'écriture des IPFs ? ça m'étonne.....

Auteur :  dlfrsilver [ 11 Fév 2022, 23:32 ]
Sujet du message :  Re: Dark Sceptre / Firebird

marcel a écrit :
pour en revenir à ton hypothèse, on doit pouvoir le vérifier avec un gotek en patchant le HFE, suffit de raccourcir la longueur de piste "hard", vu qu'elles sont en fait assez courtes
éventuellement ralentir un peu le flux?


Le problème c'est que c'est codé côté firmware du gotek, c'est pas du côté HFE.

Auteur :  marcel [ 12 Fév 2022, 17:15 ]
Sujet du message :  Re: Dark Sceptre / Firebird

dlfrsilver a écrit :
Le problème c'est que c'est codé côté firmware du gotek, c'est pas du côté HFE.


le format HFE permet de simuler la vitesse du flux, je l'ai déjà fait et mesuré pour tester la tolérance du FDC
la longueur de piste c'est idem, c'est dans la description du HFE

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