Drakous79 Posted June 30, 2017 Author Share Posted June 30, 2017 (edited) Back to this once more :smile: Will post new finds as time allows. If you research shaders, consider this edit in DefaultEngine.ini: ;+Suppress=DevShaders--- Shader cache and other files There are 2 shader cache files in CookedPCConsole folder:GlobalShaderCache-PC-D3D-SM3.bin - global shaders; the game can recompileRefShaderCache-PC-D3D-SM3.upk - material shadersThe game is able to load the 3rd shader cache file:LocalShaderCache-PC-D3D-SM3.upk - material shadersOther files:PersistentCookerShaderData.bin - for cooking process Known and working locations of shader cache files for EW:Steam\SteamApps\common\XCom-Enemy-Unknown\XEW\XComGame\CookedPCConsoleuser's Documents\My Games\XCOM - Enemy Within\XComGame\CookedPCConsoleFiles in user's documents have precedence. All shader cache files have D3D-SM3 in their filenames. It stands for Direct3D Shader Model.SM3 = DirectX 9SM4 = DirectX 10SM5 = DirectX 11EU and EW are using SM3. You can run the game with -DX11 launch option, but it crashes with shader compiler errors. GlobalShaderCache-PC-D3D-SM3.bin contains global shaders. Global shaders are shaders which operate on fixed geometry and do not need to interface with materials. Examples would be shadow filtering, or post processing. Only one shader of any given global shader type exists in memory. The game is able to recompile global shaders. In case GlobalShaderCache-PC-D3D-SM3.bin is missing in CookedPCConsole folder, the file is recreated in user's Documents\My Games\XCOM - Enemy Within\XComGame\CookedPCConsole. [0006.66] DevShaders: Verifying Global Shaders for PC-D3D-SM3 [0006.66] DevShaders: Empty global shader map, recompiling all global shaders Before recompile: [0005.14] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0005.28] DevShaders: ... Loaded 466 shaders (2 legacy, 0 redundant) [0005.28] DevShaders: Verifying Global Shaders for PC-D3D-SM3 After recompile: [0005.17] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0005.31] DevShaders: ... Loaded 464 shaders (0 legacy, 0 redundant) [0005.32] DevShaders: Verifying Global Shaders for PC-D3D-SM3 Recompile took around 9 minutes on my slow laptop. LocalShaderCache-PC-D3D-SM3.upk and RefShaderCache-PC-D3D-SM3.upk contains material shaders and material shader maps. Material shaders using FMaterialShaderType are pass specific shaders which need access to some of the material's attributes, and therefore must be compiled for each material, but do not need to access any mesh attributes. The light function pass shaders are an example of FMaterialShaderType's. Material shaders using FMeshMaterialShaderType are pass specific shaders which depend on the material's attributes AND the mesh type, and therefore must be compiled for each material/vertex factory combination. For example, TBasePassVS / TBasePassPS need to evaluate all of the material inputs in a forward rendering pass. A material's set of required shaders is contained in a FMaterialShaderMap. Every XCOM 2 mod can have its own shader cache, which is in fact renamed LocalShaderCache-PC-D3D-SM4 (with or without additions) from Steam\SteamApps\common\XCOM 2 SDK\XComGame\Content folder. In early days of XCOM 2 modding it resulted in file bloat (around 85 MB) even for ini mods. More on this issue in XCOM 2 PSA: IMPORTANT! Read this before deleting LocalShaderCache! thread. That gave me an idea to experiment with the third shader cache file XCOM accepts - LocalShaderCache-PC-D3D-SM3.upk. Shader cache with custom filename didn't load at all. I am testing XCOM Enemy Within. XCOM Enemy Within LocalShaderCache- EW LocalShaderCache-PC-D3D-SM3.upk (renamed EW RefShaderCache-PC-D3D-SM3.upk)- The game works flawlessly. [0001.86] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0006.56] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0007.14] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) Note LocalShaderCache has TRUE and RefShaderCache FALSE when serialized. - EW RefShaderCache-PC-D3D-SM3.upk- EW LocalShaderCache-PC-D3D-SM3.upk (duplicated EW RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion 64- The game works flawlessly. [0005.99] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0011.77] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0012.25] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) [0012.26] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0013.26] DevShaders: ... Loaded 68841 shaders (0 legacy, 68841 redundant) [0013.84] DevShaders: Shader cache for RefShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant)Note there are 68841 redundant shaders in this scenario. - EW RefShaderCache-PC-D3D-SM3.upk- EW LocalShaderCache-PC-D3D-SM3.upk (duplicated EW RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion changed from 64 to 59- The game works flawlessly. [0005.93] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0007.05] DevShaders: ... Loaded 68841 shaders (68841 legacy, 0 redundant) [0007.39] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) [0007.39] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0013.04] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0013.62] DevShaders: Shader cache for RefShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant)Note there are 68841 legacy shaders in this scenario. XCOM 2 SDK LocalShaderCache- EW RefShaderCache-PC-D3D-SM3.upk- X2 LocalShaderCache-PC-D3D-SM3.upk (renamed LW_AlienPack_ModShaderCache.upk)- LocalShaderCache LicenseeVersion changed from 108 to 64- The game crashes. [0005.74] DevShaders: Serializing from local cache: TRUE on platform: Unknown [0005.77] DevShaders: Skipped 22 outdated FShaderTypes from Local shader cache: [0005.77] DevShaders: <snip ... skipped shaders> [0005.79] DevShaders: ... Loaded 91 shaders (91 legacy, 0 redundant) [0005.80] Critical: appError called: Ran out of virtual memory. To prevent this condition, you must free up more space on your primary hard disk.I managed to get SM5 of XCOM 2 SDK, but not SM3 needed by EU and EW. HDD 40 GB free, 20 GB page file. Windows 8.1 64-bit. UDK LocalShaderCache- EW RefShaderCache-PC-D3D-SM3.upk- UDK LocalShaderCache-PC-D3D-SM3.upk- LocalShaderCache LicenseeVersion 0 and 64- The game crashes. [0005.76] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0005.78] DevShaders: Skipped 7 outdated FShaderTypes from Local shader cache: [0005.78] DevShaders: <snip ... skipped shaders> [0005.78] DevShaders: ... Loaded 27 shaders (27 legacy, 0 redundant) [0005.79] Critical: appError called: Ran out of virtual memory. To prevent this condition, you must free up more space on your primary hard disk.HDD 40 GB free, 20 GB page file. Windows 8.1 64-bit. - EW RefShaderCache-PC-D3D-SM3.upk- UDK LocalShaderCache-PC-D3D-SM3.upk (renamed UDK RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion 0 and 64- The game crashes. [0005.71] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0005.93] DevShaders: Skipped 83 outdated FShaderTypes from Local shader cache: [0005.93] DevShaders: <snip ... skipped shaders> [0006.14] DevShaders: ... Loaded 13831 shaders (13831 legacy, 0 redundant) [0006.14] Critical: appError called: Bad name index 1120595158/808Different crash this time. XCOM Enemy Uknown LocalShaderCache- EW RefShaderCache-PC-D3D-SM3.upk- EU LocalShaderCache-PC-D3D-SM3.upk (renamed EU RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion 59- The game works, but doesn't use specified shaders. [0005.89] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0008.02] DevShaders: Skipped 129 outdated FShaderTypes from Local shader cache: [0008.02] DevShaders: <snip ... skipped shaders> [0008.31] DevShaders: ... Loaded 61208 shaders (61208 legacy, 0 redundant) [0008.51] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 3004 materials (0 redundant) [0008.51] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0014.20] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0044.20] DevShaders: Shader cache for RefShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) Not good. Skipped and legacy shaders. - EW RefShaderCache-PC-D3D-SM3.upk- EU LocalShaderCache-PC-D3D-SM3.upk (renamed EU RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion 59- Shaders with updated hashes!- The game works, but doesn't use specified shaders. [0004.96] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0005.84] DevShaders: ... Loaded 61208 shaders (61208 legacy, 0 redundant) [0006.00] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 3004 materials (0 redundant) [0006.01] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0011.15] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0011.65] DevShaders: Shader cache for RefShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) Still not good. But the game stopped skipping shaders. 61208 legacy shaders. - EW RefShaderCache-PC-D3D-SM3.upk- EU LocalShaderCache-PC-D3D-SM3.upk (renamed EU RefShaderCache-PC-D3D-SM3.upk)- LocalShaderCache LicenseeVersion changed from 59 to 64 (63 works too)- Shaders with updated hashes!- The game works, but doesn't use all specified shaders (only 2 shaders are ok). [0005.79] DevShaders: Serializing from local cache: TRUE on platform: PC-D3D-SM3 [0006.81] DevShaders: Skipped 127 outdated FShaderTypes from Local shader cache: [0006.81] DevShaders: TBasePassPixelShaderFNoLightMapPolicyNoSkyLightWithTranslucentFOW [0007.09] DevShaders: ... Loaded 61208 shaders (61191 legacy, 0 redundant) [0007.26] DevShaders: Shader cache for LocalShaderCache-PC-D3D-SM3 contains 3004 materials (0 redundant) [0007.27] DevShaders: Serializing from local cache: FALSE on platform: PC-D3D-SM3 [0012.39] DevShaders: ... Loaded 68841 shaders (0 legacy, 0 redundant) [0012.92] DevShaders: Shader cache for RefShaderCache-PC-D3D-SM3 contains 4801 materials (0 redundant) The game skips shaders again, but hey - 61191 legacy. FLightFunctionVertexShader and FRadialBlurVertexShader are ok. More later. Edited July 1, 2017 by Drakous79 Link to comment Share on other sites More sharing options...
Drakous79 Posted June 30, 2017 Author Share Posted June 30, 2017 (edited) There are 4 possible ways to go:Mod the game to compile missing material shaders and material shader maps unlikely would be good for everyone Custom LocalShaderCache-PC-D3D-SM3.upk incompatible - only 1 mod would use it would mean working EU materials in EW, if possible ease of UDK use RefShaderCache-PC-D3D-SM3.upk additions researched would be good for everyone hard, because of different NameTables no tools available Let it be Add 2. Custom LocalShaderCache-PC-D3D-SM3.upk So far little success. I've identified material shader data chunks in the file. Each material shader contains SHA1 hash (2 times the same), which is somehow connected with shader binaries stored in Steam\SteamApps\common\XCom-Enemy-Unknown\XEW\Engine\Shaders\Binaries. These hashes along with LicenseeVersion of the file and shader binaries direct, if the shader is outdated or legacy. EW RefShaderCache-PC-D3D-SM3.upk tests:Changed LicenseeVersion below 63 - 68841 (all) legacy shaders, none skipped; crash on DefaultMaterial compileChanged hashes of the 1st material shader (2A 03 CD 19 D1 69 7A 64 25 AD 8C AA 0D 43 5C 18 D5 AB 00 FA) - 1 legacy shader; worksChanged 1 byte in BasePassPixelShader.bin - 15628 legacy shaders, 23 outdated skipped; crash on DefaultMaterial compileBut there may be more to it, because EU file with updated hashes (Spreadsheet: EU EW hashes of skipped EU shaders) and correct LicenseeVersion fails. Only 2 shaders worked: FLightFunctionVertexShader and FRadialBlurVertexShader. IMO custom shader cache should be compiled with mentioned shader binaries. I recall copying EW shader binaries to UDK and UDK recompiled like crazy. But at least it recompiled and possibly would be able to produce correct cache. Add 3. RefShaderCache-PC-D3D-SM3.upk additions I've identified material shader map data chunks in the file, duplicated CHH_Flags shader map to the end of the file and linked soldier's model material to it. There is definitely some material caching going on. When I duplicated CHH_Flags, linked materials in Soldier_FemaleCarapace_SF.upk to it and destroyed former shader map links, all other armors had the texture. But when I went further and changed CHH_Flags name to CHH_Flagz in Soldier_FemaleCarapace_SF.upk, only girls in carapace had flags and everybody else ended with DefaultMaterial instead :smile: Next step is to test duplicate shader maps from EU and UDK and to clarify linking from materials with static switch parameters. And to post commented bytecode. --- Some interesting facts:EU RefShaderCache - 61208 shaders, 3004 materialsEW RefShaderCache - 68841 shaders, 4801 materialsCompiling shaders takes time, hence the need for precompilation and shader caches. Edited July 1, 2017 by Drakous79 Link to comment Share on other sites More sharing options...
Dethraker Posted August 11, 2017 Share Posted August 11, 2017 Just nice to see that someone else is still working on modding EU/EW, can't wait to hear what you decide to do. Not sure if it will help but AzXeus has a different method of modding the game using what he calls the XComModBridge. Link to comment Share on other sites More sharing options...
Drakous79 Posted August 14, 2017 Author Share Posted August 14, 2017 (edited) Nice to see someone is still watching :smile: I don't think XComModBridge can help with models, because shaders and shader maps are created by UDK. But thank you for letting me know! Some progress has been made. I've successfuly duplicated CHH_Soldiers shader map in Enemy Within RefShaderCache and linked it to Enemy Unknown female kevlar and carapace models. They are working in strategic game, but crash tactical game. Here are some images from EW. Model's origin is noted in cyan triangle. Posing are Arpita and Naima. http://i.imgur.com/juH0sIu.jpg I am currently working on porting URB_GasStation map. Fixed missing shader maps, now adding high resolution textures. But there are 572 textures in need of update. I'd like to check NetIndex errors too. Edited August 14, 2017 by Drakous79 Link to comment Share on other sites More sharing options...
Dethraker Posted August 14, 2017 Share Posted August 14, 2017 I haven't frequented the forums in awhile but have been working with AzXeus off and on for a overhaul project of our own. I know that XComModBridge can't help with the actual shaders but wasn't sure if maybe it could help with inserting the shaders into the game, it allows back and forth communication between the game code and outside code. I haven't spent much time looking into shaders or other art related concepts with XCom but just thought I'd throw it out there. Nice progress so far, if you get this working I would be anxious for a tutorial. I'm assuming here, but this would allow inserting new models right? Link to comment Share on other sites More sharing options...
Drakous79 Posted August 14, 2017 Author Share Posted August 14, 2017 (edited) That's the goal. Few years back I experimented with UDK (Unreal Development Kit). If I remember, my workflow was: 1. Export static mesh and textures of a car with UModel2. Import to Blender, add textures, export to *.fbx3. Import *.fbx and textures to UDK, create a material, put a model into blank map and apply the material to it4. Save or cook to *.upk, copy *.upk to CookedPCConsole, edit DefaultMaps.ini and add new map as streaming map to any map5. Test The car made it to the game, but with default checkboard texture, because of material fail. That's what motivated me to start the research. --- In theory, being able to add shaders and shader maps to RefShaderCache (RSC) should allow us to load UDK created content like static meshes (map objects) to the game. No idea about skeletal meshes (helmets, hair, characters, weapons). 1. Easy mode is to add a duplicate of existing shader map into RSC and link it to new material. That was done with EU models. First find existing material, that is close to new material's look, duplicate its shader map by copying it at the end of RSC and link it to new material. By linking I mean matching GUID and static switch parameter list of RSC and the material. Next update shader maps counter by a number of added maps. Also ShaderCache object's export entry has to be updated with new serial size. Edit: On the second thought, the best would be to build new material in UDK as close to existing material as possible (name, parameters) and link to existing shader map by having the right GUID and eventually static switch parameter list in it. No need to touch RSC in such case. 2. Hard mode is to add all shaders and shader maps for new material into RSC. That'd need a tool to convert hexadecimal values of names (NameIdx) between UDK and XCOM RSC. Add new shaders and shader maps to RSC, increase both counters and update serial size in export table. And use of XCOM shader binaries in UDK. --- Patching this would be a nightmare. Now those counters and their offsets are static. But if they change in the future, locating and patching them in RSC or producing a patch for PatcherGUI would require another non-existent tool to do the job on player's computer. So many difficulties. Nothing like XCOM 2 build and be happy. Edited August 17, 2017 by Drakous79 Link to comment Share on other sites More sharing options...
Drakous79 Posted August 14, 2017 Author Share Posted August 14, 2017 As promised, here are some examples of shader map. Shader map for material CHH_Flags: 3197D41FA8787346964C321C64C75D91 // FGuid GUID: Shader map #1 00000000 // int StaticSwitchParameterList: 0 items 00000000 // unknown 00000000 // unknown 00000000 // unknown 4D030000 // int Version: 845 40000000 // int LicenseeVersion: 64 14A8A70A // int NextChunkOffset: 0x0AA7A814 (178759700) 00000000 // unknown 02000000 // int VertexFactoriesList: 2 items 11000000 // int LocalVertexFactoryList: 17 items 7E05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicySkyLightWithoutTranslucentFOW 34BB5BDA5179104E88240FA99360A02A // FGuid ShaderGUID 7E05000000000000 // FName FriendlyName: the same as ShaderName 7C05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicyNoSkyLightWithoutTranslucentFOW B8143E0A45C99641AD3CA78B230E836B // FGuid ShaderGUID 7C05000000000000 // FName FriendlyName: the same as ShaderName 9605000000000000 // FName ShaderName: TBasePassVertexShaderFSHLightLightMapPolicyFNoDensityPolicy F11AFD92A619FF40880A567D3B9DF992 // FGuid ShaderGUID 9605000000000000 // FName FriendlyName: the same as ShaderName 6F05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicySkyLightWithoutTranslucentFOW 5760372B5628814EB8906BEA98827A4E // FGuid ShaderGUID 6F05000000000000 // FName FriendlyName: the same as ShaderName 6D05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 51B71ADD9795444B86E91D65341B123F // FGuid ShaderGUID 6D05000000000000 // FName FriendlyName: the same as ShaderName 8605000000000000 // FName ShaderName: TBasePassVertexShaderFDirectionalLightLightMapPolicyFNoDensityPolicy A2DF8045E3C39442809C6DEB2FAEFD49 // FGuid ShaderGUID 8605000000000000 // FName FriendlyName: the same as ShaderName 7A05000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicySkyLightWithoutTranslucentFOW 68FAEED0B1411B4DA85DA96ECB442EED // FGuid ShaderGUID 7A05000000000000 // FName FriendlyName: the same as ShaderName 7805000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicyNoSkyLightWithoutTranslucentFOW A2A26C4AF18BE3448B5F3F7E0CD5E325 // FGuid ShaderGUID 7805000000000000 // FName FriendlyName: the same as ShaderName 9205000000000000 // FName ShaderName: TBasePassVertexShaderFNoLightMapPolicyFNoDensityPolicy D35C559CFC2D6B47A55F28EE8A17A6A3 // FGuid ShaderGUID 9205000000000000 // FName FriendlyName: the same as ShaderName 2106000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFNoStaticShadowingPolicyFALSE D25F788D5924B84C9546087BEB35A339 // FGuid ShaderGUID 2106000000000000 // FName FriendlyName: the same as ShaderName 2E06000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFNoStaticShadowingPolicy 98DBF4D34ED7FD4485353829F92A7783 // FGuid ShaderGUID 2E06000000000000 // FName FriendlyName: the same as ShaderName 1F06000000000000 // FName ShaderName: TLightPixelShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicyFALSE E9018F21C92F8A4A84B64EBCC8B71F17 // FGuid ShaderGUID 1F06000000000000 // FName FriendlyName: the same as ShaderName 2D06000000000000 // FName ShaderName: TLightVertexShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicy F8F4098220D2014191A1F84A5BE03A77 // FGuid ShaderGUID 2D06000000000000 // FName FriendlyName: the same as ShaderName 1906000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFNoStaticShadowingPolicyFALSE 7F5440135C751B41A6210E6683115435 // FGuid ShaderGUID 1906000000000000 // FName FriendlyName: the same as ShaderName 2A06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFNoStaticShadowingPolicy AB6AA1D4BB29554F9D2DCF56591FA075 // FGuid ShaderGUID 2A06000000000000 // FName FriendlyName: the same as ShaderName 1306000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFNoStaticShadowingPolicyFALSE 261CD4F3FD8F274489704E9CC4D7B6ED // FGuid ShaderGUID 1306000000000000 // FName FriendlyName: the same as ShaderName 2706000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFNoStaticShadowingPolicy 5A36A9931C37EB409028983D5BF2BF3A // FGuid ShaderGUID 2706000000000000 // FName FriendlyName: the same as ShaderName 4902000000000000 // FName: FLocalVertexFactory 11000000 // int GPUSkinVertexFactoryList: 17 items 7E05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicySkyLightWithoutTranslucentFOW 34BB5BDA5179104E88240FA99360A02A // FGuid ShaderGUID 7E05000000000000 // FName FriendlyName: the same as ShaderName 7C05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicyNoSkyLightWithoutTranslucentFOW B8143E0A45C99641AD3CA78B230E836B // FGuid ShaderGUID 7C05000000000000 // FName FriendlyName: the same as ShaderName 9605000000000000 // FName ShaderName: TBasePassVertexShaderFSHLightLightMapPolicyFNoDensityPolicy A48911D886F0EB4C9362A2074B7C1970 // FGuid ShaderGUID 9605000000000000 // FName FriendlyName: the same as ShaderName 6F05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicySkyLightWithoutTranslucentFOW 5760372B5628814EB8906BEA98827A4E // FGuid ShaderGUID 6F05000000000000 // FName FriendlyName: the same as ShaderName 6D05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 51B71ADD9795444B86E91D65341B123F // FGuid ShaderGUID 6D05000000000000 // FName FriendlyName: the same as ShaderName 8605000000000000 // FName ShaderName: TBasePassVertexShaderFDirectionalLightLightMapPolicyFNoDensityPolicy 0666D3C7C7982041BEA15999183A8A92 // FGuid ShaderGUID 8605000000000000 // FName FriendlyName: the same as ShaderName 7A05000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicySkyLightWithoutTranslucentFOW 68FAEED0B1411B4DA85DA96ECB442EED // FGuid ShaderGUID 7A05000000000000 // FName FriendlyName: the same as ShaderName 7805000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicyNoSkyLightWithoutTranslucentFOW A2A26C4AF18BE3448B5F3F7E0CD5E325 // FGuid ShaderGUID 7805000000000000 // FName FriendlyName: the same as ShaderName 9205000000000000 // FName ShaderName: TBasePassVertexShaderFNoLightMapPolicyFNoDensityPolicy 0B284A8C9F6ECD449B6E8EF29D5E2691 // FGuid ShaderGUID 9205000000000000 // FName FriendlyName: the same as ShaderName 2106000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFNoStaticShadowingPolicyFALSE D25F788D5924B84C9546087BEB35A339 // FGuid ShaderGUID 2106000000000000 // FName FriendlyName: the same as ShaderName 2E06000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFNoStaticShadowingPolicy 65E8C0728DDE4D48953B7C599F5F9E8D // FGuid ShaderGUID 2E06000000000000 // FName FriendlyName: the same as ShaderName 1F06000000000000 // FName ShaderName: TLightPixelShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicyFALSE E9018F21C92F8A4A84B64EBCC8B71F17 // FGuid ShaderGUID 1F06000000000000 // FName FriendlyName: the same as ShaderName 2D06000000000000 // FName ShaderName: TLightVertexShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicy 51904567EAC3F346974CF61EAEF44C07 // FGuid ShaderGUID 2D06000000000000 // FName FriendlyName: the same as ShaderName 1906000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFNoStaticShadowingPolicyFALSE 7F5440135C751B41A6210E6683115435 // FGuid ShaderGUID 1906000000000000 // FName FriendlyName: the same as ShaderName 2A06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFNoStaticShadowingPolicy 90AD561C9F31664488F36BABD50ED335 // FGuid ShaderGUID 2A06000000000000 // FName FriendlyName: the same as ShaderName 1306000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFNoStaticShadowingPolicyFALSE 261CD4F3FD8F274489704E9CC4D7B6ED // FGuid ShaderGUID 1306000000000000 // FName FriendlyName: the same as ShaderName 2706000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFNoStaticShadowingPolicy 44B72E6D9EF1B24DA467D1F96538F429 // FGuid ShaderGUID 2706000000000000 // FName FriendlyName: the same as ShaderName 2102000000000000 // FName: FGPUSkinVertexFactory 3197D41FA8787346964C321C64C75D91 // FGuid GUID: Shader map #2 0A000000 // int StringLength: 10 4348485F466C61677300 // ASCII null-terminated string: CHH_Flags 3197D41FA8787346964C321C64C75D91 // FGuid GUID: Shader map #3 00000000 // int StaticSwitchParameterList: 0 items 00000000 // unknown 00000000 // unknown 00000000 // unknown 02000000 // int VectorParameterList: 2 items 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter B604000000000000 // FName ParameterName: SelectionColor 0000000000000000000000000000803F // vector FLinearColor: (R=0.0, G=0.0, B=0.0, A=1.0) 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter 2A00000000000000 // FName ParameterName: ArmorLevelTinter 597D4E3F9A85333F2774E63E0000803F // vector FLinearColor: (R=0.8066, G=0.7013, B=0.4501, A=1.0) 03000000 // int ScalarParameterList: 3 items 5D02000000000000 // FName: FMaterialUniformExpressionScalarParameter 5B06000000000000 // FName ParameterName: UOffset 00000000 // float DefaultValue: 0.0 5D02000000000000 // FName: FMaterialUniformExpressionScalarParameter C606000000000000 // FName ParameterName: vOffset 00000000 // float DefaultValue: 0.0 5D02000000000000 // FName: FMaterialUniformExpressionScalarParameter 0E05000000000000 // FName ParameterName: SpecControl 0000803E // float DefaultValue: 0.25 01000000 // int TextureParameterList: 1 item 6102000000000000 // FName: FMaterialUniformExpressionTextureParameter 3502000000000000 // FName ParameterName: FlagTex 00000000 // int ElementIndex: 0 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown Modified (static switch parameter list of EU models) shader map for material CHH_Soldiers: 160CC4393E297F479DEF6CE1AE454410 // FGuid GUID: Shader map #1 03000000 // int StaticSwitchParameterList: 3 items 4B04000000000000 // FName ParameterName: Reflect 00000000 // bool Value: false 00000000 // bool bOverride: false 74DDD654979A1B42B2E9D7EFAA4F7987 // FGuid ExpressionGUID 0100000000000000 // FName ParameterName: 2 Color Tinted? 01000000 // bool Value: true 01000000 // bool bOverride: true E0BA1DE94C52BC47B7EEDB437F1721AA // FGuid ExpressionGUID 0906000000000000 // FName ParameterName: Tinted? 00000000 // bool Value: false 00000000 // bool bOverride: false ADDD25F251B4BA4EBAA557A5A5392DB6 // FGuid ExpressionGUID 00000000 // unknown 00000000 // unknown 00000000 // unknown 4D030000 // int Version: 845 40000000 // int LicenseeVersion: 64 33D6B30A // int NextChunkOffset: 0x0AB3D633 (179557939) 00000000 // unknown 02000000 // int VertexFactoriesList: 2 items 23000000 // int LocalVertexFactoryList: 35 items 7E05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicySkyLightWithoutTranslucentFOW 0E6B1594EAB32F43A3D88EC4C9724D25 // FGuid ShaderGUID 7E05000000000000 // FName FriendlyName: the same as ShaderName 7C05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 111F96ED64C02B45A83C9CA62812F18A // FGuid ShaderGUID 7C05000000000000 // FName FriendlyName: the same as ShaderName 9605000000000000 // FName ShaderName: TBasePassVertexShaderFSHLightLightMapPolicyFNoDensityPolicy A0477043D7637847BCA1755C85BB30E9 // FGuid ShaderGUID 9605000000000000 // FName FriendlyName: the same as ShaderName 6F05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicySkyLightWithoutTranslucentFOW 8A0F711C7E53F548A846D83B2920A90E // FGuid ShaderGUID 6F05000000000000 // FName FriendlyName: the same as ShaderName 6D05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 596F1CDE29A98C458E4F893BFC414536 // FGuid ShaderGUID 6D05000000000000 // FName FriendlyName: the same as ShaderName 8605000000000000 // FName ShaderName: TBasePassVertexShaderFDirectionalLightLightMapPolicyFNoDensityPolicy D1C9F98840C99F4E8017216787315C24 // FGuid ShaderGUID 8605000000000000 // FName FriendlyName: the same as ShaderName 8205000000000000 // FName ShaderName: TBasePassPixelShaderFSimpleLightMapTexturePolicySkyLightWithoutTranslucentFOW 9BA6E3817AC0EB45AB09C2B60A2E22E9 // FGuid ShaderGUID 8205000000000000 // FName FriendlyName: the same as ShaderName 8005000000000000 // FName ShaderName: TBasePassPixelShaderFSimpleLightMapTexturePolicyNoSkyLightWithoutTranslucentFOW 2017302CE54B08488ADE0CFCA018C553 // FGuid ShaderGUID 8005000000000000 // FName FriendlyName: the same as ShaderName 9A05000000000000 // FName ShaderName: TBasePassVertexShaderFSimpleLightMapTexturePolicyFNoDensityPolicy 669EC945F9109F469ECF8C94A2FC4A76 // FGuid ShaderGUID 9A05000000000000 // FName FriendlyName: the same as ShaderName 7305000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightMapTexturePolicySkyLightWithoutTranslucentFOW 2045AD5E394728438748778B633F9AE5 // FGuid ShaderGUID 7305000000000000 // FName FriendlyName: the same as ShaderName 7105000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightMapTexturePolicyNoSkyLightWithoutTranslucentFOW 90D10C6EF9FBDF4CBDCB68B4DCA31DC2 // FGuid ShaderGUID 7105000000000000 // FName FriendlyName: the same as ShaderName 8A05000000000000 // FName ShaderName: TBasePassVertexShaderFDirectionalLightMapTexturePolicyFNoDensityPolicy EE5682B4618C174C900345CE6BBF4CE4 // FGuid ShaderGUID 8A05000000000000 // FName FriendlyName: the same as ShaderName 7A05000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicySkyLightWithoutTranslucentFOW FBB5B2A101819442B56468F33F2DDB89 // FGuid ShaderGUID 7A05000000000000 // FName FriendlyName: the same as ShaderName 7805000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicyNoSkyLightWithoutTranslucentFOW 127EAC076BBFFD49A4B086F3B87CC767 // FGuid ShaderGUID 7805000000000000 // FName FriendlyName: the same as ShaderName 9205000000000000 // FName ShaderName: TBasePassVertexShaderFNoLightMapPolicyFNoDensityPolicy 9A73B9AB031A2F47BF128A696281DBC0 // FGuid ShaderGUID 9205000000000000 // FName FriendlyName: the same as ShaderName 2506000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFSignedDistanceFieldShadowTexturePolicyFALSE 4E0B7FC9ACA2CE438133DE0C091D7FC0 // FGuid ShaderGUID 2506000000000000 // FName FriendlyName: the same as ShaderName 3006000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFSignedDistanceFieldShadowTexturePolicy 09146D529CC9FC409DD7C7ECF4091D56 // FGuid ShaderGUID 3006000000000000 // FName FriendlyName: the same as ShaderName 2306000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFShadowTexturePolicyFALSE 7AA668205E97EC4CB9CB417ED231EAE6 // FGuid ShaderGUID 2306000000000000 // FName FriendlyName: the same as ShaderName 2F06000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFShadowTexturePolicy D141108CAD05C6448081153E8208C6C4 // FGuid ShaderGUID 2F06000000000000 // FName FriendlyName: the same as ShaderName 2106000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFNoStaticShadowingPolicyFALSE B96707EAB12C45449679F1E79520B1BE // FGuid ShaderGUID 2106000000000000 // FName FriendlyName: the same as ShaderName 2E06000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFNoStaticShadowingPolicy 1D5D1F68FA19BF45BCDAFA7BF51FD15F // FGuid ShaderGUID 2E06000000000000 // FName FriendlyName: the same as ShaderName 1F06000000000000 // FName ShaderName: TLightPixelShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicyFALSE AEB3068EB02EBC45ADCBDD9802AA3AD3 // FGuid ShaderGUID 1F06000000000000 // FName FriendlyName: the same as ShaderName 2D06000000000000 // FName ShaderName: TLightVertexShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicy 2A180798BFCA194D85C2EBDF97D8EE7E // FGuid ShaderGUID 2D06000000000000 // FName FriendlyName: the same as ShaderName 1D06000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFSignedDistanceFieldShadowTexturePolicyFALSE AD5ABD652B24144597DF6E2E847A09CC // FGuid ShaderGUID 1D06000000000000 // FName FriendlyName: the same as ShaderName 2C06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFSignedDistanceFieldShadowTexturePolicy 6D1C20CF4CB1074BB9BFEF97AD6519A0 // FGuid ShaderGUID 2C06000000000000 // FName FriendlyName: the same as ShaderName 1B06000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFShadowTexturePolicyFALSE A8A4DEB09731DD40A087046A381C83E6 // FGuid ShaderGUID 1B06000000000000 // FName FriendlyName: the same as ShaderName 2B06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFShadowTexturePolicy 0C921D42393E2E4FBEE38F22A02EB48E // FGuid ShaderGUID 2B06000000000000 // FName FriendlyName: the same as ShaderName 1906000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFNoStaticShadowingPolicyFALSE B44D6E83C2692641B39306271DDFF09A // FGuid ShaderGUID 1906000000000000 // FName FriendlyName: the same as ShaderName 2A06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFNoStaticShadowingPolicy 28C307DD885D8245AF30DE56C5A27577 // FGuid ShaderGUID 2A06000000000000 // FName FriendlyName: the same as ShaderName 1706000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFSignedDistanceFieldShadowTexturePolicyFALSE CF455469B2EA4349B752423ED97D3B42 // FGuid ShaderGUID 1706000000000000 // FName FriendlyName: the same as ShaderName 2906000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFSignedDistanceFieldShadowTexturePolicy 853021D0B3F1764E9FD1D1681BE707E4 // FGuid ShaderGUID 2906000000000000 // FName FriendlyName: the same as ShaderName 1506000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFShadowTexturePolicyFALSE 98A565183422AA45BB98F929FE84256F // FGuid ShaderGUID 1506000000000000 // FName FriendlyName: the same as ShaderName 2806000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFShadowTexturePolicy CAB43BAC6303654AAFE3561DCDA1FE64 // FGuid ShaderGUID 2806000000000000 // FName FriendlyName: the same as ShaderName 1306000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFNoStaticShadowingPolicyFALSE C39C1BB32F265F49BBA6BBC060C42BAB // FGuid ShaderGUID 1306000000000000 // FName FriendlyName: the same as ShaderName 2706000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFNoStaticShadowingPolicy C6EBB66093AA2044856C3FCED3C25741 // FGuid ShaderGUID 2706000000000000 // FName FriendlyName: the same as ShaderName 4902000000000000 // FName: FLocalVertexFactory 11000000 // int GPUSkinVertexFactoryList: 17 items 7E05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicySkyLightWithoutTranslucentFOW 0E6B1594EAB32F43A3D88EC4C9724D25 // FGuid ShaderGUID 7E05000000000000 // FName FriendlyName: the same as ShaderName 7C05000000000000 // FName ShaderName: TBasePassPixelShaderFSHLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 111F96ED64C02B45A83C9CA62812F18A // FGuid ShaderGUID 7C05000000000000 // FName FriendlyName: the same as ShaderName 9605000000000000 // FName ShaderName: TBasePassVertexShaderFSHLightLightMapPolicyFNoDensityPolicy 3F7690982E3DEF49A8A3084258A12DBE // FGuid ShaderGUID 9605000000000000 // FName FriendlyName: the same as ShaderName 6F05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicySkyLightWithoutTranslucentFOW 8A0F711C7E53F548A846D83B2920A90E // FGuid ShaderGUID 6F05000000000000 // FName FriendlyName: the same as ShaderName 6D05000000000000 // FName ShaderName: TBasePassPixelShaderFDirectionalLightLightMapPolicyNoSkyLightWithoutTranslucentFOW 596F1CDE29A98C458E4F893BFC414536 // FGuid ShaderGUID 6D05000000000000 // FName FriendlyName: the same as ShaderName 8605000000000000 // FName ShaderName: TBasePassVertexShaderFDirectionalLightLightMapPolicyFNoDensityPolicy 4A92AD1705E77A46A46E8CBBA418AEB3 // FGuid ShaderGUID 8605000000000000 // FName FriendlyName: the same as ShaderName 7A05000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicySkyLightWithoutTranslucentFOW FBB5B2A101819442B56468F33F2DDB89 // FGuid ShaderGUID 7A05000000000000 // FName FriendlyName: the same as ShaderName 7805000000000000 // FName ShaderName: TBasePassPixelShaderFNoLightMapPolicyNoSkyLightWithoutTranslucentFOW 127EAC076BBFFD49A4B086F3B87CC767 // FGuid ShaderGUID 7805000000000000 // FName FriendlyName: the same as ShaderName 9205000000000000 // FName ShaderName: TBasePassVertexShaderFNoLightMapPolicyFNoDensityPolicy F63E63887FB6B041BD66BF282E212B6E // FGuid ShaderGUID 9205000000000000 // FName FriendlyName: the same as ShaderName 2106000000000000 // FName ShaderName: TLightPixelShaderFSpotLightPolicyFNoStaticShadowingPolicyFALSE B96707EAB12C45449679F1E79520B1BE // FGuid ShaderGUID 2106000000000000 // FName FriendlyName: the same as ShaderName 2E06000000000000 // FName ShaderName: TLightVertexShaderFSpotLightPolicyFNoStaticShadowingPolicy 49F302370573DF4F9964205162E566BA // FGuid ShaderGUID 2E06000000000000 // FName FriendlyName: the same as ShaderName 1F06000000000000 // FName ShaderName: TLightPixelShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicyFALSE AEB3068EB02EBC45ADCBDD9802AA3AD3 // FGuid ShaderGUID 1F06000000000000 // FName FriendlyName: the same as ShaderName 2D06000000000000 // FName ShaderName: TLightVertexShaderFSphericalHarmonicLightPolicyFNoStaticShadowingPolicy CF0FC5EAFC649048984F0CC14EA1B579 // FGuid ShaderGUID 2D06000000000000 // FName FriendlyName: the same as ShaderName 1906000000000000 // FName ShaderName: TLightPixelShaderFPointLightPolicyFNoStaticShadowingPolicyFALSE B44D6E83C2692641B39306271DDFF09A // FGuid ShaderGUID 1906000000000000 // FName FriendlyName: the same as ShaderName 2A06000000000000 // FName ShaderName: TLightVertexShaderFPointLightPolicyFNoStaticShadowingPolicy 5E0FDB9CC60ADC42B1B4BD555272F5CE // FGuid ShaderGUID 2A06000000000000 // FName FriendlyName: the same as ShaderName 1306000000000000 // FName ShaderName: TLightPixelShaderFDirectionalLightPolicyFNoStaticShadowingPolicyFALSE C39C1BB32F265F49BBA6BBC060C42BAB // FGuid ShaderGUID 1306000000000000 // FName FriendlyName: the same as ShaderName 2706000000000000 // FName ShaderName: TLightVertexShaderFDirectionalLightPolicyFNoStaticShadowingPolicy 50D033984AAEC7478F0A5359C04FEBAB // FGuid ShaderGUID 2706000000000000 // FName FriendlyName: the same as ShaderName 2102000000000000 // FName: FGPUSkinVertexFactory 7EE8F66F847A2D4DBAE658F031711384 // FGuid GUID: Shader map #2 0D000000 // int StringLength: 13 4348485F536F6C646965727300 // ASCII null-terminated string: CHH_Soldiers 160CC4393E297F479DEF6CE1AE454410 // FGuid GUID: Shader map #3 03000000 // int StaticSwitchParameterList: 3 items 4B04000000000000 // FName ParameterName: Reflect 00000000 // bool Value: false 00000000 // bool bOverride: false 74DDD654979A1B42B2E9D7EFAA4F7987 // FGuid ExpressionGUID 0100000000000000 // FName ParameterName: 2 Color Tinted? 01000000 // bool Value: true 01000000 // bool bOverride: true E0BA1DE94C52BC47B7EEDB437F1721AA // FGuid ExpressionGUID 0906000000000000 // FName ParameterName: Tinted? 00000000 // bool Value: false 00000000 // bool bOverride: false ADDD25F251B4BA4EBAA557A5A5392DB6 // FGuid ExpressionGUID 00000000 // unknown 00000000 // unknown 00000000 // unknown 04000000 // int VectorParameterList: 4 items 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter B604000000000000 // FName ParameterName: SelectionColor 0000000000000000000000000000803F // vector FLinearColor: (R=0.0, G=0.0, B=0.0, A=1.0) 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter D900000000000000 // FName ParameterName: CMOD 0000803E0000803E0000803E0000803F // vector FLinearColor: (R=0.25, G=0.25, B=0.25, A=1.0) 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter DB00000000000000 // FName ParameterName: CMODB 9A99193E9A99193E9A99193E0000803F // vector FLinearColor: (R=0.15, G=0.15, B=0.15, A=1.0) 6302000000000000 // FName: FMaterialUniformExpressionVectorParameter FA04000000000000 // FName ParameterName: SpcColor_SpcGloss 0000803F0000803F0000803F00008041 // vector FLinearColor: (R=1.0, G=1.0, B=1.0, A=16.0) 01000000 // int ScalarParameterList: 1 item 5D02000000000000 // FName: FMaterialUniformExpressionScalarParameter F001000000000000 // FName ParameterName: EmsValue 0000803F // float DefaultValue: 1.0 03000000 // int TextureParameterList: 3 items 6102000000000000 // FName: FMaterialUniformExpressionTextureParameter 9D03000000000000 // FName ParameterName: Normal 00000000 // int ElementIndex: 0 6102000000000000 // FName: FMaterialUniformExpressionTextureParameter F304000000000000 // FName ParameterName: Spc_Ems_Ref_Opc 01000000 // int ElementIndex: 1 6102000000000000 // FName: FMaterialUniformExpressionTextureParameter 6401000000000000 // FName ParameterName: Diffuse 02000000 // int ElementIndex: 2 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown 00000000 // unknown Link to comment Share on other sites More sharing options...
Drakous79 Posted August 16, 2017 Author Share Posted August 16, 2017 (edited) After some effort EU female carapace works in EW. Medal ceremony works. Covert operative selection screen shows carapace instead of covert operative model, but the right model is shown during covert mission. http://i.imgur.com/HXPJz8y.jpg?1 http://i.imgur.com/bSQreiF.jpg Here are instructions for those brave enough, who can handle manual install:1. Copy CharTextures.tfc from EU to EW, and rename the file to CharTexturesEU.tfc.2. Backup Enemy Within files! Soldier_FemaleCarapace_SF.upk and RefShaderCache-PC-D3D-SM3.upk.3. Copy Soldier_FemaleCarapace_SF.upk from EU to EW.4. Apply following patches with PatcherGUI or PatchUPK to Enemy Within files. UPK_FILE=Soldier_FemaleCarapace_SF.upk // ----------------------------------------------------------------------------- // Add CharTexturesEU name // ----------------------------------------------------------------------------- [ADD_NAME_ENTRY] <%u 15> // String length <%t "CharTexturesEU"> // ASCII null-terminated string <%u 0x00000000> // Flags L <%u 0x00070010> // Flags H // ----------------------------------------------------------------------------- // TextureFileCacheName values replacement (CharTextures -> CharTexturesEU) // ----------------------------------------------------------------------------- OFFSET=0xA REPLACE_CODE= <TextureFileCacheName> <NameProperty> <%u 0x00000008> <%u 0x00000000> <CharTextures> : <TextureFileCacheName> <NameProperty> <%u 0x00000008> <%u 0x00000000> <CharTexturesEU> // ----------------------------------------------------------------------------- // Material and MIC shader map GUID update // ----------------------------------------------------------------------------- OBJECT=GEN_MaterialParents.Master_Materials.CHH_Soldiers REPLACE_HEX= 7C A9 4E 6C 1B DD 0B 47 A1 45 75 AB A2 38 CC 32 : 16 0C C4 39 3E 29 7F 47 9D EF 6C E1 AE 45 44 10 OBJECT=CHH_Lv2MedFem_MOD.Materials.MInst_Lv2MedFem REPLACE_HEX= 7C A9 4E 6C 1B DD 0B 47 A1 45 75 AB A2 38 CC 32 : 16 0C C4 39 3E 29 7F 47 9D EF 6C E1 AE 45 44 10 UPK_FILE=RefShaderCache-PC-D3D-SM3.upk // ----------------------------------------------------------------------------- // CacheObject serial size update // ----------------------------------------------------------------------------- EXPORT_ENTRY=CacheObject REPLACE_CODE= <%u 186092172> : <%u 186094449> // ----------------------------------------------------------------------------- // Shader map counter update // ----------------------------------------------------------------------------- OBJECT=CacheObject [FIND_CODE] <%u 4801> // C1 12 00 00 A2 B9 00 00 F8 C1 CE 44 A4 42 07 06 5E 3B D4 91 // GUID of the 1st official shader map [MODDED_CODE] <%u 4802> // C2 12 00 00 5. Append shader map to EW RefShaderCache-PC-D3D-SM3.upk. Open the file in hex editor and copy paste following hex to its end. Save. Or see 5a. 16 0C C4 39 3E 29 7F 47 9D EF 6C E1 AE 45 44 10 03 00 00 00 4B 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 DD D6 54 97 9A 1B 42 B2 E9 D7 EF AA 4F 79 87 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 E0 BA 1D E9 4C 52 BC 47 B7 EE DB 43 7F 17 21 AA 09 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AD DD 25 F2 51 B4 BA 4E BA A5 57 A5 A5 39 2D B6 00 00 00 00 00 00 00 00 00 00 00 00 4D 03 00 00 40 00 00 00 33 D6 B3 0A 00 00 00 00 02 00 00 00 23 00 00 00 7E 05 00 00 00 00 00 00 0E 6B 15 94 EA B3 2F 43 A3 D8 8E C4 C9 72 4D 25 7E 05 00 00 00 00 00 00 7C 05 00 00 00 00 00 00 11 1F 96 ED 64 C0 2B 45 A8 3C 9C A6 28 12 F1 8A 7C 05 00 00 00 00 00 00 96 05 00 00 00 00 00 00 A0 47 70 43 D7 63 78 47 BC A1 75 5C 85 BB 30 E9 96 05 00 00 00 00 00 00 6F 05 00 00 00 00 00 00 8A 0F 71 1C 7E 53 F5 48 A8 46 D8 3B 29 20 A9 0E 6F 05 00 00 00 00 00 00 6D 05 00 00 00 00 00 00 59 6F 1C DE 29 A9 8C 45 8E 4F 89 3B FC 41 45 36 6D 05 00 00 00 00 00 00 86 05 00 00 00 00 00 00 D1 C9 F9 88 40 C9 9F 4E 80 17 21 67 87 31 5C 24 86 05 00 00 00 00 00 00 82 05 00 00 00 00 00 00 9B A6 E3 81 7A C0 EB 45 AB 09 C2 B6 0A 2E 22 E9 82 05 00 00 00 00 00 00 80 05 00 00 00 00 00 00 20 17 30 2C E5 4B 08 48 8A DE 0C FC A0 18 C5 53 80 05 00 00 00 00 00 00 9A 05 00 00 00 00 00 00 66 9E C9 45 F9 10 9F 46 9E CF 8C 94 A2 FC 4A 76 9A 05 00 00 00 00 00 00 73 05 00 00 00 00 00 00 20 45 AD 5E 39 47 28 43 87 48 77 8B 63 3F 9A E5 73 05 00 00 00 00 00 00 71 05 00 00 00 00 00 00 90 D1 0C 6E F9 FB DF 4C BD CB 68 B4 DC A3 1D C2 71 05 00 00 00 00 00 00 8A 05 00 00 00 00 00 00 EE 56 82 B4 61 8C 17 4C 90 03 45 CE 6B BF 4C E4 8A 05 00 00 00 00 00 00 7A 05 00 00 00 00 00 00 FB B5 B2 A1 01 81 94 42 B5 64 68 F3 3F 2D DB 89 7A 05 00 00 00 00 00 00 78 05 00 00 00 00 00 00 12 7E AC 07 6B BF FD 49 A4 B0 86 F3 B8 7C C7 67 78 05 00 00 00 00 00 00 92 05 00 00 00 00 00 00 9A 73 B9 AB 03 1A 2F 47 BF 12 8A 69 62 81 DB C0 92 05 00 00 00 00 00 00 25 06 00 00 00 00 00 00 4E 0B 7F C9 AC A2 CE 43 81 33 DE 0C 09 1D 7F C0 25 06 00 00 00 00 00 00 30 06 00 00 00 00 00 00 09 14 6D 52 9C C9 FC 40 9D D7 C7 EC F4 09 1D 56 30 06 00 00 00 00 00 00 23 06 00 00 00 00 00 00 7A A6 68 20 5E 97 EC 4C B9 CB 41 7E D2 31 EA E6 23 06 00 00 00 00 00 00 2F 06 00 00 00 00 00 00 D1 41 10 8C AD 05 C6 44 80 81 15 3E 82 08 C6 C4 2F 06 00 00 00 00 00 00 21 06 00 00 00 00 00 00 B9 67 07 EA B1 2C 45 44 96 79 F1 E7 95 20 B1 BE 21 06 00 00 00 00 00 00 2E 06 00 00 00 00 00 00 1D 5D 1F 68 FA 19 BF 45 BC DA FA 7B F5 1F D1 5F 2E 06 00 00 00 00 00 00 1F 06 00 00 00 00 00 00 AE B3 06 8E B0 2E BC 45 AD CB DD 98 02 AA 3A D3 1F 06 00 00 00 00 00 00 2D 06 00 00 00 00 00 00 2A 18 07 98 BF CA 19 4D 85 C2 EB DF 97 D8 EE 7E 2D 06 00 00 00 00 00 00 1D 06 00 00 00 00 00 00 AD 5A BD 65 2B 24 14 45 97 DF 6E 2E 84 7A 09 CC 1D 06 00 00 00 00 00 00 2C 06 00 00 00 00 00 00 6D 1C 20 CF 4C B1 07 4B B9 BF EF 97 AD 65 19 A0 2C 06 00 00 00 00 00 00 1B 06 00 00 00 00 00 00 A8 A4 DE B0 97 31 DD 40 A0 87 04 6A 38 1C 83 E6 1B 06 00 00 00 00 00 00 2B 06 00 00 00 00 00 00 0C 92 1D 42 39 3E 2E 4F BE E3 8F 22 A0 2E B4 8E 2B 06 00 00 00 00 00 00 19 06 00 00 00 00 00 00 B4 4D 6E 83 C2 69 26 41 B3 93 06 27 1D DF F0 9A 19 06 00 00 00 00 00 00 2A 06 00 00 00 00 00 00 28 C3 07 DD 88 5D 82 45 AF 30 DE 56 C5 A2 75 77 2A 06 00 00 00 00 00 00 17 06 00 00 00 00 00 00 CF 45 54 69 B2 EA 43 49 B7 52 42 3E D9 7D 3B 42 17 06 00 00 00 00 00 00 29 06 00 00 00 00 00 00 85 30 21 D0 B3 F1 76 4E 9F D1 D1 68 1B E7 07 E4 29 06 00 00 00 00 00 00 15 06 00 00 00 00 00 00 98 A5 65 18 34 22 AA 45 BB 98 F9 29 FE 84 25 6F 15 06 00 00 00 00 00 00 28 06 00 00 00 00 00 00 CA B4 3B AC 63 03 65 4A AF E3 56 1D CD A1 FE 64 28 06 00 00 00 00 00 00 13 06 00 00 00 00 00 00 C3 9C 1B B3 2F 26 5F 49 BB A6 BB C0 60 C4 2B AB 13 06 00 00 00 00 00 00 27 06 00 00 00 00 00 00 C6 EB B6 60 93 AA 20 44 85 6C 3F CE D3 C2 57 41 27 06 00 00 00 00 00 00 49 02 00 00 00 00 00 00 11 00 00 00 7E 05 00 00 00 00 00 00 0E 6B 15 94 EA B3 2F 43 A3 D8 8E C4 C9 72 4D 25 7E 05 00 00 00 00 00 00 7C 05 00 00 00 00 00 00 11 1F 96 ED 64 C0 2B 45 A8 3C 9C A6 28 12 F1 8A 7C 05 00 00 00 00 00 00 96 05 00 00 00 00 00 00 3F 76 90 98 2E 3D EF 49 A8 A3 08 42 58 A1 2D BE 96 05 00 00 00 00 00 00 6F 05 00 00 00 00 00 00 8A 0F 71 1C 7E 53 F5 48 A8 46 D8 3B 29 20 A9 0E 6F 05 00 00 00 00 00 00 6D 05 00 00 00 00 00 00 59 6F 1C DE 29 A9 8C 45 8E 4F 89 3B FC 41 45 36 6D 05 00 00 00 00 00 00 86 05 00 00 00 00 00 00 4A 92 AD 17 05 E7 7A 46 A4 6E 8C BB A4 18 AE B3 86 05 00 00 00 00 00 00 7A 05 00 00 00 00 00 00 FB B5 B2 A1 01 81 94 42 B5 64 68 F3 3F 2D DB 89 7A 05 00 00 00 00 00 00 78 05 00 00 00 00 00 00 12 7E AC 07 6B BF FD 49 A4 B0 86 F3 B8 7C C7 67 78 05 00 00 00 00 00 00 92 05 00 00 00 00 00 00 F6 3E 63 88 7F B6 B0 41 BD 66 BF 28 2E 21 2B 6E 92 05 00 00 00 00 00 00 21 06 00 00 00 00 00 00 B9 67 07 EA B1 2C 45 44 96 79 F1 E7 95 20 B1 BE 21 06 00 00 00 00 00 00 2E 06 00 00 00 00 00 00 49 F3 02 37 05 73 DF 4F 99 64 20 51 62 E5 66 BA 2E 06 00 00 00 00 00 00 1F 06 00 00 00 00 00 00 AE B3 06 8E B0 2E BC 45 AD CB DD 98 02 AA 3A D3 1F 06 00 00 00 00 00 00 2D 06 00 00 00 00 00 00 CF 0F C5 EA FC 64 90 48 98 4F 0C C1 4E A1 B5 79 2D 06 00 00 00 00 00 00 19 06 00 00 00 00 00 00 B4 4D 6E 83 C2 69 26 41 B3 93 06 27 1D DF F0 9A 19 06 00 00 00 00 00 00 2A 06 00 00 00 00 00 00 5E 0F DB 9C C6 0A DC 42 B1 B4 BD 55 52 72 F5 CE 2A 06 00 00 00 00 00 00 13 06 00 00 00 00 00 00 C3 9C 1B B3 2F 26 5F 49 BB A6 BB C0 60 C4 2B AB 13 06 00 00 00 00 00 00 27 06 00 00 00 00 00 00 50 D0 33 98 4A AE C7 47 8F 0A 53 59 C0 4F EB AB 27 06 00 00 00 00 00 00 21 02 00 00 00 00 00 00 7E E8 F6 6F 84 7A 2D 4D BA E6 58 F0 31 71 13 84 0D 00 00 00 43 48 48 5F 53 6F 6C 64 69 65 72 73 00 16 0C C4 39 3E 29 7F 47 9D EF 6C E1 AE 45 44 10 03 00 00 00 4B 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 DD D6 54 97 9A 1B 42 B2 E9 D7 EF AA 4F 79 87 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 E0 BA 1D E9 4C 52 BC 47 B7 EE DB 43 7F 17 21 AA 09 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AD DD 25 F2 51 B4 BA 4E BA A5 57 A5 A5 39 2D B6 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 63 02 00 00 00 00 00 00 B6 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 63 02 00 00 00 00 00 00 D9 00 00 00 00 00 00 00 00 00 80 3E 00 00 80 3E 00 00 80 3E 00 00 80 3F 63 02 00 00 00 00 00 00 DB 00 00 00 00 00 00 00 9A 99 19 3E 9A 99 19 3E 9A 99 19 3E 00 00 80 3F 63 02 00 00 00 00 00 00 FA 04 00 00 00 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F 00 00 80 41 01 00 00 00 5D 02 00 00 00 00 00 00 F0 01 00 00 00 00 00 00 00 00 80 3F 03 00 00 00 61 02 00 00 00 00 00 00 9D 03 00 00 00 00 00 00 00 00 00 00 61 02 00 00 00 00 00 00 F3 04 00 00 00 00 00 00 01 00 00 00 61 02 00 00 00 00 00 00 64 01 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5a. You can use batch and patch file to skip hex editing. D79_RSC_Patch EU Female Carapace.zip (Dropbox). Unzip to XCom-Enemy-Unknown\XEW\XComGame\CookedPCConsole and run it. Uninstall:1. Remove CharTexturesEU.tfc.2. Restore Soldier_FemaleCarapace_SF.upk and RefShaderCache-PC-D3D-SM3.upk from backup. Edited August 16, 2017 by Drakous79 Link to comment Share on other sites More sharing options...
Dethraker Posted August 16, 2017 Share Posted August 16, 2017 That is incredible, great job! So does this mean that new skins created by users could be inserted via the same method? Link to comment Share on other sites More sharing options...
Drakous79 Posted August 16, 2017 Author Share Posted August 16, 2017 That depends on what do you mean by skins. If you mean new textures (without TexMod), I say yes. There are more ways how to accomplish that. One way is to use UDK to create new *.upk file containing a texture and edit import table of *.upk that should use it. Or create mip map data (smaller mips in *.upk and bigger in *.tfc file) with UDK and patch them directly into *.upk the texture is for. If I recall right, Amineri did something similar, but managed to have only 1 mip (the biggest) stored in *.upk. If you mean new models with textures, that is yet to be tested. I just fixed shader map problem for Enemy Unknown female carapace model made by XCOM developers so it works in Enemy Within. It is different model, often referred to as a "boobplate" by people, than Enemy Within female carapace. Next step is to import brand new model into UDK (lets start with static mesh) and get it with proper texture into XCOM. Link to comment Share on other sites More sharing options...
Recommended Posts