最近看了一下东方快车谋杀案这个游戏,下面作一个初步汉化分析。3 k( x( U1 s# T) {* v! X
0 o, q" P3 y8 m3 W K字幕在\Text\Dialogue目录里,utf-16编码,明文,文件头部存在2字节的编码标志。
0 n" {3 d# K7 V6 H* K) VTTF字体在\Interface\Fonts目录里,替换后能见到效果。8 b2 i. l/ B8 X! b& {3 m$ y q
看起来汉化很容易,但是修改字幕文件后发现游戏存在某种字符边界检查。
2 l6 D/ Z0 x! s+ Y9 W具体来说就是
$ x: c# _( Y# U% B/ m! C8 b2 [* R5 L/ U" v( T4 X8 W
1.每个字符的第2个字节,不大于0x09的时候,能通过字符边界检查,这时屏幕显示一个空格。% ?9 n6 u9 b2 A
2.每个字符的第2个字节,大于0x09的时候,被过滤,这时屏幕显示只显示前后的字符,中间无空格。" S# c% m# T* ^5 z+ {, Y' x
/ B. @/ B. t! p/ J' _
感觉只要想办法去掉字符边界检查就行了。
& t- |% k- F9 E, v! y2 @3 g由于这个游戏无法用OD动态调试,只能用OD载入后静态分析一下。% u. h" p! F8 I( H6 R
找到 cmp cl,0A 2处,cmp cl,9 2处。 nop 掉均无效果。 Q5 G) w, K! n* F L/ D) b: @. Z
- h W9 \# _ B3 V) C
本人对此游戏的分析暂时告一段落。 |