最近看了一下东方快车谋杀案这个游戏,下面作一个初步汉化分析。8 j$ [. |- a0 @3 _; n: r% L
. p- x! b* A4 y( G. r4 {
字幕在\Text\Dialogue目录里,utf-16编码,明文,文件头部存在2字节的编码标志。
8 t1 [# L, ]3 cTTF字体在\Interface\Fonts目录里,替换后能见到效果。) ~& H4 \# q$ y6 F! H* ~
看起来汉化很容易,但是修改字幕文件后发现游戏存在某种字符边界检查。& p2 y: l" \6 a$ K* W2 D d
具体来说就是 @9 K- B+ h E/ x; \$ {! n1 P
8 j \2 I5 L0 V: t2 m
1.每个字符的第2个字节,不大于0x09的时候,能通过字符边界检查,这时屏幕显示一个空格。
, M" ~9 L; @7 z: s* M2.每个字符的第2个字节,大于0x09的时候,被过滤,这时屏幕显示只显示前后的字符,中间无空格。
) [0 V- f2 R2 s7 C$ V8 M9 q! p+ N) r% ?. y$ \4 I
感觉只要想办法去掉字符边界检查就行了。
5 D1 m5 K; ]" u; \由于这个游戏无法用OD动态调试,只能用OD载入后静态分析一下。
, ~. b* @2 t4 I# j6 i; X; `找到 cmp cl,0A 2处,cmp cl,9 2处。 nop 掉均无效果。- H0 k6 {* Q2 A; U' |1 U( S* C
0 d/ I* K+ B4 L& F5 s/ x5 t% G
本人对此游戏的分析暂时告一段落。 |