# Felix von Leitner <felix-file@fefe.de>
0 string d8:announce BitTorrent file
-# ACE archive (Nikolay Petrov, nik@techlab.office1.bg)
-7 string **ACE** Winace archive data
-
# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
0 beshort 0x0e0f Atari MSA archive data
->2 beshort x \b, %d sectors per track
->4 beshort 0 \b, 1 sided
->4 beshort 1 \b, 2 sided
->6 beshort x \b, starting track: %d
->8 beshort x \b, ending track: %d
+>2 beshort x \b, %d sectors per track
+>4 beshort 0 \b, 1 sided
+>4 beshort 1 \b, 2 sided
+>6 beshort x \b, starting track: %d
+>8 beshort x \b, ending track: %d
# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
-0 string PK00PK\003\004 Zip archive data
+0 string PK00PK\003\004 Zip archive data
+
+# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
+# by Stefan `Sec` Zehl <sec@42.org>
+7 string **ACE** ACE compressed archive
+>15 byte >0 version %d
+>16 byte =0x00 \b, from MS-DOS
+>16 byte =0x01 \b, from OS/2
+>16 byte =0x02 \b, from Win/32
+>16 byte =0x03 \b, from Unix
+>16 byte =0x04 \b, from MacOS
+>16 byte =0x05 \b, from WinNT
+>16 byte =0x06 \b, from Primos
+>16 byte =0x07 \b, from AppleGS
+>16 byte =0x08 \b, from Atari
+>16 byte =0x09 \b, from Vax/VMS
+>16 byte =0x0A \b, from Amiga
+>16 byte =0x0B \b, from Next
+>14 byte x \b, version %d to extract
+>5 leshort &0x0080 \b, multiple volumes,
+>>17 byte x \b (part %d),
+>5 leshort &0x0002 \b, contains comment
+>5 leshort &0x0200 \b, sfx
+>5 leshort &0x0400 \b, small dictionary
+>5 leshort &0x0800 \b, multi-volume
+>5 leshort &0x1000 \b, contains AV-String
+>>30 string\x16*UNREGISTERED\x20VERSION* (unregistered)
+>5 leshort &0x2000 \b, with recovery record
+>5 leshort &0x4000 \b, locked
+>5 leshort &0x8000 \b, solid
+# Date in MS-DOS format (whatever that is)
+#>18 lelong x Created on
# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
# Oct 31, 1995
+# fixed by <doj@cubic.org> 2003-06-24
0 string MTM MultiTracker Module sound file
-#0 string if Composer 669 Module sound data
-0 string FAR Module sound data
+0 string if Composer 669 Module sound data
+0 string JN Composer 669 Module sound data (extended format)
0 string MAS_U ULT(imate) Module sound data
+
+0 string FAR Module sound data
+>4 string >\15 Title: "%s"
+
0x2c string SCRM ScreamTracker III Module sound data
-0 string Extended Module Extended Module sound data
+>0 string >\0 Title: "%s"
# Gravis UltraSound patches
# From <ache@nagual.ru>
#
# Taken from loader code from mikmod version 2.14
# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-0 string JN extended 669 module data
+# <doj@cubic.org> added title printing on 2003-06-24
0 string MAS_UTrack_V00
>14 string >/0 ultratracker V1.%.1s module sound data
+
0 string UN05 MikMod UNI format module sound data
+
0 string Extended\ Module: Fasttracker II module sound data
+>17 string >\0 Title: "%s"
+
21 string/c !SCREAM! Screamtracker 2 module sound data
21 string BMOD2STM Screamtracker 2 module sound data
1080 string M.K. 4-channel Protracker module sound data
+>0 string >\0 Title: "%s"
1080 string M!K! 4-channel Protracker module sound data
+>0 string >\0 Title: "%s"
1080 string FLT4 4-channel Startracker module sound data
+>0 string >\0 Title: "%s"
+1080 string FLT8 8-channel Startracker module sound data
+>0 string >\0 Title: "%s"
1080 string 4CHN 4-channel Fasttracker module sound data
+>0 string >\0 Title: "%s"
1080 string 6CHN 6-channel Fasttracker module sound data
+>0 string >\0 Title: "%s"
1080 string 8CHN 8-channel Fasttracker module sound data
+>0 string >\0 Title: "%s"
1080 string CD81 8-channel Octalyser module sound data
+>0 string >\0 Title: "%s"
1080 string OKTA 8-channel Oktalyzer module sound data
+>0 string >\0 Title: "%s"
# Not good enough.
#1082 string CH
#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data
1080 string 16CN 16-channel Taketracker module sound data
+>0 string >\0 Title: "%s"
1080 string 32CN 32-channel Taketracker module sound data
+>0 string >\0 Title: "%s"
# TOC sound files -Trevor Johnson <trevor@jpj.net>
#
0 string TOC TOC sound file
# sidfiles <pooka@iki.fi>
+# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
0 string SIDPLAY\ INFOFILE Sidplay info file
+
0 string PSID PlaySID v2.2+ (AMIGA) sidtune
>4 beshort >0 w/ header v%d,
>14 beshort =1 single song,
>14 beshort >1 %d songs,
>16 beshort >0 default song: %d
+>0x16 string >\0 name: "%s"
+>0x36 string >\0 author: "%s"
+>0x56 string >\0 copyright: "%s"
+
+0 string RSID RSID sidtune PlaySID compatible
+>4 beshort >0 w/ header v%d,
+>14 beshort =1 single song,
+>14 beshort >1 %d songs,
+>16 beshort >0 default song: %d
+>0x16 string >\0 name: "%s"
+>0x36 string >\0 author: "%s"
+>0x56 string >\0 copyright: "%s"
# IRCAM <mpruett@sgi.com>
# VAX and MIPS files are little-endian; Sun and NeXT are big-endian
# Sample Vision <mpruett@sgi.com>
0 string SOUND\ SAMPLE\ DATA\ Sample Vision file
-# Audio Visual Research <mpruett@sgi.com>
-0 string 2BIT Audio Visual Research file
+# Audio Visual Research <tonigonenstein@users.sourceforge.net>
+0 string 2BIT Audio Visual Research file,
+>12 beshort =0 mono,
+>12 beshort =-1 stereo,
+>14 beshort x %d bits
+>16 beshort =0 unsigned,
+>16 beshort =-1 signed,
+>22 belong&0x00ffffff x %d Hz,
+>18 beshort =0 no loop,
+>18 beshort =-1 loop,
+>21 ubyte <=127 note %d,
+>22 byte =0 replay 5.485 KHz
+>22 byte =1 replay 8.084 KHz
+>22 byte =2 replay 10.971 Khz
+>22 byte =3 replay 16.168 Khz
+>22 byte =4 replay 21.942 KHz
+>22 byte =5 replay 32.336 KHz
+>22 byte =6 replay 43.885 KHz
+>22 byte =7 replay 47.261 KHz
# SGI SoundTrack <mpruett@sgi.com>
0 string _SGI_SoundTrack SGI SoundTrack project file
0 string FTMN FaceTheMusic module
>16 string >\0d \b, "%s"
+# From: <doj@cubic.org> 2003-06-24
+0 string AMShdr\32 Velvet Studio AMS Module v2.2
+0 string Extreme Extreme Tracker AMS Module v1.3
+0 string DDMF Xtracker DMF Module
+>4 byte x v%i
+>0xD string >\0 Title: "%s"
+>0x2B string >\0 Composer: "%s"
+0 string DSM\32 Dynamic Studio Module DSM
+0 string SONG DigiTrekker DTM Module
+0 string DMDL DigiTrakker MDL Module
+0 string PSM\32 Protracker Studio PSM Module
+44 string PTMF Poly Tracker PTM Module
+>0 string >\32 Title: "%s"
+0 string MT20 MadTracker 2.0 Module MT2
+0 string RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
+0 string RTMM RTM Module
+0x426 string MaDoKaN96 XMS Adlib Module
+>0 string >\0 Composer: "%s"
+0 string AMF AMF Module
+>4 string >\0 Title: "%s"
+0 string MODINFO1 Open Cubic Player Module Inforation MDZ
+0 string Extended\40Instrument: Fast Tracker II Instrument
+
# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
# NOA Nancy Codec file
0 string \210NOA\015\012\032 NOA Nancy Codec Movie file
--- /dev/null
+
+#------------------------------------------------------------------------------
+# c64: file(1) magic for various commodore 64 related files
+#
+# From <doj@cubic.org>
+
+0x16500 belong 0x12014100 D64 Image
+0x16500 belong 0x12014180 D71 Image
+0x61800 belong 0x28034400 D81 Image
+0 string C64\40CARTRIDGE CCS C64 Emultar Cartridge Image
+0 belong 0x43154164 X64 Image
+
+0 string GCR-1541 GCR Image
+>8 byte x version: $i
+>9 byte x tracks: %i
+
+9 string PSUR ARC archive (c64)
+2 string -LH1- LHA archive (c64)
+
+0 string C64File PC64 Emulator file
+>8 string >\0 "%s"
+0 string C64Image PC64 Freezer Image
+
+0 beshort 0x38CD C64 PCLink Image
+0 string CBM\144\0\0 Power 64 C64 Emulator Snapshot
+
+0 belong 0xFF424CFF WRAptor packer (c64)
0 string #!\ /usr/bin/env a
>16 string >\0 %s script text executable
-
-# generic shell magic
-0 string #!\ / a
->3 string >\0 %s script text executable
-0 string #!\ / a
->3 string >\0 %s script text executable
-0 string #!/ a
->2 string >\0 %s script text executable
-0 string #!\ script text executable
->3 string >\0 for %s
-
# PHP scripts
# Ulf Harnhammar <ulfh@update.uu.se>
0 string/c =<?php PHP script text
>2 belong >1 \b, %d characters originally
>2 belong =1 \b, %d character originally
#
-# This magic number is byte-order-independent. XXX - Does that mean this
-# is big-endian, little-endian, either, or that you can't tell?
-# this short is valid for SunOS
-0 short 017437 old packed data
+# This magic number is byte-order-independent.
+0 short 0x1f1f old packed data
# XXX - why *two* entries for "compacted data", one of which is
# byte-order independent, and one of which is byte-order dependent?
0 string \007\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
0 string \012\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
+
+# Opentype font data from Avi Bercovich
+0 string OTTO OpenType font data
+
--- /dev/null
+
+#------------------------------------------------------------------------------
+# gcc: file(1) magic for GCC special files
+#
+0 string gpch GCC precompiled header
+
+# The version field is annoying. It's 3 characters, not zero-terminated.
+>5 byte x (version %c
+>6 byte x \b%c
+>7 byte x \b%c)
+
+# 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
+>4 byte 67 for C
+>4 byte 111 for Objective C
+>4 byte 43 for C++
+>4 byte 79 for Objective C++
>12 belong 3 shared library
>12 belong 4 core
>12 belong 5 preload executable
->12 belong >5
+>12 belong 6 dynamically linked shared library
+>12 belong 7 dynamic linker
+>12 belong 8 bundle
+>12 belong >8
>>12 belong x filetype=%ld
>4 belong <0
>>4 belong x architecture=%ld
>4 belong 15 i860-big
>4 belong 16 i860
>4 belong 17 rs6000
->4 belong 18 powerPC
+>4 belong 18 ppc
>4 belong >18
>>4 belong x architecture=%ld
# Macintosh filesystem data
# From "Tom N Harris" <telliamed@mac.com>
+# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
# entries depend on the data arithmetic added after v.35
# There's also some Pascal strings in here, ditto...
>0 beshort 0x4C4B (bootable)
>0x40a beshort &0x8000 (locked)
>0x40a beshort ^0x0100 (mounted)
+>0x40a beshort &0x0200 (spared blocks)
>0x40a beshort &0x0800 (unclean)
+>0x47C beshort 0x482B (Embedded HFS+ Volume)
>0x402 beldate-0x7C25B080 x created: %s,
>0x406 beldate-0x7C25B080 x last modified: %s,
>0x440 beldate-0x7C25B080 >0 last backup: %s,
>0x414 belong x block size: %d,
>0x412 beshort x number of blocks: %d,
>0x424 pstring x volume name: %s
-#>0x480 beshort =0x482B Embedded HFS+ Volume:
-#>>((0x482*(0x414))+(0x41c*512)) x \b
-# Well, this is (theoretically) how we could do this. But it occurs to
-# me that we likely don't read in a large enough chunk. I don't have any
-# HFS+ volumes to see what a typical offset would be.
0x400 beshort 0x482B Macintosh HFS Extended
->&2 beshort x version %d data
+>&0 beshort x version %d data
>0 beshort 0x4C4B (bootable)
->&4 belong ^0x00000100 (mounted)
->&4 belong &0x00000800 (unclean)
->&4 belong &0x00008000 (locked)
->&8 string x last mounted by: '%.4s',
+>0x404 belong ^0x00000100 (mounted)
+>&2 belong &0x00000200 (spared blocks)
+>&2 belong &0x00000800 (unclean)
+>&2 belong &0x00008000 (locked)
+>&6 string x last mounted by: '%.4s',
# really, that should be treated as a belong and we print a string
# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
->&16 beldate-0x7C25B080 x created: %s,
->&20 beldate-0x7C25B080 x last modified: %s,
->&24 beldate-0x7C25B080 >0 last backup: %s,
->&28 beldate-0x7C25B080 >0 last checked: %s,
->&40 belong x block size: %d,
->&44 belong x number of blocks: %d,
->&48 belong x free blocks: %d
+>&14 beldate-0x7C25B080 x created: %s,
+# only the creation date is local time, all other timestamps in HFS+ are UTC.
+>&18 bedate-0x7C25B080 x last modified: %s,
+>&22 bedate-0x7C25B080 >0 last backup: %s,
+>&26 bedate-0x7C25B080 >0 last checked: %s,
+>&38 belong x block size: %d,
+>&42 belong x number of blocks: %d,
+>&46 belong x free blocks: %d
# I don't think this is really necessary since it doesn't do much and
# anything with a valid driver descriptor will also have a valid
# cstring. Of course, partitions can contain more than four entries, but
# what're you gonna do?
0x200 beshort 0x504D Apple Partition data
->&2 beshort x block size: %d
->&48 string x first type: %s,
->&12 belong x number of blocks: %d,
->(&0x2.S) beshort 0x504D
->>&48 string x second type: %s
->>&12 belong x number of blocks: %d,
->>(&0x2.S) beshort 0x504D
->>>&48 string x third type: %s
->>>&12 belong x number of blocks: %d,
->>>(&0x2.S) beshort 0x504D
->>>>&48 string x fourth type: %s
->>>>&12 belong x number of blocks: %d,
+>0x2 beshort x block size: %d,
+>0x230 string x first type: %s,
+>0x210 string x name: %s,
+>0x254 belong x number of blocks: %d,
+>0x400 beshort 0x504D
+>>0x430 string x second type: %s,
+>>0x410 string x name: %s,
+>>0x454 belong x number of blocks: %d,
+>>0x800 beshort 0x504D
+>>>0x830 string x third type: %s,
+>>>0x810 string x name: %s,
+>>>0x854 belong x number of blocks: %d,
+>>>0xa00 beshort 0x504D
+>>>>0xa30 string x fourth type: %s,
+>>>>0xa10 string x name: %s,
+>>>>0xa54 belong x number of blocks: %d
# AFAIK, only the signature is different
0x200 beshort 0x5453 Apple Old Partition data
->&2 beshort x block size: %d
->&48 string x first type: %s,
->&12 belong x number of blocks: %d,
->(&0x2.S) beshort 0x504D
->>&48 string x second type: %s
->>&12 belong x number of blocks: %d,
->>(&0x2.S) beshort 0x504D
->>>&48 string x third type: %s
->>>&12 belong x number of blocks: %d,
->>>(&0x2.S) beshort 0x504D
->>>>&48 string x fourth type: %s
->>>>&12 belong x number of blocks: %d,
+>0x2 beshort x block size: %d,
+>0x230 string x first type: %s,
+>0x210 string x name: %s,
+>0x254 belong x number of blocks: %d,
+>0x400 beshort 0x504D
+>>0x430 string x second type: %s,
+>>0x410 string x name: %s,
+>>0x454 belong x number of blocks: %d,
+>>0x800 beshort 0x504D
+>>>0x830 string x third type: %s,
+>>>0x810 string x name: %s,
+>>>0x854 belong x number of blocks: %d,
+>>>0xa00 beshort 0x504D
+>>>>0xa30 string x fourth type: %s,
+>>>>0xa10 string x name: %s,
+>>>>0xa54 belong x number of blocks: %d
# Acroread or something files wrongly identified as G3 .pfm
# these have the form \000 \001 any? \002 \000 \000
# or \000 \001 any? \022 \000 \000
-0 string \000\001 pfm?
->3 string \022\000\000Copyright\ yes
->3 string \002\000\000Copyright\ yes
+#0 string \000\001 pfm?
+#>3 string \022\000\000Copyright\ yes
+#>3 string \002\000\000Copyright\ yes
#>3 string >\0 oops, not a font file. Cancel that.
#it clashes with ttf files so put it lower down.
# This would otherwise be recognized as PostScript - nick@debian.org
0 string %!VMF SunClock's Vector Map Format data
+
+#------------------------------------------------------------------------------
+# HP LaserJet 1000 series downloadable firmware file
+0 string \xbe\xefABCDEFGH HP LaserJet 1000 series downloadable fir
+mware
>>20 leshort 1 \b, Microsoft PCM
>>>34 leshort >0 \b, %d bit
>>20 leshort 2 \b, Microsoft ADPCM
->>20 leshort 6 \b, ITU G.711 a-law
+>>20 leshort 6 \b, ITU G.711 A-law
>>20 leshort 7 \b, ITU G.711 mu-law
>>20 leshort 17 \b, IMA ADPCM
>>20 leshort 20 \b, ITU G.723 ADPCM (Yamaha)
--- /dev/null
+
+#------------------------------------------------------------------------------
+# sgi: file(1) magic for Silicon Graphics applications
+
+#
+#
+# Performance Co-Pilot file types
+0 string PmNs PCP compiled namespace (V.0)
+0 string PmN PCP compiled namespace
+>3 addr x (V.%1.1s)
+3 long 0x84500526 PCP archive
+>7 byte x (V.%d)
+>20 long -2 temporal index
+>20 long -1 metadata
+>20 long 0 log volume #0
+>20 long >0 log volume #%ld
+>24 addr x host: %s
+0 string PCPFolio PCP
+>9 string Version: Archive Folio
+>18 addr x (V.%s)
+0 string #pmchart PCP pmchart view
+>9 string Version
+>17 addr x (V%-3.3s)
+0 string pmview PCP pmview config
+>7 string Version
+>15 addr x (V%-3.3s)
+0 string #pmlogger PCP pmlogger config
+>10 string Version
+>18 addr x (V%1.1s)
+0 string PcPh PCP Help
+>4 string 1 Index
+>4 string 2 Text
+>5 addr x (V.%1.1s)
+0 string #pmieconf-rules PCP pmieconf rules
+>16 addr x (V.%1.1s)
+3 string pmieconf-pmie PCP pmie config
+>17 addr x (V.%1.1s)
+
+# SpeedShop data files
+0 long 0x13130303 SpeedShop data file
+
+# mdbm files
+0 long 0x01023962 mdbm file, version 0 (obsolete)
+0 string mdbm mdbm file,
+>5 byte x version %d,
+>6 byte x 2^%d pages,
+>7 byte x pagesize 2^%d,
+>17 byte x hash %d,
+>11 byte x dataformat %d
+
+# Alias|Wavefront Maya files
+0 string //Maya ASCII Alias|Wavefront Maya Ascii File,
+>13 addr x version %s
+8 string MAYAFOR4 Alias|Wavefront Maya Binary File,
+>32 addr x version %s scene
+8 string MayaFOR4 Alias|Wavefront Maya Binary File,
+>32 addr x version %s scene
+8 string CIMG Alias|Wavefront Maya Image File
+8 string DEEP Alias|Wavefront Maya Image File
>12 belong 7 (IBM channel-to-channel adapter)
>12 belong 8 (FDDI)
>12 belong 9 (Unknown)
+
+# Microsoft ICM color profile
+36 string acspMSFT Microsoft ICM Color Profile
# Sun KCMS
36 string acsp Kodak Color Management System, ICC Profile
-
-
>4 long x - version %ld
# From: Dave Pearson <davep@davep.org>
# Harbour <URL:http://www.harbour-project.org/> HRB files.
-0 string \xc0HRB Harbour HRB file
->4 short x version %d
+0 string \xc0HRB Harbour HRB file
+>4 short x version %d
+
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+0 belong 0x000001EB Plan 9 executable
--- /dev/null
+#------------------------------------------------------------------------------
+# varied.script: file(1) magic for various interpreter scripts
+
+0 string #!\ / a
+>3 string >\0 %s script text executable
+0 string #!\ / a
+>3 string >\0 %s script text executable
+0 string #!/ a
+>2 string >\0 %s script text executable
+0 string #!\ script text executable
+>3 string >\0 for %s
+
##>>14 lelong x (Serial %lX)
# --- First vorbis packet - general header ---
>>28 string \x01vorbis \b, Vorbis audio,
+# non-Vorbis content: FLAC (Free Loss-lessy Audio Codec,
+# http://flac.sourceforge.net)
+>>28 string fLaC \b, FLAC audio
>>>35 lelong !0 UNKNOWN VERSION %lu,
##>>>35 lelong 0 version 0,
>>>35 lelong 0
# Minimal, nominal and maximal bitrates specified when encoding
>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \b,
# The above tests if at least one of these is specified:
->>>>>44 lelong !-1
+>>>>>52 lelong !-1
# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
# instead of -1.
# Vorbis 1.0 uses 0 instead of -1.
->>>>>>44 lelong !-1000
->>>>>>>44 lelong !0
->>>>>>>>44 lelong x >%lu
->>>>>48 lelong !-1
->>>>>>48 lelong x ~%lu
->>>>>52 lelong !-1
>>>>>>52 lelong !0
>>>>>>>52 lelong !-1000
>>>>>>>>52 lelong x <%lu
+>>>>>48 lelong !-1
+>>>>>>48 lelong x ~%lu
+>>>>>44 lelong !-1
+>>>>>>44 lelong !-1000
+>>>>>>>44 lelong !0
+>>>>>>>>44 lelong x >%lu
>>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff bps
# -- Second vorbis header packet - the comments
# A kludge to read the vendor string. It's a counted string, not a
--- /dev/null
+
+#------------------------------------------------------------------------------
+# xwindows: file(1) magic for various X/Window system file formats.
+
+# Compiled X Keymap
+# XKM (compiled X keymap) files (including version and byte ordering)
+1 string mkx Compiled XKB Keymap: lsb,
+>0 byte >0 version %d
+>0 byte =0 obsolete
+0 string xkm Compiled XKB Keymap: msb,
+>3 byte >0 version %d
+>0 byte =0 obsolete
+
+# xfsdump archive
+0 string xFSdump0 xfsdump archive
+>8 long x (version %d)
+
+# Jaleo XFS files
+0 long 395726 Jaleo XFS file
+>4 long x - version %ld
+>8 long x - [%ld -
+>20 long x \b%ldx
+>24 long x \b%ldx
+>28 long 1008 \bYUV422]
+>28 long 1000 \bRGB24]