Naïvement je pensais tenir ce compte-rendu tous les jours, mais je trouve toujours quelque chose d'autre à faire... 😅

Il s'est passé une semaine et demie depuis mon dernier rapport de confinement. Côté boulot ça s'est calmé tant chez Séverine que chez moi. Pour ma part les gens semblent d'être habitués à leur nouvel environnement de travail. Il y a quand même eu quelques cas de demande de reconfiguration d'ordinateur pour télétravail. Ça fait deux semaines qu'on doit télétravailler, ils ont foutu quoi depuis le temps ? 🤔

Les nouvelles sont toujours répétitives. COVID-19 par ci, COVID-19 par là, nombre de morts quotidien... On ne regarde presque plus les infos.

Je disais que le petit semblait rassuré, mais il nous parle encore souvent du coronavirus. L'anxiété ambiante doit le toucher. On n,'est pas si inquiets à la maison pourtant.

On n'a pas de difficultés particulières dans la vie quotidienne. Il faut dire qu'avec l'équipement qu'on a à la maison (presque 6 écrans par tête), on peut s'occuper. Je lis que plein de gens galèrent parce qu'ils n'ont ni équipements, ni infrastructure ni connaissance des outils numériques, ça me fait de la peine...

La seule vraie difficulté qu'on a est de trouver des créneaux de drive. Qu'on finit par avoir à force de rafraîchir le site. Problème de premier monde encore. 😅

Je tente de pallier à mon manque d'exercice en marchant dans le jardin à peu près la même durée que je marche normalement en allant au boulot. Mais j'oublie souvent le soir et ça me gave un peu...

Mon boss prend des nouvelles quasi-quotidiennement de l'équipe grâce au Jitsi Meet que j'ai monté. C'est un peu trop souvent par rapport à ce qui se passe côté boulot, je trouve. Mais ça permet de garder le contact.

Bon, je voulais faire un petit journal de confinement comme tout le monde, surtout que c'est un blog, ici, à la base... Mais j'ai été très pris par le travail cette semaine et demie. Revenons un peu plus tôt...

Semaine 1 de ce qui allait devenir le confinement

Lundi

Les rumeurs couraient sur la fermeture des écoles et le télétravail forcé des parents obligés de garder leurs enfants à la maison... La nouvelle est tombée vendredi 13 mars. Comme je peux télétravailler sans presque aucun impact, c'est moi qui m'y colle. Séverine continue à aller travailler.

Je pensais que ça serait peut-être difficile de gérer les enfants. Mais ils ont eu des devoirs à faire, donc travail el matin, temps libre l'après-midi. Ça se passe bien. Je n'ai même pas tellement d'appels et de messages.

Le soir, la nouvelle tombe. C'est un confinment général de la population. Il faut télétravailler dans la mesure du possible. Le travail de Séverine n'a toujours pas pris de décision sur la question, elle retourne travailler le lendemain.

Mardi

Les enfants reprennent leur nouveau rythme d'école à la maison. Ils n'ont pas l'air d'être perturbés.

Côté boulot, ça explose. Ma glorieuse association attend la communication de la maison mère pour se prononcer, comme d'habitude. La maison mère, institut de recherche d'état semble pris de panique et tarde à communiquer officiellement. Ma glorieuse association réplique l'annonce pour ses propres employés, un jour plus tard.

Mais nombre d'employés se sont déjà confinés, soit pour les enfants, soit suite à l'annonce de la veille. Les gens se rappellent de l'existance d'un VPN chez nous. Beaucoup d'appels pour que je leur configure à distance et que je les connecte à l'application métier. C'est bien que mes efforts de faire un tutoriel détaillé pour ça sur l'intranet paie. 😒

Les informations ne tournent qu'autour du COVID-19. Je me demande ce que disent les gens qui disaient que ce n'était qu'une grosse grippe et qu'il ne fallait pas s'affoler...

Séverine revient avec une bonne nouvelle, elle a été choisie pour télétravailler. Oui, le travail de Séverine garde une majorité de personnel physique dans leurs locaux...

Mercredi

Un de mes nouveaux collègues me suggère de monter une plateforme de visioconférence basée sur Jitsi Meet sur notre infrastructure, les outils fournis par notre maison mère étant déjà en cours de saturation. Il m'envoie le lien vers un tuto de Framasoft. C'est simplissime à mettre en place. Mais de base, c'est ouvert à tous vents, n'importe qui peut s'amener et créer une conférence... Je monte ça pour enrayer les saturations, et je créée les conditions pour une autre... 🤔

Je galère dessus ensuite une semaine pour diverses raisons. Je voulais une authentification LDAP avec notre AD, mais je n'ai jamais compris exactement pourquoi Jitsi Meet ne contactait jamais l'AD. Je finis par laisser tomber au bout de deux jours.

Après je me rends compte que j'ai un problème de DNS... 😑 Mon Jitsi Meet déconne à plein tubes parce que les clients ne trouvent pas l'adresse... Je finis par résoudre le problème, les noms sont correctement répliqués, c'est bien.

Enfin, je vois que Webmin, qui m'a fidèlement servi toutes ces années me fait une crasse... Il utilise le port UDP 10000 pour contacter d'autres serveurs Webmin auxquels il serait associé. Mais Jitsi Meet utilise juste UDP 10000 pour les flux vidéos... 😑 Encore une journée de perdue.

On est mardi suivant, le site fonctionne enfin. Je le réplique sur un autre site en backup, et on a l'occasion de s'en servir pour une réunion. On a tout plein de problèmes, des gens qui n'arrivent pas à se connecter, des échos, tout ça...

Pourtant le système est réputé peu gourmand en ressources... Il est possible que ce soit le fait que la plupart des gens utilisent Firefox chez nous et que Firefox n'est pas super compatible avec jitsi Meet. Chrome semble bien plus à l'aise, on va recommander aux gens de l'utiliser pour les conférences, on verra ce que ça donne.

Le reste de la semaine

Pour moi ça s'est passé très vite, plongé dans mes problèmes de visioconférence. Pas mal d'appels pour configurer les accès, rien de bien méchant. Mais je n'ai pas eu une minute à moi. Heureusement, je me tiens (presque toujours) à mes horaires de télétravail, l'heure c'est l'heure. Si j'ai quelque chose en cours, je n'arrive pas à m'arrêter, mais je prends sur moi et je fais autre chose. J'ai quand même travaillé sur Jitsi Meet jusqu'à 21 h 30 vendredi, et j'ai commandé un câble USB pour un personnel qui a emmené l'imprimante de son bureau chez lui à minuit passées hier...😒

Le week-end

On a eu un week-end tout à fait normal, le confinement ne nous change pas beaucoup, on est très casaniers. Séverine pousse les enfants à aller dans le jardin, et ils résistent. 😅

Remarques diverses

Je vois que Séverine ne peut pas vraiment télétravailler. Elle commence plus tôt qu'en physique et termine plus tard. Elle n'arrive pas à faire la part des choses, ça pourrait devenir ardu à long terme.

Je disais que les enfants n'ont pas l'air de souffrir de la situation. Mais le petit s'inquiète de la nature du virus et de ce qu'il entend à la télé, les morts, tout ça. On lui explique de façon simple, honnêtement. Il a l'air rassuré.

Le monde semble avoir disparu sous le COVID-19. On ne parle plus de rien d'autre. C'est un peu lassant.

Séverine a cassé son téléphone en le faisant tomber dans la cuisine mercredi, à son premier jour de confinement. L'écran s'est complètement fissuré. Il était déjà tombé à plusieurs reprises, c'était le coup de trop. On a dû en racheter un. Un écran de Galaxy S8 c'est dans les 250 €... 🙄 Mettre ça dans un téléphone de 3 ans, c'est un peu abuser. Vaut mieux racheter le modèle de l'année pour 900. 😉

La Corée du Sud est souvent citée en modèle pour la gestion de la crise. Je sais qu'il y a des différences culturelles mais comment un pays comme la France peut autant galérer par rapport à la Corée ? Le New York Times analyse le cas coréen et suggère pourquoi son modèle n'est pas transposable.

Ah, et j'ai découvert que mon mode de vie préféré s'appelle confinement. 😑

J'aime de plus en plus le Raspberry Pi, qui permet de fabriquer toutes sortes de machines à bas coût et bas encombrement. 😉

Cette fois-ci, j'ai fabriqué une station de rétrogaming avec Recalbox. C'est un projet open source visant à émuler de façon simple et abordable tout un tas de vieilles consoles sur un bête Raspberry Pi. Le 4 n'est pas encore supporté, mais ça marche très bien sur un 3 B+. 😉

Ingrédients nécessaires

  • Un Raspberry Pi. N'importe quel modèle sauf le 4 et les A/A+. Même le Zero est supporté ! Je conseille quand même un 3, pour de meilleures performances.
  • Une carte microSD de 16 Go minimum. Essayez d'avoir une carte de 128 Go ou plus pour les besoins de cette réalisation.
  • Une image de Recalbox, chez Recalbox.
  • Rufus, pour écrire l'image sur la carte microSD, ou tout autre utilitaire de votre choix.
  • Un câble HDMI, une manette USB, une alimentation microUSB de qualité. Un boîtier pour Raspberry Pi, pour ne pas qu'il roule dans la poussière à faire des courts-circuits. 😆
  • Un écran où afficher l'image. 😅 Télé, moniteur, tant que la connectique le permet. 😉

C'est parti !

On lance Rufus pour écrire l'image Recalbox sur la carte microSD, on l'insère dans le Raspberry Pi, on connecte écran, manette et alimentation.

La Recalbox démarre, effectue son installation et c'est prêt. 😁 L'interface se contrôle à la manette, les touches sont expliquées en bas de l'écran, c'est simplissime.

On va quand même changer la langue du système et configurer le réseau (nécessaire pour ajouter des jeux).

Appuyez sur Start sur la manette, pour ouvrir le menu général. Sélectionnez System Settings et changez la langue.

Revenez sur la menu général, passez sur Options réseau. Si vous êtes connecté en filaire, vous devriez avoir votre adresse IP affichée (notez-la au cas où). Sinon, connectez-vous en WiFi le cas échéant, je n'ai pas mon Recalbox sous la main, mais il s'agit de fournir un SSID et un mot de passe, c'est pas sorcier. 😉

Et maintenant on joue à quoi ?

Bien... Il y a des jeux libres de droits inclus dans l'image, donc la Recalbox est utilisable telle quelle.

Ensuite, on peut trouver des ROMs de jeux divers dans les allées sombres du net, Google est toujours votre ami. 😆

Mais personnellement, j'ai une solution légale pour avoir des milliers de jeux !

MAME

MAME, Multiple Arcade Machine Emulator, est un émulateur de bornes d'arcade open source. Et il est inclus dans Recalbox. 😉

C'est une chose d'avoir l'émulateur, mais il faut des jeux ! Et c'est là qu'Internet Archive nous vient en aide. Internet Archive est une organisation à but non lucratif qui collecte les media de tous types et de tous horizons pour les préserver. Et les jeux vidéos font partie de ces media. 😉

Internet Archive propose donc des archives Zip de ROMs de jeux d'arcade destinés à MAME. L'archive MAME 2015 Reference: Full Non-Merged Arcade Romsets propose des milliers titres de jeux d'arcade (la presque totalité inconnus toutefois), dont une bonne partie ne fonctionne pas, pour diverses raisons de compatibilité ou de manque de support par absence de support logiciel (BIOS qui manque).

Mais cette archive permet quand même de jouer à des jeux célèbres comme Street Fighter II, Mercs, torutes Ninja et j'en passe. 😁

Par contre, l'archive fait plus de 80 Go compressée. Ce qui dépasse de loin la capacité de la carte de 16 Go... Si vous avez une carte de 128 Go, vous pouvez vous connecter à votre Recalbox en réseau pour copier l'intégralité du contenu de l'archive dans \share\roms\mame.

Ajouter des jeux

Mais de quoi il parle ?! 😮

Le Raspberry Pi dispose d'un connecteur Ethernet (sauf Zero), et les 3 ont même du WiFi intégré. On a configuré le réseau précédemment (sinon remontez à C'est parti), la Recalbox est accessible en SMB, tapez \\recalbox dans l'explorateur (Mac users, ça sera cifs://recalbox pour vous 😋), et vous tombez sur le partage \share. Dans ce partage, il y a un dossier roms où se trouvent les dossiers relatifs aux divers émulateurs. Les noms sont assez explicites, vous devriez vous retrouver. Si vous n'avez pas la possibilité de connecter la Recalbox au réseau, tout n'est pas perdu, voyez dans Ajout de stockage externe plus bas.

Pour ce qui nous intéresse, c'est le dossier mame. Copiez toute l'archive dans ce dossier. Le contenu, pas l'archive elle-même, hein ? Ça prendra des heures, c'est normal. 😒

Une fois les jeux copiés, appelez le menu (touche Start), Options de l'interface, Mettre à jour les listes de jeux.

Et là, allez dans la liste de jeux MAME, c'est la caverne d'Ali Baba ! Utilisez le saut par lettre dans le menu de l'émulateur (Start) pour naviguer plus facilement. 😉

Comme je disais il y a plein de jeux qui ne fonctionnent pas, je vous laisse le soin de chercher des solutions si vous voulez absolument y jouer. 😉

Ajout de stockage externe

Dans mon cas, j'ai utilisé une carte microSD de 32 Go dont je ne me servais pas. C'est très insuffisant pour l'archive MAME... 😑 Mais heureusement Recalbox permet l'utilisation de stockage externe !

Insérez votre périphérique de stockage USB dans le Raspberry Pi, et dans le menu général (Start), Options Système, choisissez Media de stockage, et sélectionnez votre périphérique de stockage. La Recalbox redémarre alors, et crée les dossiers adéquats sur le périphérique.

Vous pouvez alors éteindre la Recalbox, débrancher le périphérique de stockage, et le connecter à votre ordinateur pour copier les ROMs dans les dossiers idoine. Rebranchez le périphérique sur la Recalbox, rallumez-la, mettez à jour la liste de jeux (Start, Options de l'interface, Mettre à jour les listes de jeux) et à vous les machines d'arcade ! 😁

Ah, dernier détail, c'est la touche Select pour mettre des pièces, Bouton XBox/PS + Start pour quitter un jeu, et Bouton XBox/PS + A (celui du bas) pour les options du jeu.

Have fun ! 😉

Plein d'astuces que j'ai apprises en quelques jours...

Améliorer la compatibilité de MAME

Déjà, je disais que la plupart des jeux de l'archive MAME ne marchait pas. Et malheureusement les jeux Neo Geo aussi... 😑 Mais il y a un moyen simple d'y remédier : éditer le fichier recalbox.conf dans\share\system, et ajouter la ligne suivante :

mame.core=mame2015

Neo Geo

Il y a aussi le problème des jeux Neo Geo, qui ne se lancent pas... Il faut changer l'émulateur, toujours dans recalbox.conf, changer la ligne neogeo.emulator=libretro en neogeo.emulator=fba2x. Il y a aussi un fichier neogeo.zip dans l'archive. C'est le BIOS de la Neo Geo. Il me semble que le recopier dans \share\bios aide certains jeux a tourner.

BIOS

Et en parlant de BIOS, Recalbox a besoin des BIOS de certaines machines pour les émuler. Mais elles ne sont pas toutes libres de droits, donc il va falloir les dénicher... ici. 😉 il suffit de coller le contenu de l'archive dans \share\bios. Si le lien meurt ça doit être trouvable ailleurs. 😅

Délai de lancement des jeux lors de l'utilisation de manettes 8bitdo

J'ai des manettes 8bitdo SF30 Pro et SN30 Pro, que j'utilisais avec la Switch. J'ai changé le mode des manettes en XInput (commes les manettes XBox), elle s'associent bien, mais les jeux mettent une bonne minute à se lancer... Long. 😒 J'ai fini par apprendre que les dernières versions d'Emulation Station sur lequel est basé Recalbox avaient introduit beaucoup de changements, et que le mode recommandé était DInput (comme les manettes Android).

En effet, la différence est spactaculaire, les jeux se lancent instantanément ou presque !

Mais.

La manette n'est plus reconnue une fois dans le jeu... 😑

Après moult péripéties, j'ai fini par mettre à jour le firmware des manettes, et les réinitialiser (tableau explicatif des modes recommandés pour chaque manette). Et enfin, elles sont correctement reconnues en jeu, et les jeux se lancent normalement ! Ouf ! 😆

J'ai aussi eu des problèmes de latence sur les manettes Bluetooth... Et il suffit d'un paramètre pour y remédier. Il faut encore éditer recalbox.conf et y ajouter :

controllers.bluetooth.ertm=1

Trier les jeux

Maintenant on a des milliers de jeux. Mais il y en a quand même plein en double (clones), d'inintéressant, qui ne fonctionnent pas, qui requièrent des appareils spécifiques ou qui sont des affichages de... flippers !

Heureusement il est possible de trier assez facilement les ROMs, avec deux petits utilitaires, Romcenter et MARRT.

Romcenter est un gestionnaire de ROMs MAME. Il va nous permettre de filtrer (la plupart) des clones. Romcenter peut constituer une dabe de données à partir d'un MAME installé, donc on va devoir lui en fournir un. Téléchargez MAME 2015, dézippez-le sur votre ordinateur, et placez les ROMs de l'archive MAME 2015 dans roms (ayez une sauvegarde au cas où).

Lancez Romcenter.exe, et cliquez sur New. Sélectionnez votre executable MAME dans Get data from..., indiquez un chemin où stocker la bade de données avec Save data as..., et cliquez sur Filter settings. Ça va tourner un moment, il y a beaucoup de fichiers à parcourir.

Une fois la fenêtre de filtre affichée, cliquez sur Games Filtering, et enlevez les coches sur Clones et No dumps dans les imports, et cochez au moins Mechanical et Empty games dans les exclusions. Personnellement j'enlève aussi Slots/Poker/fruit et Preliminary games. Validez les filtres, et cliquez sur Create sur la fenêtre principale. Et ça mouline encore.

Une fois la base de données créée, Romcenter affiche la liste de tous les jeux compris dans le Romset. Il faut maintenant lui indiquer où sont les fichiers de ROMs. Cliquez sur Add dans le menu, et sélectionnez le dossier roms de votre MAME. Romcenter va balayer le contenu (encore de l'attente).

Sélectionnez roms sous Rom files de l'arborescence de la fenêtre principale, cliquez sur Fix / Remove useless files dans le menu. Romcenter supprime alors tous les jeux filtrés à l'étape précédente.

Ça fait un bon tri, déjà, la plupart des jeux restants sont opérationnels (sauf exceptions, la base de données de Romcenter ne semble pas exhaustive). Il reste maintenant à sucrer les types de jeux dont on ne veut pas, dont les érotiques...

MARRT, pour MAME Adult Rom Removal Tool, permet précisément cela. Il se base sur les Catlist de mameworld.info pour effacer ou déplacer les ROMs indésirables. Installez MARRT (peut demander .Net Framework 1.1, installez la version 32 bits), et téléchargez les listes Cat32 (New Files / MAME32 Files / Cat32 sur le site).

Commençons par enlever (la plupart) des jeux érotiques, but premier de MARRT. Placez le fichier mature.ini de Cat32 dans le répertoire de MARRT (C:\MAME\MARRT par défaut), et lancez MARRT. Vérifiez que la liste ROMs To Delete: est bien populée (sinon vous avez le fichier de test). Indiquez l'emplacement de vos ROMs dans Please Enter Your MEME ROMs Directory:, et choisissez d'effacer (Delete ROMs) ou de déplacer (Move ROMs to). Indiquez l'emplacement des ROMs filtrées dans le cas échéant. Cliquez sur Delete ROMs (ou Move ROMs), et les jeux érotiques sont retirés de votre liste.

L'archive Cat32 contient en fait bien plus que la liste des ROMs érotiques. Elle contient les noms des archives de jeux triées par genre. Catlist.ini liste les jeux par genre et sous-genre. L'astuce ici est de copier les listes des genres non désirés et de les coller dans mature.ini, après la ligne [*Mature*], et de repasser MARRT sur les ROMs. Adieu jeux de baseball ! 😆

Scraper

C'est bien d'avoir des milliers de jeux, mais on a juste une liste de noms, et à moins de les lancer un par un, impossible de savoir de quoi il s'agit (à part les jeux célèbres).

La solution au problème, c'est le scrapper. Il s'agit de rechercher le jeu dans une base de  données qui liste les détails des jeux. Ensuite Recalbox liste les jeux avec leur description (année, genre, nombre de joueurs, descriptif du jeu, illustration), ce qui rend la navigation plus aisée. Recalbox propose un Scraper de base, mais chez moi il plante systématiquement sur les listes MAME (trop d'entrées je pense).

Heureusement il y a un how-to chez Recalbox, mais il est un peu daté, il faut quelques ajustements.

Il faut d'abord récupérer le programme scraper de sselph. Copiez l'exécutable dans le dossier roms de MAME (celui qu'on vient de nettoyer, au hasard 😉), ouvrez une ligne de commande (soit par le menu contextuel soit par le menu Démarrer), allez dans roms, et lancez la commande suivante :

.\scraper.exe -mame -mame_img "m,t,s" -image_path="./media/images" -no_thumb=true -max_width=375

Le chemin est erroné sur le how-to officiel, il mentionne l'ancien chemin de la base des scraps.

Scraper génère un gamelist.xml, et range les illustrations dans media/images. Le dossier de ROMs de MAME est alors prêt à être transféré sur la Recalbox. Placez le contenu de roms de votre MAME d'ordinateur dans \share\roms\mame. Attention à ne pas recopier roms dans mame hein, c'est bien le contenu qu'il faut copier. 😉

Redémarrez la Recalbox, et magie, chaque jeu (ou presque) est illustré et renseigné, et (presque) tous les jeux indésirables sont partis ! 🎉 Il reste quand même encore des milliers de jeux (chez moi dans les 7500), dont plein de doubles (encore, souvent les déclinaisons régionales où seul le texte d'avertissement change 😒), mais ça dégraisse bien (chez moi ça m'a gagné 30 Go !) et ça laisse des heures de découverte et d'amusement ! 😁

Mais je n'ai pas de Raspberry Pi et je voudrais jouer aux jeux d'arcade aussi !

Je ne l'ai pas mentionné avant, mais c'est parfaitement possible. 😉 Il faut l'archive 0.197 d'Internet Archive, et MAME 0.197 (ou n'importe quelle combinaison de version correspondantes MAME/Romset). Piochez la bonne version pour votre ordinateur (l'installeur 64 bits devrait convenir à tout le monde), installez MAME, et décompressez l'archive dans le répertoire roms de MAME. 😉

Après 20 ans d'activité, le projet SETI@Home, Search for ExtraTerrestrial Intelligence at Home touche à sa fin le 31 mars 2020, faute de données à traiter. SETI@Home est un projet scientifique distribué qui analyse les données de radiotéléscopes (dont celui d'Arecibo, star de nombreux films)  à la recherche de signaux inhabituels qui pourraient témoigner de vie extraterreste évoluée.

Mes ordinateurs ont participé aux calculs depuis presque le tout début, et il va maintenant falloir voir s'il y a d'autres projets intéressants à qui offrir du calcul...