Aller au contenu

Photo

Adding DLC

- - - - -

  • Veuillez vous connecter pour répondre
21 réponses à ce sujet

#1
JohnP

JohnP
  • Members
  • 142 messages

Edit: Fixed screen shots. The resolution was too low before.

 

I'll put this here and leave the other thread to keep talking specifically about texture/content mod compatibility.

 

I wanted to throw this up here to discuss before I make a thread on the ME3Explorer forums. The devs here might have some things that would improve upon it.

 

First, some screenshots.

 

Here you can see my DLC in the DLC folder:

 

6h70qu.jpg

 

 

One folder in. Note the PCConsoleTOC.bin. Contrary to my post over on ME3Exp, this actually CAN be removed from the sfar:

33399co.jpg

 

 

And the CookedPCConsole folder. Also note here the Mount.dlc. Again, contrary to what I thought before, it also can be removed from the sfar:

2envkoj.jpg

 

 

Wait, so what's left in the sfar if TOC.bin and Mount.dlc are removed??? Absolutely nothing. The sfar here contains no files and is just the sfar header. The game looks for a valid Default.sfar when checking DLC and will reject the DLC as corrupt if it's not present.

 

 

The other things that need to be present to pass the corrupt DLC check:

 

There must be a valid PCConsoleTOC.bin

 

There must be a valid Mount.dlc (more on this file later)

 

There must be a valid Coalesced. This is the Default_<DLC name>.bin file. More on this later.

 

Those four items are all that need to be present to pass the corruption check. However, the game must also see a tlk file for the language your game is configured for. Otherwise, you will get a message that the DLC does not run in that language and that you must download the correct version.

 

More in the next message.



#2
giftfish

giftfish
  • Members
  • 1 529 messages

Looking forward to reading more!

 

Still have all sorts of questions brewing in my head, especially about TLK and coalesced edits. However, one thing I'm really wondering about is this: what happens if two DLC mods would edit the same files? For example, say two mods both edit the BioD_Nor.pcc or whatnot. Which gets priority? Or does that result in a game crashing conflict (I'd presume)?

 

Seems akin to when installing DAO override mods through the DAO mod manager and you have two that contain the same file. It won't let you install them and will instead tell you that there is a conflict.



#3
JohnP

JohnP
  • Members
  • 142 messages

Now for Mount.dlc. It's a simple enough file that just visually comparing the various DLCs to each other was enough to comprehend (most of) it.

 

 

 

This group is the same in all DLC, so nothing needs to be done here:

 

2dtysd1.jpg

 

 

 

Bytes 16-17 are very important. We know that different DLC have files with the same name in them (e.g. BioD_Nor_203CIC.pcc is present in Leviathan, Omega, and Citadel). How does the game pick which one to use if the user has two or all of these? This number seems to do that. Looking at all the variations of this file, you can see that this number goes up as you progress through the DLC in order of release. So, the DLC with the highest number here will be the one that is used for duplicate files. The last DLC, Citadel, has CB2/3250 here. I used E50/3664 to be way above that.

 

2zfsnls.jpg

 

 

 

Up until this next group, the bytes are always the same: all zeroes with a 09 in there.

This highlighted group is a tlk ID that contains the friendly name of the DLC e.g. Mass Effect 3: Extended Cut.The next four bytes then repeat that same ID. Not sure why it's there twice. 

After that is always a bunch of zeroes.

 

2djtf88.jpg

 

 

 

This highlighted group is always the same in all DLC. No idea what it does.

 

2czc1ev.jpg

 

 

This group is all zeroes in some DLC. Others have values here. Again, I don't know what what these are for. Mine works fine with all zeroes.

 

whfn2g.jpg

 

 

To sum up, the only bytes that need to be changed are the priority number and the tlk IDs. Pretty simple stuff here.



#4
Deager

Deager
  • Members
  • 722 messages

Not sure if this was covered in another thread but how do you update the PCConsoleTOC.bin file? A real life example would be if I wanted to do JAM to CEM.



#5
giftfish

giftfish
  • Members
  • 1 529 messages

Not sure if this was covered in another thread but how do you update the PCConsoleTOC.bin file? A real life example would be if I wanted to do JAM to CEM.

 

I provide instructions for the user to do this in ME3Exp for ThaneMOD, as it was unavoidable. But, what would be nice is if we could figure out how to get NSIS to launch ME3Exp by command line and run a TOC/AutoTOC itself. Super tricky though. I tried just to get it to launch ME3Exp upon the user exiting out of the installer and couldn't do it. And, of course, that would still assume the user has to have ME3Exp.

 

@JohnP -- Are any more posts incoming? When are you going to announce this on ME3Exp forums?



#6
JohnP

JohnP
  • Members
  • 142 messages

Not sure if this was covered in another thread but how do you update the PCConsoleTOC.bin file? A real life example would be if I wanted to do JAM to CEM.

 

At the moment, users would have to do it manually. The DLC TOCBinUpdater currently will only work if TOC is in the sfar since up until now, we thought it had to be.

 

I jury-rigged AutoTOC's source code to build the TOCs I put in my installer. Let me see if I can make it all-purpose. No promises as I'm not a programmer.  :)

 

The nice thing about this method of distributing mods is, if we coordinate ourselves properly, the user shouldn't have to do this. Let's say you had a "DLC version" of CEM and you wanted to make JAM dump you into the apartment. You could put the modified memorial files in the CEM DLC instead of modifying the one in the JAM folder. As long as the priority number in the Mount.dlc was higher than JAM's, that is the file that would be used and the user wouldn't have to mess with modding JAM at all.



#7
JohnP

JohnP
  • Members
  • 142 messages

Now for the bin. This is the DLC's Coalesced.bin.

 

For DLC, the game checks for a valid bin file named like Default_<DLC name>.bin where <DLC name> is the folder name e.g. DLC_CON_JAM, DLC_EXP_Pack001, etc. So here we have Default_DLC_CON_JAM.bin.

 

For this, I took the Extended Cut's bin and cut almost all of it out since it isn't relevant.

 

I'll start the screen shots at the bottom and work my way up.

 

 

This one is unchanged since it's just a list of the other files in the Coalesced:

 

25pr2vs.jpg

 

 

 

 

bioui.ini I completely stripped of everything. Note: the Coalesced editor will not save the file unless the "name" and "sections" sections are present. That's why I left them here.

 

wugwu8.jpg

 

 

 

 

biogame.ini is the same:

 

2wcpkjp.jpg

 

 

 

 

bioengine.ini is a little bit more substantial, but not nearly what it is in real DLC:

You can see the familiar "name" and "sections" areas. For bioengine, the editor will not save it without also having the "alternateonpackageresources" section populated.

 

I also kept in the "engine.dlcmodules" section with the "dlc_con_jam" subsection. Without this, the game wouldn't see my ConditionalsDLC_CON_JAM.cnd file. Other than that, I don't know what the "Type" and "Value" data mean.

 

9u9kj4.jpg

 

 

 

 

 

That's pretty much all I have for the Coalesced. I've never been a Coalesced modder, so all of you probably know more stuff to do here. I know emails and I think codex entries are located in Coalesced, so I imagine those could be placed here instead of modding the main game's file.



#8
giftfish

giftfish
  • Members
  • 1 529 messages

That's pretty much all I have for the Coalesced. I've never been a Coalesced modder, so all of you probably know more stuff to do here. I know emails and I think codex entries are located in Coalesced, so I imagine those could be placed here instead of modding the main game's file.

Emails and war assets. And, the texture pointers for emails, war assets, codex entries and lots of other stuff. It's strange, though, as I remember looking at the From Ashes Coalesced and noticing that there were no texture pointers in there for the codex entries it added, which makes me wonder if that is somehow handled differently. I'll have to double check and see if BW left those in the vanilla files. What I do know is that there are lots of sections missing in DLC Coalesced that are present in the main one, and that Wenchy apparently doesn't edit the DLC versions properly.

#9
JohnP

JohnP
  • Members
  • 142 messages

Ok, now the tlk. I think everyone here knows how tlks are structured so I'll be brief:

 

 

Looks like all the other tlks in the game. ID must be unique (I used a large unused range from the Extended Cut). Position starts at zero and goes up by one every time:

 

15d9fdd.jpg

 

 

 

738369 is where I placed the string that Mount.dlc uses to find the friendly name of the DLC:

 

2mezjgg.jpg

 

 

Just like other tlks, the "Male" and "Female" entries are always last before the </tlkfile> closing tag. I noticed that the ID for Male and Female are the same (this was copied from the EC tlk). Are they all like this? I didn't notice in the other tlks. It appears to make no difference.



#10
giftfish

giftfish
  • Members
  • 1 529 messages

Just like other tlks, the "Male" and "Female" entries are always last before the </tlkfile> closing tag. I noticed that the ID for Male and Female are the same (this was copied from the EC tlk). Are they all like this? I didn't notice in the other tlks. It appears to make no difference.

Yep, they are. Noticed that as I was trying to figure out the codex bug and made a post in the Email Tutorial on ME3Exp about it. That's what I sort of use as the "tlk reference" for the other TM tutorials.

#11
giftfish

giftfish
  • Members
  • 1 529 messages

Related to the tlk situation, so you are saying there would only be a DLC-type tlk, and if you would want to overwirte various strings, then you would use the same string IDs from the vanilla tlk, correct?



#12
JohnP

JohnP
  • Members
  • 142 messages

I think you'd have to use a different ID. Let me do a quick test and see.



#13
JohnP

JohnP
  • Members
  • 142 messages
BTW, I posted this over on ME3 Explorer in the research forum.

#14
AVPen

AVPen
  • Members
  • 2 599 messages

Really, really fascinating stuff, John. Am wondering if this route of making new content as a DLC would bypass a number of issues/concerns that I've been dealing with while working on my MEWAM mod, specifically:

 

- dealing with the compatibility of other mods that alter the same files; Conditionals, TLK, Coalesced, etc (a biggie, since my mod will have to eventually be compatible with MEHEM and ThaneMod)

 

- working around having DLC files 'overwrite' my modded files (like with the BioD_Nor.pcc file, I had to really work at editing that file twice both for the main game and the Leviathan version of the file, which overrides the main game's file, but working with the Leviathan pcc file and getting it to work in-game was a total pain in the ass...)



#15
Deager

Deager
  • Members
  • 722 messages

BOOM! I know how to do this now. It works!!!!!

 

So, that mystery little byte I didn't understand? Turns out it's the number of bytes from it to the first 00 after the end of the file path.

 

The easiest method to use now it create a dummy ME3 folder with just Binaries\Win32\MassEffect3.exe and from the same root, CookedPCConsole and Movies.

 

Use the AutoTOC to get most of the PCConsoleTOC.bin made.

 

Then, the tedious bit. In the hex editor of your choice, you'll find the BIOGame\ text. Get rid of it, actually deleting the bytes. Then, back up the file, 2 byets after the end of the previous name, is a byte. That byte needs to be the number of bytes from it to the first 00 after the name you just changed.

 

I'll get pics up in a bit but I'm super pumped and it's time to work on MEHEM to CEM and CEM itself with this new method.



#16
giftfish

giftfish
  • Members
  • 1 529 messages

Thought I'd post this here, rather than PMing Deager back, since it involves other mods, as well.

 

Btw, thanks for those values you PM'd me, Deager :]

 

 

I'm starting to get everything together for ThaneMOD's impending testing and release of v2.0, and I'm trying to find a single DLC priority value for TM that will work with every other mod and futureproof as much as possible.  I don't know if this is doable or not, but we should probably all try to work together and make this as simple as possible, lol.

 

--JAM is easy as there is only one value: 3664. ThaneMOD needs to be lower for JAM to overwrite the right endgame files. The only thing that would complicate things is if JohnP ever wants to add credit music, as ThaneMOD also customizes this.

 

--Fob is afk and hasn't converted MEHEM yet, butThaneMOD absolutely will need to be above MEHEM for all the TM overwrites to work, including Credits Music (assuming the player installs that part)

 

--CEM is really, really confusing me with all the patches and values and trying to keep straight what TM users might have installed. I'm not sure in which cases I need CEM files to overwrite TM files in order to keep everying in TM working, part of which stems from me not having Citadel DLC/CEM. So, I guess I need some help.

 

CEM Values Deager PM'd me are:

 

CEM Full =3252

CEM Lite=3251

MEHEM to CEM Full=3669

MEHEM to CEM Lite=3668

JAM to CEM Full=3703

JAM to CEM Lite=3704

Additional LI Full=3705

Additional LI Lite=3704

ThaneMOD MEHEM Full=3707

ThaneMOD MEHEM Lite=3706

 

And, for reference:

 

Citadel DLC - 3250

JAM - 3664

 

As far as I can tell, values I might need to worry about are CEM Full.Lite, JAM to CEM Full/Lite, and ThaneMOD to MEHEM Full/Lite. MEHEM to CEM won't be used by TM users (they would use the TM to MEHEM, I assume). Additional LIs is another confusing one. It is included in the MEHEM version of TM, but not in the EC version. The EC version has the special version JohnP made that just puts Thane in the MS, and I'm pretty sure our version isn't compaible with the version he released separately.

 

I guess what it all comes down to is this:

 

--Does CEM base always need to overwrite TM? (I assume not)

--Do CEM Patches always need to overwrite TM? (I assume so)

--Will CEM Patches and CEM base always be kept separate? (this is important)

 

Also, Deager, does Citadel DLC modify credits music? I didn't think it did, but I wanted to make sure. Finally, I have one test copy you sent me of the TM to MEHEM CEM patch. It only modifies 2 files, the 720/730Memorial PCCs. Do all the patches only modify those 2 files?

 

Right now, I was considering a value of 3400. It would provide plenty of room between it, Citadel DLC, and JAM. And, as long as all the CEM patches need to overwrite, it would work with all of those, as well. It would also allow for overwriting base CEM content, when TM starts to edit some of these files in TM v3.0.

 

Another thing to consider is that It would also mean that Fob would need to place MEHEM below 3400. Anyone see a problem with that in relation to the above values?



#17
Deager

Deager
  • Members
  • 722 messages

Your idea of 3,400 works just fine.

 

As far as I can tell, values I might need to worry about are CEM Full.Lite, JAM to CEM Full/Lite, and ThaneMOD to MEHEM Full/Lite.

Correct.

 

--Does CEM base always need to overwrite TM? (I assume not)
Correct; it does not.
 
--Do CEM Patches always need to overwrite TM? (I assume so)
Correct, they do.
 
--Will CEM Patches and CEM base always be kept separate? (this is important)
EDIT: Yes. Check new edit at end of post for reasoning.
 
does Citadel DLC modify credits music? I didn't think it did, but I wanted to make sure.
Correct; it does not modify the credits music.
 
I have one test copy you sent me of the TM to MEHEM CEM patch. It only modifies 2 files, the 720/730Memorial PCCs. Do all the patches only modify those 2 files?
No. You can download them to check them out but basically it's
 
-- 720/730Memorial PCCs (to handle the actual transition from memorial to CEM plus a few other things)
 
-- JAM files are 740/750 since those are the 720/730 versions (you may not care about that though since ThaneMOD/JAM to CEM already works)
 
-- 610EpilogueRed_LOC_INT (pointed the sound file for the stargazer scene to other locations and hide subtitles)
 
-- End004.bik (to show the Normandy flying by (lite) or arriving at the Citadel (full))
 
Hopefully that got all your questions answered. For MEHEM below 3,400...I can't see a problem with that. Not saying I've thought of everything but with a range from 3252 - 3339, I can't imagine there being a problem.
 
I just remembered why I kept the CEM and transition installers separate. I wanted a very low value for CEM itself for ThaneMOD (or other mods) to be able to go above it if they wanted. Since JAM was already 3664 I knew I had to plan on starting above that for the transition options. Why I didn't just use 3665 for all variants I'm not really sure but that's why they're separate.


#18
giftfish

giftfish
  • Members
  • 1 529 messages

Thanks for responding, Deager :)

 

As far as the EC file issues, I have a couple of follow up questions. Trying to think about the 5 versions of ThaneMOD that uses 3 different sets of ending files, some of which have the same names but are different versions, and then tossing JAM, CEM, and MEHEM onto the mix is all seriously about to make my brain explode >.<

 

So,  I apologize if any of this sounds stupid:

 

 

1. ThaneMOD edits the 720/730Memorial PCCs for both our EC and MEHEM versions of the mod. So...how again do I know that your versions are compatible? I think one thing I'm starting to get a bit confused about is say someone installs ThaneMOD v1.0B/C (EC ending). Which CEM patch do they use (if any)? If your 720/730 files overwrite ThaneMOD's I don't understand how they would be compatible.

 

...Unless I gave you copies awhile back for you to work off of and I've totally forgotten >.>

 

 

2. ThaneMOD always edits the 610EpilogueRed, but there are two different versions of this file depending on the install. How do I know your overwrites are compatible with both versions?

 

 

3. End004.bik. ThaneMOD doesn't use this. Yay. One thing I don't have to worry about, lol.

 

 

4. ThaneMOD JAM users use the JAM-CEM patch, which apparently works. I can't remember if that's the one I tested or not. It's been too long, ugh.

 

 

5. ThaneMOD MEHEM users use the TM-MEHEM to CEM patch, which is a beta right now. Any user comments on that, btw? Do we know if it's working?

 

 

I would seriously give the Wwisebanks gods my first born (I don't have one, but still...) if we could figure out how add new audio to the game so I could combine these damn friend/LI versions of the mod. Doing that would knock it down to 3 versions, anyway. And, I might be able to figure out how to combine v1.0A (very basic EC version) with v1.0B/C (enhanced EC version) to cut it down to two, and the work some magic with the installer...somehow. Ack.



#19
Deager

Deager
  • Members
  • 722 messages

1. If I remember correctly I used the ThaneMOD versions of those files. If those files are consistent across Friend/LI versions we should be ok. But that's my problem to fix if I'm wrong.

 

2. Almost for certain this won't work now then. I don't think I used a ThaneMOD file for that. I'll have to double check though...maybe I did. The good news is I'm about to finally get a character to ME3 with Thane alive so I can do a friend test. What all do you edit in that 610*INT file?

 

3. Thank the goddess.

 

4. Apparently it works but I'll confirm once I get a character through.

 

5. No comments yet at all so we're not really sure. I can tell you that it worked in my test. I know it failed for the tester but she had already finished Citadel DLC and that plot file getting referenced can really screw stuff up. This is why there's a different lite vs full version; the transition has to reference a different plot file for some reason.

 

I might regret this since I just moved onto Borderlands 2 with some friends but I might be able to help you with the audio dealio you want to do. I'll start another thread here.

EDIT: Whoops. Probably not I realized. Main game audio is not my thing. If it can use afc_fileswitch to place files at the end then maybe. You'd still need two versions of the _INT.pcc files to control which audio file gets referenced though. It may not really solve your issue. But, just having an installer would be super helpful for people, even if you do multiple installers.



#20
giftfish

giftfish
  • Members
  • 1 529 messages

1. If I remember correctly I used the ThaneMOD versions of those files. If those files are consistent across Friend/LI versions we should be ok. But that's my problem to fix if I'm wrong.

There are 2 versions of the 720/730memorial files. One for EC and one for MEHEM. I can get you copies, of course.

 

2. Almost for certain this won't work now then. I don't think I used a ThaneMOD file for that. I'll have to double check though...maybe I did. The good news is I'm about to finally get a character to ME3 with Thane alive so I can do a friend test. What all do you edit in that 610*INT file?

Fob did all of our epilogue edits, so I can't say with 100% certainty. There are 2 versions, though, one for EC and one for MEHEM. Again I can get you copies.
 
I think I linked this to you once before, but I'll put it up again, just in case. This is the ThaneMOD file list, though I haven't yet updated it for the impending v2.0 release. Anything that CEM also edits, you'd need to work off our file, I assume.

 

4. Apparently it works but I'll confirm once I get a character through.

 Cool.
 

5. No comments yet at all so we're not really sure. I can tell you that it worked in my test. I know it failed for the tester but she had already finished Citadel DLC and that plot file getting referenced can really screw stuff up. This is why there's a different lite vs full version; the transition has to reference a different plot file for some reason.

K. I do have one tester who I know plays on godmode or something. She blazes through a PT in like a day and a half, so I can see if she'll test it.

 

EDIT: Whoops. Probably not I realized. Main game audio is not my thing. If it can use afc_fileswitch to place files at the end then maybe. You'd still need two versions of the _INT.pcc files to control which audio file gets referenced though. It may not really solve your issue. But, just having an installer would be super helpful for people, even if you do multiple installers.

Yeah, I'm not sure what the solution is. It's on hold for this release, anyway, but it's going to take some trickery if it's even possible. I know JohnP was trying some ideas he had a little while back, but they didn't work. We'd also need Fob to redo some of the MEHEM edits, if LI and Friend are going to be in the same version. He'd need to adjust some conditionals, slide pointers, and I think and a couple other things.

 

We already have multiple installers for v1.0. I'm trying to figure out if we can somehow do fewer. We'll see ;)



#21
Deager

Deager
  • Members
  • 722 messages

I just looked through that google doc again. Good news. That's the BioD_End002_610EpilogueRed.pcc file but not the INT version of it. So we're fine there.

 

The only potential problem I see then is the difference between the 720/730 files. Glad I said "BETA" on that download since it looks like a few versions are needed from my end.

 

We should probably start another thread for "MEHEM and CEM stuff" if you've got more stuff you need confirmed.



#22
giftfish

giftfish
  • Members
  • 1 529 messages

Deager, I just noticed that you said "610EpilogueRed_LOC_INT. Somehow my eyes glazed over that part. ThaneMOD does not modify that file. We modify the main pcc of that file, but not the localized version of that PCC.

 

Sorry for the false alarm with that, ick.

 

I'm re-reading out exchange a bit and comparing it to our discussion in your CEM Review thread to make sure I didn't misunderstand/miss anything else. We had hammered some of this stuff out in that thread, and should probably continue this discussion there since it's grown into a CEM-TM compatibility discussion.

 

EDIT: Ha. Talk about a double post. I'll follow up with something in there, Deager :)