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: 25956 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 «

» Instance Web (expérimentale) «


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


Précédente – 1, 2, 3, 4, 5, 6
cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

Citer : Posté le 17/10/2026 08:28 | #


open a notepad or use nano to open
~/.local/lib/cmake/FindAzur3rdParty.cmake. and find this:
set(AZUR_LIB_GL3W) "${AZUR_LIB}/libgl3w.a")
and change the malfunction to this
set(AZUR_LIB_GL3W "${AZUR_LIB}/libgl3w.a")

then rebuild:

cmake -S . -B build-linux \
  -DAZUR_PLATFORM=linux \
  -DCMAKE_PREFIX_PATH="$HOME/.local"


GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
7amithorn En ligne Membre Points: 63 Défis: 0 Message

Citer : Posté le 17/10/2026 08:36 | #


Opened the file, no match found, seems to be already changed (lines 32-35):
#=== gl3w =====================================================================#

set(AZUR_INCLUDE_GL3W "${AZUR_INCLUDE_3RDPARTY}/gl3w")
set(AZUR_LIB_GL3W "${AZUR_LIB}/libgl3w.a")

Same error.
cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

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


The typo changed. Probably the Azur::gl3w target is only created when CMake finds both its include
directory and library. Try this clean-up + build


cd ~/Azur
rm -rf build-linux

cmake -S . -B build-linux \
  -DAZUR_PLATFORM=linux \
  -DCMAKE_INSTALL_PREFIX="$HOME/.local" \
  -DCMAKE_PREFIX_PATH="$HOME/.local"


GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
7amithorn En ligne Membre Points: 63 Défis: 0 Message

Citer : Posté le 17/10/2026 08:48 | #


Same error, 3rdparty cmake has line without weird parenthesis placement
cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

Citer : Posté le 17/10/2026 08:50 | #


Run these and drop them here


grep -nE 'AZUR_LIB|AZUR_INCLUDE_3RDPARTY|AZUR_PLATFORM' \
  "$HOME/.local/lib/cmake/FindAzur3rdParty.cmake"

grep -nE 'AZUR_PATH|AZUR_PLATFORM|CMAKE_PREFIX_PATH' \
  build-linux/CMakeCache.txt

ls -ld \
  "$HOME/.local/include/azur/3rdparty/gl3w" \
  "$HOME/.local/lib/azur/libgl3w.a"


GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
7amithorn En ligne Membre Points: 63 Défis: 0 Message

Citer : Posté le 17/10/2026 08:57 | #


Grep #1: 3rdparty cmake
Cliquez pour recouvrir
8:set(AZUR_PATH "$ENV{AZUR_PATH_${AZUR_PLATFORM}}")
11:  set(AZUR_LIB "${FXSDK_LIB}/azur")
15:  set(AZUR_LIB "${AZUR_PATH}/lib/azur")
20:message("(Azur/3rdparty) Will take libraries from: ${AZUR_LIB}")
24:set(AZUR_INCLUDE_3RDPARTY "${AZUR_INCLUDE}/azur/3rdparty")
28:if(AZUR_PLATFORM STREQUAL linux)
34:set(AZUR_INCLUDE_GL3W "${AZUR_INCLUDE_3RDPARTY}/gl3w")
35:set(AZUR_LIB_GL3W "${AZUR_LIB}/libgl3w.a")
37:if(EXISTS "${AZUR_INCLUDE_GL3W}" AND EXISTS "${AZUR_LIB_GL3W}")
38:  message("(Azur) Found gl3w at: ${AZUR_LIB_GL3W}")
42:    IMPORTED_LOCATION "${AZUR_LIB_GL3W}"
46:  if(AZUR_PLATFORM STREQUAL linux)
56:set(AZUR_INCLUDE_IMGUI "${AZUR_INCLUDE_3RDPARTY}/imgui")
57:set(AZUR_LIB_IMGUI "${AZUR_LIB}/libimgui.a")
59:if(EXISTS "${AZUR_INCLUDE_IMGUI}" AND EXISTS "${AZUR_LIB_IMGUI}")
60:  message("(Azur) Found Dear ImGui at: ${AZUR_LIB_IMGUI}")
65:    IMPORTED_LOCATION "${AZUR_LIB_IMGUI}"
72:  if(AZUR_PLATFORM STREQUAL emscripten)
92:set(AZUR_INCLUDE_GLM "${AZUR_INCLUDE_3RDPARTY}/glm")
108:set(AZUR_LIB_AVUTIL "${AZUR_LIB}/libavutil.a")
109:set(AZUR_LIB_AVFORMAT "${AZUR_LIB}/libavformat.a")
110:set(AZUR_LIB_AVCODEC "${AZUR_LIB}/libavcodec.a")
111:set(AZUR_LIB_SWSCALE "${AZUR_LIB}/libswscale.a")
112:set(AZUR_LIB_X264 "${AZUR_LIB}/libx264.a")
113:set(AZUR_INCLUDE_FFMPEG "${AZUR_INCLUDE_3RDPARTY}/ffmpeg")
122:  if(EXISTS "${AZUR_LIB_AVUTIL}")
126:      IMPORTED_LOCATION "${AZUR_LIB_AVUTIL}"
132:  if(EXISTS "${AZUR_LIB_AVCODEC}")
136:      IMPORTED_LOCATION "${AZUR_LIB_AVCODEC}"
143:  if(EXISTS "${AZUR_LIB_AVFORMAT}")
147:      IMPORTED_LOCATION "${AZUR_LIB_AVFORMAT}"
154:  if(EXISTS "${AZUR_LIB_SWSCALE}")
158:      IMPORTED_LOCATION "${AZUR_LIB_SWSCALE}"
165:  if(EXISTS "${AZUR_LIB_X264}")
169:      IMPORTED_LOCATION "${AZUR_LIB_X264}"
177:set(AZUR_INCLUDE_STB "${AZUR_INCLUDE_3RDPARTY}/stb")

Grep #2: cmake cache
Cliquez pour recouvrir
18:AZUR_PLATFORM:UNINITIALIZED=linux
186:CMAKE_PREFIX_PATH:UNINITIALIZED=/home/s7amithorn/.local

ls
Cliquez pour recouvrir
drwxr-xr-x 4 s7amithorn s7amithorn  4096 Oct 17 00:24 /home/s7amithorn/.local/include/azur/3rdparty/gl3w
-rw-r--r-- 1 s7amithorn s7amithorn 39208 Oct 17 00:05 /home/s7amithorn/.local/lib/azur/libgl3w.a

It's 2:30 am at time of edit, I have gone to bed
cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

Citer : Posté le 17/10/2026 20:44 | #


I think we found it. Azur reads its installation path from the AZUR_PATH_linux environment variable,
try this:

set(AZUR_PATH "$ENV{AZUR_PATH_${AZUR_PLATFORM}}")

export AZUR_PATH_linux="$HOME/.local"

echo "$AZUR_PATH_linux"

cmake -S . -B build-linux \
  -DAZUR_PLATFORM=linux \
  -DCMAKE_INSTALL_PREFIX="$HOME/.local" \
  -DCMAKE_PREFIX_PATH="$HOME/.local"

cmake --build build-linux -j$(nproc)


GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
7amithorn En ligne Membre Points: 63 Défis: 0 Message

Citer : Posté le 18/10/2026 02:09 | #


Azur compiled successfully, now I think we just need for cmake to recognize it: (this is the result of the last cmake command in Lephe's instructions, the one before the make):
CMake Error at CMakeLists.txt:5 (find_package):
  By not providing "FindAzur.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Azur", but
  CMake did not find one.

  Could not find a package configuration file provided by "Azur" (requested
  version 0.2) with any of the following names:

    AzurConfig.cmake
    azur-config.cmake

  Add the installation prefix of "Azur" to CMAKE_PREFIX_PATH or set
  "Azur_DIR" to a directory containing one of the above files.  If "Azur"
  provides a separate development package or SDK, be sure it has been
  installed.

cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

Citer : Posté le 18/10/2026 04:00 | #


export AZUR_PATH_linux="$HOME/.local"
cmake --install build-linux



then
export AZUR_PATH_linux="$HOME/.local"

cmake -S . -B build-linux \
  -DAZUR_PLATFORM=linux \
  -DCMAKE_PREFIX_PATH="$HOME/.local" \
  -DCMAKE_MODULE_PATH="$HOME/.local/lib/cmake"


if all good:

cmake --build build-linux -j$(nproc)


GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
7amithorn En ligne Membre Points: 63 Défis: 0 Message

Citer : Posté le 18/10/2026 04:57 | #


It worked! Thanks so much for all the help.
cacioandpepe Hors ligne Membre Points: 19 Défis: 0 Message

Citer : Posté le 18/10/2026 05:01 | #


No problem.

GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
Précédente – 1, 2, 3, 4, 5, 6

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