冒险解谜游戏中文网 ChinaAVG
标题:
Shockwave Director dcr/dir/dxr/cst dumper
[打印本页]
作者:
shane007
时间:
2011-4-29 06:39
标题:
Shockwave Director dcr/dir/dxr/cst dumper
本帖最后由 shane007 于 2011-4-29 06:41 编辑
: [( ]8 j- a5 W
1 v; `9 n6 `' n5 V7 y6 ^, v
勤快的老外又放出了这个好东西,配合quickbms使用。
8 L9 Y" I _$ W' |0 W1 L9 K
好多小游戏都是用Shockwave Director做的,包括神秘视线。
: |; a* M7 u. R: k$ G
如果能做出打包器的话,就又能解决好多游戏的汉化了。
# Shockwave Director dcr/dir/dxr/cst dumper
$ ]/ g- q# j; ~
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
/ v# Q s6 R e
% F" v8 B% @+ G; n( i5 \0 T) f9 r% F
quickbmsver 0.4.11
) N [/ i+ [$ o. s) _" A* A
getdstring RIFX_SIGN 4
+ g- t2 L4 Q! Y4 `5 M. \/ V
if RIFX_SIGN == "RIFX"
! ]* K* ^$ a6 V* _2 ^
endian big
" h' j/ B8 R& _' O
elif RIFX_SIGN == "XFIR"
/ E% m- B0 i7 I: x1 V
endian little
7 Z5 R* X& Q1 q5 I
else
8 m" Q7 P0 h6 P& w& T, _4 n
cleanexit
$ d% N$ X9 q4 j. }
endif
! g1 G$ [% @$ B. Q! k" P
get SIZE long
4 X" R6 W7 y, H* j9 D. v' e. L
get SIGN long
4 z0 H. \9 D$ t9 r3 p Y
if SIGN == 0x4647444d
- q4 Z0 m; x) h9 u
get NAME fullname
* h) _ n. g6 z m$ a
get FOLDER current_folder
" Q: L, ^ k8 m' s: O, w# A
print "\nyou must use offzip with this file:\nhttp://aluigi.org/mytoolz.htm#offzip\n\n offzip -a \"%NAME%\" \"%FOLDER%\" 0"
# j1 t( o( o3 N+ N
cleanexit
7 F6 R2 I- o3 C4 h- m
endif
. Y; S4 q$ j' h" L' }* ~+ c# ]6 c
* {7 f1 x: V4 F0 f8 e3 d: s& L
set FIRST = 1
& f: @6 u& p) N2 a! K
for i = 0
8 `7 a! g: ]3 H
savepos CURR_OFFSET
; E- ?3 R, {1 K% e! ^
getdstring SIGN 4
, v' O. i5 ? c8 K- X3 o+ k
if RIFX_SIGN != "RIFX"
% B, F' q0 }4 l" ?: A I4 f4 M/ X2 j
string SIGN r= SIGN
: g: }8 m$ D F
endif
( Z0 D n+ H4 m
- ~ L: b$ ^6 d0 j
math SKIP_SIZE = 0x10
# P3 X$ [# T; | ]
if SIGN == ""
0 F, j$ j7 @) \$ @4 {) J( X& ?. b4 `3 E
cleanexit
}) f$ U7 x5 Q
elif SIGN == "RIFX"
1 f7 U( s: ]; y& k% n) F8 s6 a
elif SIGN == "imap"
6 e. g5 R6 W3 {& r$ a3 E
if FIRST != 0
2 z; t9 u+ R% C% R9 k, N1 J8 L+ `+ o
get DUMMY long
" N# G& A2 S+ u% O
get DUMMY long
! l0 a- w' d3 H9 A3 V0 G
get OFFSET long
; |: o3 H4 G u3 q( Q: G: K
if OFFSET > CURR_OFFSET
3 K: W& D! m1 `: l: Z: N$ @4 }( Q2 b
goto OFFSET
# K' L. R) j5 N/ |: s
math SKIP_SIZE = 0
8 e$ |" L ^( [' }! ?. O8 g0 g0 E* h1 q
endif
* _- A/ z/ S7 c- c* g( D) N% p8 H" m
endif
! D4 o3 I: c4 f4 w8 y
elif SIGN == "mmap"
. r# [& I1 m# r
if FIRST != 0
4 b9 v1 D9 n! i( n; V: j
math SKIP_SIZE = 0x1c
7 o7 t( A! X8 H+ h8 L0 y
set FIRST = 0
- g* T% X( |$ Z& r, P/ \
endif
! [0 T- o" u2 b
# filters start here
4 R/ h% M" \8 r5 F
elif SIGN == "VERS"
; T( z0 \7 X* _4 u- S
elif SIGN == "CASt"
( E+ i f2 _! u/ r2 G
elif SIGN == "CAS*"
+ w6 Q0 F* G) H" q, _* y$ B, x3 \
elif SIGN == "Lctx"
' \: @0 {8 y# v8 w* b$ l
elif SIGN == "LctX"
& Y) f2 I- H$ @ I
elif SIGN == "Lnam"
- o) G, {2 o: ]5 V# G) R! d/ _$ Z# g
elif SIGN == "Lscr"
! s; O8 [* @5 K3 @* a
elif SIGN == "Cinf"
5 a4 H0 U1 B# z7 \1 [
elif SIGN == "GRID"
1 L/ r3 q: J/ }0 d* D
elif SIGN == "FCOL"
- M% O4 P# T; J( V" c
elif SIGN == "MCsL"
6 m, w1 }5 ?0 n' P; v- _9 L4 j
elif SIGN == "DRCF"
8 s8 y( Q; V- c% m5 O
#elif SIGN == "BITD" # 16bit images
/ k: {' E: R6 j# N7 ~! K
#elif SIGN == "ALFA" # alpha channel
' T8 [7 Z6 t/ D% ^) b5 q
#elif SIGN == "sndS" # 16bit audio
/ Q& H; T( C3 b9 W/ n7 Z
elif SIGN == "sndH"
2 m& N+ C) K! B1 V& U3 b
elif SIGN == "Sord"
' u. k; U Y3 j B
elif SIGN == "free"
; D- L& @$ m6 J8 a5 E6 y% c) Q
elif SIGN == "junk"
7 D/ P; F5 ?$ o6 T; b9 K! w
elif SIGN == "Thum"
3 t( t+ L$ S5 f K; n6 A
elif SIGN == "KEY*"
Q, R7 ~; u, v3 E
elif SIGN == "FXmp"
1 i' I' O' q; k$ |) U
elif SIGN == "Fmap"
' X. A! Q. O( G- T
elif SIGN == "PUBL"
6 {2 ?# ]6 s8 X
elif SIGN == "SCRF"
9 n- ?: u. K+ n7 R: m" z
elif SIGN == "VWFI"
* D+ O& z$ u, F
elif SIGN == "VWSC"
0 B( o$ w* W7 j0 Z2 ]# s X: f2 U
elif SIGN == "VWLB"
# x3 J" L1 [2 }: J* O
elif SIGN == "VWTL"
7 Z5 t" m; o4 Y. ~ p
elif SIGN == "XTRl"
6 g! E# d5 T( e" ]3 w
elif SIGN == "ccl "
Z% E$ _+ y5 S* u2 B i
elif SIGN == "SCVW"
6 z2 k2 \- E( x4 `
elif SIGN == "Lval"
% }( z8 p/ O8 r% x7 e3 ]
elif SIGN == "cupt"
. D! K- O, Q7 R* ^! \& q
elif SIGN == "CLUT"
9 w/ k: \& } w
# filters end here
0 S& a2 n$ [1 x8 Q$ u5 ~. x; [1 r4 j
else
7 r; ?- |9 S1 j9 G
# skip the above ones and dump the others
& W( ~. o3 W1 B3 [( J
math SKIP_SIZE = -1
3 X. m: f: C' ?; x0 ^3 v
endif
) x: I) u0 `/ x
/ G# y/ s: f. h* y/ ^( i
if SKIP_SIZE < 0
* y5 K) V% H8 G5 ]4 S
get SIZE long
, B; K. B; \& R( M
get OFFSET long
+ |( D& E, Q6 A' Z/ w
if SIZE > 8
/ u& J! v4 _" `# V1 Q- Z7 h
math OFFSET += 8
# q6 ~$ i- l) @4 U5 Q( A/ P
math SIZE -= 8
8 u- ~& n5 V7 x% T3 Y
set NAME string ""
; G! W' \# R( U) N! [
if SIGN == "XMED"
( l/ a" R8 Z: m3 h8 a1 q* W
elif SIGN == "ediM"
+ D- c. U, o& T
else
0 d {+ g8 Y H- c1 w
set NAME string SIGN
k* j" U- `7 p* M& p4 Q& }8 m7 D
string NAME += /
V8 P" {/ H5 ]% I8 S
string NAME += i
' N2 R; _7 R; s4 [6 E% V' g
string NAME += ".dat"
. L ^- Y4 Z( I2 U' F8 Z
endif
2 H; C3 i$ _) ~9 w( F, N) P
log NAME OFFSET SIZE
% i2 p- |3 f b! u) j- y
endif
. h! ^) m: P, i- `% j; Q/ d
get DUMMY long
: I* a) |% N7 W6 K E7 W- W& x
get DUMMY long
% Z. F, E3 ]0 R8 t* u( Y
else
$ x! y& j Q; z" D6 S! S- [
getdstring DUMMY SKIP_SIZE
# d) n& C0 Y ~6 R4 E8 u
endif
1 U L, i5 k9 I) w% ~" v e
next i
( r3 e6 [8 M, x6 o/ A
复制代码
[attach]21042[/attach]
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2