linux 64 bits et emulation videopac
Voici le compte rendu de mes dernières aventure en matière d'émulation videopac.
Dernièrement, je me suis offert un tout nouveau PC. J'ai installé dessus une distribution récente en 64 bits.Tout se passait assez bien jusqu'à ce que j'essaye de rétablir O2em et mon petit launcher jo2emLauncher. Pour ceux qui n'auraient pas suivi les épisodes précédents, voici un article sur jo2emLauncher.
Plus de videopac ?
Les plus perspicaces d'entre vous auront remarqué le gros mensonge qui consiste à dire que tout allait bien. En fait, mes difficultés avec o2em, c'etait plutôt le vingtième problème, que je rencontrais, mais c'est le seul dont je vais vous parler dans cet article.- Impossible d'utiliser le binaire o2em que j'avais sauvegardé. Il est 32 bits et le système est 64 bits. Il existe des couches de compatibilité, mais je n'ai pas essayé de suivre cette voie.
- O2em est développé pour liballegro 4.2 et ubuntu 15.10 (Willy Werewolf) apporte allegro 4.4.
Recompiler
Recompiler o2em2 et le faire fonctionner ne s'est pas avéré simple.
- J'ai téléchargé les sources de la dernière version o2em2-1.51.tar.gz
- J'ai décompressé: tar -xvzf o2em2-1.51.tar.gz
- cd o2em2-1.51/
- ./configure --with-game-api=allegro
- make
- vmachine.c:25:19: fatal error: debug.h: No such file or directory
- J'ai édité main.c et vmachine.c pour remplacer
- #include "debug.h" par
- //#include "debug.h"
- make
- Cette fois on obtient un exécutable utilisable. Pour l'essayer, il suffit de mettre en place un répertoire "bios" et un répertoire "roms".
Les options
Le problème suivant est que de nombreuses options ne sont pas acceptées. Parmi lesquelles:- -help (anecdotique)
- -fullscreen (ennuyeux car pour s'amuser vraiment, il faut jouer à 2 et avoir un peu de recul)
- -s1
- -s2 (également très ennuyeux car sans joystick la jouabilité est diminuée)
Les joysticks
Avec cette première modification, les options sont toutes reconnues, mais toutes en fonctionnent pas. Je n'ai pas tout testé en détail mais je peux vous dire que les joysticks ne fonctionnent toujours pas.Pour corriger ca, j'ai rétabli une ligne de code qui a été mise en commentaire dans le source vmachine.c. poll_joystick();.
Une fois cette ligne rétablie, le fonctionnement me donne satisfaction. Il se peut cependant qu'il y ai d'autres différences avec o2em.
Les patches
Pour faciliter la reproduction des manipulations que j'ai décrites , je mets 2 fichiers patches à disposition :main.patch
vmachine.patch
Pour appliquer ces patches, il suffit de les télécharger dans le répertoire contenant les sources de o2em2 et d'entrer
- patch -p0 < vmachine.patch
- patch -p0 < main.patch
- ./configure --with-game-api=allegro
- make
Et jo2emLauncher ?
Pour le moment je me suis contenté de créer un lien o2em -> o2em2. Ca suffit pour faire fonctionner le launcher avec o2em2.Dans une prochaine version, le nom de l'exécutable sera configurable. Je l'ai ajouté a la TODO list.