Wat is het BPS-bestandsformaat?
.bps is een binair delta-patchformaat dat in de retro-gaminggemeenschap wordt gebruikt om ROM-hacks en fanvertalingen te distribueren zonder auteursrechtelijk beschermde ROM-gegevens te verspreiden. Het formaat is rond 2012 gecreëerd door byuu (Near), auteur van de bsnes SNES-emulator, en de specificatie ervan is vrijgegeven in het publieke domein.
Een .bps-bestand begint met de vier-byte ASCII-header BPS1 op offset nul - de 1 is een versienummer van het formaat - gevolgd door integers met variabele lengte die de grootte van het bronbestand, de grootte van het doelbestand en een optioneel metadatablok (UTF-8 tekst) coderen. De patch-body gebruikt vier commandotypes: SourceRead (kopieer ongewijzigde bytes van bron), TargetRead (schrijf nieuwe bytes), SourceCopy (kopieer van een willekeurige bron-offset) en TargetCopy (kopieer van de reeds geschreven uitvoer). Het bestand eindigt met drie CRC32-checksums (elk 4 bytes, little-endian): één voor de bron-ROM, één voor de verwachte uitvoer-ROM en één die het patchbestand zelf beslaat. Een patch-programma weigert de toepassing als de bron-checksum niet overeenkomt, wat corrupte uitvoer voorkomt.
BPS volgde het oudere IPS-formaat op door de bestandsgrootte-limiet van 16 MB te verwijderen en ingebouwde integriteitsverificatie toe te voegen. Het wordt veel gebruikt voor SNES, GBA en NDS ROM-hacks.
Veelgebruikte tools zijn flips (Floating IPS, Windows/Linux), MultiPatch (macOS), UniPatcher (Android) en browsergebaseerde patchers zoals RomPatcher.js.
Beveiliging & veiligheid
RISICO: MEDIUMBPS-bestanden zelf zijn slechts patch-gegevens en kunnen geen code uitvoeren - ze vereisen een aparte patch-tool en een ROM. Risico komt voort uit het downloaden van patch-tools van onofficiële bronnen (sommige gebundeld met adware) en uit de legaliteit van ROM-distributie in jouw rechtsgebied. Aanbevolen patchers (Floating IPS, RomPatcher.js) zijn schone open-source tools.
Formaatdetails
in een notendop- Microsoft Works Backup File - Oudere vermeldingen op sommige bestandsinformatiesites beweren dat .bps = Microsoft Works document-reservekopie; dit is een onjuiste identificatie - er is geen bewijs dat deze associatie echt is of veelvuldig wordt gebruikt.
Programma's die BPS-bestanden openen
Technische details
diepe specificaties| Magic bytes | `42 50 53 31` (`BPS1`) op offset 0 - `1` geeft de formaatversie aan |
| Byte-volgorde | Little-endian (integers met variabele lengte en CRC32-checksums) |
| Container | Aangepast lineair binair formaat (geen standaard wrapper) |
| Codering | Binair |
| Integer-codering | Unsigned integers met variabele lengte (7 bits per byte, MSB als voortzettingsvlag) |
| Patch-commando's | SourceRead, TargetRead, SourceCopy, TargetCopy |
| Checksum-schema | Drie CRC32-checksums (bron-ROM, doel-ROM, patchbestand) - elk 4 bytes, little-endian |
| Bron-validatie | Patcher breekt af als de bron-CRC32 niet overeenkomt met de ingebedde checksum - voorkomt toepassing op de verkeerde ROM |
| Typische bestandsgrootte | Enkele KB tot meerdere MB (evenredig aan de grootte van de ROM-verschillen) |
| Specificatie | Publiek domein (gepubliceerd door byuu/Near, circa 2012); enkele versie BPS1 |
| Doelplatforms | SNES, GBA, NDS en andere retro ROM-hack doelen |
| Voorganger-formaten | IPS (geen checksums, 16 MB limiet), UPS |
| Uitgebracht | circa 2012 (byuu/beat tool) |
| Laatste versie | BPS1 (single version in spec) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | github.com |
BPS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over BPS-bestanden.