Page 1 sur 7

Emulation VBHector

Publié : 19 sept. 2012 21:19
par yo_fr
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 !)

Re: Emulation Hector sur MESS

Publié : 20 sept. 2012 10:49
par Daniel
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 :D

Re: Emulation Hector sur MESS

Publié : 01 nov. 2012 15:47
par yo_fr
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

Publié : 01 nov. 2012 17:10
par yves
excellent ! :)

Re: Emulation Hector sur MESS

Publié : 10 nov. 2012 18:04
par yo_fr
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 !

Image

Image

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

Publié : 10 nov. 2012 18:33
par yves
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

Re: Emulation Hector sur MESS

Publié : 10 nov. 2012 19:17
par 6502man
Super boulot :)


A quand la diffusion ?

Re: Emulation Hector sur MESS

Publié : 10 nov. 2012 21:51
par yo_fr
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.

Re: Emulation Hector sur MESS

Publié : 10 nov. 2012 23:19
par 6502man
Sinon pour les roms tu peut les intégrer en ressources dans l'exécutable ;)

Re: Emulation Hector sur MESS

Publié : 11 nov. 2012 20:53
par yo_fr
source libre transmisse à Yves pour son site !
A suivre...

Re: Emulation Hector sur MESS

Publié : 21 nov. 2012 21:37
par yo_fr
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... :wink:
Pour info aussi il vaut mieux utiliser VB2012 express, que VB2010. Les prochaines versions seront plutôt sur 2012.

Re: Emulation Hector sur MESS

Publié : 21 nov. 2012 22:22
par 6502man
Super, et merci a vous deux :D

A quand l'émulation des disquettes :wink:


Au faite tu n'a compilé que la version "debug" mais pas la "release" ?

Re: Emulation Hector sur MESS

Publié : 22 nov. 2012 16:54
par yo_fr
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 ?

Re: Emulation Hector sur MESS

Publié : 23 nov. 2012 08:15
par 6502man
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 :wink:

Re: Emulation Hector sur MESS

Publié : 23 nov. 2012 19:42
par yves
yo_fr a écrit : Pour ce qui est du lecteur Disc2... il est hélas dans les plans...
Tu mets le doigts dedans, impossible de t'arrêter ! :)

Yves