1 2#------------------------------------------------------------------------------ 3# $File: games,v 1.17 2019/04/19 00:42: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 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 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 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 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# doom - submitted by Jon Dowland 188 1890 string =IWAD doom main IWAD data 190>4 lelong x containing %d lumps 1910 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> 1970 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> 2030 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> 2090 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) 2180 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> 2670 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> 2730 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> 2790 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> 2862 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# 2970 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