Need for Speed: The Disculator (ZDIR & ZZDATA)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
xan1242
Posts: 3
Joined: Mon Jul 18, 2016 3:44 pm

Need for Speed: The Disculator (ZDIR & ZZDATA)

Post by xan1242 »

I know that there have been a few threads on this, but recently I discovered that the Wii release of Carbon actually has debug symbols inside. This unveiled a lot of things, among which one of them is a constructor/function named DisculatorDriver, which indeed handles the ZDIR filesystem (hence the name Disculator and discu:).

Note that this is still in assembly language, but it still might be useful for figuring out the format. From what I can see, it is indeed a filesystem with hashed filenames. I do not know exactly how the game resolves those hashes, which is why I think the code should be handed to someone who can understand PPC assembly.

It also seems that the development builds have the writer function built in to the game's executable. Now I'm not sure if this relates to debug builds or some other dev builds. There is one accessible to everybody in ProStreet PS2, but I'm not sure about that one having a writer function.

Extracting the files properly would be very useful, especially for modding the console versions.

IDB (x64)
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: Need for Speed: The Disculator (ZDIR & ZZDATA)

Post by Ekey »

Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: Need for Speed: The Disculator (ZDIR & ZZDATA)

Post by Ekey »

My old stuff. Tool for extract ZZDATA archives (I could find about 90% of the filenames) :)

Binaries: here
Sources: here
Teancum
Posts: 94
Joined: Mon Sep 22, 2014 5:13 pm

Re: Need for Speed: The Disculator (ZDIR & ZZDATA)

Post by Teancum »

Does this by chance re-pack the archives too? I always wanted to mod the EAGL-era NFS games on consoles.
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: Need for Speed: The Disculator (ZDIR & ZZDATA)

Post by Ekey »

Teancum wrote:Does this by chance re-pack the archives too? I always wanted to mod the EAGL-era NFS games on consoles.

The format is not complicated, but there is a problem, I do not know how ExtraOffset is calculated. For files that are in the archive #0, the value is always equal to the file offset, and in others it is completely different. I can make a packer and specify ExtraOffset as the file offset in all archives, but there are absolutely no guarantees that the game will works properly.