Emulateurs
Modérateur : Politburo
- yvesffr
- Fonctionne à 2400 bauds
- Messages : 2127
- Enregistré le : 03 juin 2002 22:07
- Localisation : 77
- Contact :
Emulateurs
Salut,
je suis en train de programmer un émulateur hector et le premier
constat est : c'est lent !
Quelles sont vos techniques / conseils / trucs pour réaliser un émulateur
réussi ?
Yves
je suis en train de programmer un émulateur hector et le premier
constat est : c'est lent !
Quelles sont vos techniques / conseils / trucs pour réaliser un émulateur
réussi ?
Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
- Carl
- Fonctionne à 9600 bauds
- Messages : 2542
- Enregistré le : 03 janv. 2003 23:47
- Localisation : www.dole.org
- Contact :
- romualdl
- Fonctionne à 2400 bauds
- Messages : 1986
- Enregistré le : 23 mai 2002 15:44
- Localisation : Beaumont Sur Oise (95)
- Contact :
hehe
SAlut,
Et non il ne faut surtout pas le programmer en assembleur car cela ne ser apas portable on a le pb avec l'emulo de base oric (euphoric) qui tourne très bien (on peut ainsi meme simuler un fonctionnenemnt à 64mhz au lieu di 1 mhz de base tellement l'emulo est optimisé). Le problème c'est que maintenant pour ajouter des fonctionalités (support des instruction 65816 etc...) c'est mission impossible d'ou la réécriture d'un nouvel emulo.
Bref bah il faut optimiser quoi...
Faut voir aussi quel compilo tu utilise car par exemple gcc est réputé pour ne pas etre le meilleur pour l'optimisation.
Et non il ne faut surtout pas le programmer en assembleur car cela ne ser apas portable on a le pb avec l'emulo de base oric (euphoric) qui tourne très bien (on peut ainsi meme simuler un fonctionnenemnt à 64mhz au lieu di 1 mhz de base tellement l'emulo est optimisé). Le problème c'est que maintenant pour ajouter des fonctionalités (support des instruction 65816 etc...) c'est mission impossible d'ou la réécriture d'un nouvel emulo.
Bref bah il faut optimiser quoi...
Faut voir aussi quel compilo tu utilise car par exemple gcc est réputé pour ne pas etre le meilleur pour l'optimisation.
<Pocket>la striole en a un et il me le montre quand j'ai envie (irc-25/09/2008)
- pstriolo
- Modérateur
- Messages : 3511
- Enregistré le : 22 mai 2002 07:05
- Localisation : Dans ton cul... au fond à gauche
Re: Emulateurs
Premier conseil : être bon. Mais là je commence à avoir des doutes,yvesffr a écrit :Salut,
je suis en train de programmer un émulateur hector et le premier
constat est : c'est lent !
Quelles sont vos techniques / conseils / trucs pour réaliser un émulateur
réussi ?
Yves
Deuxième conseil : commencer par la playstation ou la N64, c'est plus facile qu'un hector pour se faire la main.
Troisième conseil : utiliser le basic comme language, ça devrait le faire et c'est super portable.
Quatrième conseil ; développer sur G5 bi proc. Il parait que c'est rapide. Seul hic, ben faut quand même trouver le soft pour programmer !!!
Philou
-
- Fonctionne à 2400 bauds
- Messages : 1806
- Enregistré le : 03 mai 2003 02:24
- Localisation : Nonglard (Annecy)
- Contact :
Re: Emulateurs
Salut,
J'ai realise un emulateur pour pocket Sharp qui tourne sur des machines tres lente (genre la station HP @ 50 Mhz que j'avais a l'epoque au taf).
Il est biensur dispo sur mon site (pub )
En clair, je n'ai pas un :
Mais j'utiliser une table de 256 elements (because il y a ... 256 instructions pour le proc des sharp) et j'appelle simplement les instructions par
il faut faire attention a la gestion de la memoire. En particulier en ce qui concerne la memoire video qui doit donc etre repercute a l'ecran. L'important est de ne faire un traitement que lorsqu'on modifie effectivement la reelement cette memoire. Donc
1/ verifier qu'ont est reelement dans cette memoire,
2/ verifier que la nouvelle valeur est bien differente de la valeur precedente.
faut aussi soigner le scrutage du clavier et des perifs
ne pas hesiter a rediriger certaines routines systemes pour les remplacer directement par des routines de l'hotes ...
Voila, en esperant que ca aide.
Bonne chance
J'ai realise un emulateur pour pocket Sharp qui tourne sur des machines tres lente (genre la station HP @ 50 Mhz que j'avais a l'epoque au taf).
Il est biensur dispo sur mon site (pub )
J'ai utiliser le C pour que ce soit tres portable, mais si tu veux qq chose de rapide, il faut maitrise tout ce qui est pointeur. En particulier, j'utiliser un table de pointeur de fonctions pour emuler les instructions du CPU.yvesffr a écrit :Quelles sont vos techniques / conseils / trucs pour réaliser un émulateur
réussi ?
En clair, je n'ai pas un :
Code : Tout sélectionner
switch(instruction){
case 0x00 : lii(); break;
case 0x01 : lij(); break;
...
Code : Tout sélectionner
inst[instruction]();
1/ verifier qu'ont est reelement dans cette memoire,
2/ verifier que la nouvelle valeur est bien differente de la valeur precedente.
faut aussi soigner le scrutage du clavier et des perifs
ne pas hesiter a rediriger certaines routines systemes pour les remplacer directement par des routines de l'hotes ...
Voila, en esperant que ca aide.
Bonne chance
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
- yvesffr
- Fonctionne à 2400 bauds
- Messages : 2127
- Enregistré le : 03 juin 2002 22:07
- Localisation : 77
- Contact :
Salut,
merci pour vos conseils!
Le tableau de pointeurs de fonctions est une super idée, je vais voir si je peux adapter ca au z80.
J'avais fait un début en C++, niveau conceptuel c'est top: on prend un CPU, une mémoire, un ecran des périphs et on a un hector, mais je crois qu'effectivement, je vais me rabattre sur du C.
Philou: J'avais commencé par la Game Cube mais mon souci est que les perfs sont pas au rendez-vous hehe
Une deuxieme question: Quelles sont les fonctionnalités que vous attendez en général d'un emulo ?
Merci pour vos encouragements !
Yves
merci pour vos conseils!
Le tableau de pointeurs de fonctions est une super idée, je vais voir si je peux adapter ca au z80.
J'avais fait un début en C++, niveau conceptuel c'est top: on prend un CPU, une mémoire, un ecran des périphs et on a un hector, mais je crois qu'effectivement, je vais me rabattre sur du C.
Philou: J'avais commencé par la Game Cube mais mon souci est que les perfs sont pas au rendez-vous hehe
Une deuxieme question: Quelles sont les fonctionnalités que vous attendez en général d'un emulo ?
Merci pour vos encouragements !
Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
- Fabrice Montupet
- Administrateur
- Messages : 11115
- Enregistré le : 17 mai 2002 11:39
- Localisation : Nevers - France
Re: Emulateurs
Médisant vas!pstriolo a écrit :Quatrième conseil ; développer sur G5 bi proc. Il parait que c'est rapide. Seul hic, ben faut quand même trouver le soft pour programmer !!!
-
- Fonctionne à 2400 bauds
- Messages : 1806
- Enregistré le : 03 mai 2003 02:24
- Localisation : Nonglard (Annecy)
- Contact :
Ben, faut pas etre integriste non plus : le C++ a de bon cote, mais ca ne sert a rien de s'emerde a faire de l'objet pour de l'objet. Dans mon code, j'ai de l'objet quant reelement ca m'apporte qq chose (genre justement pour le CPU lui-meme) mais le reste est principalement du procedurale ...yvesffr a écrit : J'avais fait un début en C++, niveau conceptuel c'est top: on prend un CPU, une mémoire, un ecran des périphs et on a un hector, mais je crois qu'effectivement, je vais me rabattre sur du C.
Bref, un gros remix.
Si ca peux t'aider, mon code (boure de faute d'ortographe) est dispo sur mon site, dans Sharp, outils.
Bye
Lolo
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
- jvernet
- Fonctionne à 14400 bauds
- Messages : 7958
- Enregistré le : 24 mai 2002 09:57
- Localisation : France 69
- Contact :
Tu dois aussi pouvoir recuperer, à mon avis, le code source d'emulateurs de machine à base de Z80, donc t'epargner une partie du taf.destroyedlolo a écrit :yvesffr a écrit : Si ca peux t'aider, mon code (boure de faute d'ortographe) est dispo sur mon site, dans Sharp, outils.
Jerome
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
- yvesffr
- Fonctionne à 2400 bauds
- Messages : 2127
- Enregistré le : 03 juin 2002 22:07
- Localisation : 77
- Contact :
merci c'est cool, je vais aller jeter un coup d'oeildestroyedlolo a écrit :Ben, faut pas etre integriste non plus : le C++ a de bon cote, mais ca ne sert a rien de s'emerde a faire de l'objet pour de l'objet. Dans mon code, j'ai de l'objet quant reelement ca m'apporte qq chose (genre justement pour le CPU lui-meme) mais le reste est principalement du procedurale ...yvesffr a écrit : J'avais fait un début en C++, niveau conceptuel c'est top: on prend un CPU, une mémoire, un ecran des périphs et on a un hector, mais je crois qu'effectivement, je vais me rabattre sur du C.
Bref, un gros remix.
Si ca peux t'aider, mon code (boure de faute d'ortographe) est dispo sur mon site, dans Sharp, outils.
Bye
Lolo
Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
- yvesffr
- Fonctionne à 2400 bauds
- Messages : 2127
- Enregistré le : 03 juin 2002 22:07
- Localisation : 77
- Contact :
En fait l'émulateur fonctionne - persque - aujourd'hui il a réussi à faire unjvernet a écrit : Tu dois aussi pouvoir recuperer, à mon avis, le code source d'emulateurs de machine à base de Z80, donc t'epargner une partie du taf.
Jerome
CLS et afficher le menu j'ai encore un probleme de palette mais
c'est en bonne voie !
Yves
"Je vous aime" (© Pocket 1969)
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
"et moi je suis la vierge marie" (© Stamba 2009)
"Resistance is futile (if < 1 Ohm)"
"Un velux est un linux portugais"
"j'en vois encore un bout, yves" (© 2010 SbM)
"In minitel we trust" - Silicium
-
- Fonctionne à 2400 bauds
- Messages : 1806
- Enregistré le : 03 mai 2003 02:24
- Localisation : Nonglard (Annecy)
- Contact :
En effet, je me souviens avoir vu des emulateurs Z80 sur Aminet.jvernet a écrit : Tu dois aussi pouvoir recuperer, à mon avis, le code source d'emulateurs de machine à base de Z80, donc t'epargner une partie du taf.
Jerome
C'est tres vieux mais c'est sans doute tres interessant aussi
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Moi je n'y connais rien, mais si tu veux le populariser, yaura moyen de faire une news sur mo5, obsolete, et un article sur obsolete si tu veux !
QUand à la technique, je suis une supra burne...
Tu peux demander au mec de http://www.powerofasm.fr.st il maitrise à mort, il te conseillera certainement l'assembleur
QUand à la technique, je suis une supra burne...
Tu peux demander au mec de http://www.powerofasm.fr.st il maitrise à mort, il te conseillera certainement l'assembleur