À propos du projet

Lunchbox est une application multiplateforme conçue comme navigateur de jeux, gestionnaire de collections et frontend d'émulateur. Développée en Rust avec CXX-Qt et QML, elle offre une expérience de bureau native, distincte de son ancienne version basée sur Electron. Le logiciel suit une architecture « acquisition-first », privilégiant la gestion et la récupération des collections de jeux aux côtés des capacités d'émulation. Les fonctionnalités clés incluent : - **Frontend Qt natif** : utilise Rust et QML pour des performances élevées et un rendu natif sur Windows, macOS et Linux. Il prend en charge les vues virtualisées pour les grandes bibliothèques, le défilement accéléré et la persistance de l'état, y compris le placement des fenêtres et les filtres. - **Couch Mode** : une interface plein écran optimisée pour clavier et manette, destinée à une utilisation sur téléviseur dans le salon. Il conserve la sélection de jeu entre les redémarrages, prend en charge les sélecteurs de plateforme et de collection, et inclut un Attract Mode pour les affichages inactifs. Il gère également la lecture des médias mis en cache et la personnalisation des thèmes via des paquets déclaratifs `.lunchbox-theme`. - **Gestion et acquisition des jeux** : s'intègre à qBittorrent pour télécharger des jeux via torrents ou magnets. Il prend en charge l'index de bundles Minerva pour des acquisitions sélectionnées et permet aux utilisateurs d'ajouter des sources torrent personnalisées. Le système examine les sélections de fichiers avant téléchargement, gère les ensembles multi-disques et gère les processus d'importation avec pause, reprise et nouvelle tentative. - **Outils de métadonnées et de bibliothèque** : fournit une édition étendue des métadonnées pour les titres, descriptions, genres et champs personnalisés. Il peut récupérer des métadonnées en ligne depuis IGDB ou ScreenScraper avec validation de l'utilisateur. Les fonctionnalités incluent des collections intelligentes basées sur des tags et des règles, la gestion des régions/versions pour les sorties régionales, et un moteur de recommandation « More Like This ». - **Intégration des émulateurs** : détecte les émulateurs autonomes installés (comme RetroArch, DOSBox, MAME) et les cores. Il prend en charge des configurations de lancement complexes, y compris les archives eXoDOS/eXoWin3x/eXoWin9x qui sont préparées et mises en cache localement. Il gère divers types de médias, notamment le laserdisc (Hypseus/Daphne) et les systèmes d'arcade. - **Prise en charge des manettes** : utilise GilRs pour l'entrée des manettes multiplateformes, avec prise en charge du branchement à chaud, des zones mortes analogiques et du remappage. Il inclut un solveur de règles de disposition pour des mappages d'émulateur calibrés sur différentes configurations matérielles. - **Paramètres et portabilité** : permet la configuration du stockage des ROMs, des clients torrent et des fournisseurs de médias. Prend en charge l'exportation de sauvegardes portables `.lunchbox-profile` incluant l'état des collections et les thèmes, à l'exclusion des données sensibles comme les ROMs et les secrets. Les profils sont validés lors de la restauration pour garantir leur intégrité. L'application sépare l'identité du catalogue des offres d'acquisition, garantissant que le contenu téléchargé ne modifie pas la structure de la bibliothèque principale, sauf gestion explicite par l'utilisateur. Elle vise à fournir un environnement robuste, sécurisé et riche en fonctionnalités pour les passionnés de jeu sur PC.