まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - Rétrogaming

Fil des billets - Fil des commentaires

dimanche, 1 mars 2020

Mame en vrai 15 kHz, le retour !

Près de 7 ans plus tard, est-il toujours possible de modifier Linux afin qu'on puisse brancher un écran cathodique, comme une TV ou un écran d'arcade, autrement appelé moniteur 15 kHz, sur un ordinateur muni d'une carte graphique ATI ?
La démarche décrite dans mon billet de l'époque pour patcher 15 kHz, puis compiler un noyaux Linux est-elle toujours valable ?

  • C'est ce que j'ai eu besoin de valider afin de pouvoir mettre à jour l'OS de ma borne et utiliser les dernières versions de mame.

Le temps passe à une vitesse folle. À peine a-t'on un système jouable en place qu'il est déjà sur la sellette du remplacement, et fatigué par ce manège, j'avais fini par laisser courir… Après tout, ma borne fonctionne, pas besoin d'y toucher !
Jusqu'au moment où l'on voudrait bien pouvoir profiter des dernières innovations de mame.
Problème, l'OS (debian8) est trop vieux pour supporter SDL2 requis maintenant par mame, et une fois debian10 réinstallé, impossible de faire fonctionner le noyaux Linux 3.2 patché 15 kHz compilé à l'époque.
Malheureusement une recherche rapide sur les forums d'alors me fit comprendre que les patches Linux n'étaient plus publié et disponible pour les versions récentes…
Occupé ailleurs j'avais un peu mis ça de côté, et puis un jour, au détour de la consultation des statistiques du blog, j'ai découvert qu'on « linkait » gentiment mon billet sur github.
Le dénommé Doozer proposait donc des patches pour le noyaux v5, et dés la première lecture du document, je compris que pas mal de choses avaient changé, dans la façon de faire fonctionner ce noyau patché, et plus tard dans la manière de le compiler.
Avant de continuer à raconter ma vie, on va déjà faire ça !

Compilation de Linux patché @15kHz :

Voici donc la nouvelle routine de compilation au goût du jour !

  • 1 — Prérequis :

Installer debian 10 Buster, puis les paquets nécessaires à la compilation :

apt update
apt upgrade
apt install build-essential bc kmod cpio flex libncurses5-dev dpkg-dev debconf-utils debhelper fakeroot zlib1g-dev rsync


  • 2 — Préparatifs :

Récupérer les sources et les extraire dans un dossier de travail : /home/user/kernel5.5

mkdir /home/user/kernel5.5
cd /home/user/kernel5.5
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.gz
tar xvf linux-5.5.tar.gz

Se rendre dans le dossier crée :

cd linux-5.0.1

Configurer le kernel :

make olddefconfig

Cette commande va chercher la configuration du kernel actuel (booté) et met toutes les nouvelles options en « par défaut ».
Il faut donc s'assurer que le debian actuel est démarré sur un noyaux 5.4 au moins.

Éditer le fichier .config, afin de vérifier que cette ligne ne contient rien entre les guillemets (sinon la compilation plantera dés les premières minutes) :

CONFIG_SYSTEM_TRUSTED_KEYS = ""

Exécuter ce script permet de ne pas compiler un noyau de debug, et donc de gagner du temps :

./scripts/config -d CONFIG_DEBUG_INFO


Lire la suite...

samedi, 11 janvier 2020

Mini Game Center -3-

Suite de l'étude précédente :
Bien ! Maintenant que le système est installé, il nous faut un programme pour exploiter la mini-borne, et ainsi automatiser l'affichage des vidéos.

1 - Playlist de vidéos et pilotage par GPIO :

  • Il faut voir mes petites bornes comme des judebox à jeux vidéos, qui jouent une vidéo en boucle.

- Sur la carte SD sont stockées plusieurs vidéos de démo de jeux ou de parties enregistrées.
- Les vidéos sont jouées par un script Python, et il est alors possible d'interagir avec la vidéo qui joue. Ainsi on va pouvoir :

- augmenter/diminuer le volume sonore, à l'aide de deux boutons poussoir.
- augmenter/diminuer la luminosité de l'écran, à l'aide de ces même deux boutons, avec un appuie long (> 2s).
- sauter de 30 secondes en avant/arrière, à l'aide de deux autres boutons poussoir.
- jouer la vidéo suivante/précédente, à l'aide de ces même de deux autres boutons, avec un appuie long (> 2s).
- faire une pause/relancer la lecture de la vidéo, à l'aide du bouton dédié.


  • Voici dores et déjà une petite vidéo de démonstration pour bien comprendre l'idée :


  • Et donc, pour ce faire, voici le schéma de câblage des boutons aux GPIO :


C'est le dessin du RaspberryPi Zero qui est représenté, mais les câbles (cf. la vidéo) sont bien raccordés sur le Pi HAT (cf. le schéma structurel). Les condensateurs d'anti-rebond font 100nF.
Il ne reste plus qu'a programmer…

Lire la suite...

vendredi, 10 janvier 2020

Mini Game Center -2-

Suite de l'étude précédente :

Le système électronique/informatique est maintenant validé et avant d'aller plus loin, il est temps de récapituler le détail la configuration informatique complète à installer sur la carte SD du RaspberryPi.

1 - Installer et configurer le système d'exploitation, Raspbian Lite :

  • Déployer l'image sur une carte SD. Depuis un système GNU/Linux, le plus simple c'est avec la commande dd :

(attention, of=/dev/sdx à adapter pour la cible de votre carte SD, en cas d'erreur risque d'effacement d'un disque dur non désiré)

sudo dd bs=4M if=2019-09-26-raspbian-buster-lite.img of=/dev/sdx conv=fsync status=progress
  • Placer la carte SD dans le Raspberry, et le mettre sous tension.

Au premier boot, le système de fichier est étendu à la carte SD entière, puis reboot automatique.
Au second boot, le système est prêt, mais en US…
Pour rappel :

Login : pi
Pass : raspberry

  • Première chose à faire, autoriser les réseaux WiFi, éditer :
sudo nano /etc/network/interfaces

Renseigner :

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  • Exécuter raspi-config, et configurer tous les trucs comme on veut, notamment les variables locales (time zone, clavier, etc), et surtout le login automatique de l'utilisateur.
sudo raspi-config

raspi-config01.png
raspi-config02.png
raspi-config03.png
Voici sans image les options à activer :

2 Network Options > N2 Wi-fi --> ssid et passphrase
3 Boot Options > B2 Wait for Network at Boot --> No
3 Boot Options > B1 Desktop / CLI > B2 Console Autologin
4 Localisation Options > I1 Change Locales --> fr_FR.UTF-8 UTF-8
4 Localisation Options > I2 Change Timezone --> au choix
4 Localisation Options > I3 Change Keyboard Layout --> au choix
5 Interfacing Options > P2 SSH --> Yes
5 Interfacing Options > P4 SPI --> Yes
5 Interfacing Options > P6 Serial --> Yes
7 Advanced Options > A2 Overscan --> No
<Finish>, Reboot

Lire la suite...

jeudi, 9 janvier 2020

Mini Game Center -1-

Introduction :

Il y a quelques temps (quand je dis ça, souvent tu peux compter années…) j'avais vu qu'il existait des modèles réduits de machines et bornes d'arcade. Sous forme de « jouets », c'est à dire tout fait et peint, en boite. J'ai trouvé ça sympa…
Plus tard j'ai découvert que ça existait aussi en maquette, mais souvent découragé de constater les ruptures de stocks, où simplement que la période d'exploitation (très courtes de nos jours) était passée.
Alléché par les quelques diorama agrémentés de figurines aperçu parfois au détour d'albums photos partagés, j'avais quand même envie d'avoir ma petite salle d'arcade dans la vitrine, et puis un jour réédition ou re-stock je sais pas, j'ai eu l'occasion de me procurer quelques maquettes au 1/12.


1 - Présentation du projet :

  • Bien évidemment, mon choix s'est immédiatement porté sur le kit de l'AstroCity, et de penser très fort au déballage de celui-ci, qu'avoir une telle maquette sous la main m'aurait grandement facilité la vie et permis d'améliorer significativement la construction de ma borne !

20180719_183920.jpg 20180719_183813.jpg
D'autres maquettes et accessoires viendraient s'ajouter afin de concevoir un diorama autour de bornes telles que Taiko no Tatsujin, une Viewlix Street Fighter IV, d'autres Astro en versus, des distributeurs de Gashapon, une machine à pince, et des bornes qui n'existent pas ou indisponible en maquette, comme les bornes Taïto (Galaxian) qui seraient alors « full-scratchée ».

  • Comme je n'invente presque jamais rien, c'est au détour d'une vidéo que j'ai pu voir que certains s'amusaient à intégrer de petits écrans LCD pilotés par un RaspberryPi, et visiblement ça se fait depuis un bout, car c'était un RPi2 (ou 3) qui se voyait dessoudé de ses connectiques pour pouvoir être placé dans la maquette, alors donc que le RPi Zero n'existait pas.

Vous devinez la suite, faire pareil, mais à ma façon !

  • Chaque bornes se verrait alors agrémenté d'un écran diffusant une vidéo de jeu, afin de rendre le diorama encore plus vivant.

Pour la construction de la maquette, un live Twitch dont voici la rediff est dispo, et pour les expérimentations d'écrans aussi :

On gagne toujours à discuter autour de soi, et grâce à mes visiteurs·euses/commentateursṫrices de live, j'ai reçu quelques informations importantes et conseils avisés, qui m'auront orienté efficacement dans ce projet, aussi je tiens ici à vous remercier :)

Lire la suite...

- page 4 de 36 -