Jump to content

Recommended Posts

  • Members
Posted

I've been looking up things about the Disney's Dinosaur games and the PS1 version seems to have all data packed into a file called BIGFILE.CAT
The only thing I was able to do was view the voices of the characters in jpsxdec and I've tried looking around in Tiledggd but can't figure out the palette

If anyone has an idea of how I can extract the assets such as the textures it would be helpful
https://drive.google.com/file/d/1sREyna187mDIzmG6dsxgOZstAbs2TXRz/view?usp=sharing

Screenshot 2025-12-13 052846.png

  • Engineers
Posted (edited)

The functions reads the big file as chunks sectors as mode 2352

resuming.

it will extract millions of file.

maybe some with better idea can help u

Edited by Rabatini
  • Supporter
Posted
On 12/14/2025 at 9:22 AM, Rabatini said:

The functions reads the big file as chunks sectors as mode 2352

resuming.

it will extract millions of file.

maybe some with better idea can help u

Why do repeated offsets appear in the index area? These offsets all seem to point to new blocks, and then the files in the new blocks start offsets from the new blocks.

  • Engineers
Posted
1 hour ago, wq223 said:

Why do repeated offsets appear in the index area? These offsets all seem to point to new blocks, and then the files in the new blocks start offsets from the new blocks.

The "repeated offsets" pointing to new blocks indicate that the main BIGFILE.CAT is acting as a master container that holds smaller, self-contained archives inside it.

The Master Index: Points to large chunks of data (e.g., "Level 1 Data", "Level 2 Data").

The "New Block": When you go to that offset, you find a new header (signature 01 00 01 00).

The Inner Index: This new header has its own list of files. Because this block is treated as a standalone file by the game engine once loaded, its offsets start at 0 (relative to the start of that block), not relative to the start of the whole disc.

[ MASTER CAT (BIGFILE) ]
|-- Header
|-- Index Entry 1: Offset 1000 -> Points to "Level 1 Block"
|-- Index Entry 2: Offset 5000 -> Points to "Level 2 Block"
|
|... [Data at Offset 1000] ...
    |
    +-> [ NESTED CAT (Level 1) ]
        |-- Header (starts at Master Offset 1000)
        |-- Index Entry A: Offset 10  (Absolute: 1010)
        |-- Index Entry B: Offset 50  (Absolute: 1050)
        |-- Data...

Why did developers do this? (The Logic)

This approach was necessary due to the hardware limitations of the PlayStation 1 (PS1):

RAM Constraints: The PS1 has only 2MB of RAM. It cannot keep a massive table of thousands of file offsets in memory at all times.

Modular Loading: The game loads the "Master Index" to find the location of the current level's data. It then streams that specific "Block" (Nested CAT) into memory.

Relative Addressing: Once the "Block" is loaded into a specific memory address, the game engine reads the inner offsets. Since these offsets are relative to the start of the block (0), the engine can easily calculate memory pointers without needing to know where the block was originally located on the CD.

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