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
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
Citer : Posté le 17/10/2026 08:36 | #
Opened the file, no match found, seems to be already changed (lines 32-35):
set(AZUR_INCLUDE_GL3W "${AZUR_INCLUDE_3RDPARTY}/gl3w")
set(AZUR_LIB_GL3W "${AZUR_LIB}/libgl3w.a")
Same error.
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
Citer : Posté le 17/10/2026 08:48 | #
Same error, 3rdparty cmake has line without weird parenthesis placement
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
Citer : Posté le 17/10/2026 08:57 | #
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")
186:CMAKE_PREFIX_PATH:UNINITIALIZED=/home/s7amithorn/.local
-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 bedCiter : 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
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):
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.
Citer : Posté le 18/10/2026 04:00 | #
cmake --install build-linux
then
cmake -S . -B build-linux \
-DAZUR_PLATFORM=linux \
-DCMAKE_PREFIX_PATH="$HOME/.local" \
-DCMAKE_MODULE_PATH="$HOME/.local/lib/cmake"
if all good:
GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B
Citer : Posté le 18/10/2026 04:57 | #
It worked! Thanks so much for all the help.
Citer : Posté le 18/10/2026 05:01 | #
No problem.
GPG : F747 7C61 CC79 5021 E060 6117 1E55 9E70 DF46 E38B