Theodore, l'émulateur Thomson (quasi) universel

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

Zlika
Messages : 23
Inscription : 23 avr. 2018 12:52

Theodore, l'émulateur Thomson (quasi) universel

Message par Zlika »

Bonjour à tous,

Daniel en avait déjà parlé dans un post précédent il y a quelque temps, mais je voulais évoquer toutes les améliorations et les possibilités offertes par l'émulateur Theodore.
Theodore est basé sur les émulateurs DCTO8D/DCTO9P/DCMO5 de Daniel Coulom, avec pleins d'améliorations, de correction de bugs et de nouvelles fonctionnalités.
Il est capable d'émuler (pour l'instant) le TO8, TO8D, TO9, TO9+ et le MO5 (je suis actuellement en train de finaliser l'émulation du MO6 de l'Olivetti Prodest PC128).
Mais surtout, il fonctionne sur un nombre impressionnant de plateformes !
En effet, Theodore est un "coeur libretro", qui fonctionne avec un "frontend libretro" comme RetroArch (https://www.retroarch.com/).
Il fonctionne sur la (quasi) totalité des plateformes supportées par RetroArch : Linux, MacOS, Windows, Raspberry Pi, Android, iOS, consoles Nintendo, Sony... et même dans un navigateur web !

Theodore est disponible sur :
* RetroArch <= Solution conseillée pour Android, Linux, Windows, MacOS...
* Recalbox <= Solution conseillée pour Raspberry Pi ou autres cartes que l'on souhaite dédier à du retrogaming
* Kodi 18+

Pour Android, il suffit de télécharger RetroArch sur le Play Store puis, dans RetroArch, de télécharger le "core" Theodore.

Les principales fonctionnalités (certaines apportées directement par RetroArch/libretro) :
* Émulation TO8, TO8D, TO9, TO9+, MO5 (MO6 et Olivetti Prodest PC128 à venir).
* Détection automatique de l'ordinateur à émuler en fonction du nom du fichier chargé (possibilité également de forcer un modèle particulier).
* Démarrage automatique du jeu via la touche "start" (ou automatiquement au démarrage de l'émulateur). Vu la complexité/diversité des méthodes de démarrage d'un logiciel sous Thomson, Thedore utilise une heuristique pour déterminer la méthode qui a le plus de chance de fonctionner, mais ça ne marche pas pour 100% des logiciels.
* Fenêtre / plein écran.
* Support complet du format SAP (sans conversion vers FD).
* Émulation améliorée par rapport aux émulateurs d'origine. Par exemple sur TOx, Theodore arrive à faire tourner des jeux protégés qui ne fonctionnent pas sous dcmoto et/ou Teo.
* Excellent support des joysticks/manettes grâce à RetroArch.
* Fonctions de "clavier virtuel" permettant de jouer entièrement à la manette, sans clavier physique.
* Sauvegardes instantanées (save states).
* Avance rapide, ralenti et ... rembobinage (rewind) !
* Lecture depuis une archive (zip ou 7z).
* Captures d'écran, enregistrement vidéo et streaming offerts par RetroArch.
* Support des shaders / scanlines.
* Support des overlays.
* Support des cheat codes (quelques uns sont déjà présents dans la base de données de RetroArch pour certains jeux Thomson, si vous voulez contribuer merci d'envoyer des Pull Request sur https://github.com/Zlika/libretro-database-thomson).
* Affichage des jaquettes de jeu sous RetroArch et Recalbox (les images proviennent de https://www.screenscraper.fr/, donc si il en manque il vous suffit de contribuer sur ce site pour le compléter).
* Debugger en mode texte.
* Jeu en réseau (netplay) ! Bon d'accord il n'y a pas beaucoup de jeux Thomson avec plusieurs joueurs, mais il est par exemple possible de jouer à Super Tennis à 2 via Internet ! Le nanoréseau peut aller se rhabiller :-)
* Et j'en oublie sans doute pleins !

Pour ceux qui utilisent Recalbox, la nouvelle version 6.0 sortie hier soir inclut la dernière version de Theodore ainsi que l'excellent jeu "Mission: Lift-off".
A noter pour ceux qui sont concernés de près ou de loin par le handicap que cette version de Recalbox est compatible avec le contrôleur adaptatif XAC de Microsoft.

Cet émulateur est un logiciel libre sous licence GPL. Les centaines d'heures que j'y ai consacré n'ont qu'un but : que les ordinateurs Thomson ne soient pas les oubliés des plateformes de Retrogaming actuelles. Vous pouvez y contribuer en remontant des bugs, signalant des problèmes de compatibilité avec certains jeux, ou même en contribuant du code. Le site du projet : https://github.com/Zlika/theodore

En espérant que vous apprécierez.

Cordialement,
Thomas
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par gilles »

Émulation améliorée par rapport aux émulateurs d'origine. Par exemple sur TOx, Theodore arrive à faire tourner des jeux protégés qui ne fonctionnent pas sous dcmoto et/ou Teo.
là je veux bien un exemple de jeu qui ne tourne pas sur teo dans sa dernière version publique avec l'origine du dump
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par jasz »

Il faudrait essayer avec certains programmes (non modifiés) qui n'utilisent pas de sources moniteur.
Par exemple le music disk Demoded avait posé un petit souci d'émulation. Les routines de chargement et sans doute de protection n'étant pas "standard"
Zlika
Messages : 23
Inscription : 23 avr. 2018 12:52

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Zlika »

Bonjour,
là je veux bien un exemple de jeu qui ne tourne pas sur teo dans sa dernière version publique avec l'origine du dump
J'essaierai de retrouver, c'est des tests que j'avais fait l'été dernier. C'était sur des jeux protégés avec un type de protection pour laquelle j'ai fait une solution de contournement automatique.
Ma remarque ne visait pas à dénigrer Teo ni dcmoto, ce sont d'excellents émulateurs, et vous trouverez très certainement des jeux qui tournent sous Teo ou dcmoto et qui ne tournent pas sous Theodore. C'était juste pour mettre en avant le fait que j'avais essayé d'améliorer notablement la compatibilité des jeux par rapport aux émulateurs dcto8/dcto9p/dcmo5 sur lesquels Theodore est basé.
Cordialement
Thomas
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par __sam__ »

Demoded passe par le moniteur en fait et je ne connais pas de programme commercial attaquant directement les registres du contrôleur de diskette dans la mesure où il y a eu plusieurs modèles de contrôleurs suivant les machines (et peut-être même la révision.)

Le seul truc susceptible de faire ce genre d'accès au hardware me semblent être les copieurs copiant même les protections physiques (QBackup?), mais je n'en ai jamais utilisé.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Daniel »

Depuis plusieurs années j'avais complètement abandonné mes émulateurs Thomson utilisant la bibliothèque SDL, en particulier à cause de l'incompatibilité avec SDL 2. Mais grâce à Thomas le travail initial n'est pas perdu, et c'est un grand plaisir de les voir revivre dans Theodore. Surtout qu'avec tous les perfectionnements apportés, ils sont maintenant bien supérieurs aux originaux.
Daniel
L'obstacle augmente mon ardeur.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par jasz »

__sam__ a écrit : 13 avr. 2019 18:27 Demoded passe par le moniteur en fait et je ne connais pas de programme commercial attaquant directement les registres du contrôleur de diskette(...)
:shock:
D'après ce que je comprends l'adresse du contrôleur peut varier selon le to8D. :?
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par gilles »

En fait sur cette question de protection un gros travail a été fait sur Teo, principalement par Prehisto. Le format de travail de teo pour les images disque est le .HFE qui provient de l'émulateur de disquette HXC. Ce format de disquette est devenu un standard de fait et est suffisamment complet pour émuler tous les format de disquette protégé ou non du thomson ainsi que de très nombreux autres ordi (il manque juste les weak bits, les 1/2 pistes de l'apple 2 et le mode GCR de toute la gamme apple).
Le controleur de disquette est totalement émulé et la ROM ne nécessite donc plus de patch contrairement aux autres émulateurs.
En particulier Teo peut parfaitement faire tourner DOS720 y compris jusqu'à la lecture d'une image de disquette MSDOS ou Atari au format 720Ko (à condition que le format d'image soit le .HFE). Ok ca ne sert à rien... mais ... c'est beau :)

Après il est vrai que les thomson ont connu plusieurs contrôleurs disquette et plusieurs révisions de ROM pour les primitives disquette donc pour avoir une chance de fonctionner sur l'ensemble de la gamme TO les programmes vont pratiquement tous passer par les points d'entrée prévus par le système (ils vont juste se contenter de lire un éventuel code d'erreur dû à un secteur spécial).
Zlika
Messages : 23
Inscription : 23 avr. 2018 12:52

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Zlika »

Daniel a écrit : 13 avr. 2019 18:51 Depuis plusieurs années j'avais complètement abandonné mes émulateurs Thomson utilisant la bibliothèque SDL, en particulier à cause de l'incompatibilité avec SDL 2. Mais grâce à Thomas le travail initial n'est pas perdu, et c'est un grand plaisir de les voir revivre dans Theodore. Surtout qu'avec tous les perfectionnements apportés, ils sont maintenant bien supérieurs aux originaux.
Merci Daniel, je n'aurais rien pu faire sans l'incroyable travail que tu as accompli sur DCTO8/DCTO9P/DCMO5 (et aussi dcmoto, car même si malheureusement le code source n'est pas disponible je me suis aussi servi de son debugger pour comprendre et corriger certains écarts d'émulation avec Theodore 😁).
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Daniel »

Au sujet des soi-disant problèmes d'émulation de TO8Demoded je voudrais rétablir la vérité, car elle a été un peu malmenée.

- Il n'y a aucune protection contre la copie dans TO8Demoded, et aucun appel direct à des routines du contrôleur de disquette. Par ailleurs, à ma connaissance, aucune démo du groupe PULS n'est protégée, et aucune ne fait des appels direct à des adresses du contrôleur, hormis les points d'entrée officiels.

- Il n'y a jamais eu de problème d'émulation de TO8Ddemoded, ou alors je n'en ai pas le souvenir. Et même s'il y en a eu, ça ne pouvait être qu'un bug de l'émulateur et TO8Demoded n'y était pour rien.

- Il y a eu un problème d'exécution de TO8Demoded à partir d'un fichier .sd. Nous en avons discuté à l'époque dans le forum. Avec le contrôleur CS91-280, les zones de travail du contrôleur de carte SD placées dans la pile système étaient détruites, car la pile est largement utilisée par le programme. Ce n'est pas pour rien que le groupe s'appelle PULS, là c'était surtout un problème de PSHS.

J'ai corrigé dans un premier temps en modifiant TO8Demoded pour qu'il utilise moins la pile. Dans un deuxième temps j'ai revu l'emplacement des zones de travail des contrôleurs de carte SD. Aujourd'hui je crois que la version originale de TO8Demoded fonctionnerait bien sur carte SD (Je n'ai pas essayé). La version .sd du site dcmoto est toujours la version modifiée.
Daniel
L'obstacle augmente mon ardeur.
Zlika
Messages : 23
Inscription : 23 avr. 2018 12:52

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Zlika »

gilles a écrit : 13 avr. 2019 14:38 là je veux bien un exemple de jeu qui ne tourne pas sur teo dans sa dernière version publique avec l'origine du dump
J'ai retrouvé un exemple : Temps d'une Histoire, Le (198x)(Infogrames).sap avec Teo 1.8.4 sous Linux.

Cordialement,
Thomas
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par gilles »

justement non, en prenant l'image de référence sur logicielsmoto.com il n'y a pas de souci de fonctionnement (testé avec une ubuntu mate 16.04 et teo 1.8.4 tel qu'il est présent sur sourceforge au format .deb)

http://logicielsmoto.com/viewsoftware.php?softid=126

Il faudrait comparer les 2 images mais cela ressemble vu le nom à une archive TOSEC non?

[edit]
la version TOSEC ici : https://archive.org/details/Thomson_TO8 ... 2012_04_23
marche aussi...

[edit2]
dcmoto sous wine n'aime pas trop l'image sap par contre.

[edit3]
en 1998 teo en version 0.7 ici http://www.alternative-system.com/speci ... frame.html faisait correctement tourner l'image sap également (il y avait par contre des erreurs d'émulation importantes sur le 6846 dans cette version)
Zlika
Messages : 23
Inscription : 23 avr. 2018 12:52

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Zlika »

ça semble être l'image TOSEC en effet (j'ai vérifié c'est le même hash 256 : 17fbaa8650c22d5d5acee2b1f90abc8f1ffd9d2f780db5b68ec406405843785a).
Sur mon PC, avec le deb de la version 1.8.4 de Teo disponible sur sourceforce, l'écran d'introduction du jeu d'affiche puis bloque à ce stade. Je n'ai pas de problème similaire avec les autres jeux testés, donc j'en déduit que le problème vient d'une façon ou d'une autre de l'émulateur.

Mais peu importe, comme je l'ai déjà dit je ne voulais surtout pas prétendre que Theodore faisait tourner plus de jeux que dcmoto ou Teo, juste qu'il en faisait tourner plus que les émulateurs DCTO8D/DCTO9P/DCMO5 sur lesquels il est basé.

Cordialement,
Thomas
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par Daniel »

Pour Le Temps d'Une Histoire, le site dcmoto propose un fichier .fd avec exactement le même contenu que le fichier .sap de logicielsmoto. Je viens de le tester avec l'émulateur dcmoto, et il y a effectivement un comportement bizarre : parfois il se lance normalement, parfois il se bloque lors de l'affichage de l'écran noir avec INFOGRAMES au milieu. Et quand il se bloque, ce n'est pas toujours au même endroit : parfois INFOGRAMES est écrit en entier, parfois seules les premières lettres sont affichées. Quand il ne se bloque pas, tout le reste du programme s'exécute normalement.

Ce comportement est assez mystérieux. Je vais essayer de comprendre son origine. Parallèlement, si un membre du forum a la disquette originale, il serait utile de faire un nouveau transfert sur PC pour comparer les deux versions.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Theodore, l'émulateur Thomson (quasi) universel

Message par __sam__ »

Pour un truc aléatoire comme ça (c-à-d avec les mêmes conditions de départ: machine à froid) sur thomson, je suspecterais un beau débordement de pile suite à une interruption apparaissant au mauvais moment ( :idea: l'appui répété/prolongé sur le light-pen depuis le boot-menu génère pleins d'interruptions, et pas forcément au bon endroit). Ca vaut ce que ca vaut.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre