Jump to content

For Honor, separate file into smaller files


Go to solution Solved by Tosyk,

Recommended Posts

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

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...