setup.cfg - widberg/fmtk GitHub Wiki

GameSetup.exe uses a file called setup.cfg to store image data and some other stuff.

// ImHex Pattern
// setup_cfg.hexpat

struct Action {
    /// trtext ID for the name of the action
    u32 trtext_id;
    /// Default value for the primary input for the action
    u32 primary_default;
    /// Default value for the secondary input for the action
    u32 secondary_default;
    /// Index of the Controls this action is in, in the controls variable
    /// In WALL-E and Ratatouille you need to comment out this field
    u32 controls_index;
};

struct Context {
    /// Only the actions up until the first action where trtext_id is 0 are valid
    Action actions[32];
};

struct Controls {
    u32 count;
    u32 context_count = count / 32;
    Context contexts[context_count];
};

struct SetupCfg {
    /// Required to be 0x80000003 in FUEL
    u32 version;
    /// Offset to the bitmap variable
    u32 bitmap_offset;
    /// Size of the bitmap variable
    u32 bitmap_size;
    /// Offset to the ico variable
    u32 ico_offset;
    /// Size of the ico variable
    u32 ico_size;
    /// Offset to the controls variable
    u32 context_arrays_offset;
    /// Size of the controls variable
    u32 context_arrays_size;
    /// "FUEL"
    char16 game_name[256];
    /// If available_languages[i] where i is a trtext ID is 1
    /// then that language is available for use.
    /// However, available_languages[19] is 1 in my setup.cfg,
    /// but there is no tt19.pc in the trtext directory for me.
    /// trtext ID 19 is French US, so maybe this was from the
    /// developer's computer.
    u32 available_languages[21];
    padding[2048 - sizeof(available_languages)];
    /// ".\trtext\"
    char16 trtext_path[1024];
    /// "U:\Docs\Licences_Projets\ATV_OUTLAWED\ART\INTERFACE\INTERFACE_PAGES\Image installeur\800x285.bmp"
    char16 bitmap_path[1024];
    /// ".\Game.Ico"
    char16 game_ico_path[1024];
    /// Number of players
    u32 nb_player;
    /// The value forced upon the "High Dynamic Range Rendering" checkbox upon starting GameSetup.exe
    /// In Ratatouille you need to comment out this field
    u32 high_dynamic_range_rendering_value;
    /// If 1 then the "High Dynamic Range Rendering" option shows up in video options
    /// Corresponds to the VideoHDRI registry key
    /// In Ratatouille you need to comment out this field
    u32 high_dynamic_range_rendering_visible;
    /// The value forced upon the "Wait VSync" checkbox upon starting GameSetup.exe
    /// Does not correspond to any registry key
    /// In Ratatouille you need to comment out this field
    u32 wait_vsync_value_visible;
    /// If 1 then the "Wait VSync" option shows up in the video options
    /// In Ratatouille you need to comment out this field
    u32 wait_vsync;
    /// "SecuLauncher.exe"
    /// In Ratatouille you need to comment out this field
    char16 secu_launcher[256];
    /// Used with OleLoadPicture
    u8 bitmap[bitmap_size];
    /// Embedded .ico file
    /// Same Icon as the game
    u8 ico[ico_size];
    Controls controls[nb_player];
};

SetupCfg setup_cfg @ 0x0;

game_name

See also: Pixar Demos

available_languages

See also: trtext and Registry UserLanguageID

Bitmap

The 800x285 bitmap data stored in the bitmap variable is shown below. This bitmap is presumably the one stored in the file referenced by bitmap_path, "U:\Docs\Licences_Projets\ATV_OUTLAWED\ART\INTERFACE\INTERFACE_PAGES\Image installeur\800x285.bmp", this string references "ATV Outlawed," a potential candidate for the game's name.

FUEL Bitmap

Ico

The 64x64 largest icon in the ico variable embedded .ico file is shown below. This ico is presumably the one stored in the file referenced by game_ico_path.

FUEL Icon