Jump to content

Drakous79

Recommended Posts

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 recompile
  • RefShaderCache-PC-D3D-SM3.upk - material shaders

The game is able to load the 3rd shader cache file:

  • LocalShaderCache-PC-D3D-SM3.upk - material shaders

Other files:

  • PersistentCookerShaderData.bin - for cooking process

 

Known and working locations of shader cache files for EW:

  • Steam\SteamApps\common\XCom-Enemy-Unknown\XEW\XComGame\CookedPCConsole
  • user's Documents\My Games\XCOM - Enemy Within\XComGame\CookedPCConsole

Files in user's documents have precedence.

 

All shader cache files have D3D-SM3 in their filenames. It stands for Direct3D Shader Model.

  • SM3 = DirectX 9
  • SM4 = DirectX 10
  • SM5 = DirectX 11

EU 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/808

Different 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 by Drakous79
Link to comment
Share on other sites

There are 4 possible ways to go:

  1. Mod the game to compile missing material shaders and material shader maps
    • unlikely
    • would be good for everyone
  2. 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
  3. RefShaderCache-PC-D3D-SM3.upk additions
    • researched
    • would be good for everyone
    • hard, because of different NameTables
    • no tools available
  4. 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 compile
  • Changed 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; works
  • Changed 1 byte in BasePassPixelShader.bin - 15628 legacy shaders, 23 outdated skipped; crash on DefaultMaterial compile

But 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 materials
  • EW RefShaderCache - 68841 shaders, 4801 materials
  • Compiling shaders takes time, hence the need for precompilation and shader caches.
Edited by Drakous79
Link to comment
Share on other sites

  • 1 month later...

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

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 by Drakous79
Link to comment
Share on other sites

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

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 UModel

2. Import to Blender, add textures, export to *.fbx

3. Import *.fbx and textures to UDK, create a material, put a model into blank map and apply the material to it

4. Save or cook to *.upk, copy *.upk to CookedPCConsole, edit DefaultMaps.ini and add new map as streaming map to any map

5. 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 by Drakous79
Link to comment
Share on other sites

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

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 by Drakous79
Link to comment
Share on other sites

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...