Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

Enabling DLC's in SP & MP

Technical research related to the structure of Mass Effect game files.

Enabling DLC's in SP & MP

Postby TankMaster » 22 Jun 2013, 22:35

I've already posted something in the research section, but I figured I would make this small tutorial to explain things in more detail on how to do it. For this tutorial, I am using the April 21 version (101w) of "ME3 Explorer." Reason being, I have had issues with the newer version (May 19 (102s)) causing the game to crash on DLC loading.

First, using the "DLC Editor" in "ME3 Explorer," find and open the DLC you want to enable for SP/MP/both. Then navigate the tree view till you find the file "Mount.dlc" (ie: "BIOGame/DLC/<DLC_Name>/CookedPCConsole/Mount.dlc"). Extract it, and using a hex editor, go to the offset 0x18h. These are the values that you will find at 0x18.

    Byte Flags at 0x18
  • SP DLC's: 0x09
  • MP1: 0x1C
  • MP2: 0x14
  • MP3: 0x14
  • MP4: 0x34
  • MP5: 0x14
  • OnlinePassHidCE: 0x08
  • Patches: 0x0C

What I did was to set the MP DLC's to 0x1C to enable them in SP and MP. Doing it this way does not make a save game require the DLC (as far as I know), where as using 0x09 does. (I have not tested this yet, though, merely an educated guess).

Once you make the change to the "Mount.dlc," go back to "DLC Editor" and replace the "Mount.dlc" with the edited one. You do not need to edit the "PCConsoleTOC.bin" file, as you aren't changing the size of the "Mount.dlc" file.


Update 07/12/2013:

I have found a few more flags in the Mount.dlc that can have an effect on some of the MP powers. I will add a script for the Mount.dlc file once I am done figuring out what names/entries I have to "rename," in the Startup_.pcc's, to fix some of the other graphical issues the MP dlc's cause. Narrowed it down quite a bit thus far, once I get it closer I will also add the script for it as well. I ended up making a script to do it for me, otherwise it would have taken hours more to do manually.
Last edited by TankMaster on 12 Jul 2013, 17:56, edited 4 times in total.

TankMaster has been thanked by:
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby TankMaster » 23 Jun 2013, 03:19

Note: This post is in the process of many alterations to make it easier to understand. Also updating it with corrections as far as weapons, powers and bugs are concerned.

One issue that came up early on was a conflict between the Citadel DLC & MP5: the Spitfire package names clash and so it would load the Citadel DLC's Spitfire but not MP5's. The way I got around this to allow it to load both Spitfires, was to rename the Citadel's SFXWeapon_AssaultRifle_Spitfire.pcc to SFXWeapon_Heavy_Spitfire_Cit001.pcc (to match the name inside the Default.bin and inside the pcc file). Using a Coalesced editor (I personally am using a customized version of Gibbed's), you have to edit the bioengine.ini (in my case, bioengine.json) to reflect these changes:

Under "sfxgame.sfxengine.dynamicloadmapping," change the Spitfire's SeekFreePackageName from "SFXWeapon_AssaultRifle_Spitfire" to whatever you renamed it to, in my case "SFXWeapon_Heavy_Spitfire_Cit001." Of course, update the PCConsoleTOC.bin in the DLC (DLC_EXP_Pack003) to the new Default.bin size.

Next, using a newer version of ME3 Explorer (one that has the TOC.bin Editor (AK86)):

Make a folder in the root of ME3 (the folder that contains Binaries, BIOGame, etc) and call it CookedPCConsole. Copy the renamed Spitfire pcc to this folder. Using the TOC.bin Editor, select a block (I used one that was empty) and add the file, make sure the path says "CookedPCConsole\<New name for Spitfire package>" (IE "CookedPCConsole\SFXWeapon_Heavy_Spitfire_Cit001.pcc" Once saved, using an older version of ME3 Explorer (unless the DLC editor has been fixed) open up the DLC's sfar (if not already open) delete the "SFXWeapon_AssaultRifle_Spitfire.pcc" and add the renamed one. Replace the PCConsoleTOC.bin and Default.bin files and save the sfar.

You should now be able to use the MP5 Spitfire and the leave the Citadel Spitfire functioning. Of course, you can also do these same steps with the MP5 instead of the Citadel DLC. If so, I would recommend renaming it to "SFXWeapon_AssaultRifle_Spitfire_MP.pcc"

Let me know if you have problems with this.

Another thing, the DLC's prefer to be edited in a specific order. I have noticed with some of the SP DLC's having missing art, such as Omega: when in the car with Aria and she's has the tablet with Petrovsky's picture on it, the whole tablet won't appear. A quick way to fix this is to do a simple edit of all the DLC's (can simply extract the PCConsoleTOC.bin file and replace it) or using a program to alter the modified date. Make sure to save the SP DLC's last and in this order DLC_EXP_Pack001, DLC_EXP_Pack002, DLC_EXP_Pack003_Base, DLC_EXP_Pack003 (though EXP_Pack003 and EXP_Pack003_Base seem to be interchangeable).


Tank
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby САЙГА 11 » 30 Jun 2013, 08:20

This method to adding spitfire dont work in mp5, game crashed :(
САЙГА 11
User
 
Posts: 9
Joined: 19 May 2013, 17:28
Has thanked: 0 time
Have thanks: 0 time

Re: Enabling DLC's in SP & MP

Postby САЙГА 11 » 30 Jun 2013, 17:46

New problem, mp4 update overload power effect wis black background. Fix this?
САЙГА 11
User
 
Posts: 9
Joined: 19 May 2013, 17:28
Has thanked: 0 time
Have thanks: 0 time

Re: Enabling DLC's in SP & MP

Postby TankMaster » 02 Jul 2013, 02:15

The only way to fix the graphical bugs is to go through all the MP DLC's you have enabled and remove the "Startup_DLC_CON_MP<NumberOfDLC>" from engine.startuppackages (usually in the value dlcstartuppackage and dlcstartuppackagename) in the bioengine.json file (in my case). MP2-4 have this and it immediately causes issues for SP, 5 has it in the bioengine (in my case, bioengine.json), but it does not actually exist.

After some thinking, the best bet is to rename the Citadel DLC's Spitfire from SFXWeapon_AssaultRifle_Spitfire.pcc to SFXWeapon_Heavy_Spitfire_Cit001.pcc. I did it that way and it worked, also make sure to change that in the bioengine part of Default_SFXGameContentDLC_EXP_Pack003.bin.

I will update this in a bit when I try it, currently not able to. I will also add to this and update the earlier posts, been relatively busy lately and not had much time to update it better.

Update:
Well I at one point in time had the MP4 & 5 weapons working, but something changed (my doing) the past few days that has caused it to crash on weapon selection. I noticed earlier the Prothean weapon from "From Ashes" caused an issue with the MP weapons, so I redid my mod to try and fix it. Well, to put it short, it didn't help and left me seeing red. Hopefully after a few days away from it, I can get a clearer head on this. Will update at that point, if I get it working, in the meantime if anyone else has better luck, feel free to post here.
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby САЙГА 11 » 05 Jul 2013, 08:47

You can upload edited .bin for fix grafic in mp4? I can not get to create one so that the game did not crash :(
САЙГА 11
User
 
Posts: 9
Joined: 19 May 2013, 17:28
Has thanked: 0 time
Have thanks: 0 time

Re: Enabling DLC's in SP & MP

Postby TankMaster » 05 Jul 2013, 12:52

Yeah, I can do that. I'll add it in a few.

Edit:
After doing more testing, removing the Startup packages is what seems to cause the issue with the weapon conflicts (at least with the HEN_PR ParticleRifle). Which causes the game to crash on the opening of the weapon selection screen. I am going to do some looking into the startup packages and see if I can figure out where/why some of the visuals get changed and see if I can bypass that portion of it.

Edit #2:
The startup package contains a bunch of extra files the SP one's do not have, and are completely different byte wise. One way of dealing with this would be to replace all the overwrites in Startup_DLC_MP2, MP3 and MP4, with the original ones (overload's for example has 170 "file" differences alone). I use Gildor's package extractor and did a folder compare (using UltraCompare) and all the files are different. Now if we could delete them from the startup pcc, that might work as well. Other than that, the startup package is required for the rest of the stuff to work right or the game crashes when it tries to access certain objects/packages.

Edit #3:
Ok, I think I may have found a workaround. Currently editing the Startup_DLC_MP2, MP3, MP4 files and changing some of the package names (specifically the BioVFX one's at the moment). I tried it with just overload and it seemed to work, trying it with a few more to see if it works right. I am going to do quite a bit more testing before committing the results; want to see how many I actually have to change. Once I do this, I can upload the 3 pcc files (MP2, MP3, MP4); will also attempt to make a .mod file for this as well.
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby TankMaster » 11 Jul 2013, 03:43

Ok, I think I managed to make a script that will change the name of the packages in the Startup pcc's causing graphic issues. Also seeing if I can figure out why when I use GivePower, some powers work right, but if I reload the save, they have graphic issues. The script is not in a state of pure automation, meaning you still have to edit the PCConsoleTOC.bin and replace it and the Startup pcc in the respective DLC. Doing some more extensive testing to make sure it works right, then I will add it here.


Update:

Going to start putting my new results and findings into the original post as well as update the tutorial to more accurate details; along with add some scripts.
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby TankMaster » 24 Jul 2013, 21:11

I apologize for never updating the information relative to fixing the graphical bugs from unlocking the MP DLC's; I have been running into the issue fix one thing, break 2 more, quite a bit. I though I was going to be able to just rename a few of the package name's in the Startup pcc file, but now I have hit some issues where it works fine for one character class, but not another. IE: Collector sniper rifle works great on engineer with certain package names changed, but on infiltrator it has missing textures/effects on firing.

In the meantime, this is the code I have been using (inside the Script Compiler) to change the names; not the latest version, but this fixes most things. Just paste this into the Script Compiler and select the Startup_.pcc file you want to change and then replace it in the DLC sfar file, you shouldn't have to change the PCConsoleTOC.bin file either, as the pcc's stay the same size.


Code: Select all
using System;
using System.Collections.Generic;
using System.IO;
using ME3Explorer.Unreal;

namespace ME3Explorer.Scripting.Scripts
{
   public class ReplacePccNames : IScript.IScript
   {
      private BasicFunction _basicFunc;
      private List<string> _names;
      private string _newPrefix;
      private string _newSuffix;
      private Dictionary<string, string> _objectNames;
      private PCCObject _pccFile;
      private bool _pccFileExists;
      private string _pccFilePath;

      public string RunScript()
      {
         Init();
         Exec();
         CleanUp();

         return "Finished: " + Path.GetFileName(_pccFilePath);
      }

      public void Init()
      {
         _basicFunc = new BasicFunction();
         _pccFile = null;
         _pccFilePath = String.Empty;
         _pccFileExists = false;

         _newPrefix = "";
         _newSuffix = "Mod";

         _names = new List<string>
         {
            //"biog_animtree_weapon",
            //"BIOG_CBT_DRN_NKD_R",
            //"BIOG_HMM_BC_A",
            //"BIOG_HMM_CB_A",
            //"BIOG_Humanoid_MASTER_MTR_R",
            //"BIOG_PHM_General_F",
            //"BIOG_PHY_Weapons_F",
            //"biog_wpn_a",
            //"BIOG_WPN_ALL_MASTER_L",
            //"biog_wpn_hvy_r",

            "BioVFX_B_Biotics_Charge",
            "BioVFX_B_Warp",

            //"BioVFX_C_Blast_Decals",
            //"BioVFX_C_Blood",
            //"BioVFX_C_CamAnim",
            //"BioVFX_C_Carnage",
            //"BioVFX_C_CryoBlaster",
            //"BioVFX_C_Electricity",
            //"biovfx_c_fire",
            //"BioVFX_C_Grenade_FlashBang",
            //"BioVFX_C_Grenades",
            //"BioVFX_C_Impacts",
            //"BioVFX_C_Modal",
            //"BioVFX_C_Powers",
            //"BioVFX_C_Reload",
            //"BioVFX_C_Shield",
            //"BioVFX_C_Stealth",
            //"BioVFX_C_Weapons",

            "BioVFX_C_Wpn_Arc",
            "BioVFX_C_Wpn_Mtk",
            "BioVFX_C_Wpn_Titan",

            //"BioVFX_Crt_Atlas",
            //"BioVFX_Crt_CBS_Trooper",
            //"BioVFX_Crt_FlameThrower",
            //"BioVFX_Crt_Gunship",
            //"BioVFX_Crt_Husk",
            //"BioVFX_Crt_MCH_LGT",
            //"BioVFX_Crt_Rockets",

            //"biovfx_env_camerashakes",
            //"BioVFX_Env_Fire",
            //"BioVFX_Env_Hologram",
            //"BioVFX_Env_VolumeLights",

            "BioVFX_Hch_Edi",

            "BioVFX_T_Sentinel",
            "BioVFX_T_TechBall",
            "BioVFX_T_TechPowers",

            //"BioVFX_Z_FLARES",
            //"BioVFX_Z_GLOBAL",
            //"BioVFX_Z_MATERIALS",
            //"BioVFX_Z_MATERIALS2",
            //"BioVFX_Z_MESHES",
            //"BioVFX_Z_TEXTURES",

            "EffectsMaterials",

            //"GUI_SF_DLC_MP4_CollectorHUD",
            //"GUI_SF_GalaxyAtWar",
            //"GUI_SF_Leaderboard",
            //"GUI_SF_MP_HUD",
            //"GUI_SF_MPAppearance",
            //"GUI_SF_MPEndOfMatch",
            //"GUI_SF_MPLobbyStatusBars",
            //"GUI_SF_MPMatchConsumables",
            //"GUI_SF_MPMatchResults",
            //"GUI_SF_MPNewLobby",
            //"GUI_SF_MPPauseMenu",
            //"GUI_SF_MPPromotion",
            //"GUI_SF_MPReinforcementsReveal",
            //"GUI_SF_MPScoretags",
            //"GUI_SF_MPSelectKit",
            //"GUI_SF_MPStore",
            //"GUI_SF_WarAssets",
            //"GUI_SF_WpnReticleHeavy",

            "SFXGameContent",
            //"SFXGameContentDLC_CON_MP2_Retrieve",
            //"SFXGameContentDLC_CON_MP3_MobileAnnex",
            //"SFXGameContentDLC_CON_MP4_Horde",
            //"SFXGameMPContent",
            //"SFXGameMPContentDLC_Shared_MP",

            //"Wwise_Creature_Spider",
            //"Wwise_Generic_Bullet_Impacts",
            //"Wwise_Generic_Explosions",
            //"Wwise_GUI_MultiPlayer_Specific",
            //"Wwise_Power_Shared",
            //"Wwise_Power_Soldier_Ammo",
            //"Wwise_Power_Soldier_Fortif",
            //"Wwise_Power_Tech_Decoy",
            //"Wwise_Power_Tech_Drone",
            //"Wwise_Power_Tech_Incinerate",
            //"Wwise_Power_Tech_Overload",
            //"Wwise_Power_Tech_SenTurret",
            //"Wwise_Power_Tech_TechArmor",
            //"Wwise_VFX_DLC_Flashbang",
            //"Wwise_VFX_Rockets",
            //"Wwise_VFX_Shield",
            //"Wwise_VFX_Tech",
            //"Wwise_Weapon_Flamethrower",
            //"Wwise_Weapons_Heavy_Mech",
            //"Wwise_Weapons_NP_Incisor",
            //"Wwise_Weapons_NP_Titan",
            //"Wwise_Weapons_P_Titan",
            //"Wwise_Weapons_S_GrenLauncher",
            //"Wwise_Weapons_S_Titan",
            //"Wwise_Weapons_Standard_LowAmmo"
         };

         _objectNames = new Dictionary<string, string>();

         foreach (var name in _names)
         {
            _objectNames.Add(name, _newPrefix + name + _newSuffix);
         }
      }

      public void Exec()
      {
         _pccFilePath = _basicFunc.OpenFile(filter: "pcc|*.pcc");
         _pccFileExists = File.Exists(_pccFilePath);

         if (_pccFileExists)
         {
            if (File.Exists(_pccFilePath + ".bak"))
            {
               if (_basicFunc.AskYN("Restore backup before applying changes?", "Restore Backup?"))
               {
                  File.Copy(_pccFilePath + ".bak", _pccFilePath, true);
               }
            }

            _pccFile = new PCCObject(_pccFilePath);

            if (_pccFile == null)
            {
               return;
            }

            foreach (var name in _objectNames)
            {
               var index = _pccFile.Names.FindIndex(s => s.Equals(name.Key, StringComparison.InvariantCultureIgnoreCase));

               if (index >= 0)
               {
                  _pccFile.Names[index] = name.Value;
               }
            }

            if (_basicFunc.AskYN("Create backup of PCC?", "Backup?"))
            {
               File.Copy(_pccFilePath, _pccFilePath + ".bak", true);
            }

            _pccFile.saveToFile();
         }
      }

      public void Revert()
      {
         if (_pccFile == null)
         {
            return;
         }

         foreach (var name in _objectNames)
         {
            var index = _pccFile.Names.FindIndex(s => s.Equals(name.Value, StringComparison.InvariantCultureIgnoreCase));

            if (index >= 0)
            {
               _pccFile.Names[index] = name.Key;
            }
         }

         if (_basicFunc.AskYN("Create backup of PCC?", "Backup?"))
         {
            File.Copy(_pccFilePath, _pccFilePath + ".bak", true);
         }

         _pccFile.saveToFile();
      }

      public void CleanUp()
      {
         _basicFunc = null;
         _pccFile = null;
         _names.Clear();
         _objectNames.Clear();
      }
   }
}
Last edited by TankMaster on 04 Sep 2013, 19:45, edited 1 time in total.
TankMaster
User
 
Posts: 173
Joined: 02 Nov 2012, 01:19
Location: Indiana
Has thanked: 6 time
Have thanks: 64 time

Re: Enabling DLC's in SP & MP

Postby FemShep » 26 Jul 2013, 00:30

Have you found a way to disable the 'TestPatch' (the .sfar under the Patches folder)?

If there a way to edit that/disable it, we can have drivable atlases, hackable allies... that files killed off what I wanted to do before I quit ME3.
Image
ME3Tweaks has modding guides, tools, forums for mods, a modding wiki, and ModMaker, an online mod creation tool.
ME3 Mod Manager, the civilized way of installing and managing ME3 mods.
ME3Tweaks Facebook Page
User avatar
FemShep
Modder
 
Posts: 1101
Joined: 18 Oct 2012, 20:48
Has thanked: 42 time
Have thanks: 76 time

Next

Return to Technical Research

Who is online

Users browsing this forum: No registered users and 0 guests

cron
suspicion-preferred