Matu

Member
Aug 24, 2018
189
130
Believe it or not, the gallery being locked behind a paywall unironically helped me enjoy the game more. I have a chronic need for instant gratification so having to view all the stuff by progression helped deliver the more hard and heavy sex bits lol

Funny enough I did try try the patron codes some many updates ago and the first thing I did was ruin the game for myself because you can just straight up unlock everything in there.
good for you but this is not my point anyway... i am just saying unlock it after the completion for free
 

GammaTheOne

Newbie
Jun 13, 2017
48
48
I put the code in this fork, it ought to work. Or it did a few months ago, at least. They've used this ridiculous custom format and hidden the key away in a binary DLL. I found it by disassembling.
Could you explain it for those of us that aren't very well versed when it comes to these things? I'm not quite sure what you mean.
 
Jun 21, 2020
129
209
Could you explain it for those of us that aren't very well versed when it comes to these things? I'm not quite sure what you mean.
RPA normally uses a standard format to store the information called RPA-3. The data is encrypted in the simplest possible way by taking the binary exclusive or (XOR) of each byte with a provided integer, the key. The key can be found in a standard place in the RPA file, making it rather pointless to be honest. It then uses a normal off-the-shelf compression method to decompress the data.

This particular product did it different. They've come up with a custom method, and they've called it RPA-9.1 for some reason. It uses the same normal compression as RPA-3, and the same XOR technique, but the key isn't available in the standard place. It's hidden in a compiled, binary DLL and accessed by some custom python code. Much more significantly though it also has another trick up its sleeve: once the data is uncompressed and decrypted, it's all sent to the DLL for further processing. Some native, compiled code uses a very long key to then XOR the entire file a second time, and returns it to Renpy. The process is all obfuscated somewhat, including code that deliberately doesn't do anything to throw off anyone trying to work it out, though not very effectively. I just wrote some python code that does what the DLL does and included it inside unrpa.

Not going to lie this was mostly a waste of time that I did out of sheer spite.
 

GammaTheOne

Newbie
Jun 13, 2017
48
48
RPA normally uses a standard format to store the information called RPA-3. The data is encrypted in the simplest possible way by taking the binary exclusive or (XOR) of each byte with a provided integer, the key. The key can be found in a standard place in the RPA file, making it rather pointless to be honest. It then uses a normal off-the-shelf compression method to decompress the data.

This particular product did it different. They've come up with a custom method, and they've called it RPA-9.1 for some reason. It uses the same normal compression as RPA-3, and the same XOR technique, but the key isn't available in the standard place. It's hidden in a compiled, binary DLL and accessed by some custom python code. Much more significantly though it also has another trick up its sleeve: once the data is uncompressed and decrypted, it's all sent to the DLL for further processing. Some native, compiled code uses a very long key to then XOR the entire file a second time, and returns it to Renpy. The process is all obfuscated somewhat, including code that deliberately doesn't do anything to throw off anyone trying to work it out, though not very effectively. I just wrote some python code that does what the DLL does and included it inside unrpa.

Not going to lie this was mostly a waste of time that I did out of sheer spite.
I don't suppose you could give me very simple, step by step instructions on what to do with everything?
Sorry, I'm both exhausted and inexperienced with this sort of thing, I've played with much more simplistic stuff, but this is giving me a headache.
 

zadtier396

Newbie
Jul 25, 2022
25
71
RPA normally uses a standard format to store the information called RPA-3. The data is encrypted in the simplest possible way by taking the binary exclusive or (XOR) of each byte with a provided integer, the key. The key can be found in a standard place in the RPA file, making it rather pointless to be honest. It then uses a normal off-the-shelf compression method to decompress the data.

This particular product did it different. They've come up with a custom method, and they've called it RPA-9.1 for some reason. It uses the same normal compression as RPA-3, and the same XOR technique, but the key isn't available in the standard place. It's hidden in a compiled, binary DLL and accessed by some custom python code. Much more significantly though it also has another trick up its sleeve: once the data is uncompressed and decrypted, it's all sent to the DLL for further processing. Some native, compiled code uses a very long key to then XOR the entire file a second time, and returns it to Renpy. The process is all obfuscated somewhat, including code that deliberately doesn't do anything to throw off anyone trying to work it out, though not very effectively. I just wrote some python code that does what the DLL does and included it inside unrpa.

Not going to lie this was mostly a waste of time that I did out of sheer spite.
ngl i didnt understand most of it but this sounded pretty cool.i guess thats why the renpy editor mod didn't work for me way back when I just wanted to change the name of the mc
 
Jun 21, 2020
129
209
I don't suppose you could give me very simple, step by step instructions on what to do with everything?
Sorry, I'm both exhausted and inexperienced with this sort of thing, I've played with much more simplistic stuff, but this is giving me a headache.
If you just want to be able to extract this game I made the python module into a Windows exe. You should just be able to extract and point it at the archive, in a command line.
 
  • Like
Reactions: tankie123

petorignat

Newbie
Dec 10, 2019
48
62
I don't know, guys. Someone else posted their GitHub with the same thing almost a year ago in this same thread. If you wanted to unren the game, you could've done it a long time ago.
 
Jun 21, 2020
129
209
I don't know, guys. Someone else posted their GitHub with the same thing almost a year ago in this same thread. If you wanted to unren the game, you could've done it a long time ago.
Whatever? I already said I did this months ago. I was just sharing the script. Now you can unpack it whenever if you want. Who cares.
 
  • Like
Reactions: wildride69

GammaTheOne

Newbie
Jun 13, 2017
48
48
If you just want to be able to extract this game I made the python module into a Windows exe. You should just be able to extract and point it at the archive, in a command line.
Pixeldrain
So I keep getting an error "no such file" in regards to an extraction location. I've tried extracting to multiple different places with no success.
 
4.10 star(s) 20 Votes