Jump to content

Site Work Failed, But We Didn't Die

Ugh. Still more roadblocks. Need to get an as-yet unknown password from Nay in order to get this sucker changed. For now, please enjoy the mess of a forums we've got, and dream of the forums we will probably never one day have.

< 3 - Tay

You can dismiss this alert by clicking on the "X" button

Purple_Geez

Kono Oozora ni, Tsubasa wo Hirogete in russian

Recommended Posts

Hey guys, im trying to translate the game  Kono Oozora ni, Tsubasa wo Hirogete but obviously got some problems with it. 

So, here's what i've already done :

1. I've extracted RIO.arc and got files i needed (there were 161 files) 

2. Then i used a special japanese tool that decrypts and converts files to .txt and i noticed only 100 of them , why's that?? Where are the rest of them?

And how to make the game read changed files? For example i've finished the translation but these .txt file should become .ws2 back. Also , how do I make the game change the font so the text in the game can be cyrillic?

 

Will be grateful for your help!!

Edited by Purple_Geez

Share this post


Link to post
Share on other sites

Actually someone managed to translate to russian VN called koisuru natsu no last resort. Thing is that this game has the same engine that's why im trying to figure out what to do to achieve his success.

Main issue is that I dont know how to make the game understand changed scripts and also im having problems with converting .txt files back to .ws2

Share this post


Link to post
Share on other sites

The "Encryption" is just a roll left 2 bits...
About the the script format i can think 4 ways to solve the jump problem
First Manual fix all jumps while playing the game... (Easy)
Second Discovery the unconditional jump bytecode command, and make the script jump to the end every dialog and return to the position (Easy/Medium)
Third a soft-translation, basically... inject the text while playing... (Medium)
And the right way, alayze and decompile the script fully... (Hard)

Share this post


Link to post
Share on other sites
17 hours ago, Purple_Geez said:

1. I've extracted RIO.arc and got files i needed (there were 161 files) 

2. Then i used a special japanese tool that decrypts and converts files to .txt and i noticed only 100 of them , why's that??

you dont tell us what kind of tools you used, so we cant tell...

17 hours ago, Purple_Geez said:

how do I make the game change the font so the text in the game can be cyrillic?

here i am, quoting what binary fail said

Quote

Cyrillic symbols should work if you are using their Shift-JIS variants. Let's assume that was already done.

This engine seems to only support monospaced text, so you need to use a font with fixed-width characters.

Since the Cyrillic glyphs are considered full-width under Shift-JIS, the engine uses double-width spacing which brings in extra (unwanted) spacing between each letter. The engine will need a bit of patching to get the spacing to an acceptable amount.

 

 

 

 

 

9 hours ago, marcus-beta said:

The "Encryption" is just a roll left 2 bits...

just 2 bits left? wont you also need to shift 6 bits right as well?

9 hours ago, marcus-beta said:

Discovery the unconditional jump bytecode command, and make the script jump to the end every dialog and return to the position

ahdprc capable of doing this? i tested with yozora, all works fine and i dont need to fix those jumps and whatever is it...

9 hours ago, marcus-beta said:

inject the text while playing

most chinese translation using this method, this may interest you...

 

Edited by Huang Ling Yin

Share this post


Link to post
Share on other sites
34 minutes ago, Huang Ling Yin said:

just 2 bits left? wont you also need to shift 6 bits right as well?

The shift roll is a "looped" operation, the WillPlus roll byte per byte, and one byte have 8 bits so...
0110 1100 >> 6 = 1011 0001
0110 1100 << 2 = 1011 0001
ntdmdd.png

        public byte[] Decrypt(ref byte[] data) {
            for (int i = 0; i < data.Length; i++)
                data[i] = RotateRight(data[i], 2);
            return data;
        }
        public byte[] Encrypt(ref byte[] data) {
            for (int i = 0; i < data.Length; i++)
                data[i] = RotateLeft(data[i], 2);
            return data;
        }

So it's the same, but the << 2 is more fast.
--------------------------------

34 minutes ago, Huang Ling Yin said:

ahdprc capable of doing this? i tested with yozora, all works fine and i dont need to fix those jumps and whatever is it...

Looks nop, i don't read the entire source, but by this file... it's like the old version of my tool, only replace the script text... the problem don't shows imeditally, but while playing, in choice parts by sample... maybe you can see infinite loops and a error log in the game engine with missing cg/sprite while playing... i don't know much about this script, our friend @binaryfail taught me about this bad jumps and i have updated my tool to don't allow extend the string length, and because this to the AdvHD i recommend create soft-translation patchs (injecting the text while playing)
https://github.com/Inori/FuckGalEngine/blob/master/AdvHD/ahdprc/src/replace.cpp

To make my work more easy my soft-translation patch is a dll with only a single export called Process, you just need push to he the string pointer, and recived the EAX result pointer...
Like this:
 

push eax
push ebx ; StrPointer
call dword ptr: [&Process]
push ebx ; is a __cdecl 
mov ebx, eax ; new string pointer
push eax

 

34 minutes ago, Huang Ling Yin said:

most chinese translation using this method, this may interest you...

It's the exit to this fucking script stlye, i'm using my own version in my "Game-Specifics" repositories, it's because this is a "specified game only", is a text injection tool.

Edited by marcus-beta

Share this post


Link to post
Share on other sites
14 minutes ago, marcus-beta said:

maybe you can see infinite loops and a error log in the game engine with missing cg/sprite while playing

indeed, before i found ahdprc, i try edit with hex and yes, i get those cg/sprite error, but not with ahdprc, the script run just fine, i can get longer translation and not encountered any cg/sprite issue (yet?)

Share this post


Link to post
Share on other sites
2 minutes ago, Huang Ling Yin said:

indeed, before i found ahdprc, i try edit with hex and yes, i get those cg/sprite error, but not with ahdprc, the script run just fine, i can get longer translation and not encountered any cg/sprite issue (yet?)

if you want have sure just ask in the git if the tool don't corrupt the jump points, c++ isn't my programming language, i can't say with 100% of sure but to me this is just a coincidence, maybe he jump to the begin of a bytecode when you edit in the tool... maybe he don't corrupt the jump point...

Share this post


Link to post
Share on other sites
10 hours ago, marcus-beta said:

...

And the right way, alayze and decompile the script fully... (Hard)

This tool looks like a decompiler. I know opcode 0x06 is an unconditional jmp, whereas 0x02 looks like conditional jmp.

 

1 hour ago, Huang Ling Yin said:

here i am, quoting what binary fail said

Much of my comment is true with regards to the current Will engine, except for part about monospaced text. The current Will engine does have support proportional fonts. I made a small dll file to do a few things like overriding the font at runtime. In the Russian KoiRizo patch, I used the Tahoma font instead of MS UI Gothic.

Share this post


Link to post
Share on other sites
1 hour ago, Huang Ling Yin said:

you dont tell us what kind of tools you used, so we cant tell...

here i am, quoting what binary fail said

 

 

 

 

just 2 bits left? wont you also need to shift 6 bits right as well?

ahdprc capable of doing this? i tested with yozora, all works fine and i dont need to fix those jumps and whatever is it...

most chinese translation using this method, this may interest you...

 

I used this tool (http://www.geocities.jp/hoku_hoshi/souko/souko103.html) to decrypt and to convert

Share this post


Link to post
Share on other sites
3 hours ago, binaryfail said:

This tool looks like a decompiler. I know opcode 0x06 is an unconditional jmp, whereas 0x02 looks like conditional jmp.

 

Much of my comment is true with regards to the current Will engine, except for part about monospaced text. The current Will engine does have support proportional fonts. I made a small dll file to do a few things like overriding the font at runtime. In the Russian KoiRizo patch, I used the Tahoma font instead of MS UI Gothic.

As you may noticed I am absolutely 0 at programming so could you tell me what to do step by step to make this game show scripts in russian (cyrillic symbols)

Edited by Purple_Geez

Share this post


Link to post
Share on other sites
47 minutes ago, Huang Ling Yin said:

okay, as you can see, there is no problem with normal text, but no luck with russian text...
it show random gibberish since ahdprc will convert all text to chinese...
@binaryfail can you rebuild that tools, and change it to unicode instead, please :D

My compiler isn't set up for this at the moment, so no builds today.

But on that line you linked, change 936 to 932. That's the codepage for SJIS.

Share this post


Link to post
Share on other sites

Here is a .bat file to run the compile. Should've had a makefile instead...

Save this .bat and run it in the "src" folder. Their readme says to use MinGW with gcc 4.7.1 which I will agree with. The tool won't run correctly if it's compiled with newer gcc versions.

set path=C:\MinGW\bin
mkdir obj
del obj\*.o
for %%f in (*.cpp) do g++ -std=c++11 -O2 -fstack-check -fbounds-check -fstack-protector-all -Ilib -c %%f -o obj\%%~nf.o
g++ -s -o ahdprc.exe obj\*.o -static -Llib -lprincess -lssp
pause
Edited by binaryfail

Share this post


Link to post
Share on other sites
7 hours ago, Huang Ling Yin said:

okay, as you can see, there is no problem with normal text, but no luck with russian text...
it show random gibberish since ahdprc will convert all text to chinese...
@binaryfail can you rebuild that tools, and change it to unicode instead, please :D
sR50CUU.png

I won't comment about technical thing here since it's not my expertise here lol. But instead I would like to ask if you really from Indonesia there? I asking this because I saw the text in your screenshoot was Indonesian, and if so then I would like to say hello to you there. Oh, and I'm Indonesian here as well just in case my location didn't tell enough.

Share this post


Link to post
Share on other sites
5 hours ago, binaryfail said:

Did you change both of those to 932?

i did, and actually, i made 2 builds, s-jis (932) and unicode (65001)
since cyrillic has an extra-spacing issue with s-jis, i thought unicode would fix that, but no, and we know from your screenshot as well :(

and i guess, only you who we can rely to fix that... (with those modified dll, and such...)

Share this post


Link to post
Share on other sites
10 minutes ago, Huang Ling Yin said:

i did, and actually, i made 2 builds, s-jis (932) and unicode (65001)
since cyrillic has an extra-spacing issue with s-jis, i thought unicode would fix that, but no, and we know from your screenshot as well :(

and i guess, only you who we can rely to fix that... (with those modified dll, and such...)

Indeed. Regardless of how you manage your text file, the final output must be encoded with SJIS for the engine to read it correctly.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×