PCC Builder / PCC File Format

Discuss Mass Effect 3 mods and modding tools here. This includes multiplayer mods.
Post Reply
User avatar
Erik JS
Posts: 110
Joined: Sun Jan 10, 2016 8:03 pm
Location: Brazil

PCC Builder / PCC File Format

Post by Erik JS »

I'm working on a tool in order to decompile and compile PCC files.
Image
I'm doing this more for the sake of seeing why something like this hasn't been made yet.
Currently, it can only create XML's and extract export data. I still have to make the "compile" part, and see if the game will accept the rebuilt PCC.

Also, about PCC file format: currently, we have the ME3Explorer's wiki article , but it has some inconsistencies...
Fortunately, I was able to find reliable information elsewhere:
http://wiki.tesnexus.com/index.php/UPK_ ... OM:EU_2012
https://wiki.beyondunreal.com/Unreal_package

Most of XCOM's UPK structures match PCC's, so I'm basing my work off that.

EDIT: online now!
Repository: https://github.com/Erik-JS/PCCBuilder
Binary only: https://www.dropbox.com/s/idgf2grgt5wuz ... er.7z?dl=0
Last edited by Erik JS on Thu Mar 10, 2016 4:59 pm, edited 1 time in total.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: [WIP] PCC Builder / PCC File Format

Post by Mgamerz »

Would it be easier for it to be be <INT ID=....> instead of <Intid>? It is much harder to pick tags that change over time. I look forward to testing this =]

I have found some items items from the pccobject code that are incorrect. They work on pc because of endianness, but when reversing it for Xbox it does not (like they have 64bit inta when its two 32bits, e.g. export name)Or vice versa (high and low version)
User avatar
Erik JS
Posts: 110
Joined: Sun Jan 10, 2016 8:03 pm
Location: Brazil

Re: PCC Builder / PCC File Format

Post by Erik JS »

Alright, the tool has been officially released now. Links in the first post. :)

Unknown fields are marked as "UnkXX" instead of "IntXX" in order to avoid confusion with the actual int data type.

Btw, I figured out one of the header's unknown fields today: GameVersion. This explains why a certain "7C" changed to "85", in TESTPATCH's PCC's from 1.5 to 1.6.

Rules for fields:
PCC/Header/GUID: 32 chars, 16 bytes as hex string
PCC/Exports/ExportXXX/Data: path to export data file, relative to the XML.
Everything else: 32-bit number, as signed int or hex (for example: "-1" and "0xFFFFFFFF" should result in the same thing when written back into the PCC).
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: PCC Builder / PCC File Format

Post by Mgamerz »

ErikJS, if you are trying to work with pcc files you may be interested in my xbox version of pcceditor2. It handles endianness, and I have found a lot of inconsistencies in the normal pcceditor2 that assumes values are a certain size (or does really... interesting casting) that aren't correct. E.g. a 64 => 32bit cast that works by accident on PC (does not work for xbox files).
User avatar
Erik JS
Posts: 110
Joined: Sun Jan 10, 2016 8:03 pm
Location: Brazil

Re: PCC Builder / PCC File Format

Post by Erik JS »

Currently, I'm trying to implement some algorithm for compression and decompression. Here, for some reason, ME3 is failing to load some uncompressed files, and ME3Explorer's PCC Repacker has failed in repacking Asari_Adept_MP.pcc, I don't know why, but it's likely that other files may fail as well. The way I'm doing things here is by not looking at PCCEditor2's code (for as long as possible, anyway...).
Post Reply