[Game] Neon Genesis Evangelion 2: Another Cases

For talking about all other entries in the Evangelion franchise: from the various manga and video games to merchandising and various video/audio releases.

Moderator: Board Staff

Forum rules
By visiting this forum, you agree to read the rules for discussion and abide by them.
deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Mon Feb 26, 2018 11:31 pm

View Original PostReichu wrote:deeRez: Yep, that's cut scene dialogue for sure! (The game's version of the Gendo/Seele scene near the beginning of EoE.)


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.

View Original PostReichu wrote:
Looking through btimtext, it has a whole bunch of different stuff. I'll write up a guide for whatever I can ID. (Just noticed the lack of hexadecimal... whatevers. Huh.)


You can use the line numbers in the file or maybe the Japanese text as a marker.

View Original PostReichu 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...
In and of itself, self-evident.

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Reichu » Tue Feb 27, 2018 1:47 pm

Miscellaneous observation: superscript 2s aren't being rendered correctly (as in N^2 or S^2), with varied results. (S^2 being turned into a capital Greek sigma, for instance.) I've checked footage of the game and they are supposed to be there, so maybe you have a better idea of what's going on?

My guess is that it prints a list of choices? And the slash separates the choices the player can choose?

Looks that way. Three of these I can pinpoint to critical moments in specific character scenarios, when everything stops and you're forced to make a game-changing decision.

1 - In some lines there's this weird '▽' character. I'm not sure what it is.

From the instances I've been able to locate in-game, ▽ is being used as a "start new dialogue box" prompt in instances where a single character has contiguous boxes of dialogue. So for example... (I'll just crudely mock up some dialogue from the show to demonstrate.)

SPOILER: Show

Code: Select all

[COMMITTEEMAN A: ]
Speaking of which, Ikari, isn't there\n
a better way to utilize Nerv and Eva?\0

[COMMITTEEMAN B:]
First the repairs to Unit 00, \n
and now to Unit 01, which you \n
wrecked in its first battle. ▽
It's enough to bankrupt an entire country.\0

[COMMITTEEMAN C:]
We also understand that you \n
gave that toy to your son.\0

[COMMITTEEMAN D:]
Manpower, time, and money.▽
How much more do you and \n
your family plan on wasting?\0

[COMMITTEEMAN C:]
And that is not your only responsibility.▽
The Human Instrumentality Project, \n
that should be your top priority.\0

[COMMITTEEMAN B:]
Precisely. \n
Under these desperate circumstances, \n
that project is our one and only hope.\0 

[KEEL:]
In any case, we cannot excuse \n
any delays in that project's schedule, \n
due to the reappearance of the Angels. ▽
We will consider the issue regarding the budget.\0

\n tells the game "line break here", and ▽ tells the game "start new dialogue box". Once it reaches the \0, it moves onto the next.

Parameter 1 is the speaker. We can refer back to section_rodata_translate.py here, range 0x001B3810 to 0x001B3E40. It appears that if these were numbered hexadecimally from 00000001 to the end, they would match the values in the evs dump. Observe:

Code: Select all

evs dump: Parameter 1 of 4

00000000 Text Only (No Speaker)
00000001 Shinji
00000002 Asuka
00000003 Rei
00000004 Misato
00000005 Gendo
00000006 Fuyutsuki
00000007 Ritsuko
00000008 Maya
00000009 Hyuga
0000000A Aoba
0000000B Kaji
0000000C Hikari
0000000D Toji
0000000E Kensuke
0000000F Kaworu
00000010 Pen Pen
00000011 unknown Bridge Bunny
00000012 Bridge Bunny reporting on Eva/Pilot vitals (prob. Woman who replaces Maya if she's killed)

section_rodata_translate.py

    0x001B391C: Data(DataType.String, 16, 'Shinji Ikari\0', "   碇シンジ\0"),
    0x001B392C: Data(DataType.String, 28, 'Asuka Langley\n Soryu\0', "惣流・アスカ\n ・ラングレー\0"),
    0x001B3948: Data(DataType.String, 16, 'Rei Ayanami\0', "   綾波レイ\0"),
    0x001B3958: Data(DataType.String, 16, 'Misato Katsuragi\0', "  葛城ミサト\0"),
    0x001B3968: Data(DataType.String, 16, 'Gendo Ikari\0', "  碇ゲンドウ\0"),
    0x001B3978: Data(DataType.String, 16, 'Kozo Fuyutsuki\0', " 冬月コウゾウ\0"),
    0x001B3988: Data(DataType.String, 16, 'Ritsuko Akagi\0', "  赤木リツコ\0"),
    0x001B3998: Data(DataType.String, 16, 'Maya Ibuki\0', "   伊吹マヤ\0"),
    0x001B39A8: Data(DataType.String, 16, 'Makoto Hyuga\0', "  日向マコト\0"),
    0x001B39B8: Data(DataType.String, 16, 'Shigeru Aoba\0', "  青葉シゲル\0"),
    0x001B39C8: Data(DataType.String, 16, 'Ryoji Kaji\0', " 加持リョウジ\0"),
    0x001B39D8: Data(DataType.String, 16, 'Hikari Horaki\0', "  洞木ヒカリ\0"),
    0x001B39E8: Data(DataType.String, 16, 'Toji Suzuhara\0', "  鈴原トウジ\0"),
    0x001B39F8: Data(DataType.String, 16, 'Kensuke Aida\0', " 相田ケンスケ\0"),
    0x001B3A08: Data(DataType.String, 16, 'Kaworu Nagisa\0', "   渚カヲル\0"),
    0x001B3A18: Data(DataType.String, 16, 'Pen Pen\0', "   ペンペン\0"),
    0x001B3A28: Data(DataType.String, 16, 'Male Staff\0', " 男性スタッフ\0"),
    0x001B3A38: Data(DataType.String, 16, 'Female Staff\0', " 女性スタッフ\0"),


This should be of some use in contextualizing dialogue for translation purposes. (I'll throw together a complete version of the first list for the inevitable notes file.) Pity about 00000000, though -- there's a significant amount of text that's inner monologue with no voice clips and no character name on the text bubbles.

Parameter 2 has me completely stumped. Every time I think I've got an inkling, I find an example that completely obliterates my idea.

The EVS dump looks golden so far, BTW. Every piece of cut scene dialogue I've searched for has turned up, so hooray!

Also just realized I was too brain dead to properly address this earlier:

View Original PostdeeRez wrote:But wait - what does IMTEXT contain then? D:
Just the random phrases the characters say to one another, like greetings?

Yeah. It seems to be everything under the "walk up to person and chat them up" dialogue tree, which is obviously A LOT OF STUFF. I documented what a lot of the specific "branches" and "twigs" are years back, so that'll help me write a translators' guide to this mess (very slowly).

That's all I have for now. Will catch up on the rest later.
さらば、全てのEvaGeeks。
「滅びの運命は新生の喜びでもある」
Departure Message | The Arqa Apocrypha: An Evangelion Analysis Blog

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Wed Feb 28, 2018 9:25 am

Great work Reichu, especially correlating the list of names to the one in the executable file!

View Original PostReichu wrote:Miscellaneous observation: superscript 2s aren't being rendered correctly (as in N^2 or S^2), with varied results. (S^2 being turned into a capital Greek sigma, for instance.) I've checked footage of the game and they are supposed to be there, so maybe you have a better idea of what's going on?


There are multiple versions of SHIFT-JIS - I might be using the wrong one, hmm.
Or maybe the PSP has its own custom set (doubt it).
In and of itself, self-evident.

Baz
Leliel
Leliel
User avatar
Posts: 715
Joined: Mar 21, 2009
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Baz » Wed Feb 28, 2018 8:30 pm

Very cool to hear that the speakers can be identified. Nice find!

I did a quick check, and Shift-JIS lacks a char for "superscript 2" in either the Windows-31J or basic JISX-0208 flavors. So they might have made a substitution in the font, in which case Sigma will become S^2 (as a single full-width character) when it goes back into the game.

Edit: Apparently there's a few different capital Greek letters. In fact some characters that look Latin at first glance are, in fact, Greek.

"ΑΤフィールド" -- Alpha Tau, rendered as A.T.
"Σ機関" -- the aforementioned Sigma for S^2
"ΘΑ" -- Theta Alpha, perhaps J.A.?

My guess is that, for the game font, it just looks better for "A." to be a single full-width glyph rather than two half-width glyphs.
Software Error. Press left mouse button to continue.
Guru Meditation #00000004.0000AAC0

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Thu Mar 01, 2018 1:15 am

View Original PostBaz wrote:Very cool to hear that the speakers can be identified. Nice find!

I did a quick check, and Shift-JIS lacks a char for "superscript 2" in either the Windows-31J or basic JISX-0208 flavors. So they might have made a substitution in the font, in which case Sigma will become S^2 (as a single full-width character) when it goes back into the game.

Edit: Apparently there's a few different capital Greek letters. In fact some characters that look Latin at first glance are, in fact, Greek.

"ΑΤフィールド" -- Alpha Tau, rendered as A.T.
"Σ機関" -- the aforementioned Sigma for S^2
"ΘΑ" -- Theta Alpha, perhaps J.A.?

My guess is that, for the game font, it just looks better for "A." to be a single full-width glyph rather than two half-width glyphs.


Good catch! So after modifying text and viewing it in the game:

What we see in these forums = Actual Game's Shift JIS = What shows up in the game
Θ = 0x83, 0xA6 = 'J.'
Α = 0x83, 0x9F = 'A.'

S = 0x82, 0x72 = 'S'

Σ = 0x83, 0xB0 = 'S²'

Α = 0x83, 0x9F = 'A.'
T = 0x83, 0xB1 = 'T.'

N = 0x83, 0xAB = 'N²' (Added after Reichu's post below brought it up)


So yeah it looks like the game does override the Greek character set within the SJIS font.
Didn't know that use-case was possible. It might explain why they shipped with their own font plugin instead of using the system's own plugin.

@Reichu:/@Kira: - Do you think it'd be better to make evs_translate have duplicates with each speaker, or, should I get rid of duplicates and leave out the speaker?

Another possibility is to collapse duplicates initially, so you folks don't have to manually copy them around,
then later regenerate a new evs_translate with the duplicates filled in by a program,
so that way you folks only have to tweak the duplicates per speaker.

And something else, the imtext_translate etc. files also have three params, but I stripped those out.
Which makes me think it might actually be the same three params used in the print function in the EVS files:

Code: Select all

    (0x0001071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0002071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0003071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0004071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0005071B, 0x000003EA, 0x00000005, "あら、知りませんでした?\n私は、あの人の事は嫌いなんです。\n\u0000\u0000")
    (0x0006071B, 0x000003EA, 0x00000005, "あら、知りませんでした?\n私は、あの人の事は嫌いなんです。\n\u0000\u0000")
    (0x0008071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0009071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000A071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000B071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000C071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000D071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000E071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x000F071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0010071B, 0x000003EB, 0x00000009, "あら、知らなかった?\n私は、あの人の事が嫌いなの。\n\u0000\u0000")
    (0x0001081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x0002081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x0003081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x0004081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x0005081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x0006081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x0007081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x0008081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x0009081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x000A081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x000B081B, 0x00000450, 0x00000007, "私、あの人嫌いです。\n\u0000\u0000\u0000")
    (0x000C081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x000D081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x000E081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x000F081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x0010081B, 0x00000451, 0x00000007, "…私、あの人嫌い。\n\u0000")
    (0x0001091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x0002091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x0003091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x0004091B, 0x000004B6, 0x00000005, "ああ、僕、嫌いなんですよ。\n\u0000")
    (0x0005091B, 0x000004B6, 0x00000005, "ああ、僕、嫌いなんですよ。\n\u0000")
    (0x0006091B, 0x000004B6, 0x00000005, "ああ、僕、嫌いなんですよ。\n\u0000")
    (0x0007091B, 0x000004B6, 0x00000005, "ああ、僕、嫌いなんですよ。\n\u0000")
    (0x0008091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x0009091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x000A091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x000B091B, 0x000004B6, 0x00000005, "ああ、僕、嫌いなんですよ。\n\u0000")
    (0x000C091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x000D091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x000E091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x000F091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x0010091B, 0x000004B7, 0x00000009, "ああ、僕、嫌いなんだよ。\n\u0000\u0000\u0000")
    (0x00010A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00020A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00030A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00040A1B, 0x0000051C, 0x00000009, "嫌いなんですよ、奴だけは…。\n\u0000\u0000\u0000")
    (0x00050A1B, 0x0000051C, 0x00000009, "嫌いなんですよ、奴だけは…。\n\u0000\u0000\u0000")
    (0x00060A1B, 0x0000051C, 0x00000009, "嫌いなんですよ、奴だけは…。\n\u0000\u0000\u0000")
    (0x00070A1B, 0x0000051C, 0x00000009, "嫌いなんですよ、奴だけは…。\n\u0000\u0000\u0000")
    (0x00080A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00090A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x000A0A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x000B0A1B, 0x0000051C, 0x00000009, "嫌いなんですよ、奴だけは…。\n\u0000\u0000\u0000")
    (0x000C0A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x000D0A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x000E0A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x000F0A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00100A1B, 0x0000051D, 0x00000009, "嫌いなんだよ、奴だけは…。\n\u0000")
    (0x00010B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00020B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00030B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00040B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00050B1B, 0x00000584, 0x00000009, "ああ、嫌いなんですよ。\nあまり興味ないですしね…。\n\u0000\u0000")
    (0x00060B1B, 0x00000584, 0x00000009, "ああ、嫌いなんですよ。\nあまり興味ないですしね…。\n\u0000\u0000")
    (0x00070B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00080B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00090B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x000A0B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x000C0B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x000D0B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x000E0B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x000F0B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00100B1B, 0x00000585, 0x00000009, "ああ、嫌いなんだよ。\nあまり興味ないしね…。\n\u0000\u0000\u0000\u0000")
    (0x00010C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x00020C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x00030C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x00040C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x00050C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x00060C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x00070C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x00080C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x00090C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x000A0C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x000B0C1B, 0x000005EA, 0x00000009, "私、あの人大嫌いです!\n\u0000")
    (0x000C0C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x000D0C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x000E0C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x000F0C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x00100C1B, 0x000005EB, 0x00000009, "私、あの人大嫌い!\n\u0000")
    (0x00010D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x00020D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x00030D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x00040D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x00050D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x00060D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x00070D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x00080D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x00090D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x000A0D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x000B0D1B, 0x00000652, 0x00000009, "いや、嫌いですわ…。\n\u0000\u0000\u0000")
    (0x000C0D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x000D0D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x000E0D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x000F0D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x00100D1B, 0x00000653, 0x00000009, "いや、あいつか…。\nワシ、なんか嫌いやわ。\n\u0000\u0000")
    (0x00010E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x00020E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x00030E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x00040E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x00050E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x00060E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x00070E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x00080E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x00090E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x000A0E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x000B0E1B, 0x000006B8, 0x00000005, "嫌いですよ。\n口も利きたくないくらいに。\n\u0000\u0000\u0000\u0000")
    (0x000C0E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x000D0E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x000E0E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x000F0E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x00100E1B, 0x000006B9, 0x00000005, "嫌いだよ。\nホントは口も利きたくない\nくらいにね。\n\u0000\u0000\u0000")
    (0x00010F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00020F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00030F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00040F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00050F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00060F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00070F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00080F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00090F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000A0F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000B0F1B, 0x00000720, 0x00000007, "嫌いです。\n出来れば側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000C0F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000D0F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000E0F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x000F0F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x00100F1B, 0x00000721, 0x00000007, "嫌いなんだ。\n出来れば、側に寄りたくない…。\n\u0000\u0000\u0000\u0000")
    (0x0001101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0002101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0003101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0004101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0005101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0006101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0007101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0008101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0009101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000A101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000B101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000C101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000D101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000E101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x000F101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0010101B, 0x00003262, 0x00000009, "…グヮァ〜〜〜。$m\nペンペンは、\n不機嫌そうに話している。\n\u0000\u0000\u0000")
    (0x0001011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0002011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0003011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0004011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x0005011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0006011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x0007011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x0008011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x0009011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x000A011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x000B011C, 0x000001E7, 0x00000002, "わからないんですか?\n嫌な人ですよ!!\n\u0000\u0000")
    (0x000C011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x000D011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x000E011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x000F011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0010011C, 0x000001E8, 0x00000002, "わかるだろぉ?\n嫌な人だよ!!\n\u0000\u0000")
    (0x0001021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0002021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0003021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0004021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0005021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x0006021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x0007021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x0008021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x0009021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x000A021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x000B021C, 0x0000024F, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんですよ!!\n\u0000\u0000\u0000\u0000")
    (0x000C021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x000D021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x000E021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x000F021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0010021C, 0x00000250, 0x00000009, "名前を聞くだけでもムカツク!\nもう、嫌な奴なんだから!!\n\u0000\u0000\u0000\u0000")
    (0x0001031C, 0x000002B8, 0x00000002, "嫌な人…。\n視界に入れたくない人よ。\n\u0000\u0000\u0000\u0000")
    (0x0002031C, 0x000002B8, 0x00000002, "嫌な人…。\n視界に入れたくない人よ。\n\u0000\u0000\u0000\u0000")
    (0x0003031C, 0x000002B8, 0x00000002, "嫌な人…。\n視界に入れたくない人よ。\n\u0000\u0000\u0000\u0000")
    (0x0004031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x0005031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x0006031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x0007031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x0008031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x0009031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x000A031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x000B031C, 0x000002B7, 0x00000002, "嫌な人…。\n視界に入れたくない人です。\n\u0000\u0000")
    (0x000C031C, 0x000002B8, 0x00000002, "嫌な人…。\n視界に入れたくない人よ。\n\u0000\u0000\u0000\u0000")


Another possibility for the parameters: the expression in the portrait.
Hmm...
Last edited by deeRez on Thu Mar 01, 2018 2:47 am, edited 1 time in total.
In and of itself, self-evident.

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Reichu » Thu Mar 01, 2018 1:57 am

Nice, Baz! Does this also mean the N that appears in Νミサイル is actually a nu that's rendered as N^2?

@deeRez, what does this mean for the translation? Will we be rendering the superscript 2 a different way?

Another interesting aspect to this is that it may decislvely set apart some items that are there for programmers' use only from ones that appear to the player. For example:

Code: Select all

    0x001BA14C: Data(DataType.String, 28, 'Eva: N2 Missile Attack\0', "EVAのN2ミサイル攻撃\0"),
    0x001BA168: Data(DataType.String, 12, 'N2 Missile\0', "Νミサイル\0"),
    0x001BA174: Data(DataType.String, 48, '???', "超強力な射撃攻撃\nだが、周囲の建物\nも同時に破壊\0"),

Here are my notes for the data range these examples are from:

Code: Select all

0x001B9728 to 0x001BA6CC Big mess of battle stuff. A bunch looks like labels and descriptions for when Misato is managing the Evas before battle. Some of these I recognize as battle commands not present in section_data. There's some dialogue for special Shinji and Asuka events. All of the attacks for the Angels and JA2 are listed as well, even though AFAIK they can never be played-controlled, nor do I remember them ever being announced by name in-game. The section that includes these might have been used by the programmers to keep track of the battle animations?

So 0x001BA14C is probably pointing to the animation used for the missile attack (hence boring ol' N2); 0x001BA168 is an in-game label for the weapon; and 0x001BA174 is the description accompanying the previous. I was finding the discrepancies a bit mysterious, so having an explanation is nice.

@deeRez: I think the numerical value for the speaker should be there for our reference, definitely. How many duplicates are we talking here? How common of a problem is it? I've gotten pretty used to repetitions from working on rodata, but I guess it depends on the SCALE of the repetitions.
さらば、全てのEvaGeeks。
「滅びの運命は新生の喜びでもある」
Departure Message | The Arqa Apocrypha: An Evangelion Analysis Blog

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Thu Mar 01, 2018 3:19 am

View Original PostReichu wrote:Nice, Baz! Does this also mean the N that appears in Νミサイル is actually a nu that's rendered as N^2?


Just double checked this, and yes! It's N² in-game - good catch!

View Original PostReichu wrote:@deeRez, what does this mean for the translation? Will we be rendering the superscript 2 a different way?


For now, call it N2. We can later bulk-replace them with the proper Greek characters so that folks don't have to worry about copy/pasting them right now.

View Original PostReichu wrote:Another interesting aspect to this is that it may decislvely set apart some items that are there for programmers' use only from ones that appear to the player. For example:

Code: Select all

    0x001BA14C: Data(DataType.String, 28, 'Eva: N2 Missile Attack\0', "EVAのN2ミサイル攻撃\0"),
    0x001BA168: Data(DataType.String, 12, 'N2 Missile\0', "Νミサイル\0"),
    0x001BA174: Data(DataType.String, 48, '???', "超強力な射撃攻撃\nだが、周囲の建物\nも同時に破壊\0"),


Here are my notes for the data range these examples are from:

Code: Select all

0x001B9728 to 0x001BA6CC Big mess of battle stuff. A bunch looks like labels and descriptions for when Misato is managing the Evas before battle. Some of these I recognize as battle commands not present in section_data. There's some dialogue for special Shinji and Asuka events. All of the attacks for the Angels and JA2 are listed as well, even though AFAIK they can never be played-controlled, nor do I remember them ever being announced by name in-game. The section that includes these might have been used by the programmers to keep track of the battle animations?

So 0x001BA14C is probably pointing to the animation used for the missile attack (hence boring ol' N2); 0x001BA168 is an in-game label for the weapon; and 0x001BA174 is the description accompanying the previous. I was finding the discrepancies a bit mysterious, so having an explanation is nice.



Oooh - interesting observation!

Oh and about the player controlled tid-bit, in the debug menus I've found so far,
you can enable flags like controlling the NPC responses to conversations.
So right now if I were to ask Misato for money, instead of the AI deciding the response, I can pick what I want the AI response to be.

I'm sure there's a way to do it for enemy NPCs in battle, which would be the menus you're seeing. ^_^

I haven't made a proper cheat code for the IM-conversation debug menu, and it has a chance of crashing.
Posting this for reference if anyone's eager; not a proper CWCheat code:

Code: Select all

1 - Make sure no menus/messageboxes are visible in the game when you enable this, since it hooks unto the menu handler to open up a new menu.
2 - Set 0x088CB750 to 0x0A226130
3 - Go back to the game and press O, a new menu should pop up.
4 - You won't be able to cancel out of it pressing X.
5 - First set 0x088CB750 back to 0x03E00008 to disable the cheat
6 - Careful: Press X once, it'll put you into the regular O-menu
7 - Press O on something (like Items) to load a new menu so it fixes the menu stack,
cause pressing X will most likely crash
8 - Once the new menu loads, now you may use X to exit out of the menu.



View Original PostReichu wrote:@deeRez: I think the numerical value for the speaker should be there for our reference, definitely. How many duplicates are we talking here? How common of a problem is it? I've gotten pretty used to repetitions from working on rodata, but I guess it depends on the SCALE of the repetitions.


Well for the things with multiple speakers, it's usually 16x or so duplications.
I could put the list of speakers next to the line + resolve the speakers to a name using that list you posted.

So if a line has one speaker you can translate it for that character, otherwise you can translate it loosely and come back to it later.
In and of itself, self-evident.

Baz
Leliel
Leliel
User avatar
Posts: 715
Joined: Mar 21, 2009
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Baz » Thu Mar 01, 2018 7:29 am

@deeRez maybe a bitfield to indicate the speakers?
Codewise, for each speaker y, do x += 1 << y.
A bitfield printed as hex is very succinct (maybe too succinct?).

2,4,8 == Shinji, Asuka, Rei
10,20,40,80 == Misato, Gendo, Fuyu, Ritsuko
100,200,400,800 == Maya, Hyuga, Aoba, Kaji
1000,2000,4000,8000 == Hikari, Toji, Kensuke, Kaworu
10000,20000,40000 == PenPen, other male, other female
Software Error. Press left mouse button to continue.
Guru Meditation #00000004.0000AAC0

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Reichu » Thu Mar 01, 2018 10:39 am

Here is the full list of speakers by their hexadecimal code. You'll notice it's longer than the list in rodata -- so while I'm certain that the game is getting the labels for the dialogue boxes from rodata, the evs is splitting things up a bit more.

SPOILER: Show
00000000 [Text Only - No Designated Speaker]
00000001 Shinji Ikari
00000002 Asuka Soryu Langley
00000003 Rei Ayanami
00000004 Misato Katsuragi
00000005 Gendo Ikari
00000006 Kozo Fuyutsuki
00000007 Ritsuko Akagi
00000008 Maya Ibuki
00000009 Makoto Hyuga
0000000A Shigeru Aoba
0000000B Ryoji Kaji
0000000C Hikari Horaki
0000000D Toji Suzuhara
0000000E Kensuke Aida
0000000F Kaworu Nagisa
00000010 Pen Pen
00000011 Male Staff [a.k.a. Dummy-kun - male bridge bunny who provides Hyuga or Aoba's lines if one of them is killed]
00000012 Female Staff [a.k.a. Dummy-san - female bridge bunny who provides Maya's lines if she is killed]
00000013 Clerk
00000014 Keel Lorenz
00000015 Shiro Tokita [= "the J.A. guy"]
00000016 Yui Ikari
00000017 Female Announcer
00000018 T.V. Talent
00000019 Kensuke's Father
0000001A Toji's Sister
0000001B Nursing Staff
0000001C Psychiatrist
0000001D Baby's Mother
0000001E Naoko Akagi
0000001F Female Classmate
00000020 Female Classmate
00000021 Female Classmate
00000022 Announcement
00000023 Teruo Kato [for Aoba's scenario]
00000024 Committeeman A
00000025 Committeeman B
00000026 Committeeman C
00000027 Committeeman D
00000028 Seele 02
00000029 Seele 03
0000002A Seele 04
0000002B Seele 05
0000002C Seele 06
0000002D Seele 09
0000002E JSSDF Staff
0000002F Radio Voice [JSSDF]
00000030 Local Announcement
00000031 Girlfriends
00000032 Matsushiro Staff
00000033 Shinji Ikari [Flashback]
00000034 Misato Katsuragi [Flashback]
00000035 Gendo Ikari [Flashback]
00000036 Kozo Fuyutsuki [Flashback]
00000037 Ritsuko Akagi [Flashback]
00000038 Maya Ibuki [Flashback]
00000039 Makoto Hyuga [Flashback]
0000003A Shigeru Aoba [Flashback]
0000003B Yui Ikari [Flashback]
0000003C Seele 01
0000003D Kensuke Aida [Flashback]
0000003E Shinji's Shadow [Leliel]
0000003F Asuka's Shadow [Leliel]
00000040 Rei's Shadow [Leliel]
00000041 Toji's Shadow [Leliel]
00000042 Kaworu's Shadow [Leliel]
00000043 ??? [Lilith]
00000044 ??? [Unnamed Seed of Life]
00000045 ??? [Kaji on phone]
00000046 Evacuation Announcement
00000047 Naoko Akagi [for her one line from the PS2 version]
00000048 Street Announcement
00000049 Host [for Aoba's scenario]
0000004A Teacher
0000004B School Broadcast
0000004C Receptionist
0000004D Nurse
0000004E Girl
0000004F T.V. Commercial
00000050 Delivery Man
00000051 Controller
00000052 Naval Officer
00000053 Intelligence Agent
00000054 Answering Machine
00000055 Kazuki Anami [for Aoba's scenario]
00000056 Tadamitsu Otsubo [for Aoba's scenario]
00000057 Mikio Shimaki [for Aoba's scenario]
00000058 Yoji Uozumi [for Aoba's scenario]
00000059 Lordi
0000005A Kyoko Soryu Zeppelin
0000005B Everyone [for Aoba's scenario]
0000005C Emergency Phone Announcement
0000005D Street T.V.
0000005E Toji's Mother
0000005F Gendo Rokubungi


While I was checking the values, I saw quite a bit of stuff that's missing from the character digests posted on Nico. A bunch of those did seem suspiciously ... bare, so I guess the player in question didn't activate all the cut scenes. (At least, that's what I'm going to hope!)

Regarding the EVS and duplicates, deeRez, you have a better idea what you're doing than I, so do what's smartest and easiest for you. Worst comes to worst, I have the "do not translate" version saved to the HDD and can consult it if needed.

EDIT: The three parameters in the imtext_translate sample you posted don't look familiar to me (but then I was just focusing on the first parameter in the evs since it could be easily identified). Maybe you can post the full raw version somewhere so we can look at it, just in case any more interesting patterns get noticed?

EDIT2: You talked earlier about compiling the translation guidelines. Some more considerations...

- Eva-## vs. Unit-##: In-game graphics use Eva-## (continuing the original show's tradition of translating #号機 as "Eva-##"). This might be a good reason to use the convention I suggested (初号機 -> Eva-01, エヴァ初号機 -> Eva Unit-01).
- Keel Lorenz, or Kiel Lorenz? Former appeared in print in things like Newtype 100% Collection, but it doesn't make sense as a spelling for a German name. "Kiel" is used in the more recent Evangelion Chronicle.
- Use old conventions for Angel names (which were drawn from Newtype and Bandai Carddass), even the ones that make no sense, like "Matarael" and "Ireul"? Evangelion Chronicle changes Matarael to Matriel, Ireul to Yroul, and Arael to Ariel.
- Magi or MAGI? Not an organization, so a different consideration. Dan Kanemitsu puts it in all caps.
- Special honorifics case: Presumably when something comes up like "Ikari Shinji-kun", we omit the "-kun" because there's no good way to make this work once the name order gets flipped? (Shinji Ikari-kun? Shinji-kun Ikari??
さらば、全てのEvaGeeks。
「滅びの運命は新生の喜びでもある」
Departure Message | The Arqa Apocrypha: An Evangelion Analysis Blog

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Fri Mar 02, 2018 9:42 am

View Original PostBaz wrote:@deeRez maybe a bitfield to indicate the speakers?
Codewise, for each speaker y, do x += 1 << y.
A bitfield printed as hex is very succinct (maybe too succinct?).

2,4,8 == Shinji, Asuka, Rei
10,20,40,80 == Misato, Gendo, Fuyu, Ritsuko
100,200,400,800 == Maya, Hyuga, Aoba, Kaji
1000,2000,4000,8000 == Hikari, Toji, Kensuke, Kaworu
10000,20000,40000 == PenPen, other male, other female


It's an entirely different kind of flying, altogether.

If that's the case, it's weird because I don't think there are any lines with multiple voices...
unless they wanted to trigger more than one voice clip at the same time for the same line and thus used a bitfield in the engine to better control it. Will keep it in mind!

SAY, would you be willing to join in on the translation effort Baz? :)
Any help here and there would be appreciated!

@Reichu: Awesome list!

This Saturday, I'll get to dumping a translator friendly version of the EVS files, probably will collapse all the lines and add a speaker line that's a comment.

I'll post the verbose IMTEXT_TRANSLATE as well on Saturday.

For the guidelines, probably will tackle those at the end of today and put them up for sign-off.

Oh, regarding section_data_translate.py, there remain like two more lines before 100%ing that file:

Code: Select all

    0x00250A18: Data(DataType.String, 20, 'Sortie member is\n%s.\0', "出撃メンバーは\n%s\0"),
    0x00250A2C: Data(DataType.String, 48, '???', "出撃メンバーは\n%s$n入院中の%s\n無理は承知の上よ\0"),
    0x00250A5C: Data(DataType.String, 64, '???', "出撃メンバーは全員入院中だけど…\nやらなきゃ…どの道、終わりよ\0"),


First one:
"出撃メンバーは\n"
"%s$n入院中の%s\n"
"無理は承知の上よ\0"

Second one:
"出撃メンバーは全員入院中だけど…\n"
"やらなきゃ…どの道、終わりよ\0"

The %s is standard in computer programming but not sure what the $n is.
I'm thinking things that are $LETTER are part of a second phase of parsing more closely tied to the game engine.

I'm guessing the first one is something like:
Sortie members\n
%s$n hospitalized %s\n
Please don't overdo it!\0

$n might just be number.

There's also $a:

Code: Select all

section_rodata_translate.py:    0x001CC400: Data(DataType.String, 20, '???', "に、$aへの好意を\0"),
section_rodata_translate.py:    0x001CC420: Data(DataType.String, 24, '???', "に、$aを避ける理由を\0"),
section_rodata_translate.py:    0x001CD180: Data(DataType.String, 16, '???', "$aも黙ったこと\0"),
section_rodata_translate.py:    0x001CDABC: Data(DataType.String, 20, '???', "に、$aが居なくて\0"),
section_rodata_translate.py:    0x001D12DC: Data(DataType.String, 24, '???', "$aは、昔の出来事を%s。\0")


Not sure what $a might be ... actor name?

EDIT: Didn't end up getting free time this weekend. Will pace myself and do the above tasks during the tail end of weekdays.

EDIT:
@Reichu - my jaw dropped! You're awesome for figuring this out!

Code: Select all

+# The number 1 to 4 starting each entry is the number of pages
+# it uses to display in-game.
In and of itself, self-evident.

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Sun Mar 04, 2018 7:51 pm

This Saturday, I'll get to dumping a translator friendly version of the EVS files, probably will collapse all the lines and add a speaker line that's a comment.


This is now done! The EVS have been properly added.

The duplicate lines have been squashed into a single line and there's a # line that shows which speakers utter the given line.
If there's only one speaker, feel free to use that speaker's speech mode.

If there's multiple speakers, pick a generic speech mode, and then we can revisit the line later once it needs to be converted to each given person's speech mode.

https://github.com/rezual/nge_2_re/blob ... _part_1.py
https://github.com/rezual/nge_2_re/blob ... _part_2.py
https://github.com/rezual/nge_2_re/blob ... _part_3.py

For the guidelines, probably will tackle those at the end of today and put them up for sign-off.
...
I'll post the verbose IMTEXT_TRANSLATE as well on Saturday.


For the above two, I will do them later this week during my free time on weekdays.

Also minor, I'm now computing stats in the README properly for all files.
Image
In and of itself, self-evident.

Sailor Star Dust
Kept you waiting, huh?
Kept you waiting, huh?
User avatar
Age: 38
Posts: 23063
Joined: Aug 13, 2006
Location: 私の中いる自分の心
Gender: Female

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Sailor Star Dust » Sun Mar 04, 2018 9:31 pm

It's awesome to see something finally coming together with this :w00t:

Keep it up, folks :heart:

View Original PostdeeRez wrote:They tend to remove code but keep the art around. There's still a chance it might work if the scenario is stored as a script outside of the game code.


Hm, I kind of assumed that maybe the art as an asset was kept, but damn, if they actually kept some of those other scenario, that would be pretty wild!

Reichu: About Naoko's line, isn't she shown talking to Ritsuko in the PSP Instrumentality scene(s)? (If my old fart memory serves me, the flashback exchange was something like: N: "Where are you going?" R: "For a walk. What about you, mother?")
~Take care of yourself, I need you~

Zeruss
Adam
User avatar
Posts: 88
Joined: Nov 22, 2012
Location: In Transit

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Zeruss » Tue Mar 06, 2018 3:57 am

Sorry to interrupt; I honestly... don't understand much of the process/procedure behind this gigantic effort, but a very sincere thank you to all those involved in procuring and polishing all this content!
SPOILER: Show
Image
I'm a lurker at heart.

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Reichu » Tue Mar 06, 2018 10:26 am

View Original PostSailor Star Dust wrote:Reichu: About Naoko's line, isn't she shown talking to Ritsuko in the PSP Instrumentality scene(s)? (If my old fart memory serves me, the flashback exchange was something like: N: "Where are you going?" R: "For a walk. What about you, mother?")

Are you talking about "00000047 Naoko Akagi [for her one line from the PS2 version]"? I just put that note there because #00000047 accompanied only one line of dialogue, which also happened to be the only line Naoko has in the original PS2 version. Her other dialogue is under 0000001E. I have no idea why a separate value was created for her new PSP dialogue.

@deeRez: Great to have all the Japanese up and ready to go! : :asuka_thumbsup:

deeRez wrote:The duplicate lines have been squashed into a single line and there's a # line that shows which speakers utter the given line.

This works out pretty well -- I like! Do you mind if I make some mild changes? Some of the bracketed notes weren't written with the intention that they'd be used in their entirety, so it would make sense to replace some of them with a shorter form. With the mystery IDs that I can identify, I should just go ahead and put those speakers in, right? (1100 is Toji and 2100 is Kaworu.)

BTW, there are times when I feel as though putting a note inside one of the translation files would be useful (for instance, to mark a translation that requires checking)... If this is okay, do I just do it by starting the line with # as you've done?

deeRez wrote:my jaw dropped! You're awesome for figuring this out!

Awww... Shucks... :blush: The numbers were REALLY bugging me, so I loaded up a video someone had helpfully made of the completed Classified Info being thumbed through page by page, and voila! The number of pages per entry corresponded exactly to the mystery numbers in f2info! I can't remember the visual context for the tutorial and whether it uses numbered pages similarly, but I guess with that syntax it probably does... I'll keep an eye open.

After the translation guidelines are settled and the thread gets reorganized as discussed, I assume we'll want to start recruiting more translators? This is a pretty herculean task, so we need all we can get, and I guess places like reddit, 4chan, tumblr, and twitter could be tapped, for any willing souls lurking about. For graphics modification, I talked to Zeruss about this, and he's up to the task whenever we're ready for him. I'm familiar with his capabilities so I'm confident he can accomplish what's required.

Now, since I'm a total blockhead when it comes to the programming side of this, I have no idea how playtesting will work. Kira BB Yamato mentioned being able to load up the game with the translations that had been done, and I'd love being able to do similar, but I wouldn't even know where to begin. Since this involves, I assume, ROM-hacking, any explanation might go into a legal gray area, so feel free to PM or e-mail me if you ever have the time to humor my whimsies. Everything you're doing is black magic to me, but I can follow instructions in a "monkey see, monkey do" sort of way!

Regarding hacking / cheat codes / debugging -- I wonder if there are ways to activate specific events and scenes? Things that would help us navigate the full contents of the game and make sure all of the translated text displays properly, and that it also reads properly in context? I assume you have something in mind for ways of achieving this, beyond playing through the game normally and hoping for the best.

There are some translation+programming-related issues I want to bring up when your plate is less full, so this is partly a note to myself so I don't forget.
さらば、全てのEvaGeeks。
「滅びの運命は新生の喜びでもある」
Departure Message | The Arqa Apocrypha: An Evangelion Analysis Blog

jcmoorehead
Leliel
Leliel
User avatar
Age: 36
Posts: 716
Joined: Dec 30, 2005
Location: Edinburgh
Gender: Male
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby jcmoorehead » Tue Mar 06, 2018 10:35 am

If you guys need anyone to help out playtesting, which I doubt you will as I imagine you'll all be able to handle it I might be able to offer my services. I've got 4 years AAA testing experience (ongoing) so I know a few things, although my free time is limited this year for reasons, I would like to help out in some way though.

Regardless, you guys are doing an amazing job here. I've always dreamed of seeing a translated version of this game and it looks like it might be a reality eventually ^_^

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Tue Mar 06, 2018 2:33 pm

@SSD & @Zeruss & @jcmoorehead - Thanks you three!

@jcmoorehead - I think we'll need a generic play-through where someone gets most of the endings the average person will get, and that'll be fine.

The one-off crashes / bugs that remain we can tackle as they come up.

Type of bug CAUSES to expect (a note for future reference):
1 - Game crashes/freezes/fails silently because it expected text to be a certain length.
2 - Game crashes/freezes/fails silently /doesn't show properly because it expected text to start at a certain position within a bigger piece of text.
3 - Game crashes/freezes/fails silently because it's scanning text for a certain character that was removed.
4 - Game crashes/freezes/fails silently because it expected text to be a certain value,
or text was translated that wasn't text but a number that happened to register as Japanese text.
(Most likely the case for things in rodata/data that are 1 or 2 Kanji)
5 - Game crashes/freezes/fails silently because it ran out of memory due to the translated text exerting different memory pressure
6 - Untranslated text appears
7 - Translated text overruns/is badly linebreaked or spaced in the menu/messagebox

View Original PostReichu wrote:Do you mind if I make some mild changes? Some of the bracketed notes weren't written with the intention that they'd be used in their entirety, so it would make sense to replace some of them with a shorter form. With the mystery IDs that I can identify, I should just go ahead and put those speakers in, right? (1100 is Toji and 2100 is Kaworu.)


Feel free to make changes! The only thing you shouldn't touch is the Japanese within the " " because that's what I use as the ID to access the specific translation (where-as in the other files I use the hex # as the ID).

View Original PostReichu wrote:BTW, there are times when I feel as though putting a note inside one of the translation files would be useful (for instance, to mark a translation that requires checking)... If this is okay, do I just do it by starting the line with # as you've done?


Yes you may! The # and everything after will be ignored except when the # is in a " " or ' '

View Original PostReichu wrote:After the translation guidelines are settled and the thread gets reorganized as discussed, I assume we'll want to start recruiting more translators? This is a pretty herculean task, so we need all we can get, and I guess places like reddit, 4chan, tumblr, and twitter could be tapped, for any willing souls lurking about.


Yes! BUT, from what I've seen from how people react to these things, before we branch out, it's best to have a way to test the translation in progress.
More on this below.

View Original PostReichu wrote:For graphics modification, I talked to Zeruss about this, and he's up to the task whenever we're ready for him. I'm familiar with his capabilities so I'm confident he can accomplish what's required.


I'll make sure to hurry it up with the graphics modification + re-injection then!

View Original PostReichu wrote:Now, since I'm a total blockhead when it comes to the programming side of this, I have no idea how playtesting will work. Kira BB Yamato mentioned being able to load up the game with the translations that had been done, and I'd love being able to do similar, but I wouldn't even know where to begin. Since this involves, I assume, ROM-hacking, any explanation might go into a legal gray area, so feel free to PM or e-mail me if you ever have the time to humor my whimsies. Everything you're doing is black magic to me, but I can follow instructions in a "monkey see, monkey do" sort of way!


Kira is using cwcheat - a PSP CFW plugin - to apply the translations (stored as cheats) to the game.
The problem is that cwcheat has a cheat limit and we've hit that limit.

Normally, big translation projects go with requiring users to dump the game UMD as an ISO, then patch the ISO with a tool.
The patch is a file that has stuff like, "Go to X, replace Y amount with Z"

I don't want to go with this approach because users get lazy about it,
and if there's a translation update, they tend to not bother reapplying it since it requires the original ISO to reapply.

There was a translation project for one of the PSP Hatsune Miku games,
for which they made the translation a plugin for CFW PSPs.

The plugin would hijack the PSP Operating System's read file functions,
so that any read attempts go through the plugin first,
and if the plugin detects a certain file is needing to be read by the game,
it can redirect the PSP to read the given file from the memory stick instead.

I want to modify the above (or write my own from scratch) so that,
1 - The plugin loads a list of files to redirect to the memory stick for the game in question
2 - Once the game attempts to read a file that's in the redirect list from the umd,
the plugin dumps the file for you onto the memorystick, and then applies the patch.
3 - The next time the game reads the above file, it skips dumping and re-patching if the file already exists.

The downside is that you'll get slowdowns during gameplay the first time you encounter a situation,
but no-more after that.

The upside is that this method will work for both, people who want to play off the UMD or people who want to play off the ISO. But both will require CFW.

@Reichu: Does your PSP have CFW?

View Original PostReichu wrote:Regarding hacking / cheat codes / debugging -- I wonder if there are ways to activate specific events and scenes? Things that would help us navigate the full contents of the game and make sure all of the translated text displays properly, and that it also reads properly in context? I assume you have something in mind for ways of achieving this, beyond playing through the game normally and hoping for the best.


Figuring that out would be interesting and ties with SSD's earlier request to try to activate the missing scenario.
Just not sure how to approach it.
Hmmmm... I could find where the cutscene files are loaded in the code, then I can work my way back up to find out what top level code requested the the file to be loaded, followed by figuring out how to hijack it.

Does the game have cutscenes that happen while the player is standing still? I do know there's the angel appearance one that happens when the clock runs out but I don't want to hijack that one cause if there are events that happen randomly, I rather tweak the randomness.

The cutscenes I've witnessed so far are all after I selected something in the world-map menu.

View Original PostReichu wrote:There are some translation+programming-related issues I want to bring up when your plate is less full, so this is partly a note to myself so I don't forget.


Feel free to ask!
In and of itself, self-evident.

Sailor Star Dust
Kept you waiting, huh?
Kept you waiting, huh?
User avatar
Age: 38
Posts: 23063
Joined: Aug 13, 2006
Location: 私の中いる自分の心
Gender: Female

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Sailor Star Dust » Tue Mar 06, 2018 2:34 pm

View Original PostReichu wrote:Are you talking about "00000047 Naoko Akagi [for her one line from the PS2 version]"? I just put that note there because #00000047 accompanied only one line of dialogue, which also happened to be the only line Naoko has in the original PS2 version. Her other dialogue is under 0000001E. I have no idea why a separate value was created for her new PSP dialogue.


Github layout confuses me, but yeah, it's this line on the Part 1 list, yeah:

Code: Select all

 # Naoko Akagi [for her one line from the PS2 version],Naoko Akagi
"どこ行くの?\n\0":


Her PSP dialogue (about work and Ritsuko's studies) is the stuff in the Part 2 list, right?

As an aside, I can help with dialogue translations (descriptive Japanese like the CI files, not so much :sweatdrop: ) in a "two heads are better than one" way, just drop me a PM if you get stuck anywhere!
~Take care of yourself, I need you~

Kira BB Yamato
Embryo
Posts: 18
Joined: Feb 09, 2018

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Kira BB Yamato » Thu Mar 08, 2018 1:04 am

Sorry for my conspicuous absence. I thought I would be done with tests last Thursday. Then I had a midterm and a test on Tuesday, a test yesterday, a test today, and a test tomorrow, and a presentation next Monday, and another midterm next Thursday!

It's been hectic. I'll try to chip in as much as I can soon here. I might even be able to persuade somebody I know IRL to help out with all this as well.

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby Reichu » Thu Mar 08, 2018 2:31 am

deeRez: I'll respond in greater detail later, but quick question... With files_evs_part1~3, is it okay if I move the text blocks around so that related stuff is closer together? One example would be putting the Leliel stuff side-by-side in pilot order rather than having it scattered everywhere. If there is a max file size we're trying to stay under, I can follow those parameters while moving things around, no problem.
さらば、全てのEvaGeeks。
「滅びの運命は新生の喜びでもある」
Departure Message | The Arqa Apocrypha: An Evangelion Analysis Blog

deeRez
Shamshel
Shamshel
User avatar
Posts: 295
Joined: Jul 31, 2011
Gender: Male

Re: [GAME] Neon Genesis Evangelion 2: Another Cases

  •      
  •      
  • Quote

Postby deeRez » Thu Mar 08, 2018 10:19 am

@Kira - good luck!

View Original PostReichu wrote:deeRez: I'll respond in greater detail later, but quick question... With files_evs_part1~3, is it okay if I move the text blocks around so that related stuff is closer together? One example would be putting the Leliel stuff side-by-side in pilot order rather than having it scattered everywhere. If there is a max file size we're trying to stay under, I can follow those parameters while moving things around, no problem.


Can't wait, but to answer your question: yes feel free to move things around,
but, keep the act as a separate commit/transmission to GitHub.
In other words, don't do a move and translation in the same edit.

To explain why, each change is a mutation on the previous (to the human user).
And if you move and modify a line at the same time, it gets harder for the system to recognize if something was newly added or if something was moved. The system will still work fine, but it presents the change to the human user as a giant mess.

And that's bad because if something went wrong in the move, to undo/revert it, it becomes harder to disentangle (for the human user) if there are also translation changes.

EDIT:
Kira & Reichu - I'm thinking that holding off on translating IMTEXT (the HUGE) one is best, as you've already been doing.
Instead focus on 100%ing the rest like rodata, EVS, the CI.

This will make it easier to introduce new folks since they'll only have IMTEXT to tackle. Furthermore, if we figure out the speaker information for IMTEXT - it'll be easy to update it if IMTEXT has not already been modified.
In and of itself, self-evident.


Return to “Everything Else Evangelion”

Who is online

Users browsing this forum: No registered users and 4 guests