Jump to content

R&D XCOM Map Alterations


Amineri

Recommended Posts

I did some simple tests, removing the EW tfc also allows loading the EU maps. I suppose that reading in the wrong place crashes.

The EU maps need both textures.tfc and lighting.tfc. the rescue missions need the chartextures.tfc

 

@wghost, do you still have that patch around? removing( or changing the extension) Lighting.tfc and patching the map with the textures should not crash and objects without lighting like the decals,windows,doors and decoration meshes off the map should be visible on the EU maps

 

edit: lol, it's actualy Anna Sing, I got it wrong the whole time

 

Oh, there may be an easier way to test : the rescue misions needs only char texture modifications and the stream is pretty small

Edited by LiQuiD911
Link to comment
Share on other sites

  • Replies 473
  • Created
  • Last Reply

Top Posters In This Topic

Nailed it.. sort of :smile: There are glitches (black areas ) when the Texture quality is set to high... was there even an option in EU for high res textures? the EWI tfc are 3 times bigger than the EU ones. Also some of the textures are not showing for some reason and the roofs do not hide when there's a unit underneeth. There are flank bugs on the maps but they'll wait. The rescue missions work flawlessly.

 

I copied and renamed the EU TFCs (name choice is open for debate)

Lighting.tfc -> LightMapTexture2D.tfc

CharTextures -> TEXTUREGROUP_Character.tfc

Textures.tfc -> Texture2D.tfc

 

Here's the patch, it takes a minute or two to apply. Usable on all EU maps, just copy them in the EWI folder and specify the name in the patch

 

 

 

UPK_FILE=URB_GasStation.upk

REPLACE_CODE=
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<CharTextures>
:
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<TEXTUREGROUP_Character>

REPLACE_CODE=
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<Textures>
:
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<Texture2D>

REPLACE_CODE=
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<Lighting>
:
<TextureFileCacheName>
<NameProperty>
<%u 0x00000008>
<%u 0x00000000>
<LightMapTexture2D>

 

 

http://i.imgur.com/rva5YKn.jpg

http://i.imgur.com/RMidKRh.jpg

 

Thank you all for the expertise and tools!

Edited by LiQuiD911
Link to comment
Share on other sites

@wghost, do you still have that patch around? removing( or changing the extension) Lighting.tfc and patching the map with the textures should not crash and objects without lighting like the decals,windows,doors and decoration meshes off the map should be visible on the EU maps

This was like RENAME=Textures:Yextures and it didn't work, because it also "renamed" all the references, which use Textures in their names, like Texture2D'GEN_MaterialParents.Textures.Default_Normal', for example. So your patch is better. :smile:

 

Any ideas about those bad tiles? There are also materials and meshes there, as far as I know, probably, some parameters there also need to be adjusted?

Edited by wghost81
Link to comment
Share on other sites

Oh heck, awesome. Even if you guys never fix the bad tiles I'm still using these maps, thank you :D

 

Am I able to plug in that Patch and start playing with these right away (acknowledging of course the bad textures, flank bugs, etc) or are there more steps to this magic?

Link to comment
Share on other sites

You're welcome :smile:

 

You need a similar patch for each map, you can use that one as a template and just change the upk name to URB_Museum.upk, URB_Museum_Euro.upk ,URB_Demolition.upk.

 

Also, you need to copy the EU DefaultMap entries for these maps in your EWI defaulmaps.ini. Read bellow.

 

@wghost, I just copy and customize your code examples xD As you said, it's probably a Material problem.

 

I wonder if this patch will work for the EU Female 'boobplate' armor :D

edit:

Well, it has the same problem, I guess I found a smaller test subject.

 

 

http://i.imgur.com/T2KEws1.jpg

 

 

Edited by LiQuiD911
Link to comment
Share on other sites

Found the problem.. I think.

[0055.70] Log: Missing cached shader map for material CHH_Soldiers, compiling.
[0055.70] Log: Can't compile CHH_Soldiers with seekfree loading path on console, will attempt to use default material instead
[0055.70] Warning: Warning, Failed to compile Material Instance CHH_Lv2MedFem_MOD.Materials.MInst_Lv2MedFem with Base CHH_Soldiers for platform PC-D3D-SM3, Default Material will be used in game.

Now what? :|

 

Also, when loading the map from stragegy instead of debug some of the missing materials get loaded like the fog pods or fences.

 

The EU defaultmap entries lack elements which are in EWI, copy pasting the lines does not work

 

Here are the 4 entries for defaultmaps (I haven't set up the locations-like europe etc), the strategy images also work.

 

 

Maps=( MapFamily="URB_Demolition", Name="URB_Demolition", DisplayName="URB_Demolition (Beta/Functionality Complete Demolished Building)", MissionType=eMission_Abduction, bInRotation=True, TimeOfDay=eMissionTime_Night, ShipType=eShip_None, eRegion=eMissionRegion_None, CouncilType=eFCMType_None, NewMap=False, InitialChance=20, InitialGain=1.05, DynamicAliens[0]=eChar_None, DynamicAliens[1]=eChar_None, StreamingMaps[0]=( MapName="CIN_DropshipIntros", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ) )
Maps=( MapFamily="URB_GasStation", Name="URB_GasStation", DisplayName="URB_GasStation (Beta/Functionality Complete Progress Gas Station)", MissionType=eMission_Abduction, bInRotation=True, TimeOfDay=eMissionTime_Night, ShipType=eShip_None, eRegion=eMissionRegion_None, CouncilType=eFCMType_None, NewMap=False, InitialChance=20, InitialGain=1.05, DynamicAliens[0]=eChar_None, DynamicAliens[1]=eChar_None, StreamingMaps[0]=( MapName="CIN_DropshipIntros", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ) )
Maps=( MapFamily="URB_Museum", Name="URB_Museum_Euro", DisplayName="URB_Museum_Euro (Beta/Functionality Complete Urban Museum)", MissionType=eMission_Abduction, bInRotation=True, TimeOfDay=eMissionTime_Night, ShipType=eShip_None, eRegion=eMissionRegion_None, CouncilType=eFCMType_None, NewMap=False, InitialChance=20, InitialGain=1.05, DynamicAliens[0]=eChar_None, DynamicAliens[1]=eChar_None, StreamingMaps[0]=( MapName="CIN_DropshipIntros", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ) )
Maps=( MapFamily="URB_Museum", Name="URB_Museum", DisplayName="URB_Museum (Beta/Functionality Complete Urban Museum)", MissionType=eMission_Abduction, bInRotation=True, TimeOfDay=eMissionTime_Night, ShipType=eShip_None, eRegion=eMissionRegion_None, CouncilType=eFCMType_None, NewMap=False, InitialChance=20, InitialGain=1.05, DynamicAliens[0]=eChar_None, DynamicAliens[1]=eChar_None, StreamingMaps[0]=( MapName="CIN_DropshipIntros", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ) )

 

 

 

the dropship intros do not work. using the patched EU ones works partialy.. the cinematic is shown but it leaves the movie skyranger on the map along with the static one

 

edit:

this map patch mitigates the roof visibility problems:

https://www.dropbox.com/s/arbmevss9smw99d/patch_hideroofs.upk?dl=0

Edited by LiQuiD911
Link to comment
Share on other sites

This post is based off tracktwo discoveries in sound replacement topic. Just some general thoughts I decided to share. :smile:

 

So, it seems like both engine and licensee package numbers affect serialization process. As far as I understand the matter from UDN articles, each time developers change serialization code, they should increase version number, because this affects how packages are saved and loaded. But this seems to be the case for UE developers, not for game developers, using paid UE version.

 

Free UDK has licensee number set to zero. It uses pure engine-version matching serialization code to read/write packages and rejects any packages with non-zero licensee number.

 

Game developers have their own non-zero licensee numbers, which are different for every game. And when they make their own serialization code changes, they do not increase engine version number (which is logical), but tie that new code to their unique licensee number instead. This results in game being able to read both packages with zero licensee number and game specific packages with corresponding licensee number.

 

I think, it's the one of the reasons why we can't open XCOM maps and other packages with UDK: when we try to use those as they are, UDK says licensee number is wrong, and when we hex edit those to set licensee number to zero, UDK crashes, most probably because of the unexpected XCOM specific serialized data.

 

This fact prevents us from modding existing packages, but we can also use it to our advantage, as we did with voice packages: we can use UDK to create common engine-version dependent part and handle XCOM-specific part inside a script (when it is possible).

 

 

Oh my god :smile: This seems to be true for materials as well.

 

Licensee 00 - default material used

[0048.45] Log: Material CrapMat has outdated uniform expressions; regenerating.
[0048.45] Log: Can't compile CrapMat with seekfree loading path on console, will attempt to use default material instead
[0048.45] Warning: Warning, Failed to compile Material D79TestPackage.CrapMat for platform PC-D3D-SM3, Default Material will be used in game.

Licensee 40 - the game crashes

[0071.45] Critical: appError called: Material D79TestPackage.CrapMat: Serial size mismatch: Got 232, Expected 208

 

Googling material compilation errors bringed me this page.. uh.. is it a licence problem?

 

I wonder how things look on linux, since they have different shader caches

Edited by LiQuiD911
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...