Jump to content

Photo

Finding the first step?


  • Please log in to reply
229 replies to this topic

#11
sage2

sage2

    Regular

  • Members
  • PipPip
  • 63 posts
Stuff I just tried to no avail: I moved files from xcomgame\config to the xcomgame\config dir in 'my documents', then tried all permutations of the cooked boolean in the engine ini. The way I was testing this by modifying pistol damage in defaultgamecore.

I looked through the files generated by decompressing and extracting xcomgame.upk and xcomstrategygame.upk, but none were text files that mirrored the INIs (at least that I could find).

#12
Beknatok

Beknatok

    Regular

  • Members
  • PipPip
  • 79 posts
Okay, here's what I know so far. When the game loads, it first reads files from \Engine\Config\. Then it goes to \XComGame\Config\ and references files from there. At some point, it also cross-references the files found in \My Documents\, which seem to be "personalized" copies of some (but not all) of the \XComGame\Config\ files.

Here's some interesting details. All of the files in \XComGame\Config\ "inherit" from \Engine\Config\. But note that in an earlier post, KristmasKthulhu listed out the files in \XComGame\Config\ vs \My Documents\. There's a few that are missing in the latter... XComGameCore & XComLoadouts.

Another interesting detail... somewhere else in the XCom folder under \My Documents\, there is a Launch.Log file. I don't have one in front of me, but late last night, in a fatigued stupor, I noted a couple of entries where the game actually tries to connect to an IP address... and seemingly pulls down a couple of files. I *THINK* XComGameCore.ini is one of those files?

So if anyone is so willing to test a couple of things (as I'm at work for the next 8 hours)... here's a couple of hypothesis of mine.

1. Make copies of DefaultGameCore.ini and/or DefaultLoadouts.ini, and make some kind of obvious change that you can validate quickly in a game, and copy/rename them into your \My Documents\ folder. I'm curious to see if the game will allow those .ini files to override whatever it is actually using. I doubt this will work, but...

2. My second theory has to do with blocking that IP address, so the game cannot access & pull down GameCore.ini. Easiest way to do that should be to edit your Hosts file to redirect to 127.0.0.1. Here's a quick how-to, if you're willing to try that.

http://www.online-te...d-applications/

I'm curious to find out if #1 works alone... OR if #1 works in conjunction with #2.

Anyone willing to give the above a try?

#13
Langy

Langy

    Regular

  • Members
  • PipPip
  • 63 posts
Alternatively, you could just disable your internet and see what happens. No real need to mess with the host file itself.

I'll let ya know how it goes.

EDIT: Here are the relevant lines from the log:

[0027.91] DevHTTP: FHttpDownload resolve complete to: 65.118.245.165:80
[0027.91] DevHTTP: FHttpDownload resolve complete to: 65.118.245.165:80
[0027.91] DevHTTP: FHttpDownload resolve complete to: 65.118.245.165:80
[0027.92] DevHTTP: FHttpDownload request (/News.ashx?TitleID=99650&Localization=INT&PlatformID=64&bIsUnicode=0) started
[0027.93] DevHTTP: FHttpDownload request (/Dict.ashx?key=XCOMGAMECORE_PC_INT_00000.INI) started
[0027.93] DevHTTP: FHttpDownload request (/Dict.ashx?key=XCOMDLC_PC_INT_00000.INI) started
[0027.93] DevHTTP: FHttpDownload request (/Dict.ashx?key=XCOMGAME_PC_INT_00000.INT) started
[0028.15] DevHTTP: FHttpDownload::StateParsingHeader: Got unknown status code 503 URL: http://prod.xcom.fir...om:80/News.ashx
[0028.19] DevHTTP: FHttpDownload::StateParsingHeader: Got unknown status code 503 URL: http://prod.xcom.fir...om:80/Dict.ashx

Edited by Langy, 10 October 2012 - 01:45 PM.


#14
sage2

sage2

    Regular

  • Members
  • PipPip
  • 63 posts
Ugh. Bad news: many of the values are encapsulated in the main .exe file, XComGame.exe. I found the Pistol in there, modified the damage to 9, and checked in game. Sure enough, it was reflected in game. Ouch. It looks like the entirety of DefaultGameCore.ini is in the exe. Even if we can edit the value, we won't be able to distribute the final product. Lame.

#15
atoric

atoric

    Stranger

  • Members
  • Pip
  • 6 posts
Here is a way how to mod this game.

Full copy of file "DefaultGameCore.ini" is stored inside executable file ...Binaries\Win32\XComGame.exe and game uses it instead of one in folder ...\XComGame\Config\
You need to use resource editor over XComGame.exe in order to modify DefaultGameCore. You need to look inside RCData section for resource 1020, which uses language 1033.

As for test I modified this line:

BalanceMods_Normal=(eType=eChar_Soldier,			iDamage=0, iCritHit=0,iAim=0,iDefense=0,iHP=5, iMobility=0,iWill=0)

Now I have 11 HP for all my soldiers. So such modding approach works, though it is not easy.

I use freeware Resource Hacker for editing resources. First you need to save 1020 resource in plain txt file. Then modify it. Then replace using such parameters:

Type: RCData
Name: 1020
Language: 1033
And finally save file.

I hope it will satisfy your needs for a start.

#16
Langy

Langy

    Regular

  • Members
  • PipPip
  • 63 posts
And I can confirm that disabling the internet doesn't help one bit; no files are downloaded, but that doesn't seem to change anything.

And agreed. That is totally and completely lame. Why would they do that? It's like they don't want people to mod it, but I fail to understand why.

Whatever. Just means we'll need someone to make a 'patcher' program that can automatically replace the resources in the EXE with the modded stuff.

Edited by Langy, 10 October 2012 - 01:54 PM.


#17
Beknatok

Beknatok

    Regular

  • Members
  • PipPip
  • 79 posts

And agreed. That is totally and completely lame. Why would they do that? It's like they don't want people to mod it, but I fail to understand why.


I'm certain that the reason why is to prevent multiplayer cheating. I'm wiling to speculate that MP is P2P based, as opposed to having a central server setting game parameters. As such, someone could cheat in an MP game by making these various changes. Mass Effect 3 was prone to this.


Here is a way how to mod this game.

Full copy of file "DefaultGameCore.ini" is stored inside executable file ...Binaries\Win32\XComGame.exe and game uses it instead of one in folder ...\XComGame\Config\
You need to use resource editor over XComGame.exe in order to modify DefaultGameCore. You need to look inside RCData section for resource 1020, which uses language 1033.

As for test I modified this line:

BalanceMods_Normal=(eType=eChar_Soldier,			iDamage=0, iCritHit=0,iAim=0,iDefense=0,iHP=5, iMobility=0,iWill=0)

Now I have 11 HP for all my soldiers. So such modding approach works, though it is not easy.

I use freeware Resource Hacker for editing resources. First you need to save 1020 resource in plain txt file. Then modify it. Then replace using such parameters:

Type: RCData
Name: 1020
Language: 1033
And finally save file.

I hope it will satisfy your needs for a start.


Fantastic, thank you! I will start looking into how to make use of Resource Hacker tonight (never tried it before). If you can share any other beginner hints or tutorial URLs that I can read while at work, I'd be grateful.

#18
atoric

atoric

    Stranger

  • Members
  • Pip
  • 6 posts

Whatever. Just means we'll need someone to make a 'patcher' program that can automatically replace the resources in the EXE with the modded stuff.

It is easy to replace resource programmaticaly, so such patcher is easy job.

Fantastic, thank you! I will start looking into how to make use of Resource Hacker tonight (never tried it before). If you can share any other beginner hints or tutorial URLs that I can read while at work, I'd be grateful.


You are welcome. Well, you can just follow these steps:
1. Mod DefaultGameCore.ini (it is the same inside exe) to whatever you like.
2. Open XComGame.exe inside Resource Hacker.
3. Find RCdata/1020/1033 in left section.
4. Right click 1033 and select "Replace Resource". You will see a new window.
5. Click button "Open file with new resource...", which you will see on new window.
6. Find file, which you modded before and select it.
7. Now fill three text boxes with such values:
Resource type: RCDATA
Resource name: 1020
Resource language: 1033
8. Click "Replace" button. You should see modded content to the right. If not, then something went wrong.
9. Save file using File -> Save and now game is modded.

Edited by atoric, 10 October 2012 - 02:16 PM.


#19
sage2

sage2

    Regular

  • Members
  • PipPip
  • 63 posts
Here's what probably happened. 2k told firaxis they had to have net play, so they cobbled it in, but without the time to actually implement a decent anti cheat system. This is a good as they could come up with. Which is a crappy system, and is going to make it hard to do real modding.

#20
Beknatok

Beknatok

    Regular

  • Members
  • PipPip
  • 79 posts
http://udn.epicgames...eArguments.html

So here's something interesting. Scroll down to the "INI/Config Files" section. We may be able override the ini file settings that were cooked into the .EXE with a command line argument.

Anyone have some spare time to experiement with using command line arguments to override DefaultGameCore.ini?

Wish I were at home...




Page loaded in: 0.684 seconds