Jump to content

For Honor, separate file into smaller files


Go to solution Solved by Tosyk,

Recommended Posts

  • Engineers
Posted

Hi, the zip contains "smaller" files already. 1.dat has vertex blocks, obviously, but the lower 3 bytes of each vertex seem to be encrypted (just a wild guess).

Posted

thanks for looking into this, Shak. They are not encrypted as I can tell, because if I separate them manually, they seem to be working. like dds for example.

  • Tosyk changed the title to For Honor, separate file into smaller files
  • Engineers
Posted
2 hours ago, Tosyk said:

 because if I separate them manually, they seem to be working. like dds for example.

What does that mean? Did you separate 1.dat into smaller files? (Can you show an example of the process?)

  • Solution
Posted

with help of @DKDave, we got this bmses.
to keep header:

# For Honor


Math OFFSET = 0
Get FILE_END asize

For A = 0
	If OFFSET = FILE_END
		Break
	Endif

	Goto OFFSET
	Get TYPE Long
	Get SIZE Long
	Get NAME_SIZE Long
	GetDString FILENAME NAME_SIZE
	String FILENAME P "%FILENAME%.%TYPE|x%"

	XMath SIZE2 "NAME_SIZE + SIZE + 12"

	Log FILENAME OFFSET SIZE2

	Math OFFSET + SIZE2

Next A


without header:

# For Honor
# Without header


Math OFFSET = 0
Get FILE_END asize

For A = 0
	If OFFSET = FILE_END
		Break
	Endif

	Goto OFFSET
	Get TYPE Long
	Get SIZE Long
	Get NAME_SIZE Long
	GetDString FILENAME NAME_SIZE
	SavePos OFFSET
	String FILENAME P "%FILENAME%.%TYPE|x%"

	Log FILENAME OFFSET SIZE

	Math OFFSET + SIZE

Next A


and with some tweaks to get extensions:
 

# For Honor - Extractor with extension mapping
# Without header

Math OFFSET = 0
Get FILE_END asize

For A = 0
    If OFFSET = FILE_END
        Break
    Endif

    Goto OFFSET
    Get TYPE Long
    Get SIZE Long
    Get NAME_SIZE Long
    GetDString FILENAME NAME_SIZE
    SavePos OFFSET

    # --- Extension mapping table ---
    If TYPE == 0x24aecb7c
        String EXT = ".RAWSKEL"
    ElIf TYPE == 0x415d9568
        String EXT = ".RAWMDL"
    ElIf TYPE == 0xa2b7e917
        String EXT = ".RAWDDS"
    ElIf TYPE == 0x9c2eff4f
        String EXT = ".RAWBONE"
    ElIf TYPE == 0x85c817c3
        String EXT = ".RAWMTL"
    ElIf TYPE == 0x989dc6b2
        String EXT = ".RAWMTL_I"
    ElIf TYPE == 0x953ac29c
        String EXT = ".RAWCLOTH"
    Else
        # fallback: use hex as extension
        String EXT P ".%TYPE|x%"
    EndIf
    # -------------------------------

    String FILENAME P "%FILENAME%%EXT%"
    Log FILENAME OFFSET SIZE

    Math OFFSET + SIZE
    
Next A

 

  • Like 1
  • 2 weeks later...
Posted

But where did the example come from and what's the use for the script if there are no files to use it on? The .forge files have been inaccessible for 5 years due to encryption. The only decrypted build is from 2018 and the dumped assets are already available, although with completely broken unusable UV's. I ask because if there is some sort of progress being made on this game that would be a big deal after so many years!

Posted
14 hours ago, CharlieV said:

But where did the example come from and what's the use for the script if there are no files to use it on? The .forge files have been inaccessible for 5 years due to encryption. The only decrypted build is from 2018 and the dumped assets are already available, although with completely broken unusable UV's. I ask because if there is some sort of progress being made on this game that would be a big deal after so many years!

not quite right about encryption. the only encrypted forge files are from the end of 2019 and forward on. any previous forge files can be opened even from current build.

  • 2 weeks later...
Posted

That still means that functionally nothing newer than those old files are accessible, so my question in its entirety still stands and nothing has changed. Unless the goal is a method for keeping the UV's intact on the old assets? Though they're a fraction of the current assets that would be a big deal too, currently people spend many hours manually rebuilding the UV's for each model from the old dumped build. 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...