diff --git a/README.md b/README.md index a0f38fe7..f67ad5a5 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ As of May 7, 2025, this is our current score:     Decomp progress: 85.73% -    Documentation progress: 56.69% +    Documentation progress: 56.95% --- @@ -133,14 +133,14 @@ As of May 7, 2025, this is our current score: We are racing in Spacedust Alley. (Lap 2/3) ===================================================================== ADVENTURE TWO (Cleanup & Documentation) - -------------------------- 56.69% Complete -------------------------- - # Documented functions: 1174 - # Undocumented remaining: 480 + -------------------------- 56.95% Complete -------------------------- + # Documented functions: 1178 + # Undocumented remaining: 476 ---------------------------- Game Status ---------------------------- Balloons: 27/47, Keys: 3/4, Trophies: 2/5 T.T. Amulets: 3/4, Wizpig Amulets: 2/4 --------------------------------------------------------------------- - We are collecting silver coins in Crescent Island. (3/8 silver coins) + We are collecting silver coins in Crescent Island. (5/8 silver coins) ===================================================================== ``` diff --git a/src/object_functions.c b/src/object_functions.c index 5e838a6e..71736df0 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -6559,7 +6559,7 @@ void obj_loop_pigrocketeer(Object *obj, s32 updateRate) { Object_Wizpig2 *obj64; func_8001F460(obj, updateRate, obj); - someObj = func_8000BF44(-1); + someObj = racerfx_get_boost(BOOST_DEFAULT); if (someObj != NULL) { obj64 = &someObj->unk64->wizpig2; diff --git a/src/objects.c b/src/objects.c index 9763d7e4..ba49fe42 100644 --- a/src/objects.c +++ b/src/objects.c @@ -60,10 +60,10 @@ s8 D_800DC73C = 0; s8 D_800DC740 = 0; s8 gSwapLeadPlayer = FALSE; s8 D_800DC748 = FALSE; -Vertex *D_800DC74C[2] = { 0, 0 }; -Triangle *D_800DC754[2] = { 0, 0 }; +Vertex *gBoostVerts[2] = { 0, 0 }; +Triangle *gBoostTris[2] = { 0, 0 }; Object *gShieldEffectObject = NULL; -s32 D_800DC760 = 9; // Currently unknown, might be a different type. +s32 gBoostObjOverrideID = 9; Object *gMagnetEffectObject = NULL; s32 D_800DC768 = 0; // Currently unknown, might be a different type. @@ -315,17 +315,17 @@ VertexPosition gEnvmapPos; s16 D_8011AFEE; s32 D_8011AFF0; unk800179D0 *D_8011AFF4; -s32 D_8011AFF8; +s32 gBoostVertCount; s32 D_8011AFFC; -s32 D_8011B000; +s32 gBoostTriCount; s32 D_8011B004; -s32 D_8011B008; // indexes D_800DC74C and D_800DC754 -u8 D_8011B010[16]; -Object *D_8011B020[NUMBER_OF_CHARACTERS]; +s32 gBoostVertFlip; // indexes gBoostVerts and gBoostTris +u8 gShieldSineTime[16]; +Object *gBoostEffectObjects[NUMBER_OF_CHARACTERS]; u8 D_8011B048[16]; u8 D_8011B058[16]; u8 D_8011B068[16]; -ColourRGBA D_8011B078[NUMBER_OF_CHARACTERS]; // Note: D_8011B078 might not be a ColourRGBA. +RacerFXData gRacerFXData[NUMBER_OF_CHARACTERS]; extern s16 gGhostMapID; @@ -337,79 +337,89 @@ typedef struct LevelObjectEntry_unk8000B020 { s8 unk9; } LevelObjectEntry_unk8000B020; -void func_8000B020(s32 numberOfVertices, s32 numberOfTriangles) { +/** + * Spawns control objects for racer boost visuals, as well as shield and magnet visuals. + * Boost geometry is made in real time, and allocated here. + * This function is called on every level load, but only racers use the stuff here. + */ +void racerfx_alloc(s32 numberOfVertices, s32 numberOfTriangles) { Asset20 *miscAsset20; LevelObjectEntry_unk8000B020 objEntry; s32 i; - D_800DC754[0] = (Triangle *) mempool_alloc_safe( + gBoostTris[0] = (Triangle *) mempool_alloc_safe( ((numberOfTriangles * sizeof(Triangle)) + (numberOfVertices * sizeof(Vertex))) * 2, COLOUR_TAG_BLUE); - D_800DC754[1] = (Triangle *) ((u32) D_800DC754[0] + numberOfTriangles * sizeof(Triangle)); - D_800DC74C[0] = (Vertex *) ((u32) D_800DC754[1] + numberOfTriangles * sizeof(Triangle)); - D_800DC74C[1] = (Vertex *) ((u32) D_800DC74C[0] + numberOfVertices * sizeof(Vertex)); - D_8011AFF8 = numberOfVertices; + gBoostTris[1] = (Triangle *) ((u32) gBoostTris[0] + numberOfTriangles * sizeof(Triangle)); + gBoostVerts[0] = (Vertex *) ((u32) gBoostTris[1] + numberOfTriangles * sizeof(Triangle)); + gBoostVerts[1] = (Vertex *) ((u32) gBoostVerts[0] + numberOfVertices * sizeof(Vertex)); + gBoostVertCount = numberOfVertices; D_8011AFFC = 0; - D_8011B000 = numberOfTriangles; + gBoostTriCount = numberOfTriangles; D_8011B004 = 0; - D_8011B008 = 0; + gBoostVertFlip = 0; miscAsset20 = (Asset20 *) get_misc_asset(ASSET_MISC_20); - for (i = 0; i < ARRAY_COUNT(D_8011B020); i++) { + // Makes 10 boost objects, but only 8 racers can actually exist at once. + for (i = 0; i < NUMBER_OF_CHARACTERS; i++) { objEntry.common.objectID = ASSET_OBJECT_ID_BOOST; - objEntry.common.size = 10; + objEntry.common.size = sizeof(LevelObjectEntry_unk8000B020); objEntry.common.x = 0; objEntry.common.y = 0; objEntry.common.z = 0; objEntry.unk8 = i; - D_8011B020[i] = spawn_object(&objEntry.common, 1); - if (D_8011B020[i] != NULL) { - D_8011B020[i]->properties.common.unk0 = 0; - D_8011B020[i]->properties.common.unk4 = 0; + gBoostEffectObjects[i] = spawn_object(&objEntry.common, OBJECT_SPAWN_UNK01); + if (gBoostEffectObjects[i] != NULL) { + gBoostEffectObjects[i]->properties.common.unk0 = 0; + gBoostEffectObjects[i]->properties.common.unk4 = 0; miscAsset20[i].unk70 = 0; miscAsset20[i].unk74 = 0.0f; miscAsset20[i].unk78 = (Sprite *) func_8007C12C(miscAsset20[i].unk6C, 0); miscAsset20[i].unk7C = load_texture(miscAsset20[i].unk6E); miscAsset20[i].unk72 = get_random_number_from_range(0, 255); miscAsset20[i].unk73 = 0; - D_8011B010[i] = get_random_number_from_range(0, 255); + // This is for shields, not boosts. + gShieldSineTime[i] = get_random_number_from_range(0, 255); } - D_8011B068[i] = 1; + D_8011B068[i] = TRUE; } - D_800DC760 = 9; + gBoostObjOverrideID = 9; objEntry.common.objectID = ASSET_OBJECT_ID_SHIELD; - objEntry.common.size = 10; + objEntry.common.size = sizeof(LevelObjectEntry_unk8000B020); objEntry.common.x = 0; objEntry.common.y = 0; objEntry.common.z = 0; - gShieldEffectObject = spawn_object((LevelObjectEntryCommon *) &objEntry, 0); - for (i = 0; i < ARRAY_COUNT(D_8011B078); i++) { - D_8011B078[i].r = 0; - D_8011B078[i].g = get_random_number_from_range(0, 255); - D_8011B078[i].b = get_random_number_from_range(0, 255); - D_8011B078[i].a = 0; + gShieldEffectObject = spawn_object((LevelObjectEntryCommon *) &objEntry, OBJECT_SPAWN_NONE); + for (i = 0; i < NUMBER_OF_CHARACTERS; i++) { + gRacerFXData[i].unk0 = 0; + gRacerFXData[i].unk1 = get_random_number_from_range(0, 255); + gRacerFXData[i].unk2 = get_random_number_from_range(0, 255); + gRacerFXData[i].unk3 = 0; } objEntry.common.objectID = ASSET_OBJECT_ID_AINODE; - objEntry.common.size = 138; + objEntry.common.size = sizeof(LevelObjectEntry_unk8000B020) + 0x80; // Not sure where this 0x80 comes from. objEntry.common.x = 0; objEntry.common.y = 0; objEntry.common.z = 0; - gMagnetEffectObject = spawn_object((LevelObjectEntryCommon *) &objEntry, 0); + gMagnetEffectObject = spawn_object((LevelObjectEntryCommon *) &objEntry, OBJECT_SPAWN_NONE); } -void func_8000B290(void) { +/** + * Attempts to free the boost, shield and magnet objects and assets. + */ +void racerfx_free(void) { Sprite *sprite; TextureHeader *texture; Asset20 *asset20; u32 i; - if (D_800DC754[0] != 0) { - mempool_free(D_800DC754[0]); - D_800DC754[0] = 0; - D_800DC754[1] = 0; - D_800DC74C[0] = 0; - D_800DC74C[1] = 0; + if (gBoostTris[0]) { + mempool_free(gBoostTris[0]); + gBoostTris[0] = NULL; + gBoostTris[1] = NULL; + gBoostVerts[0] = NULL; + gBoostVerts[1] = NULL; } asset20 = (Asset20 *) get_misc_asset(ASSET_MISC_20); - for (i = 0; i < 10; i++) { + for (i = 0; i < NUMBER_OF_CHARACTERS; i++) { sprite = asset20[i].unk78; if (sprite != NULL) { sprite_free(sprite); @@ -436,7 +446,11 @@ void func_8000B290(void) { #pragma GLOBAL_ASM("asm/nonmatchings/objects/func_8000B38C.s") #pragma GLOBAL_ASM("asm/nonmatchings/objects/func_8000B750.s") -void func_8000BADC(s32 updateRate) { +/** + * Updates the racer FX object states. + * This includes the shield wobble timer, and the texture frames for the magnet and shield. + */ +void racerfx_update(s32 updateRate) { s32 i; Asset20 *asset20Part; s32 temp; @@ -444,16 +458,16 @@ void func_8000BADC(s32 updateRate) { f32 updateRateF; Object_Racer *racer; - D_8011B008 = 1 - D_8011B008; + gBoostVertFlip = 1 - gBoostVertFlip; D_8011AFFC = 0; D_8011B004 = 0; asset20 = (Asset20 *) get_misc_asset(ASSET_MISC_20); - D_800DC760 = 9; - for (i = 0; i < 10; i++) { - if (D_8011B068[i] && D_8011B020[i] != NULL) { - D_8011B020[i]->properties.common.unk0 = 0; + gBoostObjOverrideID = 9; + for (i = 0; i < NUMBER_OF_CHARACTERS; i++) { + if (D_8011B068[i] && gBoostEffectObjects[i] != NULL) { + gBoostEffectObjects[i]->properties.common.unk0 = 0; } - D_8011B068[i] = 1; + D_8011B068[i] = TRUE; } for (i = 0; i < gNumRacers; i++) { updateRateF = (f32) updateRate; @@ -463,7 +477,7 @@ void func_8000BADC(s32 updateRate) { racer = &(*gRacers)[i]->unk64->racer; asset20Part = &asset20[racer->racerIndex]; if (racer->shieldTimer != 0) { - D_8011B010[racer->racerIndex] += updateRate; + gShieldSineTime[racer->racerIndex] += updateRate; } asset20Part->unk72 += updateRate; if (racer->boostTimer != 0) { @@ -517,19 +531,19 @@ void func_8000BADC(s32 updateRate) { func_8000B750((*gRacers)[i], racer->racerIndex, racer->vehicleIDPrev, racer->boostType, 0); } temp = racer->racerIndex; - D_8011B078[temp].g += updateRate; - D_8011B078[temp].b += updateRate; + gRacerFXData[temp].unk1 += updateRate; + gRacerFXData[temp].unk2 += updateRate; if (racer->magnetTimer != 0) { - if (D_8011B078[temp].a + (updateRate << 2) < 32) { - D_8011B078[temp].a += (updateRate << 2); + if (gRacerFXData[temp].unk3 + (updateRate << 2) < 32) { + gRacerFXData[temp].unk3 += (updateRate << 2); } else { - D_8011B078[temp].a = 32; + gRacerFXData[temp].unk3 = 32; } } else { - if (D_8011B078[temp].a - updateRate > 0) { - D_8011B078[temp].a -= updateRate; + if (gRacerFXData[temp].unk3 - updateRate > 0) { + gRacerFXData[temp].unk3 -= updateRate; } else { - D_8011B078[temp].a = 0; + gRacerFXData[temp].unk3 = 0; } } } @@ -538,14 +552,18 @@ void func_8000BADC(s32 updateRate) { } } -Object *func_8000BF44(s32 arg0) { - if (arg0 == -1) { - arg0 = D_800DC760; +/** + * Returns the boost object with the given ID. + * Returns a specific ID if the arg passed is BOOST_DEFAULT. + */ +Object *racerfx_get_boost(s32 boostID) { + if (boostID == BOOST_DEFAULT) { + boostID = gBoostObjOverrideID; } - if (arg0 < 0 || arg0 >= 10) { + if (boostID < 0 || boostID >= NUMBER_OF_CHARACTERS) { return NULL; } - return D_8011B020[arg0]; + return gBoostEffectObjects[boostID]; } /** @@ -2341,7 +2359,7 @@ void obj_update(s32 updateRate) { } } } - func_8000BADC(updateRate); + racerfx_update(updateRate); for (i = gObjectListStart; i < j; i++) { obj = gObjPtrList[i]; if ((!(obj->segment.trans.flags & OBJ_FLAGS_PARTICLE) && (obj->behaviorId == BHV_WEAPON)) || @@ -3383,7 +3401,7 @@ void func_800135B8(Object *boostObj) { boostData = &boost->unk48; break; } - asset = (UnkAsset_800135B8 *)get_misc_asset(20); + asset = (UnkAsset_800135B8 *) get_misc_asset(20); asset = &asset[D_8011B058[idx]]; object_do_player_tumble((Object *) boostObj->properties.common.unk0); camera_push_model_mtx(&gObjectCurrDisplayList, &gObjectCurrMatrix, @@ -3415,8 +3433,8 @@ void func_800135B8(Object *boostObj) { hasTexture = 0; } - vtx = &D_800DC74C[D_8011B008][(boostObj->properties.common.unk4 >> 14) & 0x3FFF]; - tri = &D_800DC754[D_8011B008][boostObj->properties.common.unk4 & 0x3FFF]; + vtx = &gBoostVerts[gBoostVertFlip][(boostObj->properties.common.unk4 >> 14) & 0x3FFF]; + tri = &gBoostTris[gBoostVertFlip][boostObj->properties.common.unk4 & 0x3FFF]; gSPVertexDKR(gObjectCurrDisplayList++, OS_K0_TO_PHYSICAL(vtx), 9, 0); gSPPolygon(gObjectCurrDisplayList++, OS_K0_TO_PHYSICAL(tri), 8, hasTexture); } @@ -3476,7 +3494,7 @@ void render_racer_shield(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *o gObjectCurrMatrix = *mtx; gObjectCurrVertexList = *vtxList; racerIndex = racer->racerIndex; - if (racerIndex > 10) { + if (racerIndex > NUMBER_OF_CHARACTERS) { racerIndex = 0; } vehicleID = racer->vehicleID; @@ -3489,11 +3507,11 @@ void render_racer_shield(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *o gShieldEffectObject->segment.trans.x_position = shield->x_position; gShieldEffectObject->segment.trans.y_position = shield->y_position; gShieldEffectObject->segment.trans.z_position = shield->z_position; - gShieldEffectObject->segment.trans.y_position += shield->y_offset * sins_f(D_8011B010[racerIndex] * 0x200); - shear = (coss_f(D_8011B010[racerIndex] * 0x400) * 0.05f) + 0.95f; + gShieldEffectObject->segment.trans.y_position += shield->y_offset * sins_f(gShieldSineTime[racerIndex] * 0x200); + shear = (coss_f(gShieldSineTime[racerIndex] * 0x400) * 0.05f) + 0.95f; gShieldEffectObject->segment.trans.scale = shield->scale * shear; shear = shear * shield->turnSpeed; - gShieldEffectObject->segment.trans.rotation.y_rotation = D_8011B010[racerIndex] * 0x800; + gShieldEffectObject->segment.trans.rotation.y_rotation = gShieldSineTime[racerIndex] * 0x800; gShieldEffectObject->segment.trans.rotation.x_rotation = 0x800; gShieldEffectObject->segment.trans.rotation.z_rotation = 0; shieldType = racer->shieldType; @@ -3537,14 +3555,14 @@ void render_racer_magnet(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *o ObjectModel *mdl; f32 *magnet; s32 vehicleID; - s32 var_t0; + s32 racerIndex; s32 opacity; f32 shear; UNUSED s32 pad; racer = &obj->unk64->racer; - var_t0 = racer->racerIndex; - if (D_8011B078[var_t0].a != 0) { + racerIndex = racer->racerIndex; + if (gRacerFXData[racerIndex].unk3 != 0) { if (gMagnetEffectObject != NULL) { gObjectCurrDisplayList = *dList; gObjectCurrMatrix = *mtx; @@ -3555,25 +3573,25 @@ void render_racer_magnet(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *o vehicleID = VEHICLE_CAR; } magnet = &magnet[vehicleID * 5]; - var_t0 = racer->racerIndex; - if (var_t0 > 10) { - var_t0 = 0; + racerIndex = racer->racerIndex; + if (racerIndex > NUMBER_OF_CHARACTERS) { + racerIndex = 0; } gMagnetEffectObject->segment.trans.x_position = magnet[0]; gMagnetEffectObject->segment.trans.y_position = magnet[1]; gMagnetEffectObject->segment.trans.z_position = magnet[2]; magnet += 3; - shear = (coss_f((D_8011B078[var_t0].g * 0x400)) * 0.02f) + 0.98f; + shear = (coss_f((gRacerFXData[racerIndex].unk1 * 0x400)) * 0.02f) + 0.98f; gMagnetEffectObject->segment.trans.scale = magnet[0] * shear; magnet += 1; shear = magnet[0] * shear; - gMagnetEffectObject->segment.trans.rotation.y_rotation = D_8011B078[var_t0].b * 0x1000; + gMagnetEffectObject->segment.trans.rotation.y_rotation = gRacerFXData[racerIndex].unk2 * 0x1000; gMagnetEffectObject->segment.trans.rotation.x_rotation = 0; gMagnetEffectObject->segment.trans.rotation.z_rotation = 0; gfxData = *gMagnetEffectObject->unk68; mdl = gfxData->objModel; gMagnetEffectObject->curVertData = (Vertex *) gfxData->vertices[gfxData->animationTaskNum]; - opacity = ((D_8011B078[var_t0].g * 8) & 0x7F) + 0x80; + opacity = ((gRacerFXData[racerIndex].unk1 * 8) & 0x7F) + 0x80; gfx_init_basic_xlu(&gObjectCurrDisplayList, DRAW_BASIC_2CYCLE, COLOUR_RGBA32(255, 255, 255, opacity), gMagnetColours[racer->magnetModelID]); apply_object_shear_matrix(&gObjectCurrDisplayList, &gObjectCurrMatrix, gMagnetEffectObject, obj, shear); diff --git a/src/objects.h b/src/objects.h index ef002226..8e096fcd 100644 --- a/src/objects.h +++ b/src/objects.h @@ -21,6 +21,8 @@ #define NODE_NONE 255 +#define BOOST_DEFAULT -1 + enum ObjectBehaviours { BHV_NONE, BHV_RACER, @@ -348,9 +350,16 @@ typedef struct Asset20 { TextureHeader *unk7C; } Asset20; +typedef struct RacerFXData { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; +} RacerFXData; + extern s32 osCicId; // Used for an Anti-Piracy check in render_3d_model -Object *func_8000BF44(s32 arg0); +Object *racerfx_get_boost(s32 boostID); void allocate_object_pools(void); void clear_object_pointers(void); void free_all_objects(void); @@ -464,7 +473,7 @@ s32 timetrial_load_staff_ghost(s32 mapId); void render_3d_billboard(Object *obj); void render_misc_model(Object *obj, Vertex *verts, u32 numVertices, Triangle *triangles, u32 numTriangles, TextureHeader *tex, u32 flags, u32 texOffset, f32 scale); -void func_8000B290(void); +void racerfx_free(void); void func_80016BC4(Object *obj); s32 ainode_register(Object *obj); void obj_taj_create_balloon(s32 blockID, f32 x, f32 y, f32 z); @@ -510,11 +519,11 @@ void func_80016748(Object *obj0, Object *obj1); void race_finish_time_trial(void); s32 obj_dist_racer(f32 x, f32 y, f32 z, f32 radius, s32 is2dCheck, Object **sortObj); void mode_init_taj_race(void); -void func_8000BADC(s32 updateRate); +void racerfx_update(s32 updateRate); f32 func_8002277C(f32 *data, s32 index, f32 x); void race_transition_adventure(s32 updateRate); void func_8001E4C4(void); -void func_8000B020(s32 numberOfVertices, s32 numberOfTriangles); +void racerfx_alloc(s32 numberOfVertices, s32 numberOfTriangles); s32 func_80014B50(s32 arg0, s32 arg1, f32 arg2, u32 arg3); /** diff --git a/src/tracks.c b/src/tracks.c index 4da1ee19..fc3f794c 100644 --- a/src/tracks.c +++ b/src/tracks.c @@ -242,7 +242,7 @@ void init_track(u32 geometry, u32 skybox, s32 numberOfPlayers, Vehicle vehicle, func_8000C8F8(collectables, 1); gScenePlayerViewports = numberOfPlayers; func_8000CC7C(vehicle, entranceId, numberOfPlayers); - func_8000B020(72, 64); + racerfx_alloc(72, 64); if (geometry == 0 && entranceId == 0) { transition_begin(&gCircleFadeToBlack); @@ -2784,7 +2784,7 @@ LevelModel *get_current_level_model(void) { void free_track(void) { s32 i; - func_8000B290(); + racerfx_free(); if (gWaveBlockCount != 0) { free_waves(); } diff --git a/src/vehicle_rocket.c b/src/vehicle_rocket.c index 114eb93f..68804ccf 100644 --- a/src/vehicle_rocket.c +++ b/src/vehicle_rocket.c @@ -132,7 +132,7 @@ void update_rocket(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r update_vehicle_particles(obj, updateRate); fade_when_near_camera(obj, racer, 40); if (*startTimer != 100) { - someObj = func_8000BF44(-1); + someObj = racerfx_get_boost(BOOST_DEFAULT); if (someObj != NULL) { rocket = (Object_WizpigRocket *) someObj->unk64; someObj->properties.racer.unk0 = 0; diff --git a/ver/symbols/symbol_addrs.jpn.v79.txt b/ver/symbols/symbol_addrs.jpn.v79.txt index 51271825..eccff6e5 100644 --- a/ver/symbols/symbol_addrs.jpn.v79.txt +++ b/ver/symbols/symbol_addrs.jpn.v79.txt @@ -174,12 +174,12 @@ __seqpStopOsc = 0x8000AEFC; set_voice_limit = 0x8000B010; // objects.c .text -func_8000B020 = 0x8000B020; -func_8000B290 = 0x8000B290; +racerfx_alloc = 0x8000B020; +racerfx_free = 0x8000B290; func_8000B38C = 0x8000B38C; func_8000B750 = 0x8000B750; -func_8000BADC = 0x8000BADC; -func_8000BF44 = 0x8000BF44; +racerfx_update = 0x8000BADC; +racerfx_get_boost = 0x8000BF44; allocate_object_pools = 0x8000BF8C; decrypt_magic_codes = 0x8000C2D8; clear_object_pointers = 0x8000C460; @@ -2221,10 +2221,10 @@ D_800DC73C = 0x800DE0CC; D_800DC740 = 0x800DE0D0; gSwapLeadPlayer = 0x800DE0D4; D_800DC748 = 0x800DE0D8; -D_800DC74C = 0x800DE0DC; -D_800DC754 = 0x800DE0E4; +gBoostVerts = 0x800DE0DC; +gBoostTris = 0x800DE0E4; gShieldEffectObject = 0x800DE0EC; -D_800DC760 = 0x800DE0F0; +gBoostObjOverrideID = 0x800DE0F0; gMagnetEffectObject = 0x800DE0F4; D_800DC768 = 0x800DE0F8; D_800DC76C = 0x800DE0FC; @@ -3696,17 +3696,17 @@ gEnvmapPos = 0x8011CA58; D_8011AFEE = 0x8011CA5E; D_8011AFF0 = 0x8011CA60; D_8011AFF4 = 0x8011CA64; -D_8011AFF8 = 0x8011CA68; +gBoostVertCount = 0x8011CA68; D_8011AFFC = 0x8011CA6C; -D_8011B000 = 0x8011CA70; +gBoostTriCount = 0x8011CA70; D_8011B004 = 0x8011CA74; -D_8011B008 = 0x8011CA78; -D_8011B010 = 0x8011CA80; -D_8011B020 = 0x8011CA90; +gBoostVertFlip = 0x8011CA78; +gShieldSineTime = 0x8011CA80; +gBoostEffectObjects = 0x8011CA90; D_8011B048 = 0x8011CAB8; D_8011B058 = 0x8011CAC8; D_8011B068 = 0x8011CAD8; -D_8011B078 = 0x8011CAE8; +gRacerFXData = 0x8011CAE8; D_8011B07B = 0x8011CAEB; D_8011B080 = 0x8011CAF0; diff --git a/ver/symbols/symbol_addrs.pal.v77.txt b/ver/symbols/symbol_addrs.pal.v77.txt index 37f5ad22..f53f70b6 100644 --- a/ver/symbols/symbol_addrs.pal.v77.txt +++ b/ver/symbols/symbol_addrs.pal.v77.txt @@ -174,12 +174,12 @@ __seqpStopOsc = 0x8000AEFC; set_voice_limit = 0x8000B010; // objects.c .text -func_8000B020 = 0x8000B020; -func_8000B290 = 0x8000B290; +racerfx_alloc = 0x8000B020; +racerfx_free = 0x8000B290; func_8000B38C = 0x8000B38C; func_8000B750 = 0x8000B750; -func_8000BADC = 0x8000BADC; -func_8000BF44 = 0x8000BF44; +racerfx_update = 0x8000BADC; +racerfx_get_boost = 0x8000BF44; allocate_object_pools = 0x8000BF8C; decrypt_magic_codes = 0x8000C2D8; clear_object_pointers = 0x8000C460; @@ -2121,10 +2121,10 @@ D_800DC73C = 0x800DC7CC; D_800DC740 = 0x800DC7D0; gSwapLeadPlayer = 0x800DC7D4; D_800DC748 = 0x800DC7D8; -D_800DC74C = 0x800DC7DC; -D_800DC754 = 0x800DC7E4; +gBoostVerts = 0x800DC7DC; +gBoostTris = 0x800DC7E4; gShieldEffectObject = 0x800DC7EC; -D_800DC760 = 0x800DC7F0; +gBoostObjOverrideID = 0x800DC7F0; gMagnetEffectObject = 0x800DC7F4; D_800DC768 = 0x800DC7F8; D_800DC76C = 0x800DC7FC; @@ -3434,17 +3434,17 @@ gEnvmapPos = 0x8011B078; D_8011AFEE = 0x8011B07E; D_8011AFF0 = 0x8011B080; D_8011AFF4 = 0x8011B084; -D_8011AFF8 = 0x8011B088; +gBoostVertCount = 0x8011B088; D_8011AFFC = 0x8011B08C; -D_8011B000 = 0x8011B090; +gBoostTriCount = 0x8011B090; D_8011B004 = 0x8011B094; -D_8011B008 = 0x8011B098; -D_8011B010 = 0x8011B0A0; -D_8011B020 = 0x8011B0B0; +gBoostVertFlip = 0x8011B098; +gShieldSineTime = 0x8011B0A0; +gBoostEffectObjects = 0x8011B0B0; D_8011B048 = 0x8011B0D8; D_8011B058 = 0x8011B0E8; D_8011B068 = 0x8011B0F8; -D_8011B078 = 0x8011B108; +gRacerFXData = 0x8011B108; D_8011B07B = 0x8011B10B; D_8011B080 = 0x8011B110; gSceneCurrDisplayList = 0x8011B130; diff --git a/ver/symbols/symbol_addrs.pal.v80.txt b/ver/symbols/symbol_addrs.pal.v80.txt index cc2cccde..1ebfd0a2 100644 --- a/ver/symbols/symbol_addrs.pal.v80.txt +++ b/ver/symbols/symbol_addrs.pal.v80.txt @@ -174,12 +174,12 @@ __seqpStopOsc = 0x8000AEFC; set_voice_limit = 0x8000B010; // objects.c .text -func_8000B020 = 0x8000B020; -func_8000B290 = 0x8000B290; +racerfx_alloc = 0x8000B020; +racerfx_free = 0x8000B290; func_8000B38C = 0x8000B38C; func_8000B750 = 0x8000B750; -func_8000BADC = 0x8000BADC; -func_8000BF44 = 0x8000BF44; +racerfx_update = 0x8000BADC; +racerfx_get_boost = 0x8000BF44; allocate_object_pools = 0x8000BF8C; decrypt_magic_codes = 0x8000C2D8; clear_object_pointers = 0x8000C460; @@ -2048,10 +2048,10 @@ D_800DC73C = 0x800DCD3C; D_800DC740 = 0x800DCD40; gSwapLeadPlayer = 0x800DCD44; D_800DC748 = 0x800DCD48; -D_800DC74C = 0x800DCD4C; -D_800DC754 = 0x800DCD54; +gBoostVerts = 0x800DCD4C; +gBoostTris = 0x800DCD54; gShieldEffectObject = 0x800DCD5C; -D_800DC760 = 0x800DCD60; +gBoostObjOverrideID = 0x800DCD60; gMagnetEffectObject = 0x800DCD64; D_800DC768 = 0x800DCD68; D_800DC76C = 0x800DCD6C; @@ -3364,17 +3364,17 @@ gEnvmapPos = 0x8011B5F8; D_8011AFEE = 0x8011B5FE; D_8011AFF0 = 0x8011B600; D_8011AFF4 = 0x8011B604; -D_8011AFF8 = 0x8011B608; +gBoostVertCount = 0x8011B608; D_8011AFFC = 0x8011B60C; -D_8011B000 = 0x8011B610; +gBoostTriCount = 0x8011B610; D_8011B004 = 0x8011B614; -D_8011B008 = 0x8011B618; -D_8011B010 = 0x8011B620; -D_8011B020 = 0x8011B630; +gBoostVertFlip = 0x8011B618; +gShieldSineTime = 0x8011B620; +gBoostEffectObjects = 0x8011B630; D_8011B048 = 0x8011B658; D_8011B058 = 0x8011B668; D_8011B068 = 0x8011B678; -D_8011B078 = 0x8011B688; +gRacerFXData = 0x8011B688; D_8011B07B = 0x8011B68B; D_8011B080 = 0x8011B690; gSceneCurrDisplayList = 0x8011B6B0; diff --git a/ver/symbols/symbol_addrs.us.v77.txt b/ver/symbols/symbol_addrs.us.v77.txt index 8dbed651..7758a1a7 100644 --- a/ver/symbols/symbol_addrs.us.v77.txt +++ b/ver/symbols/symbol_addrs.us.v77.txt @@ -174,12 +174,12 @@ __seqpStopOsc = 0x8000AEFC; set_voice_limit = 0x8000B010; // objects.c .text -func_8000B020 = 0x8000B020; -func_8000B290 = 0x8000B290; +racerfx_alloc = 0x8000B020; +racerfx_free = 0x8000B290; func_8000B38C = 0x8000B38C; func_8000B750 = 0x8000B750; -func_8000BADC = 0x8000BADC; -func_8000BF44 = 0x8000BF44; +racerfx_update = 0x8000BADC; +racerfx_get_boost = 0x8000BF44; allocate_object_pools = 0x8000BF8C; decrypt_magic_codes = 0x8000C2D8; clear_object_pointers = 0x8000C460; @@ -2216,10 +2216,10 @@ D_800DC73C = 0x800DC73C; D_800DC740 = 0x800DC740; gSwapLeadPlayer = 0x800DC744; D_800DC748 = 0x800DC748; -D_800DC74C = 0x800DC74C; -D_800DC754 = 0x800DC754; +gBoostVerts = 0x800DC74C; +gBoostTris = 0x800DC754; gShieldEffectObject = 0x800DC75C; -D_800DC760 = 0x800DC760; +gBoostObjOverrideID = 0x800DC760; gMagnetEffectObject = 0x800DC764; D_800DC768 = 0x800DC768; D_800DC76C = 0x800DC76C; @@ -3811,17 +3811,17 @@ gEnvmapPos = 0x8011AFE8; D_8011AFEE = 0x8011AFEE; D_8011AFF0 = 0x8011AFF0; D_8011AFF4 = 0x8011AFF4; -D_8011AFF8 = 0x8011AFF8; +gBoostVertCount = 0x8011AFF8; D_8011AFFC = 0x8011AFFC; -D_8011B000 = 0x8011B000; +gBoostTriCount = 0x8011B000; D_8011B004 = 0x8011B004; -D_8011B008 = 0x8011B008; -D_8011B010 = 0x8011B010; -D_8011B020 = 0x8011B020; +gBoostVertFlip = 0x8011B008; +gShieldSineTime = 0x8011B010; +gBoostEffectObjects = 0x8011B020; D_8011B048 = 0x8011B048; D_8011B058 = 0x8011B058; D_8011B068 = 0x8011B068; -D_8011B078 = 0x8011B078; +gRacerFXData = 0x8011B078; D_8011B07B = 0x8011B07B; D_8011B080 = 0x8011B080; diff --git a/ver/symbols/symbol_addrs.us.v80.txt b/ver/symbols/symbol_addrs.us.v80.txt index 5fc112d0..ddbc684e 100644 --- a/ver/symbols/symbol_addrs.us.v80.txt +++ b/ver/symbols/symbol_addrs.us.v80.txt @@ -174,12 +174,12 @@ __seqpStopOsc = 0x8000AEFC; set_voice_limit = 0x8000B010; // objects.c .text -func_8000B020 = 0x8000B020; -func_8000B290 = 0x8000B290; +racerfx_alloc = 0x8000B020; +racerfx_free = 0x8000B290; func_8000B38C = 0x8000B38C; func_8000B750 = 0x8000B750; -func_8000BADC = 0x8000BADC; -func_8000BF44 = 0x8000BF44; +racerfx_update = 0x8000BADC; +racerfx_get_boost = 0x8000BF44; allocate_object_pools = 0x8000BF8C; decrypt_magic_codes = 0x8000C2D8; clear_object_pointers = 0x8000C460; @@ -2045,10 +2045,10 @@ D_800DC73C = 0x800DCCAC; D_800DC740 = 0x800DCCB0; gSwapLeadPlayer = 0x800DCCB4; D_800DC748 = 0x800DCCB8; -D_800DC74C = 0x800DCCBC; -D_800DC754 = 0x800DCCC4; +gBoostVerts = 0x800DCCBC; +gBoostTris = 0x800DCCC4; gShieldEffectObject = 0x800DCCCC; -D_800DC760 = 0x800DCCD0; +gBoostObjOverrideID = 0x800DCCD0; gMagnetEffectObject = 0x800DCCD4; D_800DC768 = 0x800DCCD8; D_800DC76C = 0x800DCCDC; @@ -3360,17 +3360,17 @@ gEnvmapPos = 0x8011B568; D_8011AFEE = 0x8011B56E; D_8011AFF0 = 0x8011B570; D_8011AFF4 = 0x8011B574; -D_8011AFF8 = 0x8011B578; +gBoostVertCount = 0x8011B578; D_8011AFFC = 0x8011B57C; -D_8011B000 = 0x8011B580; +gBoostTriCount = 0x8011B580; D_8011B004 = 0x8011B584; -D_8011B008 = 0x8011B588; -D_8011B010 = 0x8011B590; -D_8011B020 = 0x8011B5A0; +gBoostVertFlip = 0x8011B588; +gShieldSineTime = 0x8011B590; +gBoostEffectObjects = 0x8011B5A0; D_8011B048 = 0x8011B5C8; D_8011B058 = 0x8011B5D8; D_8011B068 = 0x8011B5E8; -D_8011B078 = 0x8011B5F8; +gRacerFXData = 0x8011B5F8; D_8011B07B = 0x8011B5FB; D_8011B080 = 0x8011B600; gSceneCurrDisplayList = 0x8011B620;