2 #------------------------------------------------------------------------------
3 # $File: adventure,v 1.14 2012/06/21 01:32:26 christos Exp $
4 # adventure: file(1) magic for Adventure game files
6 # from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
7 # Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
8 # Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
11 # I assume there are other, lower versions, but these are the only ones I
13 0 beshort 0x0206 ALAN game data
14 >2 byte <10 version 2.6%d
17 # Infocom (see z-machine)
18 #------------------------------------------------------------------------------
19 # Z-machine: file(1) magic for Z-machine binaries.
20 # Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
22 #http://www.gnelson.demon.co.uk/zspec/sect11.html
23 #http://www.jczorkmid.net/~jpenney/ZSpec11-latest.txt
24 #http://en.wikipedia.org/wiki/Z-machine
25 # The first byte is the Z-machine revision; it is always between 1 and 8. We
26 # had false matches (for instance, inbig5.ocp from the Omega TeX extension as
27 # well as an occasional MP3 file), so we sanity-check the version number.
29 # It might be possible to sanity-check the release number as well, as it seems
30 # (at least in classic Infocom games) to always be a relatively small number,
31 # always under 150 or so, but as this isn't rigorous, we'll wait on that until
32 # it becomes clear that it's needed.
36 >>16 belong&0xfe00f0f0 0x3030
39 >>>>>18 regex [0-9][0-9][0-9][0-9][0-9][0-9]
40 >>>>>>0 ubyte < 10 Infocom (Z-machine %d,
41 >>>>>>>2 ubeshort < 10 Release %d /
42 >>>>>>>>18 string >\0 Serial %.6s)
45 #------------------------------------------------------------------------------
46 # Glulx: file(1) magic for Glulx binaries.
48 # I haven't checked for false matches yet.
50 0 string Glul Glulx game data
51 >4 beshort x (Version %d
54 >36 string Info Compiled by Inform
58 # For Quetzal and blorb magic see iff
61 # TADS (Text Adventure Development System) version 2
62 # All files are machine-independent (games compile to byte-code) and are tagged
63 # with a version string of the form "V2.<digit>.<digit>\0".
64 # Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
65 0 string TADS2\ bin TADS
66 >9 belong !0x0A0D1A00 game data, CORRUPTED
68 >>13 string >\0 %s game data
69 # Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
70 0 string TADS2\ rsc TADS
71 >9 belong !0x0A0D1A00 resource data, CORRUPTED
73 >>13 string >\0 %s resource data
74 # Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
75 # 2-byte length N, the N-char name of the game file *without* a NUL (darn!),
76 # "TADS2 save\n\r\032\0" and the interpreter version.
77 0 string TADS2\ save/g TADS
78 >12 belong !0x0A0D1A00 saved game data, CORRUPTED
80 >>(16.s+32) string >\0 %s saved game data
81 # Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
83 0 string TADS2\ save TADS
84 >10 belong !0x0A0D1A00 saved game data, CORRUPTED
86 >>14 string >\0 %s saved game data
88 # TADS (Text Adventure Development System) version 3
89 # Game files start with "T3-image\015\012\032"
90 0 string T3-image\015\012\032
91 >11 leshort x TADS 3 game data (format version %d)
92 # Saved game files start with "T3-state-v####\015\012\032"
93 # where #### is a format version number
95 >14 string \015\012\032 TADS 3 saved game data (format version
101 # Danny Milosavljevic <danny.milo@gmx.net>
102 # this are adrift (adventure game standard) game files, extension .taf
103 # depending on version magic continues with 0x93453E6139FA (V 4.0)
104 # 0x9445376139FA (V 3.90)
105 # 0x9445366139FA (V 3.80)
106 # this is from source (http://www.adrift.org.uk/) and I have some taf
107 # files, and checked them.
109 #>4 belong 0x6A87C2CF Adrift game file
110 #!:mime application/x-adrift