This is what a got for you. I think if you going to translate this is going to be more complicated that you think because of the way the company program this game, but anyway...
I am using PCSX2 to execute the game and GameConqueror(alternative of Cheat Engine on linux) to check the memory.
First I though that the game was importing the text from a file and mapping the characters from the text file on the image to show it graphically so I got to the point in the game where it show ASCII character like here:
With GameConqueror I search strings that contain 'R1' until I got to this address
0x202a3c00 then I check the memory and I got this chunk of data
By now I know that indeed they are using some ASCII and that they are importing it from a file so I extract the files inside of the iso image, enter to that folder and then I start searching in the files for those hex values with:
grep -rnw '.' -e $(echo -e '\x52\x31\x20\xb9')
Binary file ./RES/SUBSYS.RES matches
Great! Then I opened with a hex editor and search for the values. If you do that you will notice that they are using some type of syntax to tell the game what to show. In this case they show a text type 'TIP'
I think that by now you could start translating but I wanted to go beyond and disassemble the code to modify it because there is going to be a problem if you translate that file (I will address that later) so with PCSX2 debugger I add a breakpoint to
0x202a3c00 and I got two functions that access to this address:
I use Binary Ninja to disassemble it better (PSCX2 debugger sucks) but I had some problems... I wanted to use Hopper but I need to install some plugins and is too annoying... If I use IDA pro I have to buy it because is mips.... So I guess there is not other option than translate that file. The problem with translating that file is that you would have to come with a translation with less bytes than already is. For example.
The text in the first image has 57 bytes. Meaning. If the translation is more than 57 ASCII characters then you would have to come with a slightly different translation. If it is less then that its easy because you can fill it with 0x20(spaces).
So what encoder are they using? I'm not an expert on encoding formats but I'm pretty sure that they are not using an standard one and they decide to came with a custom one. I know this for 3 reason:
- They have ASCII values that actually represent ASCII values but
- They are not using the Unicode block Hangul Syllables. The character
버 in the game is
0xb9f6 but it should be
튼 is in the game
0xc6b0 it should be
- The images that you extract have no more than 500 Korean characters but the Unicode Hangul table has 11,172.
Thanks to @IgorSkochinsky to check the encoder with different method. It is EUC-KR