π
<-
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...

Unread postby Lionel Debroux » 13 Feb 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby Lionel Debroux » 15 Feb 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.
Attachments
tichess.png
Le célèbre TI-Chess dans l'émulateur JS
tichess.png (3.23 KiB) Viewed 3618 times
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby Lionel Debroux » 16 Feb 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:
Attachments
delsgolf2.png
Le récent FPS Delsgolf, POTY 2013 ticalc.org TI-68k
delsgolf2.png (3.28 KiB) Viewed 3578 times
delsgolf.png
Une autre image, plus tôt dans le jeu
delsgolf.png (3.07 KiB) Viewed 3578 times
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby Lionel Debroux » 17 Feb 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.
Attachments
venus2.png
Le space shooter Venus
venus2.png (1.06 KiB) Viewed 3547 times
xracer.png
demo xracer
xracer.png (3.65 KiB) Viewed 3547 times
slimeball.png
Slimeball
slimeball.png (672 Bytes) Viewed 3547 times
icehockey2.png
Ice Hockey 68k - dans le jeu
icehockey2.png (1.48 KiB) Viewed 3547 times
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 1.9%
 
Posts: 1014
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
Class: Fac de maths

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

Unread postby 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.3%
 
Posts: 6395
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

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

Unread postby Adriweb » 23 Apr 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 ?)
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 51.7%
 
Posts: 12655
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

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

Unread postby Acksop » 27 May 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: Select all
<!-- 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>
Attachments
index.png
le home SCREEN de KING
index.png (1.81 KiB) Viewed 2811 times
Last edited by Acksop on 26 Jun 2015, 00:32, edited 1 time in total.
User avatar
Acksop
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 0%
 
Posts: 10
Joined: 07 Apr 2015, 12:13
Location: Besançon
Gender: Male
Calculator(s):
Class: Hors Cursus
GitHub: Acksop

Next

Return to News TI-68k (TI-89, TI-92, TI-Voyage 200)

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
468 utilisateurs:
>424 invités
>38 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)