Commit | Line | Data |
---|---|---|
ab0b56cc JS |
1 | |
2 | #------------------------------------------------------------------------------ | |
e8af9738 | 3 | # $File: adventure,v 1.14 2012/06/21 01:32:26 christos Exp $ |
ab0b56cc JS |
4 | # adventure: file(1) magic for Adventure game files |
5 | # | |
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 | |
9 | # | |
10 | # ALAN | |
11 | # I assume there are other, lower versions, but these are the only ones I | |
12 | # saw in the archive. | |
13 | 0 beshort 0x0206 ALAN game data | |
14 | >2 byte <10 version 2.6%d | |
15 | ||
2be182fc JS |
16 | |
17 | # Infocom (see z-machine) | |
18 | #------------------------------------------------------------------------------ | |
19 | # Z-machine: file(1) magic for Z-machine binaries. | |
e4d4ce0c | 20 | # Updated by Adam Buchbinder <adam.buchbinder@gmail.com> |
2be182fc | 21 | # |
e4d4ce0c PA |
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. | |
2be182fc | 28 | # |
e4d4ce0c PA |
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. | |
2be182fc | 33 | # |
e4d4ce0c PA |
34 | 0 ubyte >0 |
35 | >0 ubyte <9 | |
e8af9738 PA |
36 | >>16 belong&0xfe00f0f0 0x3030 |
37 | >>>0 ubyte < 10 | |
38 | >>>>2 ubeshort < 10 | |
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) | |
43 | !:strength + 40 | |
2be182fc JS |
44 | |
45 | #------------------------------------------------------------------------------ | |
46 | # Glulx: file(1) magic for Glulx binaries. | |
47 | # | |
48 | # I haven't checked for false matches yet. | |
49 | # | |
50 | 0 string Glul Glulx game data | |
51 | >4 beshort x (Version %d | |
52 | >>6 byte x \b.%d | |
53 | >>8 byte x \b.%d) | |
54 | >36 string Info Compiled by Inform | |
55 | ||
56 | ||
57 | ||
58 | # For Quetzal and blorb magic see iff | |
59 | ||
ab0b56cc | 60 | |
e4d4ce0c | 61 | # TADS (Text Adventure Development System) version 2 |
ab0b56cc | 62 | # All files are machine-independent (games compile to byte-code) and are tagged |
e4d4ce0c | 63 | # with a version string of the form "V2.<digit>.<digit>\0". |
ab0b56cc JS |
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 | |
67 | >9 belong 0x0A0D1A00 | |
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 | |
72 | >9 belong 0x0A0D1A00 | |
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 | |
79 | >12 belong 0x0A0D1A00 | |
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 | |
82 | # version. | |
83 | 0 string TADS2\ save TADS | |
84 | >10 belong !0x0A0D1A00 saved game data, CORRUPTED | |
85 | >10 belong 0x0A0D1A00 | |
86 | >>14 string >\0 %s saved game data | |
2be182fc | 87 | |
e4d4ce0c PA |
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 | |
94 | 0 string T3-state-v | |
95 | >14 string \015\012\032 TADS 3 saved game data (format version | |
96 | >>10 byte x %c | |
97 | >>11 byte x \b%c | |
98 | >>12 byte x \b%c | |
99 | >>13 byte x \b%c) | |
100 | ||
79343712 PA |
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. | |
108 | #0 belong 0x3C423FC9 | |
109 | #>4 belong 0x6A87C2CF Adrift game file | |
110 | #!:mime application/x-adrift |