[Exelvision] Nouvel émulateur EXL100
Modérateurs : Papy.G, fneck, Carl
Re: [Exelvision] Nouvel émulateur EXL100
Daniel, tu avais raison pour Vega... le loader BASIC -> LM se plante car il n'utilise pas le LDVDP mais un MOVP P36,x
du coup il commence à lire un octet trop tard (apres le TRAP) et décale tout d'un quartet...
La spécification du 3556 ne nous aide pas dans ce cas...
du coup il commence à lire un octet trop tard (apres le TRAP) et décale tout d'un quartet...
La spécification du 3556 ne nous aide pas dans ce cas...
Re: [Exelvision] Nouvel émulateur EXL100
C'est pareil dans KungFu.
Dans ce cas de figure je fais -1 dans le registre ACMP et tout fonctionne bien.
Mais pour la satisfaction intellectuelle il faudrait comprendre la cause de ce comportement
Dans ce cas de figure je fais -1 dans le registre ACMP et tout fonctionne bien.
Mais pour la satisfaction intellectuelle il faudrait comprendre la cause de ce comportement
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Exelvision] Nouvel émulateur EXL100
J'ai renvoyé la question à Repetto et Petiot.
Il reste encore Duplouy qui pourrait répondre, mais je n'ai pas le carnet d'adresse de tous les anciens d'Exelvision.
Mais c'est sans espoir car à moins d'avoir conservé des docs/notes dans un carton, c'est un point trop précis pour qu'ils s'en souviennent (en admettant qu'ils répondent ).
Je pense qu'il faudra se débrouiller seul, comme d'hab... mais c'est le TAL qui réalise la correspondance des ports avec les les périphériques, non ? Dans ce cas à part de l'imagination... ou étudier les signaux au niveau de la carte mère, je ne vois pas.
Il reste encore Duplouy qui pourrait répondre, mais je n'ai pas le carnet d'adresse de tous les anciens d'Exelvision.
Mais c'est sans espoir car à moins d'avoir conservé des docs/notes dans un carton, c'est un point trop précis pour qu'ils s'en souviennent (en admettant qu'ils répondent ).
Je pense qu'il faudra se débrouiller seul, comme d'hab... mais c'est le TAL qui réalise la correspondance des ports avec les les périphériques, non ? Dans ce cas à part de l'imagination... ou étudier les signaux au niveau de la carte mère, je ne vois pas.
Re: [Exelvision] Nouvel émulateur EXL100
j'imagine qu'il y a un lien avec l'absence d'acces vers l'autre port de lecture (partie du message éditée... pas P39 en tout cas).
Je vois bien comment l'émuler... et comment tester sur matériel réel... mais pas vraiment le pourquoi de la chose... la doc du TMS dit qu'il faut doubler la lecture pour une question de timing. Peut être que seule la première lecture est à doubler... la réponse est dans le microcode et/ou un éventuel latch dans le TAL
Je vois bien comment l'émuler... et comment tester sur matériel réel... mais pas vraiment le pourquoi de la chose... la doc du TMS dit qu'il faut doubler la lecture pour une question de timing. Peut être que seule la première lecture est à doubler... la réponse est dans le microcode et/ou un éventuel latch dans le TAL
Re: [Exelvision] Nouvel émulateur EXL100
SI tu as le matos gilles, je suppose que le seul moyen d'élucider les actions des ports P36,P39 et P40 sur le TMS3556 est l'étude des signaux en entrée du VDP ou en sortie du TAL ???
Moi je suis totalement inutile sur ce problème
Moi je suis totalement inutile sur ce problème
Re: [Exelvision] Nouvel émulateur EXL100
au contraire, on peut l'étudier totalement en soft...
Tu inscrit en VDPRAM des valeurs connues.
Tu initialises tes pointeurs de manière exotique...
Puis tu relis la VDPRAM pour enfin afficher.
On peut raffiner en intercalant la lecture vers l'autre port de RAM.
Mon gros problème pour la machine réélle pour le moment est ma limitation au format K7...
Mais je pense me monter une EPROM sur cartouche...
Tu inscrit en VDPRAM des valeurs connues.
Tu initialises tes pointeurs de manière exotique...
Puis tu relis la VDPRAM pour enfin afficher.
On peut raffiner en intercalant la lecture vers l'autre port de RAM.
Mon gros problème pour la machine réélle pour le moment est ma limitation au format K7...
Mais je pense me monter une EPROM sur cartouche...
Re: [Exelvision] Nouvel émulateur EXL100
Avec une règle assez simple véga fonctionne... Si on est passé par p40 avant d'initialiser en read alors traitement normal sinon on decremente... Le rdvdp étant suppose faire une lecture de p40 puis p36... Un peu pifometrique ... Mais ça marche
Re: [Exelvision] Nouvel émulateur EXL100
Mise en ligne version 0.8, la version wxwidget est à utiliser en priorité (plus stable et gestion de tout le clavier).
Vega fonctionne.
Vega fonctionne.
Re: [Exelvision] Nouvel émulateur EXL100
Voici le binaire MacOSX du CVS HEAD : http://dl.free.fr/ohDg9Da2B
Attention, il faut changer la ligne 82 de wxRenderLoop.cpp pour compiler en unicode :
wxPanel(parent,-1,wxDefaultPosition,wxDefaultSize,wxWANTS_CHARS,_T("panel"))
Attention, il faut changer la ligne 82 de wxRenderLoop.cpp pour compiler en unicode :
wxPanel(parent,-1,wxDefaultPosition,wxDefaultSize,wxWANTS_CHARS,_T("panel"))
Re: [Exelvision] Nouvel émulateur EXL100
J'ai mis en ligne la version 0.8 macos.
Les sources comportent la gestion du son 1bit mais ce n'est pas parfait...
Les sources comportent la gestion du son 1bit mais ce n'est pas parfait...
Re: [Exelvision] Nouvel émulateur EXL100
La version PC n'est pas en ligne ?
Pour le son, je n'ai pas identifié de différences entre DcExel et Exl100/Exeltel... mêmes les parasites sont reproduits.
Sinon j'ai testé le registre statut du VDP... et le mode accès rapide indiqué dans la doc du 3556. ça ne semble pas utilisable dans la pratique car dés qu'on accède à un autre registre cela annule la lecture du automatique du registre d'état (normal puisque qu'on remplace les bits RT8...RT1). Du coup ça sert à rien en pratique !
Pour le son, je n'ai pas identifié de différences entre DcExel et Exl100/Exeltel... mêmes les parasites sont reproduits.
Sinon j'ai testé le registre statut du VDP... et le mode accès rapide indiqué dans la doc du 3556. ça ne semble pas utilisable dans la pratique car dés qu'on accède à un autre registre cela annule la lecture du automatique du registre d'état (normal puisque qu'on remplace les bits RT8...RT1). Du coup ça sert à rien en pratique !
Re: [Exelvision] Nouvel émulateur EXL100
Si, depuis le 17/02.jester a écrit :La version PC n'est pas en ligne ?
EDIT : la gestion du son 1 bit n'est que dans les sources pour l'instant
Re: [Exelvision] Nouvel émulateur EXL100
je ne suis pas certain d'avoir tout mis sur CVS... je vais mettre en ligne une petite prerelease... (voir dans lignes de news) mais c'est trop grave avec le timer.
Re: [Exelvision] Nouvel émulateur EXL100
Je viens de tester les deux dernières versions (Allegro et l'autre) avec ma routine de musique 1bit.
Bon il y a encore du travail, c'est clair : je n'ai reconnu ni la mélodie globale, ni la hauteur des notes... même si l'écoute semble cohérente il y a des bugs dans la gestion du timer, c'est évident car ni la durée des notes ni leur hauteur ne sont respectées. Et il y a cet horrible ronflement avec des craquements en arrière plan
Je te rassure ça marche parfaitement sur un Exl100 et un Exeltel... juste quelques parasites dans les notes très hautes, sinon le son est bien carré, la mélodie bien précise.
Autre chose, si j'ai bien compris tu émules bien les différents composants et pas les fonctionnalités comme DcExel. Donc il est possible de tester des lectures K7 à vitesse accélérer sur ton émulateur ? J'aimerais bien modifier la routine de la ROM pour lire à double vitesse les K7. ça évite d'être devant un Exl100.
Bon il y a encore du travail, c'est clair : je n'ai reconnu ni la mélodie globale, ni la hauteur des notes... même si l'écoute semble cohérente il y a des bugs dans la gestion du timer, c'est évident car ni la durée des notes ni leur hauteur ne sont respectées. Et il y a cet horrible ronflement avec des craquements en arrière plan
Je te rassure ça marche parfaitement sur un Exl100 et un Exeltel... juste quelques parasites dans les notes très hautes, sinon le son est bien carré, la mélodie bien précise.
Autre chose, si j'ai bien compris tu émules bien les différents composants et pas les fonctionnalités comme DcExel. Donc il est possible de tester des lectures K7 à vitesse accélérer sur ton émulateur ? J'aimerais bien modifier la routine de la ROM pour lire à double vitesse les K7. ça évite d'être devant un Exl100.
Re: [Exelvision] Nouvel émulateur EXL100
Oui tu peux parfaitement faire un loader rapide en RAM pour lire les K7 plus rapidement, le principe est très simple. Le fichier WAV est relu à sa fréquence réelle (en phase avec l'horloge du 7020). Lorsque le niveau sur la K7 dépasse la moitié (4 cas entre 8 et 16 bits signé ou non) alors c'est un 1 sinon c'est un 0 qui est présenté sur le port du 7020.
Cela craque effectivement beaucoup avec Allegro je dirai même que c'est inutilisable. C'est moins catastrophique avec WX mais il coupe trop souvent des choses.
Le son 1bit est correct avec certaines K7 et lors du message d'intro de menkar par exemple. donc le problème vient bien des timers. Il y a encore du boulot sur ce module d'emulation du TMS7xxx... la prochaine fois j'écrit mon code... debugger celui des autres c'est la mort...
{edit}
pour tester à vitesse rapide, utilise la version Allegro et dans les options : vitesse maximale. l'effet au niveau du son sera étrange, car chaque frame sera quand même rejouée à sa fréquence normale, avec donc une surimpression...
Cela craque effectivement beaucoup avec Allegro je dirai même que c'est inutilisable. C'est moins catastrophique avec WX mais il coupe trop souvent des choses.
Le son 1bit est correct avec certaines K7 et lors du message d'intro de menkar par exemple. donc le problème vient bien des timers. Il y a encore du boulot sur ce module d'emulation du TMS7xxx... la prochaine fois j'écrit mon code... debugger celui des autres c'est la mort...
{edit}
pour tester à vitesse rapide, utilise la version Allegro et dans les options : vitesse maximale. l'effet au niveau du son sera étrange, car chaque frame sera quand même rejouée à sa fréquence normale, avec donc une surimpression...