PersonA ~Opera Za no Kaijin~ (R-18) Proyect Translation

Yui87

Member
Elite Member
Nov 5, 2013
123
59
Hi, I'm trying to translate the otome game for PC PersonA ~Opera Za no Kaijin +18) initially in Spanish and later if someone helps me in English (I'm Spanish and I don't know much English), I would like to see if you know of any tool to be able to extract the texts of this game, a girl who is helping me cannot find any tool and says that it seems quite complicated, we have searched in forums from years ago that a girl began to translate the game into English but we did not find an answer :
https://forums.fuwanovel.net/topic/474-need-help-with-patching-a-vn/#comment-2836

I hope you can give us some help, thank you very much and best regards.
 
Hello, I am also interested in translating this game into Spanish and Princess Britain, but I don't know anything about programming, how has it gone?
 
  • Like
Reactions: Yui87
A post in the linked thread contains the decompiled algorithm for the tool requested along with a hint for the decryption key.

https://forums.fuwanovel.net/topic/474-need-help-with-patching-a-vn/#comment-2892

Basically, take that C code and make it read input from a file and produce output. That will give you the tool you were requesting. Then just do the reverse to repackage arbitrary files so the game can read them. That means either learn programming yourself, or finding someone to write a tool based upon that code in that post.
 
The girl who was helping me managed to extract the texts, the problem was inserting them again; She couldn't insert the amount of text 😭.
There we stay and there is no progress. I have no idea about programming, so if someone can solve the problem of reinserting the texts it would be very helpful.
Anyway, thank you very much ☺️
A post in the linked thread contains the decompiled algorithm for the tool requested along with a hint for the decryption key.

https://forums.fuwanovel.net/topic/474-need-help-with-patching-a-vn/#comment-2892

Basically, take that C code and make it read input from a file and produce output. That will give you the tool you were requesting. Then just do the reverse to repackage arbitrary files so the game can read them. That means either learn programming yourself, or finding someone to write a tool based upon that code in that post.

.
 
Would you consider sharing the source code and/or the files (binary/script) that were used to extract the text?

Doing the same operation in reverse, where there is already code to handle the input/output file streams, is a lot simpler than having to work from only the raw function and would prove that the function works. A loose file that has an example of the expected raw output would also be very helpful.
 
  • Like
Reactions: Yui87
I give you what the girl found out with a friend of hers:

"Analyzed the engine and there are multiple problems:

1. The engine program that unifies everything and runs the game program.

The first thing we did was try to find out what engine it works with to see if there is some kind of tool that helps us extract the files like with many Visual Novels.
We found the name they gave the engine when examining the .Exe file, it is called "Game Script Executer" (GSE).

The problem is that there was no information about it, the only thing known about this is about the company Mirai.Soft, which was the developer of PersonA. We didn't find anything that would facilitate the files because it is not a mass-produced engine like the games made in Ren'py, Kirikiri...


2. With the Fuwanovel forum we were finally able to find that the girl shared part of the code to understand how to extract part of the text.

Here the nightmare begins and that's the bad part: we confirmed that the engine was programmed by a person from the company and she did it in such a way to ensure that piracy would be a nightmare.

We already understood what the translator was referring to, the game is tedious to patch because:

- You cannot change the amount of letters or spaces in the game, if you add text that requires a jump the game crashes.

Even so, we tried to change the text, but the engine directly has complications and if we say that the prologue has 7 lines, but you insert the text of the translated prologue and they make you 9, then 3 lines of the game will disappear.
And I don't mean that 3 lines will not be shown, it's that 3 lines from any part of the game will disappear from the program as if it were eliminating itself due to the lack of spaces.

We found a solution for this and it was what the girl was referring to: instead of inserting text you just overwrite it letter by letter, it's super tedious, but it was the only way we found to do "something". The worst thing is that we don't know how to repackage everything back and she wouldn't let us, but we already know what she meant by saying that she couldn't extract the text but had to directly change it letter by letter.

The engine is super cumbersome, the bad thing is that there is no information about it because it was completely created from scratch, otherwise it would make things easier".

Would you consider sharing the source code and/or the files (binary/script) that were used to extract the text?

Doing the same operation in reverse, where there is already code to handle the input/output file streams, is a lot simpler than having to work from only the raw function and would prove that the function works. A loose file that has an example of the expected raw output would also be very helpful.
 
Last edited:
  • Like
Reactions: pio
While I was sleeping, I figured out that if I map an instance of extracted text to a (psudo-)random number and insert that number/code point in the place of the text, then I can correlate the text to where it was extracted.

The rest of the in-game text can just be replaced with empty spaces so it does not show up at all after the actual JPN text has been extracted.

Then, those numbers/code points in the font used by the game can be replaced with blank spaces, or perhaps just find blank spaces in the font natively, so the random numbers/code points do not actually show up visibly.

Despite the characters not displaying in game, they are present and should be searchable programmatically using text extraction software directly by their identifiers (\u034), or however Shift-JIS or UTF-16 BOM LE stores stuff internally. Anyway, they should show up and be searchable in that database created earlier, which makes it possible to map an instance of where text came from to where it should go.

Thus, if both the original JPN text was available and also if a translation was created using such text, the resulting translation could be overlayed onto the game using overlay software that inserts arbitrary bits of text based upon that database.

It is not necessarily the ideal way to do things, but if the alternatives are decompiling the software or obtaining the game developer's tools, neither of which have worked so far, would you be willing to consider using overlay software to publish a translation for the game instead?

Which brings me back to my original question, would you be willing to share the tool used to extract text from this game, and preferably any other tools already developed for it? Even if that function posted earlier can somehow be used to do it, having a finished binary proves it is possible. The fuction in its current form does not do that.

Just upload the files related to this project to github or something if you want other people to further the work on this.
 
  • Love
Reactions: Yui87
While I was sleeping, I figured out that if I map an instance of extracted text to a (psudo-)random number and insert that number/code point in the place of the text, then I can correlate the text to where it was extracted.

The rest of the in-game text can just be replaced with empty spaces so it does not show up at all after the actual JPN text has been extracted.

Then, those numbers/code points in the font used by the game can be replaced with blank spaces, or perhaps just find blank spaces in the font natively, so the random numbers/code points do not actually show up visibly.

Despite the characters not displaying in game, they are present and should be searchable programmatically using text extraction software directly by their identifiers (\u034), or however Shift-JIS or UTF-16 BOM LE stores stuff internally. Anyway, they should show up and be searchable in that database created earlier, which makes it possible to map an instance of where text came from to where it should go.

Thus, if both the original JPN text was available and also if a translation was created using such text, the resulting translation could be overlayed onto the game using overlay software that inserts arbitrary bits of text based upon that database.

It is not necessarily the ideal way to do things, but if the alternatives are decompiling the software or obtaining the game developer's tools, neither of which have worked so far, would you be willing to consider using overlay software to publish a translation for the game instead?

Which brings me back to my original question, would you be willing to share the tool used to extract text from this game, and preferably any other tools already developed for it? Even if that function posted earlier can somehow be used to do it, having a finished binary proves it is possible. The fuction in its current form does not do that.

Just upload the files related to this project to github or something if you want other people to further the work on this.
Unfortunately we don't have any tools, we couldn't unzip the game 😭.
I'll try to look through all the blog entries of the girl she was translating the game to see if there are any clues as to how she did it:

https://personaphantomoftheopera.wordpress.com/about/

I hope there is someone who figures it out.
Anyway thank you very much.
 
  • Like
Reactions: Entai2965
Unfortunately we don't have any tools, we couldn't unzip the game 😭.
I'll try to look through all the blog entries of the girl she was translating the game to see if there are any clues as to how she did it:

https://personaphantomoftheopera.wordpress.com/about/

I hope there is someone who figures it out.
Anyway thank you very much.
In that case, maybe an offline version of MTool would be the best path forward. I do not see this happening otherwise.
 
I'm trying to try Annot Player to see if I could add subtitles to the game, but I'm a disaster and I don't understand anything, I've searched for videos on YouTube and I still don't understand how to do the translation and implement the subtitles:



If anyone can help me I would be very grateful.
 
I'm trying to try Annot Player to see if I could add subtitles to the game, but I'm a disaster and I don't understand anything, I've searched for videos on YouTube and I still don't understand how to do the translation and implement the subtitles:


it looks interesting, how is this different to a textractor? (which if it serves in this game) I saw it the same, it does not allow to create a patch as such, that's what I understood watching the videos
 
Last edited:

Users who are viewing this thread

Latest profile posts

GuRu wrote on Shine's profile.
こちらを再アップロードおねがいします、いつもありがとうございます 
xt.20111015 wrote on Nihonjaki90's profile.
こんにちは、@Nihonjaki90 さん。これを再アップロードしていただけますか? いつもありがとうございます。m(_ _)m
Havista wrote on Otokonoko's profile.
Hi, can you reupload
青夏おま○こフレンズAfter Ex track (engsub) RJ413304-EN-EX
please? Also, is this the added content from RJ410525? If not could you please update the RJ410525 too?(track06c1 and track06c2), thank you a lot
AUO wrote on Ryzen111's profile.
Hello, Can you please update this thing to Ver24.05.13?