Hva er BPS-filformatet?
.bps er et binært delta-patch-format som brukes i retrospillmiljøet for å distribuere ROM-hacks og fanoversettelser uten å distribuere opphavsrettsbeskyttet ROM-data. Formatet ble opprettet av byuu (Near), forfatteren av bsnes SNES-emulatoren, rundt 2012, og spesifikasjonen ble utgitt som «public domain».
En .bps-fil starter med en fire-byte ASCII-header BPS1 ved offset null - 1-tallet er et versjonsnummer for formatet - etterfulgt av heltall med variabel lengde som koder for kildefilstørrelse, målfilstørrelse og en valgfri metadatablokk (UTF-8 tekst). Patch-kroppen bruker fire kommandotyper: SourceRead (kopier uendrede bytes fra kilde), TargetRead (skriv nye bytes), SourceCopy (kopier fra en vilkårlig kilde-offset) og TargetCopy (kopier fra den allerede skrevne utdataen). Filen avsluttes med tre CRC32-sjekksummer (4 bytes hver, little-endian): én for kilde-ROM, én for forventet utdata-ROM, og én som dekker selve patch-filen. Et patch-program vil nekte å utføre operasjonen hvis kildens sjekksum ikke stemmer, noe som forhindrer korrupt utdata.
BPS etterfulgte det eldre IPS-formatet ved å fjerne taket på 16 MB filstørrelse og legge til innebygd integritetsverifisering. Det er mye brukt for ROM-hacks til SNES, GBA og NDS.
Vanlige verktøy inkluderer flips (Floating IPS, Windows/Linux), MultiPatch (macOS), UniPatcher (Android) og nettleserbaserte verktøy som RomPatcher.js.
Sikkerhet og trygghet
RISIKO: MEDIUMBPS-filer i seg selv er bare patch-data og kan ikke kjøre kode - de krever et separat patch-verktøy og en ROM. Risikoen kommer fra å laste ned patch-verktøy fra uoffisielle kilder (noen er pakket med reklamevare) og fra lovligheten av ROM-distribusjon i din jurisdiksjon. Anbefalte patch-programmer (Floating IPS, RomPatcher.js) er rene verktøy med åpen kildekode.
Formatdetaljer
i et nøtteskall- Microsoft Works Backup File - Eldre oppføringer på enkelte filinfo-sider hevder .bps = Microsoft Works dokument-sikkerhetskopi; dette er en feilidentifikasjon - det finnes ingen bevis for at denne koblingen er reell eller utbredt.
Programmer som åpner BPS-filer
Tekniske detaljer
dyp spesifikasjon| Magic bytes | `42 50 53 31` (`BPS1`) ved offset 0 - `1` angir formatversjon |
| Byterekkefølge | Little-endian (heltall med variabel lengde og CRC32-sjekksummer) |
| Container | Egendefinert lineært binærformat (ingen standard wrapper) |
| Koding | Binær |
| Heltallskoding | Usignerte heltall med variabel lengde (7 bits per byte, MSB som fortsettelsesflagg) |
| Patch-kommandoer | SourceRead, TargetRead, SourceCopy, TargetCopy |
| Sjekksum-ordning | Tre CRC32-sjekksummer (kilde-ROM, mål-ROM, patch-fil) - 4 bytes hver, little-endian |
| Kildevalidering | Patch-programmet avbryter hvis kildens CRC32 ikke samsvarer med innebygd sjekksum - forhindrer bruk på feil ROM |
| Typisk filstørrelse | Fra noen få KB til flere MB (proporsjonal med størrelsen på ROM-forskjellene) |
| Spesifikasjon | Public domain (publisert av byuu/Near, ca. 2012); én enkelt versjon BPS1 |
| Målplattformer | SNES, GBA, NDS og andre mål for retro-ROM-hacking |
| Forgjengerformater | IPS (ingen sjekksummer, 16 MB størrelsesgrense), UPS |
| Utgitt | circa 2012 (byuu/beat tool) |
| Siste versjon | BPS1 (single version in spec) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | github.com |
BPS-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om BPS-filer.