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 - Projets de programmation


Index du Forum » Projets de programmation » MQ : Émulateur add-ins universel
Lephenixnoir En ligne Administrateur Points: 25361 Défis: 174 Message

MQ : Émulateur add-ins universel

Posté le 28/05/2025 20:22

Parmi les projets de 2025 il y a tout un plan pour préserver les contenus du site, notamment les vieux programmes. La base de programmes de Planète Casio n'est pas beaucoup maintenue et on ne traque pas vraiment ce qui est encore jouable ou pas.

Les projets d'émulateurs c'est pas nouveau, c.f. *, *, * et j'en oublie. Initialement je pensais repartir d'un existant, mais finalement j'en ai commencé un from scratch en voyant le cahier des charges :

  • Il faut pouvoir émuler à la fois les Graph mono et les Prizm et à la fois les SH3 et les SH4 ;
  • Il faut que ça puisse tourner sur le site donc compiler vers WebAssembly et optimiser raisonnablement (téléphones etc. ont pas des perfs de dingue) ;
  • Il faut émuler pas mal de trucs matériels, donc assez bas-niveau, pour bien couvrir les add-ins et potentiellement l'appli PRGM pour émuler les programmes Basic ;
  • Et si on fait tout ça ce serait criminel de pas s'en servir pour développer/debugger, ce pour quoi une GUI plus grosse que juste l'écran est nécessaire (et/ou gdb).

Les détails techniques, pour ceux que ça intéresse, c'est : pur C, tourne sur Azur par facilité (GUI en OpenGL avec ImGui + compile pour Linux et WebAssembly), le décodeur est un arbre de switch généré automatiquement et la mémoire est hiérarchique par blocs de 1 Mo, 4 ko, et 1 octet.

L'état actuel (Mai 2025) c'est : on peut faire tourner quelques add-ins sur CG, y'a des syscalls mais peu, y'a une partie du matériel émulé pour faire tourner gint ; en gros si vous prenez un add-in aléatoire ça va probablement pas marcher, mais pas loin.

Voici le dépôt et au passage à quoi ressemble l'interface : y'a tous les trucs techniques nécessaires pour debugger.

» Dépôt Git Lephenixnoir/mq «


J'ai pas encore de build pour le web sur lequel vous pouvez cliquer et tester tout de suite, mais vous pouvez compiler depuis le dépôt.

Voilà plus de nouvelles bientôt j'espère.

Fichier joint


Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 16:35 | #


je suis reparti d'une vm "neuve" sous debian 12
maintenant

cmake -B build-linux -DAZUR_PLATFORM=linux -DCMAKE_BUILD_TYPE=Release
-- Checking for module 'sdl2'
-- Package 'sdl2', required by 'virtual:world', not found
CMake Error at /usr/share/cmake-3.25/Modules/FindPkgConfig.cmake:607 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.25/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
CMakeLists.txt:93 (pkg_check_modules)
Lephenixnoir En ligne Administrateur Points: 25361 Défis: 174 Message

Citer : Posté le 04/09/2025 17:53 | #


Là l'erreur est assez claire il te faut la SDL2 en dev, installe le paquet libsdl2-dev et libsdl2-image-dev.
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 19:07 | #


merci
j'ai aussi installé libopengl-dev et libfreetype-dev

plus de messages d'erreurs. c'est déja ça.


joz2@debian:~/Azur$ cmake -B build-linux -DAZUR_PLATFORM=linux -DCMAKE_BUILD_TYPE=Release
-- Configuring done
-- Generating done
-- Build files have been written to: /home/joz2/Azur/build-linux


maintenant faut que je trouve que faire...
Luisellina Hors ligne Gourou Points: 323 Défis: 4 Message

Citer : Posté le 04/09/2025 19:11 | #


Probablement la seconde commande, comme montré dans le README.
Slyvtt Hors ligne Maître du Puzzle Points: 2708 Défis: 17 Message

Citer : Posté le 04/09/2025 19:39 | #


make -C build-linux install -j$(nproc)

comme indiqué par Lephé
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 20:06 | #


d'accord
mais ça me dit que ça ne trouve pas python alors que python3 est installé.
Luisellina Hors ligne Gourou Points: 323 Défis: 4 Message

Citer : Posté le 04/09/2025 20:08 | #


Probablement parce que l'exécutable python n'existe pas. Tu peux installer python-is-python3.
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 20:19 | #


merci je ne connaissais pas ! je tapais toujours python3 dans mes scripts

bon je crois que je ne vais jamais y arriver
voici un extrait du retour :

make[2] : on quitte le répertoire « /home/joz2/Azur/build-linux »
make[2] : on entre dans le répertoire « /home/joz2/Azur/build-linux »
[ 75%] Building CXX object azur/CMakeFiles/azur.dir/src/gl/init.cpp.o
[ 78%] Building CXX object azur/CMakeFiles/azur.dir/src/log.cpp.o
/home/joz2/Azur/azur/src/log.cpp:11:10: fatal error: azur/ecs.h: Aucun fichier ou dossier de ce type
11 | #include <azur/ecs.h>
| ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [azur/CMakeFiles/azur.dir/build.make:89 : azur/CMakeFiles/azur.dir/src/log.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
/home/joz2/Azur/azur/src/gl/init.cpp:194:15: warning: ‘ml_time’ defined but not used [-Wunused-variable]
194 | static double ml_time = 0.0;
| ^~~~~~~
make[2] : on quitte le répertoire « /home/joz2/Azur/build-linux »
make[1]: *** [CMakeFiles/Makefile2:1055 : azur/CMakeFiles/azur.dir/all] Erreur 2
make[1] : on quitte le répertoire « /home/joz2/Azur/build-linux »
make: *** [Makefile:146 : all] Erreur 2
make : on quitte le répertoire « /home/joz2/Azur/build-linux »
Lephenixnoir En ligne Administrateur Points: 25361 Défis: 174 Message

Citer : Posté le 04/09/2025 20:46 | #


Non ça c'est ma faute ! J'ai poussé une correction. Tu peux faire git pull et relancer la commande make (pas besoin de reprendre au début).
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 20:53 | #


[ 85%] Building C object azur/CMakeFiles/azur.dir/src/glsl.c.o
[ 89%] Linking CXX static library libazur_linux.a
make[2] : on quitte le répertoire « /home/joz2/Azur/build-linux »
[100%] Built target azur
make[1] : on quitte le répertoire « /home/joz2/Azur/build-linux »
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/lib/libazur_linux_gl3w.a
CMake Error at 3rdparty/cmake_install.cmake:46 (file):
file INSTALL cannot copy file
"/home/joz2/Azur/build-linux/3rdparty/libazur_linux_gl3w.a" to
"/usr/local/lib/libazur_linux_gl3w.a": Permission denied.
Call Stack (most recent call first):
cmake_install.cmake:47 (include)


make: *** [Makefile:110 : install] Erreur 1
make : on quitte le répertoire « /home/joz2/Azur/build-linux »
joz2@debian:~/Azur$

Lephenixnoir En ligne Administrateur Points: 25361 Défis: 174 Message

Citer : Posté le 04/09/2025 20:58 | #


Ah, je vois. Désolé que ce soit compliqué, on n'a pas encore de release officielle et ces instructions sont plutôt prévues pour des devs. Mais pas de souci, je vais t'y amener.

On est d'accord que tu as clôné Azur et mq ? On commence par compiler Azur. Rends-toi dans le dossier d'Azur...

cd Azur
rm -rf build-linux
cmake -B build-linux -DAZUR_PLATFORM=linux -DCMAKE_INSTALL_PREFIX="$HOME/.local"
make -C build-linux install -j$(nproc)
export AZUR_PATH_linux="$HOME/.local"

Et ensuite dans MQ :

cd mq
rm -rf build-linux
cmake -B build-linux -DAZUR_PLATFORM=linux -DCMAKE_BUILD_TYPE=Release
make -C build-linux -j$(nproc)
build-linux/mq # lancement du programme

Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 21:36 | #


merci Lephe
non pas à être désolé, c'est moi qui ne comprends pas vite.
ça semble fonctionner !
après savoir utiliser l’outil sera une autre affaire
Lephenixnoir En ligne Administrateur Points: 25361 Défis: 174 Message

Citer : Posté le 04/09/2025 21:42 | #


Bravo ! Le plus facile de faire File » Open dans le menu et une fois le fichier chargé, le bouton démarrer dans la barre en haut. Pour contrôler tu cliques sur la fenêtre clavier et ensuite tu peux soit cliquer sur les touches soit utiliser ton clavier (mais toutes les touches ne sont pas encore contrôlables au clavier... c'est pas super pratique).
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 317 Défis: 10 Message

Citer : Posté le 04/09/2025 22:25 | #


voila c'est bon !

merci
Yatis Hors ligne Membre Points: 583 Défis: 0 Message

Citer : Posté le 05/09/2025 17:11 | # | Fichier joint


Allez, un petit teasing d'une prochaine feature en préparation...vous avez une idée de ce que ça pourrait être ?


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 94 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