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: 25834 Défis: 174 Message

MPM : Mod add-ins Math+

Posté le 02/12/2024 12:36


MPM est un mod communautaire de la Math+ remettant le support des add-ins, développé par Planète Casio.

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.


Fichier joint


Précédente 1, 2, 3 ··· 10 ··· 17, 18, 19, 20
Lephenixnoir En ligne Administrateur Points: 25834 Défis: 174 Message

Citer : Posté le 17/06/2026 09:34 | #


Oui, il faut utiliser le branche dev, juste en ajoutant @dev:

giteapc install fxsdk@dev gint@dev

J'ai pas fait de release depuis des plombes donc tout est encore sur dev, désolé @_@

Mais oui c'est compatible Math+ et c'est même compatible nouvel écran (même si MPM lui-même le supporte pas encore).

Par contre pour Upsilon/Delta faudra repenser à la disposition des touches par rapport à la 90, bien sûr. Pour une fois le nouveau clavier devrait aider !
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 619 Défis: 0 Message

Citer : Posté le 17/06/2026 10:35 | #


La compilation échoue assez vite:
giteapc install fxsdk@dev gint@dev
<giteapc> Fetching Lephenixnoir/fxsdk...
<giteapc> Checking out dev
<giteapc> Fetching Lephenixnoir/gint...
<giteapc> Checking out dev
<giteapc> Fetching Lephenixnoir/sh-elf-gcc...
<giteapc> Fetching Lephenixnoir/sh-elf-binutils...
<giteapc> Fetching Lephenixnoir/OpenLibm...
<giteapc> Fetching Vhex-Kernel-Core/fxlibc...
<giteapc> Will install: Lephenixnoir/fxsdk@dev, Lephenixnoir/sh-elf-binutils, Lephenixnoir/sh-elf-gcc, Lephenixnoir/OpenLibm, Vhex-Kernel-Core/fxlibc, Lephenixnoir/gint@dev
<giteapc> Is that okay (Y/n)?
<giteapc> Lephenixnoir/fxsdk: Checking out dev
<giteapc> Lephenixnoir/fxsdk: Configuring
...
-- Installing: /home/parisse/.local/lib/libfxlink.a
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/fxsdk/build »
<giteapc> Lephenixnoir/fxsdk: Done!
<giteapc> Lephenixnoir/sh-elf-binutils: Configuring
<sh-elf-binutils> binutils 2.42 already installed, skipping rebuild
<giteapc> Lephenixnoir/sh-elf-binutils: Building
<giteapc> Lephenixnoir/sh-elf-binutils: Installing
<giteapc> Lephenixnoir/sh-elf-binutils: Done!
<giteapc> Lephenixnoir/sh-elf-gcc: Configuring
<sh-elf-gcc> libsupc++.a found, libstdc++-v3 is already built
<sh-elf-gcc> GCC 14.1.0 with libstdc++-v3 already there; skipping rebuild
<giteapc> Lephenixnoir/sh-elf-gcc: Building
<giteapc> Lephenixnoir/sh-elf-gcc: Installing
<giteapc> Lephenixnoir/sh-elf-gcc: Done!
<giteapc> Lephenixnoir/OpenLibm: Configuring
<giteapc> Lephenixnoir/OpenLibm: Building
make[1] : on entre dans le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm »
make[1]: Rien à faire pour « default ».
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm »
<giteapc> Lephenixnoir/OpenLibm: Installing
make[1] : on entre dans le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm »
mkdir -p /home/parisse/.local/share/fxsdk/sysroot/sh3eb-elf/lib
cp -RpP -f libopenlibm.a /home/parisse/.local/share/fxsdk/sysroot/sh3eb-elf/lib/
ln -sf libopenlibm.a /home/parisse/.local/share/fxsdk/sysroot/sh3eb-elf/lib/libm.a
mkdir -p /home/parisse/.local/share/fxsdk/sysroot/sh3eb-elf/include
cp -RpP -f \
include/openlibm.h \
include/openlibm_complex.h \
include/openlibm_defs.h \
include/openlibm_fenv.h \
include/openlibm_fenv_sh3eb.h \
include/openlibm_math.h \
/home/parisse/.local/share/fxsdk/sysroot/sh3eb-elf/include
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Lephenixnoir/OpenLibm »
<giteapc> Lephenixnoir/OpenLibm: Done!
<giteapc> Vhex-Kernel-Core/fxlibc: Configuring
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/parisse/.local/share/giteapc/Vhex-Kernel-Core/fxlibc/build-gint
<giteapc> Vhex-Kernel-Core/fxlibc: Building
make[1] : on entre dans le répertoire « /home/parisse/.local/share/giteapc/Vhex-Kernel-Core/fxlibc/build-gint »
[100%] Built target fxlibcStatic
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Vhex-Kernel-Core/fxlibc/build-gint »
<giteapc> Vhex-Kernel-Core/fxlibc: Installing
make[1] : on entre dans le répertoire « /home/parisse/.local/share/giteapc/Vhex-Kernel-Core/fxlibc/build-gint »
[100%] Built target fxlibcStatic
Install the project...
-- Install configuration: ""
make[1] : on quitte le répertoire « /home/parisse/.local/share/giteapc/Vhex-Kernel-Core/fxlibc/build-gint »
<giteapc> Vhex-Kernel-Core/fxlibc: Done!
<giteapc> Lephenixnoir/gint: Checking out dev
<giteapc> Lephenixnoir/gint: Configuring
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/parisse/.local/share/giteapc/Lephenixnoir/gint/build-fx
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/parisse/.local/share/giteapc/Lephenixnoir/gint/build-cg
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/parisse/.local/share/giteapc/Lephenixnoir/gint/build-fxg3a
-- The C compiler identification is GNU 14.1.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/parisse/.local/bin/sh-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/parisse/.local/bin/sh-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Git: /usr/bin/git (found version "2.47.3")
-- Configuring done (0.9s)
-- Generating done (0.0s)
-- Build files have been written to: /home/parisse/.local/share/giteapc/Lephenixnoir/gint/build-cp
<giteapc> Lephenixnoir/gint: Building
[ 0%] Generating fx9860g.ld
[ 0%] Building C object CMakeFiles/gint-fx.dir/src/fxlibc_hal.c.obj
/home/parisse/.local/share/giteapc/Lephenixnoir/gint/src/fxlibc_hal.c:4:10: erreur fatale: fxlibc/hal.h: Aucun fichier ou dossier de ce nom
4 | #include <fxlibc/hal.h>
| ^~~~~~~~~~~~~~
compilation terminée.
make[3]: *** [CMakeFiles/gint-fx.dir/build.make:83: CMakeFiles/gint-fx.dir/src/fxlibc_hal.c.obj] Error 1
make[2]: *** [CMakeFiles/Makefile2:87: CMakeFiles/gint-fx.dir/all] Error 2
make[1]: *** [Makefile:136: all] Error 2
gmake: *** [/home/parisse/.local/share/giteapc/Lephenixnoir/gint/giteapc.make:12: build] Error 2
error: error 2 in command: gmake -f /home/parisse/.local/share/giteapc/Lephenixnoir/gint/giteapc.make build

Je ne trouve pas hal.h dans l'arborescence .local/share ( find . -name hal.h -print)
Parisse Hors ligne Membre Points: 619 Défis: 0 Message

Citer : Posté le 17/06/2026 10:43 | #


du coup j'ai aussi switché sur fxlibc@dev, le hal.h y est
Lephenixnoir En ligne Administrateur Points: 25834 Défis: 174 Message

Citer : Posté le 17/06/2026 11:16 | #


Oups, je savais que j'en oubliais un, désolé xD
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3 ··· 10 ··· 17, 18, 19, 20

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:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
captcha
Rafraîchissez la page si vous souhaitez obtenir un nouveau CAPTCHA.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2026 | Il y a 101 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