DCMOTO - Emulateur universel Thomson 8 bits : Forum - Emulateurs et utilitaires - DCMO5 version SDL
Auteur Message
Daniel
Visiteur
Date : 02/02/2005 à 21h27
Comme prévu la version 9.0 de DCMO5 a été convertie en SDL et testée dans Windows.

Les premiers essais ont donné des performances médiocres, du même niveau que les fonctions classiques de l'API Win32. Je m'y attendais...

Mais en m'acharnant sur tous les paramètres de la fonction SDL_SetVideoMode, j'ai réussi à obtenir ce que je pense être un résultat encourageant : une très nette accélération matérielle, qui se traduit par une charge processeur divisée par 4 ou 5. Ce n'est pas encore du même ordre que DirectX, mais c'est un premier pas. Ce résultat n'est pas reproductible avec toutes les configurations. Il n'est obtenu qu'en mode couleur 32 bits. Mais je continue à chercher...

L'étape suivante sera un essai dans Linux, et si ça marche bien je publierai les sources pour que d'autres programmeurs puissent essayer de les optimiser, ou au moins de les porter sur d'autres systèmes. Et, à défaut d'obtenir de bonnes performances en mode fenêtré 1600x1200, il sera toujours possible de faire une version plein écran en basse résolution.

A suivre...

Daniel
en haut - en bas
Xavier
Visiteur
Date : 03/02/2005 à 11h36
Un petit pas pour l'homme, un grand pas pour l'humanité!!!

bientôt DCMOTO sous linux :)


à propos, vous qui vous y connaissez bien dans le matériel MO5...
ne serait-il pas possible de faire tourner Linux sur un MO5?
(je sais, y'a le projet OS9, justement...)

après tout, il y a bien des "malades" partout autour de nous qui "greffent" Linux sur leur téléphone portable ou console Playstation/Saturne/XBOX...
en haut - en bas
Daniel
Visiteur
Date : 03/02/2005 à 12h18
Je crois qu'il y a aussi Linux dans les lecteurs de DVD Kiss.
Il faudra que je porte DCMO5 sur le Kiss, pour permettre le retour du MO5 sur les télés familiales, comme au bon vieux temps. Mon modèle a un disque dur de 40 Go, il y a de la place pour quelques cassettes.
Pour le reste on peut rêver : Linux sur MO5, DCMO5 sur OS/9 ou sur le téléphone
Malheureusement OS/9 n'est pas dans la liste des systèmes supportés par SDL

Daniel
en haut - en bas
Daniel
Visiteur
Date : 05/02/2005 à 09h42
Comparaison des performances DirectX et SDL (DCMO5 9.0 et DCMO5 sdl)

- Pentium 4 à 3 GHz, carte GeForce FX Go5200
- Performance exprimée en pourcentage d'utilisation du processeur
- Premier pourcentage = fenêtre 336x216, second pourcentage = fenêtre maximisée 1600x1200
DirectX : 4%, 4%
SDL : 3%, 27%

Explications :
- La version DirectX utilise une surface primaire de la taille de l'écran et une surface secondaire 336x216. Le "Stretch Blit" est effectué par la carte video et n'a pas de répercussion sur la charge processeur.
- La version SDL écrit directement sur la surface primaire, c'est pourquoi elle est plus rapide en zoom 1. Par contre je n'ai pas trouvé le moyen de faire un "Stretch Blit" avec SDL. Le zoom est donc effectué par le programme, avec une répercussion très importante sur la charge du processeur.

Voilà où j'en suis. Toute aide pour réaliser un Stretch Blit rapide avec SDL sera la bienvenue.
A suivre les tests de performance de la version SDL dans Linux...

Daniel
en haut - en bas
Daniel
Visiteur
Date : 07/02/2005 à 20h03
Premier essai dans Linux sur un Athlon 64 3400+

14% d'occupation du CPU en zoom 1, et c'est en gros proportionnel à la surface affichée.
Autant dire aucune accélération matérielle. Reste à vérifier la configuration du serveur X. D'autres essais sont prévus avec le serveur X nVidia.
Il y a aussi un soucis avec le clavier, les scan codes ne sont pas les bons. Encore un peu de mise au point à prévoir avant la diffusion.

Mais l'essentiel est que DCMO5 est compatible Linux

Merci à carl, par son message il a été l'initiateur du projet.
Merci également à Xavier pour son soutien moral.
Je cherche maintenant un spécialiste Apple pour portage sur Mac.

Daniel
en haut - en bas
Xavier
Visiteur
Date : 09/02/2005 à 18h27
super que ça marche! :)


Les drivers video pour linux normalement gèrent les accélérations matérielles.
(sinon, comment on jouerait à Quake et autres jeux 3D sous Linux?... en passant j'y joue pas et sous Windows non plus ;)

Les vieilles cartes vidéo (+ de 2 ans?) sont très bien supportées. Il peut arriver qu'avec des cartes récentes, le driver soit en version beta et ne gère pas encore tout.

Mais, là où j'avais eu des performances médiocres avec SDL, c'était une vieille carte.

Est-ce que par défaut SDL refuserait d'utiliser les accélérations matérielles?


En passant, courage pour le clavier!
J'avais simplement fait un tableau pour convertir rapidement les scancodes.
en haut - en bas
Xavier
Visiteur
Date : 09/02/2005 à 18h44
Je parcours plusieurs forum SDL et/ou programmation pour voir ce qui se passe niveau performances.

Donc, en mode fenêtré, SDL ne fait qu'utiliser les fonctions de X11.
En mode plein écran, il est "censé" utiliser la librairie d'accès directe à la carte vidéo XDGA.

Et j'ai lu que les (certaines?) accélérations matérielles vidéo ne sont gérées qu'en mode plein écran (fonctions XDGA et non X11).


Ca expliquerait pourquoi Quake tourne en plein écran sous Linux.

Mais on va rarement faire du mono-tâche avec l'émulateur MO5 sous Linux je pense...

On ne va pas non plus se pencher sur le code source de X11 pour savoir pourquoi les accélérations matérielles ne sont pas utilisées...
On y serait encore dans 10 ans...


Après tout, 14% en zoom 1 c'est acceptable.
(56% en zoom 2 pas trop mais bon... suffira de rester en zoom 1 avec un gros écran éventuellement :)



Merci encore pour la portage Linux (c'est pas fini mais le plus dur est fait).
Bon courage dans ta progression vers l'universalité
en haut - en bas
Daniel
Visiteur
Date : 09/02/2005 à 19h16
Je pense pouvoir régler le problème du clavier en utilisant les noms de touches symboliques à la place des scancodes.

Pour l'accélération matérielle, c'est plus difficile de comprendre comment ça marche. En plus je n'ai pas Linux, mon testeur est à 900 km et n'a pas que ça à faire En bref, c'est au point mort. Mais je diffuserai quand même une version Linux dès que possible, même si elle rame ce sera une curiosité

Daniel
en haut - en bas