Qu'est-ce que le format de fichier BPS ?
.bps est un format de patch binaire delta utilisé dans la communauté du rétro-gaming pour distribuer des hacks de ROM et des traductions de fans sans distribuer de données de ROM sous copyright. Le format a été créé par byuu (Near), auteur de l'émulateur SNES bsnes, vers 2012, et ses spécifications ont été publiées dans le domaine public.
Un fichier .bps commence par l'en-tête ASCII de quatre octets BPS1 à l'offset zéro - le 1 est un numéro de version du format - suivi d'entiers de longueur variable encodant la taille du fichier source, la taille du fichier cible et un bloc de métadonnées optionnel (texte UTF-8). Le corps du patch utilise quatre types de commandes : SourceRead (copier des octets inchangés de la source), TargetRead (écrire de nouveaux octets), SourceCopy (copier à partir d'un offset source arbitraire) et TargetCopy (copier à partir de la sortie déjà écrite). Le fichier se termine par trois sommes de contrôle CRC32 (4 octets chacune, little-endian) : une pour la ROM source, une pour la ROM de sortie attendue et une couvrant le fichier de patch lui-même. Un logiciel de patch refuse l'application si la somme de contrôle source ne correspond pas, évitant ainsi une sortie corrompue.
Le BPS a succédé à l'ancien format IPS en supprimant son plafond de taille de fichier de 16 Mo et en ajoutant une vérification d'intégrité intégrée. Il est largement utilisé pour les hacks de ROM SNES, GBA et NDS.
Les outils courants incluent flips (Floating IPS, Windows/Linux), MultiPatch (macOS), UniPatcher (Android) et des patchers basés sur navigateur tels que RomPatcher.js.
Sécurité et sûreté
RISQUE : MEDIUMLes fichiers BPS eux-mêmes ne sont que des données de patch et ne peuvent pas exécuter de code - ils nécessitent un outil de patch séparé et une ROM. Le risque provient du téléchargement d'outils de patch à partir de sources non officielles (certains fournis avec des logiciels publicitaires) et de la légalité de la distribution de ROM dans votre juridiction. Les patchers recommandés (Floating IPS, RomPatcher.js) sont des outils open-source propres.
Détails du format
en bref- Fichier de sauvegarde Microsoft Works - D'anciennes entrées sur certains sites d'informations de fichiers prétendent que .bps = sauvegarde de document Microsoft Works ; il s'agit d'une erreur d'identification - aucune preuve que cette association soit réelle ou largement utilisée.
Programmes qui ouvrent les fichiers BPS
Détails techniques
spécifications approfondies| Octets magiques | `42 50 53 31` (`BPS1`) à l'offset 0 - `1` indique la version du format |
| Ordre des octets | Little-endian (entiers de longueur variable et sommes de contrôle CRC32) |
| Conteneur | Format binaire linéaire personnalisé (pas de conteneur standard) |
| Encodage | Binaire |
| Encodage des entiers | Entiers non signés de longueur variable (7 bits par octet, MSB comme indicateur de continuation) |
| Commandes de patch | SourceRead, TargetRead, SourceCopy, TargetCopy |
| Schéma de somme de contrôle | Trois sommes de contrôle CRC32 (ROM source, ROM cible, fichier de patch) - 4 octets chacune, little-endian |
| Validation de la source | Le patcher s'arrête si le CRC32 source ne correspond pas à la somme de contrôle intégrée - empêche l'application sur la mauvaise ROM |
| Taille de fichier typique | De quelques Ko à plusieurs Mo (proportionnelle à la taille des différences de la ROM) |
| Spécification | Domaine public (publié par byuu/Near, vers 2012) ; version unique BPS1 |
| Plateformes cibles | SNES, GBA, NDS et autres cibles de hacks de ROM rétro |
| Formats prédécesseurs | IPS (pas de sommes de contrôle, limite de 16 Mo), UPS |
| Publié | circa 2012 (byuu/beat tool) |
| Dernière version | BPS1 (single version in spec) |
| Standard ouvert | Oui · libre de droits |
| Spécification | github.com |
Conversions BPS
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers BPS.