MPM : Mod add-ins Math+
Posté le 02/12/2024 12:36
Comme annoncé pour le
Puzzle de l'Avent, un mod Math+ non-officiel est en cours de développement pour permettre d'écrire des add-ins sur la Math+.
Le mod n'est pas encore public du fait qu'il n'y a pas encore les sécurités nécessaires pour bien empêcher qu'on en abuse. Mais les questions techniques sont partiellement résolues et on commence à avoir une vue raisonnable de ce qu'on va pouvoir, ou pas, faire sur la Math+.
La préoccupation principale est
si les .g3a existants vont marcher tels quels, ou
compatibilité binaire. Ce serait le pied, mais c'est pas encore clair si on peut parce que la table des syscalls n'existe plus.
Par ce topic je souhaiterais savoir ce que la communauté voudrait voir dans un tel mod et discuter de la faisabilité technique. Y a-t-il des choses qui posaient problèmes sur la 90 que vous voudriez améliorer ? Des soucis attendus avec la Math+ que vous voulez voir adressés ? J'ai déjà quelques idées en tête, mais je vous laisse vous exprimer.
—
Liste de préoccupations :
- Compatibilité binaire : Pas encore clair
Si on peut l'avoir, c'est super. Sinon, y'a un casse-tête à attendre pour traquer quels add-ins sont compatibles. L'absence de table de syscalls est le principal souci ici, ce qui peut peut-être se contourner avec un coup d'UBC pour intercepter les appels.
- Compatibilité de la disposition clavier : Pire cas, en recompilant
- Syscalls + GetKey() : les codes sont adaptés, certaines touches disparaissent, d'autres sont nouvelles.
- gint sans recompiler : j'ai un trick en tête mais il vaut mieux imaginer que ça va donner des mauvais résultats.
- gint en recompilant : la compatibilité sera assurée.
- Reste du matériel : Quasiment garanti identique
Il faudrait qu'un truc très gros m'ait échappé.
- RAM étendue : Probablement OK
Il y a de la mémoire après les 2 premiers Mo, pas sûr cependant de si l'utiliser interférera avec l'opération normale de l'OS.
- Récupérer 16 Mo de mémoire de stockage : Pas clair
Il faut que ça marche en pratique et c'est dur d'écarter tous risques de brick. Et je sais pas comment faire techniquement parlant.
Citer : Posté le 13/01/2025 17:37 | #
Du coup Lephe tu as qq infos sur ce qui sera disponible pour la communauté ? On peut s'attendre à pouvoir faire quoi à court/moyen terme avec MPM ?
Citer : Posté le 13/01/2025 22:43 | #
Seront publiques les sources du fameux mpm.bin, à savoir tout ce qui est utile fonctionnellement : le code du menu d'add-ins, le listing des g3a, le chargement et tous les mécanismes d'émulation / compatibilité associés ; le mécanisme pour transférer des fichiers rebrancher tout le temps le câble, la compression etc.
Ce programme pourra être modifié/remplacé individuellement si ça vous amuse, mais le but est qu'il y ait une version "officielle" parce que si tous les utilisateurs n'ont pas la même chose ce sera vite un bordel fou, donc l'approche visée est de fusionner toutes les fonctions dans une seule version autant que possible.
Sera privé l'installeur qui d'une façon ou d'une autre se débrouille pour qu'appuyer sur TOOLS dans le menu principal lance mpm.bin.
Les collaborateurs qui ont lancé le projet sont plus côté installeur (... c'est le reverse-engineering qui est fun), les saletés de compatibilité sont pour bibi. Pour ça que ça avance pas trop vite.
À court terme, on peut s'attendre à pouvoir coder sur la Math+ en écrivant des nouveaux programmes : le support gint est prêt, y'a quelques bugs mais les bases sont là. On pourra lancer des add-ins gint non recompilés mais ce sera pas super agréable (clavier pas aligné + quelques crashs parce que les syscalls sont pas encore émulés). À moyen terme, on peut espérer que l'émulation de syscalls marche et nous permette de lancer une majorité d'add-ins existants, laissant le clavier comme principale difficulté. À long terme, j'ai un vague espoir qu'on puisse patcher le clavier aussi, mais là je spécule vraiment.
Une bêta devrait arriver ce mois-ici, c'est pas entièrement mais principalement dépendant de moi.
Citer : Posté le 14/01/2025 17:45 | #
J'ai quand même une inquiétude sur le temps de décompression. Sur mon PC, il faut environ 0.1s pour décompresser le binaire de 3.8Mo, je crains que ça prenne pas loin d'une minute sur la Casio...
Citer : Posté le 14/01/2025 18:05 | #
Je suis pas inquiet pour la décompression.
La compression est lente, mais la décompression est rapide (surtout qu'on va décompresser en RAM).
cf mon becnhmark de la Zlib : https://www.planet-casio.com/Fr/forums/topic17066-1-zlib-pour-casio-fxcg-developpement-et-benchmark.html
on voit que décompresser un truc de 500ko en RAM prends juste 300ms.
Ce qui sera lent sera de lire les data à décompresser dans la flash
Citer : Posté le 14/01/2025 18:47 | #
La lecture depuis la mémoire de stockage est rapide. Quand MPM ouvre le menu il doit lire genre 28 ko par add-in pour les icônes et même avec 7 add-ins que j'ai là tout de suite c'est perçu comme instantané, donc genre 200 ko en pas plus de 200 ms, probablement moins.
Donc ouais Parisse faudra tester la vitesse mais clairement ce sera plus proche de la seconde que de la minute.
Citer : Posté le 14/01/2025 18:59 | #
Voilà qui est rassurant, merci! (Et du coup, ce sera peut-être aussi rapide de lire moins de donnée compressées en flash et les décompresser que de lire directement du non compressé en flash).
Citer : Posté le 14/01/2025 23:35 | #
oui, et surtout tout ce qu'on pourra gagner en place sera bon a prendre car on a juste 4,5Mo utilisateur, loin des 16Mo de la G90+E. chaque kb gagné va compter à la fin.
On avait vu aussi que la compression des g3a donnait des bons taux, ce qui permttrait a priori de gagner pas mal. On pourrait peut être aussi gagner sur le header car 23ko c'est quand meme cher payer. Je ne sais pas si le MPM.bin utilise le meme format de header que le g3a.
Citer : Posté le 15/01/2025 08:40 | #
Les 2 icônes occupent 0x5600 octets sur les 0x7000 du header, il n'y aurait pas grand chose à gagner, surtout avec la compatibilité binaire visée, sauf si le mpm gère lui-même entièrement la compression, i.e. si les fichiers g3a dans la flash user sont des g3a.gz en fait.
Concernant la taille flash user, je me demande si le retard de 6 mois sur la sortie des fxcg100 ne vient pas d'une indisponibilité matérielle, par exemple ça pourrait être un composant flash de 16Mo qui remplacerait les 32Mo actuels.