ZQF-ReVN / RxPJADV

PJADV Engine Tools. | textdata.bin scenario.dat
9 stars 1 forks source link

Is there a way to modify the font size to be smaller? #3

Closed fushi002 closed 4 months ago

fushi002 commented 4 months ago

First of all, thank you for always creating such great tools. I recently translated a game that was released, but there is an issue with the output font being too large. In the detailed article you posted about this engine previously, there was a section related to this issue, but it was a bit difficult for me to understand. Could you please explain it in a bit more detail?

The game I am trying to translate is https://vndb.org/v50141, (trial).

Have a happy day.

Dir-A commented 4 months ago

Extract files

If you'd rather pack the files, you can skip this step later we want to modify dlscenario.dat, but dlscenario.dat is encrypted in pack, so there is no way for us to modify it, so we can use garbro to extract it, and garbro will automatically decrypt it, and by the way this is the case for dlfilename.dat, and dltextdata.bin as well. so all you have to do is use garbro to extract dlfilename.dat and dlscenario.dat and dltextdata.bin from archive.dat then put them in the same directory as the game exe

Disable decryption

If you'd rather pack the files, you can skip this step now the engine will prioritize reading the file we put in the game directory, but the engine doesn't know that we decrypted the file, it will try to decrypt it again, and since the decryption algorithm is xor, decrypting it again will cause the file to be encrypted, which will crash the engine. so we're going to disable the decryption function just open game exe with x64dbg and press ctrl+g to call up the jump dialog box enter address 0045DFB0 (this is the address of the DL version of the exe, other versions may be different) jut follow the photo guide QQ截图20240704171738 QQ截图20240704172101 QQ截图20240704172302

once you're done, open the game to see if it's working properly, and if it is, you can move on to the next step

Modify Font Size

modify dlscenario.dat based on the following table

dlscenario.dat:offset:0x4FAA8   -> Msg Character Name Font
0B000003
00000000
F1000000
04020000
2C010000
1E000000  -> per line max len
1E000000  -> heigh
1E000000  -> width
1E000000  -> line space
FFFFFF00
01000000

dlscenario.dat:offset:0x4FAD4   -> Msg Text Font
0B000003
01000000
F1000000
36020000
0A030000
73000000 -> per line max len
1C000000 -> heigh
1E000000 -> width
2B000000 -> line space
FFFFFF00
01000000

dlscenario.dat:offset:0x4FB00   -> 
0B000003
02000000
F1000000
36020000
0A030000
73000000
2D000000
2D000000
37000000
FFFFFF00
01000000

dlscenario.dat:offset:0x4FB2C  ->
0B000003
03000000
F1000000
36020000
0A030000
73000000
46000000
46000000
46000000
FFFFFF00
01000000

dlscenario.dat:offset:0x4FB58  ->
0B000003
04000000
F1000000
36020000
0A030000
73000000
14000000
14000000
1E000000
FFFFFF00
01000000

dlscenario.dat:offset:0x5482C  -> Config Font
0B000003
06000000
15030000
F1000000
3E010000
1E000000
1E000000
20000000
1E000000
FFFFFF00
01000000

dlscenario.dat:offset:0x4FBC0  -> Ruby Font
04180003
01000000
0C000000 -> heigh 
0E000000 -> distance to target text

dlscenario.dat:offset:0x4FBD0 -> 
04180003
02000000
10000000
12000000

dlscenario.dat:offset:0x4FBE0 ->
04180003
03000000
14000000
16000000

dlscenario.dat:offset:0x4FBF0 ->
04180003
04000000
08000000
09000000

dlscenario.dat:offset:0x4FCA8 / 0x509E4 / 0x50C2C   -> Log Font
1B0103F0
7A000000
12000000
14040000
AA000000
04000000
AD000000
76000000
0B000000
1C000000 -> character name heigh
1E000000 -> character name width
1E000000 -> 
0AAAFF00
0AAAFF00
01000100
FFFF1000
76000000
36000000
1C000000 -> msg text heigh
1E000000 -> msg text width
2B000000 -> msg text line space
FFFFFF00
FFFFFF00
01000100
00001000
00000000
00000000

here is an example showing how to change the font size of msg text, for others, please refer to the table above. x x1 I'm going to change the height and width of the font to 18, which is 0x12 in hexadecimal. x2 x4 x3 you'll see the results.

fushi002 commented 4 months ago

Thanks to you, all the issues have been resolved. I really appreciate your incredibly detailed response.