# WhatIs.library Copyright by Sylvain ROUGIER and Pierre CARRETTE
# send donnation bug/report to :
# Sylvain ROUGIER
# 39 rue carnot
# 86000 Poitiers
# France
# rougier@ss3.univ-poitiers.fr
#
# For commercial use, ask written permision.
# For non-comercial use, you can redistribute whatis.library package
#

# "# " = Comment

# LZX Archive
TYPE "LZX Arc"
    OPTNAMEPATTERN "#?.LZX"
    SEARCHBYTE "LZX"
ENDTYPE

# PowerPacker
TYPE "PowerPack"
    OPTNAMEPATTERN "#?.PP"
    SEARCHBYTE "PP20"
ENDTYPE

# example definition:
TYPE "Src Ada"      # you define a new type, his IDString ( curently 9
            # char max) was "Src Ada", this is the string that
            #  was  return by WhatIs.library and you can see in
            #  BrowserII  when you put the "Show file type", it
            # is also the way you identify this FileType.

    SUBTYPE "Text"  # OPT:  the file MUST be prior of the type "Text",
            # this  means  that if the file is not of the type
            # test,  WhatIs.library  think  it is not the type
            # "Src Ada"

    INSERTAFTER "Script"    #  OPT:  You want that the type "Src Ada"
                #  was  put after the type "Script", it not
                #  an alpha order but an arbitrary FileType
                # order, you can see this order when you
                # choose "Sort by file type" in BrowserII

    ICONNAME "def_Src Ada"      # OPT:  this is the name of the default icon
                    #  file  name, in case the file you
                    # examine haven't, this is only the
                    # file   name   (   returned   by
                    # GetIconName()) whitout any path,
                    # it  is  to  the  appli-prog  to
                    # search   it  in  the  apropiate
                    # directory.     (commnly    the
                    # "ENV:Sys/" directory)

    # now come the decription of the file, if ANY condition below is
    # not reach, the WhatIs.library say it is not this filetype.
    # Exepte for OPNAMEPATTERN which is use for light WhatIs() (only
    # based on the file name)

    NAMEPATTERN "#?.ada"    #  OPT:  if the filename don't match to this
                # pattern, it not of this FileType
                # it is exclusive whith OPTNAMEPATTERN

#   OPTNAMEPATTERN "#?.ada"     # OPT:  same thing than NAMEPATTERN but it
                    # use ONLY if no DEEP scan is
                    # available ( light WhatIs() ), in
                    # any other scan ( for instance
                    # DEEP scan), it is IGNORED

    # now come the DEEP desciption, it is the heart of reconised
    # process.  You can specify number in decimal ( begining whith
    # nothing), in hex ( begining whith "$"), in binary (begining
    # whith "%"), or in string (begining whith '"')
    #  All  the search ( and acces) are in the first few byte of file (
    # currently 484)
    #  all  this  contion  are  optional.  and is considered as TRUE if
    # light WhatIs

    COMPAREBYTE 12 $ABADCAFE    # test if the file contain the byte $AB
                    # $AD $CA $FE at offset 12

    COMPAREBYTE $23 "Hello"     #  test  if  the file contain the string
                    #  "Hello"  (  i.e the byte $48 $65
                    # $6c $6f) at offset $23 ( decimal 35)

    # in version 2 of WhatIs.library ( only unde KS2.x) you have a CASE
    # modifier, this means "A" is different of "a".

    SEARCHBYTE "Good"   #  search  in  the  first  few  byte  of file (
                #  currently  480  first  byte)  the string
                # "Good"

    SEARCHBYTE $DEADBEEF    #  search the byte $DE $AD $BE $EF (in this
                #  order  and  in succetion) in the file

    SEARCHPATTERN "ST-??:"  # search if the pattern "ST-??:" are present
                # in the file.
#   MATCHPATTERN ....

ENDTYPE # this mark the end of this FileType definition
#######################################################################

TYPE "NewIcon"
    SUBTYPE "Icon"
    SEARCHBYTE "*** DON'T EDIT THE FOLLOWING LINES!! ***"
ENDTYPE

TYPE "Icn Disk"
    SUBTYPE "Icon"
    INSERTAFTER "Icon"
    OPTNAMEPATTERN "Disk.info"
    COMPAREBYTE $30 $01
ENDTYPE

TYPE "Icn Drw"
    SUBTYPE "Icon"
    INSERTAFTER "Icn Disk"
    COMPAREBYTE $30 $02
ENDTYPE

TYPE "Icn Tool"
    SUBTYPE "Icon"
    INSERTAFTER "Icn Drw"
    COMPAREBYTE $30 $03
ENDTYPE

TYPE "Icn Pjct"
    SUBTYPE "Icon"
    INSERTAFTER "Icn Tool"
    COMPAREBYTE $30 $04
ENDTYPE

TYPE "Icn Grbg"
    SUBTYPE "Icon"
    INSERTAFTER "Icn Pjct"
    COMPAREBYTE $30 $05
ENDTYPE

TYPE "PPLoadSeg"
    INSERTAFTER "PP40 Exe"
    COMPAREBYTE 0 "PPLS"
ENDTYPE

TYPE "PPLibHead"
    INSERTAFTER "PP40 Exe"
    COMPAREBYTE $78 $FE864CDF7FFF4E75
ENDTYPE

TYPE "Impl Exe"
    SUBTYPE "Exe"
    SEARCHBYTE $7A0052464E
#   SEARCHBYTE "RFN"    # I am not sure this is a real identifier for IMPL loadseg
ENDTYPE

TYPE "ImpLS"    # executable imploded whith Imploder-Library root to alow crunche of amiga device/fonts/library
        SUBTYPE "Exe"
        SEARCHBYTE "explode.library"
ENDTYPE

TYPE "ImpLS Lib"    # library imploded whith Imploder-Library root to alow crunche of amiga device/fonts/library
        SUBTYPE "ImpLS"
        NAMEPATTERN "#?.library#?"
ENDTYPE

#TYPE "Library"
#   SUBTYPE "Exe"
#   INSERTAFTER "ImpLS Lib"
#   NAMEPATTERN "#?.library#?"
#ENDTYPE

TYPE "Doc"
    SUBTYPE "Text"
    INSERTAFTER "Text"
    ICONNAME    "def_doc"
    NAMEPATTERN "#?.doc~(#?.INFO)"
ENDTYPE

TYPE "Source C"
    SUBTYPE "Text"
    ICONNAME    "def_Source C"
    NAMEPATTERN "#?.c"
ENDTYPE

TYPE "Src CXX"
    SUBTYPE "Source C"
    ICONNAME    "def_Source CXX"
    NAMEPATTERN "#?.cxx"
ENDTYPE

TYPE "Include C"
    SUBTYPE "Text"
    ICONNAME    "def_Include C"
    NAMEPATTERN "#?.h"
ENDTYPE

TYPE "Asm"
    SUBTYPE "Text"
    ICONNAME    "def_Asm"
    NAMEPATTERN "#?.(a|s|asm)"
ENDTYPE

TYPE "Source E"
#> Source AmigaE
    SUBTYPE "Text"
    ICONNAME "def_E"
    NAMEPATTERN "#?.e"
ENDTYPE
TYPE "Include E"
#> Include AmigaE
    ICONNAME "def_ince"
    NAMEPATTERN "#?.m"
    COMPAREBYTE 0 "EMOD"
ENDTYPE

TYPE "Incld Asm"
    SUBTYPE "Text"
    ICONNAME    "def_Include Asm"
    NAMEPATTERN "#?.i"
ENDTYPE

TYPE "Rexx"
    SUBTYPE "Text"
    ICONNAME    "def_Rexx"
    OPTNAMEPATTERN "#?.rexx"
    SEARCHBYTE "rexx"
ENDTYPE

TYPE "Lisp c"
    # 'Compiled' Lisp programm
    OPTNAMEPATTERN "#?.elc"
    COMPAREBYTE 0 ";ELC"
ENDTYPE

TYPE "Tex"
    SUBTYPE "Text"
    ICONNAME    "def_Tex"
    NAMEPATTERN "#?.Tex"
ENDTYPE

TYPE "PS"
    SUBTYPE "Text"
    ICONNAME    "def_PostScript"
    OPTNAMEPATTERN "#?.ps"
    SEARCHBYTE "Adobe"
ENDTYPE

TYPE "Guide"
    SUBTYPE "Text"
    ICONNAME    "def_Guide"
    OPTNAMEPATTERN "#?.(Guide|AmigaGuide)"
    MATCHPATTERN 0 "@database"
ENDTYPE

TYPE "WW3"
    SUBTYPE "IFF"
    OPTNAMEPATTERN "#?.ww3"
    COMPAREBYTE 8 "WOWOWVRN"
ENDTYPE

TYPE "DR2D"
    SUBTYPE "IFF"
    COMPAREBYTE 8 "DR2D"
ENDTYPE
    
TYPE "Install"
    SUBTYPE "Text"
    ICONNAME    "def_Install"
    OPTNAMEPATTERN "#?Install#?"
    SEARCHPATTERN "$VER#?Install#?"
ENDTYPE


TYPE "GFA"
    OPTNAMEPATTERN "#?.GFA"
    COMPAREBYTE 2 "GFA-AMIGAB"
ENDTYPE

TYPE "MakeFile"
    SUBTYPE "Text"
    ICONNAME    "def_MakeFile"
    NAMEPATTERN "(((#?MakeFile)|(#?LmkFile))(|.bak))"
ENDTYPE

TYPE "ReadMe"
    SUBTYPE "Text"
    ICONNAME "def_ReadMe"
    NAMEPATTERN "#?Read#?Me#?"
ENDTYPE

TYPE "PP Doc"
    SUBTYPE "PP Data"
    ICONNAME "def_PP Doc"
    NAMEPATTERN "#?.(Doc#?.pp|Doc)"
ENDTYPE

TYPE "SFX"  #Self extracting LHA/LZH file
    SUBTYPE "Exe"
    INSERTAFTER "LHArc"
    ICONNAME "def_SFX"
    OPTNAMEPATTERN "#?.run"
    COMPAREBYTE 44 "SFX"
ENDTYPE
    
TYPE "Tex Font"
    COMPAREBYTE 0 $F7593647
ENDTYPE

TYPE "Tex DVI"
    OPTNAMEPATTERN "#?.dvi"
    COMPAREBYTE 0 $F7020183
ENDTYPE

TYPE "DMS"
    OPTNAMEPATTERN "#?.dms"
    COMPAREBYTE 0 "DMS!"
ENDTYPE

TYPE "PackDev"
    OPTNAMEPATTERN "#?.pkd????"
    COMPAREBYTE 0 "PKD"
ENDTYPE

TYPE "Warp"
    OPTNAMEPATTERN "#?.wrp"
    COMPAREBYTE 0 "Warp"
ENDTYPE

TYPE "Zoom"
    OPTNAMEPATTERN "#?.zoom"
    COMPAREBYTE 0 "ZOOM"
ENDTYPE

TYPE "UU"
    SUBTYPE "Text"
    NAMEPATTERN "#?.uu"
ENDTYPE

TYPE "ZIP"
    OPTNAMEPATTERN "#?.zip"
    COMPAREBYTE 0 $504B0304
ENDTYPE

TYPE "Manx DMP"
    OPTNAMEPATTERN "#?.dmp"
    COMPAREBYTE 0 "djg!"
ENDTYPE

TYPE "Manx DBG"
    OPTNAMEPATTERN "#?.dbg"
    COMPAREBYTE 0 $35D2
ENDTYPE

TYPE "PPM V1.8"
    OPTNAMEPATTERN "#?.PPM"
    COMPAREBYTE 0 $07231988
ENDTYPE

TYPE "PPM V2.1"
    OPTNAMEPATTERN "#?.PPM"
    COMPAREBYTE 0 $07231988
ENDTYPE

TYPE "MEd Song"
    OPTNAMEPATTERN "#?.med"
    COMPAREBYTE 0 $4d454404
    # "MED" $04
ENDTYPE

#built in
#TYPE "MEd Mod"
#   OPTNAMEPATTERN "#?.mmd"
#   COMPAREBYTE 0 "MMD"
#ENDTYPE

TYPE "PP MEdMOD"
    SUBTYPE "PP Data"
    INSERTAFTER "MEd MOD"
    ICONNAME "def_PP MEd MOD"
    NAMEPATTERN "#?.mmd.pp#?"
ENDTYPE

TYPE "LHArc MOD"
    SUBTYPE "LHArc"
    ICONNAME "def_LHArc MOD"
    NAMEPATTERN "#?.mod.lha"
ENDTYPE

TYPE "STSong"
    COMPAREBYTE 0 "PACK"
ENDTYPE

TYPE "ST Mod"
    ICONNAME "def_MOD"
    OPTNAMEPATTERN "(mod.#?|#?.mod)"
    COMPAREBYTE $32 "ST-"
    COMPAREBYTE $37 ":"
    COMPAREBYTE $50 "ST-"
    COMPAREBYTE $55 ":"
#   SEARCHPATTERN "#?st-??:#?"
ENDTYPE

TYPE "PP ST Mod"
    SUBTYPE "PP Data"
    NAMEPATTERN "(#?mod.#?|#?.?mod#?)"
ENDTYPE

TYPE "DSSMod"
#> Module DSS (musique).
    COMPAREBYTE 0 "MMU"
ENDTYPE

TYPE "Fred"
    OPTNAMEPATTERN "#?.Fred.#?"
    COMPAREBYTE $00 $4EFA00104EFA00A44EFA008E4EFA007C0F00123A
ENDTYPE

TYPE "TFMX Trck"
    OPTNAMEPATTERN "MDAT.#?"
    COMPAREBYTE $00 "TFMX"
ENDTYPE
TYPE "TFMX SMPL"
    OPTNAMEPATTERN "SMPL.#?"
    COMPAREBYTE $00 $00000000F805EFFCF3F40007DB00FDF0E804E7E0
ENDTYPE

TYPE "S3M"
    #this are module format which came from PC
    OPTNAMEPATTERN "#?.s3m#?"
    COMPAREBYTE $2C "SCRM"
ENDTYPE

TYPE "Okt Mod"
    OPTNAMEPATTERN "#?.Okt"
    COMPAREBYTE 0 "OKTASONG"
ENDTYPE

TYPE "Midi"
    OPTNAMEPATTERN "#?.Mid(#i)"
    COMPAREBYTE 0 $4D5468640000000600
ENDTYPE

TYPE "ADPCM"
    OPTNAMEPATTERN "#?.ADPCM?"
    COMPAREBYTE 0 "ADPCM"
ENDTYPE

TYPE "Fonts"
    ICONNAME "Def_Font"
    NAMEPATTERN "#?.font"
ENDTYPE

TYPE "ILBM8"
#> Image Ilbm 8 bitplanes
    SUBTYPE "IFF"
    ICONNAME "def_ham8"
    NAMEPATTERN "#?.ham8"
    COMPAREBYTE 0 "FORM"
    COMPAREBYTE 8 "ILBM"
    COMPAREBYTE 28 "$08"
ENDTYPE

#TYPE "ThNail"
##> ImageFX 2 Thunbnail
#    SUBTYPE "IFF"
#    OPTNAMEPATTERN "#?.icn.nail.info"
#    COMPAREBYTE 0 "FORM"
#    COMPAREBYTE 8 "NAIL"
#ENDTYPE

TYPE "Glimps"
    NAMEPATTERN "#?.glimps"
ENDTYPE

TYPE "JPEG" # the real name are JFIF, since JPEG are only a compression algorithms, not a file format
    ICONNAME "def_JPEG"
    OPTNAMEPATTERN "#?.j[pf]#?"
    COMPAREBYTE 0 $FFD8FF
    #COMPAREBYTE $06 "JFIF" #if not here it si not a real JFIF file
ENDTYPE

TYPE "PCX"
    ICONNAME "def_PCX"
    OPTNAMEPATTERN "#?.pcx#?"
    COMPAREBYTE 0 $0a0501
ENDTYPE

TYPE "GIF"
    ICONNAME "def_GIF"
    OPTNAMEPATTERN "#?.gif#?"
    COMPAREBYTE 0 "GIF8"
    COMPAREBYTE 5 "a"
ENDTYPE

TYPE "BMP"
    ICONNAME "def_BMP"
    OPTNAMEPATTERN "#?.bmp#?"
    COMPAREBYTE 0 "BM"
    COMPAREBYTE 6 $00000000
ENDTYPE
TYPE "BMP 1Bit"
    SUBTYPE "BMP"
    COMPAREBYTE $1c $01
ENDTYPE
TYPE "BMP 4Bit"
    SUBTYPE "BMP"
    COMPAREBYTE $1c $04
ENDTYPE
TYPE "BMP 8Bit"
    SUBTYPE "BMP"
    COMPAREBYTE $1c $08
ENDTYPE

TYPE "TARGA"
    NAMEPATTERN "#?.(tga|Targa))#?"
    # I don't know internal format, the first byte seem to change a lots between different image
ENDTYPE

TYPE "TIFF"
    #this type must be somewhere AFTER med mod because the first byte are the same
    OPTNAMEPATTERN "#?.tif#?"
    COMPAREBYTE 0 "MM"
#or
#   COMPAREBYTE 0 "II"
ENDTYPE

TYPE "TIFF Gray"
    ICONNAME "def_TIFF"
    OPTNAMEPATTERN "#?.tif#?"
    COMPAREBYTE 0 $49492A00
ENDTYPE

TYPE "PNG"
    ICONNAME "def_PNG"
    OPTNAMEPATTERN "#?.PNG" # S.R add this.
    COMPAREBYTE 0 $89504e470d0a1a0a # this spec came directly from Michael Console Battilana wich write to me.
ENDTYPE

TYPE "SUNRASTER"
    COMPAREBYTE 0 $59A66A95
ENDTYPE

TYPE "MPEG"
    ICONNAME "def_MPEG"
    OPTNAMEPATTERN "#?.(mpeg|mpg)"
    COMPAREBYTE 0 $000001B3
    COMPAREBYTE 10 $00
ENDTYPE

TYPE "RIFF"
    COMPAREBYTE 0 "RIFF"
ENDTYPE

TYPE "AVI"
    SUBTYPE "RIFF"
    ICONNAME "def_Anim"
    OPTNAMEPATTERN "#?.AVI#?"
    COMPAREBYTE 8 "AVI "
ENDTYPE

TYPE "Wave"
    SUBTYPE "RIFF"
    ICONNAME "def_Sound"
    OPTNAMEPATTERN "#?.wav#?"
    COMPAREBYTE 8 "WAVE"
ENDTYPE

TYPE "MaxiPlan"
    COMPAREBYTE 0 $474c424c
ENDTYPE

TYPE "Mnx5.0Obj"
    INSERTAFTER "Object"
    ICONNAME "def_Mnx5.0Obj"
    COMPAREBYTE 0 $434a
ENDTYPE

TYPE "Mnx3.6Obj"
    INSERTAFTER "Object"
    ICONNAME "def_Mnx3.6Obj"
    COMPAREBYTE 0 $414a
ENDTYPE

TYPE "Mnx5.0Lib"
    INSERTAFTER "Object"
    ICONNAME "def_Mnx5.0Lib"
    COMPAREBYTE 0 $636a
ENDTYPE

TYPE "Mnx3.6Lib"
    INSERTAFTER "Object"
    ICONNAME "def_Mnx3.6Lib"
    COMPAREBYTE 0 $616a
ENDTYPE

TYPE "Imagine"
    SUBTYPE "IFF"
    INSERTAFTER "FTXT"
    ICONNAME "def_Imagine"
    COMPAREBYTE 8 "TDDD"
ENDTYPE

TYPE "CDAF"                     # Compressed Data Archive File
    SUBTYPE "IFF"
    ICONNAME "def_CDAF"
    COMPAREBYTE 8 "CDAF"
ENDTYPE

TYPE "Shrink"
    SUBTYPE "CDAF"
    ICONNAME "def_Shrink"
    OPTNAMEPATTERN "#?.shr"
    COMPAREBYTE 20 "shrinkFILE" # 20 is offset of archiver name
ENDTYPE

TYPE "Caligari"
    ICONNAME "def_Caligari"
    COMPAREBYTE 0 "CALB"
ENDTYPE

TYPE "Vista DEM"
    ICONNAME "def_Vista_DEM"
    OPTNAMEPATTERN "#?.DEM#?"
    COMPAREBYTE 0 "Vista DEM File"
ENDTYPE

TYPE "EPUed"
    #Beter known as 'DiskExpander'
    COMPAREBYTE 0 $018063680561
ENDTYPE
    TYPE "EPU-XPK"
        SUBTYPE "EPUed"
        COMPAREBYTE $10 "xpk"
    ENDTYPE
        TYPE "EPU-NUKE"
            SUBTYPE "EPU-XPK"
            COMPAREBYTE $13 "NUKE"
        ENDTYPE
        TYPE "EPU-SQSH"
            SUBTYPE "EPU-XPK"
            COMPAREBYTE $13 "SQSH"
        ENDTYPE

TYPE "GZip"
    OPTNAMEPATTERN "#?.gz"
    COMPAREBYTE 0 $1F8B0800
ENDTYPE

TYPE "Tar GZip"
    NAMEPATTERN "#?.(tar.(z|gz)|tgz)"
ENDTYPE

TYPE "CG.Type"
    OPTNAMEPATTERN "#?.Type"
    COMPAREBYTE 0 $004400010000002000000002000002200014FFFF
ENDTYPE

TYPE "CG.otag"
    OPTNAMEPATTERN "#?.otag"
    COMPAREBYTE 0 $80001001
ENDTYPE

TYPE "CrM"
    COMPAREBYTE 0 "CrM2"
ENDTYPE

TYPE "RNC"
    COMPAREBYTE 0 "RNC"
ENDTYPE

TYPE "xPK"
    OPTNAMEPATTERN "#?.xPK????"
    COMPAREBYTE 0 "XPKF"
ENDTYPE
TYPE "xPK SQSH"
    SUBTYPE "xPK"
    OPTNAMEPATTERN "#?.xPKSQSH"
    COMPAREBYTE 8 "SQSH"
ENDTYPE
TYPE "xPK NUKE"
    SUBTYPE "xPK"
    OPTNAMEPATTERN "#?.xPKNUKE"
    COMPAREBYTE 8 "NUKE"
ENDTYPE

TYPE "xPK Mod"
    SUBTYPE "xPK"
    NAMEPATTERN "(mod.#?|#?.(%|?)mod(%|.pp|.xPK)|#?.mmd(%|.pp|.xPK))"
ENDTYPE

TYPE "BSD Exe"
    COMPAREBYTE 1 $87010B00
ENDTYPE

TYPE "Catalog"
#> Catalogue
    SUBTYPE "IFF"
    ICONNAME "def_catalog"
    NAMEPATTERN "#?.catalog"
    COMPAREBYTE 0 "FORM"
    COMPAREBYTE 8 "CTLG"
ENDTYPE

TYPE "Object 3D"
#> Objets 3D
    NAMEPATTERN "#?.(3dpro|pro|3D2|3D|comp|img)"
ENDTYPE

TYPE "Pov"
#> Script Pov
    SUBTYPE "Text"
    ICONNAME "def_pov"
    NAMEPATTERN "#?.pov"
ENDTYPE

TYPE "Vertex_o"
#> Objets 3D Vertex < v1.62
    SUBTYPE "Object 3D"
    ICONNAME "def_3d_vertex(old)"
    COMPAREBYTE 0 $56453344
ENDTYPE

TYPE "Vertex_n"
#> Objets 3D Vertex > 1.73
    SUBTYPE "Object 3D"
    ICONNAME "def_3d_vertex(new)"
    COMPAREBYTE 0 $56523344
ENDTYPE

#TYPE "Vertex2.0"
#> Objets 3D Vertex v2.0
#    SUBTYPE "IFF"
#    OPTNAMEPATTERN "#?.3D"
#    COMPAREBYTE 0 "FORM"
#    COMPAREBYTE 8 "3DDD"
#ENDTYPE

TYPE "3Dpro"
#> Objets 3D 3Dpro
    SUBTYPE "Object 3D"
    ICONNAME "def_3d_3dpro"
    OPTNAMEPATTERN "#?.(pro|3dpro)"
    COMPAREBYTE 0 $435333444F4231
    SEARCHBYTE "CSOBJPALLETE1"
ENDTYPE

TYPE "3D2"
#> Objets 3D Cyber v2.0 (Atari)
    SUBTYPE "Object 3D"
    ICONNAME "def_3d_3d2"
    COMPAREBYTE 0 $3D02
ENDTYPE

TYPE "3D"
#> Objets 3D Cyber v1.0 (Atari)
    SUBTYPE "Object 3D"
    ICONNAME "def_3d_3d"
    NAMEPATTERN "#?.3D"
    COMPAREBYTE 0 $3D3D
ENDTYPE

TYPE "Geo"
#> Objets 3D Videoscape
    SUBTYPE "Text"
    ICONNAME "def_3d_Geo"
    NAMEPATTERN "#?.geo"
    COMPAREBYTE 0 "3DG1"
ENDTYPE

TYPE "LightWave"
#> Objets 3D Lightwave
    SUBTYPE "IFF"
    ICONNAME "def_3d_lightwave"
    COMPAREBYTE 8 "LWOB"
ENDTYPE

TYPE "SculptSC"
#> Objets 3D Scene de Sculpt
    SUBTYPE "IFF"
    ICONNAME "def_3d_sculptsc"
    NAMEPATTERN "#?.scene"
    COMPAREBYTE 8 $534333444F425356
ENDTYPE

TYPE "SculptOB"
#> Objets 3D objet de Sculpt
    SUBTYPE "IFF"
    ICONNAME "def_3d_sculptob"
    NAMEPATTERN "#?.scene"
    COMPAREBYTE 8 $5343334456455254
ENDTYPE

TYPE "Volumm4D"
#> Data de GadToolsBox
    SUBTYPE "IFF"
    ICONNAME "def_3d_volumm4d"
    COMPAREBYTE 8 "VO4D"
ENDTYPE


TYPE "MUIB"
    OPTNAMEPATTERN "#?.MUIB"
    COMPAREBYTE 0 "BUILDER_SAVE_FILE"
ENDTYPE

TYPE "FLC"
    OPTNAMEPATTERN "#?.FLC"
    COMPAREBYTE 3 $0012AF
ENDTYPE

TYPE "FLI"
    OPTNAMEPATTERN "#?.FLI"
    COMPAREBYTE 3 $0011AF
ENDTYPE

TYPE "ScrLnk"
    SUBTYPE "Script"
    COMPAREBYTE 0 ";ScriptLink"
ENDTYPE

TYPE "BAD IFF"      # in last postion because this can embedded in a compressed file and it is a fall down
    SEARCHBYTE "FORM"
ENDTYPE

# all 'completly light FileType' you must put it at the end, or it can be accepted before a DEEP one (wich was probably better)

TYPE "Mac RS"
    NAMEPATTERN "#?.(rs|rsrc)"
ENDTYPE

TYPE "BBasic"
    NAMEPATTERN "#?.bb(#2)"
ENDTYPE

TYPE "ABasic"
    NAMEPATTERN "#?.bas"
ENDTYPE

TYPE ".Mod" # light-only version of the mod type, because it is hard to recognise a module
    NAMEPATTERN "(mod.#?|#?.(%|?)mod(%|.pp|.xPK)|#?.mmd(%|.pp|.xPK))"
ENDTYPE

TYPE "Tar"
    NAMEPATTERN "#?.tar"
ENDTYPE
