Theodore, l'émulateur Thomson (quasi) universel

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

Modérateurs : Carl, Papy.G, fneck

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

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

Message par Zlika »

Daniel a écrit : 17 avr. 2019 22:17 Je ne crois pas : je viens de comparer les deux fichiers .sap, ils sont rigoureusement identiques.
Peut-être que le contenu des secteurs est identique, je n'ai pas vérifié, mais en tout cas les fichiers eux même sont différents (peut être une différence uniquement dans les méta-données SAP ?) :

80cec55ff487ee9a0d3cf40ee5956b2256adf2b9fc9d4d46e62b762f03e4922a temps_histoire.sap
17fbaa8650c22d5d5acee2b1f90abc8f1ffd9d2f780db5b68ec406405843785a Temps d'une Histoire, Le (198x)(Infogrames).sap
Avatar de l’utilisateur
gilles
Messages : 2485
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

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

Message par gilles »

Il y a 2 dumps différents dans TOSEC
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ sha256sum temps_histoire.sap
80cec55ff487ee9a0d3cf40ee5956b2256adf2b9fc9d4d46e62b762f03e4922a temps_histoire.sap
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ sha256sum SAP/Temps\ d\'une\ Histoire\,\ Le\ \(198x\)\(Infogrames\)\[a\].sap
80cec55ff487ee9a0d3cf40ee5956b2256adf2b9fc9d4d46e62b762f03e4922a SAP/Temps d'une Histoire, Le (198x)(Infogrames)[a].sap

teo charge les 2 sans difficulté.
mais les différences ne semblent pas être dans les métadonnées.
il est possible que ce soit un déplombage ou une erreur de lecture ponctuelle sur le dump.

gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ od -x toto.sap > t1
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ od -x temps_histoire.sap > t2
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ diff t1 t2
1982c1982
< 0105660 7c3b 7426 3333 237c 54fd 29cc 8e63 794b
---
> 0105660 7c3b 7426 3333 237c 54fd 29cc 2163 2121
1994c1994
< 0106160 e004 0008 0000 7cf8 0000 0a08 cb33 d433
---
> 0106160 e004 0008 0000 cf4c 0000 0a08 cb33 d433
__sam__
Messages : 6222
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ »

Même checksum mais contenu différent ? Ca serait une première :)
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
Avatar de l’utilisateur
gilles
Messages : 2485
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

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

Message par gilles »

mmm je n'ai pas copié la bonne ligne... il y a 2 fichiers sap différents dans TOSEC:
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ sha256sum SAP/Temps\ d\'une\ Histoire\,\ Le\ \(198x\)\(Infogrames\).sap
17fbaa8650c22d5d5acee2b1f90abc8f1ffd9d2f780db5b68ec406405843785a SAP/Temps d'une Histoire, Le (198x)(Infogrames).sap
gilles@gilles-Studio-XPS-8100:~/Bureau/TO8_dsks$ sha256sum SAP/Temps\ d\'une\ Histoire\,\ Le\ \(198x\)\(Infogrames\)\[a\].sap
80cec55ff487ee9a0d3cf40ee5956b2256adf2b9fc9d4d46e62b762f03e4922a SAP/Temps d'une Histoire, Le (198x)(Infogrames)[a].sap
Daniel
Messages : 14179
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

Oui, effectivement, TOSEC a deux versions : La version originale (sans indice) et la version déprotégée (indice [a]).
Dans la version deprotégée, le JSR $784A (appel du contrôle de la protection) est remplacé par trois NOP :

Code : Tout sélectionner

-----------------------------------
Appel controle protection
(version originale)
-----------------------------------
783E 10CE67FF   LDS    #$67FF             
7842 1A50       ORCC   #$50               
7844 BD784A     JSR    $784A                    
7847 7E7962     JMP    $7962              

-----------------------------------
Appel controle protection supprime
(version deprotegee)
-----------------------------------
783E 10CE67FF   LDS    #$67FF             
7842 1A50       ORCC   #$50               
7844 12         NOP                       
7845 12         NOP                       
7846 12         NOP                       
7847 7E7962     JMP    $7962              
Voila la réponse à une partie de nos interrogations. Mais il n'y a aucun rapport avec le plantage aléatoire observé au début du chargement, car ce plantage intervient dans le secteur de boot, bien avant le contrôle de la protection qui a lieu après l'affichage de l'image de présentation.
Le mystère reste entier : bug du programme, ou du TO8, ou des émulateurs ?
A priori, puisque Gilles a réussi à planter le vrai TO8, les émulateurs ne sont pas directement en cause.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
gilles
Messages : 2485
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

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

Message par gilles »

donc version protégée, TEO 0.7 la faisait tourner (avec son contournement de protection assez similaire à theodore mais basé sur le write vers le ctl disque), ça bloque en 1.8.4 version officielle mais ça passe en version actuelle mercurial (derniers update janvier).
Bentoc
Messages : 84
Inscription : 14 sept. 2019 13:35
Localisation : Var - France

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

Message par Bentoc »

J'ai compilé le coeur theodore pour RetroArch sur mon environnement Window10, mais le .dll ne se charge pas.
J'ai essayé avec la dernière realease (3.1) dispo sur le github ainsi qu'avec le master.
Je dois avoir quelque chose d'incorrect dans mon env de compilation mais je ne trouve pas.
Quelqu'un à une idée ?

Voici la manière dont je compile :
Windows 10 (à jour)
Cygwin64 avec :
GNU Make 4.3 (Built for x86_64-pc-cygwin)
gcc version 11.2.0 (GCC)

capture de la log du make :
theodore - Cygwin64 make.png
theodore - Cygwin64 make.png (122.26 Kio) Consulté 202 fois

La compilation semble bien se dérouler, je copie ensuite le fichier theodore_libretro.dll dans le répertoire core de retroarch,
mais j'ai un message "echec de l'ouverture du core".
Avec le core theodore de RetroArch évidement ça passe ... mais mon but est de pouvoir modifier theodore.

Merci d'avance
Avatar de l’utilisateur
Sebiohazard
Messages : 276
Inscription : 30 avr. 2019 15:07

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

Message par Sebiohazard »

Zlika a écrit : 13 avr. 2019 13:25 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 !
Hello !

Oui & surtout il peut se lancer en ligne de commande & être intégré dans un front end :) cerise sur le gâteau grâce à RetroArch il bénéficie également de tous les filtres graphiques existants sur ce dernier !

Salutations !
Image
__sam__
Messages : 6222
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ »

Bentoc a écrit : 14 sept. 2021 08:03 J'ai compilé le coeur theodore pour RetroArch sur mon environnement Window10, mais le .dll ne se charge pas.
Utilise dependancy walker pour voir si toutes les dépendances de ta DLL sont satisfaites ou s'il te manque d'autres DLL dans ton système.

sam.
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
Bentoc
Messages : 84
Inscription : 14 sept. 2019 13:35
Localisation : Var - France

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

Message par Bentoc »

Merci bcp sam,

A gauche la lib officielle, a droite celle que je compile.
theodore - dll.png
theodore - dll.png (13.7 Kio) Consulté 179 fois
Si je comprends bien a la compilation il utilise CYGWIN1.dll alors que j'ai besoin de MSVCRT.dll ...
Bentoc
Messages : 84
Inscription : 14 sept. 2019 13:35
Localisation : Var - France

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

Message par Bentoc »

J'ai installé mingw dans cygwin
puis juste avant le make : export CC=x86_64-w64-mingw32-gcc

Comme ça ça compile avec la lib Windows, et ça fonctionne enfin ;-)

Merci encore sam pour ton aide précieuse.
__sam__
Messages : 6222
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ »

Et voilà tu as ta réponse. Il te faut ajouter CYGWIN1.DLL à coté de ta DLL. Ou alors trouver la config de compil pour ne pas dépendre de cygwin. Chez moi je fais cela en passant CC="i686-w64-mingw32-gcc -m32" au configure/makefile pour qu'il me génère des exe 32bits (-m32) sans dépendances à cygwin.

PS: en ce moment je suis en train de passer de cygwin à WSL2 (beaucoup plus rapide pour compiler des sources énormes), mais je n'ai pas encore essayé de générer des EXE windows depuis cet environnement là.
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