Co to jest format pliku RPA?
Plik .rpa to Ren'Py Archive - binarny format kontenera używany przez silnik visual novel Ren'Py do łączenia skompilowanych skryptów i zasobów gry w jeden pakiet dystrybucyjny. Zbudowane gry Ren'Py zazwyczaj są dostarczane z jednym lub kilkoma plikami .rpa (zwykle o nazwach archive.rpa, images.rpa lub scripts.rpa) wewnątrz folderu game/.
Format otwiera się nagłówkiem ASCII deklarującym wersję - albo RPA-2.0, albo obecną RPA-3.0 - po czym następuje szesnastkowy offset do indeksu plików oraz, w RPA-3.0, szesnastkowy klucz zaciemniania XOR. Indeks jest przechowywany jako skompresowany biblioteką zlib, spiklowany (pickled) słownik Python, który mapuje wewnętrzne ścieżki do par offset/długość w archiwum. RPA-3.0 lekko zaciemnia te offsety za pomocą klucza z nagłówka, ale nie jest to prawdziwe szyfrowanie i jest ono trywialnie odwracalne.
Zawarte pliki - skompilowane skrypty .rpyc, obrazy, dźwięk i wideo - są przechowywane w formie surowej bez ponownej kompresji, ponieważ każdy typ zasobów jest zazwyczaj już skompresowany. Archiwum zastępuje czytelne dla człowieka skrypty źródłowe .rpy, które nie są dołączane do wersji wydawniczych.
Pliki .rpa nie są standardowymi archiwami ZIP ani RAR i nie mogą być otwierane przez narzędzia ogólnego przeznaczenia, takie jak 7-Zip czy WinRAR. Ekstrakcja wymaga narzędzia obsługującego Ren'Py, takiego jak rpatool lub UnRen.
Bezpieczeństwo
RYZYKO: MEDIUMSam kontener archiwum to dane bierne, ale gra Ren'Py spakowana w .rpa zawiera skompilowane skrypty (.rpyc), które są logiką wykonywalną dla silnika Ren'Py i mogą zawierać pełny kod Python - zatem URUCHAMIANIE niezaufanej gry Ren'Py (lub instalowanie moda, którego pliku .rpa nie sprawdzono) może wykonać dowolny kod na Twoim komputerze. Pobieraj gry i mody z zaufanych źródeł, a jeśli wypakowujesz .rpa w celu modowania, przejrzyj zdekompilowane skrypty przed uruchomieniem. „Zaciemnianie” w RPA-3.0 nie jest szyfrowaniem i nie zapewnia bezpieczeństwa; nigdy nie polegaj na nim w celu ochrony tajemnic. Wypakowywanie archiwum jest bezpieczne; zachowaj ostrożność przy uruchamianiu zawartego w nim kodu.
Szczegóły formatu
w pigułce- RIB iTWO Project Archive - Oprogramowanie budowlane/BIM RIB iTWO zapisuje archiwa projektów jako .rpa - otwierane tylko przez RIB iTWO; niewielka mniejszość plików .rpa (~9%) w porównaniu do dominującego znaczenia w Ren'Py.
- RoboHelp / ogólne „archiwum projektu” - Kilka starszych narzędzi używało .rpa dla niepowiązanych danych pakietów projektów; dziś rzadko spotykane.
Programy otwierające pliki RPA
Szczegóły techniczne
specyfikacja| Sygnatura pliku (magic bytes) | Nagłówek ASCII zaczynający się od `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) pod offsetem 0; `RPA-2.0 ` dla starszego wariantu |
| Struktura nagłówka | Pojedyncza linia tekstu ASCII zawierająca: znacznik wersji, szesnastkowy offset do indeksu oraz (tylko RPA-3.0) szesnastkowy klucz zaciemniania XOR, zakończona znakiem nowej linii |
| Kodowanie indeksu | Skompresowany zlib słownik Python `pickle` mapujący wewnętrzne ścieżki plików na krotki (offset, długość, prefiks) |
| Zaciemnianie indeksu | RPA-3.0 zaciemnia metodą XOR zapisany offset i długość każdego wpisu za pomocą klucza zadeklarowanego w linii nagłówka; trywialnie odwracalne, nie jest to prawdziwe szyfrowanie |
| Przechowywanie zawartych plików | Pliki są łączone w formie surowej po nagłówku bez dodatkowej kompresji; zasoby (PNG, OGG, WEBM, RPYC) są już skompresowane u źródła |
| Obsługiwane typy zasobów | Skompilowane skrypty (`.rpyc`, `.rpymc`), obrazy (PNG, JPEG, WEBP), dźwięk (OGG, MP3), wideo (WEBM) oraz dowolne pliki danych gry |
| Limit wpisów w indeksie | Brak stałego limitu; indeks to spiklowany słownik `dict` Pythona, którego rozmiar jest ograniczony jedynie dostępną pamięcią |
| Sprawdzanie integralności | Nie są przechowywane sumy kontrolne dla poszczególnych plików; format polega na integralności zawartych plików zasobów |
| Deklaracja wersji | Wersja formatu jest deklarowana w nagłówku tekstowym (`RPA-2.0` lub `RPA-3.0`); narzędzia wykrywają wariant podczas analizy bez osobnego manifestu |
| Typowy rozmiar archiwum | Od kilku MB do kilku GB, zależnie od ilości obrazów, dźwięku i wideo dołączonych do gry |
| Platformy docelowe | Windows, macOS, Linux, Android, iOS - wszystkie platformy oficjalnie obsługiwane przez silnik Ren'Py |
| Typowe nazwy plików | `archive.rpa`, `images.rpa`, `scripts.rpa` - znajdujące się w katalogu `game/` wydanego tytułu Ren'Py |
| Kompatybilność kontenera | Nie jest to wariant ZIP, TAR ani RAR; uniwersalne archiwizatory (7-Zip, WinRAR) nie mogą otwierać plików `.rpa` |
| Deweloper / opiekun | Tom Rothamel i projekt open-source Ren'Py; format ewoluował wraz z silnikiem (pierwsze wydanie w 2004 roku) |
| Wydano | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| Najnowsza wersja | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.renpy.org |
Konwersje RPA
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki RPA.