Create and Fuck your AI Slut -70% OFF
x

Tool Ren'Py UnRenGUI, UnRen-forall(v9.4), UnRen-Powershell-forall(v9.4), UnRen-old

5.00 star(s) 3 Votes
Jan 26, 2020
72
88
102
Hi, with my unRen or with UnRen 1.0.11? And where can I find a game? the site does not find one with that name :unsure:
Sorry for the late response! It's actually a game from steam. I'll leave the so you can see the files. I got this error with your Unren, with the other one I get a different error. I used to be able to extract the files in an older version (1.14), but it seems that they did something new with the latest version (1.20) that is making it hard to extract.

I'm trying to extract the rpa files to be able to access the code and remove the part that makes it a requirement to be opened with steam (I did it before with 1.14). But yeah, I'm having some trouble it seems.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,430
391
Sorry for the late response! It's actually a game from steam. I'll leave the so you can see the files. I got this error with your Unren, with the other one I get a different error. I used to be able to extract the files in an older version (1.14), but it seems that they did something new with the latest version (1.20) that is making it hard to extract.

I'm trying to extract the rpa files to be able to access the code and remove the part that makes it a requirement to be opened with steam (I did it before with 1.14). But yeah, I'm having some trouble it seems.
They've made changes to the very heart of the RenPy engine: Python itself. Specifically, you can get rid of this error if you unpack the zip archive with python libraries into the correct folder, But this is only part of the changes, the second part is the libpye.pyd module (possibly commercial development), because of which the extension of compiled python files is now .pye instead of .pyc. I'll try to play with it a little bit, but I can't promise anything, it's still a little not my level.
 

SonsOfLiberty

Community Champion
Compressor
Sep 3, 2022
30,145
277,098
957
  • Like
Reactions: Eagle1900
Jan 26, 2020
72
88
102
They've made changes to the very heart of the RenPy engine: Python itself. Specifically, you can get rid of this error if you unpack the zip archive with python libraries into the correct folder, But this is only part of the changes, the second part is the libpye.pyd module (possibly commercial development), because of which the extension of compiled python files is now .pye instead of .pyc. I'll try to play with it a little bit, but I can't promise anything, it's still a little not my level.
Damn, it seems they really went for it this time. Thank you for even trying, no pressure if you can't do it, I appreciate your help nonetheless. Have a good day/evening/night!
 
  • Like
Reactions: VepsrP

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,430
391
Sorry for the late response! It's actually a game from steam. I'll leave the so you can see the files. I got this error with your Unren, with the other one I get a different error. I used to be able to extract the files in an older version (1.14), but it seems that they did something new with the latest version (1.20) that is making it hard to extract.

I'm trying to extract the rpa files to be able to access the code and remove the part that makes it a requirement to be opened with steam (I did it before with 1.14). But yeah, I'm having some trouble it seems.
Here is a version that can unpack and decompile, but the game does not start not only without steam, but also without archives, so you have to solve two problems.
 
Jan 26, 2020
72
88
102
Here is a version that can unpack and decompile, but the game does not start not only without steam, but also without archives, so you have to solve two problems.
TYSM! I really appreciate your help! I think I have a way around one of the 2 problems you mentioned and I'll see what I can do about the other. Again, thank you so much. Hope you have a wonderful day/evening/night!
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,430
391
As for the game Our Bright Days, to solve it's one (very important) problem, I'm going to create project unrpyc 2.0, in which I will try to rethink the way data is prepared for recording after the decompilation procedure itself. This is not a quick case, so origin one version of the tool will be used to solve more trivial issues. Then, if the idea succeeds, the two projects will be merged into one.
 

yoyomistro

Engaged Member
Jan 15, 2017
3,136
4,696
445
As for the game Our Bright Days, to solve it's one (very important) problem, I'm going to create project unrpyc 2.0, in which I will try to rethink the way data is prepared for recording after the decompilation procedure itself. This is not a quick case, so origin one version of the tool will be used to solve more trivial issues. Then, if the idea succeeds, the two projects will be merged into one.
Awesome, thanks I tried your scripts the other day, still ran into the issue.
 

calel

Member
Aug 19, 2021
390
617
217
https://f95zone.to/threads/the-shrink-r-r-v1-9-onemanvn.36610/page-178 cant extract rpa files
compressed

Remove RPA archives after extraction?
. Enter (y/n):y
+ RPA archives will be deleted

Searching for RPA packages
A rendszer nem találja a megadott elérési utat.
'R-Season-One-compressed\game\' is not recognized as an internal or external command,
operable program or batch file.
Unpacking "chapterone.rpa" acrhive.
Traceback (most recent call last):
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 93, in <module>
archive = RenPyArchive(arch, archives.index(arch))
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 21, in __init__
self.load(file, index)
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 49, in load
self.handle = open(self.file, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'chapterone.rpa'

Cleaning up temporary files...
A rendszer nem találja a megadott elérési utat.
'R-Season-One-compressed' is not recognized as an internal or external command,
operable program or batch file.

----------------------------------------------------

Finished!

Enter "1" to go back to the menu, or any other
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,430
391
https://f95zone.to/threads/the-shrink-r-r-v1-9-onemanvn.36610/page-178 cant extract rpa files
compressed

Remove RPA archives after extraction?
. Enter (y/n):y
+ RPA archives will be deleted

Searching for RPA packages
A rendszer nem találja a megadott elérési utat.
'R-Season-One-compressed\game\' is not recognized as an internal or external command,
operable program or batch file.
Unpacking "chapterone.rpa" acrhive.
Traceback (most recent call last):
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 93, in <module>
archive = RenPyArchive(arch, archives.index(arch))
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 21, in __init__
self.load(file, index)
File "C:\Users\User\Desktop\renpy-7.3.5-sdk\TheShrinkR&R-Season-One-compressed\rpatool.py", line 49, in load
self.handle = open(self.file, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'chapterone.rpa'

Cleaning up temporary files...
A rendszer nem találja a megadott elérési utat.
'R-Season-One-compressed' is not recognized as an internal or external command,
operable program or batch file.

----------------------------------------------------

Finished!

Enter "1" to go back to the menu, or any other
Remove the "&" sign in the name of the game folder or use the PowerShell version.
 
  • Like
Reactions: giqui

gnadudu

Well-Known Member
Aug 31, 2018
1,995
2,958
437
Hi,

had an issue decompiling the scripts from LoSeSB. It had an issue by not recognizing starred_indexes again (It doesn't use doublestarred_indexes but I guess it would also affect those).
I changed the code in the util.py from this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
to this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "starred_indexes") and hasattr(arginfo.starred_indexes.name, "__iter__") and i in arginfo.starred_indexes.name):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "doublestarred_indexes") and hasattr(arginfo.doublestarred_indexes.name, "__iter__") and i in arginfo.doublestarred_indexes.name):
            rv.append("**%s" % val)
        elif(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
(left the old stuff in, because I think older renpy versions still need to identify the starred and doublestarred indexes this way...)

because the dump gave me this:
1691735671626.png

And now it works fine.
You can check the file game/ac/watch.rpyc (line 102) for an instance which should be
Code:
call apply_movie_gain (genre, *people)
but your version decompiles it to

Code:
call apply_movie_gain (genre, people)
which leads to bugs ingame...

Thanks for looking into it. :)
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,430
391
Hi,

had an issue decompiling the scripts from LoSeSB. It had an issue by not recognizing starred_indexes again (It doesn't use doublestarred_indexes but I guess it would also affect those).
I changed the code in the util.py from this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
to this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "starred_indexes") and hasattr(arginfo.starred_indexes.name, "__iter__") and i in arginfo.starred_indexes.name):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "doublestarred_indexes") and hasattr(arginfo.doublestarred_indexes.name, "__iter__") and i in arginfo.doublestarred_indexes.name):
            rv.append("**%s" % val)
        elif(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
(left the old stuff in, because I think older renpy versions still need to identify the starred and doublestarred indexes this way...)

because the dump gave me this:
View attachment 2843184

And now it works fine.
You can check the file game/ac/watch.rpyc (line 102) for an instance which should be
Code:
call apply_movie_gain (genre, *people)
but your version decompiles it to

Code:
call apply_movie_gain (genre, people)
which leads to bugs ingame...

Thanks for looking into it. :)
Yeah, It seems that the authors of the engine have finally decided to abandon meaningless underscores in variables:BootyTime:
Thanks for finding and solving the problem, I have already added a fix.
 

estrada777

Forum Fanatic
Modder
Donor
Mar 22, 2020
4,880
11,578
698
Hi,

had an issue decompiling the scripts from LoSeSB. It had an issue by not recognizing starred_indexes again (It doesn't use doublestarred_indexes but I guess it would also affect those).
I changed the code in the util.py from this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
to this:
Code:
def reconstruct_arginfo(arginfo):
    arginfo = convert_ast(arginfo)
    if arginfo is None:
        return ""

    rv = []
    for i, (name, val) in enumerate(arginfo.arguments):

        if(hasattr(arginfo, "starred_indexes") and hasattr(arginfo.starred_indexes.name, "__iter__") and i in arginfo.starred_indexes.name):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "doublestarred_indexes") and hasattr(arginfo.doublestarred_indexes.name, "__iter__") and i in arginfo.doublestarred_indexes.name):
            rv.append("**%s" % val)
        elif(hasattr(arginfo, "__starred_indexes__") and hasattr(arginfo.starred_indexes, "__iter__") and i in arginfo.starred_indexes):
            rv.append("*%s" % val)
        elif(hasattr(arginfo, "__doublestarred_indexes__") and hasattr(arginfo.doublestarred_indexes, "__iter__") and i in arginfo.doublestarred_indexes):
            rv.append("**%s" % val)
        elif name is not None:
            rv.append("{}={}".format(name, val))
        else:
            rv.append(val)
    if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
        rv.append("*%s" % arginfo.extrapos)
    if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
        rv.append("**%s" % arginfo.extrakw)

    return "(" + ", ".join(rv) + ")"
(left the old stuff in, because I think older renpy versions still need to identify the starred and doublestarred indexes this way...)

because the dump gave me this:
View attachment 2843184

And now it works fine.
You can check the file game/ac/watch.rpyc (line 102) for an instance which should be
Code:
call apply_movie_gain (genre, *people)
but your version decompiles it to

Code:
call apply_movie_gain (genre, people)
which leads to bugs ingame...

Thanks for looking into it. :)
I'd had this problem too, but I didn't know how to fix it so I stopped decompiling it!
 

trauts

Active Member
Aug 12, 2018
835
652
291
seems the latest unren-forall can't de-compile hard to love (HardtoLove-0.061) rpyc files
best way to describe it is it seems to cause unren process to terminate.
 
Last edited:
  • Thinking Face
Reactions: VepsrP

-CookieMonster666-

Message Maven
Nov 20, 2018
13,724
20,591
1,031
seems the latest unren-forall can't de-compile hard to love (HardtoLove-0.061) rpyc files
best way to describe it is it seems to cause unren process to terminate.
Yeah, that's basically the same issue I reported with another game (Lust Academy). I haven't seen an update for any progress on that, though. I'm guessing someone will get to it when they have time, but it might take awhile.
 
  • Like
Reactions: Twistty

gnadudu

Well-Known Member
Aug 31, 2018
1,995
2,958
437
Hmm, had no issues decompiling Lust Academy Season 3 3.1.1d or Hard To Love Ep 5 v0.061 with Unren-forall v8.9:
la.png
htl.png
 
5.00 star(s) 3 Votes