xref: /freebsd/contrib/file/magic/Magdir/games (revision abcdc1b9)
1
2#------------------------------------------------------------------------------
3# $File: games,v 1.31 2023/03/29 22:57:27 christos Exp $
4# games:  file(1) for games
5
6# Fabio Bonelli <fabiobonelli@libero.it>
7# Quake II - III data files
80       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
180       string  IBSP            Quake
19>4      long    0x26            II Map file (BSP)
20>4      long    0x2E      	III Map file (BSP)
21
220       string  IDS2            Quake II SP2 sprite file
23
24#---------------------------------------------------------------------------
25# Doom and Quake
26# submitted by Nicolas Patrois
27
280       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
3124      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
420       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 %#x
57# 1st file entry
58>>>(4.l)	use	pak-entry
59# 2nd file entry
60#>>>4	ulelong+64	x	\b, offset %#x
61#>>>(4.l+64)	use	pak-entry
62#
63#	display file table entry of Quake PAK archive
640	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 %#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
860	string	5\x0aIntroduction             Quake I save: start Introduction
870	string	5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
880	string	5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
890	string	5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
900	string	5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
910	string	5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
920	string	5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
930	string	5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
940	string	5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
950	string	5\x0athe_Installation         Quake I save: e2m1 The installation
960	string	5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
970	string	5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
980	string	5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
990	string	5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
1000	string	5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
1010	string	5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
1020	string	5\x0aTermination_Central      Quake I save: e3m1 Termination central
1030	string	5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
1040	string	5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
1050	string	5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
1060	string	5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
1070	string	5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
1080	string	5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
1090	string	5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
1100	string	5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
1110	string	5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
1120	string	5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
1130	string	5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
1140	string	5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
1150	string	5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
1160	string	5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
1170	string	5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
118
119# Quake DeathMatch levels
120
1210	string	5\x0aPlace_of_Two_Deaths	 Quake I save: dm1 Place of two deaths
1220	string	5\x0aClaustrophobopolis		 Quake I save: dm2 Claustrophobopolis
1230	string	5\x0aThe_Abandoned_Base		 Quake I save: dm3 The abandoned base
1240	string	5\x0aThe_Bad_Place		 Quake I save: dm4 The bad place
1250	string	5\x0aThe_Cistern		 Quake I save: dm5 The cistern
1260	string	5\x0aThe_Dark_Zone		 Quake I save: dm6 The dark zone
127
128# Scourge of Armagon
129
1300	string	5\x0aCommand_HQ               Quake I save: start Command HQ
1310	string	5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
1320	string	5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
1330	string	5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
1340	string	5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
1350	string	5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
1360	string	5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
1370	string	5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
1380	string	5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
1390	string	5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
1400	string	5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
1410	string	5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
1420	string	5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
1430	string	5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
1440	string	5\x0aLimbo                    Quake I save: hip3m3 Limbo
1450	string	5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
1460	string	5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
1470	string	5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
148
149# Malice
150
1510	string	5\x0aThe_Academy      Quake I save: start The academy
1520	string	5\x0aThe_Lab          Quake I save: d1 The lab
1530	string	5\x0aArea_33          Quake I save: d1b Area 33
1540	string	5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
1550	string	5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
1560	string	5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
1570	string	5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
1580	string	5\x0aArea44           Quake I save: d1c Area 44
1590	string	5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
1600	string	5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
1610	string	5\x0aInto_The_Flood   Quake I save: d4 Into the flood
1620	string	5\x0aThe_Flood        Quake I save: d5 The flood
1630	string	5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
1640	string	5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
1650	string	5\x0aThe_Foundry              Quake I save: d7b The foundry
1660	string	5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
1670	string	5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
1680	string	5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
1690	string	5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
1700	string	5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
1710	string	5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
172
173# Malice DeathMatch levels
174
1750	string	5\x0aThe_Seventh_Precinct	 Quake I save: ddm1 The seventh precinct
1760	string	5\x0aSub_Station		 Quake I save: ddm2 Sub station
1770	string	5\x0aCrazy_Eights!		 Quake I save: ddm3 Crazy eights!
1780	string	5\x0aEast_Side_Invertationa	 Quake I save: ddm4 East side invertationa
1790	string	5\x0aSlaughterhouse		 Quake I save: ddm5 Slaughterhouse
1800	string	5\x0aDOMINO			 Quake I save: ddm6 Domino
1810	string	5\x0aSANDRA'S_LADDER		 Quake I save: ddm7 Sandra's ladder
182
183
1840	string	MComprHD	MAME CHD compressed hard disk image,
185>12	belong	x		version %u
186
187# MAME input recordings
188
1890	string	MAMEINP\0		MAME input recording
190>8	leqdate	x			at %s,
191>16	leshort	x			format version %d.
192>18	leshort	x			\b%d,
193>20	string	x			%s driver,
194>32	string	x			%s
195
196# doom - submitted by Jon Dowland
197
1980	string	=IWAD		doom main IWAD data
199>4	lelong	x		containing %d lumps
2000	string	=PWAD		doom patch PWAD data
201>4	lelong	x		containing %d lumps
202
203# Build engine group files (Duke Nukem, Shadow Warrior, ...)
204# Extension: .grp
205# Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
2060	string	KenSilverman	Build engine group file
207>12	lelong	x		containing %d files
208
209# Summary: Warcraft 3 save
210# Extension: .w3g
211# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
2120	string		Warcraft\ III\ recorded\ game	%s
213
214
215# Summary: Warcraft 3 map
216# Extension: .w3m
217# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
2180	string		HM3W		Warcraft III map file
219
220
221# Summary: SGF Smart Game Format
222# Extension: .sgf
223# Reference: https://www.red-bean.com/sgf/
224# Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
225# Modified by (1): Abel Cheung (regex, more game format)
226# FIXME: Some games don't have GM (game type)
2270	regex		\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
228>2	search/0x200/b	GM[
229>>&0	string		1]	(Go)
230>>&0	string		2]	(Othello)
231>>&0	string		3]	(chess)
232>>&0	string		4]	(Gomoku+Renju)
233>>&0	string		5]	(Nine Men's Morris)
234>>&0	string		6]	(Backgammon)
235>>&0	string		7]	(Chinese chess)
236>>&0	string		8]	(Shogi)
237>>&0	string		9]	(Lines of Action)
238>>&0	string		10]	(Ataxx)
239>>&0	string		11]	(Hex)
240>>&0	string		12]	(Jungle)
241>>&0	string		13]	(Neutron)
242>>&0	string		14]	(Philosopher's Football)
243>>&0	string		15]	(Quadrature)
244>>&0	string		16]	(Trax)
245>>&0	string		17]	(Tantrix)
246>>&0	string		18]	(Amazons)
247>>&0	string		19]	(Octi)
248>>&0	string		20]	(Gess)
249>>&0	string		21]	(Twixt)
250>>&0	string		22]	(Zertz)
251>>&0	string		23]	(Plateau)
252>>&0	string		24]	(Yinsh)
253>>&0	string		25]	(Punct)
254>>&0	string		26]	(Gobblet)
255>>&0	string		27]	(hive)
256>>&0	string		28]	(Exxit)
257>>&0	string		29]	(Hnefatal)
258>>&0	string		30]	(Kuba)
259>>&0	string		31]	(Tripples)
260>>&0	string		32]	(Chase)
261>>&0	string		33]	(Tumbling Down)
262>>&0	string		34]	(Sahara)
263>>&0	string		35]	(Byte)
264>>&0	string		36]	(Focus)
265>>&0	string		37]	(Dvonn)
266>>&0	string		38]	(Tamsk)
267>>&0	string		39]	(Gipf)
268>>&0	string		40]	(Kropki)
269
270##############################################
271# NetImmerse/Gamebryo game engine entries
272
273# Summary: Gamebryo game engine file
274# Extension: .nif, .kf
275# Created by: Abel Cheung <abelcheung@gmail.com>
2760		string		Gamebryo\ File\ Format,\ Version\ 	Gamebryo game engine file
277>&0		regex		[0-9a-z.]+				\b, version %s
278
279# Summary: Gamebryo game engine file
280# Extension: .kfm
281# Created by: Abel Cheung <abelcheung@gmail.com>
2820		string		;Gamebryo\ KFM\ File\ Version\ 		Gamebryo game engine animation File
283>&0		regex		[0-9a-z.]+				\b, version %s
284
285# Summary: NetImmerse game engine file
286# Extension .nif
287# Created by: Abel Cheung <abelcheung@gmail.com>
2880		string		NetImmerse\ File\ Format,\ Version
289>&0		string		n\ 					NetImmerse game engine file
290>>&0		regex		[0-9a-z.]+				\b, version %s
291
292# Type:	SGF Smart Game Format
293# URL:	https://www.red-bean.com/sgf/
294# From:	Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
2952	regex/c	\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
296>2	regex/c	GM\\[1\\]			- Go Game
297>2	regex/c	GM\\[6\\]			- BackGammon Game
298>2	regex/c	GM\\[11\\]			- Hex Game
299>2	regex/c	GM\\[18\\]			- Amazons Game
300>2	regex/c	GM\\[19\\]			- Octi Game
301>2	regex/c	GM\\[20\\]			- Gess Game
302>2	regex/c	GM\\[21\\]			- twix Game
303
304# Epic Games/Unreal Engine Package
305# URL: https://docs.unrealengine.com/udk/Three/ContentCooking.html
306#      https://eliotvu.com/page/unreal-package-file-format
307# Little-endian version (such as x86 PC)
3080		lelong		0x9E2A83C1	Unreal Engine package (little-endian)
309!:ext		xxx/tfc/upk/me1/u
310>4		uleshort	!0		\b, version %u
311>>6		uleshort	!0		\b/%03u
312>>0		use		upk_header
313# Big-endian version (such as PS3)
3140		belong		0x9E2A83C1	Unreal Engine package (big-endian)
315!:ext		xxx/tfc
316>6		ubeshort	!0		\b, version %u
317>>4		ubeshort	!0		\b/%03u
318>>0		use		\^upk_header
319
3200		name		upk_header
321# Identify game from version and licensee
322>4		ulelong		0x000002b2	(Alice Madness Returns)
323>4		ulelong		0x002f0313	(Aliens: Colonial Marines)
324>4		ulelong		0x005b021b	(Alpha Protocol)
325>4		ulelong		0x0000032c	(AntiChamber)
326>4		ulelong		0x00200223	(APB: All Points Bulletin)
327>4		ulelong		0x004b02d7	(Bioshock Infinite)
328>4		ulelong		0x00380340	(Borderlands 2)
329>4		ulelong		0x001d02e6	(Bulletstorm)
330>4		ulelong		0x00050240	(CrimeCraft)
331>4		ulelong		0x00000356	(Deadlight)
332>4		ulelong		0x001e0321	(Dishonored)
333>4		ulelong		0x000202a6	(Dungeon Defenders)
334>4		ulelong		0x000901ea	(Gears of War)
335>4		ulelong		0x0000023f	(Gears of War 2)
336>4		ulelong		0x0000033c	(Gears of War 3)
337>4		ulelong		0x0000034e	(Gears of War: Judgement)
338>4		ulelong		0x0004035c	(Hawken)
339>4		ulelong		0x0001034a	(Infinity Blade 2)
340>4		ulelong		0x00000350	(InMomentum)
341>4		ulelong		0x0015037D	(Life Is Strange)
342>4		ulelong		0x000b01a5	(Medal of Honor: Airborne)
343>4		ulelong		0x002b0218	(Mirrors Edge)
344>4		ulelong		0x0000027e	(Monday Night Combat)
345>4		ulelong		0x0000024b	(MoonBase Alpha)
346>4		ulelong		0x002e01d8	(Mortal Kombat Komplete Edition 2605)
347>4		ulelong		0x0000035c	(Painkiller HD)
348>4		ulelong		0x0000034d	(Q.U.B.E)
349>4		ulelong		0x80660340	(Quantum Conundrum)
350>4		ulelong		0x0000035b	(Ravaged)
351>4		ulelong		0x00150340	(Remember Me)
352>4		ulelong		0x00060171	(Roboblitz)
353>4		ulelong		0x00000325	(Rock of Ages)
354>4		ulelong		0x0000032a	(Sanctum)
355>4		ulelong		0x00030248	(Saw)
356>4		ulelong		0x007e0248	(Singularity)
357>4		ulelong		0x00090388	(Soldier Front 2)
358>4		ulelong		0x000701e6	(Stargate Worlds)
359>4		ulelong		0x00000334	(Super Monday Night Combat)
360>4		ulelong		0x000002c2	(The Ball)
361>4		ulelong		0x000e0262	(The Exiled Realm of Arborea or TERA)
362>4		ulelong		0x0000035b	(The Five Cores)
363>4		ulelong		0x00000349	(The Haunted: Hells Reach)
364>4		ulelong		0x00000354	(Unmechanical)
365>4		ulelong		0x035c0298	(Unreal Development Kit)
366>4		ulelong		0x00000200	(Unreal Tournament 3)
367>4		ulelong		0x0000032d	(Waves)
368>4		ulelong		0x003b034d	(XCOM: Enemy Unknown)
369# Newer versions insert more headers
370>4		ulelong&0xFFFF	<249
371>>12		lelong		!0		\b, names: %d
372>>28		lelong		!0		\b, imports: %d
373>>20		lelong		!0		\b, exports: %d
374>4		ulelong&0xFFFF	>248
375>>12		belong&0xFF	!0
376>>>12		string		x		\b, folder "%s"
377>>>>&5		lelong		!0		\b, names: %d
378>>>>&21		lelong		!0		\b, imports: %d
379>>>>&13		lelong		!0		\b, exports: %d
380>>12		belong&0xFF	0
381>>>16		belong&0xFF	!0
382>>>>16		string		x		\b, folder "%s"
383>>>>>&5		lelong		!0		\b, names: %d
384>>>>>&21	lelong		!0		\b, imports: %d
385>>>>>&13	lelong		!0		\b, exports: %d
386>>>16		belong&0xFF	0
387>>>>20		string		x		\b, folder "%s"
388>>>>>&5		lelong		!0		\b, names: %d
389>>>>>&21	lelong		!0		\b, imports: %d
390>>>>>&13	lelong		!0		\b, exports: %d
391
3920	string		ESVG
393>4	lelong		0x00160000
394>10	string		TOC\020		Empire Deluxe for DOS saved game
395
396# Sid Meier's Civilization V/VI
397# From: Benjamin Lowry <ben@ben.gmbh>
3980	string	CIV5
399>4	byte	0x08		Sid Meier's Civilization V saved game,
400>>12	regex	[0-9a-z.]+	saved by game version %s
401>4	byte	0x01		Sid Meier's Civilization V replay data,
402>>12	regex	[0-9a-z.]+	saved by game version %s
403
4040	string	CIV6		Sid Meier's Civilization VI saved game
405
406# https://syzygy-tables.info/
407# From Michel Van den Bergh
4080	string	\327f\f\245	Syzygy DTZ tablebase
409!:mime	application/syzygy
4100	string	q\350#]		Syzygy WDL tablebase
411!:mime	application/syzygy
412
413##############################################################################
414# Grand Theft Auto (GTA) file formats.
415#
416# Summary:
417# Includes GTA-specific formats used in all games from 1997 to present. Games
418# and formats were created by Rockstar North, formerly DMA Design. Magic tests
419# were written based on a combination of official and community documentation.
420#
421# Created by: Oliver Galvin <odg@riseup.net>
422#
423# References:
424# * Classic GTA documentation and research:
425#    <https://gitlab.com/classic-gta/gta-data>
426# * Official RenderWare documentation available from EA:
427#    <https://github.com/electronicarts/RenderWare3Docs>
428# * Lots of community research in the GTAMods wiki:
429#    <https://gtamods.com/wiki>
430
431# GTA 2D-Era data - 'Classic' top down games (1/L/2)
432
433## GTA text
434
4350	string	\xbf\xf8\xbd\x49\x62\xbe	GTA1 in-game text (FXT),
4360	string	GBL	GTA2 in-game text (GXT),
437>3	string  	E	English,
438>>4	uleshort	x	version %d
439>3	string  	F	French,
440>>4	uleshort	x	version %d
441>3	string  	G	German,
442>>4	uleshort	x	version %d
443>3	string  	I	Italian,
444>>4	uleshort	x	version %d
445>3	string  	S	Spanish,
446>>4	uleshort	x	version %d
447>3	string  	J	Japanese,
448>>4	uleshort	x	version %d
449
450## GTA maps
451
4520	ulelong 	331	GTA1 map layout (CMP),
453>4	byte    	1	Level 1
454>4	byte    	2	Level 2
455>4	byte    	3	Level 3
4560	string  	GBMP	GTA2/GBH map layout (GMP),
457>4	uleshort	x	version %d
4580	string/t	[MapFiles]	GTA2 multiplayer map metadata (MMP)
4590	string/t	MainOrBonus\ =\ MAIN	GTA2 single player map listing (test1.seq)
460
461## GTA 2D sprites and textures
462
4630	ulelong 	290	GTA1 style data (GRX), 8 bit editor graphics
4640	ulelong 	325	GTA1 style data (GRY), 8 bit in-game graphics
4650	ulelong 	336	GTA1 style data (G24), 24 bit in-game graphics
4660	string  	GBST	GTA2/GBH style data (STY), in-game graphics,
467>4	uleshort	x	version %d
468
469## GTA audio index
470
4710	ulelong	0
472>4	ulelong	<0x40000
473>>8	ulelong	>4500
474>>>8	ulelong	<45000	GTA audio index data (SDT)
475
476## GTA scripts
477
4780	ulelong 	0x00080000
479>4	uleshort	0x0024    	GTA2 binary main script (SCR)
480
4810	uleshort	0x063c    	GTA2 binary mission script (SCR), Residential area (ste)
4820	uleshort	0x055b    	GTA2 binary mission script (SCR), Downtown area (wil)
4830	uleshort	0x0469    	GTA2 binary mission script (SCR), Industrial area (bil)
484
4850	string   	v9.6\0\0 	GTA2 replay file (REP),
486>8	regex/30c	[a-z0-9:\ ]+\0\0	created on %s
487
488# GTA 3D-Era (III/VC/SA/LCS/VCS) - used by the RenderWare engine by Criterion Games
489
490## GTA 3D models and textures - RenderWare binary streams
491
4928	ulelong	0x00000310	RenderWare data, v3.1.0.0, used in GTA III on PS2,
493>0	ulelong	0x00000016	texture archive (TXD)
494>0	ulelong 0x00000010	3D models (DFF)
4958	ulelong	0x0401ffff	RenderWare data, v3.1.0.1, used in GTA III on PC/PS2,
496>0	ulelong	0x00000016	texture archive (TXD)
497>0	ulelong 0x00000010	3D models (DFF)
4988	ulelong	0x0800ffff	RenderWare data, v3.2.0.0, used in GTA III on PC,
499>0	ulelong	0x00000016	texture archive (TXD)
500>0	ulelong 0x00000010	3D models (DFF)
5018	ulelong	0x0c00ffff	RenderWare data, v3.3.0.0,
502>0	ulelong	0x00000016	texture archive (TXD)
503>0	ulelong 0x00000010	3D models (DFF)
5048	ulelong	0x0c02ffff	RenderWare data, v3.3.0.2, used in GTA III PC and GTA VC PS2,
505>0	ulelong	0x00000016	texture archive (TXD)
506>0	ulelong 0x00000010	3D models (DFF)
5078	ulelong	0x1000ffff	RenderWare data, v3.4.0.0,
508>0	ulelong	0x00000016	texture archive (TXD)
509>0	ulelong 0x00000010	3D models (DFF)
5108	ulelong	0x1003ffff	RenderWare data, v3.4.0.3, used in GTA VC PC,
511>0	ulelong	0x00000016	texture archive (TXD)
512>0	ulelong 0x00000010	3D models (DFF)
5138	ulelong	0x1005ffff	RenderWare data, v3.4.0.5, used in GTA III/VC on Android,
514>0	ulelong	0x00000016	texture archive (TXD)
515>0	ulelong 0x00000010	3D models (DFF)
5168	ulelong	0x1400ffff	RenderWare data, v3.5.0.0, used in GTA III/VC on Xbox,
517>0	ulelong	0x00000016	texture archive (TXD)
518>0	ulelong 0x00000010	3D models (DFF)
5198	ulelong	0x1803ffff	RenderWare data, v3.6.0.3, used in GTA SA,
520>0	ulelong	0x00000016	texture archive (TXD)
521>0	ulelong 0x00000010	3D models (DFF)
522
5230	string	COL	RenderWare collision data (COL),
524>3	string	L	version 1, used in GTA III/VC/SA
525>3	string	2	version 2, used in GTA SA
526>3	string	3	version 3, used in GTA SA
527>3	string	4	version 4, used in GTA SA
528
529## GTA items and animations
530
5310	string/c	#\ ipl\ generated\ from\ max\ file	GTA Item Placement data (IPL), used in GTA III/VC
5320	string/b	bnry	GTA Item Placement data (IPL), used in GTA SA/IV,
533>4	ulelong 	x	%d items
534
5350	string	ANP	GTA animation data (IFP),
536>3	string	K	version 1, used in GTA III/VC
537>3	string	3	version 2, used in GTA SA
538
5390	string	GtaSA29	GTA Replay data (REP), used in GTA SA
540
541## GTA text
542
5430	string	TKEY	GTA in-game text (GXT), version 2, used in GTA III
5440	string	TABL	GTA in-game text (GXT), version 3, used in GTA VC/LS/VCS
545
546## GTA scripts
547
5480	string	\x02\x00\x01	GTA script (SCM), used in GTA III/VC/SA
549
550## GTA archives
551
5520	string	VER2	GTA archive (IMG), version 2, used in GTA SA,
553>4	ulelong	x	%d items
554
555# GTA HD-Era (IV/V) - used by the Rockstar Advanced Game Engine (RAGE)
556
557## GTA models and textures - RAGE resources
558# Note: GTA IV formats not yet documented - WAD, WBD, WBN, WHM, WPL
559
5600	ulelong	0x00695254	GTA Drawable data (WDR), model and weapon data, used in GTA IV
5610	ulelong	0x00695238	GTA Windows Frag Type (WFT), vehicle models, used in GTA IV
5620	ulelong	0x006953A4	GTA Ped and LOD models (WDD), used in GTA IV
5630	ulelong	0x00695384	GTA Windows Texture Dictionary (WTD), used in GTA IV
564
565## GTA text
566
5674	string  	TABL	GTA in-game text (GXT),
568>0	uleshort	x	version %d, used in GTA SA/IV
5690	string  	2GXT	GTA in-game text (GXT2), used in GTA V
570
571## GTA scripts
572
5730	ulelong	0x0d524353	GTA script (SCO), unencrypted, used in GTA IV,
574>4	ulelong	x         	%d code bytes,
575>>8	ulelong	x         	%d static variables,
576>>>12	ulelong	x         	%d global variables
5770	ulelong	0x0e726373	GTA script (SCO), encrypted, used in GTA IV
578>4	ulelong	x         	%d code bytes,
579>>8	ulelong	x         	%d static variables,
580>>>12	ulelong	x         	%d global variables
581
582## GTA archives
583
5840	ulelong	0xa94e2a52	GTA archive (IMG),
585>4	ulelong	x        	version %d, used in GTA IV,
586>>8	ulelong	x        	%d items
587
588# RPF[0-8]
5890	ulelong&0xfffffff0 =0x52504630
590>0	ulelong&0xf	<9	RAGE Package Format (RPF), version %d, used in
591>>0	ulelong&0xf	=0	Rockstar Table Tennis,
592>>0	ulelong&0xf	=1	*unknown*
593>>0	ulelong&0xf	=2	GTA IV,
594>>0	ulelong&0xf	=3	GTA IV Audio & Midnight Club: LA,
595>>0	ulelong&0xf	=4	Max Payne 3,
596>>0	ulelong&0xf	=5	*unknown*
597>>0	ulelong&0xf	=6	RDR,
598>>0	ulelong&0xf	=7	GTA V,
599>>0	ulelong&0xf	=8	RDR 2,
600>>4	ulelong 	x	%d bytes,
601>>>8	ulelong 	x	%d entries
602
603# Blitz3D Model File Format
604# From: Alexandre Iooss <erdnaxe@crans.org>
605# URL: https://github.com/minetest/B3DExport/blob/master/B3DExport.py
6060	string		BB3D
607>4	lelong		>0
608>>8	lelong		>0	Blitz3D Model
609!:ext	b3d
610>>>8	lelong		x	\b, version %d
611
612# Minetest Schematic File Format
613# From: Alexandre Iooss <erdnaxe@crans.org>
614# URL: https://github.com/minetest/minetest/blob/5.6.1/src/mapgen/mg_schematic.h
6150	string		MTSM	Minetest Schematic
616!:ext	mts
617>4	ubeshort	x	\b, version %d
618>6	ubeshort	x	\b, size [%d
619>8	ubeshort	x	\b, %d
620>10	ubeshort	x	\b, %d]
621
622# MagicaVoxel File Format
623# From: Alexandre Iooss <erdnaxe@crans.org>
624# URL: https://github.com/ephtracy/voxel-model/blob/ee2216c28a78ebb68691dc6cfa9c4ba429117ea2/MagicaVoxel-file-format-vox.txt
625# Note: This format is used in Veloren voxel RPG.
6260	string		VOX\x20
627>4	lelong		>0	MagicaVoxel model
628!:ext	vox
629>>4	lelong		x	\b, version %d
630
631# Wwise SoundBank
632# From: Alexandre Iooss <erdnaxe@crans.org>
633# URL: https://wiki.xentax.com/index.php/Wwise_SoundBank_(*.bnk)
6340	string	BKHD
635# Little-endian version (such as x86 PC)
636>4	ulelong	<0x100		Wwise SoundBank (little-endian)
637!:ext	bnk
638>>0	use	wwise_bkhd
639# Big-endian version (such as PS3)
640>4	ubelong	<0x100		Wwise SoundBank (big-endian)
641!:ext	bnk
642>>0	use	\^wwise_bkhd
643
6440	name	wwise_bkhd
645>8	ulelong	x		\b, version %d
646>12	ulelong	x		\b, id %08X
647>16	ulelong	=0x00		\b, SFX
648>16	ulelong	=0x01		\b, arabic
649>16	ulelong	=0x02		\b, bulgarian
650>16	ulelong	=0x03		\b, chinese (HK)
651>16	ulelong	=0x04		\b, chinese (PRC)
652>16	ulelong	=0x05		\b, chinese (Taiwan)
653>16	ulelong	=0x06		\b, czech
654>16	ulelong	=0x07		\b, danish
655>16	ulelong	=0x08		\b, dutch
656>16	ulelong	=0x09		\b, english (Australia)
657>16	ulelong	=0x0A		\b, english (India)
658>16	ulelong	=0x0B		\b, english (UK)
659>16	ulelong	=0x0C		\b, english (US)
660>16	ulelong	=0x0D		\b, finnish
661>16	ulelong	=0x0E		\b, french (Canada)
662>16	ulelong	=0x0F		\b, french (France)
663>16	ulelong	=0x10		\b, german
664>16	ulelong	=0x11		\b, greek
665>16	ulelong	=0x12		\b, hebrew
666>16	ulelong	=0x13		\b, hungarian
667>16	ulelong	=0x14		\b, indonesian
668>16	ulelong	=0x15		\b, italian
669>16	ulelong	=0x16		\b, japanese
670>16	ulelong	=0x17		\b, korean
671>16	ulelong	=0x18		\b, latin
672>16	ulelong	=0x19		\b, norwegian
673>16	ulelong	=0x1A		\b, polish
674>16	ulelong	=0x1B		\b, portuguese (Brazil)
675>16	ulelong	=0x1C		\b, portuguese (Portugal)
676>16	ulelong	=0x1D		\b, romanian
677>16	ulelong	=0x1E		\b, russian
678>16	ulelong	=0x1F		\b, slovenian
679>16	ulelong	=0x20		\b, spanish (Mexico)
680>16	ulelong	=0x21		\b, spanish (Spain)
681>16	ulelong	=0x22		\b, spanish (US)
682>16	ulelong	=0x23		\b, swedish
683>16	ulelong	=0x24		\b, turkish
684>16	ulelong	=0x25		\b, ukrainian
685>16	ulelong	=0x26		\b, vietnamese
686
687# Wwise Audio Package
688# From: Alexandre Iooss <erdnaxe@crans.org>
689# URL: https://wiki.xentax.com/index.php/Wwise_Audio_PCK
6900	string	AKPK
691# Little-endian version (such as x86 PC)
692>8	ulelong	<0x100	Wwise Audio Package (little-endian)
693!:ext	pck
694# Big-endian version (such as PS3)
695>8	ubelong	<0x100	Wwise Audio Package (big-endian)
696!:ext	pck
697