Qu'est-ce que le format de fichier RPA ?
Le fichier .rpa est une archive Ren'Py - un format de conteneur binaire utilisé par le moteur de visual novel Ren'Py pour regrouper les scripts compilés et les ressources d'un jeu dans un seul paquet distribuable. Les jeux Ren'Py compilés sont généralement livrés avec un ou plusieurs fichiers .rpa (souvent nommés archive.rpa, images.rpa ou scripts.rpa) situés dans le dossier game/.
Le format s'ouvre par une ligne d'en-tête ASCII déclarant la version - soit RPA-2.0, soit l'actuelle RPA-3.0 - suivie d'un décalage hexadécimal vers l'index du fichier et, dans le cas de RPA-3.0, d'une clé d'obfuscation XOR hexadécimale. L'index est stocké sous la forme d'un dictionnaire Python « picklé » et compressé avec zlib, qui fait correspondre les chemins internes à des paires décalage/longueur au sein de l'archive. RPA-3.0 obfusque légèrement ces décalages avec la clé de l'en-tête, mais il ne s'agit pas d'un véritable chiffrement et l'opération est trivialement réversible.
Les fichiers contenus - scripts .rpyc compilés, images, audio et vidéo - sont stockés bruts sans re-compression, car chaque type de ressource est généralement déjà compressé. L'archive remplace les scripts sources .rpy lisibles par l'homme, qui ne sont pas inclus dans les versions finales.
Les fichiers .rpa ne sont pas des archives ZIP ou RAR standard et ne peuvent pas être ouverts par des outils généralistes tels que 7-Zip ou WinRAR. L'extraction nécessite un utilitaire compatible Ren'Py tel que rpatool ou UnRen.
Sécurité et sûreté
RISQUE : MEDIUMLe conteneur d'archive lui-même est une donnée inerte, mais un jeu Ren'Py empaqueté dans un .rpa contient des scripts compilés (.rpyc) qui sont une logique exécutable pour le moteur Ren'Py et peuvent inclure du Python complet - ainsi, LANCER un jeu Ren'Py non fiable (ou installer un mod dont vous n'avez pas inspecté le .rpa) peut exécuter du code arbitraire sur votre machine. Obtenez vos jeux et mods auprès de sources réputées, et si vous extrayez un .rpa pour le modifier, examinez tous les scripts décompilés avant de les exécuter. L'« obfuscation » dans RPA-3.0 n'est pas un chiffrement et n'offre aucune sécurité ; ne comptez jamais dessus pour protéger des secrets. L'extraction d'une archive est sûre ; c'est l'exécution de son code qui nécessite de la prudence.
Détails du format
en bref- Archive de projet RIB iTWO - Le logiciel de construction/BIM RIB iTWO enregistre les archives de projet sous l'extension .rpa - s'ouvre uniquement avec RIB iTWO ; une petite minorité de fichiers .rpa (~9 %) par rapport à la signification dominante de Ren'Py.
- RoboHelp / « archive de projet » générique - Quelques outils hérités ont utilisé .rpa pour des données de projet empaquetées non liées ; rare aujourd'hui.
Programmes qui ouvrent les fichiers RPA
Détails techniques
spécifications approfondies| Signature de fichier (octets magiques) | En-tête ASCII commençant par `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) à l'offset 0 ; `RPA-2.0 ` pour la variante héritée |
| Structure de l'en-tête | Une seule ligne de texte ASCII contenant : la balise de version, le décalage hexadécimal vers l'index et (RPA-3.0 uniquement) une clé d'obfuscation XOR hexadécimale, terminée par un caractère de saut de ligne |
| Encodage de l'index | Dictionnaire Python `pickle` compressé avec zlib mappant les chemins de fichiers internes à des tuples (décalage, longueur, préfixe) |
| Obfuscation de l'index | RPA-3.0 applique un XOR sur le décalage et la longueur stockés de chaque entrée avec la clé déclarée dans la ligne d'en-tête ; trivialement réversible, pas un vrai chiffrement |
| Stockage des fichiers contenus | Les fichiers sont concaténés bruts après l'en-tête sans compression supplémentaire appliquée ; les ressources (PNG, OGG, WEBM, RPYC) sont déjà compressées à la source |
| Types de ressources pris en charge | Scripts compilés (`.rpyc`, `.rpymc`), images (PNG, JPEG, WEBP), audio (OGG, MP3), vidéo (WEBM) et fichiers de données de jeu arbitraires |
| Limite d'entrées d'index | Aucune limite fixe ; l'index est un `dict` Python dont la taille n'est limitée que par la mémoire disponible |
| Vérification d'intégrité | Aucune somme de contrôle par fichier n'est stockée ; le format repose sur l'intégrité intrinsèque des fichiers de ressources contenus |
| Déclaration de version | La version du format est auto-déclarée dans la ligne d'en-tête en texte clair (`RPA-2.0` ou `RPA-3.0`) ; les outils détectent la variante au moment de l'analyse sans manifeste séparé |
| Taille typique de l'archive | De quelques Mo à plusieurs Go selon le volume d'images, d'audio et de vidéo regroupés dans le jeu |
| Plateformes cibles | Windows, macOS, Linux, Android, iOS - toutes les plateformes officiellement supportées par le moteur Ren'Py |
| Noms de fichiers typiques | `archive.rpa`, `images.rpa`, `scripts.rpa` - trouvés dans le répertoire `game/` d'un titre Ren'Py compilé |
| Compatibilité du conteneur | N'est pas une variante de ZIP, TAR ou RAR ; les archiveurs généralistes (7-Zip, WinRAR) ne peuvent pas ouvrir les fichiers `.rpa` |
| Développeur / mainteneur | Tom Rothamel et le projet open-source Ren'Py ; le format a évolué avec le moteur (première version en 2004) |
| Publié | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| Dernière version | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.renpy.org |
Conversions RPA
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers RPA.