¿Qué es el formato de archivo RPA?
El archivo .rpa es un Ren'Py Archive, un formato de contenedor binario utilizado por el motor de novelas visuales Ren'Py para agrupar los scripts compilados y los recursos de un juego en un único paquete distribuible. Los juegos creados con Ren'Py suelen incluir uno o más archivos .rpa (comúnmente llamados archive.rpa, images.rpa o scripts.rpa) dentro de la carpeta game/.
El formato comienza con una línea de encabezado ASCII que declara la versión -ya sea RPA-2.0 o la actual RPA-3.0- seguida de un desplazamiento hexadecimal al índice del archivo y, en RPA-3.0, una clave de ofuscación XOR hexadecimal. El índice se almacena como un diccionario de Python «pickled» y comprimido con zlib que mapea las rutas internas a pares de desplazamiento/longitud dentro del archivo. RPA-3.0 ofusca ligeramente esos desplazamientos con la clave del encabezado, pero esto no es un cifrado real y es trivialmente reversible.
Los archivos contenidos -scripts .rpyc compilados, imágenes, audio y video- se almacenan de forma directa sin recompresión, ya que cada tipo de recurso suele estar ya comprimido. El archivo reemplaza los scripts de código fuente .rpy legibles por humanos, que no se incluyen en las versiones de lanzamiento.
Los archivos .rpa no son archivos ZIP o RAR estándar y no pueden abrirse con herramientas de uso general como 7-Zip o WinRAR. La extracción requiere una utilidad compatible con Ren'Py como rpatool o UnRen.
Seguridad y protección
RIESGO: MEDIUMEl contenedor del archivo en sí son datos inertes, pero un juego de Ren'Py empaquetado en un .rpa contiene scripts compilados (.rpyc) que son lógica ejecutable para el motor Ren'Py y pueden incluir Python completo; por lo tanto, EJECUTAR un juego de Ren'Py no confiable (o instalar un mod cuyo .rpa no hayas inspeccionado) puede ejecutar código arbitrario en tu máquina. Obtén juegos y mods de fuentes reputadas y, si extraes un .rpa para modificarlo, revisa cualquier script descompilado antes de ejecutarlo. La «ofuscación» en RPA-3.0 no es cifrado y no ofrece seguridad; nunca confíes en ella para proteger secretos. Extraer un archivo es seguro; ejecutar su código es la parte con la que hay que tener cuidado.
Detalles del formato
en pocas palabras- RIB iTWO Project Archive - El software de construcción/BIM RIB iTWO guarda archivos de proyecto como .rpa; se abren solo con RIB iTWO. Representan una pequeña minoría de los archivos .rpa (~9%) frente al significado dominante de Ren'Py.
- RoboHelp / «archivo de proyecto» genérico - Algunas herramientas heredadas han usado .rpa para datos de proyectos empaquetados no relacionados; es raro hoy en día.
Programas que abren archivos RPA
Detalles técnicos
especificación profunda| Firma de archivo (magic bytes) | Encabezado ASCII que comienza con `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) en el desplazamiento 0; `RPA-2.0 ` para la variante heredada |
| Estructura del encabezado | Una sola línea de texto ASCII que contiene: etiqueta de versión, desplazamiento hexadecimal al índice y (solo RPA-3.0) una clave de ofuscación XOR hexadecimal, terminada por un carácter de nueva línea |
| Codificación del índice | Diccionario `pickle` de Python comprimido con zlib que mapea rutas de archivos internos a tuplas de (desplazamiento, longitud, prefijo) |
| Ofuscación del índice | RPA-3.0 ofusca mediante XOR el desplazamiento y la longitud almacenados de cada entrada con la clave declarada en la línea del encabezado; es trivialmente reversible, no es un cifrado real |
| Almacenamiento de archivos contenidos | Los archivos se concatenan de forma directa tras el encabezado sin compresión adicional aplicada; los recursos (PNG, OGG, WEBM, RPYC) ya están comprimidos en el origen |
| Tipos de recursos compatibles | Scripts compilados (`.rpyc`, `.rpymc`), imágenes (PNG, JPEG, WEBP), audio (OGG, MP3), video (WEBM) y archivos de datos de juego arbitrarios |
| Límite de entradas en el índice | Sin límite fijo; el índice es un `dict` de Python serializado cuyo tamaño está limitado solo por la memoria disponible |
| Verificación de integridad | No se almacena una suma de comprobación por archivo; el formato depende de la integridad inherente de los archivos de recursos contenidos |
| Declaración de versión | La versión del formato se declara por sí misma en la línea de encabezado de texto plano (`RPA-2.0` o `RPA-3.0`); las herramientas detectan la variante al analizarla sin un manifiesto separado |
| Tamaño típico del archivo | Desde unos pocos MB hasta varios GB, dependiendo del volumen de imágenes, audio y video incluidos en el juego |
| Plataformas de destino | Windows, macOS, Linux, Android, iOS: todas las plataformas soportadas oficialmente por el motor Ren'Py |
| Nombres de archivo típicos | `archive.rpa`, `images.rpa`, `scripts.rpa`: se encuentran dentro del directorio `game/` de un título de Ren'Py compilado |
| Compatibilidad de contenedor | No es una variante de ZIP, TAR o RAR; los archivadores de propósito general (7-Zip, WinRAR) no pueden abrir archivos `.rpa` |
| Desarrollador / mantenedor | Tom Rothamel y el proyecto de código abierto Ren'Py; el formato evolucionó con el motor (lanzado por primera vez en 2004) |
| Lanzado | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| Última versión | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.renpy.org |
Conversiones de RPA
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos RPA.