===== SETUP.MOD =====
''SETUP.MOD'' is a container based file format which holds multiple "modules". These modules are pre-game "SETUP" routines which have been bundled externally from the main game's executable. The SETUP.MOD module is located inside GAMEWAD.OBJ. It's stored right after the loading screen+loading cd bitmap data. Based on Tomb Raider 1's "TOMB.map" it is known that there is a file called "SETUP.C". The file in question is not present in the PlayStation TR5 codebase judging by the symbol data. It's safe to assume the SETUP.mod module contains the same/similar code as listed in TR1's SETUP.C.
The first GAMEWAD.OBJ entry contains the file size for SETUP.MOD.
SETUP.MOD has it's own header which consists of various pointers as follows:
enum modules
{
UNKNOWN_0,
UNKNOWN_1,
UNKNOWN_2,
UNKNOWN_3,
UNKNOWN_4,
UNKNOWN_5,
UNKNOWN_6,
MODULE_LEVEL_LOAD,//Contains the code which loads a level file into the game and setups up various game structs/calls initialisation routines.
NUM_MODULES
};
struct SETUP
{
uint32_t pModule[NUM_MODULES];
};
Module pointers appear to be offset by 8 bytes.
==== Values ====
//The values here are the values from the original files + 8, in the format (Position Dec, Position Hex, Length Dec).//
^ Module ^ Internal Beta ^^^ Retail ^^^
^ ::: ^ Pos (10) ^ Pos (16) ^ Len (10) ^ Pos (10) ^ Pos (16) ^ Len (10) ^
^ Unknown 0 | ''40896'' | ''9FC0'' | ''1352'' | ''40700'' | ''9EFC'' | ''1320'' |
^ Unknown 1 | ''1352'' | ''548'' | ''22688'' | ''1320'' | ''528'' | ''22660'' |
^ Unknown 2 | ''25644'' | ''642C'' | ''120'' | ''25584'' | ''63F0'' | ''120'' |
^ Unknown 3 | ''24040'' | ''5DE8'' | ''648'' | ''23980'' | ''5DAC'' | ''648'' |
^ Unknown 4 | ''24688'' | ''6070'' | ''528'' | ''24628'' | ''6034'' | ''528'' |
^ Unknown 5 | ''25216'' | ''6280'' | ''428'' | ''25156'' | ''6244'' | ''428'' |
^ Unknown 6 | ''25764'' | ''64A4'' | ''15132'' | ''25704'' | ''6468'' | ''14996'' |
^ Level Load | ''528'' | ''210'' | ''824'' | ''528'' | ''210'' | ''792'' |