冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2009-12-23 13:37
标题: 惊恐鬼屋Scratches初步汉化分析
看了一下惊恐鬼屋Scratches这个游戏。
5 ^  E$ V: w' A6 o0 g" w, M* S$ ]包文件有2个,scratches.res和scream.res,
- N% h; f$ R7 U包文件的格式如下,可以用Game Extractor来解开。' r, R1 R7 \% A+ G' @7 A+ q
http://wiki.xentax.com/index.php/Scratches_RES
: y+ _" U& i+ W* b6 W从scratches.res里面解出一个font-michael.tga文件,就是在游戏利用的字体。
1 M% ?' [' D5 \) Xscream.res里面也有一个字体文件,但是游戏好像没有用到。3 F  p2 d. n5 D: W

2 `( X8 b; F" i0 @2 x, S3 i# H* Z用OD调试后,发现这是一个使用opengl API的游戏。
6 i3 q3 [8 i* u! B6 I! V5 ?在某句字幕上下了内存断点,断下来之后找到了和显示有关的代码段。
$ |) c5 ]# t% ]6 b. U  c5 |; d9 Q% x* i) ^! r
0040C5D0  /$  53            push    ebx6 L1 J" A+ w/ u# X/ N* V5 v
0040C5D1  |.  51            push    ecx6 i4 q: ~$ F' k8 V
0040C5D2  |.  52            push    edx/ ?6 \1 V. S- x9 W9 Q5 M1 R
0040C5D3  |.  56            push    esi
1 `$ v1 n( y- m0 r% n0040C5D4  |.  57            push    edi
" J, A- A) ?2 k. m5 b0040C5D5  |.  55            push    ebp% C) h/ D- K+ \
0040C5D6  |.  81EC 10010000 sub     esp, 110
+ C1 e7 m1 D# m; T( P6 g0040C5DC  |.  89C6          mov     esi, eax
9 j& k0 \1 r& a  S4 S& f! f0040C5DE  |.  89C7          mov     edi, eax' G9 m0 i4 B: R. F
0040C5E0  |.  29C9          sub     ecx, ecx
! N' E' u5 w" B0040C5E2  |.  49            dec     ecx
' q4 z0 A& y+ c: Q8 |6 K3 k" p5 z0040C5E3  |.  31C0          xor     eax, eax0 f$ `* j+ t$ D  X
0040C5E5  |.  F2:AE         repne   scas byte ptr es:[edi]
: X5 d2 C# R- }' L2 u& L8 ?0040C5E7  |.  F7D1          not     ecx
5 \4 I" z7 \/ r$ e0040C5E9  |.  49            dec     ecx6 ~9 v/ ?- ]: g& B* z& c7 \9 k
0040C5EA  |.  31DB          xor     ebx, ebx7 f( B! Z) P7 ?9 K% T8 c
0040C5EC  |.  31ED          xor     ebp, ebp
4 J( g) w2 P, E  ^4 B! [0040C5EE  |.  81F9 00010000 cmp     ecx, 100
3 K2 c; c' b' l  I3 N2 {5 t' w0040C5F4  |.  72 0D         jb      short 0040C603
- \& {+ y2 T6 f+ P0040C5F6  |.  81C4 10010000 add     esp, 110
- {0 n8 D) u- d, r$ i0040C5FC  |.  5D            pop     ebp
* T/ ~# @/ T% H: k0040C5FD  |.  5F            pop     edi
4 Q1 I% I5 h- z1 V  Q1 Z4 |0040C5FE  |.  5E            pop     esi
" t& m$ A% F  u% i6 |0040C5FF  |.  5A            pop     edx* y( M. Q& Z* y9 l; d& Z" V
0040C600  |.  59            pop     ecx- z* s6 K( O) }2 }9 [
0040C601  |.  5B            pop     ebx
2 Y3 Z8 k- L5 v2 G9 m8 c. d0 h0040C602  |.  C3            retn
4 k& m. a- h3 \7 Z0040C603  |>  89E7          mov     edi, esp
) ?/ y- X2 {! R$ \- ]. U- ^5 y6 C0040C605  |.  57            push    edi
+ Z3 e% v% \9 q0040C606  |>  8A06          /mov     al, byte ptr [esi]! r( W0 @! V- G$ }; ?2 x' z
0040C608  |.  8807          |mov     byte ptr [edi], al' X0 l, t/ _; Y6 d* A
0040C60A  |.  3C 00         |cmp     al, 0
  a3 g) k  P) ~+ o; \! o( n- F+ ~0040C60C  |.  74 10         |je      short 0040C61E, C4 o7 @) \8 @' b1 c! ~) u- H$ J
0040C60E  |.  8A46 01       |mov     al, byte ptr [esi+1]; ^6 Q1 _, o! I1 K- g
0040C611  |.  83C6 02       |add     esi, 2
  ]9 a3 m% D/ e! j% f0040C614  |.  8847 01       |mov     byte ptr [edi+1], al
- I' E9 X4 p- O. n8 H0040C617  |.  83C7 02       |add     edi, 2! N$ a5 i! x9 x( ]- e1 s9 H
0040C61A  |.  3C 00         |cmp     al, 0
2 r% b4 W/ x, i2 V7 T. K& Y3 `0040C61C  |.^ 75 E8         \jnz     short 0040C606
# l5 G& I3 i& P0040C61E  |>  5F            pop     edi4 E9 f1 `4 ^/ O
0040C61F  |.  8A1424        mov     dl, byte ptr [esp]1 B) b9 b% e, ~! ]( z1 [7 A
0040C622  |.  89E0          mov     eax, esp
8 B8 e* n& V- W. H0040C624  |.  84D2          test    dl, dl
" S0 ]* m# U8 J. r' u0040C626  |.  74 09         je      short 0040C6316 f9 }( S, X! u# n
0040C628  |>  8A70 01       /mov     dh, byte ptr [eax+1]
& h2 O+ r! |' h+ [2 o0040C62B  |.  40            |inc     eax
4 @7 X$ Y: l9 N. o. j0040C62C  |.  45            |inc     ebp
* z8 }3 ?8 y3 M- ]$ r0040C62D  |.  84F6          |test    dh, dh
! P8 r- m9 K+ \/ l0040C62F  |.^ 75 F7         \jnz     short 0040C628
' P1 L) H8 a" O1 e0040C631  |>  81FD D2000000 cmp     ebp, 0D2
0 Y$ V' i7 ~/ t3 k0040C637  |.  0F8E 61010000 jle     0040C79E2 k7 o7 \; ^' x9 Z, k! i
0040C63D  |.  89EA          mov     edx, ebp
- z6 @+ B" W) N6 d0040C63F  |.  89E8          mov     eax, ebp8 Z) S2 d9 w, |4 ?& x
0040C641  |.  C1FA 1F       sar     edx, 1F
. t! _' k: J) M0 a! m5 g0040C644  |.  C1E2 02       shl     edx, 2
. v2 Q, Q/ |, ^  t  g' z0040C647  |.  1BC2          sbb     eax, edx
1 P* O( g# W. l' t& C: J0040C649  |.  C1F8 02       sar     eax, 22 l/ b# D2 [/ B: U0 ^8 t
0040C64C  |.  89C7          mov     edi, eax
6 m9 ?0 V  G/ g/ {3 q* Y& l0040C64E  |.  C78424 040100>mov     dword ptr [esp+104], 3
, k1 a4 l# V1 J& g+ q1 f  M! j0040C659  |>  89E0          mov     eax, esp
/ O# V' J" ^, f' V0040C65B  |.  31D2          xor     edx, edx
1 I# W& h% K+ d# S$ j4 m: A0040C65D  |.  8A0C24        mov     cl, byte ptr [esp]0 b" o; h1 u% s
0040C660  |.  8915 8477EF02 mov     dword ptr [2EF7784], edx
  W  d5 }0 M; n) c. u0040C666  |.  8915 8C77EF02 mov     dword ptr [2EF778C], edx% f/ p6 X; M, y3 d) I% n
0040C66C  |.  899424 080100>mov     dword ptr [esp+108], edx9 B" H  m7 Z6 w7 u3 ]4 R9 [
0040C673  |.  89E2          mov     edx, esp
: r/ f0 r! w& X- J: J3 h' f% e! V0040C675  |.  84C9          test    cl, cl
+ A8 U2 x( Q# h: Q0040C677  |.  0F84 89000000 je      0040C706( o+ s' `3 C0 T
0040C67D  |.  8B8C24 040100>mov     ecx, dword ptr [esp+104]; ~) S- x; v4 b: x
0040C684  |.  4F            dec     edi) |" @+ a  U) r: \9 E
0040C685  |.  C1E1 02       shl     ecx, 2
6 n. a8 X% t: I* x. N0040C688  |.  89BC24 000100>mov     dword ptr [esp+100], edi
; n7 b7 I! T; O0040C68F  |.  898C24 0C0100>mov     dword ptr [esp+10C], ecx# K2 F" ^- d( @, T( r. ?
0040C696  |>  8A0A          mov     cl, byte ptr [edx]
- k# U, V9 g' O" f6 D6 S+ e5 e0040C698  |.  80F9 20       cmp     cl, 20/ e5 h: q" z) z, p* w' b" V/ E
0040C69B  |.  0F85 6A010000 jnz     0040C80B
6 L7 j7 j. f/ t% _1 _  H0040C6A1  |.  3B9C24 000100>cmp     ebx, dword ptr [esp+100]( d6 r/ J! _0 }5 q( m4 T
0040C6A8  |.  7C 53         jl      short 0040C6FD/ Y/ J5 n2 M( `2 U/ w" N8 z* K4 U
0040C6AA  |.  8BBC24 0C0100>mov     edi, dword ptr [esp+10C]
$ y# p$ T6 j! u1 ~; O0040C6B1  |.  C602 00       mov     byte ptr [edx], 0
9 }$ H( ]1 J  o' l0040C6B4  |.  89C6          mov     esi, eax- R' `( K0 V2 w# h# @( z, [
0040C6B6  |.  8BBF 7477EF02 mov     edi, dword ptr [edi+2EF7774]
$ p5 \' Q9 V! u0040C6BC  |.  31DB          xor     ebx, ebx
5 \/ W9 E. D: |7 m0040C6BE  |.  57            push    edi
9 r7 y, T- R  @$ W, V) e" Z5 i0040C6BF  |>  8A06          /mov     al, byte ptr [esi]
" i9 C8 @! L6 j9 g5 ^0040C6C1  |.  8807          |mov     byte ptr [edi], al  F' C" n4 h; S- B% n" c5 F3 R
0040C6C3  |.  3C 00         |cmp     al, 0
$ I- v) ~% R) c% ?8 s0040C6C5  |.  74 10         |je      short 0040C6D7
# V  V7 t, E9 s0040C6C7  |.  8A46 01       |mov     al, byte ptr [esi+1]+ U0 ^+ }0 M4 Q
0040C6CA  |.  83C6 02       |add     esi, 2
& M" h& n( _# m  M4 f, X0040C6CD  |.  8847 01       |mov     byte ptr [edi+1], al. v& U7 ~/ }* W' h' X
0040C6D0  |.  83C7 02       |add     edi, 2
8 b3 L  c$ f" P& w  ^/ ^" w0040C6D3  |.  3C 00         |cmp     al, 0; T* ^& S; W  F4 }: s
0040C6D5  |.^ 75 E8         \jnz     short 0040C6BF
, P; [& ~. U; y! t* ~; I; k0040C6D7  |>  5F            pop     edi
2 T2 Y& L. q" h, \+ i0040C6D8  |.  8D42 01       lea     eax, dword ptr [edx+1]/ \1 j1 i3 ~6 B
0040C6DB  |.  8BBC24 0C0100>mov     edi, dword ptr [esp+10C]  \6 N6 K* E5 \. e
0040C6E2  |.  8B9424 080100>mov     edx, dword ptr [esp+108]# t" P9 F7 P# v: _( `! Q
0040C6E9  |.  83EF 04       sub     edi, 4
; I' {; O+ P2 h0040C6EC  |.  42            inc     edx7 \# B$ L. `: V+ d% U
0040C6ED  |.  89BC24 0C0100>mov     dword ptr [esp+10C], edi
: O4 G  t. O" v* J4 G0040C6F4  |.  899424 080100>mov     dword ptr [esp+108], edx
9 h- u( r% A. i9 X0040C6FB  |.  89C2          mov     edx, eax" Y. L/ p, f: R/ B$ h
0040C6FD  |>  43            inc     ebx$ h: Q+ Z3 b) [! ]1 N8 Y' B
0040C6FE  |.  8A6A 01       mov     ch, byte ptr [edx+1]
3 S6 W: ]- ?8 J# M1 m  E0040C701  |.  42            inc     edx
$ z  O6 J- X! a1 P0040C702  |.  84ED          test    ch, ch
" ?" k  o1 Z/ A1 ?4 J* l0040C704  |.^ 75 90         jnz     short 0040C696/ S  w& u, i$ O/ D. ^& D; Q
0040C706  |>  83FD 10       cmp     ebp, 10- J( [0 x; r3 z$ }+ q$ {
0040C709  |.  7F 05         jg      short 0040C710
, r' U% {+ x' M" y6 h0040C70B  |.  BD 20000000   mov     ebp, 20
. F8 m# ?: p' d- Y7 n) |" N0040C710  |>  8B9424 040100>mov     edx, dword ptr [esp+104]
7 A1 W8 e4 M& X; N0040C717  |.  2B9424 080100>sub     edx, dword ptr [esp+108]. y1 ]* j9 j# D
0040C71E  |.  85D2          test    edx, edx
% m9 u! H& b) ^- `9 C, J1 T: I0040C720  |.  7C 23         jl      short 0040C745
6 T8 G  S) [  F' c) s. v0040C722  |.  89C6          mov     esi, eax% s* V- ?5 x, Q3 v5 _/ `0 K& H3 E
0040C724  |.  8B3C95 7477EF>mov     edi, dword ptr [edx*4+2EF7774]
4 k0 X2 O" _9 u( S0040C72B  |.  57            push    edi; s. y5 s* d, a+ m. G; K* `, D# A! K
0040C72C  |>  8A06          /mov     al, byte ptr [esi]4 `/ _6 u5 y/ l, M* p& e
0040C72E  |.  8807          |mov     byte ptr [edi], al
: L5 d" n* b7 H5 t& r6 h$ F; a) q0040C730  |.  3C 00         |cmp     al, 0
% f8 |  X4 y, u) ^0040C732  |.  74 10         |je      short 0040C744
. i1 B8 A9 J0 v0040C734  |.  8A46 01       |mov     al, byte ptr [esi+1]
, `( A2 a( j7 N/ R0040C737  |.  83C6 02       |add     esi, 23 p. o1 E6 S2 _/ N7 N% k
0040C73A  |.  8847 01       |mov     byte ptr [edi+1], al* D3 O; b- g1 w8 S" l
0040C73D  |.  83C7 02       |add     edi, 2, R1 M% C! C2 u4 V
0040C740  |.  3C 00         |cmp     al, 0
3 R1 Z: p( N8 ~; @: w0040C742  |.^ 75 E8         \jnz     short 0040C72C& T- I4 P  d  d$ y
0040C744  |>  5F            pop     edi+ E0 w  Y& e' U% o! S, m/ [% y" C
0040C745  |>  E8 E6500100   call    00421830  |. H! Q' W9 o1 H( U% Q$ a
0040C74A  |.  A3 8877EF02   mov     dword ptr [2EF7788], eax
4 O/ g$ Q0 ]$ n: A; E6 e- p5 e0040C74F  |.  8B8424 040100>mov     eax, dword ptr [esp+104]
# X5 L, R4 g# J9 x0040C756  |.  40            inc     eax+ p# N) o  \# L9 s3 H* L* y
0040C757  |.  A3 8477EF02   mov     dword ptr [2EF7784], eax
' O: N* T: W3 U+ v8 e5 j& C0040C75C  |.  C705 8C77EF02>mov     dword ptr [2EF778C], 1: b, N* p5 o0 V* Q: M4 E! R9 L
0040C766  |.  B8 64000000   mov     eax, 64# E+ R  b6 e$ }
0040C76B  |.  89C2          mov     edx, eax' h& `1 l0 g( t! K- q' N: ^: I0 O
0040C76D  |.  8B0D E880EF02 mov     ecx, dword ptr [2EF80E8]
+ w7 ^) c" Q4 G; I0040C773  |.  C1FA 1F       sar     edx, 1F0 S" j7 f- E# m. u  |# P# k: Z
0040C776  |.  F7F9          idiv    ecx/ O; P# C, W" S' u9 j) c1 s
0040C778  |.  89C3          mov     ebx, eax& ^$ A$ ]0 A0 ]& \* R
0040C77A  |.  89EA          mov     edx, ebp
# K& `0 |+ m. ?+ h9 i8 Y; k0040C77C  |.  89E8          mov     eax, ebp
) ?& l; z( \! {% T0040C77E  |.  C1FA 1F       sar     edx, 1F
! s0 P, \, A4 u1 Q# y1 U4 D8 \0040C781  |.  C1E2 04       shl     edx, 4! N) a8 B0 J& X+ F; D" s2 I
0040C784  |.  1BC2          sbb     eax, edx  W: h, S5 G$ s' T* V' p! i% V; r
0040C786  |.  C1F8 04       sar     eax, 4
- }: X4 m  q+ T7 r' ?* Y. X0040C789  |.  01C3          add     ebx, eax
) X$ c7 y' H3 I% m6 {4 x0040C78B  |.  891D 9077EF02 mov     dword ptr [2EF7790], ebx4 R# }: Y  L/ }8 p
0040C791  |.  81C4 10010000 add     esp, 110$ A/ a" T% q2 U; u7 h3 ]
0040C797  |.  5D            pop     ebp
2 G9 S$ x; q6 D) c" J; x+ L0 Q0040C798  |.  5F            pop     edi) `0 u- g" Z- S
0040C799  |.  5E            pop     esi/ {6 b( I/ k, z) h
0040C79A  |.  5A            pop     edx
0 F; b/ Q9 i5 U0 ~0 @$ N0040C79B  |.  59            pop     ecx4 J! A+ ~, E- {
0040C79C  |.  5B            pop     ebx
: O! J6 u- Q7 l# g0 |$ X) Q0 w8 D3 ^0040C79D  |.  C3            retn
2 C# d4 B7 i$ V3 z! B0040C79E  |>  81FD 8C000000 cmp     ebp, 8C( X% i4 _) K' n- C; U/ B, Y3 H1 v1 m
0040C7A4  |.  7C 28         jl      short 0040C7CE" {  t: a9 I2 ?2 ~: R# i
0040C7A6  |.  81FD D2000000 cmp     ebp, 0D2
3 E8 i4 d& T! X, G) k7 z# y% _, ^0040C7AC  |.  7F 20         jg      short 0040C7CE
2 P* d3 m2 W$ h- F9 W$ j1 C0040C7AE  |.  B9 03000000   mov     ecx, 3
4 k/ o+ E4 @- U' q* z0040C7B3  |.  89EA          mov     edx, ebp
- H' u- V% r" ]3 |1 m0040C7B5  |.  89E8          mov     eax, ebp
! j4 ?3 ^% e: c6 @: `. _0040C7B7  |.  C1FA 1F       sar     edx, 1F8 Z; `' z# ]+ _1 }
0040C7BA  |.  F7F9          idiv    ecx- q1 ?4 C- ^& Q. Y" I4 Y
0040C7BC  |.  C78424 040100>mov     dword ptr [esp+104], 2
8 v8 F% Q' w3 Y& S" m) E2 ]0040C7C7  |.  89C7          mov     edi, eax; @5 p% O7 P. c% R! ^  l3 Y
0040C7C9  |.^ E9 8BFEFFFF   jmp     0040C659
, i' l$ @* [* E# U0040C7CE  |>  83FD 46       cmp     ebp, 46
; D3 o- z7 G. J4 O0040C7D1  |.  7C 25         jl      short 0040C7F8( T1 o& g( I0 B6 w
0040C7D3  |.  81FD 8C000000 cmp     ebp, 8C
4 t' p, }8 t3 f, l, F4 @0040C7D9  |.  7F 1D         jg      short 0040C7F8
4 ~" G6 u, `2 w$ x0040C7DB  |.  89EA          mov     edx, ebp
- @2 C9 D$ g& z0 C, D; [0040C7DD  |.  89E8          mov     eax, ebp4 y1 u3 b" V+ o
0040C7DF  |.  C1FA 1F       sar     edx, 1F' W  y$ W- D3 u/ e$ O; {. M
0040C7E2  |.  2BC2          sub     eax, edx) s* u! |$ _" O" X6 \% V" T
0040C7E4  |.  D1F8          sar     eax, 1
, _' a& b9 B! p0040C7E6  |.  C78424 040100>mov     dword ptr [esp+104], 1
; K/ Z" F: f6 ?: E/ }6 t0040C7F1  |.  89C7          mov     edi, eax: E5 }( g8 B" l* f7 B: d2 ]
0040C7F3  |.^ E9 61FEFFFF   jmp     0040C659- y* P% U% \: }7 E7 Z* z
0040C7F8  |>  31D2          xor     edx, edx
$ T4 e( t$ ~; x0 I. y* r5 \: w0040C7FA  |.  BF 46000000   mov     edi, 46# z+ f+ b( U! h! r: b5 X3 `
0040C7FF  |.  899424 040100>mov     dword ptr [esp+104], edx2 T, C' l# n1 i  e. ]  y
0040C806  |.^ E9 4EFEFFFF   jmp     0040C6594 T) V' Y+ d7 n$ j
0040C80B  |>  80F9 7C       cmp     cl, 7C" N+ u: }9 h) f2 P4 d# g! _' d
0040C80E  |.^ 0F85 E9FEFFFF jnz     0040C6FD
6 z% Y. N( ?1 n1 [0040C814  |.  C602 20       mov     byte ptr [edx], 20
" @7 s: V- N$ O4 M  d5 z0040C817  \.^ E9 E1FEFFFF   jmp     0040C6FD" [; r- v" {9 r0 J" u
- h! H$ k. d$ E2 X: @6 x3 u( t
在scratches.sc和scream.sc里面有lua的脚本,保存有字体文件名。
, k9 a+ y7 E# B* V2 O, W. F估计要汉化就要在上面的代码段下功夫了,以后继续研究。; Q3 X- d! V: {' M% \

% l; u8 K- K4 e* ^找到2个俄文的补丁,也许对以后研究有用。
, x6 c0 t  _9 K- _4 N1 W1 Yhttp://www.megaupload.com/?d=EZH6X6726 |/ D* W' a3 Y) g5 q* ]
http://rapidshare.com/files/94227080/ScratchesDC.7z
作者: shane007    时间: 2010-9-28 07:54
顶上来备用
作者: shane007    时间: 2011-4-11 06:48
顶上来备用1




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