Inori / FuckGalEngine

My tools to crack galgame
822 stars 146 forks source link

Malie - text out for english version #32

Closed masagrator closed 5 years ago

masagrator commented 5 years ago

It's possible to make script psp-malie_text_out.py work better with english version of Dies Irae game on Steam? English version is saved in unicode LE format.

Or how to compile *.exes? I tried Visual Studio 2013 Express - error

warning C4018: '<' : signed/unsigned mismatch \Malie\DiesKit\ExecDecrypt\malie.cpp 38 1 ExecDecrypt

0xh3LL0 commented 5 years ago

i dont have the game, however try my build, i'm using visual studio 2017 release.zip

masagrator commented 5 years ago

Nothing. It doesn't show any error and nothing is created.

0xh3LL0 commented 5 years ago

give me the files

masagrator commented 5 years ago

https://drive.google.com/file/d/1MiO1n2JP0lD53yqMU0FxOYM_FNIJear6/view?usp=sharing PC version is English Steam (patch.dat is probably newer exec.dat) Switch-Android is Japanese.

0xh3LL0 commented 5 years ago

guess you're right, i didnt works...

Inori commented 5 years ago

It's possible to make script psp-malie_text_out.py work better with english version of Dies Irae game on Steam? English version is saved in unicode LE format.

I see the exec.dat you upload in PC folder, for this file, the entry starts at 0x3c370A and ends at 0x411756, if you look at its' binary content, you can find the pattern just by your eyes:

qq 20190219160115

qq 20190219160221

There many zeros list in columns, the format of the binary index follows like: offset length offset length offset length........ the next offset equals current offset plus length plus 2(which is the utf-16 end mark \x00\x00)

And then you can modify the psp-malie_text_out.py script, like:

    start = 0x3c370A
    src.seek(start)
    end = 0x411756 -4
    count = (end-start)//8

After some other little error correct, eg. codec and so on, I got: qq 20190219155944

masagrator commented 5 years ago

OK, i will check that. Now it looks much cleaner. My ultimate goal is to replace english text with switch text.

Accidentaly closed issue. For now I want to stay it open.

masagrator commented 5 years ago

OK, I cleared out text that now looks like Japanese Switch version. image image And now how to import this? pspimport doesn't work

python pspimport.py File "pspimport.py", line 56 print fn ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(fn)?

And needs new offsets.

Inori commented 5 years ago

And now how to import this? pspimport doesn't work

You shouldn't expect the old code can just work directly. Since you can export the text yourself, you know the file's binary structure already. Just replace the old text with new text, then fix the index with new offset and length.

masagrator commented 5 years ago

But what are the new offsets? In import there are different than original text_out and I don't have PSP version to check.

Or I need to modify text_out by myself to import it? Because pspimport doesn't have any dics or *.dat reference so maybe I misunderstood something.

Edit: Ok, i converted it to Python 3 and now got [Errno 2] No such file or directory: 'in.tbl' And i don't know what is this.

Inori commented 5 years ago

Read the export script's code (psp-malie_text_out.py), see how it works. Once you understand the code, then you just write new text, update binary index, that's all.

shensheng070632 commented 5 years ago

May I ask how to find the start Address?

Monaco-a-Knox commented 1 year ago

I'm trying to get it to work with the HD version, but psp-malie_text_out.py only creates blank files. Could you provide a working export/import version, @Inori ? I've tried everything

Edit: nevermind, it worked using another tool.