GOBREAD是一个通用的游戏解包软件,支持很多游戏。) I0 @' w& d$ x, F5 q/ b
它支持Wintermute引擎制造的游戏所用的DCP格式。( G' ^# S! n0 o
# K5 H! b1 E% _" u0 D0 J失落的王冠就是Wintermute引擎制造的。6 J0 z( D ^) ]3 F4 m! ] H& @
9 p: A: S5 ?) S& e用法以及支持游戏列表
+ v6 G8 x; x; O( L8 K a5 h/ o* w N: [ K" s0 n
Extracts container files from different programs into the current directory.$ Q: @+ G6 E% e& M+ O2 U
/ D5 |- }* e7 `3 g) j6 q
Syntax: GOBREAD [{/|-}option] containerfile [{/|-}option]4 E, n- g5 s: w: Z: J
or GOBREAD {/|-}create{=|:}containerfile {/|-}option" l5 X( x1 u: v9 d+ J
/ M. Q: l: _" l' Y" E
Options, Flags, Meaning:
e3 P) K( u, K" f. T5 P13C A 13th Century - Death or Glory, PAK-files
4 s0 I0 F4 E% {AFIST2 AC Armored Fist 2, RES-files* P/ x7 W5 B* b9 A2 o, h
AMERICA A America, RDA-files+ h+ i; `+ w. X9 G7 q7 @3 f
ASCEND Ascendancy, COB-files: N+ @) z, G m7 }
AVP1 A Aliens versus Predator 1, FFL-files
8 b" h; u) s* S" U {WRS A Baggersimulator, WRS-file5 u4 s8 K+ [3 k* M: h9 P7 p
BLDRAYN A BloodRayne, POD-files
! s. D5 S. U1 m- k1 J5 Q& b4 uC3 AC Comanche 3, RES-files (s. a. AFIST2)$ p9 F' P) }/ C: f
COMBWING A Combat Wings, file 'data'
. g7 |' H" g2 S# P% h8 }$ VCBN Dreamstripper (and others?), CBN-files5 s5 f* u3 ^/ n- S5 W% q2 S* V
CMD Commandos and -Expansion, WARGAME.DIR6 u* }) b4 @! |* W( g! K& R3 l
COSS A Cossacks, GSx-files
" i2 E5 n" z3 [4 RCURSE A Curse: The Eye Of Isis, file GAME.AE
O1 Q [# L! c/ R& c% E$ xDAIK A Daikatana, PAK-files
7 @( O$ A8 m) h& g( l# D) q" kDBTS C Die By The Sword, ATD-files
( K8 j; b. n# nDCP A Wintermute Games, DCP-files
0 B1 q% x0 @8 [DFGOB A Dark Forces, GOB-files6 ^, u1 d0 u" E1 Z( i- L) Q
DIGPUB A Digital Publishing, EXE-files$ s5 J+ ?# a* k. h7 }, @) X2 j
DK2 A Dungeon Keeper 2, WAD-files
, W1 G0 [% b3 g+ dDOA A Dawn Of Aces, TEX/TRN-files
6 A- X, z& d+ p3 L7 V% o, g! uDOMINION A Dominion, RDF-file7 ~$ I. J( g& A
DSA1 A Das schwarze Auge, ALF-files
, A' I4 l& i! ]* l8 d5 mDSA4 A Das schwarze Auge: Drakensang, NPK-files: B! P' H6 j- _2 r- R9 o- ? ?8 t
FFEAST Flesh Feast, MUF-files
" e5 n/ A U$ B O- \! Z/ GFS Gene Troopers/Chaser,FS-files (decompression not error-free); q4 e; N8 A2 u! e N: `! c
GIANTS A Giants, GZP-files* X s8 p4 \" a3 Q5 t$ P7 S
GRP AC GRP-files (Blood,DukeNukem3D,RedneckRampage...)( H Y3 V4 K. z
GUT A GUT-files (Soldier, ShadowCompany...)8 ^1 f9 z$ B) i( e
H2AGG Heroes of Might and Magic 2, AGG-file, m+ E& b, p% H5 F7 o4 N) {
H3SND Heroes of Might and Magic 3, SND-files W7 P" u3 A0 M2 x% D
H3VID Heroes of Might and Magic 3, VID-files( X: o, H* F- ~" V$ b* M8 [7 n) ]
HF Hellforces, RES-files
% ^5 a2 V9 l( c) aHW A Hostile Waters, MNG-files* ]; W" P9 L! a7 q& ]$ p2 ^
IDPAK A ID-Software, PAK-files (Quake,Kingpin,HalfLife...)* A5 T3 n/ V* n/ ]9 Z9 j+ G( r$ h
JERICHO A Jericho, .packed-files4 X; a' X, q, ]" i* m0 K0 w
KREED A Kreed, PAK-files4 N7 F- y6 |+ B- h! i
LB2 A Apache Longbow 2, TRE-files
0 t2 b+ Z8 w0 }, q: j' XLFD A Lucas-Arts-Programs, LFD-files (DarkForces,TieFighter...), u$ M: s6 n _; K, U- P: |
LHOG Legend: Hand of God, PAK(+DAT)-files) r6 w: e4 F" G; r3 k* T- A
MIX A Command & Conquer Renegade, MIX-files" S3 R8 e+ O+ C. K/ b- U* R) Y
MESSIAH Messiah, DTA-files (IDX-file must also exist in source location)
: M. K* y; A) O( y; j" dMORTYR AC Mortyr, file MAIN.HAL3 M U! `. B5 H3 e. r# Y
MOTORACE Moto Racer, BKF-files
& ?( h$ L" c$ {' l6 k' a9 [MONORES A Monolith Productions, RES-files (Blood2, Rage of Mages...)# F4 L. d! y, {" b
NAM67 Shellshock NAM67, ASSETS??.DAT-files" e) W' A7 S |; T0 G# A
NASCAR2 Nascar Racing 2, DAT-files
7 W* K* z/ U% l9 L' A6 l( HOUTLAWS A Outlaws, LAB-files7 i2 c4 a O+ e& Y7 J
OUTWARS Outwars, FF-files3 c- M+ z% }2 Q1 M0 y1 v
PACSTORM A Pacific Storm, SMA-files" E" y% p6 S) t3 w+ l) I% J2 u* I
PATR2 A Patrizier 2, CPR-files; R2 }/ d& x$ ^% j: X
PEA A Panzer Elite Action, X-files L# q" A$ a+ R8 @6 Y. j4 [
PFF A NovaLogic, PFF-files (DeltaForce, F16...)) |1 d E8 \" U1 ^$ y2 }- J! p
POSTAL A Postal, SAK-files (not complete); P# f- Q) F4 |" n, v
PRIV Privateer 1, TRE-files
9 u9 M" P# I+ DPOD Terminal Velocity, POD-files
) i7 A5 I: d( m6 f+ Z E' K; IOFP Operation Flashpoint, PBO-files$ \6 R$ r$ w6 t% {
RAMP Rampage, BSA-file
' A2 [; E5 \# L* fREDFACT A Red Faction, VPP-files% H. u" ~$ d l, s" E
SC2K Sim City 2000, SC2000.DAT6 e" }$ D E7 a* q4 u! G; B; E+ [
SS2 A Secret Service 2, CHR-/SS-files
( Q! j( b; d8 H5 tSSG A Space Siege, SS???-files
0 [" c" P- O. u/ F' X! @ V0 E; LSIN A SIN 1, PAK-files2 j+ q+ T8 u1 A/ k* o1 Q
SLAK A Starship Troopers, SLAK-files( F, v5 B2 ]* [. N" d* H4 h* P
SYSSHOCK A SystemShock 1, RES-files2 P# t I/ V1 K) `+ L l6 g1 D
STOLEN Stolen, BCB-files8 l: w/ u7 Z6 y, _
TOMB3 C Tomb Raider 3, CDAUDIO.WAD
3 b l, w) n3 J( A9 PTUROK2 Turok 2, 11K/11C-files
* Y4 U3 E/ t3 I5 E! W7 {6 IWARCR2 AC Warcraft II (incl. expansion-CD)) t5 _" G! @9 N; w; Y4 U) y+ u2 a; O
PKR A XMEN2-Wolverine/Spiderman/PRO-BMX, PKR-files (BZIP2+WAVPACK reqd.)% Q6 W+ R5 ?$ @# z) _* r7 h# m
WW2F A World War 2 Fighters, SQ?-files
( G" |8 q6 c2 x# n2 c
' T$ F* f, o, O; ~: RCREATE Create container file (not fully supported)
# Q% S! @: C+ q# b3 J; [ m, Q% n& E' s' D
4 @8 C) ?" N& x+ i) }3 bFlags (informational only):, f+ N3 ]) f: _+ H
A Automatic format detection; if not shown, the format option MUST be given
% a4 {4 l+ \* a0 p4 j6 k9 A o+ m C Creation of container file possible
9 Y* e8 T: m* v8 A3 Y( x- r
+ @2 Q+ |% S$ N1 `. GOption and filename can be given in any order.
- x2 v) b# H# n$ x4 F
. _0 |0 G: a; c7 j7 aExamples:
/ Z' C$ e ]/ s4 i$ ^0 O- x& p GOBREAD DATA.PAK = Extracts all files from DATA.PAK
* W- A5 L4 n$ T& i* v if the format can be detected% t9 z3 A$ U: U$ B; V" j
GOBREAD DARK.COB -DF = Extracts all files from DARK.COB
7 }& ]0 q% Z( t2 t6 N forcing format "Dark Forces"
& N; Z' f7 R/ `; v j GOBREAD /cbn file.cbn = Same as above, but other file format3 v* l& e& Z4 V
GOBREAD -CREATE=REDNECK.GRP /GRP = Creates "REDNECK.GRP"
! f+ S1 E% s- D# H% W5 z3 j from all files in current directory$ l, ]/ F0 A) _7 t
of type "GRP-Files"& R" {* ~/ C, _) a+ ~% O7 T( d& `: B
0 e) ^6 V3 ?( [; b9 \This program is freeware. Use it at your own risk. Only for private use.) E |6 P! S5 F! b4 r/ _1 o
+ T3 G+ y5 g( R& d
-------------------------------------------3 l) j, n: C* P7 P$ ~
DCP文件结构(做打包处理时可参考)
; ?1 u& [/ F" k1 n3 k8 Q------------------------------------------
r% O* O- n \0 Q- K1 l# C4 M+ |) s4 z) ^# _% ^9 H3 }
Added extraction support for "Wintermute Engine"-games, DCP-files (by request)
5 Z/ C1 Z; \7 g# P: ]1 [; ?$ [This format uses XOR-encryption to hide the file names.7 A, t d' r- k8 U+ ^0 e! P
Notes:) S9 y. r G8 x5 w' t$ o
It was slightly difficult to find out what the XOR-encryption value for the file names is by "scanning" the EXE. After I found it the remains were an easy task.
# G5 k# n( H+ I1 O* ]' `! AThe file has a known <name-size-offset> structure.9 A. x# d' c! F9 E
+ R0 C& n0 S$ x6 [' J
Format description:8 x0 ~3 t4 G }3 {1 @4 k% }$ v% I! |
0 r! T. g) d& d0 Z3 W- b7 H: \5 m& E) }: h7 W: B/ K
Code:
1 }$ L5 M, e/ ?/ SDE AD C0 DE "JUNK" ;Magic ("DEAD CODE:JUNK")
5 x9 C2 F( t$ W* H+ }0 X) [00 02 00 00 ;Version, if < 200h, then no XOR-filename-encryption is used
@2 h( d H! j- e8 i* \1 x;here some useless commentaries up to offset 7fh
2 A! q& S, u4 w7 v* Y
3 x+ _2 N" ~4 s' w' z- O! q; E+ |Offset 80h:
4 |8 r, F( }) _; S! tDWORD ;Offset file table
, i. m' B0 ^, z- F$ `' q0 r9 o* U! z3 E9 H& o
<Offset file table>:% X, L, z8 d$ h! v+ J; O
BYTE length(descr) ;Length of (useless) DCP-file description string1 R9 A* o' |$ p2 G4 e1 w3 [
BYTEs descr ;String, variable length of length(descr) incl. 0
! t8 |( U: s% z1 a/ F4 H) bBYTE 0 ;terminator! u, [2 A( x" n6 v
% v/ H. X8 `3 L7 C
DWORD ;Number of files
+ _. ~% z) w* u9 g$ x) x4 L: Z
* m+ R1 P2 \* Q" L5 J; ]File table entries:
# a% d b. p0 \6 X, t& h8 }
' O6 b! W% }+ cBYTE ;Length file name
# h3 l% l3 f. t: y2 X C3 w1 w& MBYTEs ? ;File name; XOR-encrypted if version=200h; XOR-Value=44h6 {2 R+ w' @+ N* s; y
DWORD ;Offset file. M+ Q- c1 _3 a4 Z: i4 k! @
DWORD ;Uncompressed data length* a2 D, m( o# Z
DWORD ;Comressed data length (0, if uncompressed); compression=ZLIB
* N( Y' t' X" X' WDWORD 0- R* j/ u. N8 l0 {
DWORD CRC(?) ;Only present if version =200h
. s/ g7 L9 f5 PDWORD 0 ;Only present if version =200h |