games 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  1. #------------------------------------------------------------------------------
  2. # $File: games,v 1.30 2022/12/24 22:33:20 christos Exp $
  3. # games: file(1) for games
  4. # Fabio Bonelli <fabiobonelli@libero.it>
  5. # Quake II - III data files
  6. 0 string IDP2 Quake II 3D Model file,
  7. >20 long x %u skin(s),
  8. >8 long x (%u x
  9. >12 long x %u),
  10. >40 long x %u frame(s),
  11. >16 long x Frame size %u bytes,
  12. >24 long x %u vertices/frame,
  13. >28 long x %u texture coordinates,
  14. >32 long x %u triangles/frame
  15. 0 string IBSP Quake
  16. >4 long 0x26 II Map file (BSP)
  17. >4 long 0x2E III Map file (BSP)
  18. 0 string IDS2 Quake II SP2 sprite file
  19. #---------------------------------------------------------------------------
  20. # Doom and Quake
  21. # submitted by Nicolas Patrois
  22. 0 string \xcb\x1dBoom\xe6\xff\x03\x01 Boom or linuxdoom demo
  23. # some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
  24. 24 string LxD\ 203 Linuxdoom save
  25. >0 string x , name=%s
  26. >44 string x , world=%s
  27. # Quake
  28. # Update: Joerg Jenderek
  29. # URL: http://fileformats.archiveteam.org/wiki/PAK
  30. # reference: https://quakewiki.org/wiki/.pak
  31. # GRR: line below is too general as it matches also Acorn PackDir compressed Archive
  32. # and Git pack ./revision
  33. 0 string PACK
  34. # real Quake examples like pak0.pak have only some hundreds like 150 files
  35. # So test for few files
  36. >8 ulelong <0x01000000
  37. # in file version 5.32 test for null terminator is only true for
  38. # offset ~< FILE_BYTES_MAX = 1 MB defined in ../../src/file.h
  39. # look for null terminator of 1st entry name
  40. >>(4.l+55) ubyte 0 Quake I or II world or extension
  41. !:mime application/x-dzip
  42. !:ext pak
  43. #>>>8 ulelong x \b, table size %u
  44. # dividing this by entry size (64) gives number of files
  45. >>>8 ulelong/64 x \b, %u files
  46. # offset to the beginning of the file table
  47. >>>4 ulelong x \b, offset %#x
  48. # 1st file entry
  49. >>>(4.l) use pak-entry
  50. # 2nd file entry
  51. #>>>4 ulelong+64 x \b, offset %#x
  52. #>>>(4.l+64) use pak-entry
  53. #
  54. # display file table entry of Quake PAK archive
  55. 0 name pak-entry
  56. # normally entry start after header which implies offset 12 or higher
  57. >56 ulelong >11
  58. # the offset from the beginning of pak to beginning of this entry file contents
  59. >>56 ulelong x at %#x
  60. # the size of file for this entry
  61. >>60 ulelong x %u bytes
  62. # 56 byte null-terminated entry name string includes path like maps/e1m1.bsp
  63. >>0 string x '%-.56s'
  64. # inspect entry content by jumping to entry offset
  65. >>(56) indirect x \b:
  66. #0 string -1\x0a Quake I demo
  67. #>30 string x version %.4s
  68. #>61 string x level %s
  69. #0 string 5\x0a Quake I save
  70. # The levels
  71. # Quake 1
  72. 0 string 5\x0aIntroduction Quake I save: start Introduction
  73. 0 string 5\x0athe_Slipgate_Complex Quake I save: e1m1 The slipgate complex
  74. 0 string 5\x0aCastle_of_the_Damned Quake I save: e1m2 Castle of the damned
  75. 0 string 5\x0athe_Necropolis Quake I save: e1m3 The necropolis
  76. 0 string 5\x0athe_Grisly_Grotto Quake I save: e1m4 The grisly grotto
  77. 0 string 5\x0aZiggurat_Vertigo Quake I save: e1m8 Ziggurat vertigo (secret)
  78. 0 string 5\x0aGloom_Keep Quake I save: e1m5 Gloom keep
  79. 0 string 5\x0aThe_Door_To_Chthon Quake I save: e1m6 The door to Chthon
  80. 0 string 5\x0aThe_House_of_Chthon Quake I save: e1m7 The house of Chthon
  81. 0 string 5\x0athe_Installation Quake I save: e2m1 The installation
  82. 0 string 5\x0athe_Ogre_Citadel Quake I save: e2m2 The ogre citadel
  83. 0 string 5\x0athe_Crypt_of_Decay Quake I save: e2m3 The crypt of decay (dopefish lives!)
  84. 0 string 5\x0aUnderearth Quake I save: e2m7 Underearth (secret)
  85. 0 string 5\x0athe_Ebon_Fortress Quake I save: e2m4 The ebon fortress
  86. 0 string 5\x0athe_Wizard's_Manse Quake I save: e2m5 The wizard's manse
  87. 0 string 5\x0athe_Dismal_Oubliette Quake I save: e2m6 The dismal oubliette
  88. 0 string 5\x0aTermination_Central Quake I save: e3m1 Termination central
  89. 0 string 5\x0aVaults_of_Zin Quake I save: e3m2 Vaults of Zin
  90. 0 string 5\x0athe_Tomb_of_Terror Quake I save: e3m3 The tomb of terror
  91. 0 string 5\x0aSatan's_Dark_Delight Quake I save: e3m4 Satan's dark delight
  92. 0 string 5\x0athe_Haunted_Halls Quake I save: e3m7 The haunted halls (secret)
  93. 0 string 5\x0aWind_Tunnels Quake I save: e3m5 Wind tunnels
  94. 0 string 5\x0aChambers_of_Torment Quake I save: e3m6 Chambers of torment
  95. 0 string 5\x0athe_Sewage_System Quake I save: e4m1 The sewage system
  96. 0 string 5\x0aThe_Tower_of_Despair Quake I save: e4m2 The tower of despair
  97. 0 string 5\x0aThe_Elder_God_Shrine Quake I save: e4m3 The elder god shrine
  98. 0 string 5\x0athe_Palace_of_Hate Quake I save: e4m4 The palace of hate
  99. 0 string 5\x0aHell's_Atrium Quake I save: e4m5 Hell's atrium
  100. 0 string 5\x0athe_Nameless_City Quake I save: e4m8 The nameless city (secret)
  101. 0 string 5\x0aThe_Pain_Maze Quake I save: e4m6 The pain maze
  102. 0 string 5\x0aAzure_Agony Quake I save: e4m7 Azure agony
  103. 0 string 5\x0aShub-Niggurath's_Pit Quake I save: end Shub-Niggurath's pit
  104. # Quake DeathMatch levels
  105. 0 string 5\x0aPlace_of_Two_Deaths Quake I save: dm1 Place of two deaths
  106. 0 string 5\x0aClaustrophobopolis Quake I save: dm2 Claustrophobopolis
  107. 0 string 5\x0aThe_Abandoned_Base Quake I save: dm3 The abandoned base
  108. 0 string 5\x0aThe_Bad_Place Quake I save: dm4 The bad place
  109. 0 string 5\x0aThe_Cistern Quake I save: dm5 The cistern
  110. 0 string 5\x0aThe_Dark_Zone Quake I save: dm6 The dark zone
  111. # Scourge of Armagon
  112. 0 string 5\x0aCommand_HQ Quake I save: start Command HQ
  113. 0 string 5\x0aThe_Pumping_Station Quake I save: hip1m1 The pumping station
  114. 0 string 5\x0aStorage_Facility Quake I save: hip1m2 Storage facility
  115. 0 string 5\x0aMilitary_Complex Quake I save: hip1m5 Military complex (secret)
  116. 0 string 5\x0athe_Lost_Mine Quake I save: hip1m3 The lost mine
  117. 0 string 5\x0aResearch_Facility Quake I save: hip1m4 Research facility
  118. 0 string 5\x0aAncient_Realms Quake I save: hip2m1 Ancient realms
  119. 0 string 5\x0aThe_Gremlin's_Domain Quake I save: hip2m6 The gremlin's domain (secret)
  120. 0 string 5\x0aThe_Black_Cathedral Quake I save: hip2m2 The black cathedral
  121. 0 string 5\x0aThe_Catacombs Quake I save: hip2m3 The catacombs
  122. 0 string 5\x0athe_Crypt__ Quake I save: hip2m4 The crypt
  123. 0 string 5\x0aMortum's_Keep Quake I save: hip2m5 Mortum's keep
  124. 0 string 5\x0aTur_Torment Quake I save: hip3m1 Tur torment
  125. 0 string 5\x0aPandemonium Quake I save: hip3m2 Pandemonium
  126. 0 string 5\x0aLimbo Quake I save: hip3m3 Limbo
  127. 0 string 5\x0athe_Edge_of_Oblivion Quake I save: hipdm1 The edge of oblivion (secret)
  128. 0 string 5\x0aThe_Gauntlet Quake I save: hip3m4 The gauntlet
  129. 0 string 5\x0aArmagon's_Lair Quake I save: hipend Armagon's lair
  130. # Malice
  131. 0 string 5\x0aThe_Academy Quake I save: start The academy
  132. 0 string 5\x0aThe_Lab Quake I save: d1 The lab
  133. 0 string 5\x0aArea_33 Quake I save: d1b Area 33
  134. 0 string 5\x0aSECRET_MISSIONS Quake I save: d3b Secret missions
  135. 0 string 5\x0aThe_Hospital Quake I save: d10 The hospital (secret)
  136. 0 string 5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
  137. 0 string 5\x0aBACK_2_MALICE Quake I save: d4b Back to Malice
  138. 0 string 5\x0aArea44 Quake I save: d1c Area 44
  139. 0 string 5\x0aTakahiro_Towers Quake I save: d2 Takahiro towers
  140. 0 string 5\x0aA_Rat's_Life Quake I save: d3 A rat's life
  141. 0 string 5\x0aInto_The_Flood Quake I save: d4 Into the flood
  142. 0 string 5\x0aThe_Flood Quake I save: d5 The flood
  143. 0 string 5\x0aNuclear_Plant Quake I save: d6 Nuclear plant
  144. 0 string 5\x0aThe_Incinerator_Plant Quake I save: d7 The incinerator plant
  145. 0 string 5\x0aThe_Foundry Quake I save: d7b The foundry
  146. 0 string 5\x0aThe_Underwater_Base Quake I save: d8 The underwater base
  147. 0 string 5\x0aTakahiro_Base Quake I save: d9 Takahiro base
  148. 0 string 5\x0aTakahiro_Laboratories Quake I save: d12 Takahiro laboratories
  149. 0 string 5\x0aStayin'_Alive Quake I save: d13 Stayin' alive
  150. 0 string 5\x0aB.O.S.S._HQ Quake I save: d14 B.O.S.S. HQ
  151. 0 string 5\x0aSHOWDOWN! Quake I save: d15 Showdown!
  152. # Malice DeathMatch levels
  153. 0 string 5\x0aThe_Seventh_Precinct Quake I save: ddm1 The seventh precinct
  154. 0 string 5\x0aSub_Station Quake I save: ddm2 Sub station
  155. 0 string 5\x0aCrazy_Eights! Quake I save: ddm3 Crazy eights!
  156. 0 string 5\x0aEast_Side_Invertationa Quake I save: ddm4 East side invertationa
  157. 0 string 5\x0aSlaughterhouse Quake I save: ddm5 Slaughterhouse
  158. 0 string 5\x0aDOMINO Quake I save: ddm6 Domino
  159. 0 string 5\x0aSANDRA'S_LADDER Quake I save: ddm7 Sandra's ladder
  160. 0 string MComprHD MAME CHD compressed hard disk image,
  161. >12 belong x version %u
  162. # doom - submitted by Jon Dowland
  163. 0 string =IWAD doom main IWAD data
  164. >4 lelong x containing %d lumps
  165. 0 string =PWAD doom patch PWAD data
  166. >4 lelong x containing %d lumps
  167. # Build engine group files (Duke Nukem, Shadow Warrior, ...)
  168. # Extension: .grp
  169. # Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
  170. 0 string KenSilverman Build engine group file
  171. >12 lelong x containing %d files
  172. # Summary: Warcraft 3 save
  173. # Extension: .w3g
  174. # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
  175. 0 string Warcraft\ III\ recorded\ game %s
  176. # Summary: Warcraft 3 map
  177. # Extension: .w3m
  178. # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
  179. 0 string HM3W Warcraft III map file
  180. # Summary: SGF Smart Game Format
  181. # Extension: .sgf
  182. # Reference: https://www.red-bean.com/sgf/
  183. # Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
  184. # Modified by (1): Abel Cheung (regex, more game format)
  185. # FIXME: Some games don't have GM (game type)
  186. 0 regex \\(;.*GM\\[[0-9]{1,2}\\] Smart Game Format
  187. >2 search/0x200/b GM[
  188. >>&0 string 1] (Go)
  189. >>&0 string 2] (Othello)
  190. >>&0 string 3] (chess)
  191. >>&0 string 4] (Gomoku+Renju)
  192. >>&0 string 5] (Nine Men's Morris)
  193. >>&0 string 6] (Backgammon)
  194. >>&0 string 7] (Chinese chess)
  195. >>&0 string 8] (Shogi)
  196. >>&0 string 9] (Lines of Action)
  197. >>&0 string 10] (Ataxx)
  198. >>&0 string 11] (Hex)
  199. >>&0 string 12] (Jungle)
  200. >>&0 string 13] (Neutron)
  201. >>&0 string 14] (Philosopher's Football)
  202. >>&0 string 15] (Quadrature)
  203. >>&0 string 16] (Trax)
  204. >>&0 string 17] (Tantrix)
  205. >>&0 string 18] (Amazons)
  206. >>&0 string 19] (Octi)
  207. >>&0 string 20] (Gess)
  208. >>&0 string 21] (Twixt)
  209. >>&0 string 22] (Zertz)
  210. >>&0 string 23] (Plateau)
  211. >>&0 string 24] (Yinsh)
  212. >>&0 string 25] (Punct)
  213. >>&0 string 26] (Gobblet)
  214. >>&0 string 27] (hive)
  215. >>&0 string 28] (Exxit)
  216. >>&0 string 29] (Hnefatal)
  217. >>&0 string 30] (Kuba)
  218. >>&0 string 31] (Tripples)
  219. >>&0 string 32] (Chase)
  220. >>&0 string 33] (Tumbling Down)
  221. >>&0 string 34] (Sahara)
  222. >>&0 string 35] (Byte)
  223. >>&0 string 36] (Focus)
  224. >>&0 string 37] (Dvonn)
  225. >>&0 string 38] (Tamsk)
  226. >>&0 string 39] (Gipf)
  227. >>&0 string 40] (Kropki)
  228. ##############################################
  229. # NetImmerse/Gamebryo game engine entries
  230. # Summary: Gamebryo game engine file
  231. # Extension: .nif, .kf
  232. # Created by: Abel Cheung <abelcheung@gmail.com>
  233. 0 string Gamebryo\ File\ Format,\ Version\ Gamebryo game engine file
  234. >&0 regex [0-9a-z.]+ \b, version %s
  235. # Summary: Gamebryo game engine file
  236. # Extension: .kfm
  237. # Created by: Abel Cheung <abelcheung@gmail.com>
  238. 0 string ;Gamebryo\ KFM\ File\ Version\ Gamebryo game engine animation File
  239. >&0 regex [0-9a-z.]+ \b, version %s
  240. # Summary: NetImmerse game engine file
  241. # Extension .nif
  242. # Created by: Abel Cheung <abelcheung@gmail.com>
  243. 0 string NetImmerse\ File\ Format,\ Version
  244. >&0 string n\ NetImmerse game engine file
  245. >>&0 regex [0-9a-z.]+ \b, version %s
  246. # Type: SGF Smart Game Format
  247. # URL: https://www.red-bean.com/sgf/
  248. # From: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
  249. 2 regex/c \\(;.*GM\\[[0-9]{1,2}\\] Smart Game Format
  250. >2 regex/c GM\\[1\\] - Go Game
  251. >2 regex/c GM\\[6\\] - BackGammon Game
  252. >2 regex/c GM\\[11\\] - Hex Game
  253. >2 regex/c GM\\[18\\] - Amazons Game
  254. >2 regex/c GM\\[19\\] - Octi Game
  255. >2 regex/c GM\\[20\\] - Gess Game
  256. >2 regex/c GM\\[21\\] - twix Game
  257. # Epic Games/Unreal Engine Package
  258. # URL: https://docs.unrealengine.com/udk/Three/ContentCooking.html
  259. # https://eliotvu.com/page/unreal-package-file-format
  260. # Little-endian version (such as x86 PC)
  261. 0 lelong 0x9E2A83C1 Unreal Engine package (little-endian)
  262. !:ext xxx/tfc/upk/me1/u
  263. >4 uleshort !0 \b, version %u
  264. >>6 uleshort !0 \b/%03u
  265. >>0 use upk_header
  266. # Big-endian version (such as PS3)
  267. 0 belong 0x9E2A83C1 Unreal Engine package (big-endian)
  268. !:ext xxx/tfc
  269. >6 ubeshort !0 \b, version %u
  270. >>4 ubeshort !0 \b/%03u
  271. >>0 use \^upk_header
  272. 0 name upk_header
  273. # Identify game from version and licensee
  274. >4 ulelong 0x000002b2 (Alice Madness Returns)
  275. >4 ulelong 0x002f0313 (Aliens: Colonial Marines)
  276. >4 ulelong 0x005b021b (Alpha Protocol)
  277. >4 ulelong 0x0000032c (AntiChamber)
  278. >4 ulelong 0x00200223 (APB: All Points Bulletin)
  279. >4 ulelong 0x004b02d7 (Bioshock Infinite)
  280. >4 ulelong 0x00380340 (Borderlands 2)
  281. >4 ulelong 0x001d02e6 (Bulletstorm)
  282. >4 ulelong 0x00050240 (CrimeCraft)
  283. >4 ulelong 0x00000356 (Deadlight)
  284. >4 ulelong 0x001e0321 (Dishonored)
  285. >4 ulelong 0x000202a6 (Dungeon Defenders)
  286. >4 ulelong 0x000901ea (Gears of War)
  287. >4 ulelong 0x0000023f (Gears of War 2)
  288. >4 ulelong 0x0000033c (Gears of War 3)
  289. >4 ulelong 0x0000034e (Gears of War: Judgement)
  290. >4 ulelong 0x0004035c (Hawken)
  291. >4 ulelong 0x0001034a (Infinity Blade 2)
  292. >4 ulelong 0x00000350 (InMomentum)
  293. >4 ulelong 0x0015037D (Life Is Strange)
  294. >4 ulelong 0x000b01a5 (Medal of Honor: Airborne)
  295. >4 ulelong 0x002b0218 (Mirrors Edge)
  296. >4 ulelong 0x0000027e (Monday Night Combat)
  297. >4 ulelong 0x0000024b (MoonBase Alpha)
  298. >4 ulelong 0x002e01d8 (Mortal Kombat Komplete Edition 2605)
  299. >4 ulelong 0x0000035c (Painkiller HD)
  300. >4 ulelong 0x0000034d (Q.U.B.E)
  301. >4 ulelong 0x80660340 (Quantum Conundrum)
  302. >4 ulelong 0x0000035b (Ravaged)
  303. >4 ulelong 0x00150340 (Remember Me)
  304. >4 ulelong 0x00060171 (Roboblitz)
  305. >4 ulelong 0x00000325 (Rock of Ages)
  306. >4 ulelong 0x0000032a (Sanctum)
  307. >4 ulelong 0x00030248 (Saw)
  308. >4 ulelong 0x007e0248 (Singularity)
  309. >4 ulelong 0x00090388 (Soldier Front 2)
  310. >4 ulelong 0x000701e6 (Stargate Worlds)
  311. >4 ulelong 0x00000334 (Super Monday Night Combat)
  312. >4 ulelong 0x000002c2 (The Ball)
  313. >4 ulelong 0x000e0262 (The Exiled Realm of Arborea or TERA)
  314. >4 ulelong 0x0000035b (The Five Cores)
  315. >4 ulelong 0x00000349 (The Haunted: Hells Reach)
  316. >4 ulelong 0x00000354 (Unmechanical)
  317. >4 ulelong 0x035c0298 (Unreal Development Kit)
  318. >4 ulelong 0x00000200 (Unreal Tournament 3)
  319. >4 ulelong 0x0000032d (Waves)
  320. >4 ulelong 0x003b034d (XCOM: Enemy Unknown)
  321. # Newer versions insert more headers
  322. >4 ulelong&0xFFFF <249
  323. >>12 lelong !0 \b, names: %d
  324. >>28 lelong !0 \b, imports: %d
  325. >>20 lelong !0 \b, exports: %d
  326. >4 ulelong&0xFFFF >248
  327. >>12 belong&0xFF !0
  328. >>>12 string x \b, folder "%s"
  329. >>>>&5 lelong !0 \b, names: %d
  330. >>>>&21 lelong !0 \b, imports: %d
  331. >>>>&13 lelong !0 \b, exports: %d
  332. >>12 belong&0xFF 0
  333. >>>16 belong&0xFF !0
  334. >>>>16 string x \b, folder "%s"
  335. >>>>>&5 lelong !0 \b, names: %d
  336. >>>>>&21 lelong !0 \b, imports: %d
  337. >>>>>&13 lelong !0 \b, exports: %d
  338. >>>16 belong&0xFF 0
  339. >>>>20 string x \b, folder "%s"
  340. >>>>>&5 lelong !0 \b, names: %d
  341. >>>>>&21 lelong !0 \b, imports: %d
  342. >>>>>&13 lelong !0 \b, exports: %d
  343. 0 string ESVG
  344. >4 lelong 0x00160000
  345. >10 string TOC\020 Empire Deluxe for DOS saved game
  346. # Sid Meier's Civilization V/VI
  347. # From: Benjamin Lowry <ben@ben.gmbh>
  348. 0 string CIV5
  349. >4 byte 0x08 Sid Meier's Civilization V saved game,
  350. >>12 regex [0-9a-z.]+ saved by game version %s
  351. >4 byte 0x01 Sid Meier's Civilization V replay data,
  352. >>12 regex [0-9a-z.]+ saved by game version %s
  353. 0 string CIV6 Sid Meier's Civilization VI saved game
  354. # https://syzygy-tables.info/
  355. # From Michel Van den Bergh
  356. 0 string \327f\f\245 Syzygy DTZ tablebase
  357. !:mime application/syzygy
  358. 0 string q\350#] Syzygy WDL tablebase
  359. !:mime application/syzygy
  360. ##############################################################################
  361. # Grand Theft Auto (GTA) file formats.
  362. #
  363. # Summary:
  364. # Includes GTA-specific formats used in all games from 1997 to present. Games
  365. # and formats were created by Rockstar North, formerly DMA Design. Magic tests
  366. # were written based on a combination of official and community documentation.
  367. #
  368. # Created by: Oliver Galvin <odg@riseup.net>
  369. #
  370. # References:
  371. # * Classic GTA documentation and research:
  372. # <https://gitlab.com/classic-gta/gta-data>
  373. # * Official RenderWare documentation available from EA:
  374. # <https://github.com/electronicarts/RenderWare3Docs>
  375. # * Lots of community research in the GTAMods wiki:
  376. # <https://gtamods.com/wiki>
  377. # GTA 2D-Era data - 'Classic' top down games (1/L/2)
  378. ## GTA text
  379. 0 string \xbf\xf8\xbd\x49\x62\xbe GTA1 in-game text (FXT),
  380. 0 string GBL GTA2 in-game text (GXT),
  381. >3 string E English,
  382. >>4 uleshort x version %d
  383. >3 string F French,
  384. >>4 uleshort x version %d
  385. >3 string G German,
  386. >>4 uleshort x version %d
  387. >3 string I Italian,
  388. >>4 uleshort x version %d
  389. >3 string S Spanish,
  390. >>4 uleshort x version %d
  391. >3 string J Japanese,
  392. >>4 uleshort x version %d
  393. ## GTA maps
  394. 0 ulelong 331 GTA1 map layout (CMP),
  395. >4 byte 1 Level 1
  396. >4 byte 2 Level 2
  397. >4 byte 3 Level 3
  398. 0 string GBMP GTA2/GBH map layout (GMP),
  399. >4 uleshort x version %d
  400. 0 string/t [MapFiles] GTA2 multiplayer map metadata (MMP)
  401. 0 string/t MainOrBonus\ =\ MAIN GTA2 single player map listing (test1.seq)
  402. ## GTA 2D sprites and textures
  403. 0 ulelong 290 GTA1 style data (GRX), 8 bit editor graphics
  404. 0 ulelong 325 GTA1 style data (GRY), 8 bit in-game graphics
  405. 0 ulelong 336 GTA1 style data (G24), 24 bit in-game graphics
  406. 0 string GBST GTA2/GBH style data (STY), in-game graphics,
  407. >4 uleshort x version %d
  408. ## GTA audio index
  409. 0 ulelong 0
  410. >4 ulelong <0x40000
  411. >>8 ulelong >4500
  412. >>>8 ulelong <45000 GTA audio index data (SDT)
  413. ## GTA scripts
  414. 0 ulelong 0x00080000
  415. >4 uleshort 0x0024 GTA2 binary main script (SCR)
  416. 0 uleshort 0x063c GTA2 binary mission script (SCR), Residential area (ste)
  417. 0 uleshort 0x055b GTA2 binary mission script (SCR), Downtown area (wil)
  418. 0 uleshort 0x0469 GTA2 binary mission script (SCR), Industrial area (bil)
  419. 0 string v9.6\0\0 GTA2 replay file (REP),
  420. >8 regex/30c [a-z0-9:\ ]+\0\0 created on %s
  421. # GTA 3D-Era (III/VC/SA/LCS/VCS) - used by the RenderWare engine by Criterion Games
  422. ## GTA 3D models and textures - RenderWare binary streams
  423. 8 ulelong 0x00000310 RenderWare data, v3.1.0.0, used in GTA III on PS2,
  424. >0 ulelong 0x00000016 texture archive (TXD)
  425. >0 ulelong 0x00000010 3D models (DFF)
  426. 8 ulelong 0x0401ffff RenderWare data, v3.1.0.1, used in GTA III on PC/PS2,
  427. >0 ulelong 0x00000016 texture archive (TXD)
  428. >0 ulelong 0x00000010 3D models (DFF)
  429. 8 ulelong 0x0800ffff RenderWare data, v3.2.0.0, used in GTA III on PC,
  430. >0 ulelong 0x00000016 texture archive (TXD)
  431. >0 ulelong 0x00000010 3D models (DFF)
  432. 8 ulelong 0x0c00ffff RenderWare data, v3.3.0.0,
  433. >0 ulelong 0x00000016 texture archive (TXD)
  434. >0 ulelong 0x00000010 3D models (DFF)
  435. 8 ulelong 0x0c02ffff RenderWare data, v3.3.0.2, used in GTA III PC and GTA VC PS2,
  436. >0 ulelong 0x00000016 texture archive (TXD)
  437. >0 ulelong 0x00000010 3D models (DFF)
  438. 8 ulelong 0x1000ffff RenderWare data, v3.4.0.0,
  439. >0 ulelong 0x00000016 texture archive (TXD)
  440. >0 ulelong 0x00000010 3D models (DFF)
  441. 8 ulelong 0x1003ffff RenderWare data, v3.4.0.3, used in GTA VC PC,
  442. >0 ulelong 0x00000016 texture archive (TXD)
  443. >0 ulelong 0x00000010 3D models (DFF)
  444. 8 ulelong 0x1005ffff RenderWare data, v3.4.0.5, used in GTA III/VC on Android,
  445. >0 ulelong 0x00000016 texture archive (TXD)
  446. >0 ulelong 0x00000010 3D models (DFF)
  447. 8 ulelong 0x1400ffff RenderWare data, v3.5.0.0, used in GTA III/VC on Xbox,
  448. >0 ulelong 0x00000016 texture archive (TXD)
  449. >0 ulelong 0x00000010 3D models (DFF)
  450. 8 ulelong 0x1803ffff RenderWare data, v3.6.0.3, used in GTA SA,
  451. >0 ulelong 0x00000016 texture archive (TXD)
  452. >0 ulelong 0x00000010 3D models (DFF)
  453. 0 string COL RenderWare collision data (COL),
  454. >3 string L version 1, used in GTA III/VC/SA
  455. >3 string 2 version 2, used in GTA SA
  456. >3 string 3 version 3, used in GTA SA
  457. >3 string 4 version 4, used in GTA SA
  458. ## GTA items and animations
  459. 0 string/c #\ ipl\ generated\ from\ max\ file GTA Item Placement data (IPL), used in GTA III/VC
  460. 0 string/b bnry GTA Item Placement data (IPL), used in GTA SA/IV,
  461. >4 ulelong x %d items
  462. 0 string ANP GTA animation data (IFP),
  463. >3 string K version 1, used in GTA III/VC
  464. >3 string 3 version 2, used in GTA SA
  465. 0 string GtaSA29 GTA Replay data (REP), used in GTA SA
  466. ## GTA text
  467. 0 string TKEY GTA in-game text (GXT), version 2, used in GTA III
  468. 0 string TABL GTA in-game text (GXT), version 3, used in GTA VC/LS/VCS
  469. ## GTA scripts
  470. 0 string \x02\x00\x01 GTA script (SCM), used in GTA III/VC/SA
  471. ## GTA archives
  472. 0 string VER2 GTA archive (IMG), version 2, used in GTA SA,
  473. >4 ulelong x %d items
  474. # GTA HD-Era (IV/V) - used by the Rockstar Advanced Game Engine (RAGE)
  475. ## GTA models and textures - RAGE resources
  476. # Note: GTA IV formats not yet documented - WAD, WBD, WBN, WHM, WPL
  477. 0 ulelong 0x00695254 GTA Drawable data (WDR), model and weapon data, used in GTA IV
  478. 0 ulelong 0x00695238 GTA Windows Frag Type (WFT), vehicle models, used in GTA IV
  479. 0 ulelong 0x006953A4 GTA Ped and LOD models (WDD), used in GTA IV
  480. 0 ulelong 0x00695384 GTA Windows Texture Dictionary (WTD), used in GTA IV
  481. ## GTA text
  482. 4 string TABL GTA in-game text (GXT),
  483. >0 uleshort x version %d, used in GTA SA/IV
  484. 0 string 2GXT GTA in-game text (GXT2), used in GTA V
  485. ## GTA scripts
  486. 0 ulelong 0x0d524353 GTA script (SCO), unencrypted, used in GTA IV,
  487. >4 ulelong x %d code bytes,
  488. >>8 ulelong x %d static variables,
  489. >>>12 ulelong x %d global variables
  490. 0 ulelong 0x0e726373 GTA script (SCO), encrypted, used in GTA IV
  491. >4 ulelong x %d code bytes,
  492. >>8 ulelong x %d static variables,
  493. >>>12 ulelong x %d global variables
  494. ## GTA archives
  495. 0 ulelong 0xa94e2a52 GTA archive (IMG),
  496. >4 ulelong x version %d, used in GTA IV,
  497. >>8 ulelong x %d items
  498. # RPF[0-8]
  499. 0 ulelong&0xfffffff0 =0x52504630
  500. >0 ulelong&0xf <9 RAGE Package Format (RPF), version %d, used in
  501. >>0 ulelong&0xf =0 Rockstar Table Tennis,
  502. >>0 ulelong&0xf =1 *unknown*
  503. >>0 ulelong&0xf =2 GTA IV,
  504. >>0 ulelong&0xf =3 GTA IV Audio & Midnight Club: LA,
  505. >>0 ulelong&0xf =4 Max Payne 3,
  506. >>0 ulelong&0xf =5 *unknown*
  507. >>0 ulelong&0xf =6 RDR,
  508. >>0 ulelong&0xf =7 GTA V,
  509. >>0 ulelong&0xf =8 RDR 2,
  510. >>4 ulelong x %d bytes,
  511. >>>8 ulelong x %d entries
  512. # Blitz3D Model File Format
  513. # From: Alexandre Iooss <erdnaxe@crans.org>
  514. # URL: https://github.com/minetest/B3DExport/blob/master/B3DExport.py
  515. 0 string BB3D
  516. >4 lelong >0
  517. >>8 lelong >0 Blitz3D Model
  518. !:ext b3d
  519. >>>8 lelong x \b, version %d
  520. # Minetest Schematic File Format
  521. # From: Alexandre Iooss <erdnaxe@crans.org>
  522. # URL: https://github.com/minetest/minetest/blob/5.6.1/src/mapgen/mg_schematic.h
  523. 0 string MTSM Minetest Schematic
  524. !:ext mts
  525. >4 ubeshort x \b, version %d
  526. >6 ubeshort x \b, size [%d
  527. >8 ubeshort x \b, %d
  528. >10 ubeshort x \b, %d]
  529. # MagicaVoxel File Format
  530. # From: Alexandre Iooss <erdnaxe@crans.org>
  531. # URL: https://github.com/ephtracy/voxel-model/blob/ee2216c28a78ebb68691dc6cfa9c4ba429117ea2/MagicaVoxel-file-format-vox.txt
  532. # Note: This format is used in Veloren voxel RPG.
  533. 0 string VOX\x20
  534. >4 lelong >0 MagicaVoxel model
  535. !:ext vox
  536. >>4 lelong x \b, version %d
  537. # Wwise SoundBank
  538. # From: Alexandre Iooss <erdnaxe@crans.org>
  539. # URL: https://wiki.xentax.com/index.php/Wwise_SoundBank_(*.bnk)
  540. 0 string BKHD
  541. # Little-endian version (such as x86 PC)
  542. >4 ulelong <0x100 Wwise SoundBank (little-endian)
  543. !:ext bnk
  544. >>0 use wwise_bkhd
  545. # Big-endian version (such as PS3)
  546. >4 ubelong <0x100 Wwise SoundBank (big-endian)
  547. !:ext bnk
  548. >>0 use \^wwise_bkhd
  549. 0 name wwise_bkhd
  550. >8 ulelong x \b, version %d
  551. >12 ulelong x \b, id %08X
  552. >16 ulelong =0x00 \b, SFX
  553. >16 ulelong =0x01 \b, arabic
  554. >16 ulelong =0x02 \b, bulgarian
  555. >16 ulelong =0x03 \b, chinese (HK)
  556. >16 ulelong =0x04 \b, chinese (PRC)
  557. >16 ulelong =0x05 \b, chinese (Taiwan)
  558. >16 ulelong =0x06 \b, czech
  559. >16 ulelong =0x07 \b, danish
  560. >16 ulelong =0x08 \b, dutch
  561. >16 ulelong =0x09 \b, english (Australia)
  562. >16 ulelong =0x0A \b, english (India)
  563. >16 ulelong =0x0B \b, english (UK)
  564. >16 ulelong =0x0C \b, english (US)
  565. >16 ulelong =0x0D \b, finnish
  566. >16 ulelong =0x0E \b, french (Canada)
  567. >16 ulelong =0x0F \b, french (France)
  568. >16 ulelong =0x10 \b, german
  569. >16 ulelong =0x11 \b, greek
  570. >16 ulelong =0x12 \b, hebrew
  571. >16 ulelong =0x13 \b, hungarian
  572. >16 ulelong =0x14 \b, indonesian
  573. >16 ulelong =0x15 \b, italian
  574. >16 ulelong =0x16 \b, japanese
  575. >16 ulelong =0x17 \b, korean
  576. >16 ulelong =0x18 \b, latin
  577. >16 ulelong =0x19 \b, norwegian
  578. >16 ulelong =0x1A \b, polish
  579. >16 ulelong =0x1B \b, portuguese (Brazil)
  580. >16 ulelong =0x1C \b, portuguese (Portugal)
  581. >16 ulelong =0x1D \b, romanian
  582. >16 ulelong =0x1E \b, russian
  583. >16 ulelong =0x1F \b, slovenian
  584. >16 ulelong =0x20 \b, spanish (Mexico)
  585. >16 ulelong =0x21 \b, spanish (Spain)
  586. >16 ulelong =0x22 \b, spanish (US)
  587. >16 ulelong =0x23 \b, swedish
  588. >16 ulelong =0x24 \b, turkish
  589. >16 ulelong =0x25 \b, ukrainian
  590. >16 ulelong =0x26 \b, vietnamese
  591. # Wwise Audio Package
  592. # From: Alexandre Iooss <erdnaxe@crans.org>
  593. # URL: https://wiki.xentax.com/index.php/Wwise_Audio_PCK
  594. 0 string AKPK
  595. # Little-endian version (such as x86 PC)
  596. >8 ulelong <0x100 Wwise Audio Package (little-endian)
  597. !:ext pck
  598. # Big-endian version (such as PS3)
  599. >8 ubelong <0x100 Wwise Audio Package (big-endian)
  600. !:ext pck