L'école openMSX LE émulateur MSX!!

je ne sais pas pourquoi, je ne vois plus le dernier message de Sector28, mais voilà le fichier demandé.
C'est ma compile de hier.
C'est un fichier zst, mais j'ai dû mettre l'extension bmp pour qu'il soit accepté par l'uploader (qui aurait quand même pu vérifier que c'était bien un bmp).
À récup avec curl ou wget, car ton navigateur va pas aimer :
https://msxvillage.fr/upload/openmsx_git.bmp
Edité par zone Le 10/05/2025 à 19h04
C'est ma compile de hier.
C'est un fichier zst, mais j'ai dû mettre l'extension bmp pour qu'il soit accepté par l'uploader (qui aurait quand même pu vérifier que c'était bien un bmp).
À récup avec curl ou wget, car ton navigateur va pas aimer :
https://msxvillage.fr/upload/openmsx_git.bmp
Edité par zone Le 10/05/2025 à 19h04

merci,
toutefois, je ne sais pas l'exécuter, ton système n'est pas à jours,
Je suis sûr que le problème vient de la compilation sur ma machine.
Je viens de tester sur une machine virtuelle, le problème est le même.
Les mises à jours sont à l'origine du problème de compilation (ça compile sans erreurs, mais le programme plante!)
toutefois, je ne sais pas l'exécuter, ton système n'est pas à jours,
Je suis sûr que le problème vient de la compilation sur ma machine.
Je viens de tester sur une machine virtuelle, le problème est le même.
Les mises à jours sont à l'origine du problème de compilation (ça compile sans erreurs, mais le programme plante!)
DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !

DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
Ok, j'ai testé et c'est bon de mon côté.
Nous n'avons pas les mêmes librairies au link, et j'ai eu un problème de version avec la libtheora qui est en v2 chez toi et en v1 chez moi. J'ai réglé ça comme ça:
À part ça, il n'y a pas de différence entre nos libs respectives.
Tu as quoi comme erreur quand tu démarres mon binaire ? (même si à priori l'erreur n'est pas à chercher là, puisque j'arrive à exécuter le tiens).
J'ai regardé dans mon makepkg, mais je ne modifie pas le
Je ne vois pas ce qui peut foirer en tout cas.
Nous n'avons pas les mêmes librairies au link, et j'ai eu un problème de version avec la libtheora qui est en v2 chez toi et en v1 chez moi. J'ai réglé ça comme ça:
Code :
/tmp$ ln -s /usr/lib/libtheoradec.so libtheoradec.so.2
/tmp$ LD_LIBRARY_PATH=. ./openmsx_sector28
À part ça, il n'y a pas de différence entre nos libs respectives.
Tu as quoi comme erreur quand tu démarres mon binaire ? (même si à priori l'erreur n'est pas à chercher là, puisque j'arrive à exécuter le tiens).
J'ai regardé dans mon makepkg, mais je ne modifie pas le
Code :
du compilo, ça compile en blend et ça tournera sur tout processeur respectant la norme d'origine x86_64.
-march
Je ne vois pas ce qui peut foirer en tout cas.

Le SEUL problème est que rien ne s'affiche dans la fenêtre. Le son, les entrées, etc. fonctionnent parfaitement. J'entends le clic lorsque je tape au clavier, le beep, etc. Au lancement avec -carta /chemin/vers/la/mégarom/nemesis2.rom, j'entends le jeu, la musique, le SCC et je peux démarrer le jeu avec le joystick, mais la fenêtre n'affiche rien.
Si SDL_OpenAudioDevice() est appelé AVANT d'ouvrir la fenêtre, le programme fonctionne correctement.
Je suppose que le périphérique audio sdl doit être ouvert avant la fenêtre (ou en même temps)…
Le problème est peut-être survenu après la sortie du nouveau paquet sdl12-compat dans Arch Linux, remplaçant l'ancien paquet sdl1.
Si SDL_OpenAudioDevice() est appelé AVANT d'ouvrir la fenêtre, le programme fonctionne correctement.
Je suppose que le périphérique audio sdl doit être ouvert avant la fenêtre (ou en même temps)…
Le problème est peut-être survenu après la sortie du nouveau paquet sdl12-compat dans Arch Linux, remplaçant l'ancien paquet sdl1.
DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !

@zone
L'erreur chez moi est que TON binaire ne trouve pas libtheoradec.so.1
Après ln -s /usr/lib/libtheoradec.so.2 libtheoradec.so.1, ton programme tourne mais le bug est le même qu'avec ma compilation: fenêtre qui n'affiche rien, etc..
J'en déduit que c'est un problème de runtime, et non de compilation.
J'ai aussi testé sur un machine virtuelle, c'est la même chose (pas une instal lts, et le pacman -Syu juste avant).
L'erreur chez moi est que TON binaire ne trouve pas libtheoradec.so.1
Après ln -s /usr/lib/libtheoradec.so.2 libtheoradec.so.1, ton programme tourne mais le bug est le même qu'avec ma compilation: fenêtre qui n'affiche rien, etc..
J'en déduit que c'est un problème de runtime, et non de compilation.
J'ai aussi testé sur un machine virtuelle, c'est la même chose (pas une instal lts, et le pacman -Syu juste avant).
DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
En effet, SDL 2 est passé récemment en legacy.
On parle bien de la SDL 2, il est très rare de rencontrer encore la SDL 1.2 (paquet sdl12-compat). Je l'ai encore sur mon système car il m'arrive d'adapter de vieux jeux opensource, mais autrement ça ne sert plus. À la rigueur, tu vas l'installer depuis la multilib, pour faire tourner des vieux jeux compilés en 32 bits.
Je vais planifier une mise à jour, j'ai une ligne pourrie et ça me prend des heures à rapatrier quelques mega.
Habituellement je procède la nuit, ça charge tranquillement.
Je vois deux possibilités:
1) problème de shader.
OpenMSX utilise maintenant les shaders (au moins de façon obligatoire, c'était peut-être le cas avant). La version que j'ai testé nécessite un répertoire .openMSX/share/shaders rempli de fragments et vertex shaders. Le numéro de version nécessaire n'est pas précisé au début du script comme c'est d'usage, ce qui ne va pas faciliter les recherches.
L'idéal serait de n'utiliser que les pixels et vertex shaders qui ne font rien (entrée == sortie). Pour ça, désactiver toutes les options de traitement genre flou, scanline … ça va appeller uniquement default.{frag,vert} .
J'insiste là-dessus, car si OpenMSXne trouve pas les shaders , j'ai un écran blanc et effectivement tout le reste tourne (j'ai lancé nemesis2 également et j'ai la musique d'intro, et le clavier répond: je peux démarrer une partie en aveugle).
2) problème de son d'après ce que tu rapportes (SDL_OpenAudioDevice() ) mais normalement du moment que c'est appellé après SDL_Init() c'est bon non ?
Tout dépend de ce que tu as. Si tu as un écran blanc, c'est surement un problème de shader. Si tu as un affichage d'élements déjà présent en mémoire video (du style: ton bureau dans la fenêtre , qui n'est jamais rafraichie), c'est le compositeur qui déconne, donc plutôt un problème à l'init.
Edité par zone Le 13/05/2025 à 10h22
On parle bien de la SDL 2, il est très rare de rencontrer encore la SDL 1.2 (paquet sdl12-compat). Je l'ai encore sur mon système car il m'arrive d'adapter de vieux jeux opensource, mais autrement ça ne sert plus. À la rigueur, tu vas l'installer depuis la multilib, pour faire tourner des vieux jeux compilés en 32 bits.
Je vais planifier une mise à jour, j'ai une ligne pourrie et ça me prend des heures à rapatrier quelques mega.
Habituellement je procède la nuit, ça charge tranquillement.
Code :
extra/sdl12-compat 1.2.68-2 [installed]
extra/sdl2-compat 2.32.56-1 [installed: 2.32.54-1]
extra/sdl2_gfx 1:1.0.4-4 [installed]
extra/sdl2_image 2.8.8-1 [installed]
extra/sdl2_mixer 2.8.1-2 [installed: 2.8.1-1]
extra/sdl2_net 1:2.2.0-2 [installed]
extra/sdl2_ttf 2.24.0-1 [installed]
extra/sdl3 3.2.12-1 [installed: 3.2.10-1]
extra/sdl_gfx 2.0.27-1 [installed]
extra/sdl_image 1.2.12-9 [installed]
extra/sdl_mixer 1.2.12-12 [installed]
extra/sdl_net 1.2.8-6 [installed]
extra/sdl_sound 1.0.3-13 [installed]
extra/sdl_ttf 2.0.11-7 [installed]
multilib/lib32-sdl2-compat 2.32.56-1 [installed: 2.32.54-1]
multilib/lib32-sdl3 3.2.12-1 [installed: 3.2.10-1]
Je vois deux possibilités:
1) problème de shader.
OpenMSX utilise maintenant les shaders (au moins de façon obligatoire, c'était peut-être le cas avant). La version que j'ai testé nécessite un répertoire .openMSX/share/shaders rempli de fragments et vertex shaders. Le numéro de version nécessaire n'est pas précisé au début du script comme c'est d'usage, ce qui ne va pas faciliter les recherches.
L'idéal serait de n'utiliser que les pixels et vertex shaders qui ne font rien (entrée == sortie). Pour ça, désactiver toutes les options de traitement genre flou, scanline … ça va appeller uniquement default.{frag,vert} .
J'insiste là-dessus, car si OpenMSXne trouve pas les shaders , j'ai un écran blanc et effectivement tout le reste tourne (j'ai lancé nemesis2 également et j'ai la musique d'intro, et le clavier répond: je peux démarrer une partie en aveugle).
2) problème de son d'après ce que tu rapportes (SDL_OpenAudioDevice() ) mais normalement du moment que c'est appellé après SDL_Init() c'est bon non ?
Tout dépend de ce que tu as. Si tu as un écran blanc, c'est surement un problème de shader. Si tu as un affichage d'élements déjà présent en mémoire video (du style: ton bureau dans la fenêtre , qui n'est jamais rafraichie), c'est le compositeur qui déconne, donc plutôt un problème à l'init.
Edité par zone Le 13/05/2025 à 10h22

Un grand merci à toi, mars2000!
Mais ton aide arrive quelques heures trop tard..
En effet, tout s'est remis dans l'ordre après un pacman -Syu
Dans cette mise à jour, Je suis passé aujourd'hui de SDL3 v2.12-1 à SDL3 v2.14-1
Le bug se trouvait dans SDL3 (sdl2-compat n'est qu'une couche qui utilise SDL3).
LE émulateur fonctionne à nouveau...
Merci à tous pour vos contributions!
Mais ton aide arrive quelques heures trop tard..

En effet, tout s'est remis dans l'ordre après un pacman -Syu
Dans cette mise à jour, Je suis passé aujourd'hui de SDL3 v2.12-1 à SDL3 v2.14-1
Le bug se trouvait dans SDL3 (sdl2-compat n'est qu'une couche qui utilise SDL3).
LE émulateur fonctionne à nouveau...
Merci à tous pour vos contributions!
DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie