annotate round 4

This commit is contained in:
Dethrace Labs 2025-06-17 08:24:42 +12:00
parent fffd355cc7
commit 8fe9366923
33 changed files with 119 additions and 0 deletions

View File

@ -107,6 +107,7 @@ int gEliminate_faces = 0;
br_vector3 gZero_v__car = { { 0 } }; // suffix added to avoid duplicate symbol br_vector3 gZero_v__car = { { 0 } }; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x514d74 // GLOBAL: CARM95 0x514d74
tU32 gSwitch_time = 0; tU32 gSwitch_time = 0;
// GLOBAL: CARM95 0x514d78
tSave_camera gSave_camera[2]; tSave_camera gSave_camera[2];
// GLOBAL: CARM95 0x514d90 // GLOBAL: CARM95 0x514d90
tU32 gLast_mechanics_time; tU32 gLast_mechanics_time;
@ -141,7 +142,9 @@ int gCar_simplification_level = 0;
int gNum_active_non_cars = 0; int gNum_active_non_cars = 0;
// GLOBAL: CARM95 0x514e30 // GLOBAL: CARM95 0x514e30
int gCamera_has_collided = 0; int gCamera_has_collided = 0;
// GLOBAL: CARM95 0x53a5b8
tFace_ref gFace_list__car[150]; // suffix added to avoid duplicate symbol tFace_ref gFace_list__car[150]; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x550680
tNon_car_spec* gActive_non_car_list[50]; tNon_car_spec* gActive_non_car_list[50];
// GLOBAL: CARM95 0x53a57c // GLOBAL: CARM95 0x53a57c
int gOver_shoot; int gOver_shoot;

View File

@ -542,7 +542,9 @@ int gAllow_car_flying;
int gEntering_message; int gEntering_message;
// GLOBAL: CARM95 0x51cf38 // GLOBAL: CARM95 0x51cf38
tU32 gPalette_fade_time; // was gRecover_timer tU32 gPalette_fade_time; // was gRecover_timer
// GLOBAL: CARM95 0x53d608
char* gAbuse_text[10]; char* gAbuse_text[10];
// GLOBAL: CARM95 0x53d648
char gString[84]; char gString[84];
// GLOBAL: CARM95 0x53d5f8 // GLOBAL: CARM95 0x53d5f8
int gToo_late; int gToo_late;

View File

@ -25,8 +25,11 @@ int gLast_credit_headup__displays; // suffix added to avoid duplicate symbol
int gLast_time_credit_headup; int gLast_time_credit_headup;
// GLOBAL: CARM95 0x521684 // GLOBAL: CARM95 0x521684
tDR_font* gCached_font; tDR_font* gCached_font;
// GLOBAL: CARM95 0x541598
br_font* gBR_fonts[4]; br_font* gBR_fonts[4];
// GLOBAL: CARM95 0x541160
tQueued_headup gQueued_headups[4]; tQueued_headup gQueued_headups[4];
// GLOBAL: CARM95 0x544e30
int gOld_times[10]; int gOld_times[10];
// GLOBAL: CARM95 0x541590 // GLOBAL: CARM95 0x541590
int gLast_fancy_headup; int gLast_fancy_headup;
@ -44,6 +47,7 @@ tU32 gLast_earn_time;
tU32 gLast_time_credit_amount; tU32 gLast_time_credit_amount;
// GLOBAL: CARM95 0x541150 // GLOBAL: CARM95 0x541150
int gLast_credit_amount; int gLast_credit_amount;
// GLOBAL: CARM95 0x53fdd8
tHeadup gHeadups[15]; tHeadup gHeadups[15];
// GLOBAL: CARM95 0x544e60 // GLOBAL: CARM95 0x544e60
int gLaps_headup; int gLaps_headup;
@ -57,6 +61,7 @@ int gTime_awarded_headup;
int gPed_kill_count_headup; int gPed_kill_count_headup;
// GLOBAL: CARM95 0x544eec // GLOBAL: CARM95 0x544eec
int gDim_amount; int gDim_amount;
// GLOBAL: CARM95 0x544e70
br_pixelmap* gHeadup_images[32]; // Modified by DethRace for the demo br_pixelmap* gHeadup_images[32]; // Modified by DethRace for the demo
// GLOBAL: CARM95 0x544e58 // GLOBAL: CARM95 0x544e58
int gNet_cash_headup; int gNet_cash_headup;

View File

@ -260,6 +260,7 @@ char* gMem_names[246] = {
}; };
// Is 118 in DOS executable, with last entry unused // Is 118 in DOS executable, with last entry unused
// GLOBAL: CARM95 0x537960
br_resource_class gStainless_classes[117]; br_resource_class gStainless_classes[117];
// IDA: void __cdecl SetNonFatalAllocationErrors() // IDA: void __cdecl SetNonFatalAllocationErrors()

View File

@ -31,6 +31,7 @@ int gPending_flic = -1;
int gPlay_from_disk; int gPlay_from_disk;
// GLOBAL: CARM95 0x514fbc // GLOBAL: CARM95 0x514fbc
int gTrans_enabled = 1; int gTrans_enabled = 1;
// GLOBAL: CARM95 0x514fc0
br_pixelmap* gPanel_buffer[2]; br_pixelmap* gPanel_buffer[2];
// GLOBAL: CARM95 0x514fc8 // GLOBAL: CARM95 0x514fc8
tU32 gSound_time; tU32 gSound_time;
@ -544,12 +545,19 @@ tFlic_bunch gFlic_bunch[9] = {
{ COUNT_OF(gFlic_bunch7), gFlic_bunch7 }, { COUNT_OF(gFlic_bunch7), gFlic_bunch7 },
{ COUNT_OF(gFlic_bunch8), gFlic_bunch8 }, { COUNT_OF(gFlic_bunch8), gFlic_bunch8 },
}; };
// GLOBAL: CARM95 0x518758
char gLast_flic_name[14]; char gLast_flic_name[14];
// GLOBAL: CARM95 0x53d060
tU32 gPanel_flic_data_length[2]; tU32 gPanel_flic_data_length[2];
// GLOBAL: CARM95 0x53d1b8
tU32 gLast_panel_frame_time[2]; tU32 gLast_panel_frame_time[2];
// GLOBAL: CARM95 0x53d0b8
tU8* gPanel_flic_data[2]; tU8* gPanel_flic_data[2];
// GLOBAL: CARM95 0x53d0c0
int gPanel_flic_top[2]; int gPanel_flic_top[2];
// GLOBAL: CARM95 0x53d0d8
tFlic_descriptor gPanel_flic[2]; tFlic_descriptor gPanel_flic[2];
// GLOBAL: CARM95 0x53d0b0
int gPanel_flic_left[2]; int gPanel_flic_left[2];
// GLOBAL: CARM95 0x53d0cc // GLOBAL: CARM95 0x53d0cc
int gPending_pending_flic = -1; int gPending_pending_flic = -1;
@ -557,6 +565,7 @@ int gPending_pending_flic = -1;
int gSound_ID; int gSound_ID;
// GLOBAL: CARM95 0x53d06c // GLOBAL: CARM95 0x53d06c
int gTranslation_count; int gTranslation_count;
// GLOBAL: CARM95 0x53d070
tDR_font* gTrans_fonts[15]; tDR_font* gTrans_fonts[15];
// GLOBAL: CARM95 0x53d0d0 // GLOBAL: CARM95 0x53d0d0
tTranslation_record* gTranslations; tTranslation_record* gTranslations;

View File

@ -56,6 +56,7 @@ FILE* gDiagnostic_file;
br_vector3 gDisabled_vector; br_vector3 gDisabled_vector;
// GLOBAL: CARM95 0x52136c // GLOBAL: CARM95 0x52136c
tU32 gI_am_cheating; tU32 gI_am_cheating;
// GLOBAL: CARM95 0x54b220
char gNet_player_name[32]; char gNet_player_name[32];
// GLOBAL: CARM95 0x545440 // GLOBAL: CARM95 0x545440
br_matrix34 gRearview_camera_to_world; br_matrix34 gRearview_camera_to_world;
@ -63,6 +64,7 @@ br_matrix34 gRearview_camera_to_world;
tSpecial_volume gDefault_default_water_spec_vol; tSpecial_volume gDefault_default_water_spec_vol;
// GLOBAL: CARM95 0x545400 // GLOBAL: CARM95 0x545400
br_matrix34 gCamera_to_world; br_matrix34 gCamera_to_world;
// GLOBAL: CARM95 0x5454d0
tRace_list_spec gRace_list[100]; tRace_list_spec gRace_list[100];
// GLOBAL: CARM95 0x546820 // GLOBAL: CARM95 0x546820
tPath_name gApplication_path; tPath_name gApplication_path;
@ -72,6 +74,7 @@ float gPinball_factor;
float gOpponent_speed_factor; float gOpponent_speed_factor;
// GLOBAL: CARM95 0x54b250 // GLOBAL: CARM95 0x54b250
float gCar_crush_min_fold; float gCar_crush_min_fold;
// GLOBAL: CARM95 0x549fc0
float gNet_recovery_cost[7]; float gNet_recovery_cost[7];
// GLOBAL: CARM95 0x545474 // GLOBAL: CARM95 0x545474
float gCar_crush_softness; float gCar_crush_softness;
@ -81,11 +84,13 @@ br_vector3* gOur_pos;
float gCar_crush_max_fold; float gCar_crush_max_fold;
// GLOBAL: CARM95 0x54a020 // GLOBAL: CARM95 0x54a020
tBrender_storage gNet_cars_storage_space; tBrender_storage gNet_cars_storage_space;
// GLOBAL: CARM95 0x545380
float gNet_softness[7]; float gNet_softness[7];
// GLOBAL: CARM95 0x54a094 // GLOBAL: CARM95 0x54a094
tS32 gJoystick_deadzone; tS32 gJoystick_deadzone;
// GLOBAL: CARM95 0x54b270 // GLOBAL: CARM95 0x54b270
float gCar_crush_limit_deviant; float gCar_crush_limit_deviant;
// GLOBAL: CARM95 0x5452e0
float gNet_offensive[7]; float gNet_offensive[7];
// GLOBAL: CARM95 0x545470 // GLOBAL: CARM95 0x545470
float gCar_crush_split_chance; float gCar_crush_split_chance;
@ -93,6 +98,7 @@ float gCar_crush_split_chance;
float gGravity_multiplier; float gGravity_multiplier;
// GLOBAL: CARM95 0x545364 // GLOBAL: CARM95 0x545364
float gCar_crush_wibble; float gCar_crush_wibble;
// GLOBAL: CARM95 0x549fe0
float gRepair_cost[3]; float gRepair_cost[3];
// GLOBAL: CARM95 0x5454c0 // GLOBAL: CARM95 0x5454c0
float gCop_speed_factor; float gCop_speed_factor;
@ -102,6 +108,7 @@ float gDefault_gravity;
tU32 gKeys_pressed; tU32 gKeys_pressed;
// GLOBAL: CARM95 0x54a054 // GLOBAL: CARM95 0x54a054
tSpecial_volume* gDefault_water_spec_vol; tSpecial_volume* gDefault_water_spec_vol;
// GLOBAL: CARM95 0x549f60
float gNet_repair_cost[7]; float gNet_repair_cost[7];
// GLOBAL: CARM95 0x54537c // GLOBAL: CARM95 0x54537c
br_font* gFont_7; br_font* gFont_7;
@ -121,6 +128,7 @@ tU32 gRace_finished;
tU32 gFrame_start_time; tU32 gFrame_start_time;
// GLOBAL: CARM95 0x546930 // GLOBAL: CARM95 0x546930
tProgram_state gProgram_state; tProgram_state gProgram_state;
// GLOBAL: CARM95 0x545370
tU32 gCredit_period_single[3]; tU32 gCredit_period_single[3];
// GLOBAL: CARM95 0x54b240 // GLOBAL: CARM95 0x54b240
tU32 gRace_start; tU32 gRace_start;
@ -130,6 +138,7 @@ tBrender_storage gTrack_storage_space;
tU32 gFrame_period; tU32 gFrame_period;
// GLOBAL: CARM95 0x5467ac // GLOBAL: CARM95 0x5467ac
tU32 gCredit_period; tU32 gCredit_period;
// GLOBAL: CARM95 0x545300
tU32 gCredit_period_network[7]; tU32 gCredit_period_network[7];
// GLOBAL: CARM95 0x5467c0 // GLOBAL: CARM95 0x5467c0
tBrender_storage gOur_car_storage_space; tBrender_storage gOur_car_storage_space;
@ -175,16 +184,21 @@ br_actor* gArrow_actor;
br_pixelmap* gIcons_pix_low_res; br_pixelmap* gIcons_pix_low_res;
// GLOBAL: CARM95 0x545324 // GLOBAL: CARM95 0x545324
br_pixelmap* gDepth_buffer; br_pixelmap* gDepth_buffer;
// GLOBAL: CARM95 0x54a080
int gInitial_net_credits[5]; int gInitial_net_credits[5];
// GLOBAL: CARM95 0x5467a0
float gCar_cred_value[3]; float gCar_cred_value[3];
// GLOBAL: CARM95 0x545430 // GLOBAL: CARM95 0x545430
int gNo_races_yet; int gNo_races_yet;
// GLOBAL: CARM95 0x5453a0
int gJump_start_fine[3]; int gJump_start_fine[3];
// GLOBAL: CARM95 0x5454bc // GLOBAL: CARM95 0x5454bc
int gReal_graf_data_index; int gReal_graf_data_index;
// GLOBAL: CARM95 0x549ff0
float gCar_time_value[3]; float gCar_time_value[3];
// GLOBAL: CARM95 0x54679c // GLOBAL: CARM95 0x54679c
int gTyping_slot; int gTyping_slot;
// GLOBAL: CARM95 0x54b260
int gCunning_stunt_bonus[3]; int gCunning_stunt_bonus[3];
// GLOBAL: CARM95 0x54b258 // GLOBAL: CARM95 0x54b258
int gKnobbled_frame_period; int gKnobbled_frame_period;
@ -192,7 +206,9 @@ int gKnobbled_frame_period;
br_actor* gNon_track_actor; br_actor* gNon_track_actor;
// GLOBAL: CARM95 0x546790 // GLOBAL: CARM95 0x546790
int gWait_for_it; int gWait_for_it;
// GLOBAL: CARM95 0x54a070
int gCheck_point_cash[3]; int gCheck_point_cash[3];
// GLOBAL: CARM95 0x54a010
int gPoints_per_second[3]; int gPoints_per_second[3];
// GLOBAL: CARM95 0x5453fc // GLOBAL: CARM95 0x5453fc
br_actor* gUniverse_actor; br_actor* gUniverse_actor;
@ -200,6 +216,7 @@ br_actor* gUniverse_actor;
br_actor* gTrack_actor; br_actor* gTrack_actor;
// GLOBAL: CARM95 0x5467f4 // GLOBAL: CARM95 0x5467f4
int gMap_mode; int gMap_mode;
// GLOBAL: CARM95 0x54b290
int gPed_time_value[3]; int gPed_time_value[3];
// GLOBAL: CARM95 0x545328 // GLOBAL: CARM95 0x545328
int gAbandon_game; int gAbandon_game;
@ -213,15 +230,19 @@ int gTotal_laps;
int gFree_repairs; int gFree_repairs;
// GLOBAL: CARM95 0x546924 // GLOBAL: CARM95 0x546924
int gFreeze_timer; int gFreeze_timer;
// GLOBAL: CARM95 0x549ea0
int gRoll_over_creds[3]; int gRoll_over_creds[3];
// GLOBAL: CARM95 0x545320 // GLOBAL: CARM95 0x545320
int gShow_peds_on_map; int gShow_peds_on_map;
// GLOBAL: CARM95 0x5453f4 // GLOBAL: CARM95 0x5453f4
int gOn_drugs; int gOn_drugs;
// GLOBAL: CARM95 0x54b280
int gWasted_time[3]; int gWasted_time[3];
// GLOBAL: CARM95 0x54a008 // GLOBAL: CARM95 0x54a008
int gCheckpoint; int gCheckpoint;
// GLOBAL: CARM95 0x546800
int gRoll_over_time[3]; int gRoll_over_time[3];
// GLOBAL: CARM95 0x545350
int gWasted_creds[3]; int gWasted_creds[3];
// GLOBAL: CARM95 0x54a004 // GLOBAL: CARM95 0x54a004
int gTimer; int gTimer;

View File

@ -3,6 +3,7 @@
// GLOBAL: CARM95 0x520038 // GLOBAL: CARM95 0x520038
br_scalar gYon_factor; br_scalar gYon_factor;
// GLOBAL: CARM95 0x530c80
br_material* gMaterial[2]; br_material* gMaterial[2];
int g16bit_palette_valid; int g16bit_palette_valid;
tException_list gExceptions; tException_list gExceptions;

View File

@ -16,10 +16,13 @@ int gCar_flying;
int gCamera_reset; int gCamera_reset;
// GLOBAL: CARM95 0x50d3a0 // GLOBAL: CARM95 0x50d3a0
tCar_spec* gCar_to_view = &gProgram_state.current_car; tCar_spec* gCar_to_view = &gProgram_state.current_car;
// GLOBAL: CARM95 0x551438
br_actor* gCamera_list[2]; br_actor* gCamera_list[2];
// GLOBAL: CARM95 0x551450
tCar_spec* gActive_car_list[25]; tCar_spec* gActive_car_list[25];
// GLOBAL: CARM95 0x5514cc // GLOBAL: CARM95 0x5514cc
int gNum_active_cars; int gNum_active_cars;
// GLOBAL: CARM95 0x5514c0
float gRecovery_cost[3]; float gRecovery_cost[3];
// GLOBAL: CARM95 0x5514d0 // GLOBAL: CARM95 0x5514d0
br_scalar gCamera_height; br_scalar gCamera_height;

View File

@ -1,6 +1,7 @@
#include "globvrme.h" #include "globvrme.h"
#include <stdlib.h> #include <stdlib.h>
// GLOBAL: CARM95 0x5508f0
tCar_spec* gViewable_car_list[50]; tCar_spec* gViewable_car_list[50];
// GLOBAL: CARM95 0x5509b8 // GLOBAL: CARM95 0x5509b8
int gNum_viewable_cars; int gNum_viewable_cars;

View File

@ -3,8 +3,10 @@
// GLOBAL: CARM95 0x50dd94 // GLOBAL: CARM95 0x50dd94
tNet_mode gNet_mode; tNet_mode gNet_mode;
// GLOBAL: CARM95 0x550fa0
tNet_game_player_info gNet_players[6]; tNet_game_player_info gNet_players[6];
br_matrix34 gRoot_to_camera; br_matrix34 gRoot_to_camera;
// GLOBAL: CARM95 0x550af0
tCar_detail_info gCar_details[60]; tCar_detail_info gCar_details[60];
// GLOBAL: CARM95 0x550ae0 // GLOBAL: CARM95 0x550ae0
int gThis_net_player_index; int gThis_net_player_index;

View File

@ -226,17 +226,27 @@ br_pixelmap* gCurrent_splash;
br_pixelmap* gCurrent_conversion_table; br_pixelmap* gCurrent_conversion_table;
// GLOBAL: CARM95 0x5209e0 // GLOBAL: CARM95 0x5209e0
int gMap_colours[4] = { 4, 0, 52, 132 }; int gMap_colours[4] = { 4, 0, 52, 132 };
// GLOBAL: CARM95 0x53e798
br_vector3 gShadow_points[8]; br_vector3 gShadow_points[8];
// GLOBAL: CARM95 0x53f940 // GLOBAL: CARM95 0x53f940
tConcussion gConcussion; tConcussion gConcussion;
// GLOBAL: CARM95 0x53f080
tClip_details gShadow_clip_planes[8]; tClip_details gShadow_clip_planes[8];
// GLOBAL: CARM95 0x53e5f8
br_actor* gLollipops[100]; br_actor* gLollipops[100];
// GLOBAL: CARM95 0x53f8d8
tWobble_spec gWobble_array[5]; tWobble_spec gWobble_array[5];
// GLOBAL: CARM95 0x53f0c0
tSaved_table gSaved_shade_tables[100]; tSaved_table gSaved_shade_tables[100];
// GLOBAL: CARM95 0x53e808
tCursor_giblet gCursor_giblets[45]; tCursor_giblet gCursor_giblets[45];
// GLOBAL: CARM95 0x53f3f0
tTransient_bm gTransient_bitmaps[50]; tTransient_bm gTransient_bitmaps[50];
// GLOBAL: CARM95 0x54ff30
float gCosine_array[64]; float gCosine_array[64];
// GLOBAL: CARM95 0x54b300
br_pixelmap* gCursors[8]; br_pixelmap* gCursors[8];
// GLOBAL: CARM95 0x550040
br_pixelmap* gCursor_giblet_images[18]; br_pixelmap* gCursor_giblet_images[18];
// GLOBAL: CARM95 0x53e790 // GLOBAL: CARM95 0x53e790
br_pixelmap* gEval_1; br_pixelmap* gEval_1;
@ -285,9 +295,11 @@ br_pixelmap* gCurrent_palette;
br_pixelmap* gRender_palette; br_pixelmap* gRender_palette;
// GLOBAL: CARM95 0x54ff08 // GLOBAL: CARM95 0x54ff08
float gCamera_to_horiz_angle; float gCamera_to_horiz_angle;
// GLOBAL: CARM95 0x54b2d0
int gColours[9]; int gColours[9];
// GLOBAL: CARM95 0x550088 // GLOBAL: CARM95 0x550088
br_pixelmap* gFlic_palette; br_pixelmap* gFlic_palette;
// GLOBAL: CARM95 0x54b330
tDR_font gFonts[21]; tDR_font gFonts[21];
// GLOBAL: CARM95 0x550094 // GLOBAL: CARM95 0x550094
char* gCurrent_palette_pixels; char* gCurrent_palette_pixels;

View File

@ -55,7 +55,9 @@ int gRender_indent;
tU32 gAustere_time; tU32 gAustere_time;
// GLOBAL: CARM95 0x54b2bc // GLOBAL: CARM95 0x54b2bc
int gInitial_rank; int gInitial_rank;
// GLOBAL: CARM95 0x54b2b0
int gCredits_per_rank[3]; int gCredits_per_rank[3];
// GLOBAL: CARM95 0x54b2c0
int gInitial_credits[3]; int gInitial_credits[3];
// GLOBAL: CARM95 0x54b2a0 // GLOBAL: CARM95 0x54b2a0
int gNet_mode_of_last_game; int gNet_mode_of_last_game;

View File

@ -31,9 +31,11 @@ tRolling_letter* gRolling_letters;
int gCurrent_cursor; int gCurrent_cursor;
// GLOBAL: CARM95 0x53a4c0 // GLOBAL: CARM95 0x53a4c0
int gCurrent_position; int gCurrent_position;
// GLOBAL: CARM95 0x53a200
int gLetter_x_coords[15]; int gLetter_x_coords[15];
// GLOBAL: CARM95 0x53a240 // GLOBAL: CARM95 0x53a240
int gVisible_length; int gVisible_length;
// GLOBAL: CARM95 0x53a1b8
int gLetter_y_coords[15]; int gLetter_y_coords[15];
int gThe_key; int gThe_key;
// GLOBAL: CARM95 0x53a444 // GLOBAL: CARM95 0x53a444
@ -44,7 +46,9 @@ int gThe_length;
tU32 gLast_roll; tU32 gLast_roll;
// GLOBAL: CARM95 0x53a244 // GLOBAL: CARM95 0x53a244
int gLast_key_down; int gLast_key_down;
// GLOBAL: CARM95 0x5507e0
int gKey_mapping[67]; int gKey_mapping[67];
// GLOBAL: CARM95 0x53a450
char gCurrent_typing[110]; char gCurrent_typing[110];
#define NBR_ROLLING_LETTERS 500 #define NBR_ROLLING_LETTERS 500

View File

@ -12,6 +12,7 @@
#include "sound.h" #include "sound.h"
#include <stdlib.h> #include <stdlib.h>
// GLOBAL: CARM95 0x53a4d8
int gDisabled_choices[10]; int gDisabled_choices[10];
// GLOBAL: CARM95 0x53a500 // GLOBAL: CARM95 0x53a500
int gCurrent_mode; int gCurrent_mode;

View File

@ -127,7 +127,9 @@ int gAllow_open_to_fail = 1;
int gDecode_thing = '@'; int gDecode_thing = '@';
// GLOBAL: CARM95 0x50a5d0 // GLOBAL: CARM95 0x50a5d0
char gDecode_string[] = { 0x9B, 0x52, 0x93, 0x9F, 0x52, 0x98, 0x9B, 0x96, 0x96, 0x9E, 0x9B, 0xA0, 0x99, 0x0 }; char gDecode_string[] = { 0x9B, 0x52, 0x93, 0x9F, 0x52, 0x98, 0x9B, 0x96, 0x96, 0x9E, 0x9B, 0xA0, 0x99, 0x0 };
// GLOBAL: CARM95 0x531f00
int gFunk_groove_flags[30]; int gFunk_groove_flags[30];
// GLOBAL: CARM95 0x531f80
char gDef_def_water_screen_name[32]; char gDef_def_water_screen_name[32];
// GLOBAL: CARM95 0x531dfc // GLOBAL: CARM95 0x531dfc
br_material* gDestn_screen_mat; br_material* gDestn_screen_mat;
@ -141,6 +143,7 @@ int gGroove_funk_offset;
int gDemo_armour; int gDemo_armour;
// GLOBAL: CARM95 0x551db0 // GLOBAL: CARM95 0x551db0
int gDemo_rank; int gDemo_rank;
// GLOBAL: CARM95 0x551d90
int gDemo_opponents[5]; int gDemo_opponents[5];
// GLOBAL: CARM95 0x551da4 // GLOBAL: CARM95 0x551da4
int gDemo_power; int gDemo_power;

View File

@ -22,6 +22,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
// GLOBAL: CARM95 0x536278
tSave_game* gSaved_games[8]; tSave_game* gSaved_games[8];
// GLOBAL: CARM95 0x536270 // GLOBAL: CARM95 0x536270
int gStarted_typing; int gStarted_typing;

View File

@ -69,6 +69,7 @@ int gWasted_flash_state;
int gLast_time_headup; int gLast_time_headup;
// GLOBAL: CARM95 0x53a1a0 // GLOBAL: CARM95 0x53a1a0
int gTime_bonus_headup; int gTime_bonus_headup;
// GLOBAL: CARM95 0x53a0f0
int gQueued_wasted_massages[5]; int gQueued_wasted_massages[5];
// GLOBAL: CARM95 0x53a124 // GLOBAL: CARM95 0x53a124
tU32 gTime_bonus_start; tU32 gTime_bonus_start;

View File

@ -57,7 +57,9 @@ int gRace_only_flags[33] = {
}; };
// GLOBAL: CARM95 0x50d2cc // GLOBAL: CARM95 0x50d2cc
int gJoin_list_mode; int gJoin_list_mode;
// GLOBAL: CARM95 0x535dd0
tNet_game_player_info gNew_net_players[6]; tNet_game_player_info gNew_net_players[6];
// GLOBAL: CARM95 0x534c90
tGuaranteed_message gGuarantee_list[100]; // DOS debug symbols has this as [150] tGuaranteed_message gGuarantee_list[100]; // DOS debug symbols has this as [150]
// GLOBAL: CARM95 0x534c70 // GLOBAL: CARM95 0x534c70
tMid_message* gMid_messages; tMid_message* gMid_messages;

View File

@ -51,10 +51,13 @@ char _name1[] = "xxxxxxxx.TXT"; // keep compiler happy
char _name2[] = "yyyyyyyy.TXT"; // keep compiler happy char _name2[] = "yyyyyyyy.TXT"; // keep compiler happy
// GLOBAL: CARM95 0x51ea80 // GLOBAL: CARM95 0x51ea80
char* gBasic_car_names[2] = { _name1, _name2 }; char* gBasic_car_names[2] = { _name1, _name2 };
// GLOBAL: CARM95 0x5500c0
tNet_game_options gNet_settings[8]; tNet_game_options gNet_settings[8];
// GLOBAL: CARM95 0x53e5c0
tJoinable_game gGames_to_join[6]; tJoinable_game gGames_to_join[6];
// GLOBAL: CARM95 0x53e5b8 // GLOBAL: CARM95 0x53e5b8
tNet_game_options* gOptions; tNet_game_options* gOptions;
// GLOBAL: CARM95 0x5500a0
int gNet_target[7]; int gNet_target[7];
// GLOBAL: CARM95 0x53e5f0 // GLOBAL: CARM95 0x53e5f0
int gLast_graph_sel__newgame; // suffix added to avoid duplicate symbol int gLast_graph_sel__newgame; // suffix added to avoid duplicate symbol

View File

@ -17,7 +17,9 @@ char* gOil_pixie_names[1] = { "OIL.PIX" };
int gNext_oil_pixie = 0; int gNext_oil_pixie = 0;
br_scalar gZ_buffer_diff; br_scalar gZ_buffer_diff;
br_scalar gMin_z_diff; br_scalar gMin_z_diff;
// GLOBAL: CARM95 0x551dc0
br_pixelmap* gOil_pixies[1]; br_pixelmap* gOil_pixies[1];
// GLOBAL: CARM95 0x551dd0
tOil_spill_info gOily_spills[15]; tOil_spill_info gOily_spills[15];
// IDA: void __cdecl InitOilSpills() // IDA: void __cdecl InitOilSpills()

View File

@ -69,6 +69,7 @@ int gOppo_paths_shown;
int gMade_path_filename; int gMade_path_filename;
// GLOBAL: CARM95 0x507130 // GLOBAL: CARM95 0x507130
int gBIG_APC_index = -1; int gBIG_APC_index = -1;
// GLOBAL: CARM95 0x507138
char* gPath_section_type_names[3]; char* gPath_section_type_names[3];
// GLOBAL: CARM95 0x507144 // GLOBAL: CARM95 0x507144
int gMin_bangness = 100; int gMin_bangness = 100;
@ -90,6 +91,7 @@ int gSFS_total_cycles;
int gSFS_max_cycles; int gSFS_max_cycles;
// GLOBAL: CARM95 0x50716c // GLOBAL: CARM95 0x50716c
float gOpponent_nastyness_frigger = 1.f; float gOpponent_nastyness_frigger = 1.f;
// GLOBAL: CARM95 0x530ca8
char gOppo_path_filename[256]; char gOppo_path_filename[256];
// GLOBAL: CARM95 0x530df0 // GLOBAL: CARM95 0x530df0
br_scalar gIn_view_distance; br_scalar gIn_view_distance;

View File

@ -48,11 +48,13 @@ tRadio_bastards gRadio_bastards__options[13] = {
int gKey_count; int gKey_count;
// GLOBAL: CARM95 0x53d1d0 // GLOBAL: CARM95 0x53d1d0
int gLast_graph_sel__options; // suffix added to avoid duplicate symbol int gLast_graph_sel__options; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x53d2f0
char* gKey_names[125]; char* gKey_names[125];
// GLOBAL: CARM95 0x53d4e4 // GLOBAL: CARM95 0x53d4e4
int gPending_entry; int gPending_entry;
// GLOBAL: CARM95 0x53d2ec // GLOBAL: CARM95 0x53d2ec
tInterface_spec* gThe_interface_spec__options; // suffix added to avoid duplicate symbol tInterface_spec* gThe_interface_spec__options; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x53d1e0
int gOrig_key_mapping[67]; int gOrig_key_mapping[67];
// GLOBAL: CARM95 0x53d1d8 // GLOBAL: CARM95 0x53d1d8
br_pixelmap* gDials_pix; br_pixelmap* gDials_pix;

View File

@ -71,7 +71,9 @@ char* gInstruc_commands[10] = {
}; };
// GLOBAL: CARM95 0x511798 // GLOBAL: CARM95 0x511798
float gMin_ped_gib_speeds[4] = { 10000.f, .005f, .002f, .001f }; float gMin_ped_gib_speeds[4] = { 10000.f, .005f, .002f, .001f };
// GLOBAL: CARM95 0x5117a8
float gPed_gib_distrib[4] = { 0.f, 0.33f, 0.34f, 0.33f }; float gPed_gib_distrib[4] = { 0.f, 0.33f, 0.34f, 0.33f };
// GLOBAL: CARM95 0x5117b8
float gPed_gib_speeds[4] = { 0.f, 1.f, 1.f, 1.f }; float gPed_gib_speeds[4] = { 0.f, 1.f, 1.f, 1.f };
// GLOBAL: CARM95 0x5117c8 // GLOBAL: CARM95 0x5117c8
int gPed_size_counts[4] = { 3, 5, 5, 5 }; int gPed_size_counts[4] = { 3, 5, 5, 5 };
@ -89,6 +91,7 @@ char* gPed_geb_names[4][5] = {
{ "GHAND.PIX", "GCHUNK02.PIX", "GEYEBALL.PIX", "GCOLON.PIX", "GCHUNK01.PIX" }, { "GHAND.PIX", "GCHUNK02.PIX", "GEYEBALL.PIX", "GCOLON.PIX", "GCHUNK01.PIX" },
{ "GCHUNK04.PIX", "GSPLAT1.PIX", "GCHUNK03.PIX", "GSPLAT2.PIX", "GSPLATOT.PIX" } { "GCHUNK04.PIX", "GSPLAT1.PIX", "GCHUNK03.PIX", "GSPLAT2.PIX", "GSPLATOT.PIX" }
}; };
// GLOBAL: CARM95 0x511878
int gPed_gib_maxes[4][5] = { int gPed_gib_maxes[4][5] = {
{ 1, 1, 1, 0, 0 }, { 1, 1, 1, 0, 0 },
{ 3, 3, 3, 3, 3 }, { 3, 3, 3, 3, 3 },
@ -113,10 +116,15 @@ int gPedestrians_on = 0;
int gVesuvian_corpses = 0; int gVesuvian_corpses = 0;
// GLOBAL: CARM95 0x5118e4 // GLOBAL: CARM95 0x5118e4
br_material* gPed_material = NULL; br_material* gPed_material = NULL;
// GLOBAL: CARM95 0x5378c8
int gPed_gib_counts[4][5]; int gPed_gib_counts[4][5];
// GLOBAL: CARM95 0x536c48
tPedestrian_instruction gPed_instrucs[100]; tPedestrian_instruction gPed_instrucs[100];
// GLOBAL: CARM95 0x537418
tPed_gib gPed_gibs[30]; tPed_gib gPed_gibs[30];
// GLOBAL: CARM95 0x536ab0
tPed_gib_materials gPed_gib_materials[4]; tPed_gib_materials gPed_gib_materials[4];
// GLOBAL: CARM95 0x536b58
tProximity_ray gProximity_rays[20]; tProximity_ray gProximity_rays[20];
int gPed_colliding; int gPed_colliding;
// GLOBAL: CARM95 0x550a90 // GLOBAL: CARM95 0x550a90

View File

@ -78,6 +78,7 @@ tPipe_chunk* gMr_chunky;
tCar_spec* gCar_ptr; tCar_spec* gCar_ptr;
// GLOBAL: CARM95 0x532068 // GLOBAL: CARM95 0x532068
br_vector3 gZero_vector; br_vector3 gZero_vector;
// GLOBAL: CARM95 0x532050
tPipe_chunk_type gReentrancy_array[5]; tPipe_chunk_type gReentrancy_array[5];
// GLOBAL: CARM95 0x532000 // GLOBAL: CARM95 0x532000
tU32 gLast_time; tU32 gLast_time;

View File

@ -142,7 +142,9 @@ char* gFizzle_names[3] = { "CIRCLES.PIX", "SQUARES.PIX", "DIAMONDS.PIX" };
br_vector3 gZero_v__powerup; // suffix added to avoid duplicate symbol br_vector3 gZero_v__powerup; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x50bc58 // GLOBAL: CARM95 0x50bc58
int gPed_harvest_sounds[4] = { 4010, 4012, 4030, 4032 }; int gPed_harvest_sounds[4] = { 4010, 4012, 4030, 4032 };
// GLOBAL: CARM95 0x5320a0
tHeadup_icon gIcon_list[20]; tHeadup_icon gIcon_list[20];
// GLOBAL: CARM95 0x5321f0
br_pixelmap* gFizzle_in[3]; br_pixelmap* gFizzle_in[3];
// GLOBAL: CARM95 0x5321fc // GLOBAL: CARM95 0x5321fc
int gNumber_of_powerups; int gNumber_of_powerups;

View File

@ -61,6 +61,7 @@ tGrid_draw gDraw_grid_status;
tNet_sequence_type gNet_race_sequence__racestrt; // suffix added to avoid duplicate symbol tNet_sequence_type gNet_race_sequence__racestrt; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x53642c // GLOBAL: CARM95 0x53642c
br_pixelmap* gTaken_image; br_pixelmap* gTaken_image;
// GLOBAL: CARM95 0x536370
int gGrid_number_x_coords[31]; int gGrid_number_x_coords[31];
// GLOBAL: CARM95 0x5363f4 // GLOBAL: CARM95 0x5363f4
int gGrid_transition_stage; int gGrid_transition_stage;

View File

@ -24,9 +24,11 @@
#include "utility.h" #include "utility.h"
#include <stdlib.h> #include <stdlib.h>
// GLOBAL: CARM95 0x530e38
int gPlayer_lookup[6]; int gPlayer_lookup[6];
// GLOBAL: CARM95 0x530e58 // GLOBAL: CARM95 0x530e58
tMouse_area gOld_back_button; tMouse_area gOld_back_button;
// GLOBAL: CARM95 0x530ec0
tWreck_info gWreck_array[30]; tWreck_info gWreck_array[30];
// GLOBAL: CARM95 0x530e94 // GLOBAL: CARM95 0x530e94
br_actor* gWreck_root; br_actor* gWreck_root;

View File

@ -52,6 +52,7 @@ int gProgress_line_left[2] = { 70, 141 };
int gProgress_line_right[2] = { 279, 558 }; int gProgress_line_right[2] = { 279, 558 };
// GLOBAL: CARM95 0x50a1f8 // GLOBAL: CARM95 0x50a1f8
int gProgress_line_top[2] = { 178, 429 }; int gProgress_line_top[2] = { 178, 429 };
// GLOBAL: CARM95 0x531dd0
br_pixelmap* gReplay_pixies[10]; br_pixelmap* gReplay_pixies[10];
// GLOBAL: CARM95 0x531db8 // GLOBAL: CARM95 0x531db8
int gKey_down; int gKey_down;

View File

@ -16,6 +16,7 @@
char* gBoring_material_names[2] = { "OILSMEAR.MAT", "ROBSMEAR.MAT" }; char* gBoring_material_names[2] = { "OILSMEAR.MAT", "ROBSMEAR.MAT" };
// GLOBAL: CARM95 0x507038 // GLOBAL: CARM95 0x507038
char* gMaterial_names[2] = { "OILSMEAR.MAT", "GIBSMEAR.MAT" }; char* gMaterial_names[2] = { "OILSMEAR.MAT", "GIBSMEAR.MAT" };
// GLOBAL: CARM95 0x530190
tSkid gSkids[100]; tSkid gSkids[100];
// IDA: void __usercall StretchMark(tSkid *pMark@<EAX>, br_vector3 *pFrom@<EDX>, br_vector3 *pTo@<EBX>, br_scalar pTexture_start) // IDA: void __usercall StretchMark(tSkid *pMark@<EAX>, br_vector3 *pFrom@<EDX>, br_vector3 *pTo@<EBX>, br_scalar pTexture_start)

View File

@ -57,6 +57,7 @@ tS3_outlet_ptr gPedestrians_outlet;
// GLOBAL: CARM95 0x5149a8 // GLOBAL: CARM95 0x5149a8
tS3_outlet_ptr gMusic_outlet; tS3_outlet_ptr gMusic_outlet;
tS3_sound_id gMIDI_id; tS3_sound_id gMIDI_id;
// GLOBAL: CARM95 0x550a20
tS3_outlet_ptr gIndexed_outlets[6]; tS3_outlet_ptr gIndexed_outlets[6];
// GLOBAL: CARM95 0x538284 // GLOBAL: CARM95 0x538284
tU32 gLast_sound_service; tU32 gLast_sound_service;

View File

@ -31,6 +31,7 @@ int gSpark_flags;
int gNext_shrapnel; int gNext_shrapnel;
// GLOBAL: CARM95 0x5149f4 // GLOBAL: CARM95 0x5149f4
int gShrapnel_flags; int gShrapnel_flags;
// GLOBAL: CARM95 0x5149f8
br_model* gShrapnel_model[2]; br_model* gShrapnel_model[2];
// GLOBAL: CARM95 0x514a00 // GLOBAL: CARM95 0x514a00
int gSmoke_flags; int gSmoke_flags;
@ -57,17 +58,24 @@ int gIt_type;
br_pixelmap* gIt_shade_table; br_pixelmap* gIt_shade_table;
// GLOBAL: CARM95 0x514a30 // GLOBAL: CARM95 0x514a30
br_pixelmap** gDust_table = &gShade_list[8]; br_pixelmap** gDust_table = &gShade_list[8];
// GLOBAL: CARM95 0x538618
br_pixelmap* gFlame_map[20]; br_pixelmap* gFlame_map[20];
tBRender_smoke* gBR_smoke_pointers[30]; tBRender_smoke* gBR_smoke_pointers[30];
// GLOBAL: CARM95 0x538298
tSplash gSplash[32]; tSplash gSplash[32];
// GLOBAL: CARM95 0x538b00
br_material* gSplash_material[20]; br_material* gSplash_material[20];
tBRender_smoke gBR_smoke_structs[30]; tBRender_smoke gBR_smoke_structs[30];
// GLOBAL: CARM95 0x538de8
tSmoke_column gSmoke_column[25]; tSmoke_column gSmoke_column[25];
// GLOBAL: CARM95 0x538668 // GLOBAL: CARM95 0x538668
br_matrix4 gCameraToScreen; br_matrix4 gCameraToScreen;
// GLOBAL: CARM95 0x5398d8
tSpark gSparks[32]; tSpark gSparks[32];
// GLOBAL: CARM95 0x5509c0
br_pixelmap* gShade_list[16]; br_pixelmap* gShade_list[16];
int gN_BR_smoke_structs; int gN_BR_smoke_structs;
// GLOBAL: CARM95 0x5386b0
tSmoke gSmoke[25]; tSmoke gSmoke[25];
// GLOBAL: CARM95 0x53a0e0 // GLOBAL: CARM95 0x53a0e0
tU32 gSplash_flags; tU32 gSplash_flags;
@ -85,6 +93,7 @@ int gDust_rotate;
br_camera* gSpark_cam; br_camera* gSpark_cam;
// GLOBAL: CARM95 0x538288 // GLOBAL: CARM95 0x538288
br_material* gBlack_material; br_material* gBlack_material;
// GLOBAL: CARM95 0x538b50
tShrapnel gShrapnel[15]; tShrapnel gShrapnel[15];
// gSmoke_column has 25 elements but all the code just checks the first 5 elements // gSmoke_column has 25 elements but all the code just checks the first 5 elements

View File

@ -99,7 +99,9 @@ float gFloat_sine_table[91] = {
1.0f, 1.0f,
}; };
br_fixed_ls gFixed_sine_table[91]; br_fixed_ls gFixed_sine_table[91];
// GLOBAL: CARM95 0x53e4b8
br_matrix23 mat23tmp1; br_matrix23 mat23tmp1;
// GLOBAL: CARM95 0x53e4d0
br_matrix23 mat23tmp2; br_matrix23 mat23tmp2;
// GLOBAL: CARM95 0x53e4e8 // GLOBAL: CARM95 0x53e4e8
br_matrix34 mattmp1__trig; // suffix added to avoid duplicate symbol br_matrix34 mattmp1__trig; // suffix added to avoid duplicate symbol
@ -549,6 +551,7 @@ void DRMatrix34PostRotate(br_matrix34* mat, br_angle r, br_vector3* axis) {
} }
// IDA: void __usercall DRMatrix23Rotate(br_matrix23 *mat@<EAX>, br_angle rz@<EDX>) // IDA: void __usercall DRMatrix23Rotate(br_matrix23 *mat@<EAX>, br_angle rz@<EDX>)
// FUNCTION: CARM95 0x4aae1e
void DRMatrix23Rotate(br_matrix23* mat, br_angle rz) { void DRMatrix23Rotate(br_matrix23* mat, br_angle rz) {
br_scalar s; br_scalar s;
br_scalar c; br_scalar c;

View File

@ -82,16 +82,23 @@ int gRendering_accessories;
int gNumber_of_actors; int gNumber_of_actors;
// GLOBAL: CARM95 0x50c7e4 // GLOBAL: CARM95 0x50c7e4
int gNumber_of_lights; int gNumber_of_lights;
// GLOBAL: CARM95 0x5514e0
br_actor* gActor_array[500]; br_actor* gActor_array[500];
// GLOBAL: CARM95 0x532af0
float* gGroove_funk_bindings[960]; float* gGroove_funk_bindings[960];
// GLOBAL: CARM95 0x532220
br_actor* gDelete_list[500]; br_actor* gDelete_list[500];
// GLOBAL: CARM95 0x551cb0
br_actor* gLight_array[50]; br_actor* gLight_array[50];
// GLOBAL: CARM95 0x533b18
br_model* gAdditional_models[1000]; br_model* gAdditional_models[1000];
// GLOBAL: CARM95 0x534ac0
br_actor* gSpec_vol_actors[100]; br_actor* gSpec_vol_actors[100];
// GLOBAL: CARM95 0x533a00 // GLOBAL: CARM95 0x533a00
tPath_name gAdditional_actor_path; tPath_name gAdditional_actor_path;
// GLOBAL: CARM95 0x5329f0 // GLOBAL: CARM95 0x5329f0
tPath_name gAdditional_model_path; tPath_name gAdditional_model_path;
// GLOBAL: CARM95 0x533b00
tU32 gPrevious_groove_times[2]; tU32 gPrevious_groove_times[2];
// GLOBAL: CARM95 0x551d78 // GLOBAL: CARM95 0x551d78
int gRace_file_version; int gRace_file_version;