wghost81 Posted August 5, 2014 Share Posted August 5, 2014 While trying to run LW on Linux, we found a problem in one of the scripts, which Amineri already fixed for the upcoming update. Some time ago we thought that "borrowing" local variables from other objects is fine (and it was fine under Windows), but then we discovered it could lead to some strange random bugs. With Linux version using "borrowed" variables resulted in 100% crash, most probably due to memory management problems. Your weird glitches may be somehow related to this problem. Link to comment Share on other sites More sharing options...
Anderkent Posted August 5, 2014 Share Posted August 5, 2014 Plausible for the crashes (the game sometimes crashes with a double free). Not sure about the weird graphical glitch, though i suppose if one of these 'borrowed' variables is ui-related and keeps some ui object alive longer than it should it could manifest in this way? How did you figure that one out, wghost? I might be able to try a similar process on a mac. Link to comment Share on other sites More sharing options...
wghost81 Posted August 5, 2014 Share Posted August 5, 2014 It was a part of complex change, introducing larger alien pods. I'm using UPKModder to test LW code (LW authors use this tool for the development), it should work on Mac too, as it is coded in java. I'll ask Amineri if I can post old/new UPKModder modfiles containing bugfixes. Have you checked if Mac ini files are different from Windows version? Linux files are, so direct replacing of those files with the ones from LW distro can cause problems. And to be perfectly sure the game is using LW files, you need to manually clean user config files before running LW. For Linux version they are located in ~/.local/share/feral-interactive/XCOM/XEW/WritableFilesAnother observation is that Feral put Linux specific files into feraloverrides folder to keep main game resources in sync with Windows version. For Linux version those files are located in ~/.local/share/Steam/SteamApps/common/XCom-Enemy-Unknown/xew/binaries/share/feraloverrides Link to comment Share on other sites More sharing options...
Anderkent Posted August 5, 2014 Share Posted August 5, 2014 (edited) All very good points! Alas, I'm too busy today to look into it. We found an overrides directory, it's in ./XCOM Enemy Unknown.app/Contents/Resources/MacOverrides but only contains localisation files (XComGame.*, XComUIShell.*) The configs seem mostly in line; I don't have a windows config set on hand to compare, but diffing with my backup files there are only a couple suspicious changes: diff Config/DefaultEngine.ini Config.backup/DefaultEngine.ini [I] diff --git 1/Config/DefaultEngine.ini 2/Config.backup/DefaultEngine.ini index 8bd4836..8b022ed 100755 --- 1/Config/DefaultEngine.ini +++ 2/Config.backup/DefaultEngine.ini @@ -1404,7 +1404,8 @@ TEXTUREGROUP_WorldSpecular=(MinLODSize=256,MaxLODSize=1024,LODBias=0,MinMagFilte [Windows.StandardUser] MyDocumentsSubDirName=XCOM - Enemy Within -+DirsToCreateAtStartup=Saves +;FERAL OLL 02-Apr-2014 don't create this unused Saves folder fbug://11850 +;do not add the creates dirs on startup key commented out (it will still get read). [FullScreenMovie] +SkippableMovies=XEW_Logo_2KFiraxis @@ -1566,10 +1567,15 @@ MyDocumentsSubDirName=XCOM - Enemy Within +SkippableMovies=XEW_TP_BaseAssault-Lose ; PC Startup movies -;+StartupMovies=XEW_Logo_2KFiraxis -;+StartupMovies=XEW_UE3TechLogo -;+StartupMovies=XEW_Legal_PCConsole +;#if FERAL_PORT // OLL 26-Sept-2013 - Play Feral movie. ++StartupMovies=feral +;#endif FERAL_PORT ++StartupMovies=XEW_Logo_2KFiraxis ++StartupMovies=XEW_UE3TechLogo ++StartupMovies=XEW_Legal_PCConsole +;#if FERAL_PORT // OLL 26-Sept-2013 - This movie is missing from our data. ;+StartupMovies=Black +;#endif ; Loading screen configuration !LoadMapMovies=ClearArray (this seems like a really minor change of not creating an unused directory though :tongue:) I believe the merged ini files show up in: ~/Library/Application Support/Feral Interactive/XCOM Enemy Unknown/MacInit/ I guess if someone's really bored they can remove all `Suppress=` lines from XComEngine.ini and read through logs to try and find something... Good luck :tongue: Edited August 5, 2014 by Anderkent Link to comment Share on other sites More sharing options...
wghost81 Posted August 5, 2014 Share Posted August 5, 2014 You'll most probably have to copy XComGame.int and XComUIShell.int files to overrides directory for corresponding LW localization changes to work. Yes, Linux ini file differences are minor too, but it never hurts to check those kinds of things. :smile: Link to comment Share on other sites More sharing options...
Argusnox Posted August 5, 2014 Share Posted August 5, 2014 Ok, Now i feel really useless. I got plenty of freetime today, so if someone can tell me how to help, I'll do it Link to comment Share on other sites More sharing options...
thither Posted August 6, 2014 Author Share Posted August 6, 2014 At some point I'll need beta testers for my install script, but it's still not finished enough to use for anything real. As a point of interest, I tried putting the entire game directory into git. It took about 40 minutes and my .git directory is currently about 21GB, so I don't think it will be useful for the install script itself, but it might be worth doing for those with the technical knowhow (and desire to mess around with mods). Link to comment Share on other sites More sharing options...
Amineri Posted August 6, 2014 Share Posted August 6, 2014 Has anyone tried just unlocking the config files (assuming it's necessary for the Mac version) but not installing any Long War package/config/localization files? I seem to recall someone a while back reporting graphical glitches from just the executable edit. The executable is, apparently, actually the Unreal Engine itself. Licensees get access to the Unreal Engine source code, which is what allows them to compile in native functions (Epic's Unreal Engine 3 documentation indicates that native code runs about 20x faster than unrealscript). I'd assume that the GFX player is also present in the executable. The GFX player is what handles all of the Flash/actionscript UI elements, which appears to be what is acting glitchy. We have made some mods to the UI elements (X Marks the Spot is our expert in that area), but some of the modded elements appear fine (weapon panel graphics), while elements that we haven't modded (ability container) sometimes have glitches, which leads me to suspect some problem with the GFX player itself. Link to comment Share on other sites More sharing options...
thither Posted August 6, 2014 Author Share Posted August 6, 2014 Having the directory under git seems to be helpful. I deleted my local files, commented out my phone-home hosts entries and reinstalled. So far what I've discovered: The only changes after the initial post-installation run are some additional files in the app bundle. On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: XCOM Enemy Unknown.app/Contents/Frameworks/QuincyKit.framework/Headers new file: XCOM Enemy Unknown.app/Contents/Frameworks/QuincyKit.framework/QuincyKit new file: XCOM Enemy Unknown.app/Contents/Frameworks/QuincyKit.framework/Resources new file: XCOM Enemy Unknown.app/Contents/Frameworks/QuincyKit.framework/Versions/Current Seems like QuincyKit is some kind of a crash tracker. As far as difference between the Windows and Mac versions of the config files go, they seem fairly minor. Here's the diff: https://gist.github.com/timgilbert/dd9fe3be6ee55ffdf9cb On my Windows partition I did the same routine: reinstalled XCom and ran it one time. Link to comment Share on other sites More sharing options...
thither Posted August 6, 2014 Author Share Posted August 6, 2014 (edited) Has anyone tried just unlocking the config files (assuming it's necessary for the Mac version) but not installing any Long War package/config/localization files? I seem to recall someone a while back reporting graphical glitches from just the executable edit. Good instincts! I just tried only patching the executable in my vanilla install. A short way through the first combat mission I got the glitch. So it doesn't seem to be directly related to the Long War changes. Is it possible that the files which are embedded in the executable are more recent than the ones on disk? Is there a good way of seeing what's in them, short of learning all kinds of stuff I don't want to know about OS/X ABIs and file formats? Edited August 6, 2014 by thither Link to comment Share on other sites More sharing options...
Recommended Posts