annotate round 2

This commit is contained in:
Dethrace Labs 2025-06-17 08:04:22 +12:00
parent d8449b4581
commit 47b007f6d9
24 changed files with 78 additions and 0 deletions

View File

@ -73,6 +73,7 @@ int gMetal_crunch_sound_id__car[5] = {
5003,
5004,
};
// GLOBAL: CARM95 0x514d20
int gMetal_scrape_sound_id__car[3] = {
// suffix added to avoid duplicate symbol
5010,
@ -95,7 +96,9 @@ tU32 gQuite_wild_end = 0;
tU32 gOn_me_wheels_start = 0;
// GLOBAL: CARM95 0x514d48
int gWoz_upside_down_at_all = 0;
// GLOBAL: CARM95 0x514d50
tS3_sound_tag gSkid_tag[2] = { 0, 0 };
// GLOBAL: CARM95 0x514d58
tCar_spec* gLast_car_to_skid[2] = { NULL, NULL };
// GLOBAL: CARM95 0x514d60
int gEliminate_faces = 0;
@ -114,8 +117,11 @@ int gNet_player_to_view_index = -1;
int gDouble_pling_water = 0;
// GLOBAL: CARM95 0x514da0
int gStop_opponents_moving = 0;
// GLOBAL: CARM95 0x514da8
float gDefensive_powerup_factor[6] = { 1.0f, 0.825f, 0.65f, 0.475f, 0.3f, 0.01f };
// GLOBAL: CARM95 0x514dc0
float gOffensive_powerup_factor[6] = { 1.0f, 1.5f, 2.0f, 3.0f, 5.0f, 10.0f };
// GLOBAL: CARM95 0x514dd8
float gEngine_powerup_factor[6] = { 1.3f, 1.9f, 2.5f, 3.2f, 4.0f, 10.0f };
// GLOBAL: CARM95 0x514df0
br_angle gPanning_camera_angle;
@ -123,6 +129,7 @@ br_angle gPanning_camera_angle;
br_scalar gPanning_camera_height;
// GLOBAL: CARM95 0x514cec
int gFace_count;
// GLOBAL: CARM95 0x514e00
float gCar_simplification_factor[2][5] = {
{ 10.0f, 3.0f, 1.5f, 0.75f, 0.0f },
{ 10.0f, 5.0f, 2.5f, 1.5f, 0.0f }

View File

@ -37,6 +37,7 @@
#include "world.h"
#include <stdlib.h>
// GLOBAL: CARM95 0x51b1c0
tToggle_element gToggle_array[] = {
{ KEYMAP_MIRROR, -2, 1, 1, 0, ToggleMirror },
{ KEYMAP_MAP, -2, 1, 1, 0, ToggleMap },
@ -104,6 +105,7 @@ char* gEdit_mode_names[10] = {
};
// order is: { None, CTRL, ALT, CTRL+ALT, SHIFT, CTRL+SHIFT, ALT+SHIFT, CTRL+ALT+SHIFT }
// GLOBAL: CARM95 0x51b600
tEdit_func* gEdit_funcs[10][18][8] = {
{ // CHEAT EDIT MODE
@ -488,6 +490,7 @@ tEdit_func* gEdit_funcs[10][18][8] = {
}
};
// GLOBAL: CARM95 0x51cc80
tCheat gKev_keys[44] = {
{ .code = 0xa11ee75d, .code2 = 0xf805eddd, .action_proc = SetFlag, .num = 0x0a11ee75d },
{ .code = 0x564e78b9, .code2 = 0x99155115, .action_proc = SetFlag, .num = 0x0564e78b9 },

View File

@ -25,11 +25,15 @@
#include "world.h"
#include <stdlib.h>
// GLOBAL: CARM95 0x521370
float gWobble_spam_y[8] = { 0.0f, -0.15f, 0.4f, 0.15f, -0.4f, 0.25f, 0.0f, -0.25f };
// GLOBAL: CARM95 0x521390
float gWobble_spam_z[8] = { 0.4f, -0.25f, 0.0f, 0.25f, 0.0f, 0.15f, -0.4f, -0.15f };
// GLOBAL: CARM95 0x5213b0
br_scalar gWheel_circ_to_width = 0.16f;
// GLOBAL: CARM95 0x5213b8
tU8 gSmoke_damage_step[12] = { 20u, 20u, 0u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 10u };
// GLOBAL: CARM95 0x5213c4
int gSteal_ranks[5] = { 89, 72, 55, 38, 21 };
#define BIGAPC_OPPONENT_INDEX 4

View File

@ -13,6 +13,7 @@
#include <stdlib.h>
#include <string.h>
// GLOBAL: CARM95 0x5120a0
char* gError_messages[126] = {
"Unable to support this screen depth setting",
"Couldn't allocate off-screen buffer",

View File

@ -34,6 +34,7 @@ int gTrans_enabled = 1;
br_pixelmap* gPanel_buffer[2];
// GLOBAL: CARM95 0x514fc8
tU32 gSound_time;
// GLOBAL: CARM95 0x514fd0
tFlic_spec gMain_flic_list[372] = {
{ "MAINSTIL.FLI", 1, 0, 0, 0, 0, 25, NULL, 0u }, // only used by the demo (set to "xxxxxxxx.FLI" by the full version)
{ "DEMSTRT2.FLI", 1, 0, 0, 0, 0, 0, NULL, 0u },
@ -1488,6 +1489,7 @@ int PlayNextFlicFrame(tFlic_descriptor* pFlic_info) {
}
// IDA: int __usercall PlayFlic@<EAX>(int pIndex@<EAX>, tU32 pSize@<EDX>, tS8 *pData_ptr@<EBX>, br_pixelmap *pDest_pixelmap@<ECX>, int pX_offset, int pY_offset, void (*DoPerFrame)(), int pInterruptable, int pFrame_rate)
// FUNCTION: CARM95 0x497278
int PlayFlic(int pIndex, tU32 pSize, tS8* pData_ptr, br_pixelmap* pDest_pixelmap, int pX_offset, int pY_offset, void (*DoPerFrame)(void), int pInterruptable, int pFrame_rate) {
int finished_playing;
tFlic_descriptor the_flic;

View File

@ -5,6 +5,7 @@
#include "globvars.h"
#include "pd/sys.h"
// GLOBAL: CARM95 0x50bcf0
tGraf_data gGraf_data[2] = {
{ 320,
200,

View File

@ -64,6 +64,7 @@ int gCursor_y_offsets[8] = {
12,
5,
};
// GLOBAL: CARM95 0x520090
int gCursor_gib_x_offsets[8] = {
82,
72,
@ -74,6 +75,7 @@ int gCursor_gib_x_offsets[8] = {
66,
36,
};
// GLOBAL: CARM95 0x5200b0
int gCursor_gib_y_offsets[8] = {
74,
86,
@ -114,6 +116,7 @@ int gCursor_giblet_sequence3[5] = {
16,
17,
};
// GLOBAL: CARM95 0x520138
int* gCursor_giblet_sequences[4] = {
gCursor_giblet_sequence0,
gCursor_giblet_sequence1,
@ -143,6 +146,7 @@ char* gFont_names[21] = {
"LITPLAQ1",
"DRKPLAQ1"
};
// GLOBAL: CARM95 0x5201a0
br_colour gRGB_colours[9] = {
0u,
16777215u,
@ -213,6 +217,7 @@ int gAR_fudge_headups;
br_pixelmap* gCurrent_splash;
// GLOBAL: CARM95 0x5209d8
br_pixelmap* gCurrent_conversion_table;
// GLOBAL: CARM95 0x5209e0
int gMap_colours[4] = { 4, 0, 52, 132 };
br_vector3 gShadow_points[8];
// GLOBAL: CARM95 0x53f940

View File

@ -17,6 +17,7 @@ int gEdge_trigger_mode;
tU32 gLast_poll_keys;
// GLOBAL: CARM95 0x514c78
int gInsert_mode;
// GLOBAL: CARM95 0x514c80
int gGo_ahead_keys[3] = { 51, 52, 106 }; // enter, return, space
// GLOBAL: CARM95 0x5507c0
tJoy_array gJoy_array;

View File

@ -43,6 +43,7 @@
#define NBR_FUNK_GROVE_FLAGS 30
#define OPPONENT_APC_IDX 3
// GLOBAL: CARM95 0x50a3f0
tHeadup_info gHeadup_image_info[32] = {
// Modified by DethRace to fit the "demo timeout" fancy head-up.
{ "LADY.PIX", eNet_or_otherwise },
@ -80,6 +81,7 @@ tHeadup_info gHeadup_image_info[32] = {
};
char* gYour_car_names[2][6];
char* gDrivable_car_names[6];
// GLOBAL: CARM95 0x50a530
char* gDamage_names[] = {
"engine",
"transmission",
@ -94,6 +96,7 @@ char* gDamage_names[] = {
"lr_wheel",
"rr_wheel"
};
// GLOBAL: CARM95 0x50a560
char* gWheel_actor_names[] = {
"FLWHEEL.ACT",
"FRWHEEL.ACT",
@ -102,6 +105,7 @@ char* gWheel_actor_names[] = {
"IFLWHEEL.ACT",
"IFRWHEEL.ACT"
};
// GLOBAL: CARM95 0x50a578
char* gRaces_file_names[] = {
"RACES.TXT",
"NETRACES.TXT",
@ -114,11 +118,13 @@ char* gRaces_file_names[] = {
"NETRACES.TXT"
};
char* gNet_avail_names[] = { "never", "eagle", "hawk", "all" };
// GLOBAL: CARM95 0x50a5b0
char* gFloorpan_names[] = { "GBUNDER.MAT", "BGLUNDER.MAT", "GRIMBOT.MAT", "DDBASE.MAT", "HFUNDER.MAT" };
// GLOBAL: CARM95 0x50a5c4
int gAllow_open_to_fail = 1;
// GLOBAL: CARM95 0x50a5c8
int gDecode_thing = '@';
// GLOBAL: CARM95 0x50a5d0
char gDecode_string[] = { 0x9B, 0x52, 0x93, 0x9F, 0x52, 0x98, 0x9B, 0x96, 0x96, 0x9E, 0x9B, 0xA0, 0x99, 0x0 };
int gFunk_groove_flags[30];
char gDef_def_water_screen_name[32];
@ -734,6 +740,7 @@ void DRLoadLights(char* pPath_name) {
}
// IDA: void __usercall LoadInFiles(char *pThe_base_path@<EAX>, char *pThe_dir_name@<EDX>, void (*pLoad_routine)(char*)@<EBX>)
// FUNCTION: CARM95 0x41d957
void LoadInFiles(char* pThe_base_path, char* pThe_dir_name, void (*pLoad_routine)(char*)) {
tPath_name the_path;
LOG_TRACE("(\"%s\", \"%s\", %p)", pThe_base_path, pThe_dir_name, pLoad_routine);

View File

@ -28,7 +28,9 @@
#include <stdlib.h>
#include <string.h>
// GLOBAL: CARM95 0x50c5e0
int gPowerup_cost[4] = { 1500, 2500, 4000, 6000 };
// GLOBAL: CARM95 0x50c5f0
int gGame_scores[6] = { 1, 2, 3, 4, 6, 10 };
// GLOBAL: CARM95 0x53220c
int gPed_target;

View File

@ -48,6 +48,7 @@ tNet_message* gBroadcast_stack;
tNet_message* gTo_host_stack;
// GLOBAL: CARM95 0x50d244
tU32 gLast_flush_message = 0;
// GLOBAL: CARM95 0x50d248
int gRace_only_flags[33] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
@ -322,6 +323,7 @@ void DoNextJoinPoll(void) {
}
// IDA: void __usercall NetStartProducingJoinList(void (*pAdd_proc)(tNet_game_details*)@<EAX>)
// FUNCTION: CARM95 0x4467d9
void NetStartProducingJoinList(void (*pAdd_proc)(tNet_game_details*)) {
LOG_TRACE("(%p)", pAdd_proc);

View File

@ -32,6 +32,7 @@ tU8* gAnne_flic_data;
// GLOBAL: CARM95 0x51e918
int gNet_storage_allocated;
// clang-format off
// GLOBAL: CARM95 0x51e920
tRadio_bastards gRadio_bastards__newgame[11] = { // suffix added to avoid duplicate symbol
{ 1, 32, 0, { 245, 0, 0, 0, 0, }, },
{ 1, 43, 0, { 245, 0, 0, 0, 0, }, },

View File

@ -11,6 +11,7 @@
#include <math.h>
#include <stdlib.h>
// GLOBAL: CARM95 0x509a38
char* gOil_pixie_names[1] = { "OIL.PIX" };
// GLOBAL: CARM95 0x509a3c
int gNext_oil_pixie = 0;

View File

@ -25,7 +25,9 @@
#include <stdlib.h>
#include <string.h>
// GLOBAL: CARM95 0x519ad8
int gKey_defns[18] = { 48, 49, 46, 47, 53, 44, 59, 57, 55, 45, 50, 51, 52, 56, 62, 63, 64, 66 };
// GLOBAL: CARM95 0x519b20
tRadio_bastards gRadio_bastards__options[13] = {
// suffix added to avoid duplicate symbol
{ 4, 36, 0, { 132, 175, 221, 253, 0 } },

View File

@ -52,8 +52,11 @@ int gSend_peds = 1;
tU32 gLast_ped_message_send = 0;
// GLOBAL: CARM95 0x511758
tPedestrian_instruction* gInitial_instruction = NULL;
// GLOBAL: CARM95 0x511760
char* gRate_commands[3] = { "fixed", "speed", "variable" };
// GLOBAL: CARM95 0x51176c
char* gCollide_commands[1] = { "collide" };
// GLOBAL: CARM95 0x511770
char* gInstruc_commands[10] = {
"point",
"xpoint",
@ -69,13 +72,16 @@ char* gInstruc_commands[10] = {
float gMin_ped_gib_speeds[4] = { 10000.f, .005f, .002f, .001f };
float gPed_gib_distrib[4] = { 0.f, 0.33f, 0.34f, 0.33f };
float gPed_gib_speeds[4] = { 0.f, 1.f, 1.f, 1.f };
// GLOBAL: CARM95 0x5117c8
int gPed_size_counts[4] = { 3, 5, 5, 5 };
// GLOBAL: CARM95 0x5117d8
char* gPed_gib_names[4][5] = {
{ "BIGGIBS.PIX", "BIGGIBS2.PIX", "BIGGIBS3.PIX", "", "" },
{ "ELBOW.PIX", "PELVIS.PIX", "HEAD.PIX", "RIBS.PIX", "BONE.PIX" },
{ "HAND.PIX", "CHUNK02.PIX", "EYEBALL.PIX", "COLON.PIX", "CHUNK01.PIX" },
{ "CHUNK04.PIX", "SPLAT1.PIX", "CHUNK03.PIX", "SPLAT2.PIX", "SPLATOUT.PIX" }
};
// GLOBAL: CARM95 0x511828
char* gPed_geb_names[4][5] = {
{ "GBIGGIBS.PIX", "GBIGGIB2.PIX", "GBIGGIB3.PIX", "", "" },
{ "GELBOW.PIX", "GPELVIS.PIX", "GHEAD.PIX", "GRIBS.PIX", "GBONE.PIX" },

View File

@ -31,6 +31,7 @@ int gDisable_advance = 0;
int gMax_rewind_chunks = 1000;
// GLOBAL: CARM95 0x50ba10
float gWall_severity = 0.f;
// GLOBAL: CARM95 0x50ba18
tPipe_reset_proc* gReset_procs[32] = {
NULL,
NULL,
@ -2260,6 +2261,7 @@ tU32 FindPrevFrameTime(tU8* pPtr) {
}
// IDA: void __usercall ScanBuffer(tU8 **pPtr@<EAX>, tPipe_chunk_type pType@<EDX>, tU32 pDefault_time@<EBX>, int (*pCall_back)(tPipe_chunk*, int, tU32)@<ECX>, int (*pTime_check)(tU32))
// FUNCTION: CARM95 0x42be18
void ScanBuffer(tU8** pPtr, tPipe_chunk_type pType, tU32 pDefault_time, int (*pCall_back)(tPipe_chunk*, int, tU32), int (*pTime_check)(tU32)) {
tPipe_chunk* chunk_ptr;
tU32 the_time;

View File

@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
// GLOBAL: CARM95 0x50ba98
tGot_proc* gGot_procs[34] = {
GotCredits,
SetPedSpeed,
@ -59,6 +60,7 @@ tGot_proc* gGot_procs[34] = {
SetPedHarvest,
SetVesuvianCorpses,
};
// GLOBAL: CARM95 0x50bb20
tLose_proc* gLose_procs[34] = {
NULL,
ResetPedSpeed,
@ -95,6 +97,7 @@ tLose_proc* gLose_procs[34] = {
ResetPedHarvest,
ResetVesuvianCorpses,
};
// GLOBAL: CARM95 0x50bba8
tPeriodic_proc* gPeriodic_procs[34] = {
NULL,
NULL,
@ -133,9 +136,11 @@ tPeriodic_proc* gPeriodic_procs[34] = {
};
// GLOBAL: CARM95 0x50bc30
tU32* gReal_render_palette;
// GLOBAL: CARM95 0x50bc38
char* gFizzle_names[3] = { "CIRCLES.PIX", "SQUARES.PIX", "DIAMONDS.PIX" };
// GLOBAL: CARM95 0x50bc48
br_vector3 gZero_v__powerup; // suffix added to avoid duplicate symbol
// GLOBAL: CARM95 0x50bc58
int gPed_harvest_sounds[4] = { 4010, 4012, 4030, 4032 };
tHeadup_icon gIcon_list[20];
br_pixelmap* gFizzle_in[3];

View File

@ -45,8 +45,11 @@ int gSingle_frame_mode = 0;
tU32 gCam_change_time = 0;
// GLOBAL: CARM95 0x50a1e0
int gSave_file = 0;
// GLOBAL: CARM95 0x50a1e8
int gProgress_line_left[2] = { 70, 141 };
// GLOBAL: CARM95 0x50a1f0
int gProgress_line_right[2] = { 279, 558 };
// GLOBAL: CARM95 0x50a1f8
int gProgress_line_top[2] = { 178, 429 };
br_pixelmap* gReplay_pixies[10];
// GLOBAL: CARM95 0x531db8

View File

@ -12,7 +12,9 @@
#include <stdlib.h>
#include <string.h>
// GLOBAL: CARM95 0x507030
char* gBoring_material_names[2] = { "OILSMEAR.MAT", "ROBSMEAR.MAT" };
// GLOBAL: CARM95 0x507038
char* gMaterial_names[2] = { "OILSMEAR.MAT", "GIBSMEAR.MAT" };
tSkid gSkids[100];

View File

@ -24,8 +24,11 @@ int gVirgin_pass = 1;
int gOld_sound_detail_level = -1;
// GLOBAL: CARM95 0x514934
int gLast_tune = -1;
// GLOBAL: CARM95 0x514938
int gRandom_MIDI_tunes[3] = { 9500, 9501, 9502 };
// GLOBAL: CARM95 0x514948
int gRandom_Rockin_MIDI_tunes[3] = { 9500, 9501, 9502 };
// GLOBAL: CARM95 0x514958
int gRandom_CDA_tunes[8] = { 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607 }; /* dethrace: Changed to size 8 */
// GLOBAL: CARM95 0x514978
int gCDA_is_playing;

View File

@ -38,6 +38,7 @@ int gMirror_on__structur = 1; // suffix added to avoid duplicate symbol
int gPratcam_on = 1;
// GLOBAL: CARM95 0x509a6c
int gCockpit_on = 1;
// GLOBAL: CARM95 0x509a70
int gOpponent_mix[10][5] = {
{ 3, 4, 4, 5, 5 },
{ 2, 3, 4, 5, 5 },

View File

@ -4,6 +4,7 @@
#include <math.h>
#include <stdlib.h>
// GLOBAL: CARM95 0x51e620
float gFloat_sine_table[91] = {
0.0f,
0.017452f,

View File

@ -34,10 +34,14 @@ int gIn_check_quit = 0;
// GLOBAL: CARM95 0x52148c
tU32 gLost_time = 0;
#if BR_ENDIAN_BIG
// GLOBAL: CARM95 0x521490
tU32 gLong_key[4] = { 0x6c1b995f, 0xb9cd5f13, 0xcb04200e, 0x5e1ca10e };
// GLOBAL: CARM95 0x5214a0
tU32 gOther_long_key[4] = { 0x67a8d626, 0xb6dd451b, 0x327e2213, 0x15c29437 };
#else
// GLOBAL: CARM95 0x521490
tU32 gLong_key[4] = { 0x5f991b6c, 0x135fcdb9, 0x0e2004cb, 0x0ea11c5e };
// GLOBAL: CARM95 0x5214a0
tU32 gOther_long_key[4] = { 0x26d6a867, 0x1b45ddb6, 0x13227e32, 0x3794c215 };
#endif
// GLOBAL: CARM95 0x5214b0
@ -625,6 +629,7 @@ br_uint_32 DRActorEnumRecurseWithMat(br_actor* pActor, br_material* pMat, recurs
}
// IDA: br_uint_32 __usercall DRActorEnumRecurseWithTrans@<EAX>(br_actor *pActor@<EAX>, br_matrix34 *pMatrix@<EDX>, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*)@<EBX>, void *pArg@<ECX>)
// FUNCTION: CARM95 0x4c2288
br_uint_32 DRActorEnumRecurseWithTrans(br_actor* pActor, br_matrix34* pMatrix, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*), void* pArg) {
br_uint_32 result;
br_matrix34 combined_transform;

View File

@ -40,16 +40,27 @@ int gSpec_vol_mode;
tFunkotronic_spec* gFunkotronics_array;
// GLOBAL: CARM95 0x50c720
tGroovidelic_spec* gGroovidelics_array;
// GLOBAL: CARM95 0x50c728
char* gFunk_type_names[] = { "spin", "rock", "throb", "slither", "roll" };
// GLOBAL: CARM95 0x50c740
char* gFunk_anim_names[] = { "frames", "flic" };
// GLOBAL: CARM95 0x50c748
char* gTime_mode_names[] = { "approximate", "accurate" };
// GLOBAL: CARM95 0x50c750
char* gFunk_move_names[] = { "linear", "harmonic", "flash", "controlled", "absolute", "continuous" };
// GLOBAL: CARM95 0x50c768
char* gFunk_nature_names[] = { "constant", "distance", "lastlap", "otherlaps" };
// GLOBAL: CARM95 0x50c778
char* gGroove_nature_names[] = { "constant", "distance" };
// GLOBAL: CARM95 0x50c780
char* gAxis_names[] = { "x", "y", "z" };
// GLOBAL: CARM95 0x50c790
char* gLollipop_names[] = { "xlollipop", "ylollipop", "zlollipop" };
// GLOBAL: CARM95 0x50c7a0
char* gGroove_path_names[] = { "straight", "circular" };
// GLOBAL: CARM95 0x50c7a8
char* gGroove_object_names[] = { "spin", "rock", "throb", "shear" };
// GLOBAL: CARM95 0x50c7b8
char* gDepth_effect_names[] = { "dark", "fog" };
// GLOBAL: CARM95 0x50c7c0
br_actor* gGroove_by_proxy_actor;