August 13Aug 13 Localization The archive file typhoon.dat doesn't have filenames, only hashes. I need a way to restore filenames from typhoon.dathttps://drive.google.com/file/d/1s_HQdYdzAv95lTRYj6ZlMTNlq-cR12v-/view?usp=sharing Edited August 13Aug 13 by mrmaller1905
August 14Aug 14 Localization I think I have recovered about 77% of the filenames. I got these after placing a bunch of hooks on functions from the internal filesystem and functions that handle the resources from the XFS archive and its streaming interface.The following python code was used to perform the hashing:def hash_path(path: str) -> int: data = path.encode("latin-1") if len(data) < 2: return 0 suffix_sum = 0 suffixes = [0] * len(data) for index in range(len(data) - 1, -1, -1): value = data[index] if value >= 0x80: value -= 0x100 # signed byte suffix_sum = ( suffix_sum + (value + index) * (value + 0x13) ) & 0xFFFFFFFF suffixes[index] = suffix_sum result = 0 for index in range(len(data) - 1): value = data[index] if value >= 0x80: value -= 0x100 result = ( result + suffixes[index] * (value + 7) * (value + index) ) & 0xFFFFFFFF return result % 0xEE6B2800This is a great start but, we're still missing the original paths of roughly around 3.1k assets. typhoon_hashes.7z
August 14Aug 14 Localization I created my own DLL which uses MS Detours to hook the necessary functions inside of the game executable. The data the hooked functions parse I log to disk and then I ran them through the python script.
August 14Aug 14 Supporter Btw, format was already covered on the wikihttps://rewiki.miraheze.org/wiki/Rage_Software_XFS
Create an account or sign in to comment