Page 1 of 2

Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev. W+)

Unread postPosted: 13 Mar 2016, 01:21
by critor
Le 19 février dernier sortait Ndless 4.2, la toute nouvelle version compatible avec le dernier OS 4.2 du 16 février.

Ndless est le "jailbreak" de la TI-Nspire, qui permet de faire fonctionner des programmes bien plus puissants et capables qu'avec les outils approuvés par TI (Basic, Lua), en tirant profit des langages natifs C/C++/ASM.

Hélas, plusieurs d'entre vous ont reporté que Ndless ne s'installait pas sur la nouvelle génération TI-Nspire CX CR4 dont les premiers représentants ont commencé à être assemblés en novembre 2015 avec la révision matérielle W. :'(
En effet, la faille exploitée par Ndless 4.2 dépend du buffer écran comme on peut voir ci-contre à l'étrange ligne horizontale de pixels en milieu d'écran.
Et il se trouve que les TI-Nspire CX CR4 utilise une nouvelle géométrie de buffer écran. Ce dernier n'est plus en 320x240 mais est tourné à 90° ce qui donne du 240x320, et de plus inversé comme dans un miroir.
Dans un article précédent nous suggérions donc le passage à une ligne verticale pour réussir l'installation.

L'équipe Ndless nous offre donc ce soir une mise à jour de l'installateur compatible avec les TI-Nspire CX CR4 ! :bj:
Elle a même fait preuve d'astuce, puis que les deux lignes de pixels horizontale et verticale ont été mises dans le même fichier, ce qui évite donc d'avoir à choisir un fichier d'installation différent selon la révision matérielle de sa TI-Nspire CX. :bj:

Mais nous ne sommes pas encore sortis de l'auberge et un deuxième problème demeure, car il faut encore que les programmes Ndless déjà sortis soient capables d'afficher correctement sur ce nouvel écran 240x320. :#non#:

Et là encore l'équipe Ndless s'est surpassée puisqu'un mode de compatibilité est intégré.
Lorsque ce dernier détecte sur TI-Nspire CX CR4 le lancement d'un programme Ndless qui n'a pas été mis à jour, il intercepte ses sorties écran afin de les corriger ! :bj:

Notons toutefois que ce mode de compatibilité ne fonctionne pas dans tous les cas, notamment avec les programmes Ndless résidents (c'est-à-dire installant des 'hooks') ce qui est le cas de nSonic2MS ou encore nClock. :(
Mais même pour les autres programmes il est possible, selon la façon dont ces derniers s'occupent de l'affichage, que les choses ne se passent pas bien, notamment pour les jeux nécessitant plusieurs rafraîchissements de l'écran par seconde. :(
Ne disposant pas de TI-Nspire CX CR4 à ce jour, nous sommes dans l'incapacité de chiffrer l'étendue ou la gravité des inconvénients.

Le mieux est que tout auteur de programmes Ndless les mette systématiquement à jour pour gérer le nouvel affichage 240x320.
Si vous tombez sur un programme qui déclenche le mode de compatibilité et de plus ne fonctionne pas correctement, n'hésitez donc pas à en toucher un mot à son auteur.
En l'absence de réponse de l'auteur, n'hésitez pas à signaler le programme en commentaire, pour que de bonnes volontés puissent le remarquer et s'en occuper.




Téléchargement : Ndless 4.2

Tutorial d'installation : disponible ici

Site officiel : http://ndless.me
Code source et SDK Ndless : https://github.com/ndless-nspire/Ndless (tutorial SDK ici)
Download: Ndless 4.2

Install Tutorial: available here

Official website: http://ndless.me
Source code and Ndless SDK: https://github.com/ndless-nspire/Ndless (SDK tutorial here)


Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 09:31
by Wistaro
Bonne nouvelle.

Mais bon, le temps que tout les auteurs - sans compter les inactifs - recompilent leur(s) programme(s) pour assurer une compatibilité, ça risque d'être très long. Et je suppose que le code source n'est généralement pas disponible si jamais des volontaires voulaient s'y coller...

N'y a t-il pas plutôt quelques chose à faire du côté de Ndless? Même si cette méthode risque, comme ça a déjà été dit, de diminuer fortement le frame rate, c'est probablement la seule issue pour beaucoup de programmes...

Dernière proposition, une solution matérielle n'existerait pas? Du genre inverser 2 broches sur la puce, un truc du genre...

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 10:00
by Lionel Debroux
N'y a t-il pas plutôt quelques chose à faire du côté de Ndless?

Ce qui était faisable du côté de Ndless a déjà été fait, c'est le mode de compatibilité sus-mentionné :)
Il permet de faire fonctionner un certain nombre de programmes - mais pas tous.

Les difficultés de mise à jour en cas de gros changement sont exactement une des raisons pour lesquelles le staff de TI-Planet se bat régulièrement contre le closed-source dans la communauté, quitte à faire les gros lourds et se faire des ennemis parmi les faiseurs de closed-source (heureusement de plus en plus rares, mais certains avec un poids très élevé) ou leurs copains. Même si notre position va dans le bon sens pour la communauté, sur les trois principaux forums anglophones, nous ne sommes plus libres de nous exprimer sur ce sujet-là.
Nous publions le code d'un certain nombre de nos projets faits sous la bannière TI-Planet / UPECS. Bientôt, le code source du Project Builder sera publié, comme annoncé depuis le début, même si ça prend plus de temps qu'on voudrait.

Sur TI-68k/AMS, des patchers on-calc de programmes binaires, comme GhostBuster, avaient été réalisés, et permettaient de corriger un certain nombre de problèmes, par détection des séquences de code connues. Ca fonctionnait pas mal, mais avait pour défaut de forcer la décompression des programmes, et ils étaient impossibles à recompresser on-calc, faute de mémoire, PuCrunch étant une compression nettement asymétrique: quasiment zéro mémoire pour la décompression, plus de mémoire que la calculatrice n'en a pour la compression.
Plus d'une décennie plus tard, ce genre d'approches a moins d'intérêt pour deux raisons:
* il y a moins de programmes closed-source;
* comme l'organisation de la toolchain et des librairies a pris un certain temps, faute d'intérêt pour la plate-forme, le nombre de programmes qui contiennent leur propre code d'affichage est élevé. Les portages des demos de TICT que j'ai réalisés pour Clickpad/Touchpad en 2010, dernière mise à jour pour Ndless 2.0, font partie des tels programmes.

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 10:37
by Hayleia
J'avais posé une question sur le chat mais tout le monde était déjà parti apparemment :P

Comment Ndless détecte si le programme doit utiliser la couche de compatibili​té ou pas ?
Parce que si j'édite mon programme avec un if (lcd_type()​==truc) pour écrire dans le bon sens mais que Ndless fait encore son truc derrière, ça sert à rien.

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 11:30
by Ti64CLi++
Juste une petite question : l'écran des Nspire CR4 fait 240*320 pxls. Mais combien fait celui des Nspire Napoca, combien fait-il?

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 11:31
by Hayleia
240x320 pour les CR4 et 320x240 pour les autres.

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 11:37
by Ti64CLi++
Ah oui, d'accord. Merci Hayleia

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 11:50
by Hamza.S
critor wrote:Notons toutefois que ce mode de compatibilité ne fonctionne pas dans tous les cas, notamment avec les programmes Ndless résidents (c'est-à-dire installant des 'hooks') ce qui est le cas de nSonic2MS ou encore nClock. :(

Les lecteurs de fichiers (Mviewer CX et nPDF) fonctionnent-t-ils sans trop de problème?

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 12:17
by Vogtinator
Hayleia wrote:J'avais posé une question sur le chat mais tout le monde était déjà parti apparemment :P

Comment Ndless détecte si le programme doit utiliser la couche de compatibili​té ou pas ?
Parce que si j'édite mon programme avec un if (lcd_type()​==truc) pour écrire dans le bon sens mais que Ndless fait encore son truc derrière, ça sert à rien.


The genzehn tool detects the use of lcd_init and lcd_blit (not lcd_type!) and switches on two flags in the file, whether lcd_blit is used and whether HW-W is supported. Building a program that does not appear to support HW-W will result in a warning.

Re: Mise à jour Ndless 4.2 compatible TI-Nspire CX CR4 (rev.

Unread postPosted: 13 Mar 2016, 17:46
by critor
Ci-attachée, une version de nSonic2MS (2.07) censée être compatible avec toutes les TI-Nspire, dont notamment les dernières TI-Nspire CX CR4.

J'ai pu tester que ça marchait toujours sur les anciennes TI-Nspire et TI-Nspire CX, et que ça marchait apparemment sur la TI-Nspire CX CR4 émulée par Firebird.

Mais n'ayant pas la chance de disposer d'une TI-Nspire CX CR4, j'aurais besoin d'un test de la part de quelqu'un en possédant une avant de mettre à jour.

Cela me confirmera aussi si je peux mettre à jour mes autres programmes partageant le même code d'affichage.
(nsNandMgr, polyDumper, nCleaner et Nover sont normalement prêts)

Merci.

nSonic.tns