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

Portail ShakerLand
https://cpcrulez.fr/forum/viewtopic.php?f=7&t=6765
Page 1 sur 1

Auteur :  Longshot [ 20 Oct 2022, 19:02 ]
Sujet du message :  Portail ShakerLand

Bonjour,

La version 1.3 du compendium est maintenant disponible ici :
http://logonsystem.fr/html/downloadlogon.htm
La version anglaise sera disponible très bientôt.

SHAKER est actuellement en version 2.2 and est désormais constitué de 3 modules exécutables indépendants (A,B,C)
L'objectif de SHAKER est de fournir des tests très précis sur les circuits video du CPC.

Afin de faciliter la mise à disposition des résultats de ces tests, un portail a été créé.
https://shaker.logonsystem.fr/

L'objectif principal de ce portail est de montrer les résultats produits par ces tests pour les différents modules de SHAKER sur le hardware réel.
(Cela représente approximativement 1500 photos pour couvrir l'ensemble des test pour les 5 CRTC identifiés).

Ces données peuvent aider les personnes qui travaillent sur le développement d'un émulateur pour connaitre les résultats attendus lorsqu'ils exécutent SHAKER.
Seuls les 3 CRTC non émulés par des ASIC sont actuellement traités.

Le portail permet également de comparer les résultats produits par quelques émulateurs avec ceux des machines réelles.
Les émulateurs concernés sont :
AMSPIRIT, Version 0.687
WINAPE, Version 2.0 Beta 3
ACE, Version 1.22
CPCEC, Version 2022-08-06

Je souhaite remercier:
Siko pour son travail sur le portail.
Ced pour les graphiques.
Tronic pour le serveur d'hébergement.
Marc pour le contrôle de la version anglaise du Compendium.
DManu pour le travail considérable qu'il a fourni sur son émulateur.

J'en profite pour signaler la sortie d'une nouvelle version de Amspirit (0.704b):
https://forum.system-cfg.com/viewtopic.php?t=11535

Image

Auteur :  OffseT [ 25 Oct 2022, 19:41 ]
Sujet du message :  Re: Portail ShakerLand

Super boulot !

Entre les travaux préliminaires, la publication du document technique et maintenant la création des pages de test, je n'ose pas imaginer le nombre d'heures de travail pour mettre tout ça en place !

Auteur :  Longshot [ 26 Oct 2022, 09:34 ]
Sujet du message :  Re: Portail ShakerLand

Citer :
Super boulot !

Merci.

Si tu mets à jour ACE sur des points particuliers traités par SHAKER et que tu souhaites que le portail reflète ces évolutions, tu peux nous transmettre les screenshots des tests concernés. (coordonnées de contact sur le portail).

Nous serons enchanté de pouvoir actualiser le portail.

Auteur :  OffseT [ 02 Nov 2022, 11:50 ]
Sujet du message :  Re: Portail ShakerLand

J'aurais vraiment adoré avoir sous la main un outil comme Shaker il y a dix ans pendant la mise au point du moteur d'émulation vidéo d'ACE. Je pense que j'y aurais gagné beaucoup de temps. :D

Mais à ce jour, les démos qui ne tournent pas avec ACE se comptent sur les doigts d'une main, aussi je pense n'utiliser le Shaker qu'au cas par cas pour résoudre tel ou tel soucis ennuyeux. En revanche, mon objectif n'est pas d'émuler le moindre glitch ; vu que ma cible reste une machine single-core à 700MHz (1HGz pour le CPC+), je m'autorise certaines impasses sur des fonctionnalités qui seraient bien trop coûteuses en CPU au regard de leur impact proche du néant pour l'utilisateur. Mais bien sûr, je te transmettrai sans soucis les captures d'écrans liées au Shaker en cas d'améliorations.

En fait, j'avais déjà fait un travail un peu similaire avec les tests de Kevin Thacker il y a quelques années (http://ace.cpcscene.net/tests:arnold_test_suite), mais c'était un peu trop long et fastidieux, aussi je ne l'ai pas maintenu. :sweatingbullets:

Auteur :  Longshot [ 02 Nov 2022, 15:36 ]
Sujet du message :  Re: Portail ShakerLand

Citer :
je te transmettrai sans soucis les captures d'écrans liées au Shaker en cas d'améliorations
Merci. On les attends. :twisted:
Je pense que tu as réalisé quelques corrections dans la 1.25 qui sont reflétées par les premiers tests de Shaker :
Test A2 : https://shaker.logonsystem.fr/tests?cpc ... =0&test=A2
Test AR : https://shaker.logonsystem.fr/tests?cpc ... =0&test=AR

Citer :
les démos qui ne tournent pas avec ACE se comptent sur les doigts d'une main
je m'autorise certaines impasses sur des fonctionnalités
C'est bon à savoir. C'est une des manières de concevoir l'émulation.
Je pense qu'il n'est pas simple de revenir sur son travail après 10 ans.
Et je comprends également que le choix de l'architecture est limitatif.

Citer :
En revanche, mon objectif n'est pas d'émuler le moindre glitch
On ne peut pas qualifier de "glitch" certaines anomalies de gestion. :?
Notamment celles qui sont liées à des erreurs de comptage et d'adressage (en on ne parle pas ici du crtc 2).
Elle entrainent des désynchronisations totales, des gros défauts d'affichage, d'interruptions ou des deadlock de vsync.
https://shaker.logonsystem.fr/tests?cpc ... =0&test=A7
https://shaker.logonsystem.fr/tests?cpc ... test=BCAPS
https://shaker.logonsystem.fr/tests?cpc ... =0&test=BR

Auteur :  OffseT [ 04 Nov 2022, 22:23 ]
Sujet du message :  Re: Portail ShakerLand

Boaf, tu sais, je suis juste pragmatique. Vu la qualité d'émulation actuelle, je pense que mon temps sera plus utile ailleurs, à créer de nouveaux plugins ou à améliorer la GUI, mais ne t'y trompe pas, ça ne veut pas dire que je n'accorde pas de valeur aux tests, bien au contraire !

Et si des glitchs mis en évidence par les tests se matérialisent en réels problèmes dans de vrais programmes de premier plan, je m'y intéresserai ardemment (sous réserve que ça ne mette pas mon vieux Peg2 à genoux). Dans tous les cas, ça ne présuppose en rien que je ne m'amuserai pas à en corriger certains pour le fun ; ça dépendra de mon humeur et de mes priorités. :)

Quant à retourner sur du vieux code, le modifier ou même le jeter à la poubelle, ne t'inquiète pas, ça ne me pose vraiment pas de problème ; je crois même que c'est ma spécialité. :D D'autant plus que l'émulation CRTC+GateArray ne représente pas un gros volume de code comparé à tout le reste. Se replonger dans le FDC ou même dans certaines parties de la GUI serait autrement plus lourd dingue. :sweatingbullets:

Auteur :  Longshot [ 05 Nov 2022, 17:26 ]
Sujet du message :  Re: Portail ShakerLand

Shaker n'est ni un "faux programme", ni un programme de "second plan". :o
C'est un vrai programme qui permet de tester la qualité d'émulation.
Il contient plusieurs modules interactifs et quelques POC.
Par ailleurs c'est un complément du compendium.

Je ne pense pas qu'une démo soit de "premier plan" en comparaison.
Tu es pragmatique et tu adaptes ton émulateur au coup par coup en prenant des démos comme maitre étalon.
C'est une conception youtube de l'émulation.
Ca se respecte, mais ce n'est pas synonyme de qualité d'émulation.

Un émulateur qui évolue ainsi gère juste de plus en plus de cas particuliers en fonction d'une "logithèque" à date...
C'est pour ça qu'il est actuellement très simple de crasher ton émulateur.

Si bosser sur l'émulation CRTC+GateArray est plus simple que le FDC et ne te pose pas de problème, bientôt une 3.0! :wink:

Auteur :  OffseT [ 07 Nov 2022, 11:09 ]
Sujet du message :  Re: Portail ShakerLand

Ok... Je crois que je n'ai rien compris à ce qu'il vient de se passer ici. :sweatingbullets:
Longshot a écrit :
Shaker n'est ni un "faux programme", ni un programme de "second plan". :o
Tu es pragmatique et tu adaptes ton émulateur au coup par coup en prenant des démos comme maitre étalon.
C'est une conception youtube de l'émulation.

Heu... je n'ai jamais dit qu'il était « faux » ou de « second plan ».
Et il ne t'aura pas échappé qu'avant ton programme de test, il n'y avait pas grand chose d'autre que les démos de Chany pour étalonner un émulateur. :P
Pour le reste, YT étant le maître du web, je me permets humblement de voir un compliment dans ce dernier commentaire un peu trop sibyllin pour moi.
Longshot a écrit :
Ca se respecte, mais ce n'est pas synonyme de qualité d'émulation.
Un émulateur qui évolue ainsi gère juste de plus en plus de cas particuliers en fonction d'une "logithèque" à date...

Négatif. Il n'y a pas de cas particuliers dans le code d'émulation d'ACE. Sérieusement, tu crois qu'il détecte ce qui est en train de tourner pour s'adapter en fonction ?
Non, il n'y a que des gestions de bouclage et de reset de registres, toujours les mêmes selon le CRTC.

Est-ce qu'il y a des erreurs d'interprétation dans ces algos ? sans doute.
Est-ce qu'il y a des "race condition" non correctement résolues lors de la reprogrammation aux limites ? certainement.
Est-ce qu'il y a des pans entiers sur lesquels des impasses ont été faites ? absolument.
Longshot a écrit :
C'est pour ça qu'il est actuellement très simple de crasher ton émulateur.

Pas si simple vu que 99,9% des programmes fonctionnent. :P
(y compris dans des configurations exotiques que ACE est à ce jour le seul à pouvoir émuler)

Mais bon, on s'éloigne du sujet et de mon intention initiale qui était juste de te féliciter pour ton travail.
Je vais désormais opter pour la posture du PulkoMandy. :D

Auteur :  Longshot [ 08 Nov 2022, 11:31 ]
Sujet du message :  Re: Portail ShakerLand

Offset a écrit :
il ne t'aura pas échappé qu'avant ton programme de test, il n'y avait pas grand chose d'autre que les démos de Chany pour étalonner un émulateur. :P
Il y avait les tests de Kevin Thacker, que tu as évoqué plus haut, ainsi que tes propres tests.
Une nouvelle fois, les démos ne devraient pas être le maître étalon d'un émulateur.
Notamment car elles sont de plus en plus nombreuses à être développées en cross-dev à l'aide d'émulateurs.
La conséquence inévitable est que les auteurs s'adaptent aux limitations de l'émulateur, et non à celles de la machine.
C'est encore plus vrai lorsqu'il est question de code qu'on veut rendre compatible avec tous les CRTC, par exemple.

Offset a écrit :
Négatif. Il n'y a pas de cas particuliers dans le code d'émulation d'ACE.
Sérieusement, tu crois qu'il détecte ce qui est en train de tourner pour s'adapter en fonction ?
Non, il n'y a que des gestions de bouclage et de reset de registres, toujours les mêmes selon le CRTC.
Je vais préciser mon propos.
Tu as réalisé des modifications dans ACE 1.25 grâce au compendium que tu as récupéré il y a environ 1 an.
(https://www.cpcwiki.eu/forum/index.php?msg=221664)
Je suis content de découvrir que mon travail a servi. :D

Tu as indiqué avoir traité le "truc du border-byte" qui y est exposé mais sans avoir émulé réellement la fonction associée de R8.
Bien sûr, je ne pense pas du tout que ACE détecte et s'adapte à du code particulier (je ne vois pas comment d'ailleurs).
Ce n'était donc pas mon propos.
J'ai dit que ACE gérait des cas particuliers en fonction de la logithèque à date.
Dans l'exemple donné, il s'est adapté spécifiquement au test A2 de SHAKER sans émuler réellement la fonction SkewBits de R8.
(et potentiellement à l'adaptation CRTC 0 future d'une de tes démos).

Beaucoup d'émulateurs sont d'ailleurs conçus initialement ainsi, par strates.
Les différents cas "rencontrés" et "résolus" sont souvent indiqués, sinon dans les sources, sinon dans les historiques de versions.
(ce qui est le cas également pour ACE, du moins dans l'historique de versions)

Offset a écrit :
on s'éloigne du sujet et de mon intention initiale qui était juste de te féliciter pour ton travail
Je te remercie une nouvelle fois.

On est ici dans le sujet de Shaker Land. :D
Il n'est donc pas inopportun d'y évoquer la qualité d'émulation.

Et encore plus dans la mesure ou ACE fait partie des émulateurs testés sur le portail.
Comme je l'ai dit initialement, on peut en effet concevoir la qualité d'émulation comme la capacité de gérer une logithèque à date.
Mais on peut également le concevoir comme la capacité d'émuler le plus fidèlement possible tous les circuits.

Auteur :  Longshot [ 26 Oct 2023, 16:53 ]
Sujet du message :  Re: Portail ShakerLand

Hello

La version 1.7 version du Compendium (Français/Anglais) est disponible ici:
https://shaker.logonsystem.eu/

SHAKER 2.5 est également disponible sur ce portail.
Il est désormais composé de 4 modules exécutables (A, B, C, D).
Pour rappel, l'objectif de SHAKER est de fournir des tests précis sur les circuits vidéo des CPC.

Sur le portail SHAKERLAND, deux nouveaux standards sont présentés.
SSM pour "screenshot management"
Ce nouveau standard permet à un programme écrit en Z80A de demander à l'émulateur de générer un screenshot (ou un snapshot)
L'émulateur qui supporte ce format peut activer cette fonction lorsqu'il exécute un programme qui le gère.

CSL pour "CPC Script Language"
Ce type de fonction manquait cruellement dans le monde de l'émulation CPC.
Un fichier CSL est un fichier ascii qui contient des instructions qu'un émulateur peut interpréter.
Ces instructions permettent de remplacer les actions utilisateur grâce à des instructions.
Il est possible d'insérer une disquette, réinitialiser le cpc, changer le type de CRTC, simuler une saisie clavier ou définir différents délais (spécifiés en µsecondes)
Il est également possible de modifier le nom d'un screenshot (ou d'un snapshot) et le générer à la demande, ou même lancer un autre script.
Un émulateur capable d'enregistrer et de rejouer les actions utilisateur dans un fichier CSL offre de nombreuses possibilités.

Dans le contexte de SHAKER avec le portail SHAKERLAND:
Des fichiers CSL sont utilisés pour lancer automatiquement les différents modules de SHAKER et exécuter tous les tests.
Les fichiers CSL pour les modules A & B sont déjà disponibles sur le portail.
Depuis la version 1.5 de SHAKER, les tests de tous les modules génèrent des code SSM.
Ces codes permettent à un émulateur qui gère ce format de générer automatiquement les screenshot de validation.
Ces screenshots sont similaires à ceux disponibles sur le portail et prises à partir de vraies machines pour chaque CRTC.
Les images produites par les émulateurs sont toujours prises à un moment précis et déterminé (même µseconde dans le frame).
Ceci permet de comparer le résultat produit entre 2 versions différentes d'un émulateur.

L'implémentation SSM & CSL permet de générer facilement et automatiquement les images produites par un émulateur.
Cela permet une intégration rapide de ces images sur le portail car une correspondance existe entre les code SSM 16 bits générés par SHAKER et les images affichées sur SHAKERLAND.

Tests de non régression pour l'émulation.
Une difficulté courante rencontrée par les auteurs d'émulateur concerne les tests de non régression.
En effet une correction effectuée dans l'émulation pour satisfaire le fonctionnement d'un programme donné peut générer des effets de bord et des régressions.
En utilisant conjointement les deux standards (CSL/SSM), une anomalie liée à une correction peut rapidement être détectée.

La méthode principale est basée sur le principe de la génération automatique des screenshots par l'émulateur.
En comparant ensuite binairement les screenshots générés avec ceux d'un dossier de référence via un script, il est possible de déterminer très rapidement toute régression.

Merci à Siko pour le portail et Ced pour les images.

Heureuse coincidence (c'est Halloween), DManu vient tout juste de sortir sa nouvelle version de Amspirit (0.947D):
https://www.amspirit.fr/
Amspirit est capable de faire fonctionner correctement sur CRTC 1 cette petite intro sans prétention:
https://www.pouet.net/prod.php?which=95354

Une émulation précise est impérative pour pouvoir utiliser un émulateur pour du cross dev. :D
Notamment si on souhaite aller au-delà des techniques de R&D produites dans la période 1988-1992 du CPC.

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