Upgrade libressl. 1/2
[dragonfly.git] / contrib / file / magic / Magdir / games
1
2 #------------------------------------------------------------------------------
3 # $File: games,v 1.20 2020/02/01 16:32:33 christos Exp $
4 # games:  file(1) for games
5
6 # Fabio Bonelli <fabiobonelli@libero.it>
7 # Quake II - III data files
8 0       string  IDP2            Quake II 3D Model file,
9 >20     long    x               %u skin(s),
10 >8      long    x               (%u x
11 >12     long    x               %u),
12 >40     long    x               %u frame(s),
13 >16     long    x               Frame size %u bytes,
14 >24     long    x               %u vertices/frame,
15 >28     long    x               %u texture coordinates,
16 >32     long    x               %u triangles/frame
17
18 0       string  IBSP            Quake
19 >4      long    0x26            II Map file (BSP)
20 >4      long    0x2E            III Map file (BSP)
21
22 0       string  IDS2            Quake II SP2 sprite file
23
24 #---------------------------------------------------------------------------
25 # Doom and Quake
26 # submitted by Nicolas Patrois
27
28 0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
29 # some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
30
31 24      string  LxD\ 203        Linuxdoom save
32 >0      string  x       , name=%s
33 >44     string  x       , world=%s
34
35 # Quake
36
37 # Update: Joerg Jenderek
38 # URL: http://fileformats.archiveteam.org/wiki/PAK
39 # reference: https://quakewiki.org/wiki/.pak
40 # GRR: line below is too general as it matches also Acorn PackDir compressed Archive
41 # and Git pack ./revision
42 0       string  PACK    
43 # real Quake examples like pak0.pak have only some hundreds like 150 files
44 # So test for few files
45 >8      ulelong <0x01000000     
46 # in file version 5.32 test for null terminator is only true for
47 # offset ~< FILE_BYTES_MAX = 1 MB defined in ../../src/file.h 
48 # look for null terminator of 1st entry name
49 >>(4.l+55)      ubyte   0       Quake I or II world or extension
50 !:mime  application/x-dzip
51 !:ext   pak
52 #>>>8   ulelong x       \b, table size %u
53 # dividing this by entry size (64) gives number of files
54 >>>8    ulelong/64 x    \b, %u files
55 # offset to the beginning of the file table
56 >>>4    ulelong x       \b, offset 0x%x
57 # 1st file entry
58 >>>(4.l)        use     pak-entry
59 # 2nd file entry
60 #>>>4   ulelong+64      x       \b, offset 0x%x
61 #>>>(4.l+64)    use     pak-entry
62 #
63 #       display file table entry of Quake PAK archive
64 0       name            pak-entry
65 # normally entry start after header which implies offset 12 or higher
66 >56     ulelong >11     
67 # the offset from the beginning of pak to beginning of this entry file contents
68 >>56    ulelong x       at 0x%x
69 # the size of file for this entry 
70 >>60    ulelong x       %u bytes
71 # 56 byte null-terminated entry name string includes path like maps/e1m1.bsp
72 >>0     string  x       '%-.56s'
73 # inspect entry content by jumping to entry offset
74 >>(56)  indirect x      \b: 
75
76 #0       string  -1\x0a  Quake I demo
77 #>30     string  x        version %.4s
78 #>61     string  x        level %s
79
80 #0       string  5\x0a   Quake I save
81
82 # The levels
83
84 # Quake 1
85
86 0       string  5\x0aIntroduction             Quake I save: start Introduction
87 0       string  5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
88 0       string  5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
89 0       string  5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
90 0       string  5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
91 0       string  5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
92 0       string  5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
93 0       string  5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
94 0       string  5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
95 0       string  5\x0athe_Installation         Quake I save: e2m1 The installation
96 0       string  5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
97 0       string  5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
98 0       string  5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
99 0       string  5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
100 0       string  5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
101 0       string  5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
102 0       string  5\x0aTermination_Central      Quake I save: e3m1 Termination central
103 0       string  5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
104 0       string  5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
105 0       string  5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
106 0       string  5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
107 0       string  5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
108 0       string  5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
109 0       string  5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
110 0       string  5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
111 0       string  5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
112 0       string  5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
113 0       string  5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
114 0       string  5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
115 0       string  5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
116 0       string  5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
117 0       string  5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
118
119 # Quake DeathMatch levels
120
121 0       string  5\x0aPlace_of_Two_Deaths         Quake I save: dm1 Place of two deaths
122 0       string  5\x0aClaustrophobopolis          Quake I save: dm2 Claustrophobopolis
123 0       string  5\x0aThe_Abandoned_Base          Quake I save: dm3 The abandoned base
124 0       string  5\x0aThe_Bad_Place               Quake I save: dm4 The bad place
125 0       string  5\x0aThe_Cistern                 Quake I save: dm5 The cistern
126 0       string  5\x0aThe_Dark_Zone               Quake I save: dm6 The dark zone
127
128 # Scourge of Armagon
129
130 0       string  5\x0aCommand_HQ               Quake I save: start Command HQ
131 0       string  5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
132 0       string  5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
133 0       string  5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
134 0       string  5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
135 0       string  5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
136 0       string  5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
137 0       string  5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
138 0       string  5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
139 0       string  5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
140 0       string  5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
141 0       string  5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
142 0       string  5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
143 0       string  5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
144 0       string  5\x0aLimbo                    Quake I save: hip3m3 Limbo
145 0       string  5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
146 0       string  5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
147 0       string  5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
148
149 # Malice
150
151 0       string  5\x0aThe_Academy      Quake I save: start The academy
152 0       string  5\x0aThe_Lab          Quake I save: d1 The lab
153 0       string  5\x0aArea_33          Quake I save: d1b Area 33
154 0       string  5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
155 0       string  5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
156 0       string  5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
157 0       string  5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
158 0       string  5\x0aArea44           Quake I save: d1c Area 44
159 0       string  5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
160 0       string  5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
161 0       string  5\x0aInto_The_Flood   Quake I save: d4 Into the flood
162 0       string  5\x0aThe_Flood        Quake I save: d5 The flood
163 0       string  5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
164 0       string  5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
165 0       string  5\x0aThe_Foundry              Quake I save: d7b The foundry
166 0       string  5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
167 0       string  5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
168 0       string  5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
169 0       string  5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
170 0       string  5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
171 0       string  5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
172
173 # Malice DeathMatch levels
174
175 0       string  5\x0aThe_Seventh_Precinct        Quake I save: ddm1 The seventh precinct
176 0       string  5\x0aSub_Station                 Quake I save: ddm2 Sub station
177 0       string  5\x0aCrazy_Eights!               Quake I save: ddm3 Crazy eights!
178 0       string  5\x0aEast_Side_Invertationa      Quake I save: ddm4 East side invertationa
179 0       string  5\x0aSlaughterhouse              Quake I save: ddm5 Slaughterhouse
180 0       string  5\x0aDOMINO                      Quake I save: ddm6 Domino
181 0       string  5\x0aSANDRA'S_LADDER             Quake I save: ddm7 Sandra's ladder
182
183
184 0       string  MComprHD        MAME CHD compressed hard disk image,
185 >12     belong  x               version %u
186
187 # doom - submitted by Jon Dowland
188
189 0       string  =IWAD           doom main IWAD data
190 >4      lelong  x               containing %d lumps
191 0       string  =PWAD           doom patch PWAD data
192 >4      lelong  x               containing %d lumps
193
194 # Build engine group files (Duke Nukem, Shadow Warrior, ...)
195 # Extension: .grp
196 # Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
197 0       string  KenSilverman    Build engine group file
198 >12     lelong  x               containing %d files
199
200 # Summary: Warcraft 3 save
201 # Extension: .w3g
202 # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
203 0       string          Warcraft\ III\ recorded\ game   %s
204
205
206 # Summary: Warcraft 3 map
207 # Extension: .w3m
208 # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
209 0       string          HM3W            Warcraft III map file
210
211
212 # Summary: SGF Smart Game Format
213 # Extension: .sgf
214 # Reference: https://www.red-bean.com/sgf/
215 # Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
216 # Modified by (1): Abel Cheung (regex, more game format)
217 # FIXME: Some games don't have GM (game type)
218 0       regex           \\(;.*GM\\[[0-9]{1,2}\\]        Smart Game Format
219 >2      search/0x200/b  GM[
220 >>&0    string          1]      (Go)
221 >>&0    string          2]      (Othello)
222 >>&0    string          3]      (chess)
223 >>&0    string          4]      (Gomoku+Renju)
224 >>&0    string          5]      (Nine Men's Morris)
225 >>&0    string          6]      (Backgammon)
226 >>&0    string          7]      (Chinese chess)
227 >>&0    string          8]      (Shogi)
228 >>&0    string          9]      (Lines of Action)
229 >>&0    string          10]     (Ataxx)
230 >>&0    string          11]     (Hex)
231 >>&0    string          12]     (Jungle)
232 >>&0    string          13]     (Neutron)
233 >>&0    string          14]     (Philosopher's Football)
234 >>&0    string          15]     (Quadrature)
235 >>&0    string          16]     (Trax)
236 >>&0    string          17]     (Tantrix)
237 >>&0    string          18]     (Amazons)
238 >>&0    string          19]     (Octi)
239 >>&0    string          20]     (Gess)
240 >>&0    string          21]     (Twixt)
241 >>&0    string          22]     (Zertz)
242 >>&0    string          23]     (Plateau)
243 >>&0    string          24]     (Yinsh)
244 >>&0    string          25]     (Punct)
245 >>&0    string          26]     (Gobblet)
246 >>&0    string          27]     (hive)
247 >>&0    string          28]     (Exxit)
248 >>&0    string          29]     (Hnefatal)
249 >>&0    string          30]     (Kuba)
250 >>&0    string          31]     (Tripples)
251 >>&0    string          32]     (Chase)
252 >>&0    string          33]     (Tumbling Down)
253 >>&0    string          34]     (Sahara)
254 >>&0    string          35]     (Byte)
255 >>&0    string          36]     (Focus)
256 >>&0    string          37]     (Dvonn)
257 >>&0    string          38]     (Tamsk)
258 >>&0    string          39]     (Gipf)
259 >>&0    string          40]     (Kropki)
260
261 ##############################################
262 # NetImmerse/Gamebryo game engine entries
263
264 # Summary: Gamebryo game engine file
265 # Extension: .nif, .kf
266 # Created by: Abel Cheung <abelcheung@gmail.com>
267 0               string          Gamebryo\ File\ Format,\ Version\       Gamebryo game engine file
268 >&0             regex           [0-9a-z.]+                              \b, version %s
269
270 # Summary: Gamebryo game engine file
271 # Extension: .kfm
272 # Created by: Abel Cheung <abelcheung@gmail.com>
273 0               string          ;Gamebryo\ KFM\ File\ Version\          Gamebryo game engine animation File
274 >&0             regex           [0-9a-z.]+                              \b, version %s
275
276 # Summary: NetImmerse game engine file
277 # Extension .nif
278 # Created by: Abel Cheung <abelcheung@gmail.com>
279 0               string          NetImmerse\ File\ Format,\ Versio
280 >&0             string          n\                                      NetImmerse game engine file
281 >>&0            regex           [0-9a-z.]+                              \b, version %s
282
283 # Type: SGF Smart Game Format
284 # URL:  https://www.red-bean.com/sgf/
285 # From: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
286 2       regex/c \\(;.*GM\\[[0-9]{1,2}\\]        Smart Game Format
287 >2      regex/c GM\\[1\\]                       - Go Game
288 >2      regex/c GM\\[6\\]                       - BackGammon Game
289 >2      regex/c GM\\[11\\]                      - Hex Game
290 >2      regex/c GM\\[18\\]                      - Amazons Game
291 >2      regex/c GM\\[19\\]                      - Octi Game
292 >2      regex/c GM\\[20\\]                      - Gess Game
293 >2      regex/c GM\\[21\\]                      - twix Game
294
295 # Epic Games/Unreal Engine Package
296 #
297 0       lelong          0x9E2A83C1      Unreal Engine Package,
298 >4      leshort         x               version: %i
299 >12     lelong          !0              \b, names: %i
300 >28     lelong          !0              \b, imports: %i
301 >20     lelong          !0              \b, exports: %i
302
303 0       string          ESVG
304 >4      lelong          0x00160000
305 >10     string          TOC\020         Empire Deluxe for DOS saved game
306
307 # Sid Meier's Civilization V/VI
308 # From: Benjamin Lowry <ben@ben.gmbh>
309 0       string  CIV5
310 >4      byte    0x08            Sid Meier's Civilization V saved game,
311 >>12    regex   [0-9a-z.]+      saved by game version %s
312 >4      byte    0x01            Sid Meier's Civilization V replay data,
313 >>12    regex   [0-9a-z.]+      saved by game version %s
314
315 0       string  CIV6            Sid Meier's Civilization VI saved game