Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vie communautaire


Index du Forum » Vie communautaire » MPM : Mod add-ins Math+
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

MPM : Mod add-ins Math+

Posté le 02/12/2024 12:36

Version actuelle : bêta

Instruction d'utilisation

  1. Brancher la calculatrice en mode mise à jour de l'OS. Si vous utilisez une VM, attachez la calto à la VM.
  2. Lancer mpm-installer-1.0bw.exe depuis cmd. Un échange se fait.
  3. Quand l'installeur affiche "Communicating more..." la calto se reconnecte. (Si vous utilisez une VM, attachez la calto à la VM. J'utilise une fonction naïve pour la reconnexion donc vous avez genre 10 secondes.) Attendez une seconde et appuyez sur EXE pour continuer.
  4. Ensuite suivez les instructions sur la calto, en gros TOOLS puis SETTINGS et RESTART.
  5. Transférez mpm.bin dans la mémoire de stockage.
  6. Dans le menu principal, appuyez sur TOOLS pour accéder au menu des add-ins (inactif en mode examen).

État actuel du support (2025-02-19)

  • Les add-ins compilés avec la branche dev de gint doivent marcher normalement.
  • Les add-ins gint non recompilés marcheront mais le clavier sera en désordre et tout retour au menu / accès système de fichiers / autre syscall plantera.
  • Les add-ins PrizmSDK ne marcheront pas parce qu'ils utilisent des syscalls partout (pas encore émulés)
  • Tous les add-ins modifiés pour remplacer les syscalls par des adresses explicites si les syscalls ont le même code marcheront (... tant que y'a pas en plus des fonctionnalités spécifiques aux modèles dans l'appli).

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.

Post original
Cliquez pour enrouler
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.



Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante
Slyvtt Hors ligne Maître du Puzzle Points: 2462 Défis: 17 Message

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 ?
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

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.
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

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...
Slyvtt Hors ligne Maître du Puzzle Points: 2462 Défis: 17 Message

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
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

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.
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

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).
Slyvtt Hors ligne Maître du Puzzle Points: 2462 Défis: 17 Message

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.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

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.
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 28/01/2025 17:40 | #


La fin du mois approche, du coup pourrait-on avoir un petit update sur la date de sortie du MPM? Merci!
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

Citer : Posté le 28/01/2025 17:50 | #


Oui. Comme la question de la taille du système de fichiers a été posée lourdement j'ai essayé de la jouer fine et de déterminer si ce serait pas possible de lui redonner la taille originale avec la bêta du mod. Après 20-30 heures à chercher... je crois que c'est possible et j'ai un plan. Mais du coup ça a pris une semaine et j'ai décidé hier de le repousser à plus tard pour vous donner de quoi tester les add-ins à la place o(x_x)o.

Actuellement il existe un installeur pour Linux, il me reste à le peaufiner et à le porter pour Windows.

En termes de stabilité j'ai confiance que l'installeur ne risque pas de bricker des machines, principalement parce que j'ai fait n'importe quoi avec les miennes 3 fois et j'ai toujours pu les sauver. Mais j'attendrai qu'on ait des retours/tests entre le partage du fichier et les grosses news, au cas où on découvre des problèmes potentiels.

Voilà je te mens pas c'est un peu le rush mais plutôt pour de bonnes raisons (espoir que le système de fichiers marche).
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 28/01/2025 18:23 | #


Si j'ai bien compris le bootloader est le même que celui de la 90, donc sauf si on écrit sur le 1er secteur de la flash, il est toujours possible de reflasher la v2 à partir de l'écran OS Error.
Du coup, on pourrait espérer tester l'installer linux d'ici la fin de la semaine?
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

Citer : Posté le 28/01/2025 23:20 | #


Je ne pense pas que l'install Linux sera publique, j'ai mentionné que je sécurise un minimum l'exécutable, et j'ai pas trop envie de le faire deux fois...

Dans tous les cas ça ne dépend que de moi dans l'immédiat, promis je fais de mon mieux. Je vous cache pas que les nuits courtes et ma thèse qui approche de sa fin se font sentir. C'est plutôt une histoire de jours, mais peut-être pas 3. @_@
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 29/01/2025 08:29 | #


Je comprends, c'est juste que je suis impatient de pouvoir rendre utile la math+ que je viens d'acheter, pour l'instant elle sert de presse-papier :-)
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

Citer : Posté le 31/01/2025 12:49 | #


Dans tout ça on avait oublié de porter le mod sur l'OS 2... ce qui est maintenant fait.

J'ai publié les sources de mpm.bin, que vous ne pouvez pas encore utiliser pour l'instant mais je fais dans l'ordre où c'est prêt : https://git.planet-casio.com/PlaneteCasio/mpm
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2462 Défis: 17 Message

Citer : Posté le 31/01/2025 14:15 | #


Hello, je comprends qu'à chaque version de l'OS faudra a minima updater le fichier Yaml avec les bonnes adresse, c'est ça ?
En espérant que ça suffise.
J'avoue que je suis plus intéressé par la version "Nux" que OS2, tu vas me faire réinstaller un "Win" juste pour installer le mod
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

Citer : Posté le 31/01/2025 14:22 | #


Voilà en gros c'est ça, faudra juste trouver les adresses des ex-syscalls. Mais pas d'inquiétude c'est quasi-automatique de toute façon.
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 31/01/2025 15:17 | #


Je viens d'essayer de compiler, mais j'ai une erreur de link à la fin, il manque une référence vers _kfree, une idée? Merci!
fxsdk build-cg
[ 11%] Linking C executable mpm.bin
/home/parisse/.local/share/fxsdk/sysroot/lib/gcc/sh3eb-elf/14.1.0/../../../../sh3eb-elf/bin/ld : /home/parisse/.local/share/fxsdk/sysroot/lib/gcc/sh3eb-elf/14.1.0/../../../../sh3eb-elf/bin/ld: Erreur DWARF: réf DIE d'instance abstraite invalide
/tmp/ccFlWm6p.ltrans0.ltrans.o : dans la fonction « _fflush » :
<artificial>:(.text+0x3d8) : référence indéfinie vers « _kfree »
collect2: erreur: ld a retourné le statut de sortie 1
CMakeFiles/loader.dir/build.make:200 : la recette pour la cible « mpm.bin » a échouée
make[2]: *** [mpm.bin] Erreur 1
CMakeFiles/Makefile2:86 : la recette pour la cible « CMakeFiles/loader.dir/all » a échouée
make[1]: *** [CMakeFiles/loader.dir/all] Erreur 2
Makefile:90 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
Lephenixnoir En ligne Administrateur Points: 24872 Défis: 174 Message

Citer : Posté le 31/01/2025 15:22 | #


Ta fxlibc est sans doute pas à jour ou pas sur dev. J'ai joué avec l'interface libc/noyau y'a pas si longtemps, genre là https://git.planet-casio.com/Vhex-Kernel-Core/fxlibc/commit/8cedf411c4c237a65826724f7ab37f2699ffb229
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 31/01/2025 15:35 | #


Je ne comprends pas ce qu'il faut faire pour mettre à jour ni ce que signifie être sur dev. J'ai essayé
giteapc install Lephenixnoir/fxsdk
mais ça ne marche pas mieux, et ensuite
giteapc install -u
mais là j'ai même une erreur bizarre

make[1]: sh-elf-gcc : commande introuvable
Makefile:70 : la recette pour la cible « libopenlibm.so.3.0 » a échouée
make[1]: *** [libopenlibm.so.3.0] Erreur 127
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm »
/home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm/giteapc.make:16 : la recette pour la cible « build » a échouée
make: *** [build] Erreur 2
error: error 2 in command: make -f /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm/giteapc.make build

alors que sh-elf-gcc s'exécute sans problème en ligne de commande.
Parisse Hors ligne Membre Points: 597 Défis: 0 Message

Citer : Posté le 31/01/2025 15:46 | #


Apparemment, giteapc ne reconnaissait pas mon PATH, en changeant ~/.local/bin en /home/parisse/.local/bin dans la commande export, la commande giteapc install -u s'exécute normalement, mais j'ai toujours la même erreur si je veux compiler mpm.bin, probablement parce que je n'ai pas compris ce qu'il fallait faire pour
"Ta fxlibc est pas sur dev"
Slyvtt Hors ligne Maître du Puzzle Points: 2462 Défis: 17 Message

Citer : Posté le 31/01/2025 15:48 | #


il faut preciser la branche dev du depot :
giteapc install fxlibc@dev
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 149 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd