Station d'accueil AIO Retro Lite CM4
Lien vers la source officielle :GitHub - StonedEdge/Retro-Lite-CM4-Dock : Une station d'accueil conçue pour être utilisée avec la console de jeu Retro Lite CM4.
Description
Mise à jour : 2023/07/09
Remarque : La base de code est maintenant fonctionnelle en termes d'écran d'accueil, d'images de statistiques et de métadonnées avec enveloppement de texte ! Je considère ce projet comme terminé à ce stade. N'hésitez pas à y apporter des améliorations et à l'utiliser comme vous le souhaitez !
La station d'accueil/hub Retro Lite CM4 est conçue pour être utilisée avec la console de jeu Retro Lite CM4, mais fonctionnera sur n'importe quel hôte Linux générique exécutant RetroPie. L'objectif principal de ce projet est d'agir comme une boîte de métadonnées pour votre système RetroPie et d'en apprendre davantage sur les jeux auxquels vous jouez en temps réel - l'objectif est de préserver une petite
- Écran couleur 16 bits entièrement intégré de 1,5", piloté par SPI 128x128.
- 3 modes, y comprisécran de démarrage,statiquesetJeu.Mode. La navigation s'effectue à l'aide d'un bouton-poussoir connecté à une broche GPIO.
- 3 ports USB 2.0 externes à utiliser pour le clavier, la souris et d'autres périphériques en mode bureau. Le contrôleur USB est compatible pour une faible latence.
- Chargement USB-C.
- Sortie vidéo HDMI.
Voici le flux général du programme et la façon dont il fonctionne lorsque l'alimentation est appliquée :
- Mode écran de démarrage.
- L'écran de démarrage est affiché jusqu'à ce que EmulationStation démarre. Après quoi, le mode statistiques est activé.
- Mode statistiques.
- Affiche les statistiques générales du système - adresse IP, température du SoC, utilisation de la RAM, etc. Les statistiques sont mises à jour toutes les 5 secondes.
- Statistiques rétro - voyez les 5 jeux les plus joués sur votre système, par (a) durée et (b) nombre de fois joués.
- Mode de jeu.
Montrer une image combinée du jeu en cours de lancement de n'importe quel jeu.
Parcourez 5 différentes vues de métadonnées via le bouton poussoir attaché à la station d'accueil. Ce sont :
a) Image vectorielle combinée de la roue et de la capture d'écran b) Boîte de jeu officielle c) Une image vectorielle aléatoire du matériel réel sur lequel le jeu pourrait être joué. Inclut toutes les variantes de chaque console (merci à Ampersand pour avoir fourni des vecteurs de haute qualité !) d) Une description du jeu, qui défile verticalement le long de l'écran e) D'autres métadonnées, y compris la notation,
Installation
Pour installer, exécutez (cela ne fonctionnera pas pour le moment !)
git clone https://github.com/StonedEdge/Retro-Lite-CM4-Dock.git sudo chmod +x install_dock.sh ./ install_dock.sh
Je recommande d'extraire vos fichiers multimédias via le scraper intégré dans les menus du script d'installation de RetroPie. Cela téléchargera toutes les métadonnées requises et les stockera automatiquement dans /home/pi/RetroPie/roms/{system_name}/media.
Emplacements du répertoire des métadonnées.
a)La couverture actuelle du jeu (boxart)- /opt/retropie/configs/all/emulationstation/downloaded_images/{system}/{rom_name}.png
b)Screenshot + image de la roue combinée.- /home/pi/retropie/roms/{system}/media/wheel/{rom_name}.png et /home/pi/retropie/roms/{system}/media/screenshot/{rom_name}.png
c)Des images vectorielles aléatoires de la console ont été publiées.- /home/pi/pico/pico-examples/pico-spi/consolevectors
d)Description du jeu utilisant le défilement vertical.- /opt/retropie/configs/all/emulationstation/gamelists', nom_du_système, 'gamelist.xml'
e)Développeur de jeux.- /opt/retropie/configs/all/emulationstation/gamelists', nom_du_système, 'gamelist.xml'
f)Date de sortie.- /opt/retropie/configs/all/emulationstation/gamelists', nom_du_système, 'gamelist.xml'
g)Vidéos- /home/pi/retropie/roms/{system}/media/videos/{rom_name}.mp4
Matériel informatique.
Le schéma de câblage pour connecter l'écran OLED à la station d'accueil est situé ci-dessus. Les fichiers Gerbers et CAO (à la fois pour la station d'accueil et le boîtier OLED séparé) seront mis à jour bientôt une fois que le logiciel sera terminé.
Choses à faire.
- Détecter le jeu/système actuel démarré en utilisant runcommand.
- Ajouter l'écran de démarrage Retrolite CM4 au démarrage.
- Redimensionner et convertir les images de capture d'écran et de roue en RGB565 128x128 sur le Pi 4 (Python)
- Détecter le RP2040 par les IDs de produit/fournisseur (VID/PID)
- Identifiez comment extraire les métadonnées du texte du jeu en utilisant Python.
- Envoyer les statistiques du système à RP2040 via USB.
- Effacer le buffer lorsque runcommand-onend.sh est exécuté lorsqu'un jeu est fermé, ramenant l'utilisateur à la vue des statistiques du Pi.
- Arrêtez l'écran de démarrage lors de la détection du port COM et passez en mode statistiques.
- Envoyez RGB565 combined.png via le port série sans corruption, et bascule automatique des statistiques du Pi vers le jeu en cours.
- Écrivez un script Python pour redimensionner correctement la boxart afin qu'elle s'adapte à l'écran.
- Envoyez une image aléatoire à Pico située dans consolevectors en fonction du système actuel lancé sur RetroPie (aucun redimensionnement nécessaire).
- Mettre en œuvre une machine d'état de bouton pour basculer entre le mode statistiques et le mode image.
- Mettez en œuvre un délai qui fait passer l'écran OLED en noir sans aucune entrée de bouton. Réveillez l'écran OLED lorsqu'un bouton est pressé après X minutes d'inactivité.
- Mettre en œuvre les métadonnées du jeu dans le mode de jeu.
- Éteindre gracieusement l'affichage OLED lorsque la console est mise hors tension et le redémarrer lorsque la console est remise sous tension.
- Identifiez comment effectuer un défilement vertical du texte (matériel ou logiciel) sur le SSD1351 pour les descriptions de jeux.
- Corrigez quelques nouvelles erreurs de ligne en mode métadonnées.
- Trouver un moyen d'encoder les caractères spéciaux - probablement via les pages de code européennes (CP1250/1252)
C'est sympa à avoir/mais je ne vais probablement pas l'implémenter de sitôt !
- Écrivez un script Python pour diviser une vidéo en images vidéo individuelles sur le Pi 4.
- Configurez la bibliothèque tinyUSB pour essayer d'atteindre des vitesses de transfert de 0,9 Mo/s pour toutes les images, pour une vidéo à 30 FPS sur USB 1.1 (maximum 1,5 Mo/s).
- Implémentez les "retrostats" en mode statistiques pour montrer à l'utilisateur les jeux les plus joués par lui.Nombres de fois jouées&Durée du temps.En utilisant les scripts RetroStats. Remarque : Pas de RTC, donc la durée du temps peut ne pas être exacte.
모델 소스
