Emulateurs

Tout sur les ordinateurs, liens, infos...Avec un thread par machine. Si la machine n'y est pas , créez le premier post la concernant dans ce forum

Modérateur : Politburo

Avatar du membre
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2127
Enregistré le : 03 juin 2002 22:07
Localisation : 77
Contact :

Emulateurs

Message par yvesffr »

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 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
Avatar du membre
Carl
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2542
Enregistré le : 03 janv. 2003 23:47
Localisation : www.dole.org
Contact :

Message par Carl »

Bravo et bon courage Yves....
Nous (stéf et moi) nous en sommes à implanter les routines DirectX dans l'emulo VG5K :lol: .......non je blague, nos en sommes à rien...!
Carl
Avatar du membre
James
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1087
Enregistré le : 10 sept. 2003 13:02
Localisation : Alsace - Terre - Fédération des planètes Unies
Contact :

Message par James »

le developper en assembleur ! :roll:
--------------> Recherche Atari 400/800, TO9+, Goupil
Avatar du membre
romualdl
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1986
Enregistré le : 23 mai 2002 15:44
Localisation : Beaumont Sur Oise (95)
Contact :

hehe

Message par romualdl »

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.

;)
<Pocket>la striole en a un et il me le montre quand j'ai envie (irc-25/09/2008)
Avatar du membre
pstriolo
Modérateur
Modérateur
Messages : 3511
Enregistré le : 22 mai 2002 07:05
Localisation : Dans ton cul... au fond à gauche

Re: Emulateurs

Message par pstriolo »

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
Premier conseil : être bon. Mais là je commence à avoir des doutes,

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 !!! :lol:

Philou
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1806
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: Emulateurs

Message par destroyedlolo »

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 :wink: )
yvesffr a écrit :Quelles sont vos techniques / conseils / trucs pour réaliser un émulateur
réussi ?
:arrow: 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.
En clair, je n'ai pas un :

Code : Tout sélectionner

switch(instruction){
case 0x00 : lii(); break;
case 0x01 : lij(); break;
...
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

Code : Tout sélectionner

 inst[instruction]();
:arrow: 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.

:arrow: faut aussi soigner le scrutage du clavier et des perifs

:arrow: 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
Avatar du membre
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2127
Enregistré le : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr »

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
"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
Avatar du membre
James
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1087
Enregistré le : 10 sept. 2003 13:02
Localisation : Alsace - Terre - Fédération des planètes Unies
Contact :

Message par James »

avoir un petit menu pour choisir les K7 OU d7. C'est trop top ça :)
--------------> Recherche Atari 400/800, TO9+, Goupil
Avatar du membre
Fabrice Montupet
Administrateur
Administrateur
Messages : 11115
Enregistré le : 17 mai 2002 11:39
Localisation : Nevers - France

Re: Emulateurs

Message par Fabrice Montupet »

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 !!! :lol:
Médisant vas! :lol: :wink:
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1806
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Message par destroyedlolo »

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.
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 ...
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
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Message par jvernet »

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.
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
"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."
Avatar du membre
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2127
Enregistré le : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr »

destroyedlolo a écrit :
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.
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 ...
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
merci c'est cool, je vais aller jeter un coup d'oeil :)

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
Avatar du membre
yvesffr
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2127
Enregistré le : 03 juin 2002 22:07
Localisation : 77
Contact :

Message par yvesffr »

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
En fait l'émulateur fonctionne - persque - aujourd'hui il a réussi à faire un
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
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1806
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Message par destroyedlolo »

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
En effet, je me souviens avoir vu des emulateurs Z80 sur Aminet.
C'est tres vieux mais c'est sans doute tres interessant aussi :wink:
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Avatar du membre
Nico
Modérateur
Modérateur
Messages : 4380
Enregistré le : 17 mai 2002 09:25
Localisation : Nevers
Contact :

Message par Nico »

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 :)
Nico
Obsolete Tears - Musée Virtuel du Jeu Vidéo
Image
http://www.obsolete-tears.com
Répondre

Retourner vers « Tous les ordinateurs »