[Exelvision] dcexel 2009.02

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

Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Message par Carl »

Daniel a écrit :Si vos réponses confirment mes essais, je diffuserai très rapidement la version 2009.02 SP1
Daniel, pour le SP1, existe t-il une adresse www.exel100update.com :roll: ?
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Le Service Pack 1 est disponible sur le serveur indiqué par Carl au post précédent.

Nouveautés :
- La fréquence du processeur est la moitié de la fréquence du timer. Par défaut 2455 kHz.
- Introduction d'un nouveau système de contrôle appelé WGA (Wizord Genuine Advantage). Il est destiné à protéger votre PC des copies pirates de l'abominable Wizord, et à signaler aux autorités votre usage illégal de ROMs sous copyright. C'est uniquement pour votre bien. Et ce système est très discret, il est même indétectable.

Autres nouveautés
Tous les jeux pour Windows ont été recompilés avec dcexel 2009.02 SP1. Ils sont disponibles sur le même site. Théoriquement ils ne devraient plus avoir de problème de timing. Si vous constatez la moindre anomalie (en dehors des touches appuyées simultanément), il faut le dire. Merci :!:

Et je suis désolé pour cet épisode malheureux. J'aurais dû être moins naïf et vérifier l'information avant de faire tourner le processeur à 4,91 MHz :oops:
Daniel
L'obstacle augmente mon ardeur.
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 »

Daniel a écrit :... et vérifier l'information avant de faire tourner le processeur à 4,91 MHz :oops:
Attends, c'était pas évident à trouver que le TMS7020 divisait la fréquence en interne, il fallait aller la chercher celle-ci :?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

C'était écrit clairement, mais deux lignes dans un livre de 540 pages, on peut effectivement passer à côté. Le plus incroyable est que cette information ne soit pas connue de tous. On savait la fréquence du processeur de tous les ordinateurs au monde, sauf ceux d'Exelvision. Il faudrait relire toute la doc et tous les Exelement Votre pour voir si le sujet a déjà été évoqué.

Mais peu importe, cette histoire est terminée et un mystère de plus est élucidé. Maintenant il reste à comprendre l'Exeltel. Après le VDP et le VSP, ça va être un régal. La cerise sur le gâteau :wink:
Daniel
L'obstacle augmente mon ardeur.
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 »

Moi je trouve superbe de découvrir un truc comme ça 25 ans après, c'est quand même très fort (et totalement inutile, je sais :D mais c'est ça qui est bon).

J'essaie de comprendre le fonctionnement du TMS7041, car en regardant les schémas du site de Fabrice, on peux voir que le quartz est également dessus. L'annexe C du bouquin TMS70xx en parle et il y a là une notion de division par 2 ou par 4, tu peux jeter un coup d'oeil Daniel?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gatesbillou
Messages : 128
Inscription : 31 juil. 2008 14:02
Localisation : la cadiere d'azur - var (83)

Message par gatesbillou »

Encore bravo daniel , ca fait plaisir qu'une personne comme toi s'interesse a l'exel100 , j'ai une grande admiration pour toi.
Tu parle d'emuler l'exeltel, est-ce que tu peux nous en dire unpeu plus sur la démarche que tu va suivre maintenant ? Quelles sont les prochaines étapes ?
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

fneck a écrit :tu peux jeter un coup d'oeil Daniel?
Rien de plus :
Image

La section 3.4 est celle que j'avais déjà donnée plus haut pour la fréquence du 7020. Le 7041 peut, en plus, diviser la fréquence du quartz par 4, mais rien ne dit comment il faut procéder. Il a aussi 4 Ko de ROM (dont j'aimerais bien récupérer le contenu :wink: ) et 128 octets de RAM. Sa fréquence maxi est 2,5 MHz, comme le TMS7020. En revanche le TMS7042 peut atteindre 4 MHz, donc il est possible d'overclocker l'exeltel.

@gatesbillou : pour l'exeltel certaines ROMS ne sont pas copiées, en particulier celles du synthétiseur et celle du TMS7042. Et peut-être aussi d'autres éléments. C'est donc théoriquement impossible à émuler, alors il va falloir ruser, comme pour le TMS7041 de l'EXL100. J'ai analysé tout ce qui entrait et tout ce qui sortait, et petit à petit j'ai réussi à comprendre les traitements qu'il effectuait. Cette approche est simple pour un circuit logique, elle est beaucoup plus problématique pour un microprocesseur complexe. C'est là qu'interviennent la ruse et l'intuition. Il se passe des choses à l'intérieur pas toujours faciles à modéliser. Alors on essaye l'une apès l'autre des hypothèses plausibles, jusqu'à trouver celle qui va bien. Je considère que c'est un art plus qu'une science, mais mon avis n'est pas partagé par tous. Je crois qu'il faut être un peu fou, comme nous le sommes tous ici avec nos vieilles machines.
Daniel
L'obstacle augmente mon ardeur.
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 »

Daniel a écrit :Rien de plus (...)
C'est parfait, je voulais simplement que tu jettes un oeil pour voir si ça pouvait avoir une influence sur l'émulation.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
6502man
Messages : 12329
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Message par 6502man »

Bravo Daniel, pour ta perseverance sur la realisation de cette emulateur.

:shock: :o
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
fabu
Messages : 976
Inscription : 11 avr. 2007 13:03
Localisation : Aveyron

Message par fabu »

Pas mieux, Félicitation . :wink:
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Message par jester »

ça marche foutrement bien... RAS au niveau vitesse, ça tourne très bien : c'est même plus rapide qu'avant dans wizord !!!

Par contre petit bug curieux ? En Basic lorsque j'ai une erreur de lecture cassette (oubli de valider cassette ou rembobinage par exemple) LOAD "1.XXX", le clavier devient fou et je dois rebooter... à vérifier si les erreurs E/S entrainent des Pbs au niveau gestion clavier.

Je pleure de joie en entendant le son de mes vieux jeux pour la première fois depuis 24ans. :lol:
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Beaucoup de problèmes, en particulier les blocages dans certains jeux et les vitesses fantaisistes, étaient dûs à la vitesse excessive du processeur par rapport au timer. Avec la division de fréquence par deux, non seulement les vitesses des jeux sont bonnes, mais en plus il y a beaucoup moins de blocages intempestifs. Il n'ont pas totalement disparu mais sont devenus très rares.

J'ai constaté aussi le problème de clavier en cas d'erreur cassette. C'est parce que la lecture cassette masque les interruptions. Si elle se plante le relâchement de la touche ENTREE n'est pas détecté, et tout se passe comme si elle était encore appuyée, avec répétition automatique. Je note l'anomalie et je trouverai un contournement. Il suffit probablement de réactiver les interruptions.
Daniel
L'obstacle augmente mon ardeur.
fzalfa
Messages : 251
Inscription : 04 août 2008 15:18
Localisation : Le Pontet
Contact :

Message par fzalfa »

Salut

j'aimerais savoir avec quels outils tu developpe ???

pour ma part j'utilise C et C++ (compilateur MIPS-pro 7.44, GCC pue....) et je fait principalement du portage linux -> IRIX

Laurent
SGI sinon rien !!!
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Tous mes émulateurs sont écrits en C compilé avec GCC. Dans Windows : API Win32 et DirectX. Bibliothèque SDL pour les portages sur Linux, Mac et autres de dcmo5, dcto8, dcto9p et dcvg5000. J'ai longtemps utilisé devcpp comme environnement de développement, mais il n'est plus développé alors je suis passé à CodeBlocks.

Pour programmer un émulateur aujourd'hui il n'y a plus de problème de performances, mais je me souviens de DCMO5 en 1992 : il tournait sur un 386SX16, et c'était du sport. Il fallait écrire les modules stratégiques en assembleur. La video était en EGA pour gagner du temps. En VGA l'organisation trop complexe de la mémoire ne permettait pas d'afficher assez vite. Dix-sept ans plus tard dcexel consomme moins de 2% de CPU en plein écran 1280 * 1024 avec 4 octets par pixel :D On arriverait peut-être même à le faire tourner en Basic :wink:
Daniel
L'obstacle augmente mon ardeur.
Fabrice Montupet

Message par Fabrice Montupet »

Daniel a écrit :...Et je suis désolé pour cet épisode malheureux. J'aurais dû être moins naïf et vérifier l'information avant de faire tourner le processeur à 4,91 MHz :oops:
Daniel a écrit :Le 7041 peut, en plus, diviser la fréquence du quartz par 4, mais rien ne dit comment il faut procéder.
Sur un vrai composant TMS7xxx, le coefficient de division, qu'il soit de 2 ou de 4, ne peut pas être défini par un quelconque paramètre logiciel car il est prédéfini à la production sur le masque préprogrammé des microcontrolleurs. Il pourrait bien sûr être modifié sur un émulateur mais cela ne serait bien évidement plus réaliste.
Les informations que tu as collecté sur le net sont justes en ce qui concerne la fréquence à laquelle est cadencé le TMS7020: soit 4.91Mhz; la division de l'horloge est autre chose, elle se fait ensuite, en interne. Daniel, tu n'es pas naif, je pense simplement que tu as appréhendé l'émulation de la vitesse de l'EXL100 de manière purement logicielle avec un seul paramètre matériel de départ pour cette vitesse, le second paramètre matériel (la division interne) t'a échappé. Cela dit, c'est un détail par rapport au boulot abattu et tu l'a rapidement corrigé.
Répondre