Vad är filformatet BPS?
.bps är ett binärt delta-patchformat som används inom retrospel-communityn för att distribuera ROM-hacks och fan-översättningar utan att sprida upphovsrättsskyddad ROM-data. Formatet skapades av byuu (Near), skaparen av SNES-emulatorn bsnes, omkring 2012, och dess specifikation släpptes som public domain.
En .bps-fil börjar med en fyra byte lång ASCII-header BPS1 vid offset noll - där 1 är formatets versionsnummer - följt av heltal med variabel längd som kodar källfilens storlek, målfilens storlek och ett valfritt metadatablock (UTF-8-text). Patch-kroppen använder fyra kommandotyper: SourceRead (kopiera oförändrade bytes från källan), TargetRead (skriv nya bytes), SourceCopy (kopiera från en godtycklig offset i källan) och TargetCopy (kopiera från den redan skrivna utdatan). Filen avslutas med tre CRC32-kontrollsummor (4 bytes vardera, little-endian): en för käll-ROM, en för den förväntade mål-ROM-filen och en som täcker själva patch-filen. Ett patch-program vägrar att applicera patchen om källans kontrollsumma inte matchar, vilket förhindrar korrupt utdata.
BPS efterföljde det äldre IPS-formatet genom att ta bort storleksgränsen på 16 MB och lägga till inbyggd integritetsverifiering. Det används flitigt för ROM-hacks till SNES, GBA och NDS.
Vanliga verktyg inkluderar flips (Floating IPS, Windows/Linux), MultiPatch (macOS), UniPatcher (Android) och webbaserade verktyg som RomPatcher.js.
Säkerhet & trygghet
RISK: MEDIUMBPS-filer i sig är bara patch-data och kan inte exekvera kod - de kräver ett separat patch-verktyg och en ROM. Risker uppstår vid nedladdning av patch-verktyg från inofficiella källor (vissa kan innehålla adware) samt gällande lagligheten kring ROM-distribution i din jurisdiktion. Rekommenderade patch-program (Floating IPS, RomPatcher.js) är rena verktyg med öppen källkod.
Formatdetaljer
i ett nötskal- Microsoft Works Backup File - Äldre poster på vissa filinformationssajter hävdar att .bps = Microsoft Works-dokumentbackup; detta är en felaktig identifiering - det finns inga bevis för att denna koppling är verklig eller allmänt använd.
Program som öppnar BPS-filer
Tekniska detaljer
djup specifikation| Magic bytes | `42 50 53 31` (`BPS1`) vid offset 0 - `1` anger formatversion |
| Byteordning | Little-endian (heltal med variabel längd och CRC32-kontrollsummor) |
| Container | Anpassat linjärt binärformat (ingen standard-wrapper) |
| Kodning | Binär |
| Heltalskodning | Osignerade heltal med variabel längd (7 bitar per byte, MSB som fortsättningsflagga) |
| Patch-kommandon | SourceRead, TargetRead, SourceCopy, TargetCopy |
| Kontrollsummeschema | Tre CRC32-kontrollsummor (käll-ROM, mål-ROM, patch-fil) - 4 bytes vardera, little-endian |
| Källvalidering | Patch-programmet avbryter om källans CRC32 inte matchar den inbäddade kontrollsumman - förhindrar applicering på fel ROM |
| Typisk filstorlek | Några KB till flera MB (proportionell mot storleken på skillnaderna i ROM-filen) |
| Specifikation | Public domain (publicerad av byuu/Near, cirka 2012); en enda version BPS1 |
| Målplattformar | SNES, GBA, NDS och andra mål för retro-ROM-hacks |
| Föregångarformat | IPS (inga kontrollsummor, 16 MB storleksgräns), UPS |
| Släppt | circa 2012 (byuu/beat tool) |
| Senaste version | BPS1 (single version in spec) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | github.com |
BPS-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om BPS-filer.