Tool Ren'Py UnRen.bat v1.0.11d - RPA Extractor, RPYC Decompiler, Console/Developer Menu Enabler

5.00 star(s) 9 Votes

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
I thought "also" already about a windowed gui with python Tkinter... Want to try this? VepsrP ? "tk" comes already along with the python install.
Well, Google told me that tkinter is bullshit, it was after I created the form for the window, but before I posted the sample here. I chose Qt because I don't need to draw the entire form myself when there is a Qt Designer. I chose the exe file, because I wanted to collect all the functionality under one hood without having to put python or something else. A graphic design for beauty and more convenient operation with a large collection of games. if there are some graphic designers for tkinter, then i can try, but I definitely can't bear to write GUI myself(Although I once had such an experience in C#, but it was a long time ago and not true :BootyTime: ).
I can of course abandon the exe, but then we still need a python, even if without additional modules.
 

Madeddy

Active Member
Dec 17, 2017
814
468
Well, Google told me that tkinter is bullshit, it was after I created the form for the window, but before I posted the sample here. I chose Qt because I don't need to draw the entire form myself when there is a Qt Designer. ...
Well, QT is surely good, but like said. I would not even need all the qt libs you delivered along with it, because i have it native here with Kubuntu.
Thats one of the big minus points in windows for me: Every install comes with a shitload of libs along and you have them in the end multiple times on your system.
I dont know if tkinter good is or not. Just played a few times around with it and it worked.

.... if there are some graphic designers for tkinter, then i can try, but I definitely can't bear to write GUI myself...
AFAIK there are page and pygubu for GUI design and a few others.
We need basically a two part window i'd say:
  • A small one for all the buttons
  • A large one for the info output (console style)
Also perhaps somewhere central/up a info line of the current workdir. Just a thought. Oh, and from what i gathered of the three element placement methods pack, grid, place is from the sound of it "grid" the best.
:)
 
Last edited:

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Well, QT is surely good, but like said. I would not even need all the qt libs you delivered along with it, because i have it native here with Kubuntu.
Thats one of the big minus points in windows for me: Every install comes with a shitload of libs along and you have them in the end multiple times on your system.
I dont know if tkinter good is or not. Just played a few times around with it and it worked.


AFAIK there are page and pygubu for GUI design and a few others.
We need basically a two part window i'd say:
  • A small one for all the buttons
  • A large one for the info output (console style)
Also perhaps somewhere central/up a info line of the current workdir. Just a thought. Oh, and from what i gathered of the three element placement methods pack, grid, place is from the sound of it "grid" the best.
:)
I'm trying to get away from console output here, and you're offering me console output to a window object? Nice (y) :KEK:
As for pygubu, it again needs to be installed, if I understand correctly, it may be easier than PyQt, but it is still an additional module.
By the way, I figured out multithreading. More precisely, how the construction that caused it worked, for some reason it seemed to me that the decompilation was even faster than by the decompiler itself, but I may be wrong. :BootyTime:
 
Last edited:
  • Like
Reactions: yoyomistro

Madeddy

Active Member
Dec 17, 2017
814
468
I'm trying to get away from console output here, and you're offering me console output to a window object? Nice (y)
Sure, sure. But we have also buttons for people which like to click on something. Thats good. This way we get more of them.
We should also have sound effects. Oh yeah! I prefer some noise of crapping penguins...or when they have sex. It's so cute! :giggle: But not from bears - this would be really weird. And hairy. :poop:

For real: You want to forgo any info to the user about whats happening? Ohhhhkeyy... Not for me. It's like you try to sell me a car without steering wheel and tires, then you wish me "happy driving".
Just to clearify: I want just to output info about the current state, operation, errors etc. If you know another way to do this ... ok. I am open for suggestions.
As for pygubu, it again needs to be installed, if I understand correctly, it may be easier than PyQt, but it is still an additional module.
what_franco.gif
Uhm... pygubu is a designer app. Its is used for constructing the menu, not for running it. Or? Do i miss something?
Edit: Tested it. If i see this right there should be at least a mode where you need the tool as dependency. Like you said. Weird. GUI design is not for me. Meh. :cautious:
I figured out multithreading. ... it seemed to me that the decompilation was even faster than by the decompiler itself
I cannot follow. Decompiling without decompiler? :unsure: Do you mean your own decompiler version, or...?
 
Last edited:

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Sure, sure. But we have also buttons for people which like to click on something. Thats good. This way we get more of them.
We should also have sound effects. Oh yeah! I prefer some noise of crapping penguins...or when they have sex. It's so cute! :giggle: But not from bears - this would be really weird. And hairy. :poop:
I also thought about the soundtrack, but that's left for later. First the functionality, then the whistle-blowing.

For real: You want to forgo any info to the user about whats happening? Ohhhhkeyy... Not for me. It's like you try to sell me a car without steering wheel and tires, then you wish me "happy driving".
Just to clearify: I want just to output info about the current state, operation, errors etc. If you know another way to do this ... ok. I am open for suggestions.
Well, I've thought about it, but I haven't figured out how to do it more succinctly yet. Output information for each file itself. To do this, you can just stupidly leave the console in the background, but if without the console, I have not yet looked at how to display a message in the window that will say that decompilation is currently taking place, and when everything is over, it will close it itself. See the instructions above.

Uhm... pygubu is a designer app. Its is used for constructing the menu, not for running it. Or? Do i miss something?
Edit: Tested it. If i see this right there should be at least a mode where you need the tool as dependency. Like you said. Weird. GUI design is not for me. Meh. :cautious:
Well, if I understand correctly, then to display what pygubu will output, you need the corresponding module on python, but I may be wrong, I did not test it.

I cannot follow. Decompiling without decompiler? :unsure: Do you mean your own decompiler version, or...?
I mean the difference when decompiling through my program and directly through unrpyc. Perhaps my counterpart to the main function is more productive, but again, this may be self-deception. At least the code for finding the necessary files in the folder with the game is easier for me, perhaps even faster. :unsure:
 

Madeddy

Active Member
Dec 17, 2017
814
468
First the functionality, then the whistle-blowing.
I was joking, but if we manage to embed some sounds in the file(same as the tools) then ok. Whistling from a steam loco sounds good. :giggle:
...Output information for each file itself. ... I have not yet looked at how to display a message in the window that will say that decompilation is currently taking place...
Well, in tkinter you are able to redirect simply sys.stdout to a text widget.
...to display what pygubu will output, you need the corresponding module on python...
Yeah. I think this uses own functions so you will need it like you said. Argh! Its the same as for other frameworks like qt, gtk, kivy etc. I want no dependencys and this means with python we have only tkinter. Or perhaps html/css/js... For now i try my luck in tkinter even if its out of the box shit. And it looks worse for now?
Somebody here good at GUI dev work?
I mean the difference when decompiling through my program and directly through unrpyc....
Ok. Now i get it.
If you're ready i would be interested to see how this looks.

Another thing @ all:
... inserts the "HIDE" button on the screen that many developers do not usually put.
Let's pretend i was able to figure the code out how to provide this function for UnRen. Where should the hide button in a standard RenPy quick menu be placed?

rpy_quck_mn2.png
Before/after which of the other buttons?
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Ok. Now i get it.
If you're ready i would be interested to see how this looks.
Only when I finish all the functionality. Points 1 and 7-9 remain. Not to mention the first point, even 7-9 turned out to be harder than I expected. More precisely, they are not so complicated, but it is difficult to think of how to do it beautifully and without repeating the code. By the way, how is the work on bringing the code to pep8 progressing there? I tried it myself, the Atom modules helped me. But when I saw the problems of the red level, I decided not to touch it further, the main thing is that my code complies with the rules. And yes, the rule of 79 characters per line I sent to the ass. :BootyTime: Just set it to allow 150.:WeSmart: It's much freer to breathe now.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
So, well, I have mastered the unpacking. Although there were a couple of pitfalls:
1. When the script unpacked only one archive;
2. Unpacking went in an unknown direction-the console says that all the files are unpacked, but there is nothing in the folder with the game, it turned out that everything was unpacked in the folder with the script.:LUL:
It was an interesting experience, I thought it would be more difficult than with a decompiler, but everything turned out to be easier. I even tried to mix it up in a multi-thread, but then I realized that no hard drive in the world can withstand such multi-thread crap.:KEK:
It remains to think about complex commands.
Keep you posted.:)
There, by the way, with one game there were problems with unpacking, if someone is interested. Title: "Powers That Be".
I don't have any problems, I haven't downloaded it yet. Just one dude decided to complain about it in the game thread.
 

Madeddy

Active Member
Dec 17, 2017
814
468
By the way, how is the work on bringing the code to pep8 progressing there?
I did really touch this and let it be for now. Its just formating and the main code needs to be approved/final/accepted by the unrpyc devs, so i an use this a s official base.
I did by now only work on the py2 code removal and this was not much. Though the "codegen.py" i will not touch. Its complicated stuff.
I send you a link when i worked on the formating.
And yes, the rule of 79 characters per line I sent to the ass.
Haha, yes. I go with 90 or it gets to wide for my two editor column workflow.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Haha, yes. I go with 90 or it gets to wide for my two editor column workflow.
I agree, even I don't have more than 100 characters per two columns. But I seem to rarely work with really long strings in this option, only when it was necessary to rewrite the code from another source, in other cases I prefer one working field with tabs.
 

Madeddy

Active Member
Dec 17, 2017
814
468
...
There, by the way, with one game there were problems with unpacking, if someone is interested. Title: "Powers That Be".
I answered in the thread there, but for convenience and people which look here about a answer to this problem, i post the notice also in this thread:
The game "Powers That Be" try's a variant of the usual way at obfuscation with a reversed RPA key. Solution with linked modified rpakit can be found in the games thread.

Is this the first try this year? :unsure: Hm. Slow going.
Game Dev's ~ 0 : 50 ~ Tool Dev's
 
Last edited:

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
I answered in the thread there, but for convenience and people which look here about a answer to this problem, i post the notice also in this thread:
The game "Powers That Be" try's a variant of the usual way at obfuscation with a reversed RPA key. Solution with linked modified rpakit can be found in the games thread.

Is this the first try this year? :unsure: Hm. Slow going.
And now I have a question, why does rpakit calmly unpack, unlike rpatool? And then why do we need rpatool, maybe it makes sense to add rpakit to UnRen? :unsure:
 

Madeddy

Active Member
Dec 17, 2017
814
468
And now I have a question, why does rpakit calmly unpack, unlike rpatool? And then why do we need rpatool, maybe it makes sense to add rpakit to UnRen? :unsure:
1) Because i made a quick mod of rpakit after you mentioned the problem yesterday.
2) I dont support in rpakit py2, so old unren and py2 version of unren2 use rpatool instead.
3) This was always the plan. I run RpaKit already in the py3 version of unren2 for tests. And it works. Till now it misses however unrpyc because there was no py3 version. If our port checks out i integrate it and the new unren should be ready for open tests.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
1) Because i made a quick mod of rpakit after you mentioned the problem yesterday.
2) I dont support in rpakit py2, so old unren and py2 version of unren2 use rpatool instead.
3) This was always the plan. I run RpaKit already in the py3 version of unren2 for tests. And it works. Till now it misses however unrpyc because there was no py3 version. If our port checks out i integrate it and the new unren should be ready for open tests.
Ah, so it was just a cheat. I thought he could do it right out of the box. The question is, can he unpack all the archives now, or only with such inverted keys? I tried to do something with rpatool, but nothing worked.
 

Madeddy

Active Member
Dec 17, 2017
814
468
No. The inverted, but not normal rpa3. The modded version breaks unpacking of normal rpa3 archives because its nearly identical. Just a different key. Its hard to identify and part in code. Getting this really integrated in rpakit so everthing unpacks is a bit more work.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
No. The inverted, but not normal rpa3. The modded version breaks unpacking of normal rpa3 archives because its nearly identical. Just a different key. Its hard to identify and part in code. Getting this really integrated in rpakit so everthing unpacks is a bit more work.
Well, I thought so. It's really hard. Except that before the final unpacking, do sample-reading of files. The list of files is also available without a key, as I understand it. Just the received files become empty at the output(0 bytes of information in each). But here need to thoroughly think about all the pitfalls.
By the way, I have a grain of interesting information in this dark time.
You don't have permission to view the spoiler content. Log in or register now.
I found a way to output information to this field at any time, although this requires a large-scale rewriting of all prints, as well as most of the functions in the decompression and decompilation modules. Which is what I'll be doing in the near future. And when everything is ready, only the last 3 points of execution will remain. Actually, for their sake, this work on logging was started.
 

Madeddy

Active Member
Dec 17, 2017
814
468
Looking good. :PogChamp:
In my try's i used simple and easy buttons for all the tasks instead your bulled point/execute approach. In which framework do you work now? Still qt?

On the other front i updated RpaKit in the to v0.43.0 from v0.36.2. Who wants can test.

Along a few general behavior changes, improvements and small fixes comes the support for the new RPA format variation found in the game "Powers That Be". It uses with the standard RPA-3.0 just a reversed rpa key. So instead "42424242" its there "24242424". This brings the support count up to 9 out of 11 known rpa formats. And the missing two are at least detected.
 
  • Like
Reactions: VepsrP

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Looking good. :PogChamp:
In my try's i used simple and easy buttons for all the tasks instead your bulled point/execute approach. In which framework do you work now? Still qt?

On the other front i updated RpaKit in the to v0.43.0 from v0.36.2. Who wants can test.

Along a few general behavior changes, improvements and small fixes comes the support for the new RPA format variation found in the game "Powers That Be". It uses with the standard RPA-3.0 just a reversed rpa key. So instead "42424242" its there "24242424". This brings the support count up to 9 out of 11 known rpa formats. And the missing two are at least detected.
I spent two days on it. I tried various options. I've read dozens of pages of StackOverflow and Python and Qt API tutorials. But in the end, I was still able to make unpacking work in a separate thread and without blocking the main application.
You don't have permission to view the spoiler content. Log in or register now.
It was a pain in the ass. Now it remains only to intercept the end of the thread and block the call of other commands until the end of it thread. Ideally, it would still be good to block the closing of the window until the thread ends, or to give a choice: to come to senses or go to the end. But this will be in the second version, when I will pay more attention to convenience and all that.
I keep you up to date. I hope the "release" is coming soon.
 
5.00 star(s) 9 Votes