Jump to content

Enemy Within Discovery Thread


Krazyguy75

Recommended Posts

 

Mine are 3,736 kb and 1448 kb respectively.

 

 

Those are the correct file sizes.

 

If you decompress them, they become 12,048kb and 4,786kb, respectively, and EW doesn't do hash checks on them anymore, which is good news if you're going to mod them.

Link to comment
Share on other sites

  • Replies 248
  • Created
  • Last Reply

Top Posters In This Topic

I hate to have this stray from EW, but this used to work for me in EU, so I'm not sure what the problem is. I've decompressed the UPK files, they still read as normal UPK files though, just bigger. I made some changes just fine, seems to be good, but when installed in place of the UPK files in EW, the game crashes. Does it have to do with the 1kb files called xcomgame.upk and xcomstrategygame.upk? When I open those up they each have a number where the xcomgame one is bigger. I think they might be telling the game how big the files should be and now that I've made them bigger it's confused. That's just a guess. If I'm right, I'm not sure where to find the new number to change that to. So any help would be appreciated and if I'm straying more into general mod help at this point then EW discovery of different things, then please point me in the direction of a place I can get help, I don't want to be a bother.

 

EDIT: I removed the 1kb files from the EW file and the game started working. So now I have unpacked the EW files and can directly modify them and use them from there without further work. It just strikes me how much of programming seems to be witchcraft. Thanks guys for the help you provided earlier.

Edited by Satoron
Link to comment
Share on other sites

Satoron do you mean XComGame.upk.uncompressed_size or XComStrategyGame.upk.uncompressed_size?

 

Those should be renamed or deleted, but only those of files you modded.

 

So if I'd mod XComGame.upk, the file to rename/delete is XComGame.upk.uncompressed_size

Edited by Drakous79
Link to comment
Share on other sites

Hi Drakous! I'm a fan of your work =)

 

After I posted I began trying weird things in the name of science just in case something worked and by removing those uncompressed_size files from my xcom directory the game recognized my modded UPK files. After looking into it I realized that the number in the uncompressed_size file corresponded with the number of bytes in the modded UPK file, so I bet it has something to do with telling the game how big the compressed UPK file really is or something. Like I said, it's all witchcraft to me. Thank you for your advice! -Satoron

Link to comment
Share on other sites

That's a good question. I'm assuming the research requirements are placed in the same relative place that any other research requirement is for any other item, like foundry upgrades or the build/buy item store. EDIT: Derp, foundry projects are in the DGC, but gene mods aren't.

Gonna look into the meld/credit cost now. EDIT: m_iMeldAwardedPerContainer in DefaultGameData.ini modifies how much you get from each container you pick up, though this doesn't modify the 40 you unlock for researching Meld in the first place. Still checking.

EDIT: Aha! Found it! XGTechTree.BuildGeneTechs in XComStrategyGame.upk corresponds to the actual objects for each gene mod. If we look at the BuildGeneModTech() function, then we learn that the function call lists all the requirements for each mod. In particular, the ones you're looking for are the second, fourth, and fifth numbers. The second is the tech requirement, the fourth is the Meld cost, and the fifth is the credit cost. (For reference, the first number corresponds to the gene mod that you're modifying, the third corresponds to the time it takes to implant the mod, and the sixth corresponds to the perk number that you're applying. In theory, you could change option six to any other perk number to replace the effects of the mod with those of another perk.)

XGTechTree.BuildGeneTechs

function BuildGeneTechs()
{
    BuildGeneModTech(1, 50, 72, 15, 75, 4);
    BuildGeneModTech(2, 47, 72, 10, 25, 20);
    BuildGeneModTech(3, 51, 72, 20, 35, 28);
    BuildGeneModTech(4, 6, 72, 10, 35, 29);
    BuildGeneModTech(5, 13, 72, 5, 15, 30);
    BuildGeneModTech(6, 13, 72, 5, 15, 38);
    BuildGeneModTech(7, 48, 72, 15, 35, 42);
    BuildGeneModTech(8, 58, 72, 35, 75, 95);
    BuildGeneModTech(9, 46, 72, 25, 60, 50);
    BuildGeneModTech(10, 13, 72, 15, 30, 45);
    //return;    
}

BuildGeneModTech()

function BuildGeneModTech(XComGame.XGGameData.EGeneModTech GeneTech, XComGame.XGGameData.ETechType TechReq, int hours, int MeldCost, int CashCost, XComGame.XGTacticalGameCoreNativeBase.EPerkType Perk)
{
    local TGeneModTech kTech;

    kTech.strName = class'XGLocalizedData'.default.GeneModTechNames[GeneTech];
    kTech.eGeneTech = GeneTech;
    kTech.eTechReq = TechReq;
    kTech.iHours = hours;
    kTech.iMeld = MeldCost;
    kTech.iCash = CashCost;
    kTech.ePerk = Perk;
    m_arrGeneModTechs[GeneTech] = kTech;
    //return;    
}

Now I'm going to go spend a few minutes figuring out which gene mod corresponds to which function call and put together a few hex edits for you to change their costs.

Gene mods:

1- Secondary Heart
2- Adrenal Neurosympathy
3- Neural Damping
4- Neural Feedback
5- Reactive Pupils
6- Depth Perception
7- Bioelectric Skin
8- Mimetic Skin
9- MuscleDensity
10- BoneMarrow

They're out of order both in relation to their position in the UI sprite and the perk table in XComGame.upk's XComPerkManager.BuildPerkTables for some reason... Also, I couldn't remember the full in-game name for 9 or 10, so I just went with its name in BuildPerkTables. They're pretty obvious, though.

Hex editing time! :cool: Just replace the indicated hexadecimal values with ones corresponding to what you want to pay/research in order to get them, remembering from above that the first noted position is the tech requirement, the second noted position is the Meld cost, and the third noted position is the credit cost. Note that 0D (13 in decimal) corresponds to the Meld Recombination tech that unlocks the gene mods in the first place, so if you're looking to remove the research requirements for a mod, then putting 0D in as its tech requirement is functionally the same thing.

Secondary Heart
1B 1B 05 00 00 00 00 00 00 24 01 24 32 2C 48 2C 0F 2C 4B 24 04 16
                                    ^^          ^^    ^^
Adrenal Neurosympathy
1B 1B 05 00 00 00 00 00 00 24 02 24 2F 2C 48 2C 0A 2C 19 24 14 16
                                    ^^          ^^    ^^
Neural Damping
1B 1B 05 00 00 00 00 00 00 24 03 24 33 2C 48 2C 14 2C 23 24 1C 16
                                    ^^          ^^    ^^
Neural Feedback
1B 1B 05 00 00 00 00 00 00 24 04 24 06 2C 48 2C 0A 2C 23 24 1D 16
                                    ^^          ^^    ^^
Reactive Pupils
1B 1B 05 00 00 00 00 00 00 24 05 24 0D 2C 48 2C 05 2C 0F 24 1E 16
                                    ^^          ^^    ^^
Depth Perception
1B 1B 05 00 00 00 00 00 00 24 06 24 0D 2C 48 2C 05 2C 0F 24 26 16
                                    ^^          ^^    ^^
Bioelectric Skin
1B 1B 05 00 00 00 00 00 00 24 07 24 30 2C 48 2C 0F 2C 23 24 2A 16
                                    ^^          ^^    ^^
Mimetic Skin
1B 1B 05 00 00 00 00 00 00 24 08 24 3A 2C 48 2C 23 2C 4B 24 5F 16
                                    ^^          ^^    ^^
MuscleDensity
1B 1B 05 00 00 00 00 00 00 24 09 24 2E 2C 48 2C 19 2C 3C 24 32 16
                                    ^^          ^^    ^^
BoneMarrow
1B 1B 05 00 00 00 00 00 00 24 0A 24 0D 2C 48 2C 0F 2C 1E 24 2D 16
                                    ^^          ^^    ^^

(If this is too super long, I can come back and put some things in spoiler tags to shorten it. I'm not sure about post length conventions on the Nexus forums.)

Edited by fardriel
Link to comment
Share on other sites

Just discovered: EW tries to re-download XComGameCore.ini on launch. Here's part of my log:

[0020.35] DevHTTP: Performing DNS lookup for prod.xcom-ew.firaxis.com
[0020.35] DevHTTP: FHttpDownload resolve complete to: 65.118.245.139:80
[0020.35] DevHTTP: FHttpDownload resolve complete to: 65.118.245.139:80
[0020.54] DevHTTP: FHttpDownload request (/ew/PlayerInfo.ashx) started
[0020.54] DevHTTP: FHttpDownload request (/ew/Dict.ashx?keyz=XComGameCore.ini) started
[0020.57] DevHTTP: HTTP POST payload sent, waiting for response
[0020.72] DevHTTP: FHttpDownload::StateReceivingHeader: Socket error (SE_ECONNRESET)
[0020.77] DevHTTP: FHttpDownload request (/ew/Dict.ashx?keyz=XComGameCore.ini) completed
[0020.81] Log: Updating config/loc from XComGameCore.ini took 0.028635 seconds
[0020.81] DevOnline: TitleFile XComGameCore.ini Download Succeeded!
Finally got EW, but it's unplayable for me. :sad: Constant crashes/freezes on loading saved games. Disabled everything, verified cash... nothing seems to help. I'm posting bugreport on 2K forums.

 

PS Side note: while trying to resolve CTD issues, I've performed the same actions over and over again and noticed that outcomes of my actions weren't always the same. I'm not using Save Scum option, but even if all my actions all the same, I, for example, may or may not hit an alien after loading the save. May be it has something to do with saves corruption, I'm not sure yet.

Edited by wghost81
Link to comment
Share on other sites

Hate to ask an unrelated question, but what program do you use to view those? I'm trying to poke around myself and experiment but while I can extrat the upk the rest is kinda not workin' so hot.

 

Talking about files like "XGTechTree.BuildGeneTechs"

Edited by PsyckoSama
Link to comment
Share on other sites

fardriel, thanks, I know how to prevent phoning home. Wrote this for those who having troubles with changing ini-files. I'm not trying to mod the game now, I'm trying to make it work, because it doesn't work properly for me. And this is really frustrating. Anyway, EW uses different update server, you can see it in the log:

prod.xcom-ew.firaxis.com
65.118.245.139
Edited by wghost81
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...