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

[EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windows
https://cpcrulez.fr/forum/viewtopic.php?f=7&t=6596
Page 1 sur 3

Auteur :  dmanu78 [ 27 Sep 2021, 23:48 ]
Sujet du message :  [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windows

Bonjour à tous les passionnés du CPC.

Cela fait plusieurs mois que je parcours les différentes pages de ce forum et après 3 années de développement, j'ai le plaisir de vous annoncer la mise à disposition d'un nouvel émulateur AMSTRAD CPC pour windows 7,8 et 10 : AMSpiriT.

Il est loin d'être finalisé à ce jour mais il est déjà suffisamment abouti pour être exploitable. Il sait lire les images "cassette" au format WAV ou CDT et les images "Disque" au format DSK (non protégés pour l'instant).

Il a été développé "from scratch" à partir des seuls datasheets, documentations officielles et officieuses disponibles et des nombreuses informations disponibles sur les forums.
Son code source est 100% original (allez, 99,99% original) et a été créée ex-nihilo.

Il s'agissait à l'origine d'un défi purement intellectuel et le temps passant (avec le confinement) c'est devenu un passe temps de plus en plus prenant. :) A l'image d'un vrai CPC, il a été conçu afin d'être le plus intuitif et simple d'utilisation sachant que sous le capot il n'y a eu aucune concession avec une émulation du Z80 codée en T-State pour une plus grande précision de l'émulation.

Vous pourrez le télécharger à l'adresse suivante et parcourir le cas échéant les différentes étapes de sa genèse qu'il m'a semblé intéressant de partager :
https://forum.system-cfg.com/viewtopic.php?f=24&t=11535

J'espère que vous prendrez plaisir à l'utilisez et n'hésitez pas à me remonter vos remarques. Il n'en sera que plus fiable et plus efficace.
Have fun :)

Auteur :  dmanu78 [ 02 Déc 2021, 00:07 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Un petit update pour signaler la mise à disposition d'une nouvelle version de l'émulateur (v0.466b) qui poursuit son petit bout de chemin. :)

Au programme, des corrections de bugs, des améliorations ergonomiques (mode plein écran, raccourcis claviers..) mais le plus gros des efforts ont porté sur l'émulation du "Floppy Disk Controller" (FDC).

L'émulateur commence donc à gagner en maturité et en stabilité.

Pour donner envie à ceux qui veulent un peu de détails techniques :
- Processeur : l'émulation du Z80A est désormais quasi-parfaite (passe les tests ZEXALL notamment).
- Vidéo : L'émulation du Gata Array & CRTC (type 0/1/2) est bien avancée et nombre de démos assez techniques sont désormais bien rendues (SK&OH, Madness, From scratch, 30 Years Mega démos, Logon's run, PhX...).
- Son : L'émulation du PSG (son) est quasi-terminée.
- Clavier : Emulation du clavier très fidèle avec un mode mapping automatique permettant une saisie sur l'émulateur CPC aussi intuitive que sur PC, quelque soit la version de la ROM installée.
- Joystick : Gestion du joystick avec une option mapping Joystick->clavier
- Cassette : Emulation du lecteur de cassette quasi-terminée (fichier CDT / WAV). Reste l'écriture à gérer.
- Disquette : Emulation du lecteur de disquette en cours (mais bien avancée). (Fichiers DSK). Fonction d'écriture non encore gérée.

Petit plus : Pour les développeurs (ou les curieux), un module de débogage créée sur mesure est également disponible. Il permet de suivre pas à pas l'exécution d'un code avec une fenêtre graphique intégrée et l'affichage des variables/compteurs internes du CRTC, GA, FDC, PPI, PSG... Personnellement, je m'en sers beaucoup pour déboguer l'émulateur...Normal, il a été crée pour mes besoins... :)

Voilà pour la synthèse, cette nouvelle version est disponible dans le lien indiqué ci-avant.
Vos retours restent les bienvenus :D

Image
Panneau de débogage.

Auteur :  norecess464 [ 02 Déc 2021, 19:23 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Très sympa ! Chapeau bas pour le debugger, il a l'air pratique a utiliser, avec toutes les informations pertinentes sous les yeux. C'est loin d’être si facile, que de proposer une bonne ergonomie a cet outil.

En matière d’émulation CRTC, il y a une "bible" qui vient tout juste de sortir cette semaine (--> https://cpcrulez.fr/forum/viewtopic.php?p=57255#p57255 ). Je t'invite fortement a loucher dessus :)

J'imagine que la gamme Amstrad Plus / GX-4000 suivra tôt ou tard ?

Auteur :  dmanu78 [ 03 Déc 2021, 14:07 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour Windo

Merci beaucoup pour tes encouragements.
C’est effectivement très compliqué de faire simple et ergonomique, surtout sur la partie DEBUG, où il y a plein de chipsets à prendre en compte.
J’ai essayé avant tout à reproduire la philosophie Amstrad dans cet émulateur (d’où son nom), graphique, simple, épuré, intuitif. On allume et ça marche tout seul, sans trop chercher dans moultes menus différents. :D
J’espère que cette approche minimaliste vous plaira.

Je te remercie pour le lien. C’est juste énorme cette doc, écrite par des légendes du CPC…. Je cherche une telle documentation depuis plusieurs années. Je ne compte plus les heures à avoir écumer les sites internet, forums à la recherche de bribes de documentation sur le fonctionnement interne du CRTC. J’ai pas mal tâtonné lors du développement de l’émulation du CRTC et ai dû tester de nombreuses hypothèses avant de stabiliser le rendu visuel sur mon émulateur en testant les démos les plus techniques une à une. .
Outre le fonctionnement interne du CRTC, le plus gros challenge a été de maîtriser les timings entre Z80 et CRTC où certaines démos exploitent des ruptures extrêmes de 1 microseconde.. Le guide aborde effectivement ces sujets très complexes. C’est le graal pour tout concepteur d’émulateur CPC. Ce guide va devenir mon livre de chevet. :D

Sinon, oui, à terme les versions « plus » viendront s’ajouter mais il reste encore tellement à faire sur les versions classiques que je ne me presse pas.

PS: J’ai testé la nouvelle version de « Amazing Démo » proposé par Longshot et boum, 2 bugs visuels détectés ( un en mode CRTC 0 et un en mode CRTC 1. Pas de jaloux) alors que ça fait plusieurs mois que je n’avais plus touché au coding du CRTC…Longshot reste un maitre de la programmation du CRTC. Je ne l’ai pas fait expres mais le screen plus haut vient d’une demo de longshot. Je comprends mieux le « I love CRTC » sur le personnage :D

Auteur :  Kris [ 03 Déc 2021, 18:16 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Trés prometteur cet emulateur, et made in france :D
Vivement l'apparition de la gamme Plus, bonne continuation.

Auteur :  norecess464 [ 04 Déc 2021, 16:22 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Citer :
Je ne l’ai pas fait expres mais le screen plus haut vient d’une demo de longshot

Non, Longshot n'a pas participé a la démo que tu évoques. :)

Oui j'imagine que beaucoup de monde a utilisé une méthode empirique pour l’implémentation de l’émulation du CRTC.
Cette doc poussera probablement quelques personnes a revoir depuis le début leur travail. :pir8:

Auteur :  Rity [ 04 Déc 2021, 21:14 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Bonjour,

Pour information, j'ai téléchargé le fichier CPC_AMSpiriT_V0.466b_x64_1.7z concernant l'émulateur AMSTRAD CPC AMSpiriT, et
il s'avère que l'antivirus Defender le détetcte Positif..(normal?)...encore un virus :) .

Voilou A+

Auteur :  dmanu78 [ 06 Déc 2021, 00:44 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

@Rity, non, pas de menace particulières à craindre. L'archive a été testée avec Kaspersky de mon côté et rien à signaler :)

@norecess464 . Ah j'étais persuadé que Longshot avait codé "chapelle sixteen" parce qu'il y a son nom dans l'intro...mais ce n'est pas bien important. C'est juste pour ma culture.

Sinon je savoure la "bible du CRTC" à sa juste valeur. J'ai commencé à apporter des corrections par petites touches à l'émulateur à la lumière des nouvelles informations que je découvre. L'outil SHAKER est d'une aide inestimable. Sur les 2 premiers tests, j'ai déjà apporté plusieurs aménagements à mon émulateur...
J'ai au moins 2 tests sur 30 sur CRTC 0 qui sont conformes maintenant... :winner:
Bon, il y a encore du boulot... :(

Image
Ce test de vérification des timings d'écriture en mémoire entre CPU<->GA<->CRTC est redoutable (explications en page 34 du guide). J'avais une petite erreur dans le code d'émulation du Z80. J'écrivais en mémoire, pour les instruction d'écriture, un cycle T-States trop tôt. C'est corrigé et désormais le résultat est bien conforme aux screens "type" que Longshot a fait sur un vrai CPC. Je pense que sur les émulateurs codés en "NOP" et non en "T-States" c'est très compliqué, voire impossible, à reproduire à l'identique..

Image

Test 2. Intéressant. J'ai découvert des nouvelles règles que j'ignorais et quelques subtilités du registre 8 pour un CRTC modèle 0... Après quelques aménagements, ça rend correctement.. si si c'est bien l'écran correctement restitué (screen page 4 sur guide SHAKER/ CRTC 0).

Auteur :  Longshot [ 06 Déc 2021, 13:26 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Salut,

Très content que le document et les tests te servent. Ils sont faits pour ça. :biere:
Bon courage et n'hésite pas si tu as des questions auxquelles je peux répondre.

Citer :
Je pense que sur les émulateurs codés en "NOP" et non en "T-States" c'est très compliqué, voire impossible, à reproduire à l'identique..

Je l'ai mis en premier dans SHAKER car c'est la base.
Ce test est sous versionné (TZSV 1.0) car j'ai mis seulement 3 instructions.
Il en manque donc un paquet (par exemple les LD (IX+d),d') pour vérifier tout le jeu d'instructions du Z80A.

Citer :
j'étais persuadé que Longshot avait codé "chapelle sixteen" parce qu'il y a son nom dans l'intro

C'est une démo faite par les nouveaux "logogriffiks" de 2016.
Le principe, c'est des personnes sympathiques qui se font passer pour d'autres pour pouvoir mieux dénigrer.

Auteur :  dlfrsilver [ 06 Déc 2021, 21:53 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Longshot a écrit :
Salut,

Très content que le document et les tests te servent. Ils sont faits pour ça. :biere:
Bon courage et n'hésite pas si tu as des questions auxquelles je peux répondre.

Citer :
Je pense que sur les émulateurs codés en "NOP" et non en "T-States" c'est très compliqué, voire impossible, à reproduire à l'identique..

Je l'ai mis en premier dans SHAKER car c'est la base.
Ce test est sous versionné (TZSV 1.0) car j'ai mis seulement 3 instructions.
Il en manque donc un paquet (par exemple les LD (IX+d),d') pour vérifier tout le jeu d'instructions du Z80A.

Citer :
j'étais persuadé que Longshot avait codé "chapelle sixteen" parce qu'il y a son nom dans l'intro

C'est une démo faite par les nouveaux "logogriffiks" de 2016.
Le principe, c'est des personnes sympathiques qui se font passer pour d'autres pour pouvoir mieux dénigrer.


Salut Longshot,

Merci si tu me lis, voici un retour après discussion avec César, il trouve l'initiative super, mais pas vraiment compréhensible.

Si je peux me permettre, est-ce que tu pourrais indiquer dans le shaker quand un test est valide ou pas valide ?

avec par exemple la valeur attendue, et la valeur erronée renvoyé par l'émulateur ?

Merci de ton retour :)

Auteur :  Longshot [ 06 Déc 2021, 22:10 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Salut Dlfrsilver,

César aurait du lire la page préambule du document AMSTRAD CPC CRTC COMPENDIUM (ACCC). :)

SHAKER est accompagné d'un document avec les photos de résultats pour chaque test pour chaque CRTC.
D'ailleurs Dmanu78 y fait référence juste avant dans ce sujet. Tu avais déjà ta réponse. :twisted:

Le document contient également des explications détaillées en relation avec certains tests.

Par exemple le test 1 de SHAKER est une application directe de ce qui est expliqué dans le chapitre 8 de ACCC.

http://logonsystem.fr/html/downloadlogon.htm

Auteur :  dmanu78 [ 07 Déc 2021, 01:41 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Bonjour Longshot,

Je suis sincèrement honoré de te lire sur ce post. J'admire beaucoup tout le travail que tu as accompli sur CPC et ce n'est pas un vain compliment. En débutant la réalisation de cet émulateur il y a plus de 3 ans maintenant, je ne me doutais pas que l'on puisse y accomplir autant de prouesses techniques. J'étais bloqué dans mes souvenirs à des jeux certes honnêtes mais pas fou fou d'un point de vue réalisation technique.

J'ai découvert à l'occasion de sa mise au point toute une communauté de passionnées du CPC encore très active que je ne soupçonnais pas, plus de 30 ans après la fin de sa commercialisation. Je suis heureux de voir que tu en fais encore parti. :D

Je crois bien que c'est à partir de tes premières démos, toujours très techniques que j'ai commencé à faire la mise à point de l'émulation du CRTC..
Je l'ai déjà dit sur un autre forum mais je suis très admiratif d'une manière général au travail des démomakers et je considère que le développement d'un émulateur est aussi une manière de rendre hommage à tous ses talentueux programmeurs passés et présents, à travers la redécouverte de leurs œuvres sur un support informatique plus "moderne" et "convivial" que l'original, voire à donner envie à une nouvelle génération de programmeurs de prendre la relève :).

Maintenant mon "travail" à travers le développement de cet émulateur va consister à produire une copie du CPC aussi fidèle que l'original. Et c'est vrai que que ton énorme travail documentaire va me permettre de tendre plus facilement vers cet objectif.

Je n'hésiterai pas si j'ai des questions à te poser mais je suis déjà très demandeur pour avoir des jeux de tests plus complets dans le test 1 de "SHAKER". Le z80 est compliqué à émuler très précisément dans un CPC à cause des signaux /WAIT que le Gate-Array envoie périodiquement et avoir de longues instructions dans ton jeu de tests me permettra de vérifier que les timings sont bien respectées dans tous les cas. :)

Maintenant, j'ai encore beaucoup de boulot, il y a plein de tests dans SHAKER pour lesquels le résultat n'est pas encore correct... :o

Auteur :  Longshot [ 08 Déc 2021, 09:21 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Bonjour Dmanu78,

J'ai trouvé ta démarche de création d'émulateur très intéressante.
C'est une très bonne chose d'avoir partagé l'expérience de ta progression régulièrement sur system-cfg et c'est passionnant à lire.

Ca permet de saisir la difficulté d'un tel projet et la tenacité nécessaire pour parvenir à un résultat abouti. Bravo!
J'ai vu sur le forum que Markerror/T&J est venu régulièrement t'apporter des informations et de quoi alimenter la bête!

La voie de l'émulation T-States n'était pas un choix si radical que ça, finalement :sweatingbullets:
Cela aura son importance lorsque tu arriveras sur les cas ou un CRTC peut ne pas réagir de la même manière selon que c'est l'instruction OUTI ou OUT(C),reg8 qui réalise l'I/O durant la "même" micro-seconde.

Je vais faire évoluer le test 1 prochainement.
N'hésite pas si tu as des questions auxquelles j'ai la possibilité de répondre.

Auteur :  dlfrsilver [ 09 Déc 2021, 13:32 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Longshot a écrit :
Salut Dlfrsilver,

César aurait du lire la page préambule du document AMSTRAD CPC CRTC COMPENDIUM (ACCC). :)

SHAKER est accompagné d'un document avec les photos de résultats pour chaque test pour chaque CRTC.
D'ailleurs Dmanu78 y fait référence juste avant dans ce sujet. Tu avais déjà ta réponse. :twisted:

Le document contient également des explications détaillées en relation avec certains tests.

Par exemple le test 1 de SHAKER est une application directe de ce qui est expliqué dans le chapitre 8 de ACCC.

http://logonsystem.fr/html/downloadlogon.htm


Il l'a lue, mais il y a des choses qu'il ne comprends pas.

Est-ce que tu pourrais voir avec lui ce qui l'empêche de saisir ce que tu as écris ?

Merci de ton aide :)

Auteur :  Longshot [ 09 Déc 2021, 19:28 ]
Sujet du message :  Re: [EMU] AMSpiriT - Nouvel émulateur Amstrad CPC pour windo

Citer :
Est-ce que tu pourrais voir avec lui ce qui l'empêche de saisir ce que tu as écris ?

Il a mon adresse mail et est présent sur le discord-cpc-fr.
Donc ce n'est vraiment pas compliqué de me contacter si il a des questions :twisted:

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