[TUTO] Configurer/Créer/Gérer sa bibliothèque de ROM



  • Bonjour, ce tuto vous présente MA config, elle n'est peut etre pas adaptée pour tous le monde mais elle présente plusieurs avantages. Résumé :

    • Mes Roms, Gamelist.xml, images sont stocké sur un NAS. (la manipulation est identique pour un disque externe, un partage réseau depuis un autre PC, ou même une clef USB)
    • Toutes les manipulations se font depuis un PC sous Windows (désolé :(, mais ça doit pouvoir s'adapter sur d'autre OS, je vous laisse faire ^^)

    Cela présente de nombreux avantages :

    • Rapide et facile à mettre en place: manip sous windows, scrap depuis un PC plus puissant que la RASP
    • Toutes votre bibliothèque est déportée : toutes ces manips ne sont à faire qu'une seule et unique fois, vous pouvez cassez votre recalbox, vous aurez toujours votre bibliothèque nickel chrome ;).
    • Facilité et taille du stockage : en déportant toutes les datas "gourmandes" vous pouvez vous permettre de prendre une "très" bonne carte SD de plus petite taille pour votre RPI.

    Voici donc ma procédure : tout d'abord, j'utilise ce tuto : Charger ses rom depuis un partage réseau Samba (par exemple un NAS) (FR) A partir de la vous placez toutes vos Roms dans les répertoires qui vont bien (les .nes dans le rep nes, les .gba dans le rep gba, etc...) Maintenant il faut scraper vos Roms pour obtenir vos fichiers gamelist.xml et vos images. Pour cela j'utilise mon interface graphique (ESXML_Scraper) créée pour le "scraper.exe" avec quelque paramètre perso : Le profil à télécharger : ICI Ce que va faire le scraper c'est de créer un fichier gamelist.xml dans le répertoire des Roms, ainsi qu'un répertoire "images" avec les images dans le répertoire des Roms. Il va aussi indiquer dans le fichier gamelist.xml que les images se trouvent bien dans le répertoire "images" du répertoire des Rom (je ne sais pas si je suis clair :S) En gros voici ce que ça donne au niveau architecture: [Rom] --> [Nes] ---->gamelist.xml ---->supermariobros.nes ---->[Images] --------->supermariobros-image.jpg La ou c'est magique ;) c'est qu'il n'y a rien à faire au niveau de recalbox. Emulationstation, va chercher en priorité le fichier gamelist.xml dans le répertoire des roms (et seulement s'il ne le trouve pas va le chercher ailleurs) et comme celui-ci indique que les images se trouvent elles aussi dans le répertoire des Roms c'est nickel ;) Il faut bien sur relancer le scrap sur chaque répertoire contenant des Roms Du coup, déjà à ce niveau vous avez votre bibliothèque parfaitement transportable et fonctionnelle. Il ne vous reste plus qu'à nettoyer votre fichier gamelist.xml en supprimant les trucs qui ne vous plaisent pas et en scrapant manuellement les quelques manque. Pour cela, j'utilise mon deuxième petit soft : ESXML_Editor Avant tout je kill emulationstation (via le menu SSH) pour ne pas qu'il modifie mon fichier xml. j'ouvre le fichier gamelist.xml que je veux nettoyer. et voici ce que j'obtiens : Première chose, je vais rechercher les rom qui n'ont pas été scrapé comme il faut, très simple je fait CTRL+G pour afficher sous forme de tableau l’intégralité du fichier xml. Je repère les lignes il n'y a pas de chemin pour les images (en colonne 2, mais bon la sur ma copie d’écran j'ai déjà tous les chemins remplis ^^): imaginons que Galaga n'ai pas été trouvé par le chemin, je sais que c'est le 22eme jeux de la liste (ligne n°22) Je clic donc sur le numéro à gauche du slash (exemple sur la copie d’écran du haut il s'agit du chiffre 685 du "685  / 867") Je tape 22 et j'arrive directement sur la fiche de Galaga qui est vierge (sauf le chemin de la rom et le nom) Je n'ai plus qu'à faire CTRL+F pour ouvrir le mini scraper : Le nom est récupéré automatiquement, vous pouvez sélectionner la plateforme pour aller plus vite (ce paramètre sera conservé pour vos futures recherches) et cliquer sur rechercher. Une fois trouvé vous sélectionnez le bon, vous faite OK et tous se stock comme il faut au bon endroit ;) Si ce n'est pas trouvé (ça arrive, je pense à cause du moteur de recherche de thegamedb), vous pouvez :

    • Modifier le titre pour élargir la recherche.
    • Mettre sur "Toutes" les plateformes au cas ou.
    • Et le plus simple, chercher le jeu manuellement directement sur thegamedb pour récupérer l'ID qui se trouve dans l'URL (Exemple pour super mario bros : http://thegamesdb.net/game/140 il s'agit de l'ID 140.) et de faire une recherche par ID

    Une fois cela réalisé, vous pouvez :

    • supprimer les doublons (Attention, lorsque vous supprimez une fiche du fichier xml, cela supprime aussi le fichier de la ROM qui correspond.)
    • Nettoyer les commentaires ou les titres (par exemple en remplaçant les caractères codés par les vrais caractères dans les descriptions)
    • Supprimer les termes entre parenthèse dans les titres (comme je supprime les doublons, je n'ai plus plusieurs versions d'un même jeu, je ne garde que la version française par exemple. Inutile donc d'afficher "(france)" après le nom du jeu. Je supprime donc tout ça au niveau du titre.)

    Il ne reste plus qu'à sauvegarder le fichier gamelist.xml puis à faire un reboot via le menu SSH. Et voila, j'ai une belle bibliothèque, propre, transportable, et sauvegardé sur mon NAS. Si je veux rendre ma recalbox portable, je peux faire une copie des répertoires que je souhaite directement sur la SD ;) du coup, si je perds la connexion au NAS, ça se connectera sur le répertoire local qui contient lui aussi mon fichier gamelist.xml et les images des Roms ;)   Le seul inconvénient que j'ai trouvé à tous ça, c'est que je ne peux plus utiliser le scraper intégrer à la recalbox. Sinon il va recoller des images dans le mauvais répertoire. Mais concrètement, vu que je scrap tout depuis mon PC ;) je n'en ai pas besoin ^^. Voila, j’espère que ça vous aidera (pour une première installe c'est quand même beaucoup plus agréable que de tout faire à la main ;) N’hésitez pas à poser des questions, ou me faire des remontées sur les 2 petits logiciels, je me ferais un plaisir de vous répondre. Bon jeux à tous ;)


  • Moderator
    Team

    Bonjour @Screech, un bon tuto explicatif avec une bonne utilisation de tes outils , bravo :D manquerait plus une partie sur le renommage et le triage des roms qui sait ça sera peut être le prochaine étape de tes outils :D un ti liens complémentaires : http://blog.recalbox.com/forums/topic/comment-vous-gerer-vos-roms/ http://blog.recalbox.com/forums/topic/powershell-nettoyer-vos-romsets-no-intro/ J'étais pourtant sûr d'avoir vu une image pour ta première étape pour le scrap, ça aurait été intéressant une petite explication rapide sur tes paramètres (profil) pour savoir à quoi il correspond. Bonne journée



  • Bonjour,   merci pour tout ce travail. C'est impressionant. J'ai une petite question (de débutant). Ma recalbox est configurée avec une micro SD et le dossier Share sur clé USB. Les dossiers des roms sont donc visibles sur mon PC. Est ce que je peux faire toutes ces manip directement sur la clé USB ? Puis la rebrancher, allumer la recalbox et avoir le scrape ?   Merci d'avance



  • Bonjour, Super outils que voila pour les gamelist. Au passage cela ma permis aussi de mettre a jour sur http://thegamesdb.net/ des roms qui n’étaient pas crée, pour compléter nos collections. Une petite question au passage tous ce fait correctement, mais je n'ai pas compris comment  ou quoi cocher si une fois le travaille fini, on rajoute une rom pour rescrapper la gamlist sans que cela modifie quoi que ce soit. Moi quand j'effectue cette opération, ça me reset la gamelist comme au début avant les modifs. je rajoute que mes rom sont sur un nas recalbox éteinte au cas ou. Si tu as une explication merci. Smirnoff.



  • @stronziano : C'est fait exactement pour ça ;) il faut juste faire attention au différents chemin que tu utilise, mais oui, la clef usb sur ton PC, tu manipule tes fichiers XML, et tu n'as plus qu'à la rebrancher ;) @Smirnoff : Dans le ESXML_scrapper, il te suffit de cocher la case "append" pour qu'il ne scan que les nouvelles Roms et laisse le reste tranquille ;) Et si vous avez des idées d'améliorations, n’hésitez pas ;)



  • @screech impec mille merci.



  • Merci pour ta réponse. j'essaie ça dès que j'ai un peu de temps. Une autre petite question. J'ai déjà scrapé certains jeux. Dois-je supprimer quelque chose pour repartir à 0 ? Ou je peux y aller comme ça?   merci



  • @stronziano : Comme je le disais Smirnoff, si tu coche la case "append" dans ESXML_Scraper, il ne va rechercher que les jeux qu'il te manque. Tu conserve donc tes jeux déjà scrapé. Par contre, attention aux chemins, si tu as déjà scrapé quelques jeux (avec le scraper intégré dans la recalbox) les images téléchargé seront dans "~/.emulationstation/downloaded_images/" Si tu veux quelque chose de transportable (du genre tu as un copain qui a une recalbox et tu ne veux emporter que ta clefs usb ;) il faut mettre les images dans le répertoire "/images" des roms ;) Et la du coup, tu as peut être plus vite fait de tout rescraper en ne cochant pas la case "append", tu peux reprendre le profil tel quel.



  • Merci, je vais faire comme tu dis. C'est beaucoup mieux


  • Moderator
    Team

    Salut j arrive pourtant à scrapper en ligne de commande mais je suis un peu perdue je n arrive pas du tout à scrapper mes roms snes no intro. j ai laissé cette variable NOM_DU_SYSTEME en espérant que ça scrappe l ensemble des dossiers trouvés qu est ce qui est faut, je pense qu un profil local aurait été appréciable.

    [PROFILS]
    $I_ROM_DIR=D:\NoIntro\NOM_DU_SYSTEME\
    $I_HASH_FILE=
    $I_ROM_PATH=/recalbox/share/roms/NOM_DU_SYSTEME
    $CB_NESTED_IMG_DIR=0
    $CB_DOWNLOAD_IMAGES=1
    $I_IMAGE_PATH=~/.emulationstation/downloaded_images/NOM_DU_SYSTEME
    $I_GDB_IMG=b
    $I_IMAGE_DIR=D:\NoIntro\emulationstation\download_images\NOM_DU_SYSTEME
    $I_IMAGE_SUFFIX=-image
    $C_IMG_FORMAT=jpg
    $I_MAX_WIDTH=400
    $CB_THUMB_ONLY=0
    $CB_NO_THUMB=0
    $I_THUMB_SUFFIX=-thumb
    $CB_MAME=0
    $I_MAME_IMG=s,t,m,c
    $CB_ADD_NOT_FOUND=0
    $CB_APPEND=0
    $CB_REFRESH=0
    $CB_SCRAPE_ALL=1
    $CB_SKIP_CHECK=0
    $CB_START_PPROF=0
    $CB_STRIP_UNICODE=1
    $CB_USE_FILENAME=0
    $CB_USE_GDB=1
    $CB_USE_NOINTRO_NAME=1
    $CB_USE_OVGDB=0
    $I_WORKERS=1
    $I_RETRIES=2
    $I_EXTRA_EXT=
    $I_MISSING=
    $I_OUTPUT_FILE=gamelist.xml
    

    edit :

    Il faut bien sur relancer le scrap sur chaque répertoire contenant des Roms

    ça serait bien de créer une routine permettant de mettre le nom du dossier en variable et que le scrap soient lancé sur tous les dossiers trouvés. en batch j avais créé une routine pour les consoles et une pour l arcade.. et il faut placer l ensemble des fichiers de ton editeur dans le dossier contenant les roms ce i n est pas spécifié dans le tutoriel...sinon ça ne fonctionne pas.



  • Merci pour ce super tuto. Par contre question bête, mais dans tes screenshots tu scrapes sur le raspberry directement non ? Car il y a toujours l'intitulé "recalbox" dans l'adresse réseau, ça devrait pas être plutôt vers le nom de ton NAS ? Ou alors j'ai pas pigé :)



  • @Acris : En fait, ESXML_Scraper ne fait qu'une seule chose : créer une ligne de commande de scraper.exe et la lancer. Si tu sais le faire en ligne de commande, il te suffit de faire la même chose mais en cochant des cases ;) Je ne maîtrise pas à 100% scraper.exe, je me suis contenté de reprendre l'aide et de faire ce qu'il disait. Par contre, il y a une option : scrap_all qui, à priori, permet de faire ce que tu souhaites et qui se base sur le fichier es_system.cfg. Par contre, je ne l'ai jamais testé et je ne sais pas trop comment cette option marche (si tu passes ta sourie sur la case, tu verras le texte d'aide qui est pour le moins succincte.) Dit moi si tu y arrive. Sinon, je tenterais peut être de faire une moulinette plus générique qui lance les scrape sur chaque répertoire simultanément ;) Sinon, effectivement, NOM_DU_SYSTEM n'est pas une variable, il faut la changer. dans ton cas, voici ce que tu devrais mettre dans ton profil pour la snes :

    [PROFILS]
    $I_ROM_DIR=D:\NoIntro\snes\
    $I_HASH_FILE=
    $I_ROM_PATH=.
    $CB_NESTED_IMG_DIR=0
    $CB_DOWNLOAD_IMAGES=1
    $I_IMAGE_PATH=~/.emulationstation/downloaded_images/snes
    $I_GDB_IMG=b
    $I_IMAGE_DIR=images
    $I_IMAGE_SUFFIX=-image
    $C_IMG_FORMAT=jpg
    $I_MAX_WIDTH=375
    $CB_THUMB_ONLY=0
    $CB_NO_THUMB=1
    $I_THUMB_SUFFIX=-thumb
    $CB_MAME=0
    $I_MAME_IMG=s,t,m,c
    $CB_ADD_NOT_FOUND=1
    $CB_APPEND=0
    $CB_REFRESH=0
    $CB_SCRAPE_ALL=0
    $CB_SKIP_CHECK=0
    $CB_START_PPROF=0
    $CB_STRIP_UNICODE=1
    $CB_USE_FILENAME=0
    $CB_USE_GDB=1
    $CB_USE_NOINTRO_NAME=1
    $CB_USE_OVGDB=0
    $I_WORKERS=10
    $I_RETRIES=2
    $I_EXTRA_EXT=
    $I_MISSING=
    $I_OUTPUT_FILE=gamelist.xml
    

    @Maka : En fait, si tu suis le début du tuto pour utiliser un NAS (ou un partage samba de manière plus générique) tu créer un lien symbolique sur la recalbox qui pointe sur le NAS. Du coup, sur la recalbox le répertoire local : /recalbox/share/roms pointe sur mon NAS (qui est \192.168.0.xxx\emulation\roms) La subtilité, c'est que recalbox créé automatiquement un partage réseau du répertoire "share" qui s'appelle *\RECALBOX* En réalité, quand je vais sur \RECALBOX\roms en réseau, je vais sur /recalbox/share/roms en local qui pointe sur \192.168.0.xxx\emulation\roms en réseau ^^ conclusion sur le reseau \RECALBOX\roms = \192.168.0.xxx\emulation\roms sur mon NAS, c'est exactement le même emplacement. Sauf que tous les possesseurs de recalbox ont d'office le chemin \RECALBOX\roms mais que je suis le seul (ou presque) à avoir mon NAS, j'ai donc mis dans le profil le chemin générique pour que ça marche pour tous le monde. J’espère que je suis clair ^^ à la relecture, ça parait pas évident :p



  • oui c'est bien clair :) Par contre c'est inhérent à ton topic mais perso impossible d'accéder à mon NAS ... J'ai édité le fichier fstab avec cette ligne supplémentaire //192.168.0.6/roms/ /recalbox/share/roms cifs user=recalbox,password=recalbox,uid=0,gid=0,rw 0 0 Soit l'ip de mon NAS et le dossier roms créé à la racine avec un profil recalbox (avec recalbox en pwd) en lecture/écriture. Ajout de la commande mount comme indiqué dans ce lien et rien à faire,  pourtant j'ai bien un fichier S92emulationstation avec la commande supplémentaire. A chaque boot de recalbox j'ai par défaut le démarrage sur ma SD ... J'avoue sécher pour le coup



  • J'ai le même problème impossible d’accéder au partage windows (smb) depuis un autre PC j’accède bien au partage. Mais depuis le pi impossible   Est-ce qu'il y a un log quelque part pour voir si il y a un message d'erreur ?   edit  : Avec le même pi j'arrive via kodi a accéder a d'autre partage smb venant du même PC. Donc je sèche un peu.



  • Bonjour, désolé de pas avoir répondu plus tôt. Alors, malheureusement, je ne sais pas trop ou sont les log @Acris pourra peut être nous aider la dessus ;) Sinon quelques pistes :

    • il doit y avoir un retour chariot à la fin de la dernière ligne du fstab (en gros une ligne vide à la fin du fichier) Je ne sais pas si ça pose problèmes, mais ça peut générer des warnings.
    • Voici ma ligne dans le fstab : "//192.168.0.246/Emulation/roms /recalbox/share/roms cifs user=recalbox,password=recalbox,uid=0,gid=0,rw 0 0" et je viens de passer sur la version 4 en nightly. Et sa fonctionne toujours bien :S
    • Vérifier les droits du user recalbox sur ton nas.
    • Pour info, s'il n'arrive pas à faire le montage, il reste en local sur la SD sans mettre de message d'erreur (hormis dans les traces je suppose) donc la je pense que c'est juste un problème de connexion.
    • sinon, effectivement, vous pouvez tester d’accéder à CE répertoire partager depuis Kodi, pour voir s'il n'y a pas un pb de droit. (Sans les traces, c'est la seule solution que j'ai pour avoir au moins un message d'erreur ^^)

    Bon courage, et n’hésitez pas à nous dire si vous avez réussi à résoudre le pb (histoire de corriger ou d'alimenter le wiki ;) )



  • Je viens de résoudre mon problème. En fait j'avais fait une erreur toute conne. Sur le wiki quand je lis les instructions la ligne suivante apparaît sur deux lignes //IP_NAS/REPERTOIRE_PARTAGE /recalbox/share/roms cifs user=XXX,password=YYY,uid=0,gid=0,rw 0 0" Donc je l'ai mise sur deux lignes. Alors qu'en fait il faut tout mettre sur la même ligne avec un retour chariot a la fin.



  • Ok ;) j'ai corrigé le WIKI pour que ce soit plus clair ;) Merci (N’hésitez pas à agrémenter le WIKI quand vous découvrez une coquille ou quelque chose qui peut aider ;) )



  • Je ne connais pas beaucoup le monde de linux Donc je peux facilement faire des erreurs bête. Merci pour votre aide. Il me reste maintenant plus qu'a suivre le reste du tuto. Mais cela va prendre un peu de temps car je dois aussi m'occuper de mon fils qui viens de naître. Normalement tout devrai être prés quand il sera en age de jouer :p


Log in to reply
 

Want to support us ?

Join us on :

285
Online

28824
Users

14643
Topics

110694
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.