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

SugarConvDsk
https://cpcrulez.fr/forum/viewtopic.php?f=8&t=5844
Page 5 sur 14

Auteur :  Megachur [ 11 Déc 2016, 12:29 ]
Sujet du message :  Re: SugarConvDsk

pour moi ce qui va différencier un faux d'un vrai c'est le couple id + le CRC qui sera officiellement dans la liste de la SPS... pour l'id du créateur, ça ce change facilement avec un simple éditeur hexa !!!
Également, l'outil de :kiss: :magic: :kiss: Lone :kiss: :magic: :kiss: ne génère que des IPFs en codage bit ce que ne fait pas l'outil de la SPS puisque les datas sont en octets et correctement alignés ! donc par rapport à cela, facile de s'y retrouver en décodant l'ipf à condition de savoir le faire !
à noter donc que les ipfs créés par cet outil nécessite de coder une émulation floppy disk + fdc au bit et pas à l'octet pour pouvoir les lire correctement !!!

Auteur :  Lone [ 11 Déc 2016, 12:50 ]
Sujet du message :  Re: SugarConvDsk

Effectivement, j'utilise la pleine puissance du format, avec un objectif différent de la SPS.

Là où elle va tenter de produire un master (d'où la nécessité de connaissance du format), je génère une copie exacte de ma source. Au bit près, ce qui me permet de gérer nativement l'ensemble des protections.

Deux philosophies différentes mais pas forcément opposées.

Ce qui pose bien sur une question intéressante : La préservation passe-t-elle par une copie exacte, ou par la génération d'un master qui a donc forcément une part d'interprétation ?

Mon avis sur le sujet, c'est que c'est par la redondance (des sources et des moyens) que l'on pourra correctement préserver notre patrimoine soft.

EDIT : Pour les tag dans les softs : Il me semble qu'on a un CRC global qui empêche de simplement remplacer le tag de l'auteur ou du soft.

Auteur :  dlfrsilver [ 11 Déc 2016, 13:43 ]
Sujet du message :  Re: SugarConvDsk

Lone a écrit :
Effectivement, j'utilise la pleine puissance du format, avec un objectif différent de la SPS.


Certes.

Citer :
Là où elle va tenter de produire un master (d'où la nécessité de connaissance du format), je génère une copie exacte de ma source. Au bit près, ce qui me permet de gérer nativement l'ensemble des protections.


Il y a aucun garde fou dans ton logiciel, s'il y a une erreur, elle sera injectée. Pourquoi ? tout simplement parce qu'il n'y a pas de contrôle visuel sur les données en sortie.

Deux philosophies différentes mais pas forcément opposées.

Citer :
Ce qui pose bien sur une question intéressante : La préservation passe-t-elle par une copie exacte, ou par la génération d'un master qui a donc forcément une part d'interprétation ?


On a la réponse depuis longtemps. Les IPFs sont des "copies" exactes de la source d'origine.

Les masters n'ont aucun part d'interprétation, et pour une raison simple : s'il y a interprétation, alors il y a modification. Comme le système interdit ça dans son fonctionnement et son principe, il n'y a rien de ça.

Ce qui est écrit via la carte kryoflux correspond exactement et physiquement à ce qui se trouvait sur la disquette qui a servi pour le dump (au poil de cul près).

En fait, pose toi plutôt la question, totalement logique, que tu ne t'es absolument pas posé, mais qui pourtant est tellement évidente :

Pour quelle raison d'après toi SPS n'a pas utilisé dès le départ la méthode que tu utilises, alors qu'elle semble si simple à priori ?

je vais te répondre :

* Parce que n'importe quel "idiot" (pardon mais ça illustre) est capable de générer des images disques avec du flux brut non examiné pour chaque piste.

* Parce que cette méthode ne permet pas de contrôler les données (et d'ailleurs c'est exactement le problème avec le SCP, faut voir le nombre d'images disques foireuses qu'il y a sur le net, je les ai checkée, et faut voir la merde que c'est. C'est "Imager des disques pour les mongoles".

* Concernant les dumps Kryoflux (quoique que ça s'applique aussi au SCP), toi et certaines autres personnes (pas toutes heureusement), partent du principe que les dumps lourd KFraw sont "le" truc, que les IPFs c'est moins bien. Toutes les personnes qui pensent ça se trompent. C'est la même chose que pour les cassettes de jeu.

Dans un cas comme dans l'autre, "l'arrachage" de bits à la surface des disquettes contient des cochonneries, des saletés et des impuretés. C'est pour ça que les données doivent être examinées, expurgées de la "crasse", afin de pouvoir récupérer un truc propre. Dans le cas des cassettes, on est obligé de filtrer les fichiers WAV obtenus, à cause de la saleté, et nombre d'entre eux sont pas utilisable en l'état.

Je dirais qu'à peine 5% des fichiers WAV sont suffisamment propres pour être lus et utilisés tel quels. Et c'est normal. Tout ces supports ont 30 ans, se décatissent avec les années. Les choses ont besoin d'un coup de polish.

C'est pour ça que je suis contre de balancer dans la nature les fichiers WAV ou même KF raw (outre le fait que pour ceux ci j'ai pas le droit de faire ça de part ma position chez SPS).

Au moins quand les gens prennent et re-balancent sur le net, c'est pas 10000 fois la même merde (genre le TOSEC, ou c'est toujours les mêmes versions pourries qui ont tourné).

(Ayant la main sur les deux systèmes, j'en connais les tenant et les aboutissant, et clairement, le SCP dans son principe est une erreur : tout simplement parce qu'il aurait surtout été utile à l'époque ou les disquettes étaient encore fabriquées. Pas de bol, les éditeurs l'aurait fait interdire à cause de sa fonction de copie bit à bit. Ensuite, en terme de détection d'erreur, c'est juste zéro. Quand le système de SPS me dit "halte au feu, tu m'as enquillé de la merde!", le SCP continue son petit bonhomme de chemin. Si les disquettes sont en bon état, ça va, mais à la moindre couille, impossible de s'en rendre compte. Et je précise qu'on a aujourd'hui Aufit, qui est un excellent outil de vérification. Problème, trop peu de gens savent s'en servir et comprendre ce qui leur est présenté.)

* Tout original à l'époque avait un format qui était décrit. C'est pas pour rien. Sinon tu penses que les opérateurs des machines de duplication se seraient pas fait chier à décrire les formats mais.....

* Ta méthode est celle qu'utilisait certains opérateurs peu scrupuleux, qui utilisaient les machines traceuses en mode aveugle, ce que j'appelle personnellement "La duplication en mode gogole".

Imagine le topo : le mec il a 5000 disquettes à faire toute la nuit, il vérifie même pas le master fourni, il enquille direct dans la machine, et pas de bol, mince, y a un secteur pourri ou un petit défaut, et oh merde, j'ai fait les 5000 disquettes !!! Putain y a tout à refaire !

L'histoire de New York Warriors sur CPC disquette est parlante, il y a une forte probabilité que l'opérateur ait utilisé la machine traceuse en mode aveugle : le résultat ? Toutes les disquettes dupliquées n'ont pas la face B, cette dernière est vide !

Des milliers de disquettes dupliquées par un vas-nus-pieds complètement foirées ! (Bon après Virgin à ptet corrigé le tir pour quelques utilisateurs, mais on le saura jamais....)

* Ensuite, les disquettes originales plombées contre la copie (la majorité des disquettes), la protection doit être décrite. Tu peux pas poser des protections avec des timings particuliers comme ça en brut sur disquette. ça ne marche pas sur Amiga, ni sur Atari ST, ça marchera pas sur CPC non plus !.

Citer :
Mon avis sur le sujet, c'est que c'est par la redondance (des sources et des moyens) que l'on pourra correctement préserver notre patrimoine soft.


En fait, je t'appuie pour au moins 1 point : certains logiciels s'automodifient, on ne les trouvera pas en état neuf. Donc ton soft pourrait s'avérer utile pour ces derniers, car notre politique nous interdit de les traiter, puisqu'ils sont modifiés. Pour les autres, tu nous laisses faire.

Citer :
EDIT : Pour les tag dans les softs : Il me semble qu'on a un CRC global qui empêche de simplement remplacer le tag de l'auteur ou du soft.


Tout à fait, il y a des dispositifs de protection. Pour rappel, c'est le seul programmeur de l'époque qui a vu avec celui de Jurassic Park, sa protection contre la copie inviolée.

Il a protégé Abandoned Places 2, aucun pirate n'a réussi à lui faire la peau. Les copies sont inutilisables, en gros tu fais une partie pendant 10 minutes, tes persos meurent d'un coup. Tu sauvegardes ? Elles se corrompent, ou bien tes personnes meurent instantanément au rechargement de la sauvegarde.

Quand à Jurassic Park, le mec qui l'a plombé a tellement bien fait son job (Mr.E du groupe Crystal pour ne pas le nommer), que le jeu n'a été complètement déprotégée qu'il 'y a 1 ou 2 ans.

Auteur :  Lone [ 11 Déc 2016, 14:36 ]
Sujet du message :  Re: SugarConvDsk

dlfrsilver a écrit :
Citer :
Là où elle va tenter de produire un master (d'où la nécessité de connaissance du format), je génère une copie exacte de ma source. Au bit près, ce qui me permet de gérer nativement l'ensemble des protections.


Il y a aucun garde fou dans ton logiciel, s'il y a une erreur, elle sera injectée. Pourquoi ? tout simplement parce qu'il n'y a pas de contrôle visuel sur les données en sortie.


Une fois encore, c'est pas mon but. Moi, c'est l'exacte copie que je recherchais. Pas à certifier l'original, non. D'ailleurs, pourquoi le contrôle doit il être visuel ?

dlfrsilver a écrit :
Citer :
Ce qui pose bien sur une question intéressante : La préservation passe-t-elle par une copie exacte, ou par la génération d'un master qui a donc forcément une part d'interprétation ?


On a la réponse depuis longtemps. Les IPFs sont des "copies" exactes de la source d'origine.

Les masters n'ont aucun part d'interprétation, et pour une raison simple : s'il y a interprétation, alors il y a modification. Comme le système interdit ça dans son fonctionnement et son principe, il n'y a rien de ça.

Ce qui est écrit via la carte kryoflux correspond exactement et physiquement à ce qui se trouvait sur la disquette qui a servi pour le dump (au poil de cul près).

"Au poil de cul près". Le diable est dans les détails. Ma conversion n'est pas au poil de cul près, ce qui me permet de tout supporter. Celle de la sps non. Mais tu te trompes de combat, voir ci-dessous.

dlfrsilver a écrit :
En fait, pose toi plutôt la question, totalement logique, que tu ne t'es absolument pas posé, mais qui pourtant est tellement évidente :

Pour quelle raison d'après toi SPS n'a pas utilisé dès le départ la méthode que tu utilises, alors qu'elle semble si simple à priori ?

je vais te répondre :
(...)


Bien sûr que je me suis posé la question : j'ai déjà détaillé ce que je crois être la philosophie de la Sps.

Pour résumer une nième fois :
La sps avec son format ipf, veut reconstruire des master. L'ipf est inspiré du fameux freeform.
Cela necessite donc de l'analyse, et de l'adaptation, ce qui signifie que leur ipf généré est équivalent, mais non égal au dumps qui a servit de source.
Il est d'ailleurs facile de le voir si l'on compare les pistes d'un kfraw et d'un Ipf( y'a sans doute des bits en rab dans les zones sans importance).
Connaître et supporter la protection consiste à connaître ces zones, de manière à en générer une approximation suffisante et lisible.


dlfrsilver a écrit :
Citer :
Mon avis sur le sujet, c'est que c'est par la redondance (des sources et des moyens) que l'on pourra correctement préserver notre patrimoine soft.


En fait, je t'appuie pour au moins 1 point : certains logiciels s'automodifient, on ne les trouvera pas en état neuf. Donc ton soft pourrait s'avérer utile pour ces derniers, car notre politique nous interdit de les traiter, puisqu'ils sont modifiés. Pour les autres, tu nous laisses faire.

Citer :
EDIT : Pour les tag dans les softs : Il me semble qu'on a un CRC global qui empêche de simplement remplacer le tag de l'auteur ou du soft.


Tout à fait, il y a des dispositifs de protection. Pour rappel, c'est le seul programmeur de l'époque qui a vu avec celui de Jurassic Park, sa protection contre la copie inviolée.

Il a protégé Abandoned Places 2, aucun pirate n'a réussi à lui faire la peau. Les copies sont inutilisables, en gros tu fais une partie pendant 10 minutes, tes persos meurent d'un coup. Tu sauvegardes ? Elles se corrompent, ou bien tes personnes meurent instantanément au rechargement de la sauvegarde.

Quand à Jurassic Park, le mec qui l'a plombé a tellement bien fait son job (Mr.E du groupe Crystal pour ne pas le nommer), que le jeu n'a été complètement déprotégée qu'il 'y a 1 ou 2 ans.


Mélange pas tout Denis : un crc, c'est un checksum, c'est tout... il n'y a ni cryptage, ni protection inviolable sur le format ipf, hein...

Auteur :  dlfrsilver [ 11 Déc 2016, 16:52 ]
Sujet du message :  Re: SugarConvDsk

Citer :
Une fois encore, c'est pas mon but. Moi, c'est l'exacte copie que je recherchais. Pas à certifier l'original, non. D'ailleurs, pourquoi le contrôle doit il être visuel ?


Ce que nous avons avec les IPFs sont déjà des copies exactes, plus la description du format. On ne peut pas faire mieux que ça (enfin, ça s'appelle un Draft, et c'est infiniment plus lourd que le format KFraw).

Ce que tu stoppes dans le format container, c'est juste une suite de bit sans aucune information sur la manière de les écrire. Cette méthode induit nécessairement de l'erreur, hors ce n'est pas ce que l'on cherche.

Comme je l'ai expliqué, n'importe qui est capable de faire des images bit à bit. Le SCP permet de le faire et regarde le taux de déchet ! Cette carte fait basiquement dans son principe ce que tu fais avec ton logiciel, de la copie bit à bit en aveugle !

Citer :
"Au poil de cul près". Le diable est dans les détails. Ma conversion n'est pas au poil de cul près, ce qui me permet de tout supporter. Celle de la sps non. Mais tu te trompes de combat, voir ci-dessous.


Tu supportes tout simplement parce que tu utilises un système d'injection de bit en aveugle. Une préservation digne de ce nom ne peut pas passer par ce système là.

Par le biais de ton système, tu demandes en gros à la carte Kryoflux de faire de la duplication en aveugle.
C'est à dire de la duplication pour les noobs, qu'on voyait déjà dans certains cas pour l'Amstrad dans les années 87-90 avec de joli ratages.

Citer :
Bien sûr que je me suis posé la question : j'ai déjà détaillé ce que je crois être la philosophie de la Sps. Pour résumer une nième fois :
La sps avec son format ipf, veut reconstruire des master. L'ipf est inspiré du fameux freeform.


le but de SPS avec le format IPF est la préservation avant toute chose, préservation des données à l'identique, les timings, les protections, etc. C'est à dire ce que faisait les entreprises de duplication à l'époque dans la majorité des cas.

Le format IPF va plus loin que le format Freeform. Il est infiniment plus flexible.

Il n'y a pas de volonté "absolue" de construire des masters, mais bel et bien de préserver de manière propre à l'identique les logiciels originaux. Un IPF est exactement ce qu'était le master initial fourni par les compagnies d'édition de logiciel à l'époque.

J'ai fais des tests, et vérifié à tout hasard pour comparaison, un dump KFraw, et un redump KFraw d'un disque gravé à partir d'un IPF. Il n'y a aucune différence, mais vraiment zéro. Et même mieux que ça.

En fait, la carte a une précision de tracé supérieure à celle des machines Trace Mountain utilisées à l'époque chez KBI/STARTER, CAAV ou encore SITIS. C'est tellement propre que mon propre 6128 par exemple fait une lecture ultra propre, le lecteur trouve les données pile poil, alors qu'avec le lecteur 3 pouces originel, et la gravure d'origine, la lecture reste imprécise....

Dans les données que tu injectes en bit à bit par pistes, il y a de la saleté. La non description du contenu des pistes n'explique pas à elle seule la taille supérieure. La seule explication c'est que ton outil encode tout, même les cochonneries et autre saletés inutiles.

L'analyseur de SPS expurge automatiquement la crasse pour ne garder que les données en tant que tel qui sont sur la disquette originale. Et seules celles-ci sont gardés, et plus tard réecrites.

Citer :
Cela necessite donc de l'analyse, et de l'adaptation, ce qui signifie que leur ipf généré est équivalent, mais non égal au dumps qui a servit de source.


C'est parfaitement faux. L'analyseur ne rejette que la crasse, qui malheureusement est inhérente à la lecture et à l'âge des disquettes qui sont lues au niveau le plus bas possible. Tout le reste est gardé.

De toute façon, comme les dumps KFraw (ou même SCP, y a rien qui change sous le soleil) contiennent une bonne quantité de crasse, forcément ce que j'obtiens en sortie ne peut pas être aussi sale et aussi lourd que ce qu'on a en entrée. Et heureusement.

Citer :
Il est d'ailleurs facile de le voir si l'on compare les pistes d'un kfraw et d'un Ipf( y'a sans doute des bits en rab dans les zones sans importance).


Mais lis donc ce que j'ai écrit au dessus. Encore heureux qu'on trouve pas toute la merde présente dans les dump KFraw dans les IPFs.

Les dumps KFraw sont avant toute chose un dump de travail, et non un dump pour une utilisation finale.
ça c'est vraiment quelque chose que vous arriviez à comprendre. Ces dumps n'ont de but et d'utilité que parce qu'on va en extraire le bon grain et en dégager l'ivraie. C'est comme le format WAV, c'est un format de travail, et non un format final. Il faut lui retirer sa gangue de merde, ses impuretés qui empêchent le bon fonctionnement, et qui en plus rajoutent du poids en plus (alourdisse leur taille en Ko).

Pour faire simple, je préfère un IPF reconverti en KFraw propre et niquel, à un dump brut crasseux en KFraw tiré d'une disquette de 30 ans, avec toutes les avaries possible non corrigées.

Citer :
Connaître et supporter la protection consiste à connaître ces zones, de manière à en générer une approximation suffisante et lisible.


La description du format d'une piste consiste à décrire point par point quel octets on rencontre, leur position, leur timing si besoin, si un bloc d'octets est de la donnée ou du gap. En bref, on indique au kryoflux comment faire correctement son boulot.

Citer :
Mon avis sur le sujet, c'est que c'est par la redondance (des sources et des moyens) que l'on pourra correctement préserver notre patrimoine soft.


Mais c'est déjà le cas pour beaucoup de titres. Rien que sur la collection de Loic, Philippe, et Antoine, j'en suis à plus de 564 originaux préservés en IPF. Un certain nombre sont bons, mais le format de protection n'est pas décrit, et c'est très clair, n'étant pas décrit, après réécriture, ça ne fonctionnera pas.

Maintenant concernant la collection de Breitztiger, je ne sais pas à combien on est potentiellement.

Citer :
Mélange pas tout Denis : un crc, c'est un checksum, c'est tout... il n'y a ni cryptage, ni protection inviolable sur le format ipf, hein...


Y a pas de protection inviolable, y a ceux qui tentent, maintenant déprotéger correctement, c'est une autre paire de manche. Maintenant, concernant le cryptage (peut-être compression).... il me semble que ça fait partie des nouvelles réjouissances à venir, j'en dirais plus quand j'en saurais plus.....

Auteur :  Lone [ 11 Déc 2016, 20:49 ]
Sujet du message :  Re: SugarConvDsk

Bon, trop de texte à quoter comme souvent.
Je vais donc faire court.

1/ Le format IPF ne décrit pas la protection directement. Il décrit la piste. Si tu me dis le contraire, argumente précisément (un exemple serait le bienvenue).
L'outil de la SPS génère un IPF à partir de données reconnues, de protections connues, etc. Le format lui-même ne contient pas trace d'une quelconque infos.

2/ L'histoire de recréer des master, c'est pas mal. Mais ça parait annexe quant au sujet de la préservation.
Tout comme pour les cassettes, une vrai préservation passe par l'extraction d'un maximum d'information. Des infos interprétées, c'est bien, mais arrivera un jour ou l'on regrettera de n'avoir que cela. (Imagine qu'on ait dit un jour "le format DSK est suffisant pour la préservation !"). J'ose espérer que la SPS conserve précieusement les dumps Kryoflux dans ses bases secrètes (à vrai dire, j'en suis persuadé) !

Rappel : IPF = format de bit. C'est à dire que c'est de l'interprétation du niveau inférieur, qui est une description d'inversion de flux (scp, kfraw).

De plus, que va-t-on faire si un jour on découvre un algo qui lave la crasse plus blanc que blanc, si on n'a plus les originaux en inversion de flux ? Quel dommage !

L'IPF n'est donc qu'un format commode de description de piste, pas de préservation réelle.

3/ Pour revenir au format IPF. Il y a certes certaines infos (GAP, etc), mais c'est générique. Si tu as de l'info dans un GAP, ça apparaîtra comme de l'information et non du GAP. Idem, si tu as des secteurs imbriqués (rappel : Sur certaines protections à secteurs imbriqués, les secteurs démarrent en plein milieu d'un autre secteur), un bit peut appartenir à plusieurs secteurs, voir être considéré comme du GAP. On en revient au même truc : IPF = description de piste.

4/ "Crasse", "saleté"... On parle de quoi ? Un bit, c'est un bit (0 ou 1). Ça n'est ni sale, ni crasseux. Éventuellement il est mal lu. Si on parle de bit, c'est qu'on a déjà traité les inversions de flux produisant ces bits.

5/ Si tu considère l'outil d'analyse comme "un nettoyeur de crasse", tu acceptes l'idées que ce qu'il produit est différent de ce qu'il lit. Donc, c'est une copie interprétée. Tu ne peux pas être à la fois une copie exacte et une copie nettoyée.

Auteur :  breiztiger [ 11 Déc 2016, 21:07 ]
Sujet du message :  Re: SugarConvDsk

D'accord avec thomas :biere:

L'info de base reste le dump kryoflux, qui contient ces fameuses inversions de flux qui d'ecrivent les bits ... donc à un niveau inférieur à çe que contient l'ipf

Comme le wav pour nos cassettes, qui contient l'analogique transforme ensuite en donnees numerique dans nos Cdt

Il faut absolument conserve les dumps kfraw et nos wavs pour comme dit thomas au cas où on se rend compte que l'on a mal decode quelque chose

:winner:

Auteur :  dlfrsilver [ 11 Déc 2016, 22:40 ]
Sujet du message :  Re: SugarConvDsk

Citer :
1/ Le format IPF ne décrit pas la protection directement. Il décrit la piste. Si tu me dis le contraire, argumente précisément (un exemple serait le bienvenue).


En fait, la partie analyse de l'outil n'est que la surface. L'analyseur sait faire bien plus qu'analyser et générer des IPFs. On peut carrément définir une protection en l'appelant par son nom, définir un secteur particulier en taille, avec ses timings, ses propriétés, et ainsi de suite.

Citer :
L'outil de la SPS génère un IPF à partir de données reconnues, de protections connues, etc. Le format lui-même ne contient pas trace d'une quelconque infos.


Si, mais c'est juste que tu n'as pas les infos correspondantes qui apparaissent en clair. L'outil sait à quoi correspond tel ou tel octet, mais une fois celles-ci injectée dans l'IPF, impossible de savoir qui est quoi.

Comme je l'avais déjà expliqué, tu as décodé toute la partie en clair via le source. Il reste toujours la partie "sombre" (façon de parler hein), qui elle est très complexe, mais aussi impossible à tracer.

Citer :
2/ L'histoire de recréer des masters, c'est pas mal. Mais ça parait annexe quant au sujet de la préservation.


La majeure partie des originaux viennent de master, et donc avaient une description de format. Les IPFs par souci de mimétisme reproduisent tout ce qui est sur les originaux.

Un original véritablement préservé est identique point de vue données à sa source, et possède la description de son format. C'est comme ça qu'ils étaient fait, et c'est comme ça qu'on les crée dans le container IPF.

Citer :
Tout comme pour les cassettes, une vrai préservation passe par l'extraction d'un maximum d'information.


Forcément. Et c'est le cas avec csw2cdt. L'outil est même carrément doté d'un sniffeur de protection, il reconnait la bonne dans 99% des cas.

Tu choisis Amstrad CPC custom alors que c'est du Bleepload 2 ? pouff !! ça apparait direct dans le log !
Le dump est bon mais bien dégueulasse avec de la crasse ? hop tu retraites le fichier CSW, et tu indiques via un switch de shooter les trailer bytes pour en avoir pile le compte !

Ce sont des minutes de gagnées à ne pas avoir à le faire à la main.

Citer :
Des infos interprétées, c'est bien, mais arrivera un jour ou l'on regrettera de n'avoir que cela.


Je ne comprends pas ce que tu cherches à dire ou à expliquer.

Avant de se retrouver sur bande d'une cassette, les éditeurs généraient un équivalent des fichiers CDT, avec donc une description de format, timing, et ainsi de suite.

Csw2cdt ne fait pas d'interprétation. Il traite un fichier CSW filtré avec l'outil fourni qui s'appelle CSW0, récupère les timings qui ont été conservés lors du passage du WAV en CSW, et les prends pour les injecter dans le CDT.

On a donc en bout de ligne un CDT avec des timings qui sont conformes à l'extrait original brut au format WAV.

César a vraiment fait un boulot super propre et bien carré. En fait, le point de départ, c'est quand il a examiné le code source de samp2cdt. Là il m'a dit c'est juste pas possible, samp2cdt calcule de façon totalement arbitraire les constantes/timings, c'est du grand n'importe quoi, et c'est pour ça que nombre de logiciels sous speedlock déconnent ou se chargent pas à la vitesse réelle de la cassette.

Car csw2cdt donne même la vitesse d'enregistrement et donc de lecture d'une cassette.

Mask de gremlin ? 3500 bauds. Bad Cat ? 3500 bauds ; etc etc etc. Si c'est 1000 bauds, c'est indiqué, du 2000 bauds aussi. Jamais outil n'a été aussi précis.

On est pas dans l'interprétation, mais bien dans l'utilisation de l'existant. Ce qui était sur la bande de la cassette, se retrouver dans le CDT. Et de la même façon, csw2cdt sait faire l'inversion d'un CDT en CSW, et CSW0 de CSW en WAV.

On obtient des masters super propre prêt à graver ou à envoyer chez un duplicateur industriel (si besoin était).

Citer :
(Imagine qu'on ait dit un jour "le format DSK est suffisant pour la préservation !"). J'ose espérer que la SPS conserve précieusement les dumps Kryoflux dans ses bases secrètes (à vrai dire, j'en suis persuadé) !


Bien entendu. Tout est sécurisé sur des machines redondées, du bon gros serveur type entreprise.

J'ai en ce qui me concerne l'intégralité du catalogue CPC, Amiga et ST officiel. ça fait encore un back-up supplémentaire.

Citer :
Rappel : IPF = format de bit. C'est à dire que c'est de l'interprétation du niveau inférieur, qui est une description d'inversion de flux (scp, kfraw).


Effectivement, c'est un format de bite, mais est-ce que c'est vraiment le sujet ? :mdr:

Bon j'déconne :) Comme tu dis, le KF raw est le format de travail, nécessaire pour le traitement et la génération des fichiers finaux.

Citer :
De plus, que va-t-on faire si un jour on découvre un algo qui lave la crasse plus blanc que blanc, si on n'a plus les originaux en inversion de flux ? Quel dommage !


Je n'arrive pas à comprendre ta vision de la chose. SPS préserve, et donc conserve les données. Rien n'est jeté. Je suppose qu'il stockent en sureté les dumps KFraw une fois les IPFs générés.

Citer :
L'IPF n'est donc qu'un format commode de description de piste, pas de préservation réelle.


Tu ne peux pas prendre un dump KFraw, et dire ça y est je suis venu et j'ai vaincu.

Le format KFraw n'est qu'un format transitoire. C'est notre base de travail. On se sert de lui pour générér quelque chose de propre. De base, un dump KF raw tel quel est tout sauf propre ! Pour la préservation, tu peux pas garder simplement le dump KF raw en lourd. T'es obligé de l'avoir pour générer les IPFs, mais sinon, non. Le stockage des bits d'un dump KF raw c'est pas de la préservation. C'est juste une commodité pour préserver. On arrache tout les bits d'une disquette, et ensuite on expurge toute la crasse qui n'est pas secteur, timing, zone gap et j'en passe.

Citer :
3/ Pour revenir au format IPF. Il y a certes certaines infos (GAP, etc), mais c'est générique. Si tu as de l'info dans un GAP, ça apparaîtra comme de l'information et non du GAP. Idem, si tu as des secteurs imbriqués (rappel : Sur certaines protections à secteurs imbriqués, les secteurs démarrent en plein milieu d'un autre secteur), un bit peut appartenir à plusieurs secteurs, voir être considéré comme du GAP. On en revient au même truc : IPF = description de piste.


J'avais posté un exemple avec la KBI-19. C'est un format de piste générique, identique à la CAAV-19 par exemple. L'outil les repère direct, par contre, ce que j'ai noté c'est que si la piste est décrité, tout les secteurs et les zones gap le sont aussi, et c'est vachement complexe.

Idem quand on examine un dump tiré d'une disquette avec KBI-19 écrite par la carte kryoflux, la piste est exactement comme sur la disquette vieille de 30 ans qu'on a dumpé. Même aspect physique, même entrelacement des secteurs, c'est juste que c'est bien plus niquel et propre que le matériel original. En meme temps y a pas de mal, la technologie a vachement avancé depuis.

Citer :
4/ "Crasse", "saleté"... On parle de quoi ? Un bit, c'est un bit (0 ou 1). Ça n'est ni sale, ni crasseux. Éventuellement il est mal lu. Si on parle de bit, c'est qu'on a déjà traité les inversions de flux produisant ces bits.


Mais justement, c'est bien ce que je dis. Voilà, tu viens en écrivant ça de me prouver ce que je pensais :

les dump KFraw ne sont PAS PROPRES ! Et c'est normal, les disquettes Amstrad ont 30 ans !

Et oui, dans le cadre de la préservation, on ne garde pas toute la merde ou la gangue de crasse de "bit" (putain chui en forme sur les jeux de mots dégueulasses ce soir lol !).

C'est comme si tu buvais de la mauvaise picole en disant qu'elle est délicieuse sous prétexte de croire que c'est du vin de table de première catégorie..... :mdr:

Je te le redis donc. L'analyseur dégage TOUTE la crasse lors du traitement. Les bits sales 0 ou 1, y en a pas mal sur un dump en KF raw tout frais. On les garde pas pour avoir un IPF propre !

On garde pistes, protection, secteurs, zone GAP, GAP2, bref je m'arrête la quoi!
Mais pour le reste, oui les bits de crasse (et y en a !) on les vire !!

Citer :
5/ Si tu considère l'outil d'analyse comme "un nettoyeur de crasse", tu acceptes l'idées que ce qu'il produit est différent de ce qu'il lit. Donc, c'est une copie interprétée. Tu ne peux pas être à la fois une copie exacte et une copie nettoyée.


L'outil d'analyse ne produit pas en sortie de contenu merdeux. On a le contenu d'origine, moins la crasse, qui est l'oeuvre des années, et qui gonfle artificiellement pour rien les images disques. Tout le reste y est pistes, secteurs, timings, particularité, etc etc.

L'outil n'interprète rien. il prend le flux, sort le contenu piste par piste identique à la source, et récupère les constantes/timings utilisés. Ce qu'on a en sortie, correspond à ce qui a été mis entrée. C'est bon ? alors cest bon en sortie. C'est de la merde en entrée ? ben c'est la merde au final !

Mais raconte pas n'importe quoi Thomas !!! Une copie se doit d'être exacte point de vue des données. Que je sache, la crasse, les bits pourris n'ont pas été fournis avec les masters à l'époque ou les logiciels étaient commercialisés, donc oui la crasse, la merde, la gangue, les bits pourris ne sont pas gardés et expurgés.

Quand t'âchete un véhicule de collection, si tu te plains que la bagnole est pas dans son jus, c'est à dire crasse et tout, le vendeur va te mettre un poke en rigolant, et t'expliquand que la crasse et la saleté n'étaient pas vendues d'origine avec la voiture, il est donc normal qu'il ne te vende pas ce véhicule avec de la crasse. Pur les IPFs, c'est le même principe. Y avait pas de crasse au mastering, y a pas de raison qu'on la garde dans le format IPF.

On régénère du neuf, du propre, du bien calibré avec les IPFs, c'est pas pour laisser dedans de la merde qui sert absolument à rien. Par défaut le contenu des gaps est gardé. Je n'ai pas le choix pour discarder quoi que ce soit.

Réflechis à ce que je t'ai dit au sujet des fichier WAV tirés des cassettes originales, c'est exactement le même truc. ces fichiers sont pleins de crasses, c'est pas eux qui doivent primer. Leur importance est juste le fait qu'ils soient une source filtrable, pour obtenu un fichier CSw, qui amène à son tour au fichier CDT définitifs.

Auteur :  dlfrsilver [ 11 Déc 2016, 22:43 ]
Sujet du message :  Re: SugarConvDsk

breiztiger a écrit :
D'accord avec thomas :biere:

L'info de base reste le dump kryoflux, qui contient ces fameuses inversions de flux qui d'ecrivent les bits ... donc à un niveau inférieur à çe que contient l'ipf


Je suis d'accord.

Citer :
Comme le wav pour nos cassettes, qui contient l'analogique transforme ensuite en donnees numerique dans nos Cdt


vrai :) Je garde depuis un moment tout les WAV tirés des cassettes.

Citer :
Il faut absolument conserve les dumps kfraw et nos wavs pour comme dit thomas au cas où on se rend compte que l'on a mal decode quelque chose

:winner:


C'est le cas, j'ai plus de 11go de dump Kryoflux pour Amstrad CPC, sauvés sur mon cloud en ligne.

Auteur :  Lone [ 11 Déc 2016, 23:31 ]
Sujet du message :  Re: SugarConvDsk

dlfrsilver a écrit :
Citer :
1/ Le format IPF ne décrit pas la protection directement. Il décrit la piste. Si tu me dis le contraire, argumente précisément (un exemple serait le bienvenue).


En fait, la partie analyse de l'outil n'est que la surface. L'analyseur sait faire bien plus qu'analyser et générer des IPFs. On peut carrément définir une protection en l'appelant par son nom, définir un secteur particulier en taille, avec ses timings, ses propriétés, et ainsi de suite.

Citer :
L'outil de la SPS génère un IPF à partir de données reconnues, de protections connues, etc. Le format lui-même ne contient pas trace d'une quelconque infos.


Si, mais c'est juste que tu n'as pas les infos correspondantes qui apparaissent en clair. L'outil sait à quoi correspond tel ou tel octet, mais une fois celles-ci injectée dans l'IPF, impossible de savoir qui est quoi.

Comme je l'avais déjà expliqué, tu as décodé toute la partie en clair via le source. Il reste toujours la partie "sombre" (façon de parler hein), qui elle est très complexe, mais aussi impossible à tracer.


Denis, pitié arrête le n'importe quoi !
Les IPF ont été entièrement décodés, c'est un fait (et pas que par moi). Il n'y a aucun octet en plus qui contiendrait une quelconque information. Ne soit pas mystique. Ou arrête de troller, c'est un peu gros (même si je tombe dedans régulièrement, je le confesse)

Citer :
Citer :
Des infos interprétées, c'est bien, mais arrivera un jour ou l'on regrettera de n'avoir que cela.


Je ne comprends pas ce que tu cherches à dire ou à expliquer.


Il faut l'information la plus proche de la source. IPF n'est pas le format le plus proche de la source. Ca peut se résumer à ça. Si ça ressemble au fameux freeform, c'est bien mais pas suffisant. Il faudrait les originaux freeform par exemple.


Je passe sur le reste. J'imagine qu'on dit la même chose...

L'IPF est un format de description de piste. Pour faire bien les choses, la SPS décrit chaque protection, pour avoir des IPF bien propre. Donc sans les bits de rajouts inutiles que l'on trouve parfois sur les dumps ctraw (j'imagine que c'est ce que tu appelles "la crasses"). On diffère juste sur le fait que tu considères que ça ne fait pas partie du dump source, et moi si.

Je suis d'accord pour dire que le résultat peut être élégant et bien fichu.

J'offre juste un autre moyen : A partir d'un bête fichier dsk, je reconstitue également un master utilisable. J'ai pas le même soucis d'élégance ou d'exhaustivité de description (comme l'outil de génération), mais une fois encore, je n'ai pas le même objectif.

Et si tu regardes objectivement un jour, tu verras que les pistes que génère à partir d'un dsk (si je pars d'une autre source, c'est trop facile) sont très proche de celles que tu aurais à partir d'une source complète (le dsk ayant une manière bien a lui de "nettoyer" les dumps).

Auteur :  dlfrsilver [ 12 Déc 2016, 00:56 ]
Sujet du message :  Re: SugarConvDsk

Citer :
Denis, pitié arrête le n'importe quoi !


....Disait l'homme sans arguments. C'est quoi ce point godwin à 2 balles ? lol

Je ne dis pas n'importe quoi, je te réponds après ton paragraphe en dessous.

Citer :
Les IPF ont été entièrement décodés, c'est un fait (et pas que par moi). Il n'y a aucun octet en plus qui contiendrait une quelconque information. Ne soit pas mystique. Ou arrête de troller, c'est un peu gros (même si je tombe dedans régulièrement, je le confesse)


Et pourtant y a un bon nombre d'informations dedans que tu ne maitrises pas.

La preuve factuelle : ton outil ne sait pas encoder !!! Tu envoies direct dans le container IPF les données sans aucun traitement !

Il n'y a pas de mystique. Je t'ai déjà expliqué que si par le biais du source fourni tu as décodé et compris un certain nombres de choses, ce qui est normal, il y a des choses qui ne sont pas accessibles sans avoir l'analyseur en main !

Mais ça parle à mon popotin, il va te chanter des chansons lol !



Citer :
Il faut l'information la plus proche de la source. IPF n'est pas le format le plus proche de la source. Ca peut se résumer à ça. Si ça ressemble au fameux freeform, c'est bien mais pas suffisant. Il faudrait les originaux freeform par exemple.


Hé bien justement tu vois, ça c'est un point que tu n'as pas compris. Je vais donc te l'expliquer (enfin le réexpliquer en fait lol) :

A la belle époque, les masters en bit à bit ça n'existait pas.

2 possibilités : soit le programmeur on lui remettait une disquette vierge préparée avec la piste de protection directement appliquée, charge à lui de mettre le programme, d'ajouter la routine de check de la protection.

A l'arrivée à l'usine de duplication du master, l'opérateur chargeait la disquette master, et décrivait sur la console de commande de la machine traceuse le format (sans quoi, pas de réplication).

Ce fichier au format freeform était exactement ce qu'est un fichier IPF. A savoir un fichier de mastering.

Les originaux freeform avaient la même taille que les IPFs, et fonctionnaient (en moins bien) que le format IPF. Donc en soit aucun intêret en fait, puisque le format IPF remplace ce format.

Moi quand tu me sors que les dumps KFraw c'est ça la source, mais comment tu te trompes !

Un dump KF raw c'est quoi ? C'est une copie d'un original Freeform gravé sur une disquette.

Pourquoi on utilise les dumps KF raw qui sont un lecture ultra bas niveau de la surface des disquettes ?

Parce que sans ça, on ne pourrait pas regénérer un nouveau master.

Et pour regénérer un master, on doit expurger la merde, les cochonneries, les impuretés (celles-ci n'étaient pas présentes sur le master freeform, donc par fidélité, elles n'ont rien à faire dans le master regenéré au format IPF, c'est bon jusque là tu me suis ?).

C'est pour ça que si je suis d'accord avec toi sur le fait qu'on a pas d'autre choix que de partir du dump KF raw, ce dernier n'est que la base de travail. C'est le master final regénérer qui compte et qui sera la future source.


Citer :
Je passe sur le reste. J'imagine qu'on dit la même chose...


Possible....

Citer :
L'IPF est un format de description de piste. Pour faire bien les choses, la SPS décrit chaque protection, pour avoir des IPF bien propre.


La description de pistes c'est sur Amiga. Sur Amstrad, même pour les pistes de protections, il faut décrire chaque octet, chaque secteur, chaque zone gap, les timings. On ne peut pas faire autrement.

Sur Amiga c'est plus simple globalement, parce qu'il fait automatiquement de la gestion de pistes.

Citer :
Donc sans les bits de rajouts inutiles que l'on trouve parfois sur les dumps ctraw (j'imagine que c'est ce que tu appelles "la crasses"). On diffère juste sur le fait que tu considères que ça ne fait pas partie du dump source, et moi si.


Les saletés, impuretés, la crasse qu'on trouve dans les dumps lourds se retrouve aussi dans les fichiers CT-raw. Elles se sont rajoutées à cause de l'électronique d'écriture, soit parce que le disque a évolué physiquement à cause de son âge avancé. Et oui ça n'était pas sur le master source au format freeform original. On préserve les données, et pas la merde qui va avec. C'est simple pourtant ?

Quand on sort une amphore de la mer, recouverte d'une gangue de merde, on la met dans un produit qui va la nettoyer, car à l'origine, avant d'arriver au fond de la mer, y avait pas de saletés collées dessus.

Hé bien pour les masters c'est pareil, le dump KF raw c'est l'amphore dégueulasse, l'analyseur c'est le produit nettoyant, et l'IPF c'est l'amphore d'origine, propre, restaurée et nettoyage.

Les gens qui s'occupent des musées ne mettent pas de truc dégueux sortis de la mer directement à la vue du public. On restaure et on nettoie avant, ben là c'est pareil !

Citer :
Je suis d'accord pour dire que le résultat peut être élégant et bien fichu.


Carrément. La KBI-19 est aussi clean et belle et propre, comme c'était dans le dump KF-raw......

J'vais faire du devilliers : "j'arrête, je bande" :mdr:

Citer :
J'offre juste un autre moyen : A partir d'un bête fichier dsk, je reconstitue également un master utilisable. J'ai pas le même soucis d'élégance ou d'exhaustivité de description (comme l'outil de génération), mais une fois encore, je n'ai pas le même objectif.


Misère..... les fichiers DSK sont de bêtes copies secteurs. Les vrais IPFs sont les originaux traités en gestion de piste. Ou alors tu parles des masters fait à la main en 1985 chez Loriciels..... Et encore.....

Citer :
Et si tu regardes objectivement un jour, tu verras que les pistes que génère à partir d'un dsk (si je pars d'une autre source, c'est trop facile) sont très proche de celles que tu aurais à partir d'une source complète (le dsk ayant une manière bien a lui de "nettoyer" les dumps).


Tu racontes n'importe quoi :) Le format DSK est un format bête et banal de gestion de secteur. Y a pas de gestion de timing, y a pas de place pour les trucs et les formats bizarres, c'est un format strictement fait pour l'émulation. Pour avoir le real deal, y a qu'un seul choix, le format IPF !

Purée j'imagine la tête de mes collègues "hé les mecs, je convertis des ADFs d'originaux amiga, et je génère des masters".

Je vois la réponse : "y se fout de not' gueule lui?". Genre les masters c'est de la copie secteur, n'importe quoi !

Auteur :  Megachur [ 12 Déc 2016, 07:31 ]
Sujet du message :  Re: SugarConvDsk

@Lone : ce que tu dois expliquer à dlfrsilver c'est le format qu'on a prit pour l'émulation, c'est à dire la piste complète en format MFM/FM qui est générée au final en lecture pour le drive/fdc... Quelque soit la source (IPF, CTRAW ou DSK) , on aboutit, après un lourd traitement dans Sugarbox, à des pistes complètes avec toutes les informations Index, GAP et données !

une fois dans ce 'format' qui est celui de haut niveau lut par le drive/FDC et qui a des données propres (où en tout cas qu'un lecteur de disquette + FDC peut lire, y compris avec les décalage de bits par rapport à la fenêtre de données), c'est là que ton outil peut générer un IPFs, décrit avec zone Index, GAP et données... La particularité, c'est que tu utilises une description bit à bit (le format IPF le permet) plutôt que comme la SPS avec Index (en bytes), GAP (en bit) (et avec complétion de bits entre gap et données) et ensuite les données des secteurs (IDR+crc+données) alignées en bytes !

en tout cas c'est ce que j'ai compris du codage que tu as fait !

ouf :sweatingbullets: !!!

donc au final, c'est un choix d'implémentation différent du SPS... qui aligne toutes les données...c'est propre mais j'attends de voir l'implémentation la gestion des weakbits et des protections comme celle de MOT pour savoir si on peut vraiment appliquer partout l'alignement des données des secteurs (IDR+crc+données) alignées en bytes !

car concernant par exemple le jeu MOT, et j'en sais quelques chose, si on est pas en format bit, on est pas décalé lors de la lecture des données (merci le faux mauvais bit MFM qui j'espère a été mis exprès dans cette protection) ;-)) après index et donc le loader ne détecte pas les bonnes données ! ;-) :mdr:

Auteur :  Lone [ 12 Déc 2016, 09:11 ]
Sujet du message :  Re: SugarConvDsk

@Megachur : Je lui ai déjà expliqué ce que je faisais. J'ai retrouvé des débats dans le même genre datant de janvier (mes premières expérimentations sur l'écriture d'IPF). Pour le coup, j'ai renoncé (la mort dans l’âme, je n'aime pas trop laisser des info farfelues sur mon thread), je préfère garder mon énergie à faire quelque chose de productif.

Pour ce qui est de mon codage, il n'est pas systématiquement en bit : En fait, j'ai un pré-traitement pour savoir si on peut coder l'ensemble en byte ou pas. Si ça n'est pas le cas (alignement incorrect MFM, flakey bit, etc) alors je passe en bit.

Auteur :  dlfrsilver [ 12 Déc 2016, 09:42 ]
Sujet du message :  Re: SugarConvDsk

Megachur a écrit :
@Lone : ce que tu dois expliquer à dlfrsilver c'est le format qu'on a prit pour l'émulation, c'est à dire la piste complète en format MFM/FM qui est générée au final en lecture pour le drive/fdc... Quelque soit la source (IPF, CTRAW ou DSK) , on aboutit, après un lourd traitement dans Sugarbox, à des pistes complètes avec toutes les informations Index, GAP et données !

une fois dans ce 'format' qui est celui de haut niveau lut par le drive/FDC et qui a des données propres (où en tout cas qu'un lecteur de disquette + FDC peut lire, y compris avec les décalage de bits par rapport à la fenêtre de données), c'est là que ton outil peut générer un IPFs, décrit avec zone Index, GAP et données... La particularité, c'est que tu utilises une description bit à bit (le format IPF le permet) plutôt que comme la SPS avec Index (en bytes), GAP (en bit) (et avec complétion de bits entre gap et données) et ensuite les données des secteurs (IDR+crc+données) alignées en bytes !

en tout cas c'est ce que j'ai compris du codage que tu as fait !

ouf :sweatingbullets: !!!

donc au final, c'est un choix d'implémentation différent du SPS... qui aligne toutes les données...c'est propre mais j'attends de voir l'implémentation la gestion des weakbits et des protections comme celle de MOT pour savoir si on peut vraiment appliquer partout l'alignement des données des secteurs (IDR+crc+données) alignées en bytes !

car concernant par exemple le jeu MOT, et j'en sais quelques chose, si on est pas en format bit, on est pas décalé lors de la lecture des données (merci le faux mauvais bit MFM qui j'espère a été mis exprès dans cette protection) ;-)) après index et donc le loader ne détecte pas les bonnes données ! ;-) :mdr:


Ma question est simple : comment s'assurer qu'une piste en mode bit à bit est dépourvue comme il n'y a pas de checksum ? Quel est l'assurance de ne pas injecter une piste avec un défaut ou 1 ou plusieurs bits sales et qui ne font pas partie des données ?

Pour prendre un autre cas, celui d'obitus sur Amiga, qui utilise un format de disque très particulier et ultra bas niveau, le CRC est interne et non externe, ce qui veut dire que pour être sur que les données n'aient pas de véroles, ben c'est sacrément problèmatique. C'est aussi le cas de shadow of the beast sur Amiga, dupliqué par la firme Protoscan (entendu parler de la piste de protection utilisée par gremlin sur Atari ST appelé Gremlin Protoscan ?), y avait pas 1 seul checksum sur les pistes.

Auteur :  Lone [ 12 Déc 2016, 09:54 ]
Sujet du message :  Re: SugarConvDsk

Denis :

Il n'y a pas de checksum sur le disque au niveau de la piste (sur amstrad). Le seul checksum dispo est au niveau du secteur : Un pour l'en-tête, un pour les données.

"bit à bit" signifie que l'on considère l'ensemble des bits MFM, là ou "byte par byte" on les stockes par paquet de 8 (et souvent sous forme de donnée, pas de bits MFM)

Ainsi, si l'on considère une fin de piste, cas classique, qui ferait un nombre non multiple de 16 de bits. Exemple, 517 bits.
Stocker par bit permet de les indiquer tous, là ou stocker par octet force à en squizzer 5.

Tu n'as jamais l'assurance de ne pas mettre tes fameux bits sales. La seule que tu as, c'est d'avoir tes checkums conformes sur tes secteurs, et de tester le jeu. Ou alors d'être l'exacte copie de ta source, si elle est réputée fiable.

(Bon j'avais pourtant dit qu'on ne m'y reprendrait pas !)

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