Sometimes the help isn’t helpful enough. I’ve said some things I know about the mod tools but left how I know these things to the imagination. In order to get Stasher working, I had to look inside the exe files a bit. Here’s a strings dump - let’s see who can spot the easter egg in here that allows you to import graphics that aren’t square.
The decent help for ModelCompiler:
Usage: ModelCompiler.exe <mdl file> [<mif file> <source directory> ] <msh file>
options:
-mif <mifFile> <source directory> : Specify a model information file.
-tangents : Include tangent space vectors in the model.
-vertexColors : Include vertex colors in the model.
-stat <statFile> : Write model statistics.
The command strings of Model Compiler (not much more than the help):
InitializeConditionVariable SleepConditionVariableCS WakeAllConditionVariable lA `ä@ Ðä@ ´A Òõ@ Ðä@ bad allocation A Òõ@ Ðä@ bad array new length 0QA €QA vector<T> too long map/set<T> too long Box Cylinder Sphere Capsule Contour has fewer than 3 vertices
Contour double-backs on itself
MDL Incompatible file type
Incompatible file version
Error parsing material
Truncating bone name '%s' to '%s'
Error parsing node
Model has more than the maximum of %u vertices.
rb Couldn't open file
) , , ( Num Materials Num Nodes Num Bones Portal Section = Error parsing user data
AttachPoint AttachPoint { " name = " " parent = " origin = xAxis = yAxis = zAxis = } Num Vertices Num Faces More than one physics node found -- ignoring
rb Missing parameters for '-mif' file option. Usage: ModelCompiler.exe <mdl file> [<mif file> <source directory> ] <msh file>
options:
File Name -mif <mifFile> <source directory> : Specify a model information file.
-stat Num Faces -tangents : Include tangent space vectors in the model.
Num Bones -vertexColors : Include vertex colors in the model.
Num Nodes -stat <statFile> : Write model statistics.
-mif Num Vertices Num Materials File Size Missing parameters for '-stat' file option. -tangents -vertexColors File Name File Size wb Couldn't write mesh "%s"
( %f , %f , %f ) \* \ %ub %.1fkb %.1fmb \*.*
The amazing help for TextureCompiler:
Usage: TextureCompiler <srcFileName> <dstFileName> [-format <dstFormat>]
The full strings of TextureCompiler (very useful!!):
Out of memory Unsupported format Error in format File could not be opened File access error Unknown error -stat File Name Width Height Num Frames Format Bits Per Pixel -nopoweroftwo -nomipmaps -normalmap -cubemap -format dsdt dxt1 dxt3 dxt5 -fps Frame-rate should be between 1 and 100.
Num Frames File Name Incorrect number of textures specified
Incorrect number of textures specified
Error opening "%s" (%s)
Error opening "%s" (%s)
All images in a cube map must have the same dimensions and bpp
All images in an animated texture must have the same dimensions and bpp
Width Height Bits Per Pixel Texture does not have power of two dimensions (%dx%d)
k8888 Format k888 Format kV8U8 Format kDXT1 Format kDXT3 Format kDXT5 Format wb Error opening output file "%s"
TEX An unknown error occurred!a
Archive tool help (just use this, strings match either help or output):
Usage: archiveTool <file> <command> [command arguments]
commands:
-add <directory> <base> [compression (0-9)]: add a file/directory
-replace <directory> <base> [compression (0-9)]: replace a file/directory
-update <directory> <base> [compression (0-9)]: update a file/directory
-remove <file> : remove a file from the archive
-extract <location> [file] : extract files
-database <location> [file] : extract database files
-removeMissing <file> <base> : remove files not in the specified directory
-compact : compact the archive removing unused files
-list : list the files in the archive
-stats : display the archive statistics
Amazing animation compiler help (strings basically match):
Usage: AnimationCompiler.exe <anm file> [<aif file>] <dst file>
FontCompiler help, useful to know dxt5 is default (strings basically match):
FontCompiler
-texture,t Image file to blend as texture [optional]
-output,o Output file path
-image,g Output a bitmap image containing the font image data
-format,m Image data format dxt5|dxt3|rgba8|a8 [optional,default=dxt5]
-styles,y Font styles to include
-pow2,w Force image data to have power of 2 dimensions [optional]
-test,e Output bitmap images containing font style test data
-verbose,v Verbose logging [optional]
-metrics,x Output a text file describing character metrics
MapCompiler SUPERB HELP. Oh well, it is called by a GUI tool anyway.
Not Enough Arguments
MapCompiler nearly full strings (to make some sense of it):
k e r n e l 3 2 . d l l InitializeConditionVariable SleepConditionVariableCS WakeAllConditionVariable <Ë@ ð€@ `@ „Ë@ Ò¨@ `@ bad allocation ÐË@ Ò¨@ `@ bad array new length 8ñ@ ˆñ@ Not Enough Arguments Compile Time Was %6.2f.
Box Cylinder Sphere Capsule
File Name Map File Size Num Levels rb Cannot open %s for reading. .sd Invalid .WRL format: %s rb Cannot open %s for reading LVL Incorrect format for '%s' Unsupported version for '%s' \\ MapCompiler::Compile() - ReadWRL %s time %6.4f seconds.
File Name Cannot open %s for writing. MapCompiler::Compile() - CreateFile %s time %6.4f seconds.
MapCompiler::Compile() - Write Quests %s time %6.4f seconds.
MapCompiler::Compile() - Instance Data %s time %6.4f seconds.
rb MapCompiler::Compile() - Sector %s time %6.4f seconds.
Num Levels MapCompiler::Compile() - Regions %s time %6.4f seconds.
MapCompiler::Compile() - MinMap %s time %6.4f seconds.
MapCompiler::Compile() - Plug-Ins %s time %6.4f seconds.
rb .tga MapCompiler::Compile() - Write Mini-Map Images %s time %6.4f seconds.
.rlv rb rb Cannot open %s for reading MapCompiler::Compile() - Level Data %s time %6.4f seconds.
Map File Size rb Cannot open %s for reading Box Cylinder Sphere Capsule SpawnPointPlugin spawnplayersecondary.dbr spawnplayer.dbr MapCompiler::Compile() - SpawnPointPlugin processed %u spawn points
%3f %u %d , , wb Memory allocation of %dkb failed rb { } { } %i , ( %f , %f , %f ) invalid string position vector<T> too long string too long €V@ ž¯@ ž¯@ ž¯@ °V@ W@ °Z@ W@ bad cast ð€@ `@ Unknown exception
2FindFirstFileA .FindClose | CreateDirectoryA KERNEL32.dll &?GetMachineTime@GAME@@YAHXZ “
?GetInstanceDataSize@WorldFile@GAME@@QBEIXZ ’
?GetInstanceData@WorldFile@GAME@@QBEPBDXZ ?GetRegion@WorldFile@GAME@@QBEABURegion@12@I@Z ¨?GetNumRegions@WorldFile@GAME@@QBEIXZ N?GetQuestFile@WorldFile@GAME@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z ¥?GetNumQuestFiles@WorldFile@GAME@@QBEIXZ &?Read@WorldFile@GAME@@QAE_NAAVBinaryReader@2@@Z %??1WorldFile@GAME@@QAE@XZ ??0WorldFile@GAME@@QAE@XZ Q?Write@RegionId@GAME@@QBEXAAVBinaryWriter@2@@Z Engine.dll ‹?_Xbad_alloc@std@@YAXXZ ?_Xout_of_range@std@@YAXPBD@Z Ž?_Xlength_error@std@@YAXPBD@Z } ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ † ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ –?_BADOFF@std@@3_JB ‰ ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ?uncaught_exception@std@@YA_NXZ ?always_noconv@codecvt_base@std@@QBE_NXZ «?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z ¥ ??1_Lockit@std@@QAE@XZ m ??0_Lockit@std@@QAE@H@Z Õ?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ 1??Bid@locale@std@@QAEIXZ Þ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z É?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A E?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPBD_J@Z Õ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JXZ B?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPAD_J@Z á?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z a?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z ±?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z 3?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z / ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ À?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ õ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ D?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ h?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ &?unshift@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PAD1AAPAD@Z Å?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ % ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ú?in@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z 3?out@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@U_Mbstatet@@@2@XZ MSVCP140.dll G memmove # __std_terminate J strchr = _purecall ! __std_exception_copy " __std_exception_destroy D memchr __CxxFrameHandler3 ( __telemetry_main_invoke_trigger ) __telemetry_main_return_trigger 0 __vcrt_InitializeCriticalSectionEx _CxxThrowException H memset 5 _except_handler4_common VCRUNTIME140.dll __acrt_iob_func __stdio_common_vfprintf ‰ ftell } fopen t fclose ‡ fseek
__stdio_common_vsprintf € fputs ƒ fread ; _invalid_parameter_noinfo_noreturn — tolower w fflush ˜ setvbuf ˆ fsetpos / _fseeki64 y fgetpos x fgetc ungetc : _invalid_parameter_noinfo # _errno fputc Š fwrite $ _unlock_file _lock_file 9 _get_stream_buffer_pointers malloc _mkdir ~ fopen_s free realloc _callnewh B _seh_filter_exe D _set_app_type . __setusermatherr _configure_narrow_argv 5 _initialize_narrow_environment * _get_initial_narrow_environment 8 _initterm 9 _initterm_e X exit % _exit T _set_fmode __p___argc __p___argv _cexit _c_exit ? _register_thread_local_exe_atexit_callback _configthreadlocale _set_new_mode __p__commode 6 _initialize_onexit_table > _register_onexit_function _crt_atexit _controlfp_s j terminate api-ms-win-crt-stdio-l1-1-0.dll api-ms-win-crt-runtime-l1-1-0.dll api-ms-win-crt-string-l1-1-0.dll api-ms-win-crt-filesystem-l1-1-0.dll api-ms-win-crt-heap-l1-1-0.dll api-ms-win-crt-math-l1-1-0.dll api-ms-win-crt-locale-l1-1-0.dll åGetFileAttributesA R CloseHandle Ñ DeleteCriticalSection … CreateEventW GetModuleHandleW EGetProcAddress §QueryPerformanceCounter ÁGetCurrentProcessId ÅGetCurrentThreadId yGetSystemTimeAsFileTime çInitializeSListHead IsDebuggerPresent ÓUnhandledExceptionFilter ¥SetUnhandledExceptionFilter IsProcessorFeaturePresent ÀGetCurrentProcess ÀTerminateProcess F memcpy $ __libm_sse2_log @ _except1
ShaderCompiler superb help… Probably called by a GUI tool.
Not enough command line parameters
ShaderCompiler nearly full strings
bad allocation ÈeA 2+A €A bad array new length P’A *’A Not enough command line parameters
/define Expected define
/asmDir Expected directory for assembly listings
-stat File Name File Name Couldn't save shader
%f%n %d%n { { } sortOrder = Syntax error: expected '=' Syntax error: expected integer Pass { Syntax error: expected '{' } texture vertexShader pixelShader blendSrcFactor blendDstFactor blendFactor blendOperation depthTestFunction alphaTestFunction alphaTestReference alphaToCoverage depthWriteMode depthBias depthSlopeBias colorWriteMode alphaWriteMode samplerAddressU samplerAddressV samplerAddressW samplerBorderColor samplerMinFilter samplerMagFilter samplerMipFilter samplerSrgbRead textureOffsetMatrix cullingMode stencilTestFunction stencilTestReference stencilTestMask stencilWriteMode stencilFailMode Syntax error: undefined state '%s' [ ] Syntax error: expected ']' = Syntax error: expected '='
= + - * / | & vs_ Error : unable to identify vertex shader version ps_ Error : vertex shader version %d unsupported by configuration %s Error : unable to identify pixel shader version } Error : pixel shader version %d unsupported by configuration %s Global Style Texture VertexShader PixelShader Int Float Float2 Float3 Float4 Color3 Color4 Float4x3 Float4x4 Unknown type '%s' [ ] : Editable Syntax error : expected 'Editable' or '=' = Unknown hardware configuration %s.
!!! Unrecognized type
float4x3 float4x4 float float2 float3 float4 ] [ ) : packoffset(c ) : register(c ; cbuffer Constants : register(b0) { } cbuffer Constants : register(b0) { } cbuffer Unused : register(b1) { } c [ Syntax error : missing '[' ] Syntax error : misssing ']' = Syntax error : missing '=' c [ ] , (%d) WARNING %d constant registers used
( , Syntax error : missing ',' ) , Syntax error : missing ',' ) , Syntax error : missing ',' ) Syntax error : missing ')' True False One Zero DstColor SrcColor DstAlpha SrcAlpha OneMinusDstAlpha OneMinusSrcAlpha OneMinusDstColor OneMinusSrcColor BlendFactor OneMinusBlendFactor Add Subtract ReverseSubtract Min Max Never Equal Less Less LessEqual Greater GreaterEqual NotEqual Always None Keep Overwrite Replace ReplaceZero Increment Decrement Incrsat Decrsat Invert Wrap Clamp ClampToBorder FilterNone FilterPoint FilterLinear FilterQuality CullingNone CullingCW CullingCCW VertexShader { DirectX11 vs_5_0 { Syntax error : missing '{' vs_5_0 .vs PixelShader { DirectX11 ps_5_0 { Syntax error : missing '{' ps_5_0 .ps Undeclared identifier '%s' _ _ \ (%d) WARNING %d constant registers used
DX11 Compiler: %s DX11 Compiler: Could not access reflector (%x)
DX11 Compiler: Could not access shader desc (%x)
Unsupported constant size: %s (%i)
HLSL variable '%s' is unbound.
vs_3_0 ps_3_0 Unsupported register set.
WARNING Constant has more than 4 columns!
Unsupported constant type.
Unsupported constant type.
HLSL variable '%s' is unbound.
(%d):%n ): ( %s Error compiling shader.
(%d) :
vs_1_ vs_2_ vs_3_ ps_1_ ps_2_ ps_3_ vs_4_ ps_4_ wb rb Couldn't open '%s'
DEFINE Couldn't find DEFINE section at the beginning of the shader. { Missing { after DEFINE. } } Maximum types exceeded. Missing } ? { } BLOCK { Found Undefined Type: %s (%d) :
rb \\?\UNC\ \\ . *.* . .. \ . .. \* \ %ub %.1fkb %.1fmb \*.* . .. \ . .. \ \*.* . .. \ %3f %u %d , , { } { } %i , wb Memory allocation of %dkb failed # i f d e f # i f n d e f # e n d i f # e l s e #ifdef #ifndef #endif #else invalid string position vector<T> too long string too long vector<bool> too long X p*@ –$A œ$A 0«@ Ъ@ ¢$A pª@ ¨$A ®$A ´$A €¨@ P§@ º$A À$A Æ$A ©ë@ bad cast A €A Unknown exception
D3DReflect D3DCompiler_42.dll D3DXAssembleShader
D3DXCompileShader x D3DXDisassembleShader d3dx9_42.dll D3DX11CompileFromMemory d3dx11_42.dll %WriteFile ˆ CreateFileA R CloseHandle KERNEL32.dll ‹?_Xbad_alloc@std@@YAXXZ ?_Xout_of_range@std@@YAXPBD@Z Ž?_Xlength_error@std@@YAXPBD@Z ?uncaught_exception@std@@YA_NXZ –?_BADOFF@std@@3_JB á?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z a?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z 3?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z Þ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z / ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ D?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ h?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ Å?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z } ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ‰ ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ Õ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JXZ ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ B?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPAD_J@Z E?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPBD_J@Z µ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PAD_J@Z ý?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ö?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z € ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ † ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ ?always_noconv@codecvt_base@std@@QBE_NXZ «?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z ¥ ??1_Lockit@std@@QAE@XZ m ??0_Lockit@std@@QAE@H@Z Õ?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ 1??Bid@locale@std@@QAEIXZ É?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A ±?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z À?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ õ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ &?unshift@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PAD1AAPAD@Z % ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ú?in@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z 3?out@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@U_Mbstatet@@@2@XZ MSVCP140.dll G memmove # __std_terminate L strstr J strchr ! __std_exception_copy " __std_exception_destroy __CxxFrameHandler3 ( __telemetry_main_invoke_trigger ) __telemetry_main_return_trigger _CxxThrowException H memset 5 _except_handler4_common VCRUNTIME140.dll X exit ” strtok __acrt_iob_func __stdio_common_vfprintf * _stricmp ; _invalid_parameter_noinfo_noreturn 4 _strnicmp
__stdio_common_vsprintf € fputs P atoi O atof n isspace m ispunct __stdio_common_vsscanf ‰ ftell } fopen t fclose ‡ fseek Š fwrite free ƒ fread malloc w fflush ˜ setvbuf ˆ fsetpos / _fseeki64 y fgetpos x fgetc ungetc : _invalid_parameter_noinfo # _errno fputc $ _unlock_file _lock_file 9 _get_stream_buffer_pointers realloc _callnewh 5 _initialize_narrow_environment 6 _initialize_onexit_table > _register_onexit_function _crt_atexit _cexit B _seh_filter_exe D _set_app_type . __setusermatherr _configure_narrow_argv * _get_initial_narrow_environment 8 _initterm 9 _initterm_e % _exit T _set_fmode __p___argc __p___argv _c_exit ? _register_thread_local_exe_atexit_callback _configthreadlocale _set_new_mode __p__commode j terminate _controlfp_s api-ms-win-crt-runtime-l1-1-0.dll api-ms-win-crt-string-l1-1-0.dll api-ms-win-crt-stdio-l1-1-0.dll api-ms-win-crt-convert-l1-1-0.dll api-ms-win-crt-heap-l1-1-0.dll api-ms-win-crt-filesystem-l1-1-0.dll api-ms-win-crt-math-l1-1-0.dll api-ms-win-crt-locale-l1-1-0.dll | CreateDirectoryA 2FindFirstFileA .FindClose åGetFileAttributesA IsProcessorFeaturePresent IsDebuggerPresent ÓUnhandledExceptionFilter ¥SetUnhandledExceptionFilter GetModuleHandleW §QueryPerformanceCounter ÁGetCurrentProcessId ÅGetCurrentThreadId yGetSystemTimeAsFileTime çInitializeSListHead ÀGetCurrentProcess ÀTerminateProcess F memcpy @ _except1