Hvad er BPS-filformatet?
.bps er et binært delta-patch-format, der bruges i retro-gaming-miljøet til at distribuere ROM-hacks og fan-oversættelser uden at distribuere ophavsretligt beskyttet ROM-data. Formatet blev skabt af byuu (Near), forfatter til bsnes SNES-emulatoren, omkring 2012, og dets specifikation blev frigivet til det offentlige domæne.
En .bps-fil begynder med den fire-byte ASCII-header BPS1 ved offset nul - 1-tallet er et formatversionsnummer - efterfulgt af heltal med variabel længde, der koder for kildefilstørrelsen, målfilstørrelsen og en valgfri metadatablok (UTF-8 tekst). Patch-kroppen bruger fire kommandotyper: SourceRead (kopier uændrede bytes fra kilden), TargetRead (skriv nye bytes), SourceCopy (kopier fra en vilkårlig kilde-offset) og TargetCopy (kopier fra det allerede skrevne output). Filen slutter med tre CRC32-kontrolsummer (4 bytes hver, little-endian): én for kilde-ROM'en, én for den forventede output-ROM og én, der dækker selve patch-filen. Et patch-program nægter at anvende patchen, hvis kildens kontrolsum ikke matcher, hvilket forhindrer korrupt output.
BPS efterfulgte det ældre IPS-format ved at fjerne dets filstørrelsesloft på 16 MB og tilføje indlejret integritetsverificering. Det er meget brugt til SNES, GBA og NDS ROM-hacks.
Almindelige værktøjer inkluderer flips (Floating IPS, Windows/Linux), MultiPatch (macOS), UniPatcher (Android) og browserbaserede patch-programmer som RomPatcher.js.
Sikkerhed og tryghed
RISIKO: MEDIUMBPS-filer i sig selv er blot patch-data og kan ikke eksekvere kode - de kræver et separat patch-værktøj og en ROM. Risikoen kommer fra at downloade patch-værktøjer fra uofficielle kilder (nogle er bundlet med adware) og fra lovligheden af ROM-distribution i din jurisdiktion. Anbefalede patch-programmer (Floating IPS, RomPatcher.js) er rene open-source-værktøjer.
Formatdetaljer
kort fortalt- Microsoft Works Backup File - Ældre opslag på visse fil-info-sider hævder, at .bps = Microsoft Works dokument-backup; dette er en fejlidentifikation - der er intet bevis for, at denne association er reel eller udbredt.
Programmer der åbner BPS-filer
Tekniske detaljer
dyb specifikation| Magic bytes | `42 50 53 31` (`BPS1`) ved offset 0 - `1` angiver formatversion |
| Byte-rækkefølge | Little-endian (heltal med variabel længde og CRC32-kontrolsummer) |
| Container | Brugerdefineret lineært binært format (ingen standard wrapper) |
| Kodning | Binær |
| Heltalskodning | Unsigned heltal med variabel længde (7 bits pr. byte, MSB som fortsættelsesflag) |
| Patch-kommandoer | SourceRead, TargetRead, SourceCopy, TargetCopy |
| Kontrolsum-skema | Tre CRC32-kontrolsummer (kilde-ROM, mål-ROM, patch-fil) - 4 bytes hver, little-endian |
| Kilde-validering | Patch-programmet afbryder, hvis kildens CRC32 ikke matcher den indlejrede kontrolsum - forhindrer anvendelse på forkert ROM |
| Typisk filstørrelse | Fra få KB til flere MB (proportional med ROM-forskellens størrelse) |
| Specifikation | Public domain (udgivet af byuu/Near, cirka 2012); enkelt version BPS1 |
| Målplatforme | SNES, GBA, NDS og andre retro-ROM-hack-mål |
| Forgænger-formater | IPS (ingen kontrolsummer, 16 MB størrelsesgrænse), UPS |
| Udgivet | circa 2012 (byuu/beat tool) |
| Seneste version | BPS1 (single version in spec) |
| Åben standard | Ja · royaltyfri |
| Specifikation | github.com |
BPS-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om BPS-filer.