Jump to content

[PSX] Konami "FAD" Archives


Go to solution Solved by Nenkai,

Recommended Posts

Posted

Hi everyone

I've discovered that several PSX  games by Konami use a file format with the extension ".FAD". My goal is to unpack these FAD archives and translate the games. Unfortunately, I haven't been able to find any information online about this specific format, and I lack the technical expertise to reverse-engineer it myself.

I'm hoping someone here might have some insight into this format. Any assistance would be greatly appreciated!

I've attached FAD files from two different games as examples.

files.zip

Posted
17 minutes ago, Sparagas said:

Hi, this is interesting. Can you name all known games that use it?

SLPM-87214  Whistle! - Fuki Nukeru Kaze
SLPM-87286  Gegege no Kitarou - Gyakushuu! Youma Daikessen(GeGeGe no Kitarō: Counterattack! The Great Yōkai-Demon War)
SLPM-87121  GROOVE ADVENTURE RAVE - PLUE NO DAIBOUKEN
SLPM-87174   Kaettekita Cyborg Kurochan
SLPM-86932   KIDS STATION - KUMA NO POOH-SAN
SLPS-02874    Kikansha Thomas to Nakamatachi
……

GeGeGe no Kitarou is a great 2D action game

  • Thanks 1
  • Engineer
  • Solution
Posted (edited)

I did some research.

Each FAD archive is just lumps of data, the executables contains a very basic but hardcoded table of contents for each file, there are no file names either.

Namely the game executable(s) will hold a list of each data file, and then a separate file list for each data file, with each entry (0x08 in size) being:

  • ushort SectorIndex (1 sector = 0x800 bytes)
  • ushort NumSectors
  • uint Flags (only relevant for the game, always 0x80188000)

 

For extracting, you would have to scout every executable to grab the file lists. And then try and find out what file does what, since they're unnamed.

For rebuilding, assuming the data file size has changed, you would have to rebuild the archive and adjust sectors on the executable level.

Edited by Nenkai
  • Like 1
Posted (edited)
15 hours ago, Nenkai said:

I did some research.

Each FAD archive is just lumps of data, the executables contains a very basic but hardcoded table of contents for each file, there are no file names either.

Namely the game executable(s) will hold a list of each data file, and then a separate file list for each data file, with each entry (0x08 in size) being:

  • ushort SectorIndex (1 sector = 0x800 bytes)
  • ushort NumSectors
  • uint Flags (only relevant for the game, always 0x80188000)

 

For extracting, you would have to scout every executable to grab the file lists. And then try and find out what file does what, since they're unnamed.

For rebuilding, assuming the data file size has changed, you would have to rebuild the archive and adjust sectors on the executable level.

Thank you so much! Your hint was spot on – I've located the file list in the PlayStation EXE file. Just as you described, each 8-byte block corresponds to a file within the FAD archive. For example, in 0x00e811808b008800, the '8b00' section is the file start offset (0x8b * 0x800), and '8800' is the file size in bytes (0x88 * 0x800). This has allowed me to extract the files. Unfortunately, they appear to be non-standard TIM bitmaps, so my investigation continues! 😂 Thanks again for your help.

image.png.7fd9fb32d5792c7154665cf96464d9fc.png

Edited by morrigan

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