Cool!
So the EVS file format seems to be a list of commands and some of those commands have parameters.
Normally, if scripts aren't stored as text,
they're converted to numbers,
which makes it a pain to figure out where a command starts and ends.
LUCKILY, and I mean we're so lucky on this,
the EVS file format has the location of every command at the start of the file,
saving lots of time in figuring out where each command starts and ends.
Because of this we can surgically replace the text,
without having to worry about breaking rest of the commands.
The game has two commands for printing to the screen.
One is:
func_0001(paramA, paramB, paramC, text)
and the other is
func_0095(text)
These are all the func_0095 calls:
Code: Select all
$ grep 'func_0095' evs_do_not_translate_yet.txt
0x0000044D: func_0095("ゲンドウについていく/…私を呼んでいる\0")
0x00000033: func_0095("ゲンドウについていく/ゲンドウを拒む\0")
0x00000014: func_0095("構わん、やれ。/まだその時ではない。\0")
0x00000014: func_0095("戻らない/戻る\0")
0x0000002A: func_0095("諦める/諦めない\0")
0x00000009: func_0095("構わん、やれ。/まだその時ではない。\0")
0x00000005: func_0095("もう一度説明から/もう一度実践から/今日はもうやめておく\0")
0x00000003: func_0095("もう一度説明から/もう一度実践から/今日はもうやめておく\0")
0x00000003: func_0095("もう一度説明から/もう一度実践から/今日はもうやめておく\0")
My guess is that it prints a list of choices? And the slash separates the choices the player can choose?
The rest of them are all func_0001:
Code: Select all
0x00000079: func_0001(00000004, 00003000, 000083E0, "無事、作戦は完遂され、\n使徒は殲滅しました。\n\0")
0x0000007A: func_0001(00000012, 00003000, 00008405, "無事、作戦は完遂され、\n使徒は殲滅しました。\n\0")
0x00000082: func_0001(00000004, 00003000, 000083E1, "しかし、突如として目標はエヴァに接触。\n機体への侵食を開始。\n\0")
0x00000083: func_0001(00000012, 00003000, 00008406, "しかし、突如として目標はエヴァに接触。\n機体への侵食を開始。\n\0")
0x0000008B: func_0001(00000004, 00003000, 000083E2, "目標はエヴァ及び、パイロットと生体融合を果たし、\n分離不能と判断されました。\n\0")
0x0000008C: func_0001(00000012, 00003000, 00008407, "目標はエヴァ及び、パイロットと生体融合を果たし、\n分離不能と判断されました。\n\0")
0x00000036: func_0001(00000007, 00001000, 00005B3D, "これは遺書だわ。\n\0")
0x00000037: func_0001(0000000A, 00001000, 00005B41, "まさか、イタズラじゃ…。\nでも、本当だったらこれは、\n遺書…。\n\0")
0x00000038: func_0001(00000003, 00001000, 00005B1E, "………。▽\nありがとう…。▽\nさようなら…。▽\nごめんなさい…。▽\n会いたかった…。▽\n………。\n\0")
0x0000003A: func_0001(00000000, 00001000, 00000000, "レイは、カバンからペンを取り出し、\nノートに字を走らせた。\n\0")
0x0000003D: func_0001(00000000, 00001000, 00000000, "書いたページを破り、封筒に入れ、\n宛先を写して封をする。\n\0")
0x0000003E: func_0001(00000003, 00000801, 00005B24, "いつか、あの人が言ったことば。▽\n私にくれたことば。\n\0")
0x0000003F: func_0001(00000000, 00001000, 00000000, "レイは、靴を履いて外へ走った。\n\0")
0x00000041: func_0001(00000001, 00001000, 00005B11, "綾波っ!!\n\0")
0x00000042: func_0001(0000000C, 00001000, 00005B46, "綾波さんっ!!\n\0")
1 - In some lines there's this weird '▽' character. I'm not sure what it is.
It might be a "wait for button press" pause mid-message-box instead of at the end of the message box.
If you have any theories, I'd love to hear them!
2 - I've dumped the occurrences of the print commands in all the EVS files:
Warning, 2MB warning:
https://raw.githubusercontent.com/rezual/nge_2_re/master/game_data/evs_do_not_translate_yet.txt
I do not want you / Kira attempting to translate the above (yet).
I'll probably create a translator friendly format, collapsing duplicates etc.
The reason I'm providing the above is in case one of you might spot some patterns
in the parameters:
Code: Select all
0x00000041: func_0001(00000001, 00001000, 00005B11, "綾波っ!!\n\0")
Ignore the number before the func_0001, that is the index (1st, 2nd, 3rd) of the current print command within the EVS file.
The parameters to focus on for example are 00000001, 00001000, 00005B11, and "綾波っ!!\n\0"
Obviously we know the last parameter is the text,
but I'm wondering what the first three parameters are.
Maybe those who've played the game might notice some patterns?
e.g., "Shinji's lines all have the 2nd parameter being 00000823" or something.
Third parameter seems unique or is 00000000 - this might be the sound file.
A quick way to check is if you know a line that's not spoken,
and it has 00000000 in the third parameter, then we know, etc.
You can use the line numbers in the file or maybe the Japanese text as a marker.
Reichu wrote:Further support, BTW, for your suspicion that Alfa linked sound files to text. There's text here for all the pilot voice clips used in the battle animations, even though no text accompanies these vocalizations in-game. Here's an example of what I mean (this one is これでも食らえ!! in bimtext).
OOOh. I wonder if it's possible to unhide the dialog box - that way we have text even for voice-only scenes...