Wat is het RPA-bestandsformaat?
Het .rpa-bestand is een Ren'Py Archive - een binair containerformaat dat wordt gebruikt door de Ren'Py visual novel-engine om de gecompileerde scripts en assets van een spel te bundelen in een enkel distribueerbaar pakket. Gebouwde Ren'Py-games worden doorgaans geleverd met een of meer .rpa-bestanden (meestal genaamd archive.rpa, images.rpa of scripts.rpa) in de map game/.
Het formaat opent met een ASCII-headerregel die de versie declareert - ofwel RPA-2.0 of de huidige RPA-3.0 - gevolgd door een hex-offset naar de bestandsindex en, in RPA-3.0, een hex XOR-obfuscatietoets. De index wordt opgeslagen als een met zlib gecomprimeerd, „gepickled” Python-woordenboek dat interne paden koppelt aan offset/lengte-paren binnen het archief. RPA-3.0 obfuscateert die offsets lichtjes met de sleutel uit de header, maar dit is geen echte versleuteling en is triviaal omkeerbaar.
De aanwezige bestanden - gecompileerde .rpyc scripts, afbeeldingen, audio en video - worden ruw opgeslagen zonder hercompressie, aangezien elk asset-type doorgaans al gecomprimeerd is. Het archief vervangt de voor mensen leesbare .rpy bronscripts, die niet in release-builds worden opgenomen.
.rpa-bestanden zijn geen standaard ZIP of RAR-archieven en kunnen niet worden geopend door algemene tools zoals 7-Zip of WinRAR. Extractie vereist een hulpprogramma dat Ren'Py ondersteunt, zoals rpatool of UnRen.
Beveiliging & veiligheid
RISICO: MEDIUMDe archiefcontainer zelf bestaat uit inerte gegevens, maar een Ren'Py-game verpakt in een .rpa bevat gecompileerde scripts (.rpyc) die uitvoerbare logica zijn voor de Ren'Py-engine en volledige Python kunnen bevatten - dus het UITVOEREN van een niet-vertrouwde Ren'Py-game (of het installeren van een mod waarvan u de .rpa niet hebt gecontroleerd) kan willekeurige code uitvoeren op uw machine. Haal games en mods van betrouwbare bronnen, en als u een .rpa extraheert om deze te modden, controleer dan alle gedecompileerde scripts voordat u ze uitvoert. De „obfuscatie” in RPA-3.0 is geen versleuteling en biedt geen beveiliging; vertrouw er nooit op om geheimen te beschermen. Het extraheren van een archief is veilig; het uitvoeren van de code is het deel waar u voorzichtig mee moet zijn.
Formaatdetails
in een notendop- RIB iTWO Projectarchief - Bouw/BIM-software RIB iTWO slaat projectarchieven op als .rpa - alleen te openen met RIB iTWO; een kleine minderheid van de .rpa-bestanden (~9%) vergeleken met de dominante Ren'Py-betekenis.
- RoboHelp / generiek „projectarchief” - Een paar legacy-tools hebben .rpa gebruikt voor niet-gerelateerde verpakte projectgegevens; tegenwoordig zeldzaam.
Programma's die RPA-bestanden openen
Technische details
diepe specificaties| Bestandssignatuur (magic bytes) | ASCII-header beginnend met `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) op offset 0; `RPA-2.0 ` voor de legacy-variant |
| Header-structuur | Enkele ASCII-tekstregel met daarin: versietag, hex-offset naar de index, en (alleen RPA-3.0) een hex XOR-obfuscatietoets, afgesloten met een newline-teken |
| Index-codering | zlib-gecomprimeerd Python `pickle`-woordenboek dat interne bestandspaden koppelt aan (offset, lengte, prefix) tuples |
| Index-obfuscatie | RPA-3.0 XOR-obfuscateert de opgeslagen offset en lengte van elk item met de sleutel die in de headerregel is gedeclareerd; triviaal omkeerbaar, geen echte versleuteling |
| Opslag van bestanden | Bestanden worden ruw achter elkaar geplaatst na de header zonder extra compressie; assets (PNG, OGG, WEBM, RPYC) zijn bij de bron al gecomprimeerd |
| Ondersteunde asset-typen | Gecompileerde scripts (`.rpyc`, `.rpymc`), afbeeldingen (PNG, JPEG, WEBP), audio (OGG, MP3), video (WEBM) en willekeurige gamedatabestanden |
| Limiet index-items | Geen vaste limiet; de index is een gepickled Python `dict` waarvan de grootte alleen wordt beperkt door het beschikbare geheugen |
| Integriteitscontrole | Er wordt geen checksum per bestand opgeslagen; het formaat vertrouwt op de inherente integriteit van de aanwezige asset-bestanden |
| Versiedeclaratie | De formaatversie wordt zelf gedeclareerd in de tekstheaderregel (`RPA-2.0` of `RPA-3.0`); tools detecteren de variant tijdens het parsen zonder een apart manifest |
| Typische archiefgrootte | Enkele MB tot meerdere GB, afhankelijk van de hoeveelheid afbeeldingen, audio en video die in het spel zijn gebundeld |
| Doelplatformen | Windows, macOS, Linux, Android, iOS - alle platformen die officieel worden ondersteund door de Ren'Py-engine |
| Typische bestandsnamen | `archive.rpa`, `images.rpa`, `scripts.rpa` - te vinden in de map `game/` van een gebouwde Ren'Py-titel |
| Container-compatibiliteit | Geen ZIP-, TAR- of RAR-variant; algemene archiveringsprogramma's (7-Zip, WinRAR) kunnen `.rpa`-bestanden niet openen |
| Ontwikkelaar / onderhouder | Tom Rothamel en het Ren'Py open-source project; formaat is geëvolueerd met de engine (voor het eerst uitgebracht in 2004) |
| Uitgebracht | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| Laatste versie | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.renpy.org |
RPA conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RPA-bestanden.