GAMEWAD.OBJ (TR5 NTSC 1.0)

By: Gh0stBlade

//The number of file entries stored in GAMEWAD.OBJ.
#define NUM_GAMEWAD_FILE_ENTRIES 51
 
//Maximum size of the GAMEWAD header struct.
#define GAMEWAD_HEADER_MAX_LENGTH 512
 
struct GamewadEntry
{
    int fileOffset;
    int fileSize;
};
 
struct GamewadHeader
{
    struct GamewadEntry entries[NUM_GAMEWAD_FILE_ENTRIES];
    char reserved[GAMEWAD_HEADER_MAX_LENGTH - (NUM_GAMEWAD_FILE_ENTRIES * sizeof(GamewadEntry))];
};
 
enum GamewadFiles
{
    NONE,    // Used to initialise Gamewad offset to 0.
    CUTSEQ,
    TITLE,
    ANDREA1, // Guessed
    ANDREA2,
    ANDREA3,
    JOBY2,
    JOBY3,
    JOBY4,
    JOBY5,
    ANDY1,
    ANDY2,
    ANDY3,
    RICH1,
    RICH2,
    RICHCUT2,
    RICH3,   // End Guessed
    GIBBY, // 0 bytes
    DEL, // 0 bytes
    TOM, // 0 bytes
    RESERVED_20, // 0 bytes
    RESERVED_21, // 0 bytes
    RESERVED_22, // 0 bytes
    RESERVED_23, // 0 bytes
    RESERVED_24, // 0 bytes
    RESERVED_25, // 0 bytes
    RESERVED_26, // 0 bytes
    RESERVED_27, // 0 bytes
    RESERVED_28, // 0 bytes
    RESERVED_29, // 0 bytes
    STORY1, // 16bpp TR5 Extras Storyboards (ENG) 512x
    STORY2, // 16bpp TRN Extras Storyboards 512x
    STORY3, // 16bpp TR5 Extras Storyboards (ENG) 512x
    RESERVED_33, // 0 bytes
    RESERVED_34, // 0 bytes
    RESERVED_35, // 0 bytes
    RESERVED_36, // 0 bytes
    RESERVED_37, // 0 bytes
    RESERVED_38, // 0 bytes
    RESERVED_39, // 0 bytes
    RESERVED_40, // 0 bytes
    UKPIK_START, // 16bpp TR5 Legal Screen (ENG)  512x256 & 16bpp Loading CD (64x64)
    FRANCEPIK_START, // 16bpp TR4 Legal Screen (FR)   512x256 & 16bpp Placeholder loading CD (64x64)
    GERMANPIK_START, // 16bpp TR4 Legal Screen (US)   512x256 & 16bpp Placeholder loading CD (64x64)
    ITALYPIK_START, // 16bpp TR4 Legal Screen (ENG)  512x256 & 16bpp Placeholder loading CD (64x64)
    SPAINPIK_START, // 16bpp TR4 Legal Screen (ENG)  512x256 & 16bpp Placeholder loading CD (64x64)
    USAPIK_START, // 16bpp TR5 Legal Screen (ENG)  512x256 & 16bpp Loading CD (64x64)
    JAPPIK_START, // 16bpp TR4 Legal Screen (US)   512x256 & 16bpp Placeholder loading CD (64x64)
    DUTCHPIK_START, // 16bpp TR4 Legal Screen (ENG)  512x256 & 16bpp Placeholder loading CD (64x64)
    FRLOGO_START, // 4bpp  TR4 Logo         (FR)   256x58
    GERLOGO_START// 4bpp  TR4 Logo         (ENG)  256x58
};

The original PlayStation engine loads 512 bytes of data (GAMEWAD_HEADER_MAX_LENGTH) into the gamewad buffer. Level file entries contain 3 other files prior to the level file itself.

  1. 262144 bytes of data is a 16bpp 512×256 BGR loading screen image.
  2. 8192 bytes of data is a 16bpp 64×64 BGR spinning CD image.
  3. 42012 is “SETUP.MOD” an external module similar to a DLL file (for the final NTSC version of Tomb Raider Chronicles) the size may vary depending on the version.

UKPIK_START and USAPIK_START are identical. ITALYPIK_START and SPAINPIK_START are too. Same for GERMANPIK_START and JAPPIK_START. And ITALYPIK_START and DUTCHPIK_START.

For the file to be loadable by the PSX engine, all the file offsets must aligned to 2048 (0x800). i.e. they must be aligned to the next multiple of 2048 which is the size of a single CD sector.

Hidden messages

Tomb Raider 4

Too lazy to download it, someone give me TR4 gamewad.obj plz?

Tomb Raider 5

Game : Tomb Raider 5 Beta, file : ''GAMEWAD.OBJ'', offset : ''0x198'', length : 107 characters before null
TR5 DATA FILE (C) 2000 Core Design... 'gamewad.asm' Compiled by Del - 19:24:00 Monday 23rd of October 2000
Game : Tomb Raider 5 (US), file : ''GAMEWAD.OBJ'', offset : ''0x498'', length : 451 characters before null
TR5 DATA FILE (C) 2000 Core Design... 'gamewad.asm' Compiled by Del - 00:08:25 Thursday 2nd of November 2000.   this version built by Del, second attempt submission, 1/11/2000....        Hiya to Caroline and Abbie!                       lets hope we get to do a nice ONLINE game next... EVERQUEST RULES...                   ADSL ROCKS, when it works... someone really should kill BT , they suck.

With newlines:

TR5 DATA FILE (C) 2000 Core Design... 'gamewad.asm' Compiled by Del - 00:08:25 Thursday 2nd of November 2000.
this version built by Del, second attempt submission, 1/11/2000....
Hiya to Caroline and Abbie!
lets hope we get to do a nice ONLINE game next...
EVERQUEST RULES...
ADSL ROCKS, when it works...
someone really should kill BT , they suck.
Game : Tomb Raider 5 (JP), file : ''GAMEWAD.OBJ'', offset : ''0x1A0'', length : 434 characters before null
TR5 DATA FILE (C) 2000 Core Design... 'gamewad.asm' Compiled by Del - 11:26:20 Thursday 25th of January 2001.   this version built by Del, JAP (before xmas :)....        Hiya to Caroline and Abbie!                       lets hope we get to do a nice ONLINE game next... EVERQUEST RULES...                   ADSL ROCKS, when it works... someone really should kill BT , they suck.

With newlines:

TR5 DATA FILE (C) 2000 Core Design... 'gamewad.asm' Compiled by Del - 11:26:20 Thursday 25th of January 2001.
this version built by Del, JAP (before xmas :)....
Hiya to Caroline and Abbie!
lets hope we get to do a nice ONLINE game next...
EVERQUEST RULES...
ADSL ROCKS, when it works...
someone really should kill BT , they suck.