diff --git a/pack/symbols.yml b/pack/symbols.yml index f33fa56d..e639148f 100644 --- a/pack/symbols.yml +++ b/pack/symbols.yml @@ -18083,7 +18083,7 @@ global: 0x805940d4: 'unk_805940d4' 0x80594134: 'unk_80594134' 0x805941bc: 'unk_805941bc' - 0x805943b4: 'PlayerSub1c_construct' + 0x805943b4: '__ct__Q24Kart9KartStateFPQ24Kart12KartSettings' 0x8059455c: 'init__Q24Kart9KartStateFv' 0x80594594: 'reset__Q24Kart9KartStateFv' 0x80594634: 'resetOob__Q24Kart9KartStateFv' @@ -36585,7 +36585,7 @@ global: 0x808b64e8: 'lbl_808b64e8' 0x808b64f8: 'lbl_808b64f8' 0x808b6528: 'lbl_808b6528' - 0x808b6534: 'lbl_808b6534' + 0x808b6534: '__vt__Q24Kart9KartState' 0x808b6540: 'lbl_808b6540' 0x808b6558: 'lbl_808b6558' 0x808b656c: 'lbl_808b656c' @@ -38849,7 +38849,7 @@ global: 0x809bd718: 'lbl_809bd718' 0x809bd720: 'lbl_809bd720' 0x809bd728: 'spInstance__Q26System10RaceConfig' - 0x809bd730: 'lbl_809bd730' + 0x809bd730: 'spInstance__Q26System11RaceManager' 0x809bd738: 'spInstance__Q26System15ResourceManager' 0x809bd740: 'spInstance__Q26System9InitScene' 0x809bd748: 'lbl_809bd748' @@ -38908,8 +38908,8 @@ global: 0x809c1940: 'lbl_809c1940' 0x809c1944: 'lbl_809c1944' 0x809c1948: 'lbl_809c1948' - 0x809c1950: 'lbl_809c1950' - 0x809c1951: 'lbl_809c1951' + 0x809c1950: 'isPlayerOnlineLocal__4Kart' + 0x809c1951: 'isPlayerOnlineRemote__4Kart' 0x809c1954: 'lbl_809c1954' 0x809c1958: 'lbl_809c1958' 0x809c1960: 'lbl_809c1960' diff --git a/source/decomp.h b/source/decomp.h index 2790330d..47a86215 100644 --- a/source/decomp.h +++ b/source/decomp.h @@ -98,6 +98,15 @@ typedef struct { __RelSymbolDef rel_sym_##name = {addr, (const void*)&name}; \ FORCEACTIVE_DATA(rel_sym_##name) +#ifndef SHIFTABLE +#define DEFINE_REL_DATA(name, addr, type, val) \ + extern "C" UNKNOWN_DATA(name); \ + REL_SYMBOL_AT(name, addr); +#else +#define DEFINE_REL_DATA(name, addr, type, val) \ + static type name = val; +#endif + #define cr0lt 0 #define cr0gt 1 #define cr0eq 2 diff --git a/source/game/geo/ObjKoopaFigure64.cpp b/source/game/geo/ObjKoopaFigure64.cpp index 900e5931..400da120 100644 --- a/source/game/geo/ObjKoopaFigure64.cpp +++ b/source/game/geo/ObjKoopaFigure64.cpp @@ -51,7 +51,7 @@ extern UNKNOWN_DATA(lbl_808c5c84); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c18f8 extern UNKNOWN_DATA(lbl_809c18f8); // PAL: 0x809c21d0 diff --git a/source/game/geo/ObjKuribo.cpp b/source/game/geo/ObjKuribo.cpp index 363d78f8..866c15d6 100644 --- a/source/game/geo/ObjKuribo.cpp +++ b/source/game/geo/ObjKuribo.cpp @@ -108,7 +108,7 @@ extern UNKNOWN_DATA(lbl_808c5f0c); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c2f44 extern UNKNOWN_DATA(spInstance__Q25Field11CourseModel); // PAL: 0x809c3618 diff --git a/source/game/geo/ObjSunDS.cpp b/source/game/geo/ObjSunDS.cpp index 9479c897..ae7113fb 100644 --- a/source/game/geo/ObjSunDS.cpp +++ b/source/game/geo/ObjSunDS.cpp @@ -48,7 +48,7 @@ extern UNKNOWN_DATA(lbl_808c6310); // PAL: 0x808c6410 extern UNKNOWN_DATA(lbl_808c6410); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c19b8 extern UNKNOWN_DATA(lbl_809c19b8); } diff --git a/source/game/kart/KartCollide.cpp b/source/game/kart/KartCollide.cpp index bb09f85a..b04e7ccd 100644 --- a/source/game/kart/KartCollide.cpp +++ b/source/game/kart/KartCollide.cpp @@ -278,7 +278,7 @@ extern UNKNOWN_DATA(spInstance__Q26System9CourseMap); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c18d8 extern UNKNOWN_DATA(lbl_809c18d8); // PAL: 0x809c18f8 diff --git a/source/game/kart/KartMove.cpp b/source/game/kart/KartMove.cpp index a0b11940..bcea5978 100644 --- a/source/game/kart/KartMove.cpp +++ b/source/game/kart/KartMove.cpp @@ -693,7 +693,7 @@ extern UNKNOWN_DATA(spInstance__Q26System9CourseMap); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c18e0 extern UNKNOWN_DATA(lbl_809c18e0); // PAL: 0x809c18f8 diff --git a/source/game/kart/KartObjectProxy.cpp b/source/game/kart/KartObjectProxy.cpp index 8485df66..9c5d33fc 100644 --- a/source/game/kart/KartObjectProxy.cpp +++ b/source/game/kart/KartObjectProxy.cpp @@ -87,7 +87,7 @@ extern UNKNOWN_FUNCTION(unk_808646f0); // Extern data references. // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c18f8 extern UNKNOWN_DATA(lbl_809c18f8); } @@ -530,7 +530,7 @@ asm UNKNOWN_FUNCTION(unk_80590a4c){ } namespace Kart { -s8 KartObjectProxy::getPlayerIdx() const { return mAccessor->kartSettings->playerIdx; } +u8 KartObjectProxy::getPlayerIdx() const { return mAccessor->kartSettings->playerIdx; } } // Symbol: PlayerPointers_isBike diff --git a/source/game/kart/KartObjectProxy.hpp b/source/game/kart/KartObjectProxy.hpp index 80db9d51..3dc2e42f 100644 --- a/source/game/kart/KartObjectProxy.hpp +++ b/source/game/kart/KartObjectProxy.hpp @@ -491,7 +491,7 @@ class KartObjectProxy { BspWheel* bspWheel(s32 idx) const; KartModel* kartModel(); - s8 getPlayerIdx() const; + u8 getPlayerIdx() const; KartAction* kartAction(); const KartAction* kartAction() const; bool hasCamera(); diff --git a/source/game/kart/KartSettings.hpp b/source/game/kart/KartSettings.hpp index 534a1446..d4eb9e8d 100644 --- a/source/game/kart/KartSettings.hpp +++ b/source/game/kart/KartSettings.hpp @@ -19,7 +19,7 @@ class KartSettings { System::CharacterId character; u16 susCount; u16 wheelCount; - s8 playerIdx; + u8 playerIdx; KartParam* kartParam; void* _18; KartDriverDispParams* kartDriverDispParams; diff --git a/source/game/kart/KartState.cpp b/source/game/kart/KartState.cpp index fd9e7da2..52a16965 100644 --- a/source/game/kart/KartState.cpp +++ b/source/game/kart/KartState.cpp @@ -4,9 +4,8 @@ extern "C" { - // PAL: 0x805943b4..0x8059455c -UNKNOWN_FUNCTION(PlayerSub1c_construct); +UNKNOWN_FUNCTION(__ct__Q24Kart9KartStateFPQ24Kart12KartSettings); // PAL: 0x8059455c..0x80594594 UNKNOWN_FUNCTION(init__Q24Kart9KartStateFv); // PAL: 0x80594594..0x80594634 @@ -145,13 +144,13 @@ extern UNKNOWN_DATA(RKSystem_ey); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809c18f8 extern UNKNOWN_DATA(lbl_809c18f8); // PAL: 0x809c1950 -extern UNKNOWN_DATA(lbl_809c1950); +extern UNKNOWN_DATA(isPlayerOnlineLocal__4Kart); // PAL: 0x809c1951 -extern UNKNOWN_DATA(lbl_809c1951); +extern UNKNOWN_DATA(isPlayerOnlineRemote__4Kart); } // --- EXTERN DECLARATIONS END --- @@ -160,13 +159,7 @@ extern UNKNOWN_DATA(lbl_809c1951); const u32 lbl_80891ef0[] = { 0x00000000 }; -const u32 lbl_80891ef4[] = { - 0x3f800000 -}; -const u32 lbl_80891ef8[] = { - 0x43300000, 0x80000000, 0x41200000, 0x3f4ccccd, - 0x3f59999a, 0x3d4ccccd, 0xc1b00000, 0xc0e00000 -}; +//DEFINE_REL_DATA(lbl_80891ef0, 0x80891ef0, const f32, 0.0f); // .data #pragma explicit_zero_data on @@ -181,18 +174,83 @@ u32 lbl_808b64f8[] = { u32 lbl_808b6528[] = { 0x00b40000, 0x0000000a, 0x42200000 }; -u32 lbl_808b6534[] = { +u32 __vt__Q24Kart9KartState[] = { 0x00000000, 0x00000000, (u32)&PlayerSub1c_destroy }; #pragma explicit_zero_data off -// .bss +#include "KartState.hpp" + +/* + * https://decomp.me/scratch/7prZZ +namespace Kart { +extern bool isPlayerOnlineLocal; +extern bool isPlayerOnlineRemote; + +MARK_FLOW_CHECK(0x805943b4); +KartState::KartState(KartSettings* settings) { + using namespace System; + + mAirtime = 0; + _24 = 0.0f; + mCannonPointId = 0; + mStartBoostIdx = 0; + mUp.setZero(); + mProxy = new KartObjectProxy; + + RaceConfig::Player::Type playerType = RaceConfig::spInstance->mRaceScenario.mPlayers[settings->playerIdx].mPlayerType; + switch (playerType) { + case RaceConfig::Player::TYPE_REAL_LOCAL: + set(KART_FLAG_LOCAL); + break; + case RaceConfig::Player::TYPE_CPU: + set(KART_FLAG_CPU); + break; + case RaceConfig::Player::TYPE_GHOST: + set(KART_FLAG_GHOST); + break; + } + + if (isPlayerOnlineLocal) { + set(KART_FLAG_ONLINE_LOCAL); + } else if (isPlayerOnlineRemote) { + set(KART_FLAG_ONLINE_REMOTE); + } + + KPadController* controller = RaceManager::spInstance->players[settings->playerIdx]->kpadPlayer->mController; + bool isAuto; + if (!controller) { + isAuto = false; + } else { + isAuto = controller->mDriftIsAuto; + } + + if (isAuto) { + set(KART_FLAG_AUTOMATIC_DRIFT); + } + + if (RaceConfig::spInstance->mRaceScenario.mSettings.mGameMode == RaceConfig::Settings::GAMEMODE_AWARDS && + RaceConfig::spInstance->mRaceScenario.mSettings.mCameraMode == RaceConfig::Settings::CAMERA_MODE_LOSS) { + set(KART_FLAG_SET_SPEED_ZERO); + set(KART_FLAG_DEMO_LOSS); + } +} +} +*/ + +const u32 lbl_80891ef4[] = { + 0x3f800000 +}; +const u32 lbl_80891ef8[] = { + 0x43300000, 0x80000000, 0x41200000, 0x3f4ccccd, + 0x3f59999a, 0x3d4ccccd, 0xc1b00000, 0xc0e00000 +}; -// Symbol: PlayerSub1c_construct +// Symbol: __ct__Q24Kart9KartStateFPQ24Kart12KartSettings // PAL: 0x805943b4..0x8059455c -MARK_BINARY_BLOB(PlayerSub1c_construct, 0x805943b4, 0x8059455c); -asm UNKNOWN_FUNCTION(PlayerSub1c_construct) { +MARK_BINARY_BLOB(__ct__Q24Kart9KartStateFPQ24Kart12KartSettings, 0x805943b4, 0x8059455c); +asm UNKNOWN_FUNCTION(__ct__Q24Kart9KartStateFPQ24Kart12KartSettings) { #include "asm/805943b4.s" } diff --git a/source/game/kart/KartState.hpp b/source/game/kart/KartState.hpp index 795166cb..5360ed29 100644 --- a/source/game/kart/KartState.hpp +++ b/source/game/kart/KartState.hpp @@ -9,7 +9,7 @@ extern "C" { #endif // PAL: 0x805943b4..0x8059455c -UNKNOWN_FUNCTION(PlayerSub1c_construct); +UNKNOWN_FUNCTION(__ct__Q24Kart9KartStateFPQ24Kart12KartSettings); // PAL: 0x8059455c..0x80594594 UNKNOWN_FUNCTION(init__Q24Kart9KartStateFv); // PAL: 0x80594594..0x80594634 @@ -53,6 +53,8 @@ UNKNOWN_FUNCTION(PlayerSub1c_destroy); #include #include +#include +#include namespace Kart { @@ -78,11 +80,20 @@ enum KartFlags { KART_FLAG_STH_61 = 0x61, KART_FLAG_STH_WALL_COL = 0x63, KART_FLAG_STH_KILLER = 0x6a, + KART_FLAG_CPU = 0x80, + KART_FLAG_LOCAL = 0x81, + KART_FLAG_ONLINE_LOCAL = 0x82, KART_FLAG_ONLINE_REMOTE = 0x83, + KART_FLAG_AUTOMATIC_DRIFT = 0x84, + KART_FLAG_GHOST = 0x86, + KART_FLAG_SET_SPEED_ZERO = 0x89, + KART_FLAG_DEMO_LOSS = 0x8b, }; class KartState { public: + KartState(KartSettings* settings); + virtual ~KartState(); void init(); void reset(); void resetOob(); @@ -102,16 +113,15 @@ class KartState { void setHalfpipeInvisibilityTimer(s32 timer) { mHalfpipeInvisibilityTimer = timer; } private: - u8 _00[0x04 - 0x00]; RKBitField<160> mFlags; KartObjectProxy* mProxy; u32 mAirtime; u8 _20[0x24 - 0x20]; - f32 m_24; - EGG::Vector3f mTop; + f32 _24; + EGG::Vector3f mUp; u8 _34[0x40 - 0x34]; EGG::Vector3f _40; - EGG::Vector3f m_4c; + EGG::Vector3f _4c; u32 _58; u32 _5c; u8 _60[0x6c - 0x60]; @@ -128,9 +138,9 @@ class KartState { s16 mWipeFrame; u8 _96[0x9c - 0x96]; f32 mStartBoostCharge; - u8 _a0[0xa4 - 0xa0]; - u16 m_a4; - u16 m_a6; + s32 mStartBoostIdx; + u16 _a4; + u16 _a6; EGG::Vector3f m_a8; u8 _b4[0xc0 - 0xb4]; }; diff --git a/source/game/system/CourseMap.cpp b/source/game/system/CourseMap.cpp index 7a84b349..103586ac 100644 --- a/source/game/system/CourseMap.cpp +++ b/source/game/system/CourseMap.cpp @@ -177,7 +177,7 @@ extern UNKNOWN_DATA(lbl_802a4148); extern UNKNOWN_DATA(lbl_8088f8e8); // PAL: 0x8088fa38 extern UNKNOWN_DATA(TWENTY_FIVE__6System); -extern UNKNOWN_DATA(ZERO_FLOAT2__6System); +extern UNKNOWN_DATA(ZERO_FLOAT2); // PAL: 0x8088fa44 extern UNKNOWN_DATA(lbl_8088fa44); // PAL: 0x8088fa48 @@ -225,13 +225,7 @@ namespace System { // .rodata extern const f32 TWENTY_FIVE; const f32 TWENTY_FIVE = 25.0f; - -#ifndef SHIFTABLE -extern f32 ZERO_FLOAT2; -REL_SYMBOL_AT(ZERO_FLOAT2, 0x8088fa3c) -#else -static const f32 ZERO_FLOAT2 = 0.0f; -#endif +DEFINE_REL_DATA(ZERO_FLOAT2, 0x8088fa3c, const f32, 0.0f); // .bss CourseMap* CourseMap::spInstance; @@ -1827,12 +1821,12 @@ asm UNKNOWN_FUNCTION(unk_80514c30) { /* 80514C30 3CA08089 */ lis r5, lbl_8088fa6c@ha /* 80514C34 9421FFE0 */ stwu r1, -0x20(r1) /* 80514C38 C005FA6C */ lfs f0, lbl_8088fa6c@l(r5) - /* 80514C3C 3C808089 */ lis r4, ZERO_FLOAT2__6System@ha + /* 80514C3C 3C808089 */ lis r4, ZERO_FLOAT2@ha /* 80514C40 D0030004 */ stfs f0, 4(r3) /* 80514C44 3CC0809C */ lis r6, spInstance__Q26System9CourseMap@ha /* 80514C48 80A30000 */ lwz r5, 0(r3) /* 80514C4C D0030008 */ stfs f0, 8(r3) - /* 80514C50 C044FA3C */ lfs f2, ZERO_FLOAT2__6System@l(r4) + /* 80514C50 C044FA3C */ lfs f2, ZERO_FLOAT2@l(r4) /* 80514C54 89050000 */ lbz r8, 0(r5) /* 80514C58 480000B8 */ b lbl_80514d10 lbl_80514c5c: @@ -2862,9 +2856,9 @@ asm UNKNOWN_FUNCTION(unk_80515624) { /* 80515988 90830038 */ stw r4, 0x38(r3) /* 8051598C B0030004 */ sth r0, 4(r3) lbl_80515990: - /* 80515990 3C608089 */ lis r3, ZERO_FLOAT2__6System@ha + /* 80515990 3C608089 */ lis r3, ZERO_FLOAT2@ha /* 80515994 7FFEFB78 */ mr r30, r31 - /* 80515998 C3E3FA3C */ lfs f31, ZERO_FLOAT2__6System@l(r3) + /* 80515998 C3E3FA3C */ lfs f31, ZERO_FLOAT2@l(r3) /* 8051599C 3BA00000 */ li r29, 0x0 lbl_805159a0: /* 805159A0 A01F0004 */ lhz r0, 4(r31) @@ -3699,8 +3693,8 @@ asm bool System::MapdataAreaBox::isInsideShape(const EGG::Vector3f& pos) const { /* 8051644C EC22082A */ fadds f1, f2, f1 /* 80516450 FC010040 */ opword 0xfc010040 /* 80516454 41810014 */ bgt- lbl_80516468 - /* 80516458 3C808089 */ lis r4, ZERO_FLOAT2__6System@ha - /* 8051645C C004FA3C */ lfs f0, ZERO_FLOAT2__6System@l(r4) + /* 80516458 3C808089 */ lis r4, ZERO_FLOAT2@ha + /* 8051645C C004FA3C */ lfs f0, ZERO_FLOAT2@l(r4) /* 80516460 FC010040 */ opword 0xfc010040 /* 80516464 4080000C */ bge- lbl_80516470 lbl_80516468: diff --git a/source/game/system/GhostFile.cpp b/source/game/system/GhostFile.cpp index 2f3cebac..6e95ef9f 100644 --- a/source/game/system/GhostFile.cpp +++ b/source/game/system/GhostFile.cpp @@ -17,7 +17,7 @@ extern "C" u8 getLapCount(); extern "C" UNKNOWN_FUNCTION(RaceinfoPlayer_getLapSplit); // PAL: 0x8054a9b8 extern "C" UNKNOWN_FUNCTION(SaveManager_getLocation); -extern "C" UNKNOWN_DATA(lbl_809bd730); +extern "C" UNKNOWN_DATA(spInstance__Q26System11RaceManager); extern "C" UNKNOWN_DATA(__vt__Q26System4Time); extern "C" UNKNOWN_DATA(spInstance__Q26System10RaceConfig); extern "C" UNKNOWN_DATA(spInstance__Q26System12KPadDirector); @@ -405,10 +405,10 @@ asm void GhostFile::init(u8 playerId) { /* 8051CB20 7C0802A6 */ mflr r0 /* 8051CB24 90010074 */ stw r0, 0x74(r1) /* 8051CB28 BF61005C */ stmw r27, 0x5c(r1) -/* 8051CB2C 3FE0809C */ lis r31, lbl_809bd730@ha +/* 8051CB2C 3FE0809C */ lis r31, spInstance__Q26System11RaceManager@ha /* 8051CB30 7C7D1B78 */ mr r29, r3 /* 8051CB34 7C9E2378 */ mr r30, r4 -/* 8051CB38 807FD730 */ lwz r3, lbl_809bd730@l(r31) +/* 8051CB38 807FD730 */ lwz r3, spInstance__Q26System11RaceManager@l(r31) /* 8051CB3C 48016B69 */ bl getLapCount /* 8051CB40 987D0064 */ stb r3, 0x64(r29) /* 8051CB44 38000000 */ li r0, 0x0 @@ -428,7 +428,7 @@ asm void GhostFile::init(u8 playerId) { /* 8051CB7C 3B600000 */ li r27, 0x0 /* 8051CB80 48000050 */ b lbl_8051cbd0 lbl_8051cb84: -/* 8051CB84 807FD730 */ lwz r3, lbl_809bd730@l(r31) +/* 8051CB84 807FD730 */ lwz r3, spInstance__Q26System11RaceManager@l(r31) /* 8051CB88 381B0001 */ addi r0, r27, 0x1 /* 8051CB8C 5404063E */ clrlwi r4, r0, 0x18 /* 8051CB90 38A10018 */ addi r5, r1, 0x18 @@ -453,9 +453,9 @@ asm void GhostFile::init(u8 playerId) { /* 8051CBD8 7C030040 */ cmplw r3, r0 /* 8051CBDC 4180FFA8 */ blt+ lbl_8051cb84 lbl_8051cbe0: -/* 8051CBE0 3C60809C */ lis r3, lbl_809bd730@ha +/* 8051CBE0 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 8051CBE4 57C015BA */ rlwinm r0, r30, 2, 0x16, 0x1d -/* 8051CBE8 8063D730 */ lwz r3, lbl_809bd730@l(r3) +/* 8051CBE8 8063D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r3) /* 8051CBEC 1FFE00F0 */ mulli r31, r30, 0xf0 /* 8051CBF0 3CA0809C */ lis r5, spInstance__Q26System10RaceConfig@ha /* 8051CBF4 8083000C */ lwz r4, 0xc(r3) diff --git a/source/game/system/RaceConfig.cpp b/source/game/system/RaceConfig.cpp index 4f1ef2e6..bd122ff8 100644 --- a/source/game/system/RaceConfig.cpp +++ b/source/game/system/RaceConfig.cpp @@ -101,7 +101,7 @@ extern UNKNOWN_DATA(spInstance__Q26System9InitScene); // PAL: 0x80890030 extern UNKNOWN_DATA(VS_POINT_DISTRIBUTION__6System); // PAL: 0x809bd730 -extern UNKNOWN_DATA(lbl_809bd730); +extern UNKNOWN_DATA(spInstance__Q26System11RaceManager); // PAL: 0x809bd728 extern UNKNOWN_DATA(spInstance__Q26System10RaceConfig); // PAL: 0x809bd70c @@ -406,14 +406,14 @@ asm UNKNOWN_FUNCTION(unk_8052e950) { /* 8052E9A8 38840030 */ addi r4, r4, VS_POINT_DISTRIBUTION__6System@l /* 8052E9AC 7E840214 */ add r20, r4, r0 /* 8052E9B0 3A200000 */ li r17, 0x0 - /* 8052E9B4 3FC0809C */ lis r30, lbl_809bd730@ha + /* 8052E9B4 3FC0809C */ lis r30, spInstance__Q26System11RaceManager@ha /* 8052E9B8 3BA00001 */ li r29, 0x1 /* 8052E9BC 3FE04330 */ lis r31, 0x4330 /* 8052E9C0 3B400000 */ li r26, 0x0 /* 8052E9C4 3DC08089 */ lis r14, lbl_8088ffa8@ha /* 8052E9C8 48000284 */ b lbl_8052ec4c lbl_8052e9cc: - /* 8052E9CC 807ED730 */ lwz r3, lbl_809bd730@l(r30) + /* 8052E9CC 807ED730 */ lwz r3, spInstance__Q26System11RaceManager@l(r30) /* 8052E9D0 563315BA */ rlwinm r19, r17, 2, 0x16, 0x1d /* 8052E9D4 80D5D728 */ lwz r6, spInstance__Q26System10RaceConfig@l(r21) /* 8052E9D8 38800000 */ li r4, 0x0 @@ -473,7 +473,7 @@ asm UNKNOWN_FUNCTION(unk_8052e950) { lbl_8052ea9c: /* 8052EA9C 2C050000 */ cmpwi r5, 0x0 /* 8052EAA0 41820034 */ beq- lbl_8052ead4 - /* 8052EAA4 80BED730 */ lwz r5, lbl_809bd730@l(r30) + /* 8052EAA4 80BED730 */ lwz r5, spInstance__Q26System11RaceManager@l(r30) /* 8052EAA8 560415BA */ rlwinm r4, r16, 2, 0x16, 0x1d /* 8052EAAC 80A5000C */ lwz r5, 0xc(r5) /* 8052EAB0 7C85202E */ lwzx r4, r5, r4 @@ -487,7 +487,7 @@ asm UNKNOWN_FUNCTION(unk_8052e950) { /* 8052EACC 38600001 */ li r3, 0x1 /* 8052EAD0 48000030 */ b lbl_8052eb00 lbl_8052ead4: - /* 8052EAD4 80BED730 */ lwz r5, lbl_809bd730@l(r30) + /* 8052EAD4 80BED730 */ lwz r5, spInstance__Q26System11RaceManager@l(r30) /* 8052EAD8 560415BA */ rlwinm r4, r16, 2, 0x16, 0x1d /* 8052EADC 80A5000C */ lwz r5, 0xc(r5) /* 8052EAE0 7C85202E */ lwzx r4, r5, r4 @@ -580,7 +580,7 @@ asm UNKNOWN_FUNCTION(unk_8052e950) { /* 8052EC18 2C000003 */ cmpwi r0, 0x3 /* 8052EC1C 40820018 */ bne- lbl_8052ec34 lbl_8052ec20: - /* 8052EC20 807ED730 */ lwz r3, lbl_809bd730@l(r30) + /* 8052EC20 807ED730 */ lwz r3, spInstance__Q26System11RaceManager@l(r30) /* 8052EC24 8063000C */ lwz r3, 0xc(r3) /* 8052EC28 7C63982E */ lwzx r3, r3, r19 /* 8052EC2C A0630022 */ lhz r3, 0x22(r3) @@ -617,9 +617,9 @@ asm UNKNOWN_FUNCTION(unk_8052e950) { /* 8052EC90 800F0B50 */ lwz r0, 0xb50(r15) /* 8052EC94 2C000000 */ cmpwi r0, 0x0 /* 8052EC98 40820058 */ bne- lbl_8052ecf0 - /* 8052EC9C 3C60809C */ lis r3, lbl_809bd730@ha + /* 8052EC9C 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 8052ECA0 3A000000 */ li r16, 0x0 - /* 8052ECA4 81E3D730 */ lwz r15, lbl_809bd730@l(r3) + /* 8052ECA4 81E3D730 */ lwz r15, spInstance__Q26System11RaceManager@l(r3) /* 8052ECA8 3DC0809C */ lis r14, spInstance__Q26System10RaceConfig@ha /* 8052ECAC 48000030 */ b lbl_8052ecdc lbl_8052ecb0: diff --git a/source/game/system/RaceManager.cpp b/source/game/system/RaceManager.cpp index 784f3bcf..92504046 100644 --- a/source/game/system/RaceManager.cpp +++ b/source/game/system/RaceManager.cpp @@ -478,7 +478,7 @@ u32 lbl_808b34d8[] = {0x00000000, 0x00000000, (u32)&unk_805371a8, #pragma explicit_zero_data off // .bss -u8 lbl_809bd730[8]; +u8 spInstance__Q26System11RaceManager[8]; // Symbol: Raceinfo_initStaticInstance // PAL: 0x80532084..0x805320d4 @@ -488,9 +488,9 @@ asm UNKNOWN_FUNCTION(Raceinfo_initStaticInstance) { nofralloc /* 80532084 9421FFF0 */ stwu r1, -0x10(r1) /* 80532088 7C0802A6 */ mflr r0 - /* 8053208C 3C60809C */ lis r3, lbl_809bd730@ha + /* 8053208C 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 80532090 90010014 */ stw r0, 0x14(r1) - /* 80532094 8003D730 */ lwz r0, lbl_809bd730@l(r3) + /* 80532094 8003D730 */ lwz r0, spInstance__Q26System11RaceManager@l(r3) /* 80532098 2C000000 */ cmpwi r0, 0x0 /* 8053209C 40820020 */ bne- lbl_805320bc /* 805320A0 3860004C */ li r3, 0x4c @@ -499,12 +499,12 @@ asm UNKNOWN_FUNCTION(Raceinfo_initStaticInstance) { /* 805320AC 41820008 */ beq- lbl_805320b4 /* 805320B0 480006F1 */ bl Raceinfo_construct lbl_805320b4: - /* 805320B4 3C80809C */ lis r4, lbl_809bd730@ha - /* 805320B8 9064D730 */ stw r3, lbl_809bd730@l(r4) + /* 805320B4 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha + /* 805320B8 9064D730 */ stw r3, spInstance__Q26System11RaceManager@l(r4) lbl_805320bc: /* 805320BC 80010014 */ lwz r0, 0x14(r1) - /* 805320C0 3C60809C */ lis r3, lbl_809bd730@ha - /* 805320C4 8063D730 */ lwz r3, lbl_809bd730@l(r3) + /* 805320C0 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha + /* 805320C4 8063D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r3) /* 805320C8 7C0803A6 */ mtlr r0 /* 805320CC 38210010 */ addi r1, r1, 0x10 /* 805320D0 4E800020 */ blr // clang-format on @@ -518,9 +518,9 @@ asm UNKNOWN_FUNCTION(Raceinfo_destroyStaticInstance) { nofralloc /* 805320D4 9421FFF0 */ stwu r1, -0x10(r1) /* 805320D8 7C0802A6 */ mflr r0 - /* 805320DC 3C60809C */ lis r3, lbl_809bd730@ha + /* 805320DC 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 805320E0 90010014 */ stw r0, 0x14(r1) - /* 805320E4 8063D730 */ lwz r3, lbl_809bd730@l(r3) + /* 805320E4 8063D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r3) /* 805320E8 2C030000 */ cmpwi r3, 0x0 /* 805320EC 4182001C */ beq- lbl_80532108 /* 805320F0 41820018 */ beq- lbl_80532108 @@ -530,9 +530,9 @@ asm UNKNOWN_FUNCTION(Raceinfo_destroyStaticInstance) { /* 80532100 7D8903A6 */ mtctr r12 /* 80532104 4E800421 */ bctrl lbl_80532108: - /* 80532108 3C60809C */ lis r3, lbl_809bd730@ha + /* 80532108 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 8053210C 38000000 */ li r0, 0x0 - /* 80532110 9003D730 */ stw r0, lbl_809bd730@l(r3) + /* 80532110 9003D730 */ stw r0, spInstance__Q26System11RaceManager@l(r3) /* 80532114 80010014 */ lwz r0, 0x14(r1) /* 80532118 7C0803A6 */ mtlr r0 /* 8053211C 38210010 */ addi r1, r1, 0x10 @@ -2248,7 +2248,7 @@ asm UNKNOWN_FUNCTION(unk_805336d8) { /* 805336EC 3C80809C */ lis r4, spInstance__Q26System10RaceConfig@ha /* 805336F0 3CC08089 */ lis r6, lbl_80890170@ha /* 805336F4 80E4D728 */ lwz r7, spInstance__Q26System10RaceConfig@l(r4) - /* 805336F8 3C80809C */ lis r4, lbl_809bd730@ha + /* 805336F8 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 805336FC 3CA08089 */ lis r5, lbl_80890160@ha /* 80533700 3D008089 */ lis r8, lbl_80890168@ha /* 80533704 8BE70024 */ lbz r31, 0x24(r7) @@ -2257,7 +2257,7 @@ asm UNKNOWN_FUNCTION(unk_805336d8) { /* 80533710 38C10008 */ addi r6, r1, 0x8 /* 80533714 C8650160 */ lfd f3, lbl_80890160@l(r5) /* 80533718 38A00000 */ li r5, 0x0 - /* 8053371C 8084D730 */ lwz r4, lbl_809bd730@l(r4) + /* 8053371C 8084D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r4) /* 80533720 3D404330 */ lis r10, 0x4330 /* 80533724 C8280168 */ lfd f1, lbl_80890168@l(r8) /* 80533728 480000E0 */ b lbl_80533808 @@ -2682,10 +2682,10 @@ asm UNKNOWN_FUNCTION(unk_80533c6c) { /* 80533CB8 4BFF0915 */ bl endGhostProxy__Q26System12KPadDirectorFUc lbl_80533cbc: /* 80533CBC 3C80809C */ lis r4, spInstance__Q26System10RaceConfig@ha - /* 80533CC0 3C60809C */ lis r3, lbl_809bd730@ha + /* 80533CC0 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 80533CC4 80A4D728 */ lwz r5, spInstance__Q26System10RaceConfig@l(r4) /* 80533CC8 3BC00000 */ li r30, 0x0 - /* 80533CCC 8083D730 */ lwz r4, lbl_809bd730@l(r3) + /* 80533CCC 8083D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r3) /* 80533CD0 38C00000 */ li r6, 0x0 /* 80533CD4 88A50024 */ lbz r5, 0x24(r5) /* 80533CD8 4800002C */ b lbl_80533d04 @@ -2785,14 +2785,14 @@ asm UNKNOWN_FUNCTION(unk_80533dd4) { /* 80533DFC 80C3000C */ lwz r6, 0xc(r3) /* 80533E00 38870001 */ addi r4, r7, 0x1 /* 80533E04 9883001D */ stb r4, 0x1d(r3) - /* 80533E08 3C80809C */ lis r4, lbl_809bd730@ha + /* 80533E08 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 80533E0C 38E00000 */ li r7, 0x0 /* 80533E10 7CC6002E */ lwzx r6, r6, r0 /* 80533E14 80060038 */ lwz r0, 0x38(r6) /* 80533E18 60000010 */ ori r0, r0, 0x10 /* 80533E1C 90060038 */ stw r0, 0x38(r6) /* 80533E20 80C5D728 */ lwz r6, spInstance__Q26System10RaceConfig@l(r5) - /* 80533E24 80A4D730 */ lwz r5, lbl_809bd730@l(r4) + /* 80533E24 80A4D730 */ lwz r5, spInstance__Q26System11RaceManager@l(r4) /* 80533E28 88C60024 */ lbz r6, 0x24(r6) /* 80533E2C 4800002C */ b lbl_80533e58 lbl_80533e30: @@ -3060,14 +3060,14 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_init) { nofralloc /* 80534194 9421FFE0 */ stwu r1, -0x20(r1) /* 80534198 7C0802A6 */ mflr r0 - /* 8053419C 3C80809C */ lis r4, lbl_809bd730@ha + /* 8053419C 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 805341A0 90010024 */ stw r0, 0x24(r1) /* 805341A4 93E1001C */ stw r31, 0x1c(r1) /* 805341A8 7C7F1B78 */ mr r31, r3 /* 805341AC 93C10018 */ stw r30, 0x18(r1) /* 805341B0 3BC00000 */ li r30, 0x0 /* 805341B4 B3C30022 */ sth r30, 0x22(r3) - /* 805341B8 8064D730 */ lwz r3, lbl_809bd730@l(r4) + /* 805341B8 8064D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r4) /* 805341BC 3880000A */ li r4, 0xa /* 805341C0 80630008 */ lwz r3, 8(r3) /* 805341C4 48021409 */ bl nextU32__Q24Util6RandomFUl @@ -3206,8 +3206,8 @@ asm UNKNOWN_FUNCTION(unk_805342e8) { /* 80534394 EC21102A */ fadds f1, f1, f2 /* 80534398 40810044 */ ble- lbl_805343dc /* 8053439C EC210024 */ fdivs f1, f1, f0 - /* 805343A0 3C60809C */ lis r3, lbl_809bd730@ha - /* 805343A4 8083D730 */ lwz r4, lbl_809bd730@l(r3) + /* 805343A0 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha + /* 805343A4 8083D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r3) /* 805343A8 38610014 */ addi r3, r1, 0x14 /* 805343AC 80840014 */ lwz r4, 0x14(r4) /* 805343B0 38840004 */ addi r4, r4, 0x4 @@ -3335,12 +3335,12 @@ asm UNKNOWN_FUNCTION(unk_805342e8) { /* 80534570 B0A10034 */ sth r5, 0x34(r1) /* 80534574 480000E0 */ b lbl_80534654 lbl_80534578: - /* 80534578 3FA0809C */ lis r29, lbl_809bd730@ha + /* 80534578 3FA0809C */ lis r29, spInstance__Q26System11RaceManager@ha /* 8053457C 38800010 */ li r4, 0x10 - /* 80534580 807DD730 */ lwz r3, lbl_809bd730@l(r29) + /* 80534580 807DD730 */ lwz r3, spInstance__Q26System11RaceManager@l(r29) /* 80534584 80630008 */ lwz r3, 8(r3) /* 80534588 48021045 */ bl nextU32__Q24Util6RandomFUl - /* 8053458C 80BDD730 */ lwz r5, lbl_809bd730@l(r29) + /* 8053458C 80BDD730 */ lwz r5, spInstance__Q26System11RaceManager@l(r29) /* 80534590 3C808089 */ lis r4, lbl_80890170@ha /* 80534594 9061003C */ stw r3, 0x3c(r1) /* 80534598 38E00000 */ li r7, 0x0 @@ -3519,7 +3519,7 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endRace) { /* 805347F4 9421FFF0 */ stwu r1, -0x10(r1) /* 805347F8 7C0802A6 */ mflr r0 /* 805347FC 39800000 */ li r12, 0x0 - /* 80534800 3D60809C */ lis r11, lbl_809bd730@ha + /* 80534800 3D60809C */ lis r11, spInstance__Q26System11RaceManager@ha /* 80534804 90010014 */ stw r0, 0x14(r1) /* 80534808 38000000 */ li r0, 0x0 /* 8053480C 39400001 */ li r10, 0x1 @@ -3529,7 +3529,7 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endRace) { /* 8053481C B0030050 */ sth r0, 0x50(r3) /* 80534820 48000040 */ b lbl_80534860 lbl_80534824: - /* 80534824 80EBD730 */ lwz r7, lbl_809bd730@l(r11) + /* 80534824 80EBD730 */ lwz r7, spInstance__Q26System11RaceManager@l(r11) /* 80534828 558015BA */ rlwinm r0, r12, 2, 0x16, 0x1d /* 8053482C 80E7000C */ lwz r7, 0xc(r7) /* 80534830 7CE7002E */ lwzx r7, r7, r0 @@ -3552,9 +3552,9 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endRace) { /* 80534868 88070024 */ lbz r0, 0x24(r7) /* 8053486C 7C090040 */ cmplw r9, r0 /* 80534870 4180FFB4 */ blt+ lbl_80534824 - /* 80534874 3CE0809C */ lis r7, lbl_809bd730@ha + /* 80534874 3CE0809C */ lis r7, spInstance__Q26System11RaceManager@ha /* 80534878 80030038 */ lwz r0, 0x38(r3) - /* 8053487C 80E7D730 */ lwz r7, lbl_809bd730@l(r7) + /* 8053487C 80E7D730 */ lwz r7, spInstance__Q26System11RaceManager@l(r7) /* 80534880 2C050000 */ cmpwi r5, 0x0 /* 80534884 60000002 */ ori r0, r0, 2 /* 80534888 81030040 */ lwz r8, 0x40(r3) @@ -3593,9 +3593,9 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endRace) { lbl_80534908: /* 80534908 88630008 */ lbz r3, 8(r3) /* 8053490C 4805B805 */ bl unk_80590110 - /* 80534910 3C60809C */ lis r3, lbl_809bd730@ha + /* 80534910 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 80534914 889F0008 */ lbz r4, 8(r31) - /* 80534918 8063D730 */ lwz r3, lbl_809bd730@l(r3) + /* 80534918 8063D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r3) /* 8053491C 4BFFF351 */ bl unk_80533c6c /* 80534920 80010014 */ lwz r0, 0x14(r1) /* 80534924 83E1000C */ lwz r31, 0xc(r1) @@ -3662,8 +3662,8 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endLap) { /* 805349CC 3BE00000 */ li r31, 0x0 /* 805349D0 9BE30028 */ stb r31, 0x28(r3) /* 805349D4 80A30038 */ lwz r5, 0x38(r3) - /* 805349D8 3CC0809C */ lis r6, lbl_809bd730@ha - /* 805349DC 8086D730 */ lwz r4, lbl_809bd730@l(r6) + /* 805349D8 3CC0809C */ lis r6, spInstance__Q26System11RaceManager@ha + /* 805349DC 8086D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r6) /* 805349E0 7C7D1B78 */ mr r29, r3 /* 805349E4 54A007BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e /* 805349E8 83C40014 */ lwz r30, 0x14(r4) @@ -3673,7 +3673,7 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_endLap) { /* 805349F8 A8830024 */ lha r4, 0x24(r3) /* 805349FC 38A40001 */ addi r5, r4, 0x1 /* 80534A00 B0A30024 */ sth r5, 0x24(r3) - /* 80534A04 8086D730 */ lwz r4, lbl_809bd730@l(r6) + /* 80534A04 8086D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r6) /* 80534A08 88040030 */ lbz r0, 0x30(r4) /* 80534A0C 2C000000 */ cmpwi r0, 0x0 /* 80534A10 41820250 */ beq- lbl_80534c60 @@ -4714,8 +4714,8 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_getLapSplit) { /* 80535754 9805000A */ stb r0, 0xa(r5) /* 80535758 4E800020 */ blr lbl_8053575c: - /* 8053575C 3CC0809C */ lis r6, lbl_809bd730@ha - /* 80535760 80C6D730 */ lwz r6, lbl_809bd730@l(r6) + /* 8053575C 3CC0809C */ lis r6, spInstance__Q26System11RaceManager@ha + /* 80535760 80C6D730 */ lwz r6, spInstance__Q26System11RaceManager@l(r6) /* 80535764 80C60014 */ lwz r6, 0x14(r6) /* 80535768 88060040 */ lbz r0, 0x40(r6) /* 8053576C 2C000000 */ cmpwi r0, 0x0 @@ -5167,10 +5167,10 @@ asm UNKNOWN_FUNCTION(TimeAttackGamemode_canEndRace) { /* 80535D74 4E800020 */ blr lbl_80535d78: /* 80535D78 3C80809C */ lis r4, spInstance__Q26System10RaceConfig@ha - /* 80535D7C 3C60809C */ lis r3, lbl_809bd730@ha + /* 80535D7C 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha /* 80535D80 80C4D728 */ lwz r6, spInstance__Q26System10RaceConfig@l(r4) /* 80535D84 38E00000 */ li r7, 0x0 - /* 80535D88 8083D730 */ lwz r4, lbl_809bd730@l(r3) + /* 80535D88 8083D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r3) /* 80535D8C 88A60024 */ lbz r5, 0x24(r6) /* 80535D90 38C60028 */ addi r6, r6, 0x28 /* 80535D94 48000040 */ b lbl_80535dd4 @@ -5211,14 +5211,14 @@ asm UNKNOWN_FUNCTION(unk_80535de8) { /* 80535DF4 93E1001C */ stw r31, 0x1c(r1) /* 80535DF8 3FE0809C */ lis r31, spInstance__Q26System10RaceConfig@ha /* 80535DFC 93C10018 */ stw r30, 0x18(r1) - /* 80535E00 3FC0809C */ lis r30, lbl_809bd730@ha + /* 80535E00 3FC0809C */ lis r30, spInstance__Q26System11RaceManager@ha /* 80535E04 93A10014 */ stw r29, 0x14(r1) /* 80535E08 3BA00000 */ li r29, 0x0 /* 80535E0C 93810010 */ stw r28, 0x10(r1) /* 80535E10 7C7C1B78 */ mr r28, r3 /* 80535E14 4800003C */ b lbl_80535e50 lbl_80535e18: - /* 80535E18 807ED730 */ lwz r3, lbl_809bd730@l(r30) + /* 80535E18 807ED730 */ lwz r3, spInstance__Q26System11RaceManager@l(r30) /* 80535E1C 57A615BA */ rlwinm r6, r29, 2, 0x16, 0x1d /* 80535E20 8063000C */ lwz r3, 0xc(r3) /* 80535E24 7C63302E */ lwzx r3, r3, r6 @@ -5361,9 +5361,9 @@ asm UNKNOWN_FUNCTION(unk_80535f28) { /* 80535FB0 38600000 */ li r3, 0x0 /* 80535FB4 48000020 */ b lbl_80535fd4 lbl_80535fb8: - /* 80535FB8 3C80809C */ lis r4, lbl_809bd730@ha + /* 80535FB8 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 80535FBC 546015BA */ rlwinm r0, r3, 2, 0x16, 0x1d - /* 80535FC0 8064D730 */ lwz r3, lbl_809bd730@l(r4) + /* 80535FC0 8064D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r4) /* 80535FC4 8063000C */ lwz r3, 0xc(r3) /* 80535FC8 7C63002E */ lwzx r3, r3, r0 /* 80535FCC 80030038 */ lwz r0, 0x38(r3) @@ -5468,9 +5468,9 @@ asm UNKNOWN_FUNCTION(unk_80536054) { /* 805360E8 38600000 */ li r3, 0x0 /* 805360EC 4800010C */ b lbl_805361f8 lbl_805360f0: - /* 805360F0 3C80809C */ lis r4, lbl_809bd730@ha + /* 805360F0 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 805360F4 546015BA */ rlwinm r0, r3, 2, 0x16, 0x1d - /* 805360F8 8064D730 */ lwz r3, lbl_809bd730@l(r4) + /* 805360F8 8064D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r4) /* 805360FC 8063000C */ lwz r3, 0xc(r3) /* 80536100 7C63002E */ lwzx r3, r3, r0 /* 80536104 80030038 */ lwz r0, 0x38(r3) @@ -5482,17 +5482,17 @@ asm UNKNOWN_FUNCTION(unk_80536054) { /* 80536118 39400000 */ li r10, 0x0 /* 8053611C 28060001 */ cmplwi r6, 1 /* 80536120 40820020 */ bne- lbl_80536140 - /* 80536124 3C60809C */ lis r3, lbl_809bd730@ha - /* 80536128 8063D730 */ lwz r3, lbl_809bd730@l(r3) + /* 80536124 3C60809C */ lis r3, spInstance__Q26System11RaceManager@ha + /* 80536128 8063D730 */ lwz r3, spInstance__Q26System11RaceManager@l(r3) /* 8053612C 8063000C */ lwz r3, 0xc(r3) /* 80536130 80630000 */ lwz r3, 0(r3) /* 80536134 80030038 */ lwz r0, 0x38(r3) /* 80536138 5403FFFE */ rlwinm r3, r0, 0x1f, 0x1f, 0x1f /* 8053613C 480000BC */ b lbl_805361f8 lbl_80536140: - /* 80536140 3C80809C */ lis r4, lbl_809bd730@ha + /* 80536140 3C80809C */ lis r4, spInstance__Q26System11RaceManager@ha /* 80536144 38E30028 */ addi r7, r3, 0x28 - /* 80536148 8104D730 */ lwz r8, lbl_809bd730@l(r4) + /* 80536148 8104D730 */ lwz r8, spInstance__Q26System11RaceManager@l(r4) /* 8053614C 39600000 */ li r11, 0x0 /* 80536150 7CC903A6 */ mtctr r6 /* 80536154 2C060000 */ cmpwi r6, 0x0 @@ -6145,7 +6145,7 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_updateGpRankScore) { /* 805368F8 9421FFC0 */ stwu r1, -0x40(r1) /* 805368FC 7C0802A6 */ mflr r0 /* 80536900 3C80809C */ lis r4, spInstance__Q26System10RaceConfig@ha - /* 80536904 3CA0809C */ lis r5, lbl_809bd730@ha + /* 80536904 3CA0809C */ lis r5, spInstance__Q26System11RaceManager@ha /* 80536908 90010044 */ stw r0, 0x44(r1) /* 8053690C 93E1003C */ stw r31, 0x3c(r1) /* 80536910 93C10038 */ stw r30, 0x38(r1) @@ -6153,7 +6153,7 @@ asm UNKNOWN_FUNCTION(RaceinfoPlayer_updateGpRankScore) { /* 80536918 93A10034 */ stw r29, 0x34(r1) /* 8053691C 7C7D1B78 */ mr r29, r3 /* 80536920 80E4D728 */ lwz r7, spInstance__Q26System10RaceConfig@l(r4) - /* 80536924 8085D730 */ lwz r4, lbl_809bd730@l(r5) + /* 80536924 8085D730 */ lwz r4, spInstance__Q26System11RaceManager@l(r5) /* 80536928 80070B70 */ lwz r0, 0xb70(r7) /* 8053692C 2C000000 */ cmpwi r0, 0x0 /* 80536930 4182000C */ beq- lbl_8053693c