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)
Need for Speed: The Disculator (ZDIR & ZZDATA)
-
- Posts: 3
- Joined: Mon Jul 18, 2016 3:44 pm
-
- Posts: 1383
- Joined: Sat Aug 09, 2014 2:34 pm
-
- Posts: 1383
- Joined: Sat Aug 09, 2014 2:34 pm
-
- Posts: 94
- Joined: Mon Sep 22, 2014 5:13 pm
Re: Need for Speed: The Disculator (ZDIR & ZZDATA)
Does this by chance re-pack the archives too? I always wanted to mod the EAGL-era NFS games on consoles.
-
- Posts: 1383
- Joined: Sat Aug 09, 2014 2:34 pm
Re: Need for Speed: The Disculator (ZDIR & ZZDATA)
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.