Plusieurs choses sont au menu, que vous allez adorer!
Tout d'abord, correction définitive du bug qui faisait que l'affichage du jeu pouvait aléatoirement être décalé de 16 pixels vers la droite !
Cela se produisait lorsque nDoom s'allouait un buffer écran 8-bits, ce qui était nécessaire sur TI-Nspire ClickPad/TouchPad puisque le buffer écran était trop petit avec seulement 4-bits, mais totalement inutile sur CX ou le buffer écran est plus que suffisant avec 16-bits.
Or, le contrôleur écran de la TI-Nspire CX est un ARM PrimeCell PL111 différent de l'ARM PrimeCell PL110 équipant les autres TI-Nspire, et non documenté sur Hackspire.
Il faut donc aller creuser profondément dans les spécifications officielles où l'on se rend compte finalement que les buffers écran des TI-Nspire CX doivent être alignés sur 64-bits, c'est-à-dire placés à des adresses mémoire multiples de 8, ce que la fonction d'allocation mémoire 'malloc()' du C ne garantit pas et ne contrôle même pas.
Bref, cette allocation mémoire inutile sur TI-Nspire CX a été retirée, corrigeant le bug, vous offrant désormais toujours un affichage complet de 320 pixels de large et accélérant un petit peu le démarrage!
Ensuite, dans la dernière mise à jour il avait été ajouté la possibilité de lancer directement les fichiers WAD Doom/Doom2 et compatibles depuis l'explorateur de dossiers Nspire, à condition de transférer le fichier 'ndless.cfg.tns'. Mais nombre de nouveaux utilisateurs oublient le transfert de ce fichier lors de leur installation de Ndless. Désormais, nDoom se charge tout seul de configurer cette association!
nDoom vérifie si le fichier 'ndless.cfg.tns' existe et sinon le crée. Puis il vérifie si un programme est déjà associé pour l'ouverture des fichiers WAD et sinon s'ajoute comme programme associé à cette extension. Code repris de Theme Editor par Levak.
Désormais, il vous suffit de lancer nDoom juste une fois, et après vous pourrez lancer directement vos fichiers WAD depuis l'explorateur de dossiers Nspire!
Enfin, dernière nouveauté et non la moindre, la gestion des fondus d'écran et écrans de fin sur TI-Nspire CX!
Les fondus d'écran utilisent le 2ème timer des TI-Nspire, qui renvoie une indication sur le temps écoulé et permet de synchroniser l'animation. Sur TI-Nspire CX, ce timer est un SP804 complètement différent de celui des TI-Nspire ClickPad/TouchPad, et encore une fois non documenté sur HackSpire.
J'avais donc ignoré tout ce code spécifique lors du premier portage. En conséquence sur TI-Nspire CX, les fondus de changement d'écran étaient quasi-instantanés (on pouvait même dire sautés), tout comme l'animation du 'Marines' qui sort son arme en début de niveau. Pour la même raison, les écrans de fin d'épisode (pour les jeux au format Doom) ou de fin de jeu (pour les jeux au format Doom2) avec le texte qui apparaît progressivement comme tapé à la machine se voyaient bloqués.
Il m'a donc encore une fois aller creuser bien profond dans les spécifications officielles, et le 2ème timer des TI-Nspire CX est enfin géré.
Cela n'a pas été évident, car contrairement à l'ancien timer, celui-ci est uniquement capable de compter à rebours, ce qui n'est pas génial pour mesurer le temps écoulé, et sa vitesse est bien moins configurable.
Désormais, bénéficie donc de toutes les animations originales du jeu Doom, pour un portage de plus en plus fidèle comme tu peux voir ci-dessous!
Liens:
nDoom 2.2
Niveaux Doom Nspire
Ndless 3.1