xref: /dflybsd-src/contrib/file/magic/Magdir/games (revision 739f0ef867128a933e021db3d831e906fcafd825)
1f72f8299SJan Lentfer
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: games,v 1.25 2022/05/31 18:40:20 christos Exp $
4327e51cbSPeter Avalos# games:  file(1) for games
5327e51cbSPeter Avalos
6327e51cbSPeter Avalos# Fabio Bonelli <fabiobonelli@libero.it>
7327e51cbSPeter Avalos# Quake II - III data files
8327e51cbSPeter Avalos0       string  IDP2        	Quake II 3D Model file,
982c5fa3eSPeter Avalos>20     long    x               %u skin(s),
1082c5fa3eSPeter Avalos>8      long    x               (%u x
1182c5fa3eSPeter Avalos>12     long    x 		%u),
1282c5fa3eSPeter Avalos>40     long    x               %u frame(s),
1382c5fa3eSPeter Avalos>16     long    x               Frame size %u bytes,
1482c5fa3eSPeter Avalos>24     long  	x               %u vertices/frame,
1582c5fa3eSPeter Avalos>28     long    x            	%u texture coordinates,
1682c5fa3eSPeter Avalos>32     long    x               %u triangles/frame
17327e51cbSPeter Avalos
18327e51cbSPeter Avalos0       string  IBSP            Quake
19327e51cbSPeter Avalos>4      long    0x26            II Map file (BSP)
20327e51cbSPeter Avalos>4      long    0x2E      	III Map file (BSP)
21327e51cbSPeter Avalos
22327e51cbSPeter Avalos0       string  IDS2            Quake II SP2 sprite file
23327e51cbSPeter Avalos
24327e51cbSPeter Avalos#---------------------------------------------------------------------------
25327e51cbSPeter Avalos# Doom and Quake
26327e51cbSPeter Avalos# submitted by Nicolas Patrois
27327e51cbSPeter Avalos
28327e51cbSPeter Avalos0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
29327e51cbSPeter Avalos# some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
30327e51cbSPeter Avalos
31327e51cbSPeter Avalos24      string  LxD\ 203        Linuxdoom save
32327e51cbSPeter Avalos>0      string  x       , name=%s
33327e51cbSPeter Avalos>44     string  x       , world=%s
34327e51cbSPeter Avalos
35327e51cbSPeter Avalos# Quake
36327e51cbSPeter Avalos
376fca56fbSSascha Wildner# Update: Joerg Jenderek
386fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/PAK
396fca56fbSSascha Wildner# reference: https://quakewiki.org/wiki/.pak
406fca56fbSSascha Wildner# GRR: line below is too general as it matches also Acorn PackDir compressed Archive
416fca56fbSSascha Wildner# and Git pack ./revision
426fca56fbSSascha Wildner0       string  PACK
436fca56fbSSascha Wildner# real Quake examples like pak0.pak have only some hundreds like 150 files
446fca56fbSSascha Wildner# So test for few files
456fca56fbSSascha Wildner>8	ulelong <0x01000000
466fca56fbSSascha Wildner# in file version 5.32 test for null terminator is only true for
476fca56fbSSascha Wildner# offset ~< FILE_BYTES_MAX = 1 MB defined in ../../src/file.h
486fca56fbSSascha Wildner# look for null terminator of 1st entry name
496fca56fbSSascha Wildner>>(4.l+55)	ubyte	0	Quake I or II world or extension
506fca56fbSSascha Wildner!:mime	application/x-dzip
516fca56fbSSascha Wildner!:ext	pak
526fca56fbSSascha Wildner#>>>8	ulelong	x	\b, table size %u
536fca56fbSSascha Wildner# dividing this by entry size (64) gives number of files
546fca56fbSSascha Wildner>>>8	ulelong/64 x	\b, %u files
556fca56fbSSascha Wildner# offset to the beginning of the file table
56614728caSSascha Wildner>>>4	ulelong	x	\b, offset %#x
576fca56fbSSascha Wildner# 1st file entry
586fca56fbSSascha Wildner>>>(4.l)	use	pak-entry
596fca56fbSSascha Wildner# 2nd file entry
60614728caSSascha Wildner#>>>4	ulelong+64	x	\b, offset %#x
616fca56fbSSascha Wildner#>>>(4.l+64)	use	pak-entry
626fca56fbSSascha Wildner#
636fca56fbSSascha Wildner#	display file table entry of Quake PAK archive
646fca56fbSSascha Wildner0	name		pak-entry
656fca56fbSSascha Wildner# normally entry start after header which implies offset 12 or higher
666fca56fbSSascha Wildner>56	ulelong	>11
676fca56fbSSascha Wildner# the offset from the beginning of pak to beginning of this entry file contents
68614728caSSascha Wildner>>56	ulelong	x	at %#x
696fca56fbSSascha Wildner# the size of file for this entry
706fca56fbSSascha Wildner>>60	ulelong	x	%u bytes
716fca56fbSSascha Wildner# 56 byte null-terminated entry name string includes path like maps/e1m1.bsp
726fca56fbSSascha Wildner>>0	string	x	'%-.56s'
736fca56fbSSascha Wildner# inspect entry content by jumping to entry offset
746fca56fbSSascha Wildner>>(56)	indirect x	\b:
75327e51cbSPeter Avalos
76327e51cbSPeter Avalos#0       string  -1\x0a  Quake I demo
77327e51cbSPeter Avalos#>30     string  x        version %.4s
78327e51cbSPeter Avalos#>61     string  x        level %s
79327e51cbSPeter Avalos
80327e51cbSPeter Avalos#0       string  5\x0a   Quake I save
81327e51cbSPeter Avalos
82327e51cbSPeter Avalos# The levels
83327e51cbSPeter Avalos
84327e51cbSPeter Avalos# Quake 1
85327e51cbSPeter Avalos
86327e51cbSPeter Avalos0	string	5\x0aIntroduction             Quake I save: start Introduction
87327e51cbSPeter Avalos0	string	5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
88327e51cbSPeter Avalos0	string	5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
89327e51cbSPeter Avalos0	string	5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
90327e51cbSPeter Avalos0	string	5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
91327e51cbSPeter Avalos0	string	5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
92327e51cbSPeter Avalos0	string	5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
93327e51cbSPeter Avalos0	string	5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
94327e51cbSPeter Avalos0	string	5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
95327e51cbSPeter Avalos0	string	5\x0athe_Installation         Quake I save: e2m1 The installation
96327e51cbSPeter Avalos0	string	5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
97327e51cbSPeter Avalos0	string	5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
98327e51cbSPeter Avalos0	string	5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
99327e51cbSPeter Avalos0	string	5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
100327e51cbSPeter Avalos0	string	5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
101327e51cbSPeter Avalos0	string	5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
102327e51cbSPeter Avalos0	string	5\x0aTermination_Central      Quake I save: e3m1 Termination central
103327e51cbSPeter Avalos0	string	5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
104327e51cbSPeter Avalos0	string	5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
105327e51cbSPeter Avalos0	string	5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
106327e51cbSPeter Avalos0	string	5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
107327e51cbSPeter Avalos0	string	5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
108327e51cbSPeter Avalos0	string	5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
109327e51cbSPeter Avalos0	string	5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
110327e51cbSPeter Avalos0	string	5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
111327e51cbSPeter Avalos0	string	5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
112327e51cbSPeter Avalos0	string	5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
113327e51cbSPeter Avalos0	string	5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
114327e51cbSPeter Avalos0	string	5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
115327e51cbSPeter Avalos0	string	5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
116327e51cbSPeter Avalos0	string	5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
117327e51cbSPeter Avalos0	string	5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
118327e51cbSPeter Avalos
119327e51cbSPeter Avalos# Quake DeathMatch levels
120327e51cbSPeter Avalos
121327e51cbSPeter Avalos0	string	5\x0aPlace_of_Two_Deaths	 Quake I save: dm1 Place of two deaths
122327e51cbSPeter Avalos0	string	5\x0aClaustrophobopolis		 Quake I save: dm2 Claustrophobopolis
123327e51cbSPeter Avalos0	string	5\x0aThe_Abandoned_Base		 Quake I save: dm3 The abandoned base
124327e51cbSPeter Avalos0	string	5\x0aThe_Bad_Place		 Quake I save: dm4 The bad place
125327e51cbSPeter Avalos0	string	5\x0aThe_Cistern		 Quake I save: dm5 The cistern
126327e51cbSPeter Avalos0	string	5\x0aThe_Dark_Zone		 Quake I save: dm6 The dark zone
127327e51cbSPeter Avalos
128327e51cbSPeter Avalos# Scourge of Armagon
129327e51cbSPeter Avalos
130327e51cbSPeter Avalos0	string	5\x0aCommand_HQ               Quake I save: start Command HQ
131327e51cbSPeter Avalos0	string	5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
132327e51cbSPeter Avalos0	string	5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
133327e51cbSPeter Avalos0	string	5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
134327e51cbSPeter Avalos0	string	5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
135327e51cbSPeter Avalos0	string	5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
136327e51cbSPeter Avalos0	string	5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
137327e51cbSPeter Avalos0	string	5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
138327e51cbSPeter Avalos0	string	5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
139327e51cbSPeter Avalos0	string	5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
140327e51cbSPeter Avalos0	string	5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
141327e51cbSPeter Avalos0	string	5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
142327e51cbSPeter Avalos0	string	5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
143327e51cbSPeter Avalos0	string	5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
144327e51cbSPeter Avalos0	string	5\x0aLimbo                    Quake I save: hip3m3 Limbo
145327e51cbSPeter Avalos0	string	5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
146327e51cbSPeter Avalos0	string	5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
147327e51cbSPeter Avalos0	string	5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
148327e51cbSPeter Avalos
149327e51cbSPeter Avalos# Malice
150327e51cbSPeter Avalos
151327e51cbSPeter Avalos0	string	5\x0aThe_Academy      Quake I save: start The academy
152327e51cbSPeter Avalos0	string	5\x0aThe_Lab          Quake I save: d1 The lab
153327e51cbSPeter Avalos0	string	5\x0aArea_33          Quake I save: d1b Area 33
154327e51cbSPeter Avalos0	string	5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
155327e51cbSPeter Avalos0	string	5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
156327e51cbSPeter Avalos0	string	5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
157327e51cbSPeter Avalos0	string	5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
158327e51cbSPeter Avalos0	string	5\x0aArea44           Quake I save: d1c Area 44
159327e51cbSPeter Avalos0	string	5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
160327e51cbSPeter Avalos0	string	5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
161327e51cbSPeter Avalos0	string	5\x0aInto_The_Flood   Quake I save: d4 Into the flood
162327e51cbSPeter Avalos0	string	5\x0aThe_Flood        Quake I save: d5 The flood
163327e51cbSPeter Avalos0	string	5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
164327e51cbSPeter Avalos0	string	5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
165327e51cbSPeter Avalos0	string	5\x0aThe_Foundry              Quake I save: d7b The foundry
166327e51cbSPeter Avalos0	string	5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
167327e51cbSPeter Avalos0	string	5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
168327e51cbSPeter Avalos0	string	5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
169327e51cbSPeter Avalos0	string	5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
170327e51cbSPeter Avalos0	string	5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
171327e51cbSPeter Avalos0	string	5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
172327e51cbSPeter Avalos
173327e51cbSPeter Avalos# Malice DeathMatch levels
174327e51cbSPeter Avalos
175327e51cbSPeter Avalos0	string	5\x0aThe_Seventh_Precinct	 Quake I save: ddm1 The seventh precinct
176327e51cbSPeter Avalos0	string	5\x0aSub_Station		 Quake I save: ddm2 Sub station
177327e51cbSPeter Avalos0	string	5\x0aCrazy_Eights!		 Quake I save: ddm3 Crazy eights!
178327e51cbSPeter Avalos0	string	5\x0aEast_Side_Invertationa	 Quake I save: ddm4 East side invertationa
179327e51cbSPeter Avalos0	string	5\x0aSlaughterhouse		 Quake I save: ddm5 Slaughterhouse
180327e51cbSPeter Avalos0	string	5\x0aDOMINO			 Quake I save: ddm6 Domino
181327e51cbSPeter Avalos0	string	5\x0aSANDRA'S_LADDER		 Quake I save: ddm7 Sandra's ladder
182327e51cbSPeter Avalos
183327e51cbSPeter Avalos
184327e51cbSPeter Avalos0	string	MComprHD	MAME CHD compressed hard disk image,
18582c5fa3eSPeter Avalos>12	belong	x		version %u
18679343712SPeter Avalos
18779343712SPeter Avalos# doom - submitted by Jon Dowland
18879343712SPeter Avalos
18979343712SPeter Avalos0	string	=IWAD		doom main IWAD data
19079343712SPeter Avalos>4	lelong	x		containing %d lumps
19179343712SPeter Avalos0	string	=PWAD		doom patch PWAD data
19279343712SPeter Avalos>4	lelong	x		containing %d lumps
19379343712SPeter Avalos
194e4d4ce0cSPeter Avalos# Build engine group files (Duke Nukem, Shadow Warrior, ...)
195e4d4ce0cSPeter Avalos# Extension: .grp
196e4d4ce0cSPeter Avalos# Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
197e4d4ce0cSPeter Avalos0	string	KenSilverman	Build engine group file
198e4d4ce0cSPeter Avalos>12	lelong	x		containing %d files
19979343712SPeter Avalos
20079343712SPeter Avalos# Summary: Warcraft 3 save
20179343712SPeter Avalos# Extension: .w3g
20279343712SPeter Avalos# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
20379343712SPeter Avalos0	string		Warcraft\ III\ recorded\ game	%s
20479343712SPeter Avalos
20579343712SPeter Avalos
20679343712SPeter Avalos# Summary: Warcraft 3 map
20779343712SPeter Avalos# Extension: .w3m
20879343712SPeter Avalos# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
20979343712SPeter Avalos0	string		HM3W		Warcraft III map file
21079343712SPeter Avalos
21179343712SPeter Avalos
21279343712SPeter Avalos# Summary: SGF Smart Game Format
21379343712SPeter Avalos# Extension: .sgf
2146fca56fbSSascha Wildner# Reference: https://www.red-bean.com/sgf/
21579343712SPeter Avalos# Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
21679343712SPeter Avalos# Modified by (1): Abel Cheung (regex, more game format)
21779343712SPeter Avalos# FIXME: Some games don't have GM (game type)
21879343712SPeter Avalos0	regex		\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
219e4d4ce0cSPeter Avalos>2	search/0x200/b	GM[
22079343712SPeter Avalos>>&0	string		1]	(Go)
22179343712SPeter Avalos>>&0	string		2]	(Othello)
22279343712SPeter Avalos>>&0	string		3]	(chess)
22379343712SPeter Avalos>>&0	string		4]	(Gomoku+Renju)
22479343712SPeter Avalos>>&0	string		5]	(Nine Men's Morris)
22579343712SPeter Avalos>>&0	string		6]	(Backgammon)
22679343712SPeter Avalos>>&0	string		7]	(Chinese chess)
22779343712SPeter Avalos>>&0	string		8]	(Shogi)
22879343712SPeter Avalos>>&0	string		9]	(Lines of Action)
22979343712SPeter Avalos>>&0	string		10]	(Ataxx)
23079343712SPeter Avalos>>&0	string		11]	(Hex)
23179343712SPeter Avalos>>&0	string		12]	(Jungle)
23279343712SPeter Avalos>>&0	string		13]	(Neutron)
23379343712SPeter Avalos>>&0	string		14]	(Philosopher's Football)
23479343712SPeter Avalos>>&0	string		15]	(Quadrature)
23579343712SPeter Avalos>>&0	string		16]	(Trax)
23679343712SPeter Avalos>>&0	string		17]	(Tantrix)
23779343712SPeter Avalos>>&0	string		18]	(Amazons)
23879343712SPeter Avalos>>&0	string		19]	(Octi)
23979343712SPeter Avalos>>&0	string		20]	(Gess)
24079343712SPeter Avalos>>&0	string		21]	(Twixt)
24179343712SPeter Avalos>>&0	string		22]	(Zertz)
24279343712SPeter Avalos>>&0	string		23]	(Plateau)
24379343712SPeter Avalos>>&0	string		24]	(Yinsh)
24479343712SPeter Avalos>>&0	string		25]	(Punct)
24579343712SPeter Avalos>>&0	string		26]	(Gobblet)
24679343712SPeter Avalos>>&0	string		27]	(hive)
24779343712SPeter Avalos>>&0	string		28]	(Exxit)
24879343712SPeter Avalos>>&0	string		29]	(Hnefatal)
24979343712SPeter Avalos>>&0	string		30]	(Kuba)
25079343712SPeter Avalos>>&0	string		31]	(Tripples)
25179343712SPeter Avalos>>&0	string		32]	(Chase)
25279343712SPeter Avalos>>&0	string		33]	(Tumbling Down)
25379343712SPeter Avalos>>&0	string		34]	(Sahara)
25479343712SPeter Avalos>>&0	string		35]	(Byte)
25579343712SPeter Avalos>>&0	string		36]	(Focus)
25679343712SPeter Avalos>>&0	string		37]	(Dvonn)
25779343712SPeter Avalos>>&0	string		38]	(Tamsk)
25879343712SPeter Avalos>>&0	string		39]	(Gipf)
25979343712SPeter Avalos>>&0	string		40]	(Kropki)
26079343712SPeter Avalos
26179343712SPeter Avalos##############################################
26279343712SPeter Avalos# NetImmerse/Gamebryo game engine entries
26379343712SPeter Avalos
26479343712SPeter Avalos# Summary: Gamebryo game engine file
26579343712SPeter Avalos# Extension: .nif, .kf
26679343712SPeter Avalos# Created by: Abel Cheung <abelcheung@gmail.com>
26779343712SPeter Avalos0		string		Gamebryo\ File\ Format,\ Version\ 	Gamebryo game engine file
26879343712SPeter Avalos>&0		regex		[0-9a-z.]+				\b, version %s
26979343712SPeter Avalos
27079343712SPeter Avalos# Summary: Gamebryo game engine file
27179343712SPeter Avalos# Extension: .kfm
27279343712SPeter Avalos# Created by: Abel Cheung <abelcheung@gmail.com>
27379343712SPeter Avalos0		string		;Gamebryo\ KFM\ File\ Version\ 		Gamebryo game engine animation File
27479343712SPeter Avalos>&0		regex		[0-9a-z.]+				\b, version %s
27579343712SPeter Avalos
27679343712SPeter Avalos# Summary: NetImmerse game engine file
27779343712SPeter Avalos# Extension .nif
27879343712SPeter Avalos# Created by: Abel Cheung <abelcheung@gmail.com>
279970935fdSSascha Wildner0		string		NetImmerse\ File\ Format,\ Version
28079343712SPeter Avalos>&0		string		n\ 					NetImmerse game engine file
28179343712SPeter Avalos>>&0		regex		[0-9a-z.]+				\b, version %s
28279343712SPeter Avalos
283e4d4ce0cSPeter Avalos# Type:	SGF Smart Game Format
2846fca56fbSSascha Wildner# URL:	https://www.red-bean.com/sgf/
285e4d4ce0cSPeter Avalos# From:	Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
286e4d4ce0cSPeter Avalos2	regex/c	\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
287e4d4ce0cSPeter Avalos>2	regex/c	GM\\[1\\]			- Go Game
288e4d4ce0cSPeter Avalos>2	regex/c	GM\\[6\\]			- BackGammon Game
289e4d4ce0cSPeter Avalos>2	regex/c	GM\\[11\\]			- Hex Game
290e4d4ce0cSPeter Avalos>2	regex/c	GM\\[18\\]			- Amazons Game
291e4d4ce0cSPeter Avalos>2	regex/c	GM\\[19\\]			- Octi Game
292e4d4ce0cSPeter Avalos>2	regex/c	GM\\[20\\]			- Gess Game
293e4d4ce0cSPeter Avalos>2	regex/c	GM\\[21\\]			- twix Game
29417b11469SPeter Avalos
29517b11469SPeter Avalos# Epic Games/Unreal Engine Package
29617b11469SPeter Avalos#
29717b11469SPeter Avalos0	lelong		0x9E2A83C1	Unreal Engine Package,
29817b11469SPeter Avalos>4	leshort		x		version: %i
29917b11469SPeter Avalos>12	lelong		!0		\b, names: %i
30017b11469SPeter Avalos>28	lelong		!0		\b, imports: %i
30117b11469SPeter Avalos>20	lelong		!0		\b, exports: %i
3026fca56fbSSascha Wildner
3036fca56fbSSascha Wildner0	string		ESVG
3046fca56fbSSascha Wildner>4	lelong		0x00160000
3056fca56fbSSascha Wildner>10	string		TOC\020		Empire Deluxe for DOS saved game
306c990e5baSDaniel Fojt
307c990e5baSDaniel Fojt# Sid Meier's Civilization V/VI
308c990e5baSDaniel Fojt# From: Benjamin Lowry <ben@ben.gmbh>
309c990e5baSDaniel Fojt0	string	CIV5
310c990e5baSDaniel Fojt>4	byte	0x08		Sid Meier's Civilization V saved game,
311c990e5baSDaniel Fojt>>12	regex	[0-9a-z.]+	saved by game version %s
312c990e5baSDaniel Fojt>4	byte	0x01		Sid Meier's Civilization V replay data,
313c990e5baSDaniel Fojt>>12	regex	[0-9a-z.]+	saved by game version %s
314c990e5baSDaniel Fojt
315c990e5baSDaniel Fojt0	string	CIV6		Sid Meier's Civilization VI saved game
316970935fdSSascha Wildner
317970935fdSSascha Wildner# https://syzygy-tables.info/
318970935fdSSascha Wildner# From Michel Van den Bergh
319970935fdSSascha Wildner0	string	\327f\f\245	Syzygy DTZ tablebase
320970935fdSSascha Wildner!:mime	application/syzygy
321970935fdSSascha Wildner0	string	q\350#]		Syzygy WDL tablebase
322970935fdSSascha Wildner!:mime	application/syzygy
323614728caSSascha Wildner
324614728caSSascha Wildner##############################################################################
325614728caSSascha Wildner# Grand Theft Auto (GTA) file formats.
326614728caSSascha Wildner#
327614728caSSascha Wildner# Summary:
328614728caSSascha Wildner# Includes GTA-specific formats used in all games from 1997 to present. Games
329614728caSSascha Wildner# and formats were created by Rockstar North, formerly DMA Design. Magic tests
330614728caSSascha Wildner# were written based on a combination of official and community documentation.
331614728caSSascha Wildner#
332614728caSSascha Wildner# Created by: Oliver Galvin <odg@riseup.net>
333614728caSSascha Wildner#
334614728caSSascha Wildner# References:
335614728caSSascha Wildner# * Classic GTA documentation and research:
336614728caSSascha Wildner#    <https://gitlab.com/classic-gta/gta-data>
337614728caSSascha Wildner# * Official RenderWare documentation available from EA:
338614728caSSascha Wildner#    <https://github.com/electronicarts/RenderWare3Docs>
339614728caSSascha Wildner# * Lots of community research in the GTAMods wiki:
340614728caSSascha Wildner#    <https://gtamods.com/wiki>
341614728caSSascha Wildner
342614728caSSascha Wildner# GTA 2D-Era data - 'Classic' top down games (1/L/2)
343614728caSSascha Wildner
344614728caSSascha Wildner## GTA text
345614728caSSascha Wildner
346614728caSSascha Wildner0	string	\xbf\xf8\xbd\x49\x62\xbe	GTA1 in-game text (FXT),
347614728caSSascha Wildner0	string	GBL	GTA2 in-game text (GXT),
348614728caSSascha Wildner>3	string  	E	English,
349614728caSSascha Wildner>>4	uleshort	x	version %d
350614728caSSascha Wildner>3	string  	F	French,
351614728caSSascha Wildner>>4	uleshort	x	version %d
352614728caSSascha Wildner>3	string  	G	German,
353614728caSSascha Wildner>>4	uleshort	x	version %d
354614728caSSascha Wildner>3	string  	I	Italian,
355614728caSSascha Wildner>>4	uleshort	x	version %d
356614728caSSascha Wildner>3	string  	S	Spanish,
357614728caSSascha Wildner>>4	uleshort	x	version %d
358614728caSSascha Wildner>3	string  	J	Japanese,
359614728caSSascha Wildner>>4	uleshort	x	version %d
360614728caSSascha Wildner
361614728caSSascha Wildner## GTA maps
362614728caSSascha Wildner
363614728caSSascha Wildner0	ulelong 	331	GTA1 map layout (CMP),
364614728caSSascha Wildner>4	byte    	1	Level 1
365614728caSSascha Wildner>4	byte    	2	Level 2
366614728caSSascha Wildner>4	byte    	3	Level 3
367614728caSSascha Wildner0	string  	GBMP	GTA2/GBH map layout (GMP),
368614728caSSascha Wildner>4	uleshort	x	version %d
369614728caSSascha Wildner0	string/t	[MapFiles]	GTA2 multiplayer map metadata (MMP)
370614728caSSascha Wildner0	string/t	MainOrBonus\ =\ MAIN	GTA2 single player map listing (test1.seq)
371614728caSSascha Wildner
372614728caSSascha Wildner## GTA 2D sprites and textures
373614728caSSascha Wildner
374614728caSSascha Wildner0	ulelong 	290	GTA1 style data (GRX), 8 bit editor graphics
375614728caSSascha Wildner0	ulelong 	325	GTA1 style data (GRY), 8 bit in-game graphics
376614728caSSascha Wildner0	ulelong 	336	GTA1 style data (G24), 24 bit in-game graphics
377614728caSSascha Wildner0	string  	GBST	GTA2/GBH style data (STY), in-game graphics,
378614728caSSascha Wildner>4	uleshort	x	version %d
379614728caSSascha Wildner
380614728caSSascha Wildner## GTA audio index
381614728caSSascha Wildner
382614728caSSascha Wildner0	ulelong	0
383614728caSSascha Wildner>4	ulelong	<0x40000
384614728caSSascha Wildner>>8	ulelong	>4500
385614728caSSascha Wildner>>>8	ulelong	<45000	GTA audio index data (SDT)
386614728caSSascha Wildner
387614728caSSascha Wildner## GTA scripts
388614728caSSascha Wildner
389614728caSSascha Wildner0	ulelong 	0x00080000
390614728caSSascha Wildner>4	uleshort	0x0024    	GTA2 binary main script (SCR)
391614728caSSascha Wildner
392614728caSSascha Wildner0	uleshort	0x063c    	GTA2 binary mission script (SCR), Residential area (ste)
393614728caSSascha Wildner0	uleshort	0x055b    	GTA2 binary mission script (SCR), Downtown area (wil)
394614728caSSascha Wildner0	uleshort	0x0469    	GTA2 binary mission script (SCR), Industrial area (bil)
395614728caSSascha Wildner
396614728caSSascha Wildner0	string   	v9.6\0\0 	GTA2 replay file (REP),
397614728caSSascha Wildner>8	regex/30c	[a-z0-9:\ ]+\0\0	created on %s
398614728caSSascha Wildner
399614728caSSascha Wildner# GTA 3D-Era (III/VC/SA/LCS/VCS) - used by the RenderWare engine by Criterion Games
400614728caSSascha Wildner
401614728caSSascha Wildner## GTA 3D models and textures - RenderWare binary streams
402614728caSSascha Wildner
403614728caSSascha Wildner8	ulelong	0x00000310	RenderWare data, v3.1.0.0, used in GTA III on PS2,
404614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
405614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
406614728caSSascha Wildner8	ulelong	0x0401ffff	RenderWare data, v3.1.0.1, used in GTA III on PC/PS2,
407614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
408614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
409614728caSSascha Wildner8	ulelong	0x0800ffff	RenderWare data, v3.2.0.0, used in GTA III on PC,
410614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
411614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
412614728caSSascha Wildner8	ulelong	0x0c00ffff	RenderWare data, v3.3.0.0,
413614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
414614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
415614728caSSascha Wildner8	ulelong	0x0c02ffff	RenderWare data, v3.3.0.2, used in GTA III PC and GTA VC PS2,
416614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
417614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
418614728caSSascha Wildner8	ulelong	0x1000ffff	RenderWare data, v3.4.0.0,
419614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
420614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
421614728caSSascha Wildner8	ulelong	0x1003ffff	RenderWare data, v3.4.0.3, used in GTA VC PC,
422614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
423614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
424614728caSSascha Wildner8	ulelong	0x1005ffff	RenderWare data, v3.4.0.5, used in GTA III/VC on Android,
425614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
426614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
427614728caSSascha Wildner8	ulelong	0x1400ffff	RenderWare data, v3.5.0.0, used in GTA III/VC on Xbox,
428614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
429614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
430614728caSSascha Wildner8	ulelong	0x1803ffff	RenderWare data, v3.6.0.3, used in GTA SA,
431614728caSSascha Wildner>0	ulelong	0x00000016	texture archive (TXD)
432614728caSSascha Wildner>0	ulelong 0x00000010	3D models (DFF)
433614728caSSascha Wildner
434614728caSSascha Wildner0	string	COL	RenderWare collision data (COL),
435614728caSSascha Wildner>3	string	L	version 1, used in GTA III/VC/SA
436614728caSSascha Wildner>3	string	2	version 2, used in GTA SA
437614728caSSascha Wildner>3	string	3	version 3, used in GTA SA
438614728caSSascha Wildner>3	string	4	version 4, used in GTA SA
439614728caSSascha Wildner
440614728caSSascha Wildner## GTA items and animations
441614728caSSascha Wildner
442614728caSSascha Wildner0	string/c	#\ ipl\ generated\ from\ max\ file	GTA Item Placement data (IPL), used in GTA III/VC
443614728caSSascha Wildner0	string/b	bnry	GTA Item Placement data (IPL), used in GTA SA/IV,
444614728caSSascha Wildner>4	ulelong 	x	%d items
445614728caSSascha Wildner
446614728caSSascha Wildner0	string	ANP	GTA animation data (IFP),
447614728caSSascha Wildner>3	string	K	version 1, used in GTA III/VC
448614728caSSascha Wildner>3	string	3	version 2, used in GTA SA
449614728caSSascha Wildner
450614728caSSascha Wildner0	string	GtaSA29	GTA Replay data (REP), used in GTA SA
451614728caSSascha Wildner
452614728caSSascha Wildner## GTA text
453614728caSSascha Wildner
454614728caSSascha Wildner0	string	TKEY	GTA in-game text (GXT), version 2, used in GTA III
455614728caSSascha Wildner0	string	TABL	GTA in-game text (GXT), version 3, used in GTA VC/LS/VCS
456614728caSSascha Wildner
457614728caSSascha Wildner## GTA scripts
458614728caSSascha Wildner
459614728caSSascha Wildner0	string	\x02\x00\x01	GTA script (SCM), used in GTA III/VC/SA
460614728caSSascha Wildner
461614728caSSascha Wildner## GTA archives
462614728caSSascha Wildner
463614728caSSascha Wildner0	string	VER2	GTA archive (IMG), version 2, used in GTA SA,
464614728caSSascha Wildner>4	ulelong	x	%d items
465614728caSSascha Wildner
466614728caSSascha Wildner# GTA HD-Era (IV/V) - used by the Rockstar Advanced Game Engine (RAGE)
467614728caSSascha Wildner
468614728caSSascha Wildner## GTA models and textures - RAGE resources
469614728caSSascha Wildner# Note: GTA IV formats not yet documented - WAD, WBD, WBN, WHM, WPL
470614728caSSascha Wildner
471614728caSSascha Wildner0	ulelong	0x00695254	GTA Drawable data (WDR), model and weapon data, used in GTA IV
472614728caSSascha Wildner0	ulelong	0x00695238	GTA Windows Frag Type (WFT), vehicle models, used in GTA IV
473614728caSSascha Wildner0	ulelong	0x006953A4	GTA Ped and LOD models (WDD), used in GTA IV
474614728caSSascha Wildner0	ulelong	0x00695384	GTA Windows Texture Dictionary (WTD), used in GTA IV
475614728caSSascha Wildner
476614728caSSascha Wildner## GTA text
477614728caSSascha Wildner
478614728caSSascha Wildner4	string  	TABL	GTA in-game text (GXT),
479614728caSSascha Wildner>0	uleshort	x	version %d, used in GTA SA/IV
480614728caSSascha Wildner0	string  	2GXT	GTA in-game text (GXT2), used in GTA V
481614728caSSascha Wildner
482614728caSSascha Wildner## GTA scripts
483614728caSSascha Wildner
484614728caSSascha Wildner0	ulelong	0x0d524353	GTA script (SCO), unencrypted, used in GTA IV,
485614728caSSascha Wildner>4	ulelong	x         	%d code bytes,
486614728caSSascha Wildner>>8	ulelong	x         	%d static variables,
487614728caSSascha Wildner>>>12	ulelong	x         	%d global variables
488614728caSSascha Wildner0	ulelong	0x0e726373	GTA script (SCO), encrypted, used in GTA IV
489614728caSSascha Wildner>4	ulelong	x         	%d code bytes,
490614728caSSascha Wildner>>8	ulelong	x         	%d static variables,
491614728caSSascha Wildner>>>12	ulelong	x         	%d global variables
492614728caSSascha Wildner
493614728caSSascha Wildner## GTA archives
494614728caSSascha Wildner
495614728caSSascha Wildner0	ulelong	0xa94e2a52	GTA archive (IMG),
496614728caSSascha Wildner>4	ulelong	x        	version %d, used in GTA IV,
497614728caSSascha Wildner>>8	ulelong	x        	%d items
498614728caSSascha Wildner
499*3b9cdfa3SAntonio Huete Jimenez# RPF[0-8]
500*3b9cdfa3SAntonio Huete Jimenez0	ulelong&0xfffffff0 =0x52504630
501*3b9cdfa3SAntonio Huete Jimenez>0	ulelong&0xf	<9	RAGE Package Format (RPF), version %d, used in
502*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=0	Rockstar Table Tennis,
503*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=1	*unknown*
504*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=2	GTA IV,
505*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=3	GTA IV Audio & Midnight Club: LA,
506*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=4	Max Payne 3,
507*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=5	*unknown*
508*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=6	RDR,
509*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=7	GTA V,
510*3b9cdfa3SAntonio Huete Jimenez>>0	ulelong&0xf	=8	RDR 2,
511614728caSSascha Wildner>>4	ulelong 	x	%d bytes,
512614728caSSascha Wildner>>>8	ulelong 	x	%d entries
513