[Exelvision] DCexel 2010.01

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

humeur
Messages : 1887
Inscription : 11 août 2008 13:13
Localisation : la roche sur yon
Contact :

Re: [Exelvision] DCexel 2010.01

Message par humeur »

laisse comme cela il y as bien un tas de logiciel que l'on crie dessus et au final on s' y plie.

jl ( humeur )
Recherche Tout sur le TI99/4a que ce soit materiel Texas ou Atronic, Mechatronic, Vidéopac, victor hector
figurine Kinder
jvernet
Messages : 2460
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: [Exelvision] DCexel 2010.01

Message par jvernet »

C'est vrai, c'est des détail. Le boulot accompli par ailleurs étant monumental, ça n'a pas grande importance.
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] DCexel 2010.01

Message par Daniel »

Finalement j'ai une idée qui va contenter tout le monde : dans la prochaine version je rendrai la touche Reset paramétrable dans les options, avec le choix entre ESC ou SHIFT-ESC, et peut-être aussi "Arrêt défil" pour les originaux.
(CTRL-ESC est déjà utilisé par Windows, en revanche SHIFT-ESC, comme le suggère Fabien, est très bien)

La touche Echap d'exelvision reste sur la touche ² du PC, pour conserver la même position dans le clavier.


Pour l'antialiasing s'est assez complexe :
- si l'accélération matérielle est activée et si la carte graphique le permet, c'est elle qui le fait.
- sinon DirectX l'émule par soft
Mais dans un cas comme dans l'autre je n'ai pas trouvé la méthode pour l'empêcher.

Il y a un contournement, utilisé dans mes émulateurs portables DCMO5, DCTO8D et DCTO9P : ils n'utilisent pas le StretchBlit pour afficher l'écran. Ils recalculent un bitmap à la taille de la fenêtre et l'affichent directement avec un Blit. C'est évidemment beaucoup plus lent, mais dans ce cas on maîtrise parfaitement chaque pixel, et on peut supprimer totalement l'antialiasing. Si un jour je crée une version portable de dcexel pour Windows, Linux, Mac OS X et autres systèmes compatibles SDL, j'utiliserai probablement cette technique. Elle donne une image parfaitement nette, mais avec de petits défauts : différences d'épaisseurs de lettres ou de lignes selon leur position. En 1280 x 1024 c'est pratiquement indécelable.
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [Exelvision] DCexel 2010.01

Message par jester »

J'ai pas compris "la compilation des démos"... il s'agit juste d'afficheurs d'image !
Et on ne peut pas mettre des fichiers K7 constitués de plusieurs blocs de données sur disquette.

De mon coté je suis en train d'améliorer le programme d'affichage en version K7 pour en faire un vrai programme d'affichage (avec des messages texte pour permettre de préparer une autre image à charger).
C'est OK pour la version N&B Exeltel... je rame un peu sur la version couleur Exeltel/Exl100. Daniel va surement mettre la version N&B sur son site, vous verrez le truc.
ça sera bientôt dispo avec tous les outils de manipulation (mais je dois écrire la doc)... dont le générateur d'images compressées à partir de PCX. Mais ça ne sera jamais du "user friendly", il s'agit d'outil de développement en ligne de commande.

Après je m'amuserais à créer un vrai programme de slideshow sur disquette (au moins 40-50 images compressées par disquettes).

La touche Echap m'a rendu fou au début, maintenant il faut vraiment que je sois bourré pour me tromper.
jvernet
Messages : 2460
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: [Exelvision] DCexel 2010.01

Message par jvernet »

jester a écrit :J'ai pas compris "la compilation des démos"... il s'agit juste d'afficheurs d'image !
Et on ne peut pas mettre des fichiers K7 constitués de plusieurs blocs de données sur disquette.
C'est déja pas mal. Un petit Slide Show d'images de 6502, tes quelques scroll textes et graphiques, la démo N&B de Daniel. En rajoutant quelques scontch crouik glarg du synthetiseur. "Bonjour, ceci est la première demo pour exelvision" -puisque, si j'ai bien compris, la musique, c'est mort-, la première MegaDemo pour EXL, ça aurait de la gueule !

Bon, je sais, tu n'est pas fana de démos....
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [Exelvision] DCexel 2010.01

Message par jester »

Le problème c'est que les différents codes ne sont pas fait pour aller ensemble... mais ne t'inquiète on a tous les outils (ou presque) pour développer sereinement. Maintenant je travaille sur PC (plus d'exelmax :lol: :lol: :lol: ), et DcExel tourne comme une horloge avec tout le confort... j'utilise le matériel Exelvision en bout de chaine pour un test final (ou pour valider une routine un peu limite). Donc ta mégadémo sortira en 2010... à moins que d'autres personnes en produisent une avant, ça serait génial !
J'aimerais juste pouvoir finir ma documentation pour diffuser mes outils avec les sources... car il n'y a pas de secrets.
J'avance beaucoup mieux sans le forum ou j'avais tendance à me disperser ou à m'énerver.
Mais ça avance... et la musique, c'est loin d'être mort... très loin :wink:

De toute façon on vous tient au jus !

PS: je viens de récupérer ton ancien Exl100 jvernet, celui qui a été sacrifié pour le dump du 7041... je pense qu'il aurait souhaité faire dons de ses organes pour sauver d'autres vies. Donc il servira à des greffes d'urgence :D
jvernet
Messages : 2460
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: [Exelvision] DCexel 2010.01

Message par jvernet »

Un jour, tu nous feras un tuto pour expliquer comment developper avec tout ça ?
PS: je viens de récupérer ton ancien Exl100 jvernet, celui qui a été sacrifié pour le dump du 7041... je pense qu'il aurait souhaité faire dons de ses organes pour sauver d'autres vies. Donc il servira à des greffes d'urgence :D
Au fait, j'ai un Exeldisk 135 qui marche (à peu près) à la fois sur mon EXL100 et mon Exeltel. On pourrait s'organiser une scéance pour regarder si le tien marcherait, par hasard, sur mes 2 machines, et vice versa.
Avatar de l’utilisateur
yo_fr
Messages : 1337
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: [Exelvision] DCexel 2010.01

Message par yo_fr »

Daniel a écrit :Mais dans un cas comme dans l'autre je n'ai pas trouvé la méthode pour l'empêcher.
Il me semble que dans les flag de DX lors de l'initialisation du device (CreateDevice) la structure D3DPRESENT_PARAMETERS permet justement de valider / invalider les caps de DX. (ex. structure D3DCAPS)

Code : Tout sélectionner

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
 
d3dpp.BackBufferWidth = (UINT)SizeX; // SizeX = largeur de fenêtre passée à CreateWindow
d3dpp.BackBufferHeight = (UINT)SizeY; // SizeY = hauteur de fenêtre passée à CreateWindow
d3dpp.hDeviceWindow = hWnd;   // hWnd = handle de la fenêtre renvoyé par CreateWindow
d3dpp.Windowed = TRUE;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.PresentationInterval   = D3DPRESENT_INTERVAL_IMMEDIATE;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
Je n'ai pas trop joué avec DX9 et plus, mais il me semble qu'en DX8 c'est bien avec D3DCAPS que l'on jouait...J'en mettrais pas ma main à couper... mais bon :D
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] DCexel 2010.01

Message par Daniel »

Il faudra que j'étudie d3d. Dans dcexel j'utilise DirectDraw.
Les paramètres du Blit sont définis par une structure DDBLTFX :
J'ai essayé à peu près tous les réglages. Certains fonctionnent bien, comme la symétrie horizontale ou verticale. Tous ceux qui auraient pu supprimer l'antialiasing n'ont pas marché. Soit ils n'ont pas d'effet, soit ils produisent un écran noir.
Je suis bien conscient de ma méconnaissance de DirectX, un spécialiste trouverait certainement une solution.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
yo_fr
Messages : 1337
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: [Exelvision] DCexel 2010.01

Message par yo_fr »

Je n'ai pas mes doc avec moi, il faudrait que je creuse la question sur internet, mais l'effet de flou (Blur) sur les affichages DX sont dus aux filtrages Bilinear, Trilinear...
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] DCexel 2010.01

Message par Daniel »

D'après ce que j'ai lu sur internet, il semble que DirectDraw force le filtre Bilinear, sans possibilité de le supprimer. C'est probablement la cause de l'effet de flou. Il est temps que je passe à des outils plus modernes. Je ne l'ai pas encore fait pour deux raisons :
1) Direct 3D est beaucoup trop compliqué pour un besoin extrêmement simple : afficher un bitmap 2D en changeant d'échelle.
2) Les utilisateurs de systèmes un peu anciens n'ont pas toujours les versions récentes de DirectX

Je suis passé à DirectX il y a dix ans, à l'époque où les performances graphiques des machines étaient un peu limites pour afficher 50 trames par seconde sans accélération matérielle. Aujourd'hui il n'y a plus ce problème, alors je vais peut-être tout simplement revenir aux fonctions standard de l'API Windows. Ce sera une simplification considérable de l'émulateur et je pense que les performances resteront acceptables. L'affichage pourra enfin être maîtrisé, alors qu'aujourd'hui DirectX impose sa loi.
Daniel
L'obstacle augmente mon ardeur.
jvernet
Messages : 2460
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: [Exelvision] DCexel 2010.01

Message par jvernet »

Daniel a écrit : Je suis passé à DirectX il y a dix ans, à l'époque où les performances graphiques des machines étaient un peu limites pour afficher 50 trames par seconde sans accélération matérielle (...)
D'un autre coté, tu n'as guère de problème de performances. La machine émulée etant déja fort lente...

Sinon, OpenGL ? Il y a des émulos sur Mac qui sont passés à OpenGL -via SDL- (comme EUAE). L'avantage d'être mieux portable ?
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] DCexel 2010.01

Message par Daniel »

OpenGL fonctionne bien dans Windows et Linux. Je l'ai utilisé dans les premières versions de dcto8d. Dans Windows les performances étaient bonnes mais inférieures à DirectX. Avec d'autres systèmes, en particulier Unix, il y a eu des problèmes de compatibilité.

C'est pourquoi je suis revenu à SDL sans OpenGL. Les différences de performances n'ont plus grosse importance avec les ordinateurs actuels, mieux vaut privilégier la simplicité. La version actuelle de dcto8d sans OpenGL fonctionne sur un plus grand nombre de systèmes, y compris Mac OS X.

Le plus intéressant dans l'émulation reste le fonctionnement de la machine émulée. L'affichage sur PC est secondaire, et je ne souhaite pas y passer trop de temps. Ce n'est pas l'objectif principal.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] DCexel 2010.01

Message par Daniel »

Pour clore (provisoirement) le sujet, voilà ce qui a été fait pour la prochaine version :
- Dans la boîte de dialogue paramètres, ajout d'une case à cocher "accélération matérielle" (cochée par défaut)
- Si cette case est cochée, dcexel utilise DirectDraw. Le redimensionnement du bitmap est effectué par la fonction Blt
(cette méthode produit un léger flou à cause du filtre bilinéaire et/ou de l'antialiasing, non contrôlables)
- Sinon dcexel utilise la fonction du GDI de Win32 : StretchBlt
(pixels rectangulaires et nets, avec de petites différences d'épaisseur dûs aux arrondis de la division entière)

De cette façon l'utilisateur choisira selon ses préférences.
Dans Windows XP SP3 sur un Pentium IV à 3 GHz avec carte GeForce FX Go5200 et Driver NVIDIA, l'occupation processeur est entre 0 et 1% avec l'accélération matérielle, entre 15 et 20% avec les fonctions du GDI (avec une fenêtre maximisée en 1280x1024).

En effectuant des recherches sur internet, j'ai vu que Windows 7 dispose d'un nouvel outil : Direct 2D. Il doit permettre de contrôler les filtres et autres effets. Je pourrai l'utiliser lorsque tous les utilisateurs de dcexel auront abandonné Vista, XP et précédents. Ce n'est pas pour demain :wink:
Daniel
L'obstacle augmente mon ardeur.
Répondre