Skip to content

Instantly share code, notes, and snippets.

@twist84
Last active February 5, 2019 18:53
Show Gist options
  • Save twist84/23531262df8c1817daae26b06c33063d to your computer and use it in GitHub Desktop.
Save twist84/23531262df8c1817daae26b06c33063d to your computer and use it in GitHub Desktop.
ms23 crash_reporter.exe tls offsets, unfinished and unordered
0x8 simulation_gamestate_entities
0xC main_gamestate_timing_data
0x10 main_render_timing_data
0x3C game_globals
0x44 players_globals
0x48 game_engine_globals
0x58 breakable_surface_set_broken_event
0x60 director_globals
0x64 director_camera_scripted
0x78 hs_thread_tracking_data
0x7C hs_thread_non_deterministic_data
0x70 hs_global_data
0x74 hs_distributed_global_data
0x6C hs_runtime_globals
0xA4 event_data
0xA8 effect_location_data
0xB0 effect_lightprobe_slot_data
0xB8 effect_lightprobe_data
0xAC effect_counts
0xB4 effect_message_queue
0xBC havok_game_state
0xC8 player_control_globals_deterministic
0xD0 game_sound_globals
0xD4 game_sound_scripted_impulses
0xE4 observer_gamestate_globals
0xF4 game_allegiance_globals
0x100 atmosphere_fog_globals
0x310 cinematic_new_globals
0x318 cinematic_light_globals
0x31C sound_class_data
0x354 decal_message_queue
0x348 decal_system
0x350 decal_array
0x360 impact_array_data
0x358 impact_globals
0x368 object_list_data
0x36C camera_script_globals
0x380 contrail_location
0x37C contrail
0x384 contrail_profile
0x388 particle_location_data_array
0x390 light_volume_location
0x394 light_volume
0x3A0 beam_location
0x39C beam
0x40C ai_reference_frame_data
0x408 actor_firing_position_hash_set
0x418 vocalization_record
0x428 tasks_data
0x430 prop_ref_data
0x438 tracking_data
0x448 squad_group_data
0x450 swarm_spawners
0x454 spawner_globals
0x468 hue_saturation_control
0x478 water_interaction_event
0x4D4 user_widget1
0x4D8 user_widget2
0x4DC user_widget3
0x4C8 chud_persistent_user_data
0x4CC chud_persistent_global_data
0x4E4 first_person_weapon_orientations
0x4F4 object_globals
0x4F0 object_header_data
0x4FC object_name_list
0x51C object_render_data
0x50C collideable_first_data
0x504 collideable_data_reference
0x508 collideable_cluster_reference
0x518 noncollideable_first_data
0x510 noncollideable_data_reference
0x514 noncollideable_cluster_reference
0x548 light_data_reference
0x54C light_cluster_reference
0x540 light_data
0x554 light_render_data
0x544 lights_game_globals
0x55C recycling_volumes
// only difference between eldorado game_globals and crash_reporter game_globals
// is s_initial_participant_data is 0x580 less meaning player_properties shrunk
struct s_game_options
{
int32_t maptype;
int16_t game_simulation;
int16_t frame_limit;
uint64_t game_instance;
int32_t random_seed;
int32_t language;
int32_t determinism_version;
int32_t campaign_id;
int32_t map_id;
char scenario_path[260];
int16_t zoneset_index;
int8_t byte12A;
int8_t byte12B;
int8_t byte12C;
int8_t byte12D;
bool game_is_playtest;
int8_t byte12F;
int16_t game_playback;
int8_t byte132;
int8_t byte133;
int32_t dword134;
int32_t dword138;
int16_t campaign_difficulty;
int16_t campaign_insertion_point;
int16_t campaign_metagame_scoring;
int8_t campaign_metagame_enabled;
int8_t survival_mode_enabled;
int8_t byte144;
int8_t byte145;
int8_t player_armaments[0x78];
int16_t byte10A;
int8_t game_progression[0x80];
int32_t campaign_skulls_primary;
int32_t campaign_skulls_secondary;
int8_t byte248[0x78];
int32_t byte2A4;
int8_t byte2A8;
int8_t byte249[3];
int8_t byte2AC;
int8_t byte2AD[7];
int8_t byte2B4[92];
uint8_t game_variant[0x264];
uint8_t map_variant[0xE090];
uint8_t machine_array[0x128];
uint8_t initial_participants_array[16][5608];
};
struct game_globals
{
uint8_t unknown0;
uint8_t unknown1;
uint8_t unknown2;
uint8_t unknown3;
uint32_t bsp_is_loaded; // not a bool
uint32_t active_designer_zone_mask;
uint32_t active_cinematic_zone_mask;
s_game_options game_options;
uint32_t mapname_string_id;
uint8_t game_progression[128];
uint8_t unknown24BDC;
uint8_t unknown24BDD;
uint8_t unknown24BDE;
uint8_t unknown24BDF;
uint32_t unknown24BE0;
uint8_t unknown24BE4;
uint8_t unknown24BE5;
uint8_t unknown24BE6;
uint8_t unknown24BE7;
uint32_t EndMatchWaitTime;
uint32_t PrimarySkulls;
uint32_t SecondarySkulls;
uint8_t unknown24BF4[4];
uint8_t unknown24BF8[3][16][32];
bool cinematic_is_playing;
uint8_t unknown251F9[15];
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment