diff options
Diffstat (limited to 'project/src/file-type.c')
| -rw-r--r-- | project/src/file-type.c | 1224 |
1 files changed, 1224 insertions, 0 deletions
diff --git a/project/src/file-type.c b/project/src/file-type.c new file mode 100644 index 0000000..ead9730 --- /dev/null +++ b/project/src/file-type.c @@ -0,0 +1,1224 @@ + +// +/////////////////////////////////////////////////////////////////////////////// +////// This file is created by a script. Modifications will be lost! ////// +/////////////////////////////////////////////////////////////////////////////// + +#include "file-type.h" + + +// +/////////////////////////////////////////////////////////////////////////////// +////////////////////////////// FileTypeTab[] ////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +const char filetype_info_unknown[] = "?"; +const char filetype_info_not_supported[] = "not supported"; + +const file_type_t FileTypeTab[FF_N+1] = +{ + + // FF_UNKNOWN = 0 + { + FF_UNKNOWN, 0, 0, "?", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + filetype_info_not_supported, + filetype_info_not_supported, + "Unknown file" + }, + + // FF_YAZ0 = 1 + { + FF_YAZ0, 0, 0, "YAZ0", + ".szs", ".szs", ".szs", + FFT_VALID | FFT_COMPRESS, + 4, {0x59,0x61,0x7a,0x30}, // "Yaz0" + 0, + "0", + "0,1", + "YAZ compression" + }, + + // FF_YAZ1 = 2 + { + FF_YAZ1, 0, 0, "YAZ1", + ".szs", ".szs", ".szs", + FFT_VALID | FFT_COMPRESS, + 4, {0x59,0x61,0x7a,0x31}, // "Yaz1" + 0, + "1", + "0,1", + "YAZ compression" + }, + + // FF_XYZ = 3 + { + FF_XYZ, 0, 0, "XYZ", + ".xyz", ".szs", ".xyz", + FFT_VALID | FFT_COMPRESS, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "disguise YAZ compression" + }, + + // FF_BZ = 4 + { + FF_BZ, 0, 0, "BZ", + ".bz", ".szs", ".bz", + FFT_VALID | FFT_COMPRESS, + 4, {0x57,0x42,0x5a,0x61}, // "WBZa" + 0, + MinusString, + MinusString, + "bzip2 compression used" + }, + + // FF_BZ2 = 5 + { + FF_BZ2, 0, 0, "BZ2", + ".bz2", ".szs", ".bz2", + FFT_VALID | FFT_COMPRESS, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "bzip2 compressed file" + }, + + // FF_U8 = 6 + { + FF_U8, 0, 0, "U8", + ".u8", ".szs", ".u8", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT | FFT_LINK, + 4, {0x55,0xaa,0x38,0x2d}, // "Uª8-" + 0, + MinusString, + MinusString, + "Nintendos archive format" + }, + + // FF_WU8 = 7 + { + FF_WU8, 0, 0, "WU8", + ".wu8", ".wu8", ".wu8", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT | FFT_LINK, + 4, {0x57,0x55,0x38,0x61}, // "WU8a" + 0, + MinusString, + MinusString, + "Wiimms differential U8" + }, + + // FF_RARC = 8 + { + FF_RARC, 0, 0, "RARC", + ".rarc", ".arc", ".rarc", + FFT_VALID | FFT_ARCHIVE | FFT_EXTRACT | FFT_CUT, + 4, {0x52,0x41,0x52,0x43}, // "RARC" + 0, + MinusString, + filetype_info_not_supported, + "Archive format for objects" + }, + + // FF_BRRES = 9 + { + FF_BRRES, 0, 0, "BRRES", + ".brres", ".szs", ".bres", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT, + 4, {0x62,0x72,0x65,0x73}, // "bres" + 0, + MinusString, + MinusString, + "Archive format for objects" + }, + + // FF_BREFF = 10 + { + FF_BREFF, 0, 0, "BREFF", + ".breff", ".szs", ".reff", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT, + 4, {0x52,0x45,0x46,0x46}, // "REFF" + 0, + "9,11", + "9,11", + "Main file of an effect pair" + }, + + // FF_BREFT = 11 + { + FF_BREFT, 0, 0, "BREFT", + ".breft", ".szs", ".reft", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT, + 4, {0x52,0x45,0x46,0x54}, // "REFT" + 0, + "9,11", + "9,11", + "Image file of an effect pair" + }, + + // FF_RKC = 12 + { + FF_RKC, 0, 0, "RKC", + ".rkc", ".szs", ".rkc", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_PACK = 13 + { + FF_PACK, 0, 0, "PACK", + ".pack", ".szs", ".pack", + FFT_VALID | FFT_ARCHIVE | FFT_CREATE | FFT_EXTRACT | FFT_CUT, + 4, {0x50,0x41,0x43,0x4b}, // "PACK" + 0, + MinusString, + MinusString, + "Simple archive format" + }, + + // FF_CHR = 14 + { + FF_CHR, 0, 0, "CHR", + ".chr", ".szs", ".chr0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT, + 4, {0x43,0x48,0x52,0x30}, // "CHR0" + "AnmChr(NW4R)", + "5,(*)", + filetype_info_not_supported, + "Model movement animations" + }, + + // FF_CLR = 15 + { + FF_CLR, 0, 0, "CLR", + ".clr", ".szs", ".clr0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT, + 4, {0x43,0x4c,0x52,0x30}, // "CLR0" + "AnmClr(NW4R)", + "4,(*)", + filetype_info_not_supported, + "Colour changing animations" + }, + + // FF_MDL = 16 + { + FF_MDL, FF_MDL, FF_MDL_TXT, "MDL", + ".mdl", ".szs", ".mdl0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT | FFT_DECODE | FFT_PATCH, + 4, {0x4d,0x44,0x4c,0x30}, // "MDL0" + "3DModels(NW4R)", + "11,(*)", + filetype_info_not_supported, + "Model files" + }, + + // FF_PAT = 17 + { + FF_PAT, FF_PAT, FF_PAT_TXT, "PAT", + ".pat", ".szs", ".pat0", + FFT_VALID | FFT_BRSUB | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 4, {0x50,0x41,0x54,0x30}, // "PAT0" + "AnmTexPat(NW4R)", + "4,(*)", + "4", + "Texture swapping animations" + }, + + // FF_SCN = 18 + { + FF_SCN, 0, 0, "SCN", + ".scn", ".szs", ".scn0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT, + 4, {0x53,0x43,0x4e,0x30}, // "SCN0" + "AnmScn(NW4R)", + "5,(*)", + filetype_info_not_supported, + "Polygon morphing animations" + }, + + // FF_SHP = 19 + { + FF_SHP, 0, 0, "SHP", + ".shp", ".szs", ".shp0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT, + 4, {0x53,0x48,0x50,0x30}, // "SHP0" + "AnmShp(NW4R)", + "4,(*)", + filetype_info_not_supported, + filetype_info_unknown + }, + + // FF_SRT = 20 + { + FF_SRT, 0, 0, "SRT", + ".srt", ".szs", ".srt0", + FFT_VALID | FFT_BRSUB | FFT_BRSUB2 | FFT_CUT, + 4, {0x53,0x52,0x54,0x30}, // "SRT0" + "AnmTexSrt(NW4R)", + "5,(*)", + filetype_info_not_supported, + "Texture movement animations" + }, + + // FF_TEX = 21 + { + FF_TEX, 0, 0, "TEX", + ".tex", ".szs", ".tex0", + FFT_VALID | FFT_GRAPHIC | FFT_BRSUB | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 4, {0x54,0x45,0x58,0x30}, // "TEX0" + "Textures(NW4R)", + "3,(*)", + "3", + "Texture file" + }, + + // FF_TEX_CT = 22 + { + FF_TEX_CT, 0, 0, "TEX+CT", + ".tex", ".szs", ".tex0", + FFT_VALID | FFT_GRAPHIC | FFT_BRSUB | FFT_CUT | FFT_DECODE | FFT_ENCODE | FFT_PATCH, + 0, {0}, // no magic + 0, + "3,(*)", + "3", + "Texture file with CTGP-CODE" + }, + + // FF_CT_TEXT = 23 + { + FF_CT_TEXT, 0, 0, "CTTEXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x43,0x54,0x2d,0x43,0x4f,0x44,0x45}, // "#CT-CODE" + 0, + MinusString, + MinusString, + "CTGP-CODE text file" + }, + + // FF_CT0_CODE = 24 + { + FF_CT0_CODE, 0, 0, "C0CODE", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-CODE for main.dol section T2" + }, + + // FF_CT0_DATA = 25 + { + FF_CT0_DATA, 0, 0, "C0DATA", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA for main.dol section D8" + }, + + // FF_CT1_CODE = 26 + { + FF_CT1_CODE, 0, 0, "C1CODE", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-CODE for strap TEX0 file" + }, + + // FF_CT1_DATA = 27 + { + FF_CT1_DATA, 0, 0, "C1DATA", + ".ctcode", ".szs", ".ctcode", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_PATCH, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA for strap TEX0 file" + }, + + // FF_CUP1 = 28 + { + FF_CUP1, 0, 0, "CUP1", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA section: Cups" + }, + + // FF_CRS1 = 29 + { + FF_CRS1, 0, 0, "CRS1", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA section: Tracks" + }, + + // FF_MOD1 = 30 + { + FF_MOD1, 0, 0, "MOD1", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA section: main.dol patches" + }, + + // FF_MOD2 = 31 + { + FF_MOD2, 0, 0, "MOD2", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA section: StaticR.rel patches" + }, + + // FF_OVR1 = 32 + { + FF_OVR1, 0, 0, "OVR1", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "CT-DATA section: Speedometer" + }, + + // FF_LE_BIN = 33 + { + FF_LE_BIN, 0, 0, "LE-BIN", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_PATCH, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "LE-CODE binary" + }, + + // FF_LEX = 34 + { + FF_LEX, FF_LEX, FF_LEX_TXT, "LEX", + ".lex", ".szs", ".lex", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 4, {0x4c,0x45,0x2d,0x58}, // "LE-X" + 0, + MinusString, + MinusString, + "LECODE extension file" + }, + + // FF_LEX_TXT = 35 + { + FF_LEX_TXT, FF_LEX, FF_LEX_TXT, "LEXTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 4, {0x23,0x4c,0x45,0x58}, // "#LEX" + 0, + MinusString, + MinusString, + "Text version of LEX" + }, + + // FF_LPAR = 36 + { + FF_LPAR, 0, 0, "LPAR", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x4c,0x45,0x2d,0x4c,0x50,0x41,0x52}, // "#LE-LPAR" + 0, + MinusString, + MinusString, + "Text file with LE-CODE parameters" + }, + + // FF_MDL_TXT = 37 + { + FF_MDL_TXT, FF_MDL, FF_MDL_TXT, "MDLTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT, + 4, {0x23,0x4d,0x44,0x4c}, // "#MDL" + 0, + filetype_info_not_supported, + MinusString, + "Text version of MDL" + }, + + // FF_PAT_TXT = 38 + { + FF_PAT_TXT, FF_PAT, FF_PAT_TXT, "PATTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 4, {0x23,0x50,0x41,0x54}, // "#PAT" + 0, + MinusString, + MinusString, + "Text version of PAT" + }, + + // FF_TPL = 39 + { + FF_TPL, 0, 0, "TPL", + ".tpl", ".szs", ".tpl", + FFT_VALID | FFT_GRAPHIC | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 4, {0x00,0x20,0xaf,0x30}, // "\000 ¯0" + 0, + MinusString, + MinusString, + "Image container" + }, + + // FF_BTI = 40 + { + FF_BTI, 0, 0, "BTI", + ".bti", ".szs", ".bti", + FFT_VALID | FFT_GRAPHIC | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Image container" + }, + + // FF_BREFT_IMG = 41 + { + FF_BREFT_IMG, 0, 0, "BT-IMG", + ".bt-img", ".szs", ".bt-img", + FFT_VALID | FFT_GRAPHIC | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Raw image of BREFT file" + }, + + // FF_BMG = 42 + { + FF_BMG, FF_BMG, FF_BMG_TXT, "BMG", + ".bmg", ".szs", ".bmg", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Message file" + }, + + // FF_BMG_TXT = 43 + { + FF_BMG_TXT, FF_BMG, FF_BMG_TXT, "BMGTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Text version of BMG" + }, + + // FF_KCL = 44 + { + FF_KCL, FF_KCL, FF_KCL_TXT, "KCL", + ".kcl", ".szs", ".kcl", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_ENCODE | FFT_PATCH, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Collision file" + }, + + // FF_KCL_TXT = 45 + { + FF_KCL_TXT, FF_KCL, FF_KCL_TXT, "KCLTXT", + ".obj", ".szs", ".obj", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 4, {0x23,0x4b,0x43,0x4c}, // "#KCL" + 0, + MinusString, + MinusString, + "Wavefront OBJ by WSZST" + }, + + // FF_WAV_OBJ = 46 + { + FF_WAV_OBJ, FF_KCL, FF_WAV_OBJ, "WAVOBJ", + ".obj", ".szs", ".obj", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Wavefront OBJ" + }, + + // FF_SKP_OBJ = 47 + { + FF_SKP_OBJ, FF_KCL, FF_SKP_OBJ, "SKPOBJ", + ".obj", ".szs", ".obj", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Wavefront OBJ by Sketchup" + }, + + // FF_KMP = 48 + { + FF_KMP, FF_KMP, FF_KMP_TXT, "KMP", + ".kmp", ".szs", ".kmp", + FFT_VALID | FFT_CUT | FFT_DECODE | FFT_ENCODE, + 4, {0x52,0x4b,0x4d,0x44}, // "RKMD" + 0, + MinusString, + MinusString, + "Track information file" + }, + + // FF_KMP_TXT = 49 + { + FF_KMP_TXT, FF_KMP, FF_KMP_TXT, "KMPTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 4, {0x23,0x4b,0x4d,0x50}, // "#KMP" + 0, + MinusString, + MinusString, + "Text version of KMP" + }, + + // FF_ITEMSLT = 50 + { + FF_ITEMSLT, FF_ITEMSLT, FF_ITEMSLT_TXT, "ITEMSLT", + ".bin", ".szs", ".slt", + FFT_VALID, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_ITEMSLT_TXT = 51 + { + FF_ITEMSLT_TXT, FF_ITEMSLT, FF_ITEMSLT_TXT, "ITEMSLTTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KMG = 52 + { + FF_KMG, FF_KMG, FF_KMG_TXT, "KMG", + ".kmg", ".szs", ".kmg", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 4, {0x52,0x4b,0x4d,0x47}, // "RKMG" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KMG_TXT = 53 + { + FF_KMG_TXT, FF_KMG, FF_KMG_TXT, "KMGTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 4, {0x23,0x4b,0x4d,0x47}, // "#KMG" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KRM = 54 + { + FF_KRM, FF_KRM, FF_KRM_TXT, "KRM", + ".krm", ".szs", ".krm", + FFT_VALID, + 4, {0x52,0x4b,0x52,0x4d}, // "RKRM" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KRM_TXT = 55 + { + FF_KRM_TXT, FF_KRM, FF_KRM_TXT, "KRMTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT, + 4, {0x23,0x4b,0x52,0x4d}, // "#KRM" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KRT = 56 + { + FF_KRT, FF_KRT, FF_KRT_TXT, "KRT", + ".krt", ".szs", ".krt", + FFT_VALID, + 4, {0x52,0x4b,0x47,0x54}, // "RKGT" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_KRT_TXT = 57 + { + FF_KRT_TXT, FF_KRT, FF_KRT_TXT, "KRTTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT, + 4, {0x23,0x4b,0x52,0x54}, // "#KRT" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_OBJFLOW = 58 + { + FF_OBJFLOW, FF_OBJFLOW, FF_OBJFLOW_TXT, "OBFLOW", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_OBJFLOW_TXT = 59 + { + FF_OBJFLOW_TXT, FF_OBJFLOW, FF_OBJFLOW_TXT, "OF-TXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x4f,0x42,0x4a,0x46,0x4c,0x4f,0x57}, // "#OBJFLOW" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_ITEM = 60 + { + FF_GH_ITEM, FF_GH_ITEM, FF_GH_ITEM_TXT, "GHITEM", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_ITEM_TXT = 61 + { + FF_GH_ITEM_TXT, FF_GH_ITEM, FF_GH_ITEM_TXT, "GI-TXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x47,0x48,0x2d,0x49,0x54,0x45,0x4d}, // "#GH-ITEM" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_IOBJ = 62 + { + FF_GH_IOBJ, FF_GH_IOBJ, FF_GH_IOBJ_TXT, "GHIOBJ", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_IOBJ_TXT = 63 + { + FF_GH_IOBJ_TXT, FF_GH_IOBJ, FF_GH_IOBJ_TXT, "GIOTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x47,0x48,0x2d,0x49,0x4f,0x42,0x4a}, // "#GH-IOBJ" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_KART = 64 + { + FF_GH_KART, FF_GH_KART, FF_GH_KART_TXT, "GHKART", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_KART_TXT = 65 + { + FF_GH_KART_TXT, FF_GH_KART, FF_GH_KART_TXT, "GK-TXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x47,0x48,0x2d,0x4b,0x41,0x52,0x54}, // "#GH-KART" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_KOBJ = 66 + { + FF_GH_KOBJ, FF_GH_KOBJ, FF_GH_KOBJ_TXT, "GHKOBJ", + ".bin", ".szs", ".bin", + FFT_VALID | FFT_DECODE | FFT_ENCODE, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_GH_KOBJ_TXT = 67 + { + FF_GH_KOBJ_TXT, FF_GH_KOBJ, FF_GH_KOBJ_TXT, "GKOTXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_DECODE | FFT_ENCODE | FFT_PARSER, + 8, {0x23,0x47,0x48,0x2d,0x4b,0x4f,0x42,0x4a}, // "#GH-KOBJ" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_DRIVER = 68 + { + FF_DRIVER, 0, 0, "DRV", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_VEHICLE = 69 + { + FF_VEHICLE, 0, 0, "VEH", + ".bin", ".szs", ".bin", + FFT_VALID, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_BRASD = 70 + { + FF_BRASD, 0, 0, "BRASD", + ".brasd", ".szs", ".brasd", + FFT_VALID, + 4, {0x52,0x41,0x53,0x44}, // "RASD" + 0, + MinusString, + MinusString, + filetype_info_unknown + }, + + // FF_RKG = 71 + { + FF_RKG, 0, 0, "RKG", + ".rkg", ".szs", ".rkg", + FFT_VALID, + 4, {0x52,0x4b,0x47,0x44}, // "RKGD" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_RKCO = 72 + { + FF_RKCO, 0, 0, "RKCO", + ".rkco", ".szs", ".rkco", + FFT_VALID, + 4, {0x52,0x4b,0x43,0x4f}, // "RKCO" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_STATICR = 73 + { + FF_STATICR, 0, 0, "STATR", + ".rel", ".szs", ".rel", + FFT_VALID | FFT_PATCH, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "A 'StaticR.rel' file" + }, + + // FF_DOL = 74 + { + FF_DOL, 0, 0, "DOL", + ".dol", ".szs", ".dol", + FFT_VALID | FFT_EXTRACT | FFT_PATCH, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "An executable DOL file" + }, + + // FF_GCT = 75 + { + FF_GCT, 0, 0, "GCT", + ".gct", ".szs", ".gct", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Gecko Cheat Code" + }, + + // FF_GCH = 76 + { + FF_GCH, 0, 0, "GCH", + ".gch", ".szs", ".gch", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Gecko Cheat Handler + coded" + }, + + // FF_WCH = 77 + { + FF_WCH, 0, 0, "WCH", + ".wch", ".szs", ".wch", + FFT_VALID, + 0, {0}, // no magic + 0, + MinusString, + MinusString, + "Wiimms Cheat Handler + codes" + }, + + // FF_WPF = 78 + { + FF_WPF, 0, 0, "WPF", + ".wpf", ".szs", ".wpf", + FFT_VALID, + 4, {0x57,0x50,0x46,0x01}, // "WPF\001" + 0, + MinusString, + MinusString, + "Wiimms Patch File" + }, + + // FF_XPF = 79 + { + FF_XPF, 0, 0, "XPF", + ".xpf", ".szs", ".xpf", + FFT_VALID, + 4, {0x58,0x50,0x46,0x01}, // "XPF\001" + 0, + MinusString, + MinusString, + "Extended Patch File" + }, + + // FF_DISTRIB = 80 + { + FF_DISTRIB, 0, 0, "DISTRB", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT, + 8, {0x23,0x44,0x49,0x53,0x54,0x52,0x49,0x42}, // "#DISTRIB" + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_PNG = 81 + { + FF_PNG, 0, 0, "PNG", + ".png", ".png", ".png", + FFT_VALID | FFT_GRAPHIC | FFT_EXTERNAL | FFT_DECODE | FFT_ENCODE, + 8, {0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a}, // "PNG\r\n\032\n" + 0, + MinusString, + MinusString, + "A public image format" + }, + + // FF_TXT = 82 + { + FF_TXT, 0, 0, "TXT", + ".txt", ".szs", ".txt", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_SCRIPT = 83 + { + FF_SCRIPT, 0, 0, "SCRIPT", + ".script", ".szs", ".script", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_JSON = 84 + { + FF_JSON, 0, 0, "JSON", + ".json", ".szs", ".json", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_SH = 85 + { + FF_SH, 0, 0, "SH", + ".sh", ".szs", ".sh", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_BASH = 86 + { + FF_BASH, 0, 0, "BASH", + ".sh", ".szs", ".sh", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_PHP = 87 + { + FF_PHP, 0, 0, "PHP", + ".php", ".szs", ".php", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_MAKEDOC = 88 + { + FF_MAKEDOC, 0, 0, "MKDOC", + ".md", ".szs", ".md", + FFT_VALID | FFT_TEXT | FFT_EXTERNAL, + 0, {0}, // no magic + 0, + filetype_info_unknown, + filetype_info_unknown, + EmptyString + }, + + // FF_DIRECTORY = 89 + { + FF_DIRECTORY, 0, 0, "DIR", + ".d", ".d", ".d", + FFT_EXTERNAL, + 0, {0}, // no magic + 0, + "transparent", + "transparent", + "Directory of filesystem" + }, + + // FF_N + {0} +}; + + +// +/////////////////////////////////////////////////////////////////////////////// +////////////////////////////// FileTypeTab[] ////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +const KeywordTab_t cmdtab_FileType[] = +{ + // INFO: cmd->opt := ff_attrib_t + + { FF_YAZ0, "YAZ", "YAZ0", 0x3 }, + { FF_YAZ1, "YAZ1", 0, 0x3 }, + { FF_XYZ, "XYZ", 0, 0x3 }, + { FF_BZ, "BZ", 0, 0x3 }, + { FF_BZ2, "BZ2", 0, 0x3 }, + { FF_U8, "U8", 0, 0x8705 }, + { FF_WU8, "WU8", 0, 0x8705 }, + { FF_RARC, "ARC", "RARC", 0x605 }, + { FF_BRRES, "BRES", "BRRES", 0x705 }, + { FF_BREFF, "BREFF", "REFF", 0x305 }, + { FF_BREFT, "BREFT", "REFT", 0x705 }, + { FF_RKC, "RKC", 0, 0x705 }, + { FF_PACK, "PACK", 0, 0x705 }, + { FF_CHR, "CHR", "CHR0", 0x461 }, + { FF_CLR, "CLR", "CLR0", 0x461 }, + { FF_MDL, "MDL", "MDL0", 0x4c61 }, + { FF_PAT, "PAT", "PAT0", 0x1c21 }, + { FF_SCN, "SCN", "SCN0", 0x461 }, + { FF_SHP, "SHP", "SHP0", 0x461 }, + { FF_SRT, "SRT", "SRT0", 0x461 }, + { FF_TEX, "TEX", "TEX0", 0x1c29 }, + { FF_TEX_CT, "TEX", "TEX+CT", 0x5c29 }, + { FF_TEX_CT, "TEX-CT", "TEX0", 0x5c29 }, + { FF_TEX_CT, "TEXCT", 0, 0x5c29 }, + { FF_CT_TEXT, "CT-TEXT", "CTTEXT", 0x3811 }, + { FF_CT0_CODE, "C0CODE", "CT0-CODE", 0x1 }, + { FF_CT0_CODE, "CT0CODE", 0, 0x1 }, + { FF_CT0_DATA, "C0DATA", "CT0-DATA", 0x1 }, + { FF_CT0_DATA, "CT0DATA", 0, 0x1 }, + { FF_CT1_CODE, "C1CODE", "CT1-CODE", 0x1 }, + { FF_CT1_CODE, "CT1CODE", 0, 0x1 }, + { FF_CT1_DATA, "C1DATA", "CT1-DATA", 0x4c01 }, + { FF_CT1_DATA, "CT1DATA", "CTCODE", 0x4c01 }, + { FF_CUP1, "CUP1", 0, 0x1 }, + { FF_CRS1, "CRS1", 0, 0x1 }, + { FF_MOD1, "MOD1", 0, 0x1 }, + { FF_MOD2, "MOD2", 0, 0x1 }, + { FF_OVR1, "OVR1", 0, 0x1 }, + { FF_LE_BIN, "LE-BIN", "LEBIN", 0x4c01 }, + { FF_LEX, "LEX", 0, 0x1c01 }, + { FF_LEX_TXT, "LEX-TXT", "LEXTXT", 0x3811 }, + { FF_LPAR, "LPAR", 0, 0x3811 }, + { FF_MDL_TXT, "MDL-TXT", "MDLTXT", 0x11 }, + { FF_PAT_TXT, "PAT-TXT", "PATTXT", 0x3811 }, + { FF_TPL, "TPL", 0, 0x1c09 }, + { FF_BTI, "BTI", "BTIENV", 0x1c09 }, + { FF_BTI, "BTIMAT", 0, 0x1c09 }, + { FF_BREFT_IMG, "BREFT-IMG", "BREFTIMG", 0x1c09 }, + { FF_BREFT_IMG, "BT-IMG", "BTIMG", 0x1c09 }, + { FF_BMG, "BMG", "MESGBMG1", 0x1c01 }, + { FF_BMG_TXT, "BMG-TXT", "BMGTXT", 0x1811 }, + { FF_KCL, "KCL", 0, 0x5c01 }, + { FF_KCL_TXT, "KCL-TXT", "KCLTXT", 0x3811 }, + { FF_WAV_OBJ, "WAV-OBJ", "WAVOBJ", 0x3811 }, + { FF_SKP_OBJ, "SKP-OBJ", "SKPOBJ", 0x3811 }, + { FF_KMP, "KMP", 0, 0x1c01 }, + { FF_KMP_TXT, "KMP-TXT", "KMPTXT", 0x3811 }, + { FF_ITEMSLT, "ITEMSLT", "SLT", 0x1 }, + { FF_ITEMSLT_TXT, "ITEMSLT-TXT", "ITEMSLTTXT", 0x11 }, + { FF_KMG, "KMG", 0, 0x1801 }, + { FF_KMG_TXT, "KMG-TXT", "KMGTXT", 0x3811 }, + { FF_KRM, "KRM", 0, 0x1 }, + { FF_KRM_TXT, "KRM-TXT", "KRMTXT", 0x11 }, + { FF_KRT, "KRT", 0, 0x1 }, + { FF_KRT_TXT, "KRT-TXT", "KRTTXT", 0x11 }, + { FF_OBJFLOW, "OBFLOW", "OBJFLOW", 0x1801 }, + { FF_OBJFLOW_TXT, "OBJFLOW-TXT", "OBJFLOWTXT", 0x3811 }, + { FF_OBJFLOW_TXT, "OF-TXT", "OFTXT", 0x3811 }, + { FF_GH_ITEM, "GH-ITEM", "GHITEM", 0x1801 }, + { FF_GH_ITEM_TXT, "GH-ITEM-TXT", "GHITEMTXT", 0x3811 }, + { FF_GH_ITEM_TXT, "GI-TXT", "GITXT", 0x3811 }, + { FF_GH_IOBJ, "GH-IOBJ", "GHIOBJ", 0x1801 }, + { FF_GH_IOBJ_TXT, "GH-IOBJ-TXT", "GHIOBJTXT", 0x3811 }, + { FF_GH_IOBJ_TXT, "GIOTXT", 0, 0x3811 }, + { FF_GH_KART, "GH-KART", "GHKART", 0x1801 }, + { FF_GH_KART_TXT, "GH-KART-TXT", "GHKARTTXT", 0x3811 }, + { FF_GH_KART_TXT, "GK-TXT", "GKTXT", 0x3811 }, + { FF_GH_KOBJ, "GH-KOBJ", "GHKOBJ", 0x1801 }, + { FF_GH_KOBJ_TXT, "GH-KOBJ-TXT", "GHKOBJTXT", 0x3811 }, + { FF_GH_KOBJ_TXT, "GKOTXT", 0, 0x3811 }, + { FF_DRIVER, "DRIVER", "DRV", 0x1 }, + { FF_VEHICLE, "VEH", "VEHICLE", 0x1 }, + { FF_BRASD, "BRASD", 0, 0x1 }, + { FF_RKG, "RKG", 0, 0x1 }, + { FF_RKCO, "RKCO", 0, 0x1 }, + { FF_STATICR, "REL", "STATICR", 0x4001 }, + { FF_DOL, "DOL", 0, 0x4201 }, + { FF_GCT, "GCT", 0, 0x1 }, + { FF_GCH, "GCH", 0, 0x1 }, + { FF_WCH, "WCH", 0, 0x1 }, + { FF_WPF, "WPF", 0, 0x1 }, + { FF_XPF, "XPF", 0, 0x1 }, + { FF_DISTRIB, "DISTRIB", 0, 0x11 }, + { FF_PNG, "PNG", 0, 0x1889 }, + { FF_SCRIPT, "SCRIPT", 0, 0x91 }, + { FF_JSON, "JSON", 0, 0x91 }, + { FF_SH, "SH", 0, 0x91 }, + { FF_BASH, "BASH", "SH", 0x91 }, + { FF_PHP, "PHP", 0, 0x91 }, + { FF_MAKEDOC, "MAKEDOC", "MD", 0x91 }, + { FF_DIRECTORY, "DIRECTORY", 0, 0x80 }, + + {0,0,0,0} +}; + +// +/////////////////////////////////////////////////////////////////////////////// +////////////////////////////////// E N D ////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + |
