Che cos'è il formato di file RPA?
Il file .rpa è un Archivio Ren'Py - un formato contenitore binario utilizzato dal motore per visual novel Ren'Py per raggruppare gli script compilati e gli asset di un gioco in un unico pacchetto distribuibile. I giochi Ren'Py compilati in genere vengono forniti con uno o più file .rpa (comunemente chiamati archive.rpa, images.rpa o scripts.rpa) all'interno della cartella game/.
Il formato si apre con una riga di intestazione ASCII che dichiara la versione - RPA-2.0 o l'attuale RPA-3.0 - seguita da un offset esadecimale all'indice del file e, in RPA-3.0, una chiave di offuscamento XOR esadecimale. L'indice è memorizzato come un dizionario Python «pickled» e compresso con zlib che mappa i percorsi interni alle coppie offset/lunghezza all'interno dell'archivio. RPA-3.0 offusca leggermente quegli offset con la chiave dell'intestazione, ma questa non è una vera crittografia ed è banalmente reversibile.
I file contenuti - script .rpyc compilati, immagini, audio e video - sono memorizzati grezzi senza ricompressione, poiché ogni tipo di asset è in genere già compresso. L'archivio sostituisce gli script sorgente .rpy leggibili dall'uomo, che non sono inclusi nelle build di rilascio.
I file .rpa non sono archivi standard ZIP o RAR e non possono essere aperti da strumenti di uso generale come 7-Zip o WinRAR. L'estrazione richiede un'utilità compatibile con Ren'Py come rpatool o UnRen.
Sicurezza e incolumità
RISCHIO: MEDIUMIl contenitore dell'archivio in sé è costituito da dati inerti, ma un gioco Ren'Py impacchettato in un .rpa contiene script compilati (.rpyc) che sono logica eseguibile per il motore Ren'Py e possono includere codice Python completo - quindi ESEGUIRE un gioco Ren'Py non attendibile (o installare una mod il cui .rpa non è stato ispezionato) può eseguire codice arbitrario sulla tua macchina. Ottieni giochi e mod da fonti affidabili e, se estrai un .rpa per modificarlo, rivedi tutti gli script decompilati prima dell'esecuzione. L'«offuscamento» in RPA-3.0 non è crittografia e non offre sicurezza; non fare mai affidamento su di esso per proteggere segreti. Estrarre un archivio è sicuro; eseguire il suo codice è la parte a cui prestare attenzione.
Dettagli del formato
in sintesi- Archivio di progetto RIB iTWO - Il software di costruzione/BIM RIB iTWO salva gli archivi di progetto come .rpa - apribili solo con RIB iTWO; una piccola minoranza di file .rpa (~9%) rispetto al significato dominante di Ren'Py.
- RoboHelp / 'archivio di progetto' generico - Alcuni strumenti legacy hanno utilizzato .rpa per dati di progetto pacchettizzati non correlati; rari al giorno d'oggi.
Programmi che aprono file RPA
Dettagli tecnici
specifiche approfondite| Firma del file (magic bytes) | Intestazione ASCII che inizia con `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) all'offset 0; `RPA-2.0 ` per la variante legacy |
| Struttura dell'intestazione | Singola riga di testo ASCII contenente: tag di versione, offset esadecimale all'indice e (solo RPA-3.0) una chiave di offuscamento XOR esadecimale, terminata da un carattere di nuova riga |
| Codifica dell'indice | Dizionario `pickle` di Python compresso con zlib che mappa i percorsi dei file interni a tuple (offset, lunghezza, prefisso) |
| Offuscamento dell'indice | RPA-3.0 offusca tramite XOR l'offset e la lunghezza memorizzati di ogni voce con la chiave dichiarata nella riga di intestazione; banalmente reversibile, non è vera crittografia |
| Archiviazione dei file contenuti | I file sono concatenati grezzi dopo l'intestazione senza ulteriore compressione applicata; gli asset (PNG, OGG, WEBM, RPYC) sono già compressi alla sorgente |
| Tipi di asset supportati | Script compilati (`.rpyc`, `.rpymc`), immagini (PNG, JPEG, WEBP), audio (OGG, MP3), video (WEBM) e file di dati di gioco arbitrari |
| Limite voci dell'indice | Nessun limite fisso; l'indice è un `dict` Python serializzato la cui dimensione è limitata solo dalla memoria disponibile |
| Controllo integrità | Non viene memorizzato alcun checksum per file; il formato si affida all'integrità intrinseca dei file asset contenuti |
| Dichiarazione della versione | La versione del formato è autodichiarata nella riga di intestazione in testo normale (`RPA-2.0` o `RPA-3.0`); gli strumenti rilevano la variante al momento dell'analisi senza un manifesto separato |
| Dimensione tipica dell'archivio | Da pochi MB a diversi GB a seconda del volume di immagini, audio e video inclusi nel gioco |
| Piattaforme di destinazione | Windows, macOS, Linux, Android, iOS - tutte le piattaforme ufficialmente supportate dal motore Ren'Py |
| Nomi file tipici | `archive.rpa`, `images.rpa`, `scripts.rpa` - che si trovano all'interno della directory `game/` di un titolo Ren'Py compilato |
| Compatibilità del contenitore | Non è una variante di ZIP, TAR o RAR; gli archiviatori generici (7-Zip, WinRAR) non possono aprire i file `.rpa` |
| Sviluppatore / manutentore | Tom Rothamel e il progetto open source Ren'Py; il formato si è evoluto con il motore (rilasciato per la prima volta nel 2004) |
| Rilasciato | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| Ultima versione | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| Standard aperto | Sì · royalty-free |
| Specifica | www.renpy.org |
Conversioni RPA
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file RPA.