π
<-
Chat plein-écran
[^]

Mise à jour de l'émulateur TI-68k en ligne...

:32ti89: :32ti892: :32ti89t: :32ti89tn: :32ti92: :32tiv200:

Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 13 Fév 2014, 22:24

Je me suis récemment remis à travailler sur l'émulateur TI-68k utilisé sur TI-Planet. J'ai corrigé des bugs, amélioré la fiabilité, ajouté des features, et d'une manière générale, réduit le nombre d'éléments importants restant dans la TODO list avant qu'il soit raisonnable de publier l'émulateur (qui n'a jamais été fortement lié au site TI-Planet, et les raisons en sont claires: ça embête les tiers) de façon officielle :)

Parmi les principales nouveautés, plus ou moins visibles:
  • une intégration aux sites tiers encore facilitée, les sites peuvent maintenant optionnellement forcer le script à utiliser des éléments d'IDs fixés par les sites;
  • ajout de l'envoi de keypresses à partir de la console JS, par exemple link.sendkeys(['exec("4e444e750000")', 0xD]);
  • réorganisation pour séparer le code de link du coeur de l'émulateur;
  • grosse amélioration de fidélité par l'implémentation du vrai mécanisme de gestion des interruptions (qui n'avait jamais été implémenté). Entre autres, ça permet à l'extinction de la calculatrice, et au rallumage, de fonctionner;
  • changements (principalement ajouts) dans les bindings de touches: l'utilisation de l'émulateur au clavier est maintenant plus complète (notamment les touches A-S et U-W pour 89/89T) et plus proche de VTI et TIEmu, donc beaucoup plus agréable;
  • bugfixes épars, notamment dans les zones et codes de touches.

Profitez donc de cette nouvelle version, en attendant d'autres changements vers une release officielle :)

Officieusement, le code de l'émulateur est, depuis longtemps (comme l'indiquent toutes les pages d'archive TI-68k), à http://tiplanet.org/pad_ti68k_emu/v12_readable.js .
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 15 Fév 2014, 21:20

Nouvelle mise à jour, avec un changement finalement assez simple, annulant un truc que j'avais fait il y a longtemps pour optimiser. Le résultat est le suivant:
+ amélioration supplémentaire de la reconnaissance des clics et pressions de touches, je pense que je vais pouvoir enlever cette entrée de la liste des bugs;
+ réparation de l'émulation des niveaux de gris, alors que le clignotement était horrible depuis je ne sais pas exactement quand (des mois ??);
+ modification de la vitesse des timers pour l'approcher de la vitesse réelle, ils sont même un peu rapides maintenant;
- consommation CPU de l'émulateur nettement augmentée (enfin... c'est surtout qu'elle était anormalement basse auparavant !), même s'il est loin de consommer un coeur sur cette machine de 2011;
- la touche ON ne fonctionne plus pendant que la machine est allumée. L'interruption est pourtant bien déclenchée. Ce deuxième point n'est pas très gênant tant qu'ON rallume la machine après extinction automatique et pendant les calculs mathématiques.
Fichiers joints
tichess.png
Le célèbre TI-Chess dans l'émulateur JS
tichess.png (3.23 Kio) Vu 7493 fois
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 16 Fév 2014, 22:12

Nouvelle mise à jour ce soir, avec plusieurs améliorations, comme toujours :)
Entre autres:
* retour utilisateur si aucune ROM / aucun OS upgrade n'est chargé, par défaut un alert() JS, mais modifiable à volonté en appelant une fonction de l'objet;
* correction d'un bug dans l'émulation de la mémoire Flash, hérité de TIEmu, et très vieux (a priori, mai 2005), donc très rare;
* ajout de la possibilité (en modifiant le script) de faire croire à une 89T qu'elle a 8 MB de Flash. AMS le gère, et TIEmu l'a du reste également implémenté un temps. C'est facile à implémenter, mais nous sommes bien d'accord qu'en pratique, ça ne sert à rien, puisqu'il n'y a aucune telle machine réelle connue;
* correction de l'implémentation de l'instruction nbcd quand l'argument est invalide.

Voici deux nouveaux screenshots:
Fichiers joints
delsgolf2.png
Le récent FPS Delsgolf, POTY 2013 ticalc.org TI-68k
delsgolf2.png (3.28 Kio) Vu 7453 fois
delsgolf.png
Une autre image, plus tôt dans le jeu
delsgolf.png (3.07 Kio) Vu 7453 fois
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 17 Fév 2014, 22:03

Nouvelle version, avec principalement un nouveau bugfix sur l'émulation du réveil quand une interruption survient, et l'ajout du mapping des touches 0-9 du pavé numérique.

Le code est de moins en moins loin d'une release officielle.
Fichiers joints
venus2.png
Le space shooter Venus
venus2.png (1.06 Kio) Vu 7422 fois
xracer.png
demo xracer
xracer.png (3.65 Kio) Vu 7422 fois
slimeball.png
Slimeball
slimeball.png (672 Octets) Vu 7422 fois
icehockey2.png
Ice Hockey 68k - dans le jeu
icehockey2.png (1.48 Kio) Vu 7422 fois
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 02 Mar 2014, 22:16

Même si cet émulateur a très peu d'utilisateurs (sinon j'aurais plus de bug reports...), je continue quand même à travailler un peu dessus.

Ces deux dernières semaines, il y a eu divers changements internes utiles mais sans effet visible (implémentation du coût de la plupart des instructions, suppression du try/catch, création de quelques fonctions pour factoriser du code ou le rendre appelable de plusieurs endroits), et aussi deux changements visibles de l'utilisateur :)
* deux boutons pour changer la vitesse de l'émulateur. Après déblocage, si on dispose d'un ordinateur assez puissant (ma machine de 2011 suffit), il me semble bien que l'émulation est plus rapide que celle d'une machine réelle;
* ajout d'un bouton pour recevoir une (et une seule) variable de manière non silencieuse, c'est à dire qu'il faut cliquer sur ce bouton, puis faire envoyer une et une seule variable à la calculatrice (par exemple VAR-Link - F3 - 1 Send), comme pour un envoi de calculatrice à calculatrice.
De cette manière, il n'est pas nécessaire de connaître le type numérique interne de la variable à recevoir depuis l'émulateur, et il est moins urgent d'implémenter l'opération dirlist (et surtout, de faire une interface utilisateur pour ça...).

Pour pouvoir faire une release officielle, j'ai besoin d'aide sur l'interface utilisateur, en particulier:
* la possibilité de sélectionner plusieurs variables à la fois avant envoi à l'émulateur;
* faire en sorte que F10 déclenche le même dialog permettant de browser le système de fichiers de l'ordinateur que celui qui est sur la page HTML;
* une interface plus utilisable pour la réception des variables (là, il faut cliquer sur deux boutons, puis un lien qui apparaît grâce au deuxième bouton...);
* à plus long terme, l'interface utilisateur pour dirlist, qui prendrait en entrée un tableau d'objets, et permettrait de cocher une seule variable (au tout début; plus tard, il faudrait gérer les réceptions multiples dans le backend) à recevoir silencieusement;
* skins grande taille et keymaps pour 89, V200, 89T;
* une plus jolie image pour le skin 89.

Merci d'avance :)

L'interface utilisateur standalone est http://tiplanet.org/pad_ti68k_emu/v12.html , le code JS (plus de 8000 lignes dans 3 objets et un seul fichier) est http://tiplanet.org/pad_ti68k_emu/v12_readable.js .
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude nikitouzz » 02 Mar 2014, 22:26

Merci lionel !!!!!!! :)
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 07 Mar 2014, 22:07

Un élément de moins dans la TODO list avant une release officielle: le gros de la gestion de l'opération Directory Listing (dirlist), comme dans TILP ou TI-Connect. Même si je me rends compte en rédigeant ce post que j'ai oublié d'accoler le nom du répertoire au nom de la variable, c'est bête mais pas difficile à faire.

Une nouvelle fois, ce que j'ai implémenté n'est pas visible, puisqu'il n'y a pas d'interface utilisateur. Il faut aller dans la console JS pour le déclencher: link.dirlist(). Ensuite, un examen du contenu de link.link_dirlist_vars() et link.link_dirlist_apps() permet de savoir quels arguments passer à link.recvfile(). Je sais que ce n'est pas utilisable, mais ça n'ira pas mieux sans aide extérieure.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Lionel Debroux » 09 Mar 2014, 21:14

Hier et aujourd'hui, j'ai:
* fait une grosse réorganisation et un gros nettoyage de la todo/wish list - encore un changement invisible ^^
* passé du temps sur un changement qui a pour but d'aider à l'implémentation d'un changement visible, à savoir la sauvegarde d'état (ça ne devrait pas changer grand chose pour la restauration) - et si j'en parle, c'est parce que ce changement a eu un effet que je n'attendais pas, mais qui s'explique bien: une accélération de l'émulateur, c'est à dire une moindre consommation CPU sur l'hôte pour faire la même chose :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Adriweb » 23 Avr 2014, 18:06

J'ai "forké" le dossier et ai quelque peu travaillé sur le design de la page de l'émulateur standalone :D



Je laisse Lionel intégrer les changements à sa version :)

Il reste quelques détails à régler pour le positionnement/sizing des différents skins, mais c'est déjà ça...

(bug report (connu ?) : en mode v200, la pause ne marche pas ?)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Mise à jour de l'émulateur TI-68k en ligne...

Message non lude Acksop » 27 Mai 2015, 18:08

Je tiens a féliciter cet update ainsi que le travail de Lionel Debroux sur cet émulateur, je l'ai découvert il y a peu sur la page originale de patrick davidson et après quelques recherches infructueuse je suis tomber sur TI-planet qui si mes anciens souvenirs de terminale sont exacts, était bien le site celui qui a pu ouvrir en moi le programmeur que je suis maintenant.

Après quelques sessions de survol du code de l'émulateur et quelques recherches on the Web j'ai trouver un facon de charger de multiples fichiers a la volée depuis un simple input html ( ya quand même près de 20h de tests )

JE souhaiterais pouvoir charger mes fichiers depuis le code sources et envoyer un jeu sans que l'on ne touche a rien, car j'ai aussi créer quelques programmes durant mes courtes années lycées...cependant je ne suis pas sur que ce soit possible... Une idée ?

@L.DEBROUX: comment faites vous pour comprendre les Uint8Array()

Mais laissons place au script
Code: Tout sélectionner
<!-- A ajouter ou remplacer dans le fichier HTML-->
<input type="file" id="filesinput" multiple />
<!-- Javascript de bas de page permettant le chargement de multiples fichiers -->
<script type="text/javascript">
  function readMultipleFiles(evt) {
    //Retrieve all the files from the FileList object
    var files = evt.target.files;
          
    if (files) {
        for (var i=0, f; f=files[i]; i++) {
           var r = new FileReader();
            r.onload = (function(f) {
                return function(e) {
                    var contents = e.target.result;
                    alert( "Got the file.n"
                          +"name: " + f.name + "n"
                          +"type: " + f.type + "n"
                          +"size: " + f.size + " bytesn"
                          + "starts with: " + contents.substr(8, f)
                    );
                };
            })(f);

            emu.loadrom(f);
        }   
    } else {
         alert("Failed to load files");
    }
  }
 
  if(document.getElementById){
  document.getElementById('filesinput').addEventListener('change', readMultipleFiles, false);
  }else{
   alert('votre navigateur/butineur internet n'est pas à jour >>> téléchargez donc SeaMonkey');
  }
</script>
Fichiers joints
index.png
le home SCREEN de KING
index.png (1.81 Kio) Vu 6686 fois
Dernière édition par Acksop le 26 Juin 2015, 00:32, édité 1 fois.
Avatar de l’utilisateur
Acksop
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 28%
 
Messages: 10
Inscription: 07 Avr 2015, 12:13
Localisation: Besançon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Hors Cursus
GitHub: Acksop

Suivante

Retourner vers News TI-68k (TI-89, TI-92, TI-Voyage 200)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
949 utilisateurs:
>934 invités
>10 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)