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.
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 !
Inscription : 28 Août 2008, 23:41 Message(s) : 251
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.
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.
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.
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
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'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.
Inscription : 28 Août 2008, 23:41 Message(s) : 251
Shaker n'est ni un "faux programme", ni un programme de "second plan". 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!
Ok... Je crois que je n'ai rien compris à ce qu'il vient de se passer ici.
Longshot a écrit :
Shaker n'est ni un "faux programme", ni un programme de "second plan". 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. 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. (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.
Inscription : 28 Août 2008, 23:41 Message(s) : 251
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.
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.
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. 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.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum