[Thomson] Emulateur TO8D pour tous systèmes d'exploitation

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

Daniel
Messages : 17422
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

[Thomson] Emulateur TO8D pour tous systèmes d'exploitation

Message par Daniel »

DCTO8D version 2009.05 vient tout juste d'être diffusé à dcto8.free.fr

Image

Logiciel libre, pour tous les systèmes d'exploitation compatibles avec SDL
Daniel
L'obstacle augmente mon ardeur.
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

Ca se compile sans trop de soucis sous MacOsX (juste une ligne à modifier, la definition de SDL_MAIN inutile).

Après, j'ai le même genre de soucis qu'avec le precedent (DCMO5): problèmes SDL...
Daniel
Messages : 17422
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

jvernet a écrit :Après, j'ai le même genre de soucis qu'avec le precedent (DCMO5): problèmes SDL...
http://lazyfoo.net/SDL_tutorials/lesson01/mac/index.php
Daniel
L'obstacle augmente mon ardeur.
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

Merci, c'est sympa, ça m'aide beaucoup. Mon environnement SDL pour MacOsX est depuis longtemps opérationnel, d'autres emulateurs que je porte ou build sur MacOsX fonctionnent très bien (Hatari, par exemple).

Les problèmes: messages SDL Error 31/Surfaces must not be locked during blit.
Apparaissent pendant que l'on manipule les ecrans de config, par exemple. Vraisemblablement parceque l'emulateur n'est pas en pause pendant ce temps là (ce qui lui fait faire un peu n'importe quoi, d'ailleurs).

La redefinition du clavier n'est pas parfaite. S'il reconnait bien toutes les touches du clavier du MB, il refuse d'assigner Shift à Shift, par exemple.

Retailler la taille de l'écran fait planter l'emulateur quelque part, de même que le plein ecran. Soit exactement les mêmes symptômes que pour dcmo5

Pourquoi mon post a disparu, tiens ?
Dernière modification par jvernet le 20 mai 2009 15:29, modifié 2 fois.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17531
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

C'est pas dans ce topic que tu avais répondu la citation reprise par Daniel ci-dessus :wink:
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

fneck a écrit :C'est pas dans ce topic que tu avais répondu la citation reprise par Daniel ci-dessus :wink:
?? :?:
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Message par jester »

Tiens, pour une fois ça marche bien sur PC... c'est étrange.

Le MAC, c'est MAL !
:D
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

Remarque, c'est normal que ça ne marche pas sur Mac ;) . Y'a quelques trucs comme ça dans le code:

Code : Tout sélectionner

 //Dans Windows, si une touche majuscule droite ou gauche est enfoncee
 //l'evenement SDL_KEYDOWN n'est pas envoye par l'autre.
Quelques contournement de bugs windows ou SDL pour windows, et y'a pas de code alternatif ;).

Bon, ben, je sais ce qu'il me reste à essayer de faire. Peut être.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17531
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

jvernet a écrit :?? :?:
Il est là ton post, il n'a pas disparu il est dans un autre topic
http://forum.system-cfg.com/viewtopic.php?p=21704#21704
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

Y'a eu un vieux bug. j'ai jamais répondu à cet endroit ! Tu peux deplacer mon message, normalement.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17531
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

Non je ne peux pas déplacer un message d'un topic dans un autre, du moins pas avec la console d'administration.

Je vais faire un essai, en touchant directement dans la base, résultat non garanti.

[edit] Yes ça marche 8)
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Daniel
Messages : 17422
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

jvernet a écrit :Quelques contournement de bugs windows ou SDL pour windows, et y'a pas de code alternatif ;).
La distinction shift-droit/shift-gauche est un problème dans Windows, c'est pourquoi j'ai ajouté ce code. Dans d'autres systèmes, en particulier Linux, ce n'est pas nécessaire. Pour Mac je ne sais pas.

Le code d'erreur 31 de SDL n'apparaît pas dans Windows ni dans Linux. Sur mac il faut probablement mettre lock/unlock autour de chaque blit. C'est peut-être l'indice d'une absence d'accélération matérielle sur Mac. Il me semble avoir déjà lu des commentaires sur ce sujet. Pour résumer je dirais que SDL fonctionne très bien dans Linux (je crois qu'il est développé sur cette plateforme), assez bien dans Windows car il y a beaucoup d'utilisateurs et ils font corriger les bugs, moins bien sur Mac car c'est une machine un peu confidentielle et mal connue des développeurs de SDL. Mais il doit y avoir des contournements à tous ces problèmes. S'il existe, comme pour Linux, une communauté passionnée et réactive, les solutions devraient pouvoir se trouver.
Daniel
L'obstacle augmente mon ardeur.
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

Daniel a écrit : La distinction shift-droit/shift-gauche est un problème dans Windows, c'est pourquoi j'ai ajouté ce code. Dans d'autres systèmes, en particulier Linux, ce n'est pas nécessaire. Pour Mac je ne sais pas.
Sous MacOsX, c'est bien detecté, et ton prog affiche bien Left Shift ou Right Shift, par contre le code affiché est 0x00 pour ces touches. Faut que je creuse la manière dont ce code est recupèrè, il me semble qu'il faut aller lire d'autres codes pour ces touches. Pour l'instant contourné avec les touches de fonctions.
Le code d'erreur 31 de SDL n'apparaît pas dans Windows ni dans Linux. Sur mac il faut probablement mettre lock/unlock autour de chaque blit. C'est peut-être l'indice d'une absence d'accélération matérielle sur Mac. Il me semble avoir déjà lu des commentaires sur ce sujet.
SDL marche aussi pas trop mal sur Mac, mais effectivement ne profite de l'accélération materielle qu'en mode plein écran, la manière dont sont géré les buffers graphiques ne sont pas compatibles avec SDL (qui utilise une ancienne couche graphique, et pas la nouvelle, Quartz).
Mais il doit y avoir des contournements à tous ces problèmes.
Oui. J'ai enlevé les SDL_error(31) et 32, je relance SDL_BlitSurface(dialogbox, NULL, screen, &dialogrect) jusqu'à ce qu'il retourne un code>0. Et ça marche. Le problème apparent est sans doute qu'il se passe des trucs en dessous de l'interface (rafraichissement de l'écran emulé).


Le dernier truc, le problème sur la taille de l'écran est plus compliqué. Ca se passe dans une de tes fonctions, sur la recopie du buffer vidéo vers SDL. Ca plante dans ResizeScreen, sur l'appel à la fonction SDL_SetVideoMode.
jvernet
Messages : 2459
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Message par jvernet »

J'ai repris dcmo5, dcto9 et dcto8D en ajoutant mes quelques hacks sur sdl_error, legerment changé le VIDEOMODE en l'adaptant plus au hard du MacBook, et ça marche, sauf le retaillage de l'écran, qui ne plante plus mais n'affiche pas correctement (on relance l'émulo et c'est bon). Si tu veux qu eje mette ça dispo quelque part et que je passe le mot sur le forum emulation Mac...

Il faudrait regarder si tu peux utiliser OpenGL pour l'affichage, c'est beauucoup plus rapide, sur Mac, en tout cas.


Jerome
Daniel
Messages : 17422
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

C'est une excellente nouvelle, car c'est la première fois qu'un de mes programmes fonctionne sur Mac. Il faut dire que je n'ai jamais vu un mac de ma vie :wink: Mais inutile de faire de la publicité pour des programmes qui ne fonctionnent pas parfaitement. J'ai peur que sans accélération matérielle l'utilisation du processeur soit très élevée. Normalement dans Windows ou Linux, je tourne aux alentours de 5% de CPU avec un pentium 4. J'ai fait, il y a quelques années, des versions OpenGL avec l'interface utilisateur AntTweakBar. Mais j'ai eu trop de problèmes d'incompatibilité, ce qui m'a fait abandonner définitivement OpenGL.

Merci pour les tests, dans la prochaine version j'ajouterai l'îcône Mac OS X à la suite de Linux et Windows dans la liste des systèmes compatibles. Si tu peux me faire un petit screenshot de dcto8d sur Mac (dans le style de celui de ma page d'accueil) je l'ajouterai aussi en citant l'auteur.
Daniel
L'obstacle augmente mon ardeur.
Répondre