Décompression Réinventée : Boostez Retrobat avec le Format ZSTD !
Page 1 of 1
Décompression Réinventée : Boostez Retrobat avec le Format ZSTD !
Bonjour,
Je tiens à apporter quelques précisions à la suite des tests que j'ai réalisés concernant la gestion de la décompression des archives zip sous Retrobat. Si ce message fait doublon, veuillez m'excuser et déplacer ce post dans le sujet "Optimisation des ISOs : Comment garder ses fichiers zippés avec Retrobat ?".
Actuellement, d'après mes observations, la décompression se fait avec 7za.exe, qui utilise entre autres la méthode "Deflate" pour décompresser un .zip. Cette méthode est très répandue, mais elle présente certaines limitations en termes de gain de compression et surtout de rapidité.
Lors de mes tests, j'ai constaté que la méthode "Deflate" fonctionne correctement dans la majorité des cas. Je dis "majorité" car certains SETS présentent des bugs, mais je ne suis pas sûr que cela provienne de la décompression, car il y a d'autres bugs sur ces SETS. Je ne vais pas m'étaler ici car j'ai déjà ouvert un post à ce sujet : "Optimisation multi-écrans : Invitation à une Configuration Autonome avec les Émulateurs Standalone et Appel à l'Autonomie Diversifiée".
Concrètement, ce post a pour but de discuter de l'optimisation de la décompression et de voir s'il serait possible de l'améliorer. J'ai remarqué que 7z.exe prend en charge officiellement le "ZSTD" à la décompression, contrairement à 7za.exe. ZSTD offre de meilleurs taux de compression et des temps de décompression plus rapides grâce à la gestion des multicœurs. J'ai compressé énormément d'archives très lourdes, de 8 Go à 32 Go en moyenne, et il faut dire que ZSTD est imbattable en rapidité à l'ouverture des archives ou à leur décompression dès lors que vous avez plus de 4 cœurs. Aujourd'hui, nous savons que les cœurs sont de plus en plus nombreux et les SSD de plus en plus rapides, il serait dommage de ne pas en profiter. Cela pourrait potentiellement améliorer les performances de Retrobat en termes de décompression. C'est une question, je n'ai pas la solution.
Concernant mon utilisation sous RomVault hors Retrobat, pour le moment, j'utilise ZSTD pour les grosses archives peu utilisées et LZMA2 pour l'archivage « dur ». Je suis bien évidemment obligé de créer mes archives LZMA2 avec 7-Zip en externe à Romvault, ce qui prend du temps. Concernant Retrobat et mon utilisation de RomVault, je suis contraint de rester en Deflate, ce que je trouve également regrettable en raison de l'espace économisé et surtout de l'optimisation de la décompression.
En prenant en compte le fait que chaque émulateur (je n'ai pas la liste) qui utilise le format ZSTD l'utilise avec ses propres réglages et sa propre extension de sortie, et étant donné qu'il n'y a pour le moment aucune "norme" chez les développeurs d’émulateurs. D'où l'intérêt d'avoir aussi la compression ZSTD encapsulée dans un .zip, et que l'extension .ZIP avec ce format de compression soit gérée sous Retrobat et par défaut sous son gestionnaire de ROMs qui propose cette option nativement. Ce serait vraiment idéal. Ainsi, ceux qui veulent un format propriétaire encapsulé et compressé, comme le .ZAR sous Xenia ou d'autres extensions "qui ne sont que du ZSTD", ou encore des formats comme le .CSO, le .RVZ, et j'en passe, seraient satisfaits. De même, ceux qui veulent uniquement convertir leur SET original .ISO et .BIN .CUE dans ce format de compression ZSTD tout en gardant l'extension .zip, pourraient l'être aussi.
Bien sûr, ceux qui veulent convertir un ISO en .ZAR sous Xenia peuvent le faire, mais c'est lourd... Je veux dire, le top serait que toute la chaîne suive et ce n'est pas le cas. Les gestionnaires de ROM proposent des options que certains émulateurs ne proposent pas, et pire, certains émulateurs proposent "la même" compression ZSTD, mais chacun la gère à sa façon. Forcément, un launcher tel que Retrobat ne pourrait pas s'adapter à toutes les normes et l'émulateur le fait finalement, et c'est évidemment en partie son rôle. Mais pour ceux qui ont un SET original, en ajoutant le format de compression ZSTD couplé avec des extensions connues et reconnues telles que .ZIP et .7Z, Retrobat pourrait effectivement faciliter la transition et permettre à ces utilisateurs d’optimiser leur espace de stockage tout en gagnant du temps sur la décompression. Cela est d'autant plus pertinent que les formats de compression et les extensions propriétaires des émulateurs ne semblent pas prêts à changer, alors qu'à la base, il s'agit généralement de ZSTD.
Et dans mon cas, et j'imagine dans celui de beaucoup d'autres, nous n'aurions plus qu'à zipper les sets les plus lourds en ZSTD, et tout cela sous nos gestionnaires puisque ces derniers le gèrent. La chaîne en serait grandement simplifiée : téléchargement, gestion des ROMs, copie du lien symbolique dans le répertoire ROM adéquat et jeu direct. Plus de problèmes d'attente interminable pour la décompression avec le ZSTD. Et je conçois que télécharger un .RVZ soit plus rapide, mais il faut aussi penser que beaucoup d'entre nous ont des SETS originaux pour pouvoir utiliser leurs ROMs également sur leur console originale.
Il est donc intéressant de noter que RomVault, ainsi que d'autres gestionnaires, prennent en charge le ZSTD en interne. Ce que j'essaie de dire, c’est que je serais prêt à réarchiver toutes mes archives .zip et .7z sous ce format ZSTD si Retrobat pouvait le prendre en charge également pour la décompression sous .zip et .7z.
Y compris mes archives en LZMA2, car le ZSTD offre le meilleur compromis actuel entre gain de place et rapidité.
Pour les curieux, je vous invite à lire et à tester le projet 7zEmuPrepper de "UnluckyForSome".
Son annonce sous Reddit : https://www.reddit.com/r/emulation/comments/9fhumk/7zemuprepper_temporarily_extract_zipped_archives/?tl=fr
Son Github : https://github.com/UnluckyForSome/7zEmuPrepper
Peut-être que l'approche de UnluckyForSome pourrait aider Retrobat en ce sens ?
Une alternative bien plus intéressante à TC4Shell, j'ai donc supprimé le lien de TC4Shell qui n'est qu'un simple gestionnaire de plus après tout. Le but ici est, si possible, de faire évoluer le comportement de 7-Zip sous Retrobat. Cette alternative est disponible via le GitHub de Mcmilk, sous le nom de 7-Zip-zstd. Elle propose un build complet de 7z incluant de nouveaux formats de compression, notamment le ZSTD, comme son nom l’indique. Donc, il est désormais possible de compresser dans ce format avec 7zip, alors que nativement il sait uniquement ouvrir les fichiers ZSTD, ce qui est déjà bien en soi. Toujours intéressant pour les curieux, avec beaucoup de détails disponibles : https://github.com/mcmilk/7-Zip-zstd
Sur ce fil, tout ce que je dis est là pour les plus curieux, et l'on comprend facilement que les .WUA et les .ZAR ne sont que des archives ZSTD, pour ne citer que ces deux extensions. C'est un peu déroutant car par conséquent, les extensions changent mais ça reste du ZSTD. Mais bon, il est vrai que chaque émulateur a ses propres réglages de compression et plus encore. Mais dans ce que j'avance, il y a une logique : si l'on part de la base du gestionnaire de ROMs, on gagnerait énormément d'espace et de temps, surtout dans mon cas. Certes, l'émulateur ne pourrait pas dézipper le .zip, mais justement, Retrobat le ferait, et il le fait déjà, mais en "Deflate", donc très peu performant. Mais s'il le faisait en .zip "ZSTD", je suis quasiment sûr que les "performances" seraient équivalentes au .WUA, .ZAR, .RVZ, et j'en passe, et par "performance", je pense bien évidement, au gain de temp, qui ne serait pas si dégradé. Il faut comprendre que ces dernières extensions citées ne sont que du "ZSTD", le secret est là et nulle part ailleurs. Enfin, ceci est pour les curieux, et uniquement pour eux : https://github.com/xenia-canary/xenia-canary/pull/165
Alors imaginez-vous si demain vous aviez un .zip avec un ISO ou un BIN/CUE dedans, devenant tout aussi "performant" que les tas d'extensions que nos chers émulateurs proposent et vantent comme ultra rapides, mais qui ne sont en fait que des ZSTD. Véritablement, d'une part, on ne serait pas là à se dire que .RVZ c'est mieux que .zip sans comprendre pourquoi c'est mieux. D'autre part, je pense sincèrement que je ne serai pas le seul à vouloir tester et pourquoi pas "à me faire de la place", notamment pour ceux qui ont des SET en double. Je pense que certains d'entre eux en seraient ravis. Mais bon, pour ça, il faut un launcher qui le fasse, et j'espère que le launcher qui le fera sera Retrobat, car pour le moment, il semble que même Launchbox ne gère pas le ZSTD.
Edit : Playnite le fait, enfin Playnite, c’est grâce à une extension de Nyarlathotep7777. C'est toujours intéressant de voir comment il s'y prend. J'ai testé et ça fonctionne très bien. https://github.com/Nyarlathotep7777/archive-unpacker
Sous cette extension, il ne manque plus que la prise en charge des archives zip ou 7z pour Teknoparrot, et ce serait le rêve ultime. Playnite décompresse bien les archives, mais Teknoparrot n’arrive pas à les trouver dans le dossier temporaire créé par l’extension. Forcément, il faut éditer les chemins dans les fichiers XML du dossier UserProfile de l’émulateur Teknoparrot. Cependant, pour tout le reste, pour tous les autres émulateurs, ça fonctionne parfaitement. Même pour des jeux PC archivés, imaginez vos jeux moddés archivés, une envie d'y jouer et hop, tout fonctionne très bien. Pour certains jeux, il suffit d'éditer un petit BAT pour pointer vers le chemin d'accès de l'exe ou de créer un script, ou encore via le scan qui est de base assez complet et surtout non limité même s'il pourrait être encore amélioré. Bref, les possibilités sont multiples et ça fonctionne. Pour Teknoparrot, il suffirait de créer un petit script pour les fichiers XML et ce serait techniquement possible, histoire d'éviter de créer un .bat pour chaque archive, ce qui permettrait à n'importe quel utilisateur de jouer avec le set archivé sans effort supplémentaire. Donc c'est énorme, mais bon, j'ai un coup de cœur pour Retrobat, c'est comme ça. Playnite, c'est super cool, mais bon...
Tout cela pour dire que c’est quand même intéressant de voir le degré d’ergonomie de Playnite et le fait que s’ouvrir à la communauté avec un système d’extensions permet de faire des choses qui n’ont quasi aucune limite pour l’utilisateur. J'aimerais beaucoup voir tout cela arriver sous Retrobat, peut-être pas avec des extensions, mais avec un BatGui plus poussé. Ainsi, chaque utilisateur pourrait personnaliser son expérience : certains y mettraient le nez tandis que d'autres privilégieraient la simplicité.
Je souhaitais simplement partager ces observations, en espérant qu'elles puissent être utiles pour de futures améliorations.
Merci pour votre attention et pour tout le travail accompli.
Cordialement,
MerchiBCP
Je tiens à apporter quelques précisions à la suite des tests que j'ai réalisés concernant la gestion de la décompression des archives zip sous Retrobat. Si ce message fait doublon, veuillez m'excuser et déplacer ce post dans le sujet "Optimisation des ISOs : Comment garder ses fichiers zippés avec Retrobat ?".
Actuellement, d'après mes observations, la décompression se fait avec 7za.exe, qui utilise entre autres la méthode "Deflate" pour décompresser un .zip. Cette méthode est très répandue, mais elle présente certaines limitations en termes de gain de compression et surtout de rapidité.
Lors de mes tests, j'ai constaté que la méthode "Deflate" fonctionne correctement dans la majorité des cas. Je dis "majorité" car certains SETS présentent des bugs, mais je ne suis pas sûr que cela provienne de la décompression, car il y a d'autres bugs sur ces SETS. Je ne vais pas m'étaler ici car j'ai déjà ouvert un post à ce sujet : "Optimisation multi-écrans : Invitation à une Configuration Autonome avec les Émulateurs Standalone et Appel à l'Autonomie Diversifiée".
Concrètement, ce post a pour but de discuter de l'optimisation de la décompression et de voir s'il serait possible de l'améliorer. J'ai remarqué que 7z.exe prend en charge officiellement le "ZSTD" à la décompression, contrairement à 7za.exe. ZSTD offre de meilleurs taux de compression et des temps de décompression plus rapides grâce à la gestion des multicœurs. J'ai compressé énormément d'archives très lourdes, de 8 Go à 32 Go en moyenne, et il faut dire que ZSTD est imbattable en rapidité à l'ouverture des archives ou à leur décompression dès lors que vous avez plus de 4 cœurs. Aujourd'hui, nous savons que les cœurs sont de plus en plus nombreux et les SSD de plus en plus rapides, il serait dommage de ne pas en profiter. Cela pourrait potentiellement améliorer les performances de Retrobat en termes de décompression. C'est une question, je n'ai pas la solution.
Concernant mon utilisation sous RomVault hors Retrobat, pour le moment, j'utilise ZSTD pour les grosses archives peu utilisées et LZMA2 pour l'archivage « dur ». Je suis bien évidemment obligé de créer mes archives LZMA2 avec 7-Zip en externe à Romvault, ce qui prend du temps. Concernant Retrobat et mon utilisation de RomVault, je suis contraint de rester en Deflate, ce que je trouve également regrettable en raison de l'espace économisé et surtout de l'optimisation de la décompression.
En prenant en compte le fait que chaque émulateur (je n'ai pas la liste) qui utilise le format ZSTD l'utilise avec ses propres réglages et sa propre extension de sortie, et étant donné qu'il n'y a pour le moment aucune "norme" chez les développeurs d’émulateurs. D'où l'intérêt d'avoir aussi la compression ZSTD encapsulée dans un .zip, et que l'extension .ZIP avec ce format de compression soit gérée sous Retrobat et par défaut sous son gestionnaire de ROMs qui propose cette option nativement. Ce serait vraiment idéal. Ainsi, ceux qui veulent un format propriétaire encapsulé et compressé, comme le .ZAR sous Xenia ou d'autres extensions "qui ne sont que du ZSTD", ou encore des formats comme le .CSO, le .RVZ, et j'en passe, seraient satisfaits. De même, ceux qui veulent uniquement convertir leur SET original .ISO et .BIN .CUE dans ce format de compression ZSTD tout en gardant l'extension .zip, pourraient l'être aussi.
Bien sûr, ceux qui veulent convertir un ISO en .ZAR sous Xenia peuvent le faire, mais c'est lourd... Je veux dire, le top serait que toute la chaîne suive et ce n'est pas le cas. Les gestionnaires de ROM proposent des options que certains émulateurs ne proposent pas, et pire, certains émulateurs proposent "la même" compression ZSTD, mais chacun la gère à sa façon. Forcément, un launcher tel que Retrobat ne pourrait pas s'adapter à toutes les normes et l'émulateur le fait finalement, et c'est évidemment en partie son rôle. Mais pour ceux qui ont un SET original, en ajoutant le format de compression ZSTD couplé avec des extensions connues et reconnues telles que .ZIP et .7Z, Retrobat pourrait effectivement faciliter la transition et permettre à ces utilisateurs d’optimiser leur espace de stockage tout en gagnant du temps sur la décompression. Cela est d'autant plus pertinent que les formats de compression et les extensions propriétaires des émulateurs ne semblent pas prêts à changer, alors qu'à la base, il s'agit généralement de ZSTD.
Et dans mon cas, et j'imagine dans celui de beaucoup d'autres, nous n'aurions plus qu'à zipper les sets les plus lourds en ZSTD, et tout cela sous nos gestionnaires puisque ces derniers le gèrent. La chaîne en serait grandement simplifiée : téléchargement, gestion des ROMs, copie du lien symbolique dans le répertoire ROM adéquat et jeu direct. Plus de problèmes d'attente interminable pour la décompression avec le ZSTD. Et je conçois que télécharger un .RVZ soit plus rapide, mais il faut aussi penser que beaucoup d'entre nous ont des SETS originaux pour pouvoir utiliser leurs ROMs également sur leur console originale.
Il est donc intéressant de noter que RomVault, ainsi que d'autres gestionnaires, prennent en charge le ZSTD en interne. Ce que j'essaie de dire, c’est que je serais prêt à réarchiver toutes mes archives .zip et .7z sous ce format ZSTD si Retrobat pouvait le prendre en charge également pour la décompression sous .zip et .7z.
Y compris mes archives en LZMA2, car le ZSTD offre le meilleur compromis actuel entre gain de place et rapidité.
Pour les curieux, je vous invite à lire et à tester le projet 7zEmuPrepper de "UnluckyForSome".
Son annonce sous Reddit : https://www.reddit.com/r/emulation/comments/9fhumk/7zemuprepper_temporarily_extract_zipped_archives/?tl=fr
Son Github : https://github.com/UnluckyForSome/7zEmuPrepper
Peut-être que l'approche de UnluckyForSome pourrait aider Retrobat en ce sens ?
Une alternative bien plus intéressante à TC4Shell, j'ai donc supprimé le lien de TC4Shell qui n'est qu'un simple gestionnaire de plus après tout. Le but ici est, si possible, de faire évoluer le comportement de 7-Zip sous Retrobat. Cette alternative est disponible via le GitHub de Mcmilk, sous le nom de 7-Zip-zstd. Elle propose un build complet de 7z incluant de nouveaux formats de compression, notamment le ZSTD, comme son nom l’indique. Donc, il est désormais possible de compresser dans ce format avec 7zip, alors que nativement il sait uniquement ouvrir les fichiers ZSTD, ce qui est déjà bien en soi. Toujours intéressant pour les curieux, avec beaucoup de détails disponibles : https://github.com/mcmilk/7-Zip-zstd
Sur ce fil, tout ce que je dis est là pour les plus curieux, et l'on comprend facilement que les .WUA et les .ZAR ne sont que des archives ZSTD, pour ne citer que ces deux extensions. C'est un peu déroutant car par conséquent, les extensions changent mais ça reste du ZSTD. Mais bon, il est vrai que chaque émulateur a ses propres réglages de compression et plus encore. Mais dans ce que j'avance, il y a une logique : si l'on part de la base du gestionnaire de ROMs, on gagnerait énormément d'espace et de temps, surtout dans mon cas. Certes, l'émulateur ne pourrait pas dézipper le .zip, mais justement, Retrobat le ferait, et il le fait déjà, mais en "Deflate", donc très peu performant. Mais s'il le faisait en .zip "ZSTD", je suis quasiment sûr que les "performances" seraient équivalentes au .WUA, .ZAR, .RVZ, et j'en passe, et par "performance", je pense bien évidement, au gain de temp, qui ne serait pas si dégradé. Il faut comprendre que ces dernières extensions citées ne sont que du "ZSTD", le secret est là et nulle part ailleurs. Enfin, ceci est pour les curieux, et uniquement pour eux : https://github.com/xenia-canary/xenia-canary/pull/165
Alors imaginez-vous si demain vous aviez un .zip avec un ISO ou un BIN/CUE dedans, devenant tout aussi "performant" que les tas d'extensions que nos chers émulateurs proposent et vantent comme ultra rapides, mais qui ne sont en fait que des ZSTD. Véritablement, d'une part, on ne serait pas là à se dire que .RVZ c'est mieux que .zip sans comprendre pourquoi c'est mieux. D'autre part, je pense sincèrement que je ne serai pas le seul à vouloir tester et pourquoi pas "à me faire de la place", notamment pour ceux qui ont des SET en double. Je pense que certains d'entre eux en seraient ravis. Mais bon, pour ça, il faut un launcher qui le fasse, et j'espère que le launcher qui le fera sera Retrobat, car pour le moment, il semble que même Launchbox ne gère pas le ZSTD.
Edit : Playnite le fait, enfin Playnite, c’est grâce à une extension de Nyarlathotep7777. C'est toujours intéressant de voir comment il s'y prend. J'ai testé et ça fonctionne très bien. https://github.com/Nyarlathotep7777/archive-unpacker
Sous cette extension, il ne manque plus que la prise en charge des archives zip ou 7z pour Teknoparrot, et ce serait le rêve ultime. Playnite décompresse bien les archives, mais Teknoparrot n’arrive pas à les trouver dans le dossier temporaire créé par l’extension. Forcément, il faut éditer les chemins dans les fichiers XML du dossier UserProfile de l’émulateur Teknoparrot. Cependant, pour tout le reste, pour tous les autres émulateurs, ça fonctionne parfaitement. Même pour des jeux PC archivés, imaginez vos jeux moddés archivés, une envie d'y jouer et hop, tout fonctionne très bien. Pour certains jeux, il suffit d'éditer un petit BAT pour pointer vers le chemin d'accès de l'exe ou de créer un script, ou encore via le scan qui est de base assez complet et surtout non limité même s'il pourrait être encore amélioré. Bref, les possibilités sont multiples et ça fonctionne. Pour Teknoparrot, il suffirait de créer un petit script pour les fichiers XML et ce serait techniquement possible, histoire d'éviter de créer un .bat pour chaque archive, ce qui permettrait à n'importe quel utilisateur de jouer avec le set archivé sans effort supplémentaire. Donc c'est énorme, mais bon, j'ai un coup de cœur pour Retrobat, c'est comme ça. Playnite, c'est super cool, mais bon...
Tout cela pour dire que c’est quand même intéressant de voir le degré d’ergonomie de Playnite et le fait que s’ouvrir à la communauté avec un système d’extensions permet de faire des choses qui n’ont quasi aucune limite pour l’utilisateur. J'aimerais beaucoup voir tout cela arriver sous Retrobat, peut-être pas avec des extensions, mais avec un BatGui plus poussé. Ainsi, chaque utilisateur pourrait personnaliser son expérience : certains y mettraient le nez tandis que d'autres privilégieraient la simplicité.
Je souhaitais simplement partager ces observations, en espérant qu'elles puissent être utiles pour de futures améliorations.
Merci pour votre attention et pour tout le travail accompli.
Cordialement,
MerchiBCP
MErchiBCP- Messages : 19
Date d'inscription : 2022-09-30
Lorenzolamas, getupor and keyser like this post
Similar topics
» Demande d'Extension des Fonctionnalités de Retrobat : Décompression ZSTD pour les Fichiers ZIP et 7Z
» Hourra ! Le ZSTD fonctionne enfin "totalement" sous RetroBat Windows ! Voici comment j'ai réussi ! + Requête !!
» [TUTO] Marquee / Topper dynamique avec Retrobat
» [RESOLU]Problème PCSX2 avec Retrobat 3.10
» [RESOLU] Comment utiliser ECWolf avec Retrobat
» Hourra ! Le ZSTD fonctionne enfin "totalement" sous RetroBat Windows ! Voici comment j'ai réussi ! + Requête !!
» [TUTO] Marquee / Topper dynamique avec Retrobat
» [RESOLU]Problème PCSX2 avec Retrobat 3.10
» [RESOLU] Comment utiliser ECWolf avec Retrobat
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum