- Dec 27, 2017
- 6,076
- 20,521
Interesting. It just worked for me too! ... .... I don't know what to say here. It sure didn't work before.option 3 works without complaints, I just checked it.
Oh well, never mind then.
Interesting. It just worked for me too! ... .... I don't know what to say here. It sure didn't work before.option 3 works without complaints, I just checked it.
Of course, it is now a new test bed for me. Although I already got bad code when decompiling Maou-sama Zero(The benefit is only in one line). I also encountered a similar problem in Ecchi-sensei, where decompilation occurred with problems due to some complex code structures or something like that.Okay. Now try starting the game. I assume we are both talking about Mythos.
Just did a quick run through the game, fast-forwarding through most of it (except the sex scenes ), and even did a restart from the console to get rid of the text box, after adding Ren'Py Transparent Text to the game folder. No problems whatsoever.Of course, it is now a new test bed for me. Although I already got bad code when decompiling Maou-sama Zero(The benefit is only in one line). I also encountered a similar problem in Ecchi-sensei, where decompilation occurred with problems due to some complex code structures or something like that.
Ah.. is ok, don't sweat it.MY BAD!!! My abject apologies for not thinking about what might be needed. Thank you for looking into it despite my blunder.
Did a look into your UnRen mod file and thought i drop my two cent:Modified the code to work on games that only support 64 bits. ...
else if
in batch/cmd script and my personal tests and try's gave me just problems with it. For myself i try to stay away from nested else if(as workaround), even from use of else. Its too easy to fall into some trap an bug your script.if
and if not
. Quod vide "De Morgan's laws". --> not (A ∧ B) is equivalent to ((not A) ∨ (not B))set "currentdir=%~dp0%"
set "gamedir=%currentdir%"
set "libdir=%currentdir%..\lib\"
if exist "game" if exist "lib" if exist "renpy" (
set "gamedir=%currentdir%game\"
set "libdir=%currentdir%lib\"
)
set "pythondir=%libdir%windows-x86_64\"
if not exist %pythondir% (
set "pythondir=%libdir%windows-i686\"
)
if not exist "%pythondir%python.exe" (
... bla bla
set "renpydir=%currentdir%renpy\"
this is never used, so can be droped.I just modified the original version of unRen.bat v0.9, so that it can decompile files from the latest RenPy version. What happened with varying success, as practice has shown. In General, I am far from writing a batch file. Literally on my knee, I studied how it was all written and worked. I remember about wrong message, I just keep forgetting to change it, being distracted by more important issues. I will try to fix this message today and see what's wrong with the decompiler, most likely I just cut out the deobfuscation complete with multiprocessing. The latter, unfortunately, had to be absolutely performed, because this stuff requires a file .pyd, which is not supported by python in RenPy.Ah.. is ok, don't sweat it.
Did a look into your UnRen mod file and thought i drop my two cent:
- AFAIK there is no
else if
in batch/cmd script and my personal tests and try's gave me just problems with it. For myself i try to stay away from nested else if(as workaround), even from use of else. Its too easy to fall into some trap an bug your script.
Its always possible to go just withif
andif not
. Quod vide "De Morgan's laws". --> not (A ∧ B) is equivalent to ((not A) ∨ (not B))
Means you could go like:
The three set ... lines inside the if conditionals should be indented but this software here fucks it up.Bash:set "currentdir=%~dp0%" set "gamedir=%currentdir%" set "libdir=%currentdir%..\lib\" if exist "game" if exist "lib" if exist "renpy" ( set "gamedir=%currentdir%game\" set "libdir=%currentdir%lib\" ) set "pythondir=%libdir%windows-x86_64\" if not exist %pythondir% ( set "pythondir=%libdir%windows-i686\" ) if not exist "%pythondir%python.exe" ( ... bla bla
The missing python error msg and others could also get some love about what it says. Walter Victor 's cas did show how it is partly.
- If you write anyway around in there:
set "renpydir=%currentdir%renpy\"
this is never used, so can be droped.- Why does the unpacking of unrpyc now say "Creating rpatool..."? C&P mistake?
...
Update: as it turned out, un.rpyc also fails. When I re-run - the same error came out. In the end, I spent 5 hours trying to find out that the problem was not in my build. Now I feel like a complete moron.
Do you mean the diff between...
I can't even understand the difference between the compiled un.rpyc file...
unrpyc.py
and un.rpyc
? If yes i could somewhat explain if wanted. I am sure anne O'nymous even more.Both rely on Ren'py's core to works. But a part of the core have been radically changed with the 7.4.0 version, the renpy library. With version prior to 7.4.0 it was a series of individual compiled libraries (DLL or so, depending of the OS), while with the version 7.4.0 it became a single compiled library, that is now named "librenpython".Do you mean the diff betweenunrpyc.py
andun.rpyc
? If yes i could somewhat explain if wanted. I am sure anne O'nymous even more.
I mean, the unrpyc tool itself can't handle the code from the Mythos game. It does not matter if it is python source code or compiled un.rpyc of the latest version. So here we can only wait for developers to deal with this problem, My level is clearly not enough to write decompilers or modify them at this level. As for deobfuscation, I just cut it out at the same time as I cut out multiprocessing, most likely so that there would be less hassle with base64. In general, we are waiting for new versions of the decompiler.
Um... whats happening? I cannot follow just now? Could you please describe where you trip?
I hope you do not use the "unchanged" node.js build files from the unren repo to build unren. Sam did there some strange js vodoo. If i remember correctly the recent changes to unrpyc should break the building process. I think the new file for deobfuscating will not get packed allong the others.
Do you mean the diff betweenunrpyc.py
andun.rpyc
? If yes i could somewhat explain if wanted. I am sure anne O'nymous even more.
Well, there are no problems with loading libraries, except that for third-party (decompiler folder) I had to use crutches. I wanted to look at its code in general(the part that I can understand at least). Understand why it does not decompile itself, including if I try to do it not in the RenPy itself, but through a Python file.VepsrP
Both rely on Ren'py's core to works. But a part of the core have been radically changed with the 7.4.0 version, the renpy library. With version prior to 7.4.0 it was a series of individual compiled libraries (DLL or so, depending of the OS), while with the version 7.4.0 it became a single compiled library, that is now named "librenpython".
For un.rpyc, it present no problem, being proceeded by Ren'py itself, it have access to everything. The library have already be imported (and correctly) by Ren'py itself, and therefore Python know how to address it. But because it's an independent application, unrpyc.py have to load it by itself. And it fail to do it, at least because of the name change ; I haven't really looked further, but I guess that there's also few changes in the structure of the library itself.
I don't know what you do, if you talk just around it with vague descriptions. Sry, i just dont understand what you do or try.I mean, the unrpyc tool itself can't handle the code from the Mythos game. It does not matter if it is python source code or compiled un.rpyc of the latest version. So here we can only wait for developers to deal with this problem...
I just decided to write the latest available version of unrpyc in a prepared batch file, which initially does not belong to me. The batch is more convenient to use than the tools separately. But when I try to decompile the Mythos game files - the game starts, but when the menu should appear, the game crashes. I'll send you an error message later when I get home. Moreover, even if i decompile the game with the un.rpyc file, it will start calmly at first, but if i close it and open again, the same error crashes, something about the "tuple".I don't know what you do, if you talk just around it with vague descriptions. Sry, i just dont understand what you do or try.
Anyway, there is no problem with current unrpyc-v1.1.5 for me if i go with a native py2.7 installation(i test with the UnRen rewrite). This way it works for different games, even this "Mythos-0.1.0".
But when I try to decompile the Mythos game files [...] the same error crashes, something about the "tuple".
define config.font_replacement_map["fonts/RobotoCondensed-Regular.ttf", False, True] = ("fonts/RobotoCondensed-Italic.ttf", False, False)
define config.font_replacement_map = ("fonts/RobotoCondensed-Italic.ttf", False, False)
init python:
config.font_replacement_map["fonts/RobotoCondensed-Regular.ttf", False, True] = ("fonts/RobotoCondensed-Italic.ttf", False, False)
That is, is it more a mistake of the game developer or is it RenPy itself that in original form(before decompilation) calmly accepted such a structure?Congratulation, you've found a bug, both in Ren'py, un.rpyc and the game.
In Ren'py, that should complain when it see this :
Code:define config.font_replacement_map["fonts/RobotoCondensed-Regular.ttf", False, True] = ("fonts/RobotoCondensed-Italic.ttf", False, False)
In un.rpyc, that should restore it as it, and not as :
But to be fair, I really wonder how Ren'py stored it. Plus, the line is so ridiculous and goes against all logic, therefore who would have guessed that it would be accepted by Ren'py.Code:define config.font_replacement_map = ("fonts/RobotoCondensed-Italic.ttf", False, False)
And finally in the game, that shouldn't have this line (and the two after it), but
as said in the documentation.Code:init python: config.font_replacement_map["fonts/RobotoCondensed-Regular.ttf", False, True] = ("fonts/RobotoCondensed-Italic.ttf", False, False)
It's both.That is, is it more a mistake of the game developer or is it RenPy itself that in original form(before decompilation) calmly accepted such a structure?
define
statement is to declare a variable, while the dev used it to declare a dictionary key. If you want, it's like building a building. You don't decide to build one floor, then later decide to add a second, then later decide to add a third, and so on (what he did). No, you build it globally, so something like:define config.font_replacement_map = { "Key": value, "key": value, [...] }
Thank you for your detailed answer. I think this is the rare case when permissiveness and ambition in programming led to someone else's headache. The person really made a cool game with music and special effects, but lost in the basic settings. And after all, it was a ride, the game works calmly. Now I don't have to worry. Put the UnRen.bat in order, just in case, return the deobfuscation to the decompiler and wait for the next versions of RenPy and unrpyc.It's both.
define
statement is to declare a variable, while the dev used it to declare a dictionary key. If you want, it's like building a building. You don't decide to build one floor, then later decide to add a second, then later decide to add a third, and so on (what he did). No, you build it globally, so something like:
But, I guess that, like the majority of devs on the scene, he don't have a coding background and so didn't knew that it shouldn't works.Code:define config.font_replacement_map = { "Key": value, "key": value, [...] }
What lead to Ren'py fault, since it shouldn't accept such syntax as valid. But in the same time one of the advantage of Ren'py is its strength face to code mistake like this one.
What finally lead to un.rpyc fault, that shouldn't assume, neither try to guess, what is a valid syntax. As Postel's law say, "be conservative in what you do, be liberal in what you accept from others."
Interesting saga man. Just a couple of questions. Did you base your version on Madeddy 's edited 10.1 version, or Sam's 0.9 version? Looks like Sam's based on the RPATool. Second, is your deobfuscation backwards compatible, or only for the newest version of Ren'Py? It looks like unrpyc was updated last month so just wondering if it was even necessary to use something different for deobfuscation.And so. I added deobfuscation(although it is generally not necessary, but since it was originally, then let it be). Do not be afraid of the increased number of messages when decompiling each file, the main thing is that the word "successful" flashes in the whole pile. Also removed the unfortunate message about "creating rpatool" during decompilation. I hope this is the last modification for the near future.
Meet the UnRen.bat v0.9-Dev Modded by Gideon.v5
I love fives. As well as the nickname Gideon, which, due to some well-known reasons, I can not get on almost any platform
What a find. Indeed. And a weird one also. I am jealous i think. You should have probably played in the lottery this week.Congratulation, you've found a bug, both in Ren'py, un.rpyc and the game.
In Ren'py, that should complain when it see this :
...Code:define config.font_replacement_map["fonts/RobotoCondensed-Regular.ttf", False, True] = ("fonts/RobotoCondensed-Italic.ttf", False, False)
Huh? I do not get this one? Whats wrong with the name? Is this some english thing? A insider joke?... As well as the nickname Gideon, which, due to some well-known reasons, I can not get on almost any platform