Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Teo version 1.8.1 http://www.logicielsmoto.com/phpBB/viewtopic.php?f=2&t=448 |
Page 1 sur 4 |
Auteur: | Prehisto [ 30 Mai 2012, 21:57 ] |
Sujet du message: | Teo version 1.8.1 |
La version 1.8.1 de Teo est disponible sur SourceForge : https://sourceforge.net/projects/teoemulator/ ... où vous pourrez aussi trouver les versions suivantes. Et quelques versions précédentes. Ce qu'il y a de plus dans cette version : Code: - ROMs incluses dans les packages
- Emulation des imprimantes PR90-055, PR90-600, PR90-612 - exécution cycle par cycle des instructions - émulation des instructions non standard - émulation des postcodes non standard pour TFR/EXG - émulation des postcodes non standard pour indexé - émulation du postcode 0x00 pour PSHS/PSHU/PULS/PULU - ajout et internationalisation des saptools et des k7tools - plus de message de confirmation à la sortie de Teo - sous Linux : - passage à GTK+ 2.12 - réduction du temps de ralentissement usleep() - gestion de la configuration lorsque le device impliqué n'est pas monté - reset à chaud de Teo si erreur de configuration - traitement du son par ALSA plutôt que par OSS - passage au combobox pour les fichiers sous Linux et ajout de boutons pour les vider - F12 pour l'appel du débogueur |
Auteur: | Samuel Devulder [ 31 Mai 2012, 13:55 ] |
Sujet du message: | Re: Teo version 1.8.1 |
Prehisto a écrit: La version 1.8.1 de Teo est disponible sur SourceForge Cool! Citation: - émulation des instructions non standard
Super, je connais quelque progs de 257octets qui vont descendre à 255. |
Auteur: | Fool-DupleX [ 05 Juin 2012, 14:23 ] |
Sujet du message: | |
Que font exactement les mouvements de pile avec un postcode a 0 ? Equivalent a nop ou ca fait des trucs plus subtils ? |
Auteur: | Prehisto [ 05 Juin 2012, 18:07 ] |
Sujet du message: | |
Rien, en fait. Ça coûte le prix d'un mouvement de pile immobile. Code: PSHS ($00) (5 cycles + 0 cycle)
PS: et désolé de répondre aussi tard, je n'ai reçu aucun message de notification |
Auteur: | Samuel Devulder [ 01 Juil 2012, 14:45 ] |
Sujet du message: | buzzer bizarre |
Il y a un truc bizarre avec le buzzer. Le code basic suivant: Code: DO:POKE &HE7C1,PEEK(&HE7C1) XOR 8:LOOP
faisait du bruit avec les versions antérieures (ainsi que sous les autres emuls). Mais avec la 1.8.1, le to8 reste silencieux. |
Auteur: | Prehisto [ 01 Juil 2012, 14:47 ] |
Sujet du message: | |
Ah. Un bon petit programme de test, en tout cas. Tu parles de la version Windows ? |
Auteur: | Samuel Devulder [ 01 Juil 2012, 14:53 ] |
Sujet du message: | |
oui windows. Avec la 1.8.0 le code faisait du bruit. Donc c'est une modif entre la 1.8.0 et la 1.8.1. Si ca le fait sous linux et sous win, c'est dans l'emul du registre $E7C1 que le changement a du avoir eu lieu (les imprimantes c'est en $E7C1 ?) |
Auteur: | Prehisto [ 01 Juil 2012, 15:28 ] |
Sujet du message: | |
Effectivement, dans hardware.c, à la fonction SetDeviceRegister(), il y avait : Code: /* PIA 6846 système */ case 0xE7C1: mc6846_WriteCommand(&mc6846, val); if ((mc6846.crc&0x30) == 0x30) to8_PutSoundByte(mc6809_clock(), mc6846.crc&8 ? 0 : (mc6821_ReadPort(&pia_ext.portb)&0x3F)<<2); break; que j'ai transformé en : Code: /* PIA 6846 système */
case 0xE7C1: mc6846_WriteCommand(&mc6846, val); break; J'ai eu à pas mal travailler sur le son, j'avais trouvé quelque chose qui évitait, justement, une légère friture qui n'existe pas sur un vrai Thomson dans certaines situations, mais ça a l'air de ne pas encore être au point. |
Auteur: | Samuel Devulder [ 01 Juil 2012, 15:40 ] |
Sujet du message: | |
Prehisto a écrit: J'ai eu à pas mal travailler sur le son, j'avais trouvé quelque chose qui évitait, justement, une légère friture qui n'existe pas sur un vrai Thomson dans certaines situations, mais ça a l'air de ne pas encore être au point.
Changer le bit 3 de $E7C1 était la façon de faire du son sur TO7/70. Sur les schemas, il me semble que ce bit du 6846 n'est relié à rien. Mais en réalité, il doit bel et bien servire à quelque chose car les vieux jeux qui font du son en utilisant ce bit (ANDROIDE je crois) produisent bel et bien du son sur TO8. |
Auteur: | Prehisto [ 01 Juil 2012, 15:53 ] |
Sujet du message: | |
Ben je viens d'essayer Androïdes sur Teo (disquette test pour Teo prise sur Nostalgies Thomsonistes), je n'ai pas l'impression que le jeu ait été amputé du son. Mais c'est vrai qu'il va falloir faire avec plutôt que sans. Donc je note ça comme régression, et ce sera rectifié. |
Auteur: | Samuel Devulder [ 01 Juil 2012, 16:18 ] |
Sujet du message: | |
Prehisto a écrit: Ben je viens d'essayer Androïdes sur Teo (disquette test pour Teo prise sur Nostalgies Thomsonistes), je n'ai pas l'impression que le jeu ait été amputé du son. Oui tout a fait. C'est pour ca que je me demande comment il produit du son. Je pensais qu'il n'agissait que sur $E7C1, mais lorsque je le desassemble, je vois ceci:Code: 84BF 1A50 ORCC #$50 3 Donc en gros il touche toujours à $E7CD, et si $6102 est différent de 0 (on a pas de joystick?), il va tripatouiller $E7C1. On dirait bien qu'il joue (!! ) sur les deux tableaux.
84C1 7D6105 TST $6105 7 84C4 2722 BEQ $84E8 3 84C6 73E7CD COM $E7CD 7 84C9 7D6102 TST $6102 7 84CC 2708 BEQ $84D6 3 84CE B6E7C1 LDA $E7C1 5 84D1 8808 EORA #$08 2 84D3 B7E7C1 STA $E7C1 5 84D6 7A610A DEC $610A 7 84D9 260D BNE $84E8 3 84DB B66109 LDA $6109 5 84DE B7610A STA $610A 5 84E1 7A6106 DEC $6106 7 84E4 2602 BNE $84E8 3 84E6 8DB4 BSR $849C 7 84E8 BCE7C6 CMPX $E7C6 7 84EB 3B RTI 16/4 A noter: truc hyper cool, le son est généré par interruption TIMER laissant libre le reste du CPU pour le jeu (le cpu n'à qu'à modifier $E7C6 pour varier la fréquence du son). |
Auteur: | Tomix3 [ 06 Juil 2012, 12:52 ] |
Sujet du message: | |
@Sam Je me disais bien qu'android devait fonctionner aussi sans le DNA (c'est en débuguant le son de mon émulateur avec android que je m'étais rendu compte qu'il l'utilisait). Merci pour ton analyse. Sinon, je rebondis à propos du buzzer. Quelqu'un sait quelle est la fréquence maximum de sortie du buzzer sur To9? (8Khz?) |
Auteur: | Samuel Devulder [ 07 Juil 2012, 00:41 ] |
Sujet du message: | |
Tomix3 a écrit: Sinon, je rebondis à propos du buzzer. Quelqu'un sait quelle est la fréquence maximum de sortie du buzzer sur To9? (8Khz?) Non 8khz c'est hyper faible. Le 6809 peut produire des sorties échantillonnées à 44khz (donc freq maxi de 22khz), et avec le buzzer on peut aller encore plus haut:Code: 2 A000 86 E7 ini lda #$E7 La boucle prend 4+2+4+3=13cycles, soit un son à environ 38khz au lieu de 22khz (il faut 2 tour de boucle pour faire une période). Pile dans les ultrasons et on ne devrait rien entendre en théorie.
6 A002 1F 8B tfr a,dp 4 A004 96 C1 loop lda <$E7C1 2 A006 88 08 eora #8 4 A008 97 C1 sta <$E7C1 3 A00A 20 F8 bra loop En pratique on entendra rien non pas à cause des ultra-sons, mais parce que le haut-parleur agit comme un filtre passe-bas à la fréquence de coupure entre 10 et 20khz. Donc la fondamentale à 38khz se trouvera fortement amortie. Au mieux on devrait entendre un très léger bourdonnement correspondant aux basses fréquences créées par l'interruption timer je pense. Je n'ai pas vérifié. Si quelqu'un se sent le courage, ca serait marrant de vérifier cette théorie. Sur les emuls c'est plus complexe parce que le son est échantillonné et qu'on a pas coupure du spectre, mais repliement de ce dernier. TEO sous windows échantillonne le son à 51.2khz. On a donc repliement du spectre autour de 25.6khz. Les 38khz théoriques ont une frequence conjuguée de 51.2-38=13khz. On devrait donc entendre une note assez forte à cette fréquence. Je viens de faire le test avec TEO 1.7.7 et AUDACITY sur le code du début. J'obtiens le spectre suivant: On voit bien que le pic restitué est à 12.7khz; vraiment pas très loin du 13khz théorique. CQFD ;-) En fait ce que cela suggère pour avoir une émulation plus fidèle serait d'introduire un filtre à 20khz dans la partie audio pour éviter le repliement des fréquences >= 25.6khz et ainsi éviter l'apparition du beep à 13khz là ou un vrai TO serait probablement silencieux (hypothèse qui reste à vérifier cela dit). |
Auteur: | Prehisto [ 07 Juil 2012, 07:59 ] |
Sujet du message: | |
Je vais quand même éclaircir quelques points : J'ai effectivement effectué quelques transformations du côté du son, principalement pour Linux, mais qui ont eu des répercussions pour Windows. Je me suis rendu compte que l'appel aux systèmes traitant le son provoquaient un usage CPU proche de 100%. Je me suis donc appliqué (du moins pour Linux) à ne générer le son que lorsque cela était requis. Ça a nécessité de créer des filtres passe-bas et passe-haut rudimentaires, qui ont très bien fonctionné avec la version 10.04 de Ubuntu. L'avantage certain est que l'usage CPU est passé de 100% à moins de 20%. Dès l'instant où je suis passé à la version 12.04 de Ubuntu, je n'ai eu que des problèmes : ALSA semble ne plus répondre comme avant, A tel point que seule la version à 100% d'usage CPU fonctionne correctement. J'ai cherché tant bien que mal un solution, sans l'avoir trouvé jusqu'alors. Samuel, es-tu d'accord pour intégrer l'équipe de Teo sur SourceForge ? |
Auteur: | Samuel Devulder [ 07 Juil 2012, 10:31 ] |
Sujet du message: | |
Prehisto a écrit: Je me suis rendu compte que l'appel aux systèmes traitant le son provoquaient un usage CPU proche de 100%. Je me suis donc appliqué (du moins pour Linux) à ne générer le son que lorsque cela était requis. Ça a nécessité de créer des filtres passe-bas et passe-haut rudimentaires, qui ont très bien fonctionné avec la version 10.04 de Ubuntu. L'avantage certain est que l'usage CPU est passé de 100% à moins de 20%. Donc le filtre logiciel réduit l'usage CPU. C'est surprenant. Sais tu si le code ci-dessus fait du bruit sur un vrai TO ou si comme je le suppose il est (relativement) silencieux? En effet je ne sais pas si ma théorie du filtrage correspond à la réalité, ni même si le bit b3 de $E7C1 altère bien le buzzer. Si ca se trouve sur un TO8, comme indiqué dans les docs, la pinoche correspondante n'est vraiment pas utilisée. J'ai décortiqué la routine "qui fait du bruit" en $F214. Elle ne passe pas par le buzzer, mais par $E7CD. Donc il semblerait que même le moniteur évite le buzzer pour faire du son. J'ai testé le programme basic sous MESS. Sur un TO7 il fait du bruit. Sur un TO8 il est silencieux. Il y a un truc là dessous. Si ca se trouve TEO a parfaitement raison de ne pas émuler ce bit 3 en $E7C1. Que dit une vraie machine, buzz ou pas Buzz? Citation: Dès l'instant où je suis passé à la version 12.04 de Ubuntu, je n'ai eu que des problèmes : ALSA semble ne plus répondre comme avant, A tel point que seule la version à 100% d'usage CPU fonctionne correctement. J'ai cherché tant bien que mal un solution, sans l'avoir trouvé jusqu'alors. Donc as tu retiré le filtre? Pour info, j'ai fait l'analyse spectrale du même bout de code sous DCMOTO. Le spectre est totalement différent de celui de téo:
* Le pic le plus fort est à 6khz. Ce que j'en conclue, c'est que malgré le filtre de DCMOTO, l’échantillonnage envoie les 38khz maxi vers une fréquence très basse (6khz) parfaitement audible, ce qui doit discriminer entre un émulateur et une vraie machine. Rah je rage ne ne pouvoir échantillonner un vrai thomson pour regarder son spectre pour savoir si on a droit à ces fréquences parasites ou pas aussi en vrai. Enfin il faut pondérer ce critère de fidélité. Il ne se produit que si on joue du son à plus de la moitié de la fréquence d'échantillonnage de l'émul. Il faut vraiment le chercher pour le trouver ;-) Citation: Samuel, es-tu d'accord pour intégrer l'équipe de Teo sur SourceForge ?
Pourquoi pas, mais j'avoue ne pas trop savoir quoi faire, n'ayant pas de TO8 pour comparer. [ADDENDUM]Sur dcmoto_20120301 le son d'intro de SPACE-PROJECT est complètement foireux. Ca ressemble à du bruit (bug dans l'emul?). J'en ai profité pour tracer le spectre qui devient bien plus continu (vive le bruit!). On voit bien la fréquence de coupure à 10-12khz assez pentue. Par contre je n'arrive pas à comprendre d'où vient la pente à -3db/octave qui débute à 1khz. C'est peut être le bruit qui n'est pas complètement blanc (il est vrai que c’était de la musique à l'origine). |
Page 1 sur 4 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |