Emulation VBHector
Modérateurs : Papy.G, fneck, Carl
Emulation VBHector
Petite info;
Ces derniers jours j'étais en déplacement et dans mon pc j'avais Visual Basic (2010 version express, gratuite...).
M'ennuyant un peu le soir j'en ai profité pour essayer quelque chose qui me trottait dans la tête : émuler un Z80 en VB dot Net....
J'ai récupéré de VB81 (un émulateur ZX81 en VB6 http://freestuff.grok.co.uk/vb81/) le code de l'émulation du Z80, j'ai mis en place la ROM (de l'Hector MX40, tant qu'a faire...) et fait le programme pour émuler la mémoire (paginations), l'écran et le clavier...
Résultat des courses : cela tourne bien ! les interruptions à 20ms tournent à temps sans accoups avec le Z80 à 5Mhz !
Ceci sur un PC portable en core2duo 2,3 Ghz... pas un foudre de guerre mais loin d'un ordinausore quand même...
Je ne m'attendais pas à une émulation si fluide...
Je me demande si je ne vais pas aller un peu plus loin : cassette notamment; probablement pas le reste (trop de boulot, aucun intérêt : dcHector et Mess sont suffisant !)
Ces derniers jours j'étais en déplacement et dans mon pc j'avais Visual Basic (2010 version express, gratuite...).
M'ennuyant un peu le soir j'en ai profité pour essayer quelque chose qui me trottait dans la tête : émuler un Z80 en VB dot Net....
J'ai récupéré de VB81 (un émulateur ZX81 en VB6 http://freestuff.grok.co.uk/vb81/) le code de l'émulation du Z80, j'ai mis en place la ROM (de l'Hector MX40, tant qu'a faire...) et fait le programme pour émuler la mémoire (paginations), l'écran et le clavier...
Résultat des courses : cela tourne bien ! les interruptions à 20ms tournent à temps sans accoups avec le Z80 à 5Mhz !
Ceci sur un PC portable en core2duo 2,3 Ghz... pas un foudre de guerre mais loin d'un ordinausore quand même...
Je ne m'attendais pas à une émulation si fluide...
Je me demande si je ne vais pas aller un peu plus loin : cassette notamment; probablement pas le reste (trop de boulot, aucun intérêt : dcHector et Mess sont suffisant !)
Re: Emulation Hector sur MESS
L'époque où il fallait programmer les émulateurs en assembleur pour approcher la vitesse de la machine d'origine est révolue. Avec la vitesse actuelle des ordinateurs, et en particulier des cartes vidéo, on peut utiliser des langages beaucoup plus évolués. Ce n'est pas forcément plus facile de faire un bon émulateur, mais on peut lui ajouter des fonctions évoluées sans trop de difficulté.
Même en Basic
Même en Basic
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Emulation Hector sur MESS
Petite info au passage: le projet MESS a migré directement au sein de MAME. Les sources sont maintenant dispo avec la distribution MAME.
Re: Emulation Hector sur MESS
excellent !
Re: Emulation Hector sur MESS
bon ben je suis tombé dedans quand j'étais petit : j'ai continué un peu de code VBNet et j'ai mis en place :
* Couleurs,
* BR/HR et 80 colonnes,
* Choix le la machine :HR plus / HRX /MX40 / MX80c
* Clavier entier,
* Joystick,
* Un désassembleur Z80 et débugger (breakpoint, pas à pas...)
* Gestion des cassettes.
Bon c'est vraiment plus didactique qu'utile (quoique, quel émulateur est utile ?), mais ça fonctionne pas mal et en temps réel !
C'est sympa de programmer en VBNet. De plus, hormis le coeur du code d'émulation du Z80 (que j'ai transformé en VBNet, quand même) j'ai tout écris contrairement au code MESS où j'ai utilisé des drivers existant pour créer la machine...
* Couleurs,
* BR/HR et 80 colonnes,
* Choix le la machine :HR plus / HRX /MX40 / MX80c
* Clavier entier,
* Joystick,
* Un désassembleur Z80 et débugger (breakpoint, pas à pas...)
* Gestion des cassettes.
Bon c'est vraiment plus didactique qu'utile (quoique, quel émulateur est utile ?), mais ça fonctionne pas mal et en temps réel !
C'est sympa de programmer en VBNet. De plus, hormis le coeur du code d'émulation du Z80 (que j'ai transformé en VBNet, quand même) j'ai tout écris contrairement au code MESS où j'ai utilisé des drivers existant pour créer la machine...
Re: Emulation Hector sur MESS
carrément ! respect, avec un desassembleur et le pas à pas !
tu as mis combien de temps à développer tout ca ?
Si tu veux le mettre en téléchargement je peux le mettre sur hectorvictor.
Yves
tu as mis combien de temps à développer tout ca ?
Si tu veux le mettre en téléchargement je peux le mettre sur hectorvictor.
Yves
Re: Emulation Hector sur MESS
Super boulot
A quand la diffusion ?
A quand la diffusion ?
Re: Emulation Hector sur MESS
pourquoi, pas. Ta proposition Yves => OK, je vais demain contrôler un peu le code et mettre un peu plus de commentaires ensuite je te l'envoi. Le but étant didactique et pas de créer un émulateur concurrentiel.
PS : ne pas oublier : il est pour VB Net et il faut donc le Framework installé. De plus il faut mettre à coté de l'exécutable les ROM d'Hector (HRP HRX, MX40 et MX80) pur que cela fonctionne.
PS : ne pas oublier : il est pour VB Net et il faut donc le Framework installé. De plus il faut mettre à coté de l'exécutable les ROM d'Hector (HRP HRX, MX40 et MX80) pur que cela fonctionne.
Re: Emulation Hector sur MESS
Sinon pour les roms tu peut les intégrer en ressources dans l'exécutable
Re: Emulation Hector sur MESS
source libre transmisse à Yves pour son site !
A suivre...
A suivre...
Re: Emulation Hector sur MESS
Yves a mis en ligne VBHector sur son site :
http://hectorvictor.free.fr/
Merci Yves !
Deux remarques : en page d’accueil une petite erreur : pas d'émulation de l'Hector1; et petite info : le fait de cliquer sur le l'écran d'Hector (la zone grise) lance l’émulation...
Pour info aussi il vaut mieux utiliser VB2012 express, que VB2010. Les prochaines versions seront plutôt sur 2012.
http://hectorvictor.free.fr/
Merci Yves !
Deux remarques : en page d’accueil une petite erreur : pas d'émulation de l'Hector1; et petite info : le fait de cliquer sur le l'écran d'Hector (la zone grise) lance l’émulation...
Pour info aussi il vaut mieux utiliser VB2012 express, que VB2010. Les prochaines versions seront plutôt sur 2012.
Re: Emulation Hector sur MESS
Super, et merci a vous deux
A quand l'émulation des disquettes
Au faite tu n'a compilé que la version "debug" mais pas la "release" ?
A quand l'émulation des disquettes
Au faite tu n'a compilé que la version "debug" mais pas la "release" ?
Re: Emulation Hector sur MESS
si, mais pour gagner de la place j'ai supprimé d'exe. De toute façon on gagne quasiment rien en release.
Pour ce qui est du lecteur Disc2... il est hélas dans les plans...
J'ai déjà mis en place
=> le 2eme Z80 sa mémoire (Rom et Ram + pagination) => OK
dans un 2eme thread (pas de changement donc de la capacité de traitement, sur les pc multi core)
=> j'ai mis en place le debugger pour le 2eme Z80 => OK
=> les zones d'échange entre les 2 processeurs (pas encore OK aujourd'hui.)...
C'est malin, on dirais que je suis retombé dedans...
Quelqu'un a parcouru les sources ? qu'en pensez vous (code et commentaire)
il faut que je fasse mieux, pour que cela ressemble à quelque chose ?
Pour ce qui est du lecteur Disc2... il est hélas dans les plans...
J'ai déjà mis en place
=> le 2eme Z80 sa mémoire (Rom et Ram + pagination) => OK
dans un 2eme thread (pas de changement donc de la capacité de traitement, sur les pc multi core)
=> j'ai mis en place le debugger pour le 2eme Z80 => OK
=> les zones d'échange entre les 2 processeurs (pas encore OK aujourd'hui.)...
C'est malin, on dirais que je suis retombé dedans...
Quelqu'un a parcouru les sources ? qu'en pensez vous (code et commentaire)
il faut que je fasse mieux, pour que cela ressemble à quelque chose ?
Re: Emulation Hector sur MESS
Les sources sont "propres" et clairs avec les commentaires.
Le principal avant tout c'est que cela fonctionne et que tu te fasses plaisir a le faire
Le principal avant tout c'est que cela fonctionne et que tu te fasses plaisir a le faire
Re: Emulation Hector sur MESS
Tu mets le doigts dedans, impossible de t'arrêter !yo_fr a écrit : Pour ce qui est du lecteur Disc2... il est hélas dans les plans...
Yves