冒险解谜游戏中文网 ChinaAVG

标题: 惊恐鬼屋Scratches初步汉化分析 [打印本页]

作者: shane007    时间: 2009-12-23 13:37
标题: 惊恐鬼屋Scratches初步汉化分析
看了一下惊恐鬼屋Scratches这个游戏。
1 L3 G5 O& X( J9 q包文件有2个,scratches.res和scream.res,
% n$ B. {% h% F1 l# Q' p包文件的格式如下,可以用Game Extractor来解开。' ^# d+ l) u6 h
http://wiki.xentax.com/index.php/Scratches_RES$ r  `  X. ^! o0 V. {1 Z
从scratches.res里面解出一个font-michael.tga文件,就是在游戏利用的字体。
+ R0 p. @# f1 L+ y5 t& rscream.res里面也有一个字体文件,但是游戏好像没有用到。5 Y& O1 d8 j  X+ O) n

5 d( _) F" k  ^6 S/ f- A用OD调试后,发现这是一个使用opengl API的游戏。6 e: c1 P0 d0 }! V( Q& f
在某句字幕上下了内存断点,断下来之后找到了和显示有关的代码段。- c# l0 H: b6 J) ?
! |6 A8 l  h+ {" u* r7 i
0040C5D0  /$  53            push    ebx5 e+ Y: ?0 F) B6 W
0040C5D1  |.  51            push    ecx3 M! \) y: _' S& M1 S# W
0040C5D2  |.  52            push    edx
7 G% [4 K# Q" r; ^  x0040C5D3  |.  56            push    esi  j/ U5 T- c1 U1 _; Z
0040C5D4  |.  57            push    edi
3 ?! ^0 I' M% [+ C0040C5D5  |.  55            push    ebp0 y( f  W9 r' _5 w9 d3 ]5 \0 a
0040C5D6  |.  81EC 10010000 sub     esp, 110# j/ t# v2 R7 q' q1 l" `
0040C5DC  |.  89C6          mov     esi, eax7 h- S( U! \6 B
0040C5DE  |.  89C7          mov     edi, eax5 v9 ^% e3 E( f! ^+ I8 R/ B0 L
0040C5E0  |.  29C9          sub     ecx, ecx% K0 b  C6 J/ ?+ w7 |  p
0040C5E2  |.  49            dec     ecx
5 i; Y5 E/ E; A7 s' u, d0040C5E3  |.  31C0          xor     eax, eax
* j  b6 {/ w2 j/ A% _2 H1 Y- X! V  e! N0040C5E5  |.  F2:AE         repne   scas byte ptr es:[edi]
, N% q9 K" q& v* w* S0040C5E7  |.  F7D1          not     ecx
9 m" n' W: J6 p* |0040C5E9  |.  49            dec     ecx, d" C% V. E9 i0 V( a) s
0040C5EA  |.  31DB          xor     ebx, ebx" M" g" _3 M. f8 L1 D5 m0 B/ ?
0040C5EC  |.  31ED          xor     ebp, ebp
# I  C" l  N7 C; U) L! A0040C5EE  |.  81F9 00010000 cmp     ecx, 100
' a3 y! g3 W7 u- |5 n/ `0 _0040C5F4  |.  72 0D         jb      short 0040C603
5 O3 c0 {! n9 l" g7 C0040C5F6  |.  81C4 10010000 add     esp, 110. M2 m7 Q: H! D+ t# r
0040C5FC  |.  5D            pop     ebp
  ^8 W) j# ~. Y. w4 Y: X$ ?$ q0040C5FD  |.  5F            pop     edi  ]1 c( m; i' l: g5 _3 L$ Q
0040C5FE  |.  5E            pop     esi
' _: b: ~5 I: l9 l) v0040C5FF  |.  5A            pop     edx# @: M* k0 ]" A  e9 e/ S
0040C600  |.  59            pop     ecx9 G8 E8 Z5 f+ Q' ~+ M$ m: G8 n
0040C601  |.  5B            pop     ebx
% w7 U0 \- _* e0 K0 n( K0040C602  |.  C3            retn, a- b  O  @: E& C# H
0040C603  |>  89E7          mov     edi, esp
- @5 j: }8 q0 ?( o( F4 g0040C605  |.  57            push    edi$ j* f4 J+ E6 E/ O5 C7 w
0040C606  |>  8A06          /mov     al, byte ptr [esi]$ [% j8 U' f* z
0040C608  |.  8807          |mov     byte ptr [edi], al
9 H6 c% X8 v3 s0040C60A  |.  3C 00         |cmp     al, 0
; z0 q$ s: T  Y6 F; q0040C60C  |.  74 10         |je      short 0040C61E. V1 x" b/ o' `/ a+ S5 X
0040C60E  |.  8A46 01       |mov     al, byte ptr [esi+1]
. A4 j( T$ R/ x7 i( w0040C611  |.  83C6 02       |add     esi, 29 e. G* {! F, W/ K! F
0040C614  |.  8847 01       |mov     byte ptr [edi+1], al
3 L* r- e4 I% n4 \7 Z0040C617  |.  83C7 02       |add     edi, 2) V& @/ q8 d4 N5 L
0040C61A  |.  3C 00         |cmp     al, 0( ^5 ^; |' z( T
0040C61C  |.^ 75 E8         \jnz     short 0040C606
0 n6 O: b, z- n. f# t0040C61E  |>  5F            pop     edi8 N: K  ]* u# N, f& `, U
0040C61F  |.  8A1424        mov     dl, byte ptr [esp]) K7 k" j3 }# j, o% l1 k* E( S
0040C622  |.  89E0          mov     eax, esp
4 K& D5 k9 P/ @( W, A0040C624  |.  84D2          test    dl, dl1 N* ^5 D2 J- b1 E- j* T
0040C626  |.  74 09         je      short 0040C631' N- x9 w  b& m! k6 z) `/ M
0040C628  |>  8A70 01       /mov     dh, byte ptr [eax+1]
* h% V% L5 \& i# F0 u0040C62B  |.  40            |inc     eax$ T2 c" _, E  N+ [! x/ W0 p
0040C62C  |.  45            |inc     ebp& c4 T; e9 I6 G+ L: [. c3 x# u
0040C62D  |.  84F6          |test    dh, dh
, Q* C/ I4 T0 z( V. y0040C62F  |.^ 75 F7         \jnz     short 0040C628
. x3 B" M1 R( `, A& Z0040C631  |>  81FD D2000000 cmp     ebp, 0D2. p' D7 X; m: u) @& V
0040C637  |.  0F8E 61010000 jle     0040C79E
0 |3 k# |' O) Y  V4 `0040C63D  |.  89EA          mov     edx, ebp
* n2 c  H3 o0 C4 {( |$ Y: P0040C63F  |.  89E8          mov     eax, ebp+ ?+ t0 k: r2 ~2 n. ^# t" G
0040C641  |.  C1FA 1F       sar     edx, 1F. Z$ n* b2 F4 n
0040C644  |.  C1E2 02       shl     edx, 2
9 a1 E; Y( x2 x  |0040C647  |.  1BC2          sbb     eax, edx
; |2 X1 z& z  E0040C649  |.  C1F8 02       sar     eax, 2! G- R( i% V) g! P) W
0040C64C  |.  89C7          mov     edi, eax4 E/ @9 B, B$ S: a9 _* ]9 l
0040C64E  |.  C78424 040100>mov     dword ptr [esp+104], 3
  j: M9 C6 c0 k* y! K0040C659  |>  89E0          mov     eax, esp8 G, ^% W, G, O" Z7 M
0040C65B  |.  31D2          xor     edx, edx
8 `! s, n1 i  [* ~0040C65D  |.  8A0C24        mov     cl, byte ptr [esp]
; C# w7 t: q% |, c( u0040C660  |.  8915 8477EF02 mov     dword ptr [2EF7784], edx
6 G: Y- V9 A4 A0040C666  |.  8915 8C77EF02 mov     dword ptr [2EF778C], edx
9 E* ^% b5 D  E/ t0040C66C  |.  899424 080100>mov     dword ptr [esp+108], edx
4 @& R, U3 R5 `. n, @9 z) Q0040C673  |.  89E2          mov     edx, esp
3 x$ ?9 I6 Z( b$ G$ V6 I( Y( P0040C675  |.  84C9          test    cl, cl; ?% h4 J/ z6 p: w
0040C677  |.  0F84 89000000 je      0040C706
. B" k* H, K& c. o; S0040C67D  |.  8B8C24 040100>mov     ecx, dword ptr [esp+104]2 T  v4 p8 @4 a9 ~! P
0040C684  |.  4F            dec     edi' a# x; `% j7 s4 b1 S
0040C685  |.  C1E1 02       shl     ecx, 26 P8 Z# p# \. U- e
0040C688  |.  89BC24 000100>mov     dword ptr [esp+100], edi% D# I, k" \- K
0040C68F  |.  898C24 0C0100>mov     dword ptr [esp+10C], ecx
$ Q8 d4 l: @5 T! t+ P/ R0040C696  |>  8A0A          mov     cl, byte ptr [edx]
& x; D  t1 ~% X! \  e0040C698  |.  80F9 20       cmp     cl, 20
  l# ^% w* _) U7 R, E0040C69B  |.  0F85 6A010000 jnz     0040C80B
' n% Y, G9 U. z% L5 R+ ?- N5 z& ~0040C6A1  |.  3B9C24 000100>cmp     ebx, dword ptr [esp+100]
' a+ Z! Y% }* N9 z0040C6A8  |.  7C 53         jl      short 0040C6FD
! P' P8 I) \; u- B" V0 @0040C6AA  |.  8BBC24 0C0100>mov     edi, dword ptr [esp+10C]
9 F$ Q6 Q( S2 u9 ]) D0040C6B1  |.  C602 00       mov     byte ptr [edx], 0
, o2 Q2 p& f7 i5 C* E" i$ u0040C6B4  |.  89C6          mov     esi, eax7 l6 v4 d5 x/ F# M0 W* x+ k
0040C6B6  |.  8BBF 7477EF02 mov     edi, dword ptr [edi+2EF7774]
& V  a8 M7 o5 K3 K2 X& v0040C6BC  |.  31DB          xor     ebx, ebx
/ N- w& z- @  P6 X# F0040C6BE  |.  57            push    edi
: {( {9 G' b% s. ~- V: L0040C6BF  |>  8A06          /mov     al, byte ptr [esi]
8 m& P6 e: S% @: \0040C6C1  |.  8807          |mov     byte ptr [edi], al( x* o) f4 k) H$ l
0040C6C3  |.  3C 00         |cmp     al, 0. b1 T4 N+ U4 t  }' U
0040C6C5  |.  74 10         |je      short 0040C6D7
4 m+ L& h% ~8 t1 ~0040C6C7  |.  8A46 01       |mov     al, byte ptr [esi+1]
4 B3 _: r8 l- P; `$ n% a0040C6CA  |.  83C6 02       |add     esi, 2
% ]: ]* K, J6 M5 [+ R0040C6CD  |.  8847 01       |mov     byte ptr [edi+1], al
6 @5 d5 {; z% O& t. ~0040C6D0  |.  83C7 02       |add     edi, 2
3 o- }! o" ?4 z0 i- G0040C6D3  |.  3C 00         |cmp     al, 0; h1 A& L- ?/ |# o
0040C6D5  |.^ 75 E8         \jnz     short 0040C6BF- t) A& U) i( B. u: @* j6 v4 G: e
0040C6D7  |>  5F            pop     edi
5 t9 @; J0 {1 V4 Z" v* h0040C6D8  |.  8D42 01       lea     eax, dword ptr [edx+1]
/ O* [8 B. `" K2 [  n# P0040C6DB  |.  8BBC24 0C0100>mov     edi, dword ptr [esp+10C]5 @8 r5 D: C7 c. B
0040C6E2  |.  8B9424 080100>mov     edx, dword ptr [esp+108]
- _/ w* }1 ^% Z( w9 o: R0040C6E9  |.  83EF 04       sub     edi, 4
5 V! ]7 _7 [* G- C: V" N0040C6EC  |.  42            inc     edx
( G7 a, l. t# Y" q: s. W" x0040C6ED  |.  89BC24 0C0100>mov     dword ptr [esp+10C], edi& t3 P* N9 ]9 d) K, |) ^$ N  v; S
0040C6F4  |.  899424 080100>mov     dword ptr [esp+108], edx
/ _- h% X/ o. ^0 f# j% J0040C6FB  |.  89C2          mov     edx, eax. o) f, B5 }7 O3 L( h
0040C6FD  |>  43            inc     ebx
0 i5 p" n8 O8 R( J! @. i0040C6FE  |.  8A6A 01       mov     ch, byte ptr [edx+1]
, s' G9 X* O+ d% C7 U: ?4 H' ]0040C701  |.  42            inc     edx
, {4 U, Q/ y0 {$ h) Y' x0040C702  |.  84ED          test    ch, ch
4 x: r% i. O0 X- J0040C704  |.^ 75 90         jnz     short 0040C696& f; N# P5 d  e' c& G
0040C706  |>  83FD 10       cmp     ebp, 10/ {; Z/ l: a. L- f5 m5 P4 t
0040C709  |.  7F 05         jg      short 0040C7105 n: v3 _# H* C+ v9 k8 k7 D4 j9 c# q
0040C70B  |.  BD 20000000   mov     ebp, 20
/ _- A3 X0 Z% w& I! {4 p0040C710  |>  8B9424 040100>mov     edx, dword ptr [esp+104]
+ f2 [9 T$ v1 c6 \  Q% @0040C717  |.  2B9424 080100>sub     edx, dword ptr [esp+108]" Y% w9 ^, s5 J
0040C71E  |.  85D2          test    edx, edx+ l' Y4 _+ w  _& z% p
0040C720  |.  7C 23         jl      short 0040C745
/ }0 W7 B& D9 [0 E0040C722  |.  89C6          mov     esi, eax4 I+ Z! P' r# ^
0040C724  |.  8B3C95 7477EF>mov     edi, dword ptr [edx*4+2EF7774]
1 t0 z* L1 K# D- N3 ]0 S0040C72B  |.  57            push    edi  |  W0 X$ ~$ U+ i/ U, l* Z; f
0040C72C  |>  8A06          /mov     al, byte ptr [esi], [  W0 T5 j: H" O
0040C72E  |.  8807          |mov     byte ptr [edi], al+ t  l, ]+ X9 X6 m0 j; W! D
0040C730  |.  3C 00         |cmp     al, 0& r7 n! z) V3 v! M1 _
0040C732  |.  74 10         |je      short 0040C744
9 c; G" {% [) W: |" u% r7 W0040C734  |.  8A46 01       |mov     al, byte ptr [esi+1]$ F2 y$ g7 Y& R* G$ J# G
0040C737  |.  83C6 02       |add     esi, 2
  K; \9 l- L7 X% w3 @% H0040C73A  |.  8847 01       |mov     byte ptr [edi+1], al
; a9 y( ^% A2 ?+ ~; ]/ r3 t0040C73D  |.  83C7 02       |add     edi, 2+ o. g  q. `- b4 W! S! H6 V
0040C740  |.  3C 00         |cmp     al, 0# d& j2 W$ l! D
0040C742  |.^ 75 E8         \jnz     short 0040C72C9 k& q8 {8 J$ C" |  l- |$ D
0040C744  |>  5F            pop     edi7 ~6 U& A' V. i( c
0040C745  |>  E8 E6500100   call    00421830
# g/ ]  d0 O  h0040C74A  |.  A3 8877EF02   mov     dword ptr [2EF7788], eax
' h+ r, S7 Q% I0040C74F  |.  8B8424 040100>mov     eax, dword ptr [esp+104]9 e* _& I  j( W% X
0040C756  |.  40            inc     eax
) i0 _" q4 u2 k# x! Z0040C757  |.  A3 8477EF02   mov     dword ptr [2EF7784], eax
$ Z% S* `3 Q9 Z) y2 o! ~  ~% c, v4 y0040C75C  |.  C705 8C77EF02>mov     dword ptr [2EF778C], 1; K' X3 E2 J7 {1 P' Y
0040C766  |.  B8 64000000   mov     eax, 64
" k& N% \% E( R$ E/ B$ @1 ?, `0 H4 n" _8 ~0040C76B  |.  89C2          mov     edx, eax7 P. s0 q! {1 L, g  |+ o5 A3 c9 V
0040C76D  |.  8B0D E880EF02 mov     ecx, dword ptr [2EF80E8]. R8 N* `" a  A" O- n+ W& @8 n
0040C773  |.  C1FA 1F       sar     edx, 1F3 A) b9 U+ _' M& `$ l
0040C776  |.  F7F9          idiv    ecx
7 n9 m  @% I+ [" a6 G! O0040C778  |.  89C3          mov     ebx, eax
; [) L* w1 m8 M0040C77A  |.  89EA          mov     edx, ebp2 |6 H5 Z! Y3 Y, O7 R/ F; E# m
0040C77C  |.  89E8          mov     eax, ebp4 S1 X& C3 i9 G, o  S/ f: h
0040C77E  |.  C1FA 1F       sar     edx, 1F
6 Q# ^1 d- {$ O5 R  m  m0040C781  |.  C1E2 04       shl     edx, 4
, U% i3 d& U! P9 m0040C784  |.  1BC2          sbb     eax, edx+ ^5 j( o/ R' |$ T- ^) O
0040C786  |.  C1F8 04       sar     eax, 4) A& z) ]/ x/ k7 I
0040C789  |.  01C3          add     ebx, eax% A5 g6 |7 v! w! u: ^8 u
0040C78B  |.  891D 9077EF02 mov     dword ptr [2EF7790], ebx+ u$ ?0 x# c, m0 i6 D0 p1 ]
0040C791  |.  81C4 10010000 add     esp, 110: l( c+ F0 g+ |" _- N5 [+ E
0040C797  |.  5D            pop     ebp
6 v" P9 B, z* P6 y, f8 F0040C798  |.  5F            pop     edi' W  K2 a- g. f. W9 B
0040C799  |.  5E            pop     esi
) c6 P6 v& N5 }5 \0040C79A  |.  5A            pop     edx. n# P0 u/ E& u( x1 P- f
0040C79B  |.  59            pop     ecx: B/ Z. I* S- V& _. t
0040C79C  |.  5B            pop     ebx& N9 z: V7 d' ~/ q. z5 U
0040C79D  |.  C3            retn
( c0 M2 q; S' {* W; E* Z0040C79E  |>  81FD 8C000000 cmp     ebp, 8C
0 F8 f2 P% T, B! s* c0040C7A4  |.  7C 28         jl      short 0040C7CE* _1 n; B+ M+ {" k/ L
0040C7A6  |.  81FD D2000000 cmp     ebp, 0D2
- S  R8 l  o" X, K5 Z0040C7AC  |.  7F 20         jg      short 0040C7CE
& N7 g& X- r1 ?# s* u8 a/ u, T1 }2 A0040C7AE  |.  B9 03000000   mov     ecx, 3% k* E0 h; _8 V' E- I
0040C7B3  |.  89EA          mov     edx, ebp$ \  G: `9 B' o$ a0 Q
0040C7B5  |.  89E8          mov     eax, ebp- m  T& H( S. r
0040C7B7  |.  C1FA 1F       sar     edx, 1F& _1 l: @5 W$ K7 ^
0040C7BA  |.  F7F9          idiv    ecx
0 H1 U! {6 E% R: n2 @0040C7BC  |.  C78424 040100>mov     dword ptr [esp+104], 2* j! o6 N2 ~# x, G- `2 f
0040C7C7  |.  89C7          mov     edi, eax
2 o$ l5 U+ Z; r8 X, V4 t0040C7C9  |.^ E9 8BFEFFFF   jmp     0040C659
3 d  o! V; H# Y  i0040C7CE  |>  83FD 46       cmp     ebp, 463 o8 Y0 X$ y: E* x' F
0040C7D1  |.  7C 25         jl      short 0040C7F8: h, }9 P6 K: t( H: g1 C9 K
0040C7D3  |.  81FD 8C000000 cmp     ebp, 8C; }! c9 S% b4 w4 f
0040C7D9  |.  7F 1D         jg      short 0040C7F8/ a) \& b' a5 g/ ]& y
0040C7DB  |.  89EA          mov     edx, ebp
/ p8 b" U; M3 G5 X0040C7DD  |.  89E8          mov     eax, ebp. T) `& l2 W' F9 P  z
0040C7DF  |.  C1FA 1F       sar     edx, 1F
0 l" }8 B- ~5 v) i4 h0040C7E2  |.  2BC2          sub     eax, edx% q* y( M- f0 j1 o0 w% J
0040C7E4  |.  D1F8          sar     eax, 1$ Q# N+ d" u- Q
0040C7E6  |.  C78424 040100>mov     dword ptr [esp+104], 1$ _! b$ }" `% L; t5 v9 W8 n
0040C7F1  |.  89C7          mov     edi, eax+ G/ w( b" U8 p! r4 s. y+ C' z
0040C7F3  |.^ E9 61FEFFFF   jmp     0040C659
5 y) T2 Y2 f; _0040C7F8  |>  31D2          xor     edx, edx
% J! B3 D. [) n0040C7FA  |.  BF 46000000   mov     edi, 46
* q( u% Q, n& O0 Z2 ^% v& X0040C7FF  |.  899424 040100>mov     dword ptr [esp+104], edx
7 N  w9 m9 I+ C5 z1 q0040C806  |.^ E9 4EFEFFFF   jmp     0040C659
- O# R( ^- G& P$ Q: H6 j/ f- g0040C80B  |>  80F9 7C       cmp     cl, 7C
+ o/ G1 Q: ^1 E5 a2 [3 M. I0040C80E  |.^ 0F85 E9FEFFFF jnz     0040C6FD
( w0 M6 T+ P7 S( y0040C814  |.  C602 20       mov     byte ptr [edx], 20
0 }" d) F; t) M/ @6 ^0040C817  \.^ E9 E1FEFFFF   jmp     0040C6FD
- K4 W: V# O: I* O
+ I/ c2 N6 [% @: v2 R" _; `7 r在scratches.sc和scream.sc里面有lua的脚本,保存有字体文件名。
8 K4 `- x: W  l. p, n8 v估计要汉化就要在上面的代码段下功夫了,以后继续研究。; D+ Y: a2 `, j8 ], E  R# g
3 G# I7 w  l/ g* \, R  x: j% B; N
找到2个俄文的补丁,也许对以后研究有用。
0 d: Y! o3 g8 O1 R1 ^http://www.megaupload.com/?d=EZH6X6724 m  r# k! ^3 E0 {( |' o  j" O' T
http://rapidshare.com/files/94227080/ScratchesDC.7z
作者: shane007    时间: 2010-9-28 07:54
顶上来备用
作者: shane007    时间: 2011-4-11 06:48
顶上来备用1




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://www.chinaavg.com/) Powered by Discuz! X3.2