Ren’Py RPA: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks (→Games) |
||
| (28 intermediate revisions by the same user not shown) | |||
| Line 28: | Line 28: | ||
// file index (compressed with ZLIB) | // file index (compressed with ZLIB) | ||
// index is serialized with Python "Pickle" module (protocol version 2) | // index is serialized with Python "Pickle" module (protocol version 2 or newer) | ||
// more info here https://docs.python.org/3/library/pickle.html | // more info here https://docs.python.org/3/library/pickle.html | ||
// and here https://peps.python.org/pep-3154/ | // and here https://peps.python.org/pep-3154/ | ||
// and here http://fileformats.archiveteam.org/wiki/Pickle | // and here http://fileformats.archiveteam.org/wiki/Pickle | ||
// index is also encrypted with simple XOR | // index is also encrypted with simple XOR (offset and size are XORed with the index key) | ||
{ | { | ||
2 bytes (uint16) - protocol signature // 0x80 0x02 | 2 bytes (uint16) - protocol signature // 0x80 0x02 | ||
| Line 39: | Line 39: | ||
1 byte (uint8) - frame opcode | 1 byte (uint8) - frame opcode | ||
4 bytes (uint32) - unknown | 4 bytes (uint32) - unknown | ||
4 bytes (uint32) - frame | 4 bytes (uint32) - frame key length | ||
x bytes (char) - frame key (file name) | |||
x bytes - frame data // encrypted | x bytes - frame data // encrypted | ||
} | } | ||
| Line 53: | Line 54: | ||
* This file format occurs in games made on '''Ren’Py Engine'''. | * This file format occurs in games made on '''Ren’Py Engine'''. | ||
* This file format uses '''ZLIB''' compression and '''XOR''' encryption. | |||
=== Games === | === Games === | ||
List of games using this file format: | List of games using this file format: | ||
* Arcade Spirits (*.RPA) (PC) | * Arcade Spirits (*.RPA) (PC) | ||
* Cardinal Cross (*.RPA) (PC) | |||
* Changeling (*.RPA) (PC) | |||
* Doki Doki Literature Club! (*.RPA) (PC) | * Doki Doki Literature Club! (*.RPA) (PC) | ||
* DUFE: Masquerade (*.RPA) (PC) | |||
* Highway Blossoms: Remastered (*.RPA) (PC) | |||
* I'm a love interest in my childhood friend's reverse harem!!! (*.RPA) (PC) | |||
* little boats of farewell (*.RPA) (PC) | |||
* Our Life: Beginnings & Always (*.RPA) (PC) | * Our Life: Beginnings & Always (*.RPA) (PC) | ||
* Pale Cachexia (*.RPA) (PC) | |||
* Therapy with Dr. Albert Krueger (*.RPA) (PC) | |||
* many more... | * many more... | ||
| Line 71: | Line 81: | ||
[[Category:Complete | [[Category:Complete Almost Done|Ren’Py RPA]] | ||
[[Category:Platform PC|Ren’Py RPA]] | [[Category:Platform PC|Ren’Py RPA]] | ||
[[Category:CE | [[Category:CE Both|Ren’Py RPA]] | ||
[[Category:Format_Archive | Type: Archive]] | [[Category:Format_Archive | Type: Archive]] | ||
[[Category:Extension_rpa | Extension: rpa]] | [[Category:Extension_rpa | Extension: rpa]] | ||
[[Category:BMS_None | BMS: None]] | [[Category:BMS_None | BMS: None]] | ||
[[Category:ZLIB compression]] | |||
[[Category:XOR encryption]] | |||
[[Category:File Format]] | [[Category:File Format]] | ||
Latest revision as of 19:58, 21 January 2023
Back to index | Edit this page
RPA
- Format Type : Archive
- Endian Order : Little Endian
- Signatures : RPA-1.0 / RPA-2.0 / RPA-3.0 / RPA-4.0
Format Specifications
// header
7 bytes (char) - signature // e.g. "RPA-3.0"
1 byte (char) - separator // 0x20
16 bytes (char) - file index offset // e.g. "00000000005096c9" which is offset 5281481
1 byte (char) - separator // 0x20
8 bytes (char) - file index encryption key // e.g. "42424242" which is key 1111638594
// file data
num_of_files *
{
17 bytes (char) - engine string // "Made with Ren'Py."
x bytes - data
}
// file index (compressed with ZLIB)
// index is serialized with Python "Pickle" module (protocol version 2 or newer)
// more info here https://docs.python.org/3/library/pickle.html
// and here https://peps.python.org/pep-3154/
// and here http://fileformats.archiveteam.org/wiki/Pickle
// index is also encrypted with simple XOR (offset and size are XORed with the index key)
{
2 bytes (uint16) - protocol signature // 0x80 0x02
num_of_frames *
{
1 byte (uint8) - frame opcode
4 bytes (uint32) - unknown
4 bytes (uint32) - frame key length
x bytes (char) - frame key (file name)
x bytes - frame data // encrypted
}
}
MultiEx BMS Script
Not written yet.
Notes and Comments
- This file format occurs in games made on Ren’Py Engine.
- This file format uses ZLIB compression and XOR encryption.
Games
List of games using this file format:
- Arcade Spirits (*.RPA) (PC)
- Cardinal Cross (*.RPA) (PC)
- Changeling (*.RPA) (PC)
- Doki Doki Literature Club! (*.RPA) (PC)
- DUFE: Masquerade (*.RPA) (PC)
- Highway Blossoms: Remastered (*.RPA) (PC)
- I'm a love interest in my childhood friend's reverse harem!!! (*.RPA) (PC)
- little boats of farewell (*.RPA) (PC)
- Our Life: Beginnings & Always (*.RPA) (PC)
- Pale Cachexia (*.RPA) (PC)
- Therapy with Dr. Albert Krueger (*.RPA) (PC)
- many more...
Compatible Programs