Enregistrement/lecture de séquences de gameplay (.bsv ?)
-
Hello tout le monde !
La team Recalbox fait un travail magnifique, mais malgré la profusion de fonctionnalités, on arrive toujours à en trouver qui (d'après mes recherches) n'existent pas encore B-)...Pour faire court : j'aurais besoin d'enregistrer des parties et les faire rejouer par la machine. J'avais déjà utilisé une fonctionnalité analogue dans une compétition rétro, mais je ne sais plus sur quel émulateur.
En gros, il s'agit, non pas d'enregistrer une capture vidéo de la partie (gros fichiers et ressources importantes demandées à la machine), mais d'enregistrer uniquement les input. Et de pouvoir rejouer cette partie par la suite.D'autant plus que jouant sur CRT, avec des résolutions "exotiques" (1920x240 etc.), les fichiers vidéos le seraient tout autant...
Apparemment, la fonctionnalité existe encore sous Retroarch, mais semble un peu à l'abandon.
Les seules infos claires que j'ai trouvées proviennent de ce fil sur Shmups system 11 :
https://shmups.system11.org/viewtopic.php?f=1&t=65942Ils proposent de créer un raccourci (spécifique à chaque jeu) contenant cette ligne de code :
RecordC:\RetroArch\retroarch.exe -L cores\fbneo_libretro.dll "C:\Games\Roms\batsugunsp.zip" -R recordings\batsugunsp.bsv -M noload-nosave
Playback
cd C:\RetroArch retroarch.exe -L cores\fbneo_libretro.dll "C:\Games\Roms\batsugunsp.zip" -P recordings\batsugunsp.bsv -M noload-nosave -r recordings\batsugunsp.mkv --eof-exit Quelqu'un aurait les compétences pour m'aider à utiliser cette fonctionnalité d'un manière ou d'une autre sous Recalbox ? Peut être en créant un script ?
Ou est-ce que la Team aurait envie d'intégrer cette fonctionnalité dans une future version ? Je peux bien sûr aider, dans la limite des mes compétences.J'ai besoin de cette fonctionnalité pour me permettre de filmer des parties sur mon écran Sony PVM (caméra au poing ou sur stabilisateur), pour une film documentaire que je suis en train de réaliser. Et comme il m'est impossible de cadrer en jouant, je suis bloqué pour l'instant...
Merci !
Ma config : Raspberry Pi 3 / Affichage RGB sur CRT via adaptateurs HDMI/VGA
-
Record
C:\RetroArch\retroarch.exe -L cores\fbneo_libretro.dll "C:\Games\Roms\batsugunsp.zip" -R recordings\batsugunsp.bsv -M noload-nosavePlayback
cd C:\RetroArch retroarch.exe -L cores\fbneo_libretro.dll "C:\Games\Roms\batsugunsp.zip" -P recordings\batsugunsp.bsv -M noload-nosave -r recordings\batsugunsp.mkv --eof-exitRelisez le lien que vous avez posté et vous remarquerez que ce code fait référence à la version WINDOWS de retroarch...
Recalbox est un système d'exploitation basé sur Linux... Cela ne fonctionne pas de cette façon...
Je n'ai pas assez de connaissances pour vous aider, je ne sais même pas si c'est vraiment possible.
Aujourd'hui cette fonctionnalité n'existe pas, et comme Recalbox a une toute petite équipe, je trouve qu'il est très difficile pour un développeur d'investir son temps pour créer cette fonctionnalité qui ne servirait qu'à 1 utilisateur spécifique...Vous pouvez essayer de voir si quelqu'un sur Discord a des informations différentes :
https://discord.com/invite/NbQFbGM -
@zing
Merci Zing pour ta réponse.
Oui, j'ai bien lu (et relu) les liens avant de les poster, et je sais bien qu'ils parlent de la version Windows. Je les postais comme piste de recherche.
Bien que Recalbox soit un OS spécifique basé sur Linux, il n'en demeure pas moins qu'il fait appel à un grand nombre de fonctionnalités de Retroarch. Et cette fonctionnalité existant sous Windows, elle a peut être une chance de pouvoir être activée dans Recalbox. C'est du moins ce que j'espère, et tente de trouver...Je ne cherche pas à charger la mûle de la courageuse équipe qui oeuvre derrière Recalbox pour satisfaire "1 utilisateur spécifique". Je pense qu'à l'heure actuelle, en l'absence de solution efficace d'enregistrement et de streaming de nos parties sous Raspberry (du fait de leur puissance limitée) la voie du "input recording/playback" (je ne sais pas trop comment l'appeler...) parait intéressante. L'idée d'avoir un fichier de quelques ko qui permet de relancer une partie à l'identique, pour l'enregistrer ou la streamer au besoin, me parait être bien astucieuse.
Je travaille dans la vidéo et je passe mes journées à faire mouliner de grosses stations de montage, mais quand je peux trouver une solution un peu plus économe en ressources (et donc plus écologique ) je ne dis pas non.En tous cas merci pour l'invit Discord, je vais aller zieuter par là-bas pour voir si quelqu'un n'aurait pas une piste...
Et si quelqu'un d'autre sur le forum trouve une solution, je lui paie une bière (voir deux) !
-
@greenalex Vous pouvez essayer d'approfondir le sujet en consultant le didacticiel de script, mais je ne sais pas comment vous aider au-delà:
-
@zing
Cool, merci !
J'étais aussi arrivé à cette idée de passer par ES pour pouvoir lancer un script. Reste plus qu'à trouver lequel ...
Je ne manquerai pas de partager mes avancées ! -
@greenalex
Salut,
le fait d'enregistrer des touches et de les rejouer avec le même timing ne te garantira pas d'obtenir la même partie plusieurs fois.
Si l'appui sur une touche génère une interruption qui est immédiatement traitée, ça va sûrement fonctionner.
Si l'appui sur une touche est détecté à intervalle fixe (genre toutes les 40ms, pour avoir 25x par seconde), il se peut que la touche soit détectée à l'intervalle de 40ms suivant, et là, la suite devient aléatoire.
C'est pour cela que j'avais stoppé le développement d'un soft maison (sous windows) qui faisait ce que tu désires. -
Hello !
Et merci pour le retour. Effectivement, plus j'avance et plus je me dis que c'est plus compliqué que prévu... Dans mon souvenir, cette fonction marchait nickel, mais ce devait être avec un style de jeu sans aucun aléatoire (peut être un VS fighting à 2 joueurs humains).
Je vais creuser encore un peu, mais je sens que ça va finir avec une solution plutôt basée de l'enregistrement vidéo + playback a 240p... Reste à trouver comment approcher le pixel perfect de manière simple et pratique.
Merci en tous cas ! - about a month later
-
Bon, c'est à la fois un échec et une réussite B-)...
En gros, j'ai laissé tombé l'enregistrement du gameplay sous forme de fichiers .bsv. Trop aléatoire. Je comprends pourquoi cette techno a été abandonnée.Mais j'ai réussi à contourner mon souci lié à la diffusion de séquences de jeu sur mon PVM en 240p !
Ma solution :
- Je joue sur mon ordi via Retroarch en 1280/960 60Hz (qui correspond au pixel près à du 320/240 multiplié par 4)
- Dans Retroarch, j'active "integer scale" pour que chaque jeu affiche, à la ligne près, le ratio original du jeu dans cette "grille" de 1280 par 960 pixel
- Je désactive tous les autres filtres vidéo
- Je fais la capture vidéo de mes parties avec OBS (1280/960 60 Hz)
- Je transfère et lis les fichiers vidéo avec Kodi, que j'ai configuré en 240p
( via le recalbox.conf : kodi.videomode=CEA 8 HDMI )
Résultat : chaque pixel/ligne est à sa place, avec de belle scanlines, et l'affichage en 240p est magnifique !
Voila, un grand merci à ceux qui m'ont aidé !
Vous pouvez clore le topic, merci !