diff --git a/asm/bss_80165590.s b/asm/bss_80165590.s deleted file mode 100644 index 1871c24b0..000000000 --- a/asm/bss_80165590.s +++ /dev/null @@ -1,1366 +0,0 @@ -.include "macros.inc" - -.section .bss - -glabel D_80165590 -.skip 4 - -glabel D_80165594 -.skip 4 - -glabel D_80165598 -.skip 4 - -glabel D_8016559C -.skip 8 - -glabel D_801655A4 -.skip 8 - -glabel D_801655AC -.skip 8 - -glabel D_801655B4 -.skip 8 - -glabel D_801655BC -.skip 4 - -glabel D_801655C0 -.skip 4 - -glabel D_801655C4 -.skip 4 - -glabel D_801655C8 -.skip 4 - -glabel D_801655CC -.skip 12 - -glabel D_801655D8 -.skip 16 - -glabel D_801655E8 -.skip 8 - -glabel D_801655F0 -.skip 8 - -glabel D_801655F8 -.skip 16 - -glabel D_80165608 -.skip 16 - -glabel D_80165618 -.skip 16 - -glabel D_80165628 -.skip 16 - -glabel D_80165638 -.skip 16 - -glabel D_80165648 -.skip 12 - -glabel D_80165654 -.skip 4 - -glabel D_80165658 -.skip 32 - -glabel D_80165678 -.skip 56 - -glabel D_801656B0 -.skip 16 - -glabel D_801656C0 -.skip 16 - -glabel D_801656D0 -.skip 16 - -glabel D_801656E0 -.skip 16 - -glabel D_801656F0 -.skip 24 - -glabel D_80165708 -.skip 8 - -glabel D_80165710 -.skip 8 - -glabel D_80165718 -.skip 8 - -glabel D_80165720 -.skip 8 - -glabel D_80165728 -.skip 8 - -glabel D_80165730 -.skip 8 - -glabel D_80165738 -.skip 8 - -glabel D_80165740 -.skip 8 - -glabel D_80165748 -.skip 8 - -glabel gNumActiveThwomps -.skip 4 - -glabel D_80165754 -.skip 4 - -glabel gThowmpSpawnList -.skip 8 - -glabel D_80165760 -.skip 2 - -glabel D_80165762 -.skip 2 - -glabel D_80165764 -.skip 2 - -glabel D_80165766 -.skip 4 - -glabel D_8016576A -.skip 6 - -glabel D_80165770 -.skip 2 - -glabel D_80165772 -.skip 2 - -glabel D_80165774 -.skip 2 - -glabel D_80165776 -.skip 10 - -glabel D_80165780 -.skip 2 - -glabel D_80165782 -.skip 2 - -glabel D_80165784 -.skip 2 - -glabel D_80165786 -.skip 6 - -glabel D_8016578C -.skip 4 - -glabel D_80165790 -.skip 4 - -glabel D_80165794 -.skip 8 - -glabel D_8016579C -.skip 2 - -glabel D_8016579E -.skip 4 - -glabel D_801657A2 -.skip 12 - -glabel D_801657AE -.skip 2 - -glabel D_801657B0 -.skip 2 - -glabel D_801657B2 -.skip 2 - -glabel D_801657B4 -.skip 4 - -glabel D_801657B8 -.skip 16 - -glabel D_801657C8 -.skip 8 - -glabel D_801657D0 -.skip 8 - -glabel D_801657D8 -.skip 9 - -glabel D_801657E1 -.skip 1 - -glabel D_801657E2 -.skip 1 - -glabel D_801657E3 -.skip 1 - -glabel D_801657E4 -.skip 1 - -glabel D_801657E5 -.skip 1 - -glabel D_801657E6 -.skip 1 - -glabel D_801657E7 -.skip 1 - -glabel D_801657E8 -.skip 8 - -glabel D_801657F0 -.skip 8 - -glabel D_801657F8 -.skip 4 - -glabel D_801657FC -.skip 4 - -glabel D_80165800 -.skip 1 - -glabel D_80165801 -.skip 3 - -glabel D_80165804 -.skip 4 - -glabel D_80165808 -.skip 4 - -glabel D_8016580C -.skip 4 - -glabel D_80165810 -.skip 4 - -glabel D_80165814 -.skip 4 - -glabel D_80165818 -.skip 4 - -glabel D_8016581C -.skip 4 - -glabel D_80165820 -.skip 8 - -glabel D_80165828 -.skip 4 - -glabel D_8016582C -.skip 6 - -glabel D_80165832 -.skip 2 - -glabel D_80165834 -.skip 12 - -glabel D_80165840 -.skip 32 - -glabel D_80165860 -.skip 12 - -glabel D_8016586C -.skip 12 - -glabel D_80165878 -.skip 4 - -glabel D_8016587C -.skip 4 - -glabel D_80165880 -.skip 8 - -glabel D_80165888 -.skip 8 - -glabel D_80165890 -.skip 8 - -glabel D_80165898 -.skip 4 - -glabel D_8016589C -.skip 12 - -glabel D_801658A8 -.skip 20 - -glabel D_801658BC -.skip 10 - -glabel D_801658C6 -.skip 8 - -glabel D_801658CE -.skip 8 - -glabel D_801658D6 -.skip 6 - -glabel D_801658DC -.skip 8 - -glabel D_801658E4 -.skip 8 - -glabel D_801658EC -.skip 8 - -glabel D_801658F4 -.skip 9 - -glabel sRandomItemIndex -.skip 1 - -glabel D_801658FE -.skip 1 - -glabel gControllerRandom -.skip 1 - -glabel D_80165900 -.skip 8 - -glabel D_80165908 -.skip 392 - -glabel D_80165A90 -.skip 392 - -glabel gObjectList -.skip 123200 - -glabel D_80183D58 -.skip 4 - -glabel objectListSize -.skip 4 - -glabel D_80183D60 -.skip 64 - -glabel D_80183DA0 -.skip 8 - -glabel D_80183DA8 -.skip 16 - -glabel D_80183DB8 -.skip 4 - -glabel D_80183DBC -.skip 4 - -glabel D_80183DC0 -.skip 4 - -glabel D_80183DC4 -.skip 4 - -glabel D_80183DC8 -.skip 16 - -glabel D_80183DD8 -.skip 28 - -glabel D_80183DF4 -.skip 68 - -glabel D_80183E38 -.skip 8 - -glabel D_80183E40 -.skip 4 - -glabel D_80183E44 -.skip 8 - -glabel D_80183E4C -.skip 4 - -glabel D_80183E50 -.skip 12 - -glabel D_80183E5C -.skip 16 - -glabel D_80183E6C -.skip 4 - -glabel D_80183E70 -.skip 12 - -glabel D_80183E7C -.skip 4 - -glabel D_80183E80 -.skip 4 - -glabel D_80183E84 -.skip 4 - -glabel gItemWindowObjectByPlayerId -.skip 16 - -glabel D_80183E98 -.skip 8 - -glabel indexObjectList1 -.skip 128 - -glabel D_80183F20 -.skip 8 - -glabel indexObjectList2 -.skip 128 - -glabel D_80183FA8 -.skip 32768 - -glabel indexObjectList3 -.skip 128 - -glabel D_8018C028 -.skip 8 - -glabel indexObjectList4 -.skip 128 - -# Array of (4) Collisions? -glabel D_8018C0B0 -.skip 256 - -glabel D_8018C1B0 -.skip 512 - -# Some Collision -glabel D_8018C3B0 -.skip 64 - -glabel D_8018C3F0 -.skip 512 - -# Maybe some unused Collision? -glabel D_8018C5F0 -.skip 64 - -glabel D_8018C630 -.skip 512 - -# Some Collision -glabel D_8018C830 -.skip 64 - -glabel D_8018C870 -.skip 256 - -glabel D_8018C970 -.skip 256 - -# some hud related list begin -# playerHUD should be of size 528 (0x84 * 0x4) -# D_8018CA74 and D_8018CA78 are fake -glabel playerHUD -.skip 4 - -# This is the result of some funny indexing done in save/func_800B5218 -glabel D_8018CA74 # playerHUD[PLAYER_ONE].rankScaling -.skip 4 - -# Refrenced in code_80091750/add_8018D9E0_entry -glabel D_8018CA78 # playerHUD[PLAYER_ONE].someTimer -.skip 520 -# some hud related list end - -glabel D_8018CC80 -.skip 400 - -glabel D_8018CE10 -.skip 256 - -glabel D_8018CF10 -.skip 4 - -glabel D_8018CF14 -.skip 4 - -glabel D_8018CF18 -.skip 4 - -glabel D_8018CF1C -.skip 4 - -glabel D_8018CF20 -.skip 4 - -glabel D_8018CF24 -.skip 4 - -glabel D_8018CF28 -.skip 32 - -glabel D_8018CF48 -.skip 8 - -glabel D_8018CF50 -.skip 16 - -glabel D_8018CF60 -.skip 8 - -glabel D_8018CF68 -.skip 16 - -glabel D_8018CF78 -.skip 8 - -# List of half-word character IDs indicating each character's -# place in the current Grand Prix race's standings -glabel gGPCurrentRaceCharacterIdByRank -.skip 16 - -glabel D_8018CF90 -.skip 8 - -glabel D_8018CF98 -.skip 16 - -glabel D_8018CFA8 -.skip 4 - -glabel D_8018CFAC -.skip 4 - -glabel D_8018CFB0 -.skip 4 - -glabel D_8018CFB4 -.skip 4 - -glabel D_8018CFB8 -.skip 4 - -glabel D_8018CFBC -.skip 4 - -glabel D_8018CFC0 -.skip 4 - -glabel D_8018CFC4 -.skip 4 - -glabel D_8018CFC8 -.skip 4 - -glabel D_8018CFCC -.skip 4 - -glabel D_8018CFD0 -.skip 4 - -glabel D_8018CFD4 -.skip 4 - -glabel D_8018CFD8 -.skip 8 - -glabel D_8018CFE0 -.skip 4 - -glabel D_8018CFE4 -.skip 4 - -glabel D_8018CFE8 -.skip 4 - -glabel D_8018CFEC -.skip 4 - -glabel D_8018CFF0 -.skip 4 - -glabel D_8018CFF4 -.skip 4 - -glabel D_8018CFF8 -.skip 8 - -glabel D_8018D000 -.skip 8 - -glabel D_8018D008 -.skip 4 - -glabel D_8018D00C -.skip 4 - -glabel D_8018D010 -.skip 8 - -glabel D_8018D018 -.skip 4 - -glabel xOrientation -.skip 4 - -glabel D_8018D020 -.skip 8 - -glabel D_8018D028 -.skip 4 - -glabel D_8018D02C -.skip 4 - -glabel D_8018D030 -.skip 4 - -glabel D_8018D034 -.skip 4 - -glabel D_8018D038 -.skip 4 - -glabel D_8018D03C -.skip 4 - -glabel D_8018D040 -.skip 4 - -glabel D_8018D044 -.skip 4 - -glabel D_8018D048 -.skip 8 - -glabel D_8018D050 -.skip 4 - -glabel D_8018D054 -.skip 4 - -glabel D_8018D058 -.skip 4 - -glabel D_8018D05C -.skip 4 - -glabel D_8018D060 -.skip 4 - -glabel D_8018D064 -.skip 4 - -glabel D_8018D068 -.skip 4 - -glabel D_8018D06C -.skip 4 - -glabel D_8018D070 -.skip 8 - -glabel D_8018D078 -.skip 4 - -glabel D_8018D07C -.skip 4 - -glabel D_8018D080 -.skip 4 - -glabel D_8018D084 -.skip 4 - -glabel D_8018D088 -.skip 4 - -glabel D_8018D08C -.skip 4 - -glabel D_8018D090 -.skip 4 - -glabel D_8018D094 -.skip 4 - -glabel D_8018D098 -.skip 8 - -glabel D_8018D0A0 -.skip 32 - -glabel D_8018D0C0 -.skip 8 - -glabel D_8018D0C8 -.skip 4 - -glabel D_8018D0CC -.skip 4 - -glabel D_8018D0D0 -.skip 4 - -glabel D_8018D0D4 -.skip 4 - -glabel D_8018D0D8 -.skip 4 - -glabel D_8018D0DC -.skip 4 - -glabel D_8018D0E0 -.skip 4 - -glabel D_8018D0E4 -.skip 4 - -glabel D_8018D0E8 -.skip 8 - -glabel D_8018D0F0 -.skip 32 - -glabel D_8018D110 -.skip 4 - -glabel D_8018D114 -.skip 12 - -glabel gMatrixHudCount -.skip 32 - -glabel D_8018D140 -.skip 16 - -glabel D_8018D150 -.skip 8 - -glabel D_8018D158 -.skip 8 - -glabel D_8018D160 -.skip 8 - -glabel D_8018D168 -.skip 4 - -glabel D_8018D16C -.skip 4 - -glabel D_8018D170 -.skip 4 - -glabel D_8018D174 -.skip 4 - -glabel D_8018D178 -.skip 4 - -glabel D_8018D17C -.skip 4 - -glabel D_8018D180 -.skip 4 - -glabel D_8018D184 -.skip 4 - -glabel gIsHUDVisible -.skip 4 - -glabel D_8018D18C -.skip 4 - -glabel D_8018D190 -.skip 8 - -glabel D_8018D198 -.skip 8 - -glabel D_8018D1A0 -.skip 8 - -glabel D_8018D1A8 -.skip 11 - -glabel D_8018D1B3 -.skip 1 - -glabel D_8018D1B4 -.skip 4 - -glabel D_8018D1B8 -.skip 12 - -glabel D_8018D1C4 -.skip 4 - -glabel D_8018D1C8 -.skip 4 - -glabel D_8018D1CC -.skip 4 - -glabel D_8018D1D0 -.skip 4 - -glabel D_8018D1D4 -.skip 4 - -glabel D_8018D1D8 -.skip 4 - -glabel D_8018D1DC -.skip 4 - -glabel D_8018D1E0 -.skip 8 - -glabel D_8018D1E8 -.skip 4 - -glabel D_8018D1EC -.skip 4 - -glabel D_8018D1F0 -.skip 8 - -glabel D_8018D1F8 -.skip 4 - -glabel D_8018D1FC -.skip 4 - -glabel D_8018D200 -.skip 4 - -glabel D_8018D204 -.skip 4 - -glabel D_8018D208 -.skip 4 - -glabel D_8018D20C -.skip 4 - -glabel D_8018D210 -.skip 4 - -glabel D_8018D214 -.skip 4 - -glabel D_8018D218 -.skip 4 - -glabel D_8018D21C -.skip 4 - -glabel D_8018D220 -.skip 4 - -glabel D_8018D224 -.skip 4 - -glabel D_8018D228 -.skip 4 - -glabel D_8018D22C -.skip 4 - -glabel D_8018D230 -.skip 16 - -glabel D_8018D240 -.skip 8 - -glabel D_8018D248 -.skip 88 - -glabel D_8018D2A0 -.skip 4 - -glabel D_8018D2A4 -.skip 8 - -glabel D_8018D2AC -.skip 4 - -glabel D_8018D2B0 -.skip 4 - -glabel D_8018D2B4 -.skip 4 - -glabel D_8018D2B8 -.skip 4 - -glabel D_8018D2BC -.skip 4 - -glabel D_8018D2C0 -.skip 8 - -glabel D_8018D2C8 -.skip 16 - -glabel D_8018D2D8 -.skip 8 - -glabel D_8018D2E0 -.skip 8 - -glabel D_8018D2E8 -.skip 8 - -glabel D_8018D2F0 -.skip 8 - -glabel D_8018D2F8 -.skip 8 - -glabel D_8018D300 -.skip 8 - -glabel D_8018D308 -.skip 8 - -glabel D_8018D310 -.skip 4 - -glabel D_8018D314 -.skip 4 - -glabel D_8018D318 -.skip 8 - -glabel D_8018D320 -.skip 96 - -glabel D_8018D380 -.skip 4 - -glabel D_8018D384 -.skip 4 - -glabel D_8018D388 -.skip 52 - -glabel D_8018D3BC -.skip 4 - -glabel D_8018D3C0 -.skip 4 - -glabel D_8018D3C4 -.skip 16 - -glabel D_8018D3D4 -.skip 4 - -glabel D_8018D3D8 -.skip 4 - -glabel D_8018D3DC -.skip 4 - -glabel D_8018D3E0 -.skip 4 - -glabel D_8018D3E4 -.skip 4 - -glabel D_8018D3E8 -.skip 4 - -glabel D_8018D3EC -.skip 4 - -glabel D_8018D3F0 -.skip 4 - -glabel D_8018D3F4 -.skip 4 - -glabel D_8018D3F8 -.skip 4 - -glabel gRaceFrameCounter # 0x8018D3FC -.word 0x00000000 - -glabel D_8018D400 -.skip 12 - -glabel D_8018D40C -.skip 4 - -glabel D_8018D410 -.skip 16 - -glabel D_8018D420 -.skip 4 - -glabel D_8018D424 -.skip 4 - -glabel D_8018D428 -.skip 4 - -glabel D_8018D42C -.skip 4 - -glabel D_8018D430 -.skip 4 - -glabel D_8018D434 -.skip 4 - -glabel D_8018D438 -.skip 4 - -glabel D_8018D43C -.skip 4 - -glabel D_8018D440 -.skip 4 - -glabel D_8018D444 -.skip 4 - -glabel D_8018D448 -.skip 4 - -glabel D_8018D44C -.skip 4 - -glabel D_8018D450 -.skip 4 - -glabel D_8018D454 -.skip 4 - -glabel D_8018D458 -.skip 4 - -glabel D_8018D45C -.skip 4 - -glabel D_8018D460 -.skip 4 - -glabel D_8018D464 -.skip 4 - -glabel D_8018D468 -.skip 4 - -glabel D_8018D46C -.skip 4 - -glabel D_8018D470 -.skip 4 - -glabel D_8018D474 -.skip 4 - -glabel D_8018D478 -.skip 8 - -glabel D_8018D480 -.skip 4 - -glabel D_8018D484 -.skip 4 - -glabel D_8018D488 -.skip 4 - -glabel D_8018D48C -.skip 4 - -glabel D_8018D490 -.skip 4 - -glabel D_8018D494 -.skip 4 - -glabel D_8018D498 -.skip 4 - -glabel D_8018D49C -.skip 4 - -glabel D_8018D4A0 -.skip 4 - -glabel D_8018D4A4 -.skip 4 - -glabel D_8018D4A8 -.skip 4 - -glabel D_8018D4AC -.skip 4 - -glabel D_8018D4B0 -.skip 4 - -glabel D_8018D4B4 -.skip 4 - -glabel D_8018D4B8 -.skip 4 - -glabel D_8018D4BC -.skip 4 - -glabel D_8018D4C0 -.skip 4 - -glabel D_8018D4C4 -.skip 4 - -glabel D_8018D4C8 -.skip 8 - -glabel D_8018D4D0 -.skip 96 - -glabel D_8018D530 -.skip 96 - -glabel D_8018D590 -.skip 96 - -glabel gPlayerBalloonStatus -.skip 48 - -glabel D_8018D620 -.skip 48 - -glabel D_8018D650 -.skip 96 - -glabel D_8018D6B0 -.skip 96 - -glabel D_8018D710 -.skip 96 - -glabel D_8018D770 -.skip 48 - -glabel D_8018D7A0 -.skip 48 - -glabel D_8018D7D0 -.skip 48 - -glabel D_8018D800 -.skip 48 - -glabel D_8018D830 -.skip 48 - -glabel D_8018D860 -.skip 48 - -glabel D_8018D890 -.skip 48 - -# Indicates how many balloons each player has -glabel gPlayerBalloonCount -.skip 16 - -glabel D_8018D8D0 -.skip 48 - -glabel D_8018D900 -.skip 32 - -glabel D_8018D920 -.skip 16 - -glabel D_8018D930 -.skip 32 - -glabel D_8018D950 -.skip 32 - -glabel D_8018D970 -.skip 32 - -glabel D_8018D990 -.skip 32 - -glabel D_8018D9B0 -.skip 4 - -glabel D_8018D9B4 -.skip 4 - -glabel D_8018D9B8 -.skip 4 - -glabel D_8018D9BC -.skip 4 - -glabel D_8018D9C0 -.skip 8 - -# List of bytes indexed by character ID -# Indicates number of Grand Prix points that character -# has scored -glabel gGPPointsByCharacterId -.skip 8 - -# List of character IDs indicating where each character -# is in the Grand Prix standings -glabel gCharacterIdByGPOverallRank -.skip 8 - -glabel D_8018D9D8 -.skip 1 - -glabel D_8018D9D9 -.skip 7 - -glabel D_8018D9E0 -.skip 1280 - -# The size of D_8018DEE0 should be -# 384, D_8018DEE4 is fake -glabel D_8018DEE0 -.skip 4 - -glabel D_8018DEE4 -.skip 380 - -glabel D_8018E060 -.skip 136 - -glabel D_8018E0E8 -.skip 40 - -glabel gD_8018E118TotalSize -.skip 8 - -# The size of D_8018E118 should be -# 1600, D_8018E11C and D_8018E124 are fake -glabel D_8018E118 -.skip 4 - -glabel D_8018E11C -.skip 8 - -glabel D_8018E124 -.skip 1588 - -glabel gNumD_8018E118Entries -.skip 4 - -glabel D_8018E75C -.skip 4 - -glabel gNumD_8018E768Entries -.skip 8 - -glabel D_8018E768 -.skip 64 - -glabel gCycleFlashMenu -.skip 4 - -glabel D_8018E7AC -.skip 4 - -glabel D_8018E7B0 -.skip 8 - -glabel D_8018E7B8 -.skip 16 - -glabel D_8018E7C8 -.skip 8 - -glabel D_8018E7D0 -.skip 16 - -glabel D_8018E7E0 -.skip 8 - -glabel D_8018E7E8 -.skip 8 - -glabel D_8018E7F0 -.skip 8 - -glabel D_8018E7F8 -.skip 2 - -glabel D_8018E7FA -.skip 6 - -glabel D_8018E800 -.skip 2 - -glabel D_8018E802 -.skip 14 - -glabel D_8018E810 -.skip 8 - -glabel D_8018E818 -.skip 2 - -glabel D_8018E81A -.skip 6 - -#glabel D_8018E820 -#.skip 2 - -#glabel D_8018E822 -#.skip 6 - -#glabel D_8018E828 -#.skip 2 - -#glabel D_8018E82A -#.skip 14 - -#glabel D_8018E838 -#.skip 4 - -#glabel D_8018E83C -#.skip 4 diff --git a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s b/asm/non_matchings/code_80091750/add_8018D9E0_entry.s index 6394b9f9a..3b99cd70d 100644 --- a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s +++ b/asm/non_matchings/code_80091750/add_8018D9E0_entry.s @@ -987,12 +987,12 @@ glabel L8009F264 /* 09FF80 8009F380 10000094 */ b .L8009F5D4 /* 09FF84 8009F384 8FBF001C */ lw $ra, 0x1c($sp) glabel L8009F388 -/* 09FF88 8009F388 3C048019 */ lui $a0, %hi(D_8018CA78) # $a0, 0x8019 +/* 09FF88 8009F388 3C048019 */ lui $a0, %hi(playerHUD+0x8) # $a0, 0x8019 /* 09FF8C 8009F38C 3C05800F */ lui $a1, %hi(gCharacterSelections) # $a1, 0x800f /* 09FF90 8009F390 AFBF007C */ sw $ra, 0x7c($sp) /* 09FF94 8009F394 80A586A8 */ lb $a1, %lo(gCharacterSelections)($a1) /* 09FF98 8009F398 0C02D408 */ jal func_800B5020 -/* 09FF9C 8009F39C 8C84CA78 */ lw $a0, %lo(D_8018CA78)($a0) +/* 09FF9C 8009F39C 8C84CA78 */ lw $a0, %lo(playerHUD+0x8)($a0) /* 09FFA0 8009F3A0 8FBF007C */ lw $ra, 0x7c($sp) /* 09FFA4 8009F3A4 AFE2001C */ sw $v0, 0x1c($ra) /* 09FFA8 8009F3A8 0C02D486 */ jal func_800B5218 diff --git a/asm/non_matchings/code_80091750/func_8009AB7C.s b/asm/non_matchings/code_80091750/func_8009AB7C.s index 90a923dd3..da0cf8117 100644 --- a/asm/non_matchings/code_80091750/func_8009AB7C.s +++ b/asm/non_matchings/code_80091750/func_8009AB7C.s @@ -1,8 +1,8 @@ glabel func_8009AB7C /* 09B77C 8009AB7C 000470C0 */ sll $t6, $a0, 3 -/* 09B780 8009AB80 3C0F8019 */ lui $t7, %hi(D_8018E11C) # 0x8019 +/* 09B780 8009AB80 3C0F8019 */ lui $t7, %hi(D_8018E118+0x4) # 0x8019 /* 09B784 8009AB84 01EE7821 */ addu $t7, $t7, $t6 -/* 09B788 8009AB88 8DEFE11C */ lw $t7, %lo(D_8018E11C)($t7) # -0x1ee4($t7) +/* 09B788 8009AB88 8DEFE11C */ lw $t7, %lo(D_8018E118+0x4)($t7) # -0x1ee4($t7) /* 09B78C 8009AB8C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 /* 09B790 8009AB90 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) /* 09B794 8009AB94 3C0D0004 */ lui $t5, (0x0004B000 >> 16) # lui $t5, 4 diff --git a/asm/non_matchings/code_80091750/func_8009B538.s b/asm/non_matchings/code_80091750/func_8009B538.s index c317c3e53..e3292c989 100644 --- a/asm/non_matchings/code_80091750/func_8009B538.s +++ b/asm/non_matchings/code_80091750/func_8009B538.s @@ -1,8 +1,8 @@ glabel func_8009B538 /* 09C138 8009B538 000470C0 */ sll $t6, $a0, 3 -/* 09C13C 8009B53C 3C0F8019 */ lui $t7, %hi(D_8018E11C) # 0x8019 +/* 09C13C 8009B53C 3C0F8019 */ lui $t7, %hi(D_8018E118+0x4) # 0x8019 /* 09C140 8009B540 01EE7821 */ addu $t7, $t7, $t6 -/* 09C144 8009B544 8DEFE11C */ lw $t7, %lo(D_8018E11C)($t7) # -0x1ee4($t7) +/* 09C144 8009B544 8DEFE11C */ lw $t7, %lo(D_8018E118+0x4)($t7) # -0x1ee4($t7) /* 09C148 8009B548 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 09C14C 8009B54C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 /* 09C150 8009B550 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) diff --git a/asm/non_matchings/code_80091750/func_800ACF40.s b/asm/non_matchings/code_80091750/func_800ACF40.s index 694c1bcc0..7dc50ca22 100644 --- a/asm/non_matchings/code_80091750/func_800ACF40.s +++ b/asm/non_matchings/code_80091750/func_800ACF40.s @@ -138,14 +138,14 @@ glabel L800AD01C glabel L800AD128 /* 0ADD28 800AD128 8E0B0018 */ lw $t3, 0x18($s0) /* 0ADD2C 800AD12C 00051080 */ sll $v0, $a1, 2 -/* 0ADD30 800AD130 3C0D8019 */ lui $t5, %hi(D_8018DEE4) # 0x8019 +/* 0ADD30 800AD130 3C0D8019 */ lui $t5, %hi(D_8018DEE0+0x4) # 0x8019 /* 0ADD34 800AD134 000B6080 */ sll $t4, $t3, 2 /* 0ADD38 800AD138 018B6023 */ subu $t4, $t4, $t3 /* 0ADD3C 800AD13C 000C60C0 */ sll $t4, $t4, 3 /* 0ADD40 800AD140 3C0E800F */ lui $t6, %hi(D_800E8440) /* 0ADD44 800AD144 01C27021 */ addu $t6, $t6, $v0 /* 0ADD48 800AD148 01AC6821 */ addu $t5, $t5, $t4 -/* 0ADD4C 800AD14C 8DADDEE4 */ lw $t5, %lo(D_8018DEE4)($t5) # -0x211c($t5) +/* 0ADD4C 800AD14C 8DADDEE4 */ lw $t5, %lo(D_8018DEE0+0x4)($t5) # -0x211c($t5) /* 0ADD50 800AD150 8DCE8440 */ lw $t6, %lo(D_800E8440)($t6) /* 0ADD54 800AD154 3C04800F */ lui $a0, %hi(D_800E83A0) # 0x800f /* 0ADD58 800AD158 00822021 */ addu $a0, $a0, $v0 diff --git a/asm/non_matchings/save/func_800B5218.s b/asm/non_matchings/save/func_800B5218.s index 39dcb6590..95b9148d2 100644 --- a/asm/non_matchings/save/func_800B5218.s +++ b/asm/non_matchings/save/func_800B5218.s @@ -7,14 +7,14 @@ glabel func_800B5218 /* 0B5E2C 800B522C 812986A8 */ lb $t1, %lo(gCharacterSelections)($t1) /* 0B5E30 800B5230 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 0B5E34 800B5234 000E7880 */ sll $t7, $t6, 2 -/* 0B5E38 800B5238 3C058019 */ lui $a1, %hi(D_8018CA74) # $a1, 0x8019 +/* 0B5E38 800B5238 3C058019 */ lui $a1, %hi(playerHUD+0x4) # $a1, 0x8019 /* 0B5E3C 800B523C 3C068019 */ lui $a2, %hi(playerHUD) # $a2, 0x8019 /* 0B5E40 800B5240 01F8C821 */ addu $t9, $t7, $t8 /* 0B5E44 800B5244 AFBF0014 */ sw $ra, 0x14($sp) /* 0B5E48 800B5248 AFB90038 */ sw $t9, 0x38($sp) /* 0B5E4C 800B524C 24070001 */ li $a3, 1 /* 0B5E50 800B5250 24C6CA70 */ addiu $a2, %lo(playerHUD) # addiu $a2, $a2, -0x3590 -/* 0B5E54 800B5254 24A5CA74 */ addiu $a1, %lo(D_8018CA74) # addiu $a1, $a1, -0x358c +/* 0B5E54 800B5254 24A5CA74 */ addiu $a1, %lo(playerHUD+0x4) # addiu $a1, $a1, -0x358c /* 0B5E58 800B5258 24020001 */ li $v0, 1 /* 0B5E5C 800B525C 24080003 */ li $t0, 3 /* 0B5E60 800B5260 AFA90028 */ sw $t1, 0x28($sp) diff --git a/include/bomb_kart.h b/include/bomb_kart.h index fe865a707..df8fa073f 100644 --- a/include/bomb_kart.h +++ b/include/bomb_kart.h @@ -51,7 +51,7 @@ typedef struct { /* 0x50 */ f32 yPos; // Y position of the center of the circle } BombKart; // size = 0x54 -// Indexes for the objects associated with the Bomb Karts +//! Indexes for the objects associated with the Bomb Karts extern s32 D_80183DD8[NUM_BOMB_KARTS_MAX]; extern BombKart gBombKarts[NUM_BOMB_KARTS_MAX]; diff --git a/include/common_structs.h b/include/common_structs.h index 8a53dc5cb..b8218e136 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -377,14 +377,6 @@ typedef struct { /* 0x0DD4 */ // s16 unk_DD4; } Player; // size = 0xDD8 -typedef struct { - char unk_00[0x4]; - Vec3f unk_04; - char unk_10[0x4]; - s32 objectIndex; - char unk_18[0x8]; -} struct_D_8018CE10; // size = 0x20 - typedef struct { // Something related to time trial ghost data? diff --git a/include/global.h b/include/global.h deleted file mode 100644 index c70da948f..000000000 --- a/include/global.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _GLOBAL_H_ -#define _GLOBAL_H_ - -#include "functions.h" -#include "variables.h" -#include "macros.h" - -#endif diff --git a/include/objects.h b/include/objects.h index 9818a3352..0e0ec3b23 100644 --- a/include/objects.h +++ b/include/objects.h @@ -80,7 +80,6 @@ typedef struct /* 0xDF */ u8 unk_0DF; } Objects; // size = 0xE0 -// This is the object list extern Objects gObjectList[]; typedef struct @@ -165,25 +164,27 @@ typedef struct **/ extern s32 D_80183DA0; -/** - * Lakitu? -**/ +//! Lakitu? extern s32 D_80183DB8[]; #define DELETED_OBJECT_ID -1 -// Appears to be a list of object list indices for the Item Window part of the HUD +//! Appears to be a list of object list indices for the Item Window part of the HUD extern s32 gItemWindowObjectByPlayerId[]; // Used for loop bounds when accessing indexObjectList1 extern s16 D_80165750; -// These seem to be limits on different object types in Moo Moo Farm -// See init_course_object in code_8006E9C0.c -// Maybe max number of active moles in a given group of moles? + +/** + * These seem to be limits on different object types in Moo Moo Farm + * See init_course_object in code_8006E9C0.c + * Maybe max number of active moles in a given group of moles? + */ extern s32 D_8018D1C8; extern s32 D_8018D1D0; extern s32 D_8018D1D8; -// Limit on some object type (ice chips?) in Sherbet Land + +//! Limit on some object type (ice chips?) in Sherbet Land extern s32 D_8018D3C0; extern Collision D_8018C0B0[]; @@ -249,10 +250,9 @@ extern s16 gNumActiveThwomps; * Thwomps in Bower's Castle? * Penguins in Sherbet Land? * Flag Poles in Yoshi Valley? -**/ + */ extern s32 indexObjectList1[]; - #define NUM_SEAGULLS 10 #define NUM_SNOWMEN 19 #define NUM_HEDGEHOGS 15 @@ -279,7 +279,7 @@ extern Vec3s gHedgehogPatrolPoints[]; * Seagulls in Koopa Troopa Beach? * Hedgehogs in Yoshi Valley? * Spawn for big fire breath in Bowser's Castle -**/ + */ extern s32 indexObjectList2[]; #define NUM_BOOS 0xA @@ -295,12 +295,12 @@ extern s16 D_800E57F8[]; /** * Boos in Banshee Boardwalk * Spawners for the 4 small fire breaths inside Bowser's Castle -**/ + */ extern s32 indexObjectList3[]; /** * Unused list of object indices -*/ + */ extern s32 indexObjectList4[]; #define D_8018C1B0_SIZE 128 @@ -311,13 +311,16 @@ extern s32 indexObjectList4[]; #define NUM_SNOWFLAKES 0x32 extern Vec3s gMoleSpawns[]; -// Exact use unknown, something related to the mole groups -// Maybe be indicating that a given mole in a given group is active? + +/** + * Exact use unknown, something related to the mole groups + * Maybe be indicating that a given mole in a given group is active? + */ extern s8 D_8018D198[]; extern s8 D_8018D1A8[]; extern s8 D_8018D1B8[]; -// Unknown object index, only set for Kalimari Desert, never read +//! Unknown object index, only set for Kalimari Desert, never read extern s32 D_8018CF10; /** @@ -326,30 +329,36 @@ extern s32 D_8018CF10; * Snow flakes in Frappe Snowland * Segments of the fire breath from the statues in Bowser's Castle * Potentially other things -**/ + */ extern s32 D_8018C1B0[]; -// Next free spot in D_8018C1B0? Wraps back around to 0 if it gets bigger than D_8018C1B0_SIZE + +//! Next free spot in D_8018C1B0? Wraps back around to 0 if it gets bigger than D_8018C1B0_SIZE extern s32 D_80183E38; -// Used for cycling through snowflakes in func_80078790 + +//! Used for cycling through snowflakes in func_80078790 extern s16 D_8018D174; #define D_8018C3F0_SIZE 128 + /** * List of object list indices used for: * Bats in Banshee's Boardwalk (but only 1 player mode?) -**/ + */ extern s32 D_8018C3F0[]; -// Next free spot in D_8018C3F0? Wraps back around to 0 if it gets bigger than D_8018C3F0_SIZE + +//! Next free spot in D_8018C3F0? Wraps back around to 0 if it gets bigger than D_8018C3F0_SIZE extern s32 D_80183E4C; -// Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes? + +//! Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes? extern s32 D_8018D3BC; #define D_8018C630_SIZE 128 extern s32 D_8018C630[]; -// Next free spot in D_8018C630? +//! Next free spot in D_8018C630? extern s32 D_80183E5C; extern s16 D_80165730; -// Tracking a count of some object type, don't know what object type yet + +//! Tracking a count of some object type, don't know what object type yet extern s16 D_80165738; #define D_8018C870_SIZE 0x40 @@ -358,40 +367,53 @@ extern s16 D_80165738; // This should really be `extern Vec3s gTorchSpawns[];` //! @todo fix this extern -extern s16 gTorchSpawns[]; +extern s16 gTorchSpawns[]; /** * List of object list indices. Used both for the fires in the DK Jungle cave * and, seemingly for the trail that shells leave behind them. * I think they're using the same texture, which would explain the dual use -**/ + */ extern s32 D_8018C870[]; -// Next free spot in D_8018C870? Wraps back around to 0 if it gets bigger than D_8018C870_SIZE + +//! Next free spot in D_8018C870? Wraps back around to 0 if it gets bigger than D_8018C870_SIZE extern s32 D_80183E6C; // Maximum number of leaves that can be falling? #define D_8018C970_SIZE 0x40 // Number of leaves to spawn each bonk? #define D_8018C970_SPAWN_SIZE 0x14 -// Seemingly a list of object list indices used for the leaves that sometimes fall -// trees when you bonk into them + +/** + * Seemingly a list of object list indices used for the leaves that sometimes fall + * trees when you bonk into them + */ extern s32 D_8018C970[]; -// Next free spot in D_8018C970? Wraps back around to 0 if it gets bigger than D_8018C970_SIZE + +//! Next free spot in D_8018C970? Wraps back around to 0 if it gets bigger than D_8018C970_SIZE extern s32 D_80183E7C; #define D_8018CC80_SIZE 0x64 -// List of object list indices used by the clouds and stars in some stages -// Also used for snowflakes like D_8018C1B0? Not sure what's up with that + +/** + * List of object list indices used by the clouds and stars in some stages + * Also used for snowflakes like D_8018C1B0? Not sure what's up with that + */ extern s32 D_8018CC80[]; -// Number of used spots in D_8018CC80? + +//! Number of used spots in D_8018CC80? extern s32 D_8018D1F0; -// Next free spot in D_8018CC80? + +//! Next free spot in D_8018CC80? extern s32 D_8018D1F8; -// Also next free spot in D_8018CC80? + +//! Also next free spot in D_8018CC80? extern s16 D_8018D17C; -// Something related to the display of the clouds/stars? + +//! Something related to the display of the clouds/stars? extern s8 D_8018D230; -// Some sort of limiter on how many of some object type can spawn + +//! Some sort of limiter on how many of some object type can spawn extern s32 D_8018D3C4; #endif diff --git a/include/variables.h b/include/variables.h deleted file mode 100644 index cee763b06..000000000 --- a/include/variables.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _VARIABLES_H_ -#define _VARIABLES_H_ - -#include "global.h" -#include "defines.h" -#include "common_structs.h" - -extern s8 gCharacterIdByGPOverallRank[8]; // D_8018D9D0 - -extern hud_player playerHUD[]; - -extern Mtx D_80183D60[]; - -extern struct_D_8018CE10 D_8018CE10[]; - -extern f32 D_80164510[]; -extern s16 gMatrixEffectCount; - -extern bool8 D_801657E8; - -extern s8 D_801658FE; - -extern s32 gMatrixHudCount; -extern s32 D_8018D900[]; - -#endif diff --git a/mk64.ld b/mk64.ld index 82e774f9c..53dfd498c 100644 --- a/mk64.ld +++ b/mk64.ld @@ -310,7 +310,9 @@ SECTIONS BUILD_DIR/src/camera.o(.bss); BUILD_DIR/src/render_player.o(.bss); BUILD_DIR/src/spawn_players.o(.bss); - BUILD_DIR/asm/bss_80165590.o(.bss); + BUILD_DIR/src/code_80057C60.o(.bss); + BUILD_DIR/src/code_80057C60_var.o(.bss); + BUILD_DIR/src/code_8008C1D0.o(.bss); BUILD_DIR/src/code_80091750.jp.o(.bss); BUILD_DIR/src/code_800AF9B0.o(.bss); BUILD_DIR/src/menus.o(.bss); diff --git a/src/audio/external.c b/src/audio/external.c index 4e893888b..ccfaf8a70 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -3,7 +3,6 @@ #include #include "camera.h" #include "math_util_2.h" -#include "variables.h" #include "audio/external.h" #include "audio/load.h" #include "audio/data.h" diff --git a/src/camera.c b/src/camera.c index ac17e9f3d..f0fb12b63 100644 --- a/src/camera.c +++ b/src/camera.c @@ -9,7 +9,6 @@ #include "math_util.h" #include "racing/memory.h" #include "waypoints.h" -#include "variables.h" #include "render_player.h" #include "collision.h" #include "code_80057C60.h" diff --git a/src/code_800029B0.c b/src/code_800029B0.c index a1df47777..fcbbc4094 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -4,7 +4,6 @@ #include "code_800029B0.h" #include "types.h" #include "memory.h" -#include "variables.h" #include "waypoints.h" #include "actors.h" #include "actor_types.h" diff --git a/src/code_80004740.c b/src/code_80004740.c index 5c57eea87..1a71a0016 100644 --- a/src/code_80004740.c +++ b/src/code_80004740.c @@ -6,8 +6,8 @@ #include "code_80004740.h" #include "memory.h" #include -#include #include +#include "code_80057C60.h" Vec3s D_80162D70; s16 D_80162D76; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 4fcc3dfd2..ef0a66c21 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -14,7 +14,6 @@ #include "player_controller.h" #include "code_80071F00.h" #include "collision.h" -#include "variables.h" #include #include "vehicles.h" #include "hud_renderer.h" diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 8e22c912b..c9407aeda 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -7,7 +7,6 @@ #include "actors.h" #include "code_800029B0.h" #include "racing/memory.h" -#include #include #include #include "math_util.h" @@ -33,6 +32,338 @@ //! @warning this macro is undef'd at the end of this file #define MAKE_RGB(r,g,b) (((r) << 0x10) | ((g) << 0x08) | (b << 0x00)) +//! @warning there is to many variable here + +s32 D_80165590; +s32 D_80165594; +s32 D_80165598; +s32 D_8016559C; +UNUSED s32 D_801655A0; +s32 D_801655A4; +UNUSED s32 D_801655A8; +s32 D_801655AC; +UNUSED s32 D_801655B0; +s32 D_801655B4; +UNUSED s32 D_801655B8; +s32 D_801655BC; +s32 D_801655C0; +s32 D_801655C4; +s32 D_801655C8; +s32 D_801655CC; +UNUSED s32 D_801655D0[2]; +s32 D_801655D8; +UNUSED s32 D_801655DC[2]; +s32 D_801655E8; +UNUSED s32 D_801655EC; +s32 D_801655F0; +UNUSED s32 D_801655F4; +s32 D_801655F8; +UNUSED s32 D_80165600[2]; +s32 D_80165608; +UNUSED s32 D_80165610[2]; +s32 D_80165618; +UNUSED s32 D_80165620[2]; +s32 D_80165628; +UNUSED s32 D_80165630[2]; +s32 D_80165638; +UNUSED s32 D_80165640[2]; +u32 D_80165648; +UNUSED u32 D_80165650[2]; +u32 D_80165658[8]; +s32 D_80165678; +UNUSED s32 D_80165680[12]; +u16 D_801656B0; +UNUSED s32 D_801656B8[2]; +u16 D_801656C0; +UNUSED s32 D_801656C8[2]; +u16 D_801656D0; +UNUSED s32 D_801656D8[2]; +u16 D_801656E0; +UNUSED s32 D_801656E8[2]; +s16 D_801656F0; +UNUSED s32 D_801656F8[4]; +s16 D_80165708; +UNUSED s32 D_8016570C; +s16 D_80165710; +UNUSED s32 D_80165714; +s16 D_80165718; +UNUSED s32 D_8016571C; +s16 D_80165720; +UNUSED s32 D_80165724; +s16 D_80165728; +UNUSED s32 D_8016572C; +s16 D_80165730; +UNUSED s32 D_80165734; +//! Tracking a count of some object type, don't know what object type yet +s16 D_80165738; +UNUSED s32 D_8016573C; +s16 D_80165740; +UNUSED s32 D_80165744; +s16 D_80165748; +UNUSED s32 D_8016574C; + +s16 gNumActiveThwomps; +s32 D_80165754; +ThwompSpawn *gThowmpSpawnList; + +Vec4s D_80165760; +UNUSED s16 D_80165768; +s8 D_8016576A; +Vec4s D_80165770; +UNUSED s32 D_80165778; +Vec4s D_80165780; +UNUSED s32 D_80165788; +s16 D_8016578C; +UNUSED s16 D_8016578E; +s16 D_80165790; +UNUSED s16 D_80165792; +s16 D_80165794; +UNUSED s32 D_80165798; +s8 D_8016579C; +u16 D_8016579E; +UNUSED s16 D_801657A0; +//! Something related to the rotation(?) of ice in Sherbet Land +u16 D_801657A2; +UNUSED s32 D_801657A4; +UNUSED s16 D_801657A8[3]; +s8 D_801657AE; +UNUSED s8 D_801657AF; +s8 D_801657B0; +UNUSED s8 D_801657B1; +s8 D_801657B2; +UNUSED s8 D_801657B3; +s8 D_801657B4; +s8 D_801657B8[16]; +s8 D_801657C8; +s8 D_801657D0[8]; +s8 D_801657D8; +UNUSED s16 D_801657DA[2]; +UNUSED s8 D_801657E0; +s8 D_801657E1; +s8 D_801657E2; +s8 D_801657E3; +s8 D_801657E4; +s8 D_801657E5; +bool8 D_801657E6; +u8 D_801657E7; +bool8 D_801657E8; +UNUSED s32 D_801657EC; +bool8 D_801657F0; +UNUSED s32 D_801657F4; +bool8 D_801657F8; +s32 D_801657FC; +s8 D_80165800[2]; +s32 D_80165804; +s8 D_80165808; +s32 D_8016580C; +bool8 D_80165810; +s32 D_80165814; +bool8 D_80165818; +s32 D_8016581C; +s8 D_80165820; +UNUSED s32 D_80165824; +s8 D_80165828; +Vec3su D_8016582C; +s8 D_80165832[2]; +Vec3su D_80165834; +UNUSED s32 D_8016583A; +s8 D_80165840[3]; +UNUSED s32 D_80165848[6]; +s32 D_80165860; +UNUSED s32 D_80165864; +UNUSED s32 D_80165868; +s32 D_8016586C; +UNUSED s32 D_80165870[2]; +s32 D_80165878; +s32 D_8016587C; +u8 *D_80165880; +UNUSED s32 D_80165884; +s8 D_80165888; +UNUSED s32 D_8016588C; +s8 D_80165890; +UNUSED s32 D_80165894; +s8 D_80165898; +s32 D_8016589C; +UNUSED s32 D_801658A0[2]; +s8 D_801658A8; +UNUSED s32 D_801658B0[3]; +s8 D_801658BC; +UNUSED s32 D_801658C0; +UNUSED s16 D_801658C4; +s8 D_801658C6; +UNUSED s32 D_801658C8; +UNUSED s16 D_801658CC; +s8 D_801658CE; +UNUSED s32 D_801658D0; +UNUSED s16 D_801658D4; +s8 D_801658D6; +UNUSED s32 D_801658D8; +s8 D_801658DC; +UNUSED s32 D_801658E0; +s8 D_801658E4; +UNUSED s32 D_801658E8; +s8 D_801658EC; +UNUSED s32 D_801658F0; +s8 D_801658F4; +UNUSED s32 D_801658F8; +UNUSED s8 D_801658FC; +u8 sRandomItemIndex; +s8 D_801658FE; +u8 gControllerRandom; +s16 D_80165900; +UNUSED s32 D_80165904; +s8 D_80165908; +UNUSED s32 D_80165910[96]; +s8 D_80165A90; +UNUSED s32 D_80165AA0[95]; +UNUSED s32 D_80165C14; +Objects gObjectList[OBJECT_LIST_SIZE]; +UNUSED s32 D_80183D58; +s32 objectListSize; +Mtx D_80183D60; +/** + * Use unknown. An object is reserved and its index is saved to + * this variable, but it appears to go unreferenced + **/ +s32 D_80183DA0; +f32 D_80183DA8[4]; +//! Lakitu? +s32 D_80183DB8[4]; +f32 D_80183DC8[4]; +//! Indexes for the objects associated with the Bomb Karts +s32 D_80183DD8[NUM_BOMB_KARTS_MAX]; +UNUSED s32 D_80183DF8[16]; +//! Next free spot in D_8018C1B0? Wraps back around to 0 if it gets bigger than D_8018C1B0_SIZE +s32 D_80183E38; +Vec3f D_80183E40; +//! Next free spot in D_8018C3F0? Wraps back around to 0 if it gets bigger than D_8018C3F0_SIZE +s32 D_80183E4C; +Vec3f D_80183E50; +//! Next free spot in D_8018C630? +s32 D_80183E5C; +UNUSED s32 D_80183E60[3]; +//! Next free spot in D_8018C870? Wraps back around to 0 if it gets bigger than D_8018C870_SIZE +s32 D_80183E6C; +Vec3f D_80183E70; +//! Next free spot in D_8018C970? Wraps back around to 0 if it gets bigger than D_8018C970_SIZE +s32 D_80183E7C; +Vec3su D_80183E80; +//! Appears to be a list of object list indices for the Item Window part of the HUD +s32 gItemWindowObjectByPlayerId[4]; +Vec3su D_80183E98; +/** + * Snowmen bodies in FrappeSnowland + * Crabs in Koopa Troopa Beach + * Hot air balloon in Luigi Raceway? + * Neon signs in Rainbow Road? + * Thwomps in Bower's Castle? + * Penguins in Sherbet Land? + * Flag Poles in Yoshi Valley? + */ +s32 indexObjectList1[32]; +UNUSED s32 D_80183F20[2]; +/** + * Snowmen heads in Frappe Snowland + * Chain Chomps in RaindbowRoad? + * Trophy in award ceremony? + * Seagulls in Koopa Troopa Beach? + * Hedgehogs in Yoshi Valley? + * Spawn for big fire breath in Bowser's Castle + */ +s32 indexObjectList2[32]; +/** + * Seemingly a list of textures for Lakitu + * Never explicitly given data, data appears to be placed here + * via some type of DMA. + * I'm also not certain about its dimensions + * I think the entires in this array are way over-sized + */ +u8 D_80183FA8[4][0x2000]; +/** + * Boos in Banshee Boardwalk + * Spawners for the 4 small fire breaths inside Bowser's Castle + */ +s32 indexObjectList3[32]; +//! Seemingly a pointer to Lakitu texture(s) +u8 *D_8018C028; +/** + * Unused list of object indices + */ +s32 indexObjectList4[32]; +//! Array of (4) Collisions? +Collision D_8018C0B0[4]; +/** + * List of object list indices used for: + * Moles in Moo Moo Farm + * Snow flakes in Frappe Snowland + * Segments of the fire breath from the statues in Bowser's Castle + * Potentially other things + */ +s32 D_8018C1B0[D_8018C3F0_SIZE]; +Collision D_8018C3B0; +/** + * List of object list indices used for: + * Bats in Banshee's Boardwalk (but only 1 player mode?) + */ +s32 D_8018C3F0[D_8018C3F0_SIZE]; +// Maybe some unused Collision? +UNUSED Collision D_8018C5F0; +s32 D_8018C630[D_8018C630_SIZE]; +Collision D_8018C830; +/** + * List of object list indices. Used both for the fires in the DK Jungle cave + * and, seemingly for the trail that shells leave behind them. + * I think they're using the same texture, which would explain the dual use + */ +s32 D_8018C870[D_8018C870_SIZE]; +/** + * Seemingly a list of object list indices used for the leaves that sometimes fall + * trees when you bonk into them + */ +s32 D_8018C970[D_8018C970_SIZE]; +hud_player playerHUD[4]; +/** + * List of object list indices used by the clouds and stars in some stages + * Also used for snowflakes like D_8018C1B0? Not sure what's up with that + */ +s32 D_8018CC80[D_8018CC80_SIZE]; +struct_D_8018CE10 D_8018CE10[8]; +//! Unknown object index, only set for Kalimari Desert, never read +s32 D_8018CF10; +Camera *D_8018CF14; +s16 D_8018CF18; +Player *D_8018CF1C; +s16 D_8018CF20; +UNUSED s32 D_8018CF24; +Player *D_8018CF28[4]; +UNUSED s32 D_8018CF38[4]; +s16 D_8018CF48; +s16 D_8018CF50[8]; +s16 D_8018CF60; +//! This may be a list of tilemap flags on a per-camera basis +s16 D_8018CF68[8]; +s16 D_8018CF78; +/** + * List of half-word character IDs indicating each character's + * place in the current Grand Prix race's standings + */ +s16 gGPCurrentRaceCharacterIdByRank[8]; +s16 D_8018CF90; +s16 D_8018CF98[8]; +s16 D_8018CFA8; +s32 D_8018CFAC; +s16 D_8018CFB0; +s32 D_8018CFB4; +s16 D_8018CFB8; +s32 D_8018CFBC; +s16 D_8018CFC0; +s32 D_8018CFC4; +s16 D_8018CFC8; +f32 D_8018CFCC; +s16 D_8018CFD0; +f32 D_8018CFD4; +s16 D_8018CFD8; + s16 D_800E4730[] = { 0x00ff, 0x0000, 0x0000, 0x00ff, 0x00ff, 0x0000, @@ -96,7 +427,7 @@ s32 D_800E480C[] = { void func_80057C60(void) { gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880)); gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_80183D60), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_80183D60), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); } void func_80057CE4(void) { @@ -2245,7 +2576,7 @@ void func_8005CB60(s32 playerId, s32 lapCount) { } func_800C90F4(0U, (player->characterId * 0x10) + 0x2900800D); D_80165638 = playerHUD[playerId].someTimer1; - D_80165654[lapCount] = 1; + D_80165658[lapCount-1] = 1; D_801657E3 = 1; } if ((lapCount == 3) && ((u32) playerHUD[playerId].someTimer < (u32) D_80165648)) { diff --git a/src/code_80057C60.h b/src/code_80057C60.h index 16b1c2701..9d58dd5bc 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -2,9 +2,19 @@ #define CODE_80057C60_H #include "common_structs.h" +#include "objects.h" +#include "camera.h" // code_80057C60 +typedef struct { + char unk_00[0x4]; + Vec3f unk_04; + char unk_10[0x4]; + s32 objectIndex; + char unk_18[0x8]; +} struct_D_8018CE10; // size = 0x20 + void func_8005C674(s8 arg0, s16 *arg1, s16 *arg2, s16 *arg3); void func_80057C60(void); void func_80057CE4(void); @@ -233,6 +243,7 @@ void func_8006E8C4(Player*, s8, s8); void func_8006E940(Player*, s8, s8); // data/data_code_80071F00_2.s + extern Vtx gBalloonVertexPlane1[]; extern Vtx gBalloonVertexPlane2[]; @@ -258,10 +269,6 @@ extern u16 D_800E69F4[][4]; extern u8 D_800E6F30[][3]; extern u8 D_800E6F48[][3]; - - -// BSS, presumably - extern f32 D_801652A0[]; extern s32 D_80165590; @@ -286,22 +293,47 @@ extern s32 D_80165618; extern s32 D_80165628; extern s32 D_80165638; extern u32 D_80165648; -extern u32 D_80165654[]; extern u32 D_80165658[]; extern s32 D_80165678; +extern u16 D_801656B0; +extern u16 D_801656C0; +extern u16 D_801656D0; +extern u16 D_801656E0; extern s16 D_801656F0; +extern s16 D_80165708; +extern s16 D_80165710; +// extern s16 D_80165730; -> objects.h +// extern s16 D_80165738; -> objects.h +extern s16 D_80165740; +extern s16 D_80165748; extern s16 D_80165718; extern s16 D_80165720; extern s16 D_80165728; + +// extern s16 gNumActiveThwomps; -> objects.h + +extern s32 D_80165754; +// extern ThwompSpawn *gThowmpSpawnList; -> objects.h + +extern Vec4s D_80165760; +extern s8 D_8016576A; +extern Vec4s D_80165770; extern s16 D_8016578C; +extern Vec4s D_80165780; + extern s16 D_80165790; extern s16 D_80165794; +extern s8 D_8016579C; extern u16 D_8016579E; +extern u16 D_801657A2; +extern s8 D_801657AE; extern s8 D_801657B0; extern s8 D_801657B2; -extern s8 D_801657AE; +extern s8 D_801657B4; +extern s8 D_801657B8[]; extern s8 D_801657C8; +extern s8 D_801657D0[]; extern s8 D_801657D8; extern s8 D_801657E2; extern s8 D_801657E3; @@ -311,60 +343,193 @@ extern bool8 D_801657E6; extern u8 D_801657E7; extern bool8 D_801657E8; extern bool8 D_801657F0; -extern s8 D_801657F8; +extern bool8 D_801657F8; +extern s32 D_801657FC; extern s8 D_80165800[2]; +extern s32 D_80165804; +extern s8 D_80165808; +extern s32 D_8016580C; +extern bool8 D_80165810; +extern s32 D_80165814; +extern bool8 D_80165818; +extern s32 D_8016581C; +extern s8 D_80165820; +extern s8 D_80165828; +extern Vec3su D_8016582C; +extern s8 D_80165832[2]; +extern Vec3su D_80165834; +extern s8 D_80165840[]; +extern s32 D_80165860; +extern s32 D_8016586C; +extern s32 D_80165878; extern s32 D_8016587C; extern u8 *D_80165880; +extern s8 D_80165888; extern s8 D_80165890; extern s8 D_80165898; +extern s32 D_8016589C; extern s8 D_801658A8; +extern s8 D_801658BC; +extern s8 D_801658C6; +extern s8 D_801658CE; extern s8 D_801658D6; -extern u8 sRandomItemIndex; // 801658fd -extern u8 gControllerRandom; // 801658ff +extern s8 D_801658DC; +extern s8 D_801658E4; +extern s8 D_801658EC; +extern s8 D_801658F4; +extern u8 sRandomItemIndex; +extern s8 D_801658FE; +extern u8 gControllerRandom; extern s16 D_80165900; extern s8 D_80165908; extern s8 D_80165A90; +// extern Objects gObjectList[]; -> objects.h -extern s8 D_8018CAE0; +extern s32 objectListSize; +extern Mtx D_80183D60; +// extern s32 D_80183DA0; -> objects.h +extern f32 D_80183DA8[]; +// extern s32 D_80183DB8[]; -> objects.h + +extern f32 D_80183DC8[]; +// extern s32 D_80183DD8[]; -> bomb_kart.h +// extern s32 D_80183E38; -> objects.h + +extern Vec3f D_80183E40; +// extern s32 D_80183E4C; -> objects.h + +extern Vec3f D_80183E50; +// extern s32 D_80183E5C; -> objects.h +// extern s32 D_80183E6C; -> objects.h + +extern Vec3f D_80183E70; +// extern s32 D_80183E7C; -> objects.h + +extern Vec3su D_80183E80; +// extern s32 gItemWindowObjectByPlayerId[]; -> objects.h + +extern Vec3su D_80183E98; +// extern s32 indexObjectList1[]; -> objects.h +// extern s32 indexObjectList2[]; -> objects.h + +extern u8 D_80183FA8[4][0x2000]; +// extern s32 indexObjectList3[]; -> objects.h + +extern u8 *D_8018C028; +// extern s32 indexObjectList4[]; -> objects.h +// extern Collision D_8018C0B0[]; -> objects.h +// extern s32 D_8018C1B0[]; -> objects.h + +extern Collision D_8018C3B0; +// extern s32 D_8018C3F0[]; -> objects.h +// extern s32 D_8018C630[]; -> objects.h + +extern Collision D_8018C830; +// extern s32 D_8018C870[]; -> objects.h +// extern s32 D_8018C970[]; -> objects.h + +extern hud_player playerHUD[]; +// extern s32 D_8018CC80[]; -> objects.h + +extern struct_D_8018CE10 D_8018CE10[]; +// extern s32 D_8018CF10; -> objects.h + +extern Camera *D_8018CF14; +extern s16 D_8018CF18; extern Player *D_8018CF1C; +extern s16 D_8018CF20; extern Player *D_8018CF28[]; +extern s16 D_8018CF48; extern s16 D_8018CF50[]; -extern s16 gGPCurrentRaceCharacterIdByRank[]; // 8018cf80 +extern s16 D_8018CF60; +extern s16 D_8018CF68[]; +extern s16 D_8018CF78; +extern s16 gGPCurrentRaceCharacterIdByRank[]; +extern s16 D_8018CF90; extern s16 D_8018CF98[]; +extern s16 D_8018CFA8; +extern s16 D_8018CFB0; +extern s16 D_8018CFB8; +extern s16 D_8018CFC0; +extern s16 D_8018CFC8; extern f32 D_8018CFCC; +extern s16 D_8018CFD0; extern f32 D_8018CFD4; +extern s16 D_8018CFD8; +extern s16 D_8018CFE0; extern f32 D_8018CFE4; +extern s16 D_8018CFE8; extern f32 D_8018CFEC; +extern s16 D_8018CFF0; extern f32 D_8018CFF4; - -extern f32 D_8018D028[8]; -extern f32 D_8018D050[8]; -extern f32 D_8018D078[8]; +extern s16 D_8018CFF8; +extern s16 D_8018D000; +extern s16 D_8018D008; +extern f32 D_8018D00C; +extern s16 D_8018D010; +extern s16 D_8018D018; +extern f32 xOrientation; +extern s16 D_8018D020; +extern f32 D_8018D028[]; +extern s16 D_8018D048; +extern f32 D_8018D050[]; +extern s16 D_8018D070; +extern f32 D_8018D078[]; +extern s16 D_8018D098; extern f32 D_8018D0A0[]; -extern f32 D_8018D0C8[8]; +extern s16 D_8018D0C0; +extern f32 D_8018D0C8[]; +extern s16 D_8018D0E8; extern f32 D_8018D0F0[]; - -extern s32 gMatrixHudCount; // 8018d120 +extern s16 D_8018D110; extern s32 D_8018D114; +extern s32 gMatrixHudCount; +extern s32 D_8018D140; extern s32 D_8018D150; +extern s32 D_8018D158; extern s32 D_8018D160; extern s32 D_8018D168; +extern s16 D_8018D16C; extern s32 D_8018D170; -extern s32 D_8018D178; -extern s32 D_8018D180; -extern s32 gIsHUDVisible; // 8018d188 -extern s32 D_8018D190; -extern s32 D_8018D1A0; -extern s32 D_8018D1B4; -extern s32 D_8018D1D4; -extern s32 D_8018D1CC; -extern f32 D_8018D1E8; -extern s32 D_8018D1FC; +// extern s16 D_8018D174; -> objects.h +extern s32 D_8018D178; +// extern s16 D_8018D17C; -> objects.h + +extern s32 D_8018D180; +extern s16 D_8018D184; +extern s32 gIsHUDVisible; +extern s16 D_8018D18C; +extern s32 D_8018D190; +// extern s8 D_8018D198[]; -> objects.h + +extern s32 D_8018D1A0; +// extern s8 D_8018D1A8[]; -> objects.h + +extern s32 D_8018D1B4; +// extern s8 D_8018D1B8[]; -> objects.h + +extern s32 D_8018D1C4; +// extern s32 D_8018D1C8; -> objects.h + +extern s32 D_8018D1CC; +// extern s32 D_8018D1D0; -> objects.h + +extern s32 D_8018D1D4; +// extern s32 D_8018D1D8; -> objects.h + +extern s32 D_8018D1DC; +extern u8 *D_8018D1E0; +extern f32 D_8018D1E8; +extern s32 D_8018D1EC; +// extern s32 D_8018D1F0; -> objects.h +// extern s32 D_8018D1F8; -> objects.h + +extern s32 D_8018D1FC; extern s16 D_8018D200; extern s32 D_8018D204; extern s16 D_8018D208; @@ -373,28 +538,52 @@ extern s16 D_8018D210; extern bool D_8018D214; extern s16 D_8018D218; extern s32 D_8018D21C; +extern u8 (*D_8018D220)[1024]; +extern s32 D_8018D224; +extern u8 D_8018D228; extern s32 D_8018D22C; +// extern s8 D_8018D230; -> objects.h + +extern s32 D_8018D240; +extern u8 *D_8018D248[]; extern f32 D_8018D2A0; extern s32 D_8018D2A4; extern s32 D_8018D2AC; +extern s16 D_8018D2B0; +extern s32 D_8018D2B4; +extern s16 D_8018D2B8; extern s32 D_8018D2BC; +extern s16 D_8018D2C0[]; extern s32 D_8018D2C8[]; +extern s16 D_8018D2D8[]; extern s16 D_8018D2E0; extern s16 D_8018D2E8; - +extern s16 D_8018D2F0; +extern s16 D_8018D2F8; +extern u16 D_8018D300; +extern u16 D_8018D308; +extern u16 D_8018D310; extern s32 D_8018D314; +extern u16 D_8018D318; extern s32 D_8018D320; extern s32 D_8018D380; extern s32 D_8018D384; extern s32 D_8018D388; +// extern s32 D_8018D3BC; -> objects.h +// extern s32 D_8018D3C0; -> objects.h +// extern s32 D_8018D3C4; -> objects.h + extern s32 D_8018D3D4; extern s32 D_8018D3D8; extern s32 D_8018D3DC; +extern s32 D_8018D3E0; +extern s32 D_8018D3E4; +extern s32 D_8018D3E8; +extern s32 D_8018D3EC; extern s32 D_8018D3F0; extern s32 D_8018D3F4; extern s32 D_8018D3F8; -extern s32 gRaceFrameCounter; // 8018d3fc - +extern s32 gRaceFrameCounter; extern s32 D_8018D400; extern s32 D_8018D40C; extern s32 D_8018D410; @@ -419,11 +608,13 @@ extern u8 *D_8018D464; extern u8 *D_8018D468; extern u8 *D_8018D46C; extern u8 *D_8018D470; +extern u8 *D_8018D474; extern u8 *D_8018D478; extern u8 *D_8018D480; extern u8 *D_8018D484; extern u8 *D_8018D488; extern u8 *D_8018D48C; +extern u8* D_8018D490; extern u8 *D_8018D494; extern u8 *D_8018D498; extern u8 *D_8018D49C; @@ -439,11 +630,9 @@ extern u8 *D_8018D4C0; extern u8 *D_8018D4C4; extern u8 *D_8018D4C8; extern Vec3f D_8018D4D0[]; - extern Vec3f D_8018D530[]; extern Vec3f D_8018D590[]; -extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0 - +extern u16 gPlayerBalloonStatus[8][3]; extern Vec3s D_8018D620[]; extern Vec3f D_8018D650[]; extern Vec3f D_8018D6B0[]; @@ -457,7 +646,7 @@ extern Vec3s D_8018D800[]; extern Vec3s D_8018D830[]; extern Vec3s D_8018D860[]; extern Vec3s D_8018D890[]; -extern Vec3s D_8018D8D0[]; extern s16 gPlayerBalloonCount[]; // D_8018D8C0 +extern Vec3s D_8018D8D0[]; #endif diff --git a/src/code_80057C60_var.c b/src/code_80057C60_var.c new file mode 100644 index 000000000..c2a246623 --- /dev/null +++ b/src/code_80057C60_var.c @@ -0,0 +1,233 @@ +#include +#include +#include "code_80057C60.h" + +s16 D_8018CFE0; +f32 D_8018CFE4; +s16 D_8018CFE8; +f32 D_8018CFEC; +s16 D_8018CFF0; +f32 D_8018CFF4; +s16 D_8018CFF8; +UNUSED s32 D_8018CFFC; +s16 D_8018D000; +UNUSED s32 D_8018D004; +s16 D_8018D008; +f32 D_8018D00C; +s16 D_8018D010; +UNUSED s32 D_8018D014; +s16 D_8018D018; +f32 xOrientation; +s16 D_8018D020; +f32 D_8018D028[8]; +s16 D_8018D048; +f32 D_8018D050[8]; +s16 D_8018D070; +f32 D_8018D078[8]; +s16 D_8018D098; +f32 D_8018D0A0[8]; +s16 D_8018D0C0; +f32 D_8018D0C8[8]; +s16 D_8018D0E8; +f32 D_8018D0F0[8]; +s16 D_8018D110; +s32 D_8018D114; +UNUSED s32 D_8018D118[2]; +s32 gMatrixHudCount; +UNUSED s32 D_8018D128[6]; +s32 D_8018D140; +UNUSED s32 D_8018D148[2]; +s32 D_8018D150; +UNUSED s32 D_8018D154; +s32 D_8018D158; +UNUSED s32 D_8018D15C; +s32 D_8018D160; +UNUSED s32 D_8018D164; +s32 D_8018D168; +s16 D_8018D16C; +s32 D_8018D170; +//! Used for cycling through snowflakes in func_80078790 +s16 D_8018D174; +s32 D_8018D178; +//! Also next free spot in D_8018CC80? +s16 D_8018D17C; +s32 D_8018D180; +s16 D_8018D184; +s32 gIsHUDVisible; +s16 D_8018D18C; +s32 D_8018D190; +/** + * Exact use unknown, something related to the mole groups + * Maybe be indicating that a given mole in a given group is active? + */ +s8 D_8018D198[NUM_GROUP1_MOLES]; +s32 D_8018D1A0; +s8 D_8018D1A8[NUM_GROUP2_MOLES]; +s32 D_8018D1B4; +s8 D_8018D1B8[NUM_GROUP3_MOLES]; +s32 D_8018D1C4; +/** + * These seem to be limits on different object types in Moo Moo Farm + * See init_course_object in code_8006E9C0.c + * Maybe max number of active moles in a given group of moles? + */ +s32 D_8018D1C8; +s32 D_8018D1CC; +s32 D_8018D1D0; +s32 D_8018D1D4; +s32 D_8018D1D8; +s32 D_8018D1DC; +u8 *D_8018D1E0; +UNUSED s32 D_8018D1E4; +f32 D_8018D1E8; +s32 D_8018D1EC; +//! Number of used spots in D_8018CC80? +s32 D_8018D1F0; +UNUSED s32 D_8018D1F4; +//! Next free spot in D_8018CC80? +s32 D_8018D1F8; +s32 D_8018D1FC; +s16 D_8018D200; +s32 D_8018D204; +s16 D_8018D208; +s32 D_8018D20C; +s16 D_8018D210; +bool D_8018D214; +s16 D_8018D218; +s32 D_8018D21C; +/** + * Destination for decompressed exhaust textures (I think) + * I'm not how much I like this "pointer to an array" setup, but if it matches it matches + */ +u8 (*D_8018D220)[1024]; +s32 D_8018D224; +u8 D_8018D228; +s32 D_8018D22C; +//! Something related to the display of the clouds/stars? +s8 D_8018D230; +UNUSED s32 D_8018D238[2]; +s32 D_8018D240; +u8 *D_8018D248[22]; +f32 D_8018D2A0; +s32 D_8018D2A4; +UNUSED s32 D_8018D2A8; +s32 D_8018D2AC; +s16 D_8018D2B0; +s32 D_8018D2B4; +s16 D_8018D2B8; +s32 D_8018D2BC; +s16 D_8018D2C0[4]; +s32 D_8018D2C8[4]; +s16 D_8018D2D8[4]; +s16 D_8018D2E0; +UNUSED s32 D_8018D2E4; +s16 D_8018D2E8; +UNUSED s32 D_8018D2EC; +s16 D_8018D2F0; +UNUSED s32 D_8018D2F4; +s16 D_8018D2F8; +UNUSED s32 D_8018D2FC; +u16 D_8018D300; +UNUSED s32 D_8018D304; +u16 D_8018D308; +UNUSED s32 D_8018D30C; +u16 D_8018D310; +s32 D_8018D314; +u16 D_8018D318; +UNUSED s32 D_8018D31C; +s32 D_8018D320; +UNUSED s32 D_8018D328[22]; +s32 D_8018D380; +s32 D_8018D384; +s32 D_8018D388; +UNUSED s32 D_8018D390[11]; +//! Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes? +s32 D_8018D3BC; +//! Limit on some object type (ice chips?) in Sherbet Land +s32 D_8018D3C0; +//! Some sort of limiter on how many of some object type can spawn +s32 D_8018D3C4; +UNUSED s32 D_8018D3C8[3]; +s32 D_8018D3D4; +s32 D_8018D3D8; +s32 D_8018D3DC; +//! some alpha +s32 D_8018D3E0; +//! some red +s32 D_8018D3E4; +//! some green +s32 D_8018D3E8; +//! some blue +s32 D_8018D3EC; +s32 D_8018D3F0; +s32 D_8018D3F4; +s32 D_8018D3F8; +s32 gRaceFrameCounter; + +s32 D_8018D400; +UNUSED s32 D_8018D404; +UNUSED s32 D_8018D408; +s32 D_8018D40C; +s32 D_8018D410; +UNUSED s32 D_8018D418[2]; +u8 *D_8018D420; +u8 *D_8018D424; +u8 *D_8018D428; +u8 *D_8018D42C; +u8 *D_8018D430; +u8 *D_8018D434; +u8 *D_8018D438; +u8 *D_8018D43C; +u8 *D_8018D440; +u8 *D_8018D444; +u8 *D_8018D448; +u8 *D_8018D44C; +u8 *D_8018D450; +u8 *D_8018D454; +u8 *D_8018D458; +u8 *D_8018D45C; +u8 *D_8018D460; +u8 *D_8018D464; +u8 *D_8018D468; +u8 *D_8018D46C; +u8 *D_8018D470; +u8 *D_8018D474; +u8 *D_8018D478; +UNUSED u8 *D_8018D47C; +u8 *D_8018D480; +u8 *D_8018D484; +u8 *D_8018D488; +u8 *D_8018D48C; +u8* D_8018D490; +u8 *D_8018D494; +u8 *D_8018D498; +u8 *D_8018D49C; +u8 *D_8018D4A0; +u8 *D_8018D4A4; +u8 *D_8018D4A8; +u8 *D_8018D4AC; +u8 *D_8018D4B0; +u8 *D_8018D4B4; +u8 *D_8018D4B8; +u8 *D_8018D4BC; +u8 *D_8018D4C0; +u8 *D_8018D4C4; +u8 *D_8018D4C8; +Vec3f D_8018D4D0[8]; +Vec3f D_8018D530[8]; +Vec3f D_8018D590[8]; +u16 gPlayerBalloonStatus[8][3]; +Vec3s D_8018D620[8]; +Vec3f D_8018D650[8]; +Vec3f D_8018D6B0[8]; +Vec3f D_8018D710[8]; +Vec3s D_8018D770[8]; +Vec3s D_8018D7A0[8]; +Vec3s D_8018D7D0[8]; + +Vec3s D_8018D800[8]; +Vec3s D_8018D830[8]; +Vec3s D_8018D860[8]; +Vec3s D_8018D890[8]; +s16 gPlayerBalloonCount[8]; +Vec3s D_8018D8D0[8]; diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index 26bb991f8..3b21ea0e4 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -11,7 +11,6 @@ #include "code_80071F00.h" #include "objects.h" #include "bomb_kart.h" -#include "variables.h" #include "save.h" #include "common_textures.h" #include @@ -22,6 +21,7 @@ #include "menus.h" #include "data/other_textures.h" #include "hud_renderer.h" +#include "code_80091750.h" void init_object_list(void) { diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h index 688127e4f..d6b646cd9 100644 --- a/src/code_8006E9C0.h +++ b/src/code_8006E9C0.h @@ -35,72 +35,6 @@ extern s16 D_800E5520[]; extern s16 D_800E5548[]; extern u8 *gCourseOutlineTextures[0x14]; // 800e54d0 -extern s16 D_80165730; -extern s16 D_80165740; -extern s16 D_80165748; -extern s8 D_801657E4; -extern bool8 D_801657E6; -extern bool8 D_801657E8; -extern bool8 D_801657F0; -extern s8 D_801657F8; - -extern s8 D_80165800[2]; -extern s8 D_80165808; - -extern bool8 D_80165810; -extern bool8 D_80165818; - -extern s8 D_80165820; -extern s8 D_80165828; -extern s8 D_80165832[2]; - - -// Destination for decompressed exhaust textures (I think) -// I'm not how much I like this "pointer to an array" setup, but if it matches it matches -extern u8 (*D_8018D220)[1024]; -extern s32 D_8018D240; -extern u8 *D_8018D248[]; -extern s16 D_8018D2B0; -extern s16 D_8018D2B8; - -extern s32 D_80183DA0; -extern s32 D_80183DBC; - -extern hud_player playerHUD[]; // 8018CA70 - 8018CC70 - -extern s16 D_8018CF18; -extern s16 D_8018CF20; -extern s16 D_8018CF48; -extern s16 D_8018CF60; -extern s16 D_8018CF78; -extern s16 D_8018CF90; -extern s16 D_8018CFA8; -extern s16 D_8018CFB0; -extern s16 D_8018CFB8; -extern s16 D_8018CFC0; -extern s16 D_8018CFC8; -extern s16 D_8018CFD0; -extern s16 D_8018CFD8; -extern s16 D_8018CFE0; -extern s16 D_8018CFF0; -extern s16 D_8018CFF8; - -extern s16 D_8018D000; -extern s16 D_8018D008; -extern s16 D_8018D010; -extern s16 D_8018D018; -extern s16 D_8018D020; -extern s16 D_8018D048; -extern s16 D_8018D070; -extern s16 D_8018D098; -extern s16 D_8018D0C0; -extern s16 D_8018D0E8; - -extern s16 D_8018D110; -extern u8 *D_8018D1E0; - -extern intptr_t D_8018D9B0; - // These are found in data_code_80071F00 extern StarSpawn D_800E6A38[]; /* unable to generate initializer */ extern StarSpawn D_800E6AA8[]; /* unable to generate initializer */ diff --git a/src/code_80071F00.c b/src/code_80071F00.c index f8c3a7784..a402005ad 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -12,7 +12,6 @@ #include "hud_renderer.h" #include "objects.h" #include "waypoints.h" -#include "variables.h" #include "code_800029B0.h" #include "code_80005FD0.h" #include "code_80057C60.h" diff --git a/src/code_80071F00.h b/src/code_80071F00.h index 0ecf02b18..0f8eb4b7e 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -383,46 +383,14 @@ extern u8 *D_800E4570[]; extern u8 *gPortraitTLUTs[]; extern u8 *gPortraitTextures[]; -// Seemingly a pointer to Lakitu texture(s) -extern u8 *D_8018C028; -// Seemingly a list of textures for Lakitu -// Never explicitly given data, data appears to be placed here -// via some type of DMA. -// I'm also not certain about its dimensions -// I think the entires in this array are way over-sized -extern u8 D_80183FA8[4][0x2000]; - -// Something related to the rotation(?) of ice in Sherbet Land -extern u16 D_801657A2; - -extern s8 D_801658CE; extern s32 D_80162DF8; extern s16 D_8016347C; extern s32 D_80165594; extern s32 D_80165598; -extern s16 D_80165740; -extern s8 D_801657B4; -extern Vec3su D_8016582C; -extern s8 D_80165888; -extern s8 D_801658C6; -extern s8 D_801658DC; -extern s8 D_801658F4; -extern s32 objectListSize; -extern s16 D_8018CFB0; -extern s16 D_8018CFE8; -extern s16 D_8018CFF0; extern s16 D_8018D018; -extern f32 xOrientation; -extern s16 D_8018D048; -extern s16 D_8018D110; -extern s32 D_8018D140; -extern s32 D_8018D158; extern s8 D_8018D198[]; extern s8 D_8018D1A8[]; extern s8 D_8018D1B8[]; -extern s32 D_8018D1EC; -extern s32 D_8018D224; -extern u8* D_8018D490; // This is either 3 Vec3s as separate variables or an array of s16's or an array of vec3s. // The other entries appear to be unused. diff --git a/src/code_80086E70.c b/src/code_80086E70.c index c27b50dca..5859a3292 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -12,8 +12,9 @@ #include "code_80071F00.h" #include "collision.h" #include "audio/external.h" -#include "variables.h" #include "main.h" +#include "code_80057C60.h" +#include "defines.h" void func_80086E70(s32 objectIndex) { gObjectList[objectIndex].unk_0AE = 1;// * 0xE0)) = 1; diff --git a/src/code_80086E70.h b/src/code_80086E70.h index 86d7ab636..f7cce4948 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -165,18 +165,6 @@ void func_8008BFFC(s32); void func_8008C1B8(s32); void func_8008C1C0(s32); -// This may be a list of tilemap flags on a per-camera basis -extern s16 D_8018CF68[]; -extern f32 D_80183DA8[]; -extern f32 D_80183DC8[]; -extern Collision D_8018C3B0; extern s16 gCurrentCourseId; -extern Vec4s D_80165760; -extern Vec4s D_80165770; -extern Vec4s D_80165780; - -extern Vec3f D_80183E40; -extern Vec3su D_80183E80; - #endif diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index c3180da51..3d64a161e 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include "code_800029B0.h" @@ -18,6 +17,13 @@ #include "audio/external.h" #include "spawn_players.h" +s32 D_8018D900[8]; +s16 D_8018D920[8]; +s32 D_8018D930[8]; +s32 D_8018D950[8]; +s32 D_8018D970[8]; +s32 D_8018D990[8]; + UNUSED void func_unnamed(void) { } diff --git a/src/code_8008C1D0.h b/src/code_8008C1D0.h index a97d025e0..32506e55e 100644 --- a/src/code_8008C1D0.h +++ b/src/code_8008C1D0.h @@ -123,6 +123,13 @@ void func_800CA984(u8); void func_800CAFC0(u8); void func_800CB064(u8); +extern s32 D_8018D900[]; +extern s16 D_8018D920[]; +extern s32 D_8018D930[]; +extern s32 D_8018D950[]; +extern s32 D_8018D970[]; +extern s32 D_8018D990[]; + /* This is where I'd put my static data, if I had any */ extern f32 D_800E3710[]; @@ -136,12 +143,5 @@ extern f32 D_800E37F0[]; extern s16 D_80165190[4][8]; extern f32 D_80165280[]; extern s32 gFrameSinceLastACombo[]; -extern s8 D_801658BC; -extern s32 D_8018D900[]; -extern s16 D_8018D920[]; -extern s32 D_8018D930[]; -extern s32 D_8018D950[]; -extern s32 D_8018D970[]; -extern s32 D_8018D990[]; #endif diff --git a/src/code_80091440.c b/src/code_80091440.c index 817d95ebf..45201bedf 100644 --- a/src/code_80091440.c +++ b/src/code_80091440.c @@ -1,4 +1,3 @@ -#include #include #include "main.h" #include "code_800029B0.h" diff --git a/src/code_80091750.c b/src/code_80091750.c index d48544654..142977218 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include "code_800029B0.h" #include "code_80091750.h" @@ -31,14 +30,62 @@ #include "racing/race_logic.h" #include "ending/code_80281C40.h" #include "spawn_players.h" +#include "render_player.h" //! @todo Move gGfxPool out of main.h // Unfortunately that's not a small effort due to weird import structure in this project #include "main.h" - +intptr_t D_8018D9B0; +u8 *D_8018D9B4; +uintptr_t *D_8018D9B8; +u8 *D_8018D9BC; +struct_8018EE10_entry_cont *D_8018D9C0; +/** + * List of bytes indexed by character ID + * Indicates number of Grand Prix points that character + * has scored +*/ +s8 gGPPointsByCharacterId[8]; +s8 gCharacterIdByGPOverallRank[8]; +s8 D_8018D9D8; +s8 D_8018D9D9; +struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; +struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE]; +s32 D_8018E060; +UNUSED s32 D_8018E068[32]; +struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE]; +s32 gD_8018E118TotalSize; +struct_8018E118_entry D_8018E118[D_8018E118_SIZE]; +s32 gNumD_8018E118Entries; +Gfx *D_8018E75C; +s32 gNumD_8018E768Entries; +struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; +s32 gCycleFlashMenu; +s8 D_8018E7AC[4]; +s8 D_8018E7B0; +s32 D_8018E7B8[4]; +u32 D_8018E7C8; +u32 D_8018E7D0[4]; +s32 D_8018E7E0; +struct UnkStruct_8018E7E8 D_8018E7E8[1]; +s16 D_8018E7F0; +UNUSED s32 D_8018E7F4; +s16 D_8018E7F8; +//! @todo Unknown type +s16 D_8018E7FA; +UNUSED s32 D_8018E7FC; +//! @todo Unknown type +s16 D_8018E800; +s16 D_8018E802; +UNUSED s32 D_8018E808[2]; +struct UnkStruct_8018E7E8 D_8018E810[1]; +s16 D_8018E818; +//! @todo Unknown type +s16 D_8018E81A; +UNUSED s32 D_8018E81C; //! @todo these are likely arrays. -s16 D_8018E820; +s16 D_8018E820; //! @todo This may not be the right file for them. -s16 D_8018E822; +s16 D_8018E822; s32 code_80091750_pad_1; s16 D_8018E828; s16 D_8018E82A; @@ -1503,8 +1550,6 @@ void swap_values(s32 *arg0, s32 *arg1) { } extern s8 D_800E852C; -extern uintptr_t *D_8018D9B4; -extern uintptr_t *D_8018D9B8; void func_80091B78(void) { s32 why = 0; @@ -5967,7 +6012,6 @@ void func_8009CA6C(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CA6C.s") #endif -extern u32 D_8018E7D0[]; extern struct UnkStruct_8018E7E8 D_8018E7E8[]; extern struct UnkStruct_8018E7E8 D_8018E810[]; diff --git a/src/code_80091750.h b/src/code_80091750.h index 96b5d6000..3293a7d83 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -366,6 +366,11 @@ void func_800AF740(struct_8018D9E0_entry*); // This really, really shouldn't be in this header file, but I don't know where else to put it void rmonPrintf(const char *, ...); +typedef struct struct_8018EE10_entry_cont { + struct_8018EE10_entry arr[1]; + +} struct_8018EE10_entry_cont; + /* File specific defines */ #define D_8018D9E0_SIZE 0x20 @@ -378,32 +383,40 @@ void rmonPrintf(const char *, ...); extern s32 D_800DDB24; extern s16 D_80164478[]; -extern u8 *D_8018D9BC; -extern s32 D_80165754; + extern intptr_t D_8018D9B0; -extern s8 gGPPointsByCharacterId[8]; // D_8018D9C8 -extern s8 D_8018D9D8; -extern s8 D_8018D9D9; -extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; // D_8018D9E0 -extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE]; // D_8018DEE0 +extern u8 *D_8018D9B4; +extern uintptr_t *D_8018D9B8; +extern u8 *D_8018D9BC; +extern struct_8018EE10_entry_cont *D_8018D9C0; +extern s8 gGPPointsByCharacterId[8]; +extern s8 gCharacterIdByGPOverallRank[]; +extern s8 D_8018D9D8; +extern s8 D_8018D9D9; +extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; +extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE]; extern s32 D_8018E060; extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE]; -extern s32 gD_8018E118TotalSize; // D_8018E110 -extern struct_8018E118_entry D_8018E118[D_8018E118_SIZE]; // D_8018E118 -extern s32 gNumD_8018E118Entries; // D_8018E758 -extern Gfx *D_8018E75C; // D_8018E75C -extern s32 gNumD_8018E768Entries; // D_8018E760 -extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; // D_8018E768 -extern s32 gCycleFlashMenu; // maybe? -extern s8 D_8018E7AC[]; -extern s8 D_8018E7B0; // maybe? +extern s32 gD_8018E118TotalSize; +extern struct_8018E118_entry D_8018E118[D_8018E118_SIZE]; +extern s32 gNumD_8018E118Entries; +extern Gfx *D_8018E75C; +extern s32 gNumD_8018E768Entries; +extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; +extern s32 gCycleFlashMenu; +extern s8 D_8018E7AC[]; +extern s8 D_8018E7B0; extern s32 D_8018E7B8[]; +extern u32 D_8018E7C8; +extern u32 D_8018E7D0[]; extern s32 D_8018E7E0; -extern s8 gTextColor; // D_8018E860 -extern u8 D_8018ED90; -extern u8 D_8018ED91; -extern s8 D_8018E838[]; +extern s16 D_8018E7F0; +extern s16 D_8018E7F8; +extern s8 gTextColor; +extern u8 D_8018ED90; +extern u8 D_8018ED91; +extern s8 D_8018E838[]; extern s32 D_8018E840[]; extern s32 D_8018E850[]; extern s32 D_8018E854; diff --git a/src/code_800AF9B0.c b/src/code_800AF9B0.c index cc24a725e..f7b64c056 100644 --- a/src/code_800AF9B0.c +++ b/src/code_800AF9B0.c @@ -1,7 +1,6 @@ #include #include #include -#include "global.h" #include "code_800AF9B0.h" diff --git a/src/debug/all_variables.h b/src/debug/all_variables.h index 8825e111b..cb6aaf8e6 100644 --- a/src/debug/all_variables.h +++ b/src/debug/all_variables.h @@ -57,7 +57,6 @@ #include #include #include -#include #include #include #include @@ -68,7 +67,6 @@ #include #include #include -#include #include #include diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index d0c697dbd..7137c457a 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -8,7 +8,6 @@ #include #include #include -#include "variables.h" #include "math_util.h" #include "ceremony_and_credits.h" #include "code_800029B0.h" @@ -20,6 +19,8 @@ #include #include "podium_ceremony_actors.h" #include "code_80091750.h" +#include "code_80057C60.h" +#include "defines.h" f32 D_802856B0 = 98.0f; f32 D_802856B4 = 12.0f; diff --git a/src/ending/code_80280000.c b/src/ending/code_80280000.c index a7b452590..8b1f00bb8 100644 --- a/src/ending/code_80280000.c +++ b/src/ending/code_80280000.c @@ -6,7 +6,6 @@ #include #include -#include #include #include "camera.h" #include "memory.h" @@ -25,6 +24,7 @@ #include "actors.h" #include "render_courses.h" #include "main.h" +#include "render_player.h" s32 D_802874A0; diff --git a/src/ending/code_80280000.h b/src/ending/code_80280000.h index 5cd4be8c5..dd71642d1 100644 --- a/src/ending/code_80280000.h +++ b/src/ending/code_80280000.h @@ -11,8 +11,6 @@ void func_80280268(s32 arg0); void credits_loop(void); void load_credits(void); -extern s16 gMatrixEffectCount; - extern s32 D_802874A0; extern u16 D_80164714, D_80164716, D_80164718; diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index a638c6264..5077bdd3e 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -5,7 +5,6 @@ #include "code_80281780.h" #include "types.h" -#include "variables.h" #include "memory.h" #include "camera.h" #include "camera_junk.h" diff --git a/src/ending/podium_ceremony_actors.c b/src/ending/podium_ceremony_actors.c index 8147d22ac..ce0e879d4 100644 --- a/src/ending/podium_ceremony_actors.c +++ b/src/ending/podium_ceremony_actors.c @@ -7,7 +7,6 @@ #include #include "main.h" #include "memory.h" -#include "variables.h" #include "common_textures.h" #include "render_player.h" #include "hud_renderer.h" diff --git a/src/ending/podium_ceremony_actors.h b/src/ending/podium_ceremony_actors.h index 4663483df..b21eb455e 100644 --- a/src/ending/podium_ceremony_actors.h +++ b/src/ending/podium_ceremony_actors.h @@ -117,6 +117,5 @@ extern ActorInitParams initBurst; extern Gfx *D_802874D4; extern s32 D_802874FC; extern Mat4 D_80287500; -extern s16 gMatrixEffectCount; #endif diff --git a/src/hud_renderer.c b/src/hud_renderer.c index 190cb8b86..4c686dc22 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -14,7 +14,6 @@ #include "math_util.h" #include "math_util_2.h" #include "objects.h" -#include "variables.h" #include "waypoints.h" #include "bomb_kart.h" #include "common_textures.h" diff --git a/src/hud_renderer.h b/src/hud_renderer.h index 7b330443a..46e99ca46 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -434,52 +434,16 @@ extern f32 D_801637F0; extern s32 D_80163814; -extern u16 D_801656B0; -extern u16 D_801656C0; extern s32 D_801655CC; -extern u16 D_801656D0; -extern u16 D_801656E0; -extern s16 D_80165708; -extern s16 D_80165710; -extern s8 D_801657D0[]; extern u16 D_8016579E; -extern s8 D_801657B8[16]; -extern s32 D_80165860; -extern s32 D_8016586C; -extern s32 D_80165878; -extern s32 D_8016589C; - -extern Camera *D_8018CF14; -extern s32 D_80183DD8[]; -extern Vec3f D_80183E40; -extern Vec3f D_80183E50; -extern Vec3f D_80183E70; extern Vec3su D_80183E80; -extern Vec3su D_80183E98; -extern Collision D_8018C830; -extern u8 *D_8018D1E0; extern f32 D_8018CFEC; extern f32 D_8018CFF4; -extern f32 D_8018D00C; -extern u8 D_8018D228; -extern f32 D_8018D2A0; -extern s16 D_8018D2C0[]; -extern s16 D_8018D2D8[]; extern s16 D_8018D2E0; extern s16 D_8018D2E8; -extern s16 D_8018D2F0; -extern s16 D_8018D2F8; -extern u16 D_8018D300; -extern u16 D_8018D308; -extern u16 D_8018D310; -extern u16 D_8018D318; -extern s32 D_8018D3E0; // some alpha -extern s32 D_8018D3E4; // some red -extern s32 D_8018D3E8; // some green -extern s32 D_8018D3EC; // some blue extern s32 D_8018D400; extern u8* D_8018D4BC; diff --git a/src/kart_dma.c b/src/kart_dma.c index f49b1df2a..b806522e0 100644 --- a/src/kart_dma.c +++ b/src/kart_dma.c @@ -1,10 +1,10 @@ #include #include #include "main.h" -#include "variables.h" #include "framebuffers.h" #include "common_structs.h" #include "kart_dma.h" +#include "defines.h" // Seemingly the largest compressed size for a frame for a given character // They seem slightly oversized too, either an alignemnt or safety thing diff --git a/src/main.h b/src/main.h index 08bfd7c05..2028d6f76 100644 --- a/src/main.h +++ b/src/main.h @@ -241,6 +241,4 @@ extern u8 _common_texturesSegmentRomEnd[]; extern u8 _data_802BA370SegmentRomStart[]; extern u32 *D_801978D0; // Segment? Keeps track of segmented addresses? -extern s16 gMatrixEffectCount; - #endif diff --git a/src/math_util_2.c b/src/math_util_2.c index abcf890b2..ced54e7cb 100644 --- a/src/math_util_2.c +++ b/src/math_util_2.c @@ -3,13 +3,14 @@ #include #include "math_util_2.h" #include "main.h" -#include "variables.h" #include "math_util.h" #include "objects.h" #include "memory.h" #include "collision.h" #include "render_player.h" +#include "code_80057C60.h" +#include "defines.h" #pragma intrinsic (sqrtf) @@ -605,10 +606,9 @@ void func_80041D24(void) { void guOrtho(Mtx *, f32, f32, f32, f32, f32, f32, f32); /* extern */ extern s8 D_801658FE; -extern Mtx D_80183D60[]; void func_80041D34(void) { - guOrtho((Mtx *)D_80183D60, 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f); + guOrtho(&D_80183D60, 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f); switch (gActiveScreenMode) { case SCREEN_MODE_1P: guOrtho(&gGfxPool->mtxOrtho, 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f); @@ -635,7 +635,6 @@ void func_80041EF4(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxOrtho), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); } -extern s32 gMatrixHudCount; //void convert_to_fixed_point_matrix(Mtx*, Mat4); UNUSED void func_80041F54(s32 x, s32 y) { diff --git a/src/math_util_2.h b/src/math_util_2.h index f56a12ee2..3dca9e629 100644 --- a/src/math_util_2.h +++ b/src/math_util_2.h @@ -81,10 +81,6 @@ void rsp_set_matrix_transl_rot_scale(Vec3f, Vec3f, f32); void rsp_set_matrix_gObjectList(s32); /* This is where I'd put my static data, if I had any */ - -extern Vec3su D_80165834; -extern s8 D_80165840[]; extern s8 D_801658FE; -extern s32 gMatrixHudCount; #endif // MATH_UTIL_2_H diff --git a/src/menus.c b/src/menus.c index ea0056350..082faa79d 100644 --- a/src/menus.c +++ b/src/menus.c @@ -1,7 +1,6 @@ #include #include #include -#include #include #include "menus.h" diff --git a/src/player_controller.c b/src/player_controller.c index cc78833e8..1c7b45c98 100644 --- a/src/player_controller.c +++ b/src/player_controller.c @@ -2,7 +2,6 @@ #include #include #include -#include #include "player_controller.h" #include "code_800029B0.h" @@ -18,8 +17,9 @@ #include "main.h" #include "camera.h" #include "spawn_players.h" +#include "code_80057C60.h" +#include "code_80005FD0.h" -extern s16 D_801633F8; extern s32 D_8018D168; s16 gCPUforMario[] = { @@ -646,7 +646,8 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) { (gModeSelection == BATTLE) || ((player->unk_0CA & 2) != 0) || (player->unk_0CA & 8) || - ((*((&D_801633F8) + (arg2))) == ((s16) 1U))) { + //! @todo make a proper match + ((*(D_801633F8 + (arg2))) == ((s16) 1U))) { player->effects &= ~0x1000; if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40) || diff --git a/src/player_controller.h b/src/player_controller.h index 6e61c44b4..153420076 100644 --- a/src/player_controller.h +++ b/src/player_controller.h @@ -189,9 +189,6 @@ extern s16 *gListCPUforPeach[]; extern s16 *gListCPUforBowser[]; extern s16 **gCPUforTwoPlayer[]; -extern s16 gMatrixEffectCount; - extern s16 D_801656F0; -extern s32 gRaceFrameCounter; #endif diff --git a/src/racing/collision.c b/src/racing/collision.c index 3a24b5183..0a7025a87 100644 --- a/src/racing/collision.c +++ b/src/racing/collision.c @@ -8,7 +8,6 @@ #include "memory.h" #include "collision.h" #include "math_util.h" -#include "variables.h" #include "code_800029B0.h" #pragma intrinsic (sqrtf) diff --git a/src/racing/math_util.c b/src/racing/math_util.c index 910b6d48a..6b0f006ce 100644 --- a/src/racing/math_util.c +++ b/src/racing/math_util.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include "framebuffers.h" #include diff --git a/src/racing/memory.c b/src/racing/memory.c index 982267382..4b699e911 100644 --- a/src/racing/memory.c +++ b/src/racing/memory.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include "memory.h" @@ -11,6 +10,7 @@ #include "code_800029B0.h" #include "math_util.h" #include "courses/courseTable.h" +#include "defines.h" s32 sGfxSeekPosition; s32 sPackedSeekPosition; diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c index b352c27b5..da7a184fc 100644 --- a/src/racing/skybox_and_splitscreen.c +++ b/src/racing/skybox_and_splitscreen.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include "skybox_and_splitscreen.h" diff --git a/src/render_player.c b/src/render_player.c index d0af86240..c55c5a30c 100644 --- a/src/render_player.c +++ b/src/render_player.c @@ -3,7 +3,6 @@ #include #include #include -#include #include "code_800029B0.h" #include "math_util.h" #include "math_util_2.h" diff --git a/src/render_player.h b/src/render_player.h index fa09eabca..8025b36bb 100644 --- a/src/render_player.h +++ b/src/render_player.h @@ -76,6 +76,7 @@ extern s16 D_80164AB0[]; extern s16 D_80164ABE[]; extern s16 D_80164AC0[]; extern Player *D_80164AD0[]; +extern s16 gMatrixEffectCount; extern u16 gPlayerRedEffect[]; extern u16 gPlayerGreenEffect[]; extern u16 gPlayerBlueEffect[]; @@ -84,7 +85,6 @@ extern u16 gPlayerMagentaEffect[]; extern u16 gPlayerYellowEffect[]; extern s32 D_80164B80[]; -extern u8 *D_8018D474; extern s32 D_8018D930[]; extern Gfx common_square_plain_render[]; diff --git a/src/save.c b/src/save.c index abce1db91..c75e8acf9 100644 --- a/src/save.c +++ b/src/save.c @@ -1,7 +1,6 @@ #include #include #include -#include "global.h" #include "save.h" @@ -9,6 +8,7 @@ #include "menus.h" #include "save_data.h" #include "staff_ghosts.h" +#include "code_80057C60.h" /*** macros ***/ #define PFS_COMPANY_CODE(c0, c1) ((u16)(((c0) << 8) | ((c1)))) diff --git a/src/save.h b/src/save.h index eaa7f4743..c68c2a806 100644 --- a/src/save.h +++ b/src/save.h @@ -87,18 +87,11 @@ s32 func_800B6A68(void); /* data */ // these might not be in this file, but for now... -typedef struct struct_8018EE10_entry_cont -{ - struct_8018EE10_entry arr[1]; - -} struct_8018EE10_entry_cont; - extern u32* D_800DC714; extern u16 gCompanyCode; extern u32 gGameCode; // osPfs gamecode extern s8 gControllerPak1State; // Current state of Controller Pak 1 -extern struct_8018EE10_entry_cont *D_8018D9C0; extern s8 sControllerPak2State; // Current state of the Controller Pak 2 extern const u8 D_800F2E60[]; diff --git a/src/spawn_players.c b/src/spawn_players.c index 88379d538..ca072c4ea 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -1,4 +1,3 @@ -#include #include #include "spawn_players.h" @@ -21,6 +20,8 @@ #include "main.h" #include "menus.h" #include "render_player.h" +#include "code_80091750.h" +#include "code_8008C1D0.h" f32 D_80165210[8]; f32 D_80165230[8]; diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c index e1f1908cb..6c6fb2077 100644 --- a/src/staff_ghosts.c +++ b/src/staff_ghosts.c @@ -11,6 +11,7 @@ #include "staff_ghosts.h" #include "code_8006E9C0.h" #include "code_80091750.h" +#include "code_80057C60.h" extern s32 mio0encode(s32 input, s32, s32); extern s32 func_80040174(void *, s32, s32); diff --git a/tools/doxygen_syms.md b/tools/doxygen_syms.md index f0ef93ae2..1eb0104bf 100644 --- a/tools/doxygen_syms.md +++ b/tools/doxygen_syms.md @@ -4404,70 +4404,103 @@ Variable Name | Memory Address [D_80165594](@ref D_80165594) | 0x80165594 [D_80165598](@ref D_80165598) | 0x80165598 [D_8016559C](@ref D_8016559C) | 0x8016559C +[D_801655A0](@ref D_801655A0) | 0x801655A0 [D_801655A4](@ref D_801655A4) | 0x801655A4 +[D_801655A8](@ref D_801655A8) | 0x801655A8 [D_801655AC](@ref D_801655AC) | 0x801655AC +[D_801655B0](@ref D_801655B0) | 0x801655B0 [D_801655B4](@ref D_801655B4) | 0x801655B4 +[D_801655B8](@ref D_801655B8) | 0x801655B8 [D_801655BC](@ref D_801655BC) | 0x801655BC [D_801655C0](@ref D_801655C0) | 0x801655C0 [D_801655C4](@ref D_801655C4) | 0x801655C4 [D_801655C8](@ref D_801655C8) | 0x801655C8 [D_801655CC](@ref D_801655CC) | 0x801655CC +[D_801655D0](@ref D_801655D0) | 0x801655D0 [D_801655D8](@ref D_801655D8) | 0x801655D8 +[D_801655DC](@ref D_801655DC) | 0x801655E0 [D_801655E8](@ref D_801655E8) | 0x801655E8 +[D_801655EC](@ref D_801655EC) | 0x801655EC [D_801655F0](@ref D_801655F0) | 0x801655F0 +[D_801655F4](@ref D_801655F4) | 0x801655F4 [D_801655F8](@ref D_801655F8) | 0x801655F8 +[D_80165600](@ref D_80165600) | 0x80165600 [D_80165608](@ref D_80165608) | 0x80165608 +[D_80165610](@ref D_80165610) | 0x80165610 [D_80165618](@ref D_80165618) | 0x80165618 +[D_80165620](@ref D_80165620) | 0x80165620 [D_80165628](@ref D_80165628) | 0x80165628 +[D_80165630](@ref D_80165630) | 0x80165630 [D_80165638](@ref D_80165638) | 0x80165638 +[D_80165640](@ref D_80165640) | 0x80165640 [D_80165648](@ref D_80165648) | 0x80165648 -[D_80165654](@ref D_80165654) | 0x80165654 +[D_80165650](@ref D_80165650) | 0x80165650 [D_80165658](@ref D_80165658) | 0x80165658 [D_80165678](@ref D_80165678) | 0x80165678 +[D_80165680](@ref D_80165680) | 0x80165680 [D_801656B0](@ref D_801656B0) | 0x801656B0 +[D_801656B8](@ref D_801656B8) | 0x801656B8 [D_801656C0](@ref D_801656C0) | 0x801656C0 +[D_801656C8](@ref D_801656C8) | 0x801656C8 [D_801656D0](@ref D_801656D0) | 0x801656D0 +[D_801656D8](@ref D_801656D8) | 0x801656D8 [D_801656E0](@ref D_801656E0) | 0x801656E0 +[D_801656E8](@ref D_801656E8) | 0x801656E8 [D_801656F0](@ref D_801656F0) | 0x801656F0 +[D_801656F8](@ref D_801656F8) | 0x801656F8 [D_80165708](@ref D_80165708) | 0x80165708 +[D_8016570C](@ref D_8016570C) | 0x8016570C [D_80165710](@ref D_80165710) | 0x80165710 +[D_80165714](@ref D_80165714) | 0x80165714 [D_80165718](@ref D_80165718) | 0x80165718 +[D_8016571C](@ref D_8016571C) | 0x8016571C [D_80165720](@ref D_80165720) | 0x80165720 +[D_80165724](@ref D_80165724) | 0x80165724 [D_80165728](@ref D_80165728) | 0x80165728 +[D_8016572C](@ref D_8016572C) | 0x8016572C [D_80165730](@ref D_80165730) | 0x80165730 +[D_80165734](@ref D_80165734) | 0x80165734 [D_80165738](@ref D_80165738) | 0x80165738 +[D_8016573C](@ref D_8016573C) | 0x8016573C [D_80165740](@ref D_80165740) | 0x80165740 +[D_80165744](@ref D_80165744) | 0x80165744 [D_80165748](@ref D_80165748) | 0x80165748 +[D_8016574C](@ref D_8016574C) | 0x8016574C [gNumActiveThwomps](@ref gNumActiveThwomps) | 0x80165750 [D_80165754](@ref D_80165754) | 0x80165754 [gThowmpSpawnList](@ref gThowmpSpawnList) | 0x80165758 [D_80165760](@ref D_80165760) | 0x80165760 -[D_80165762](@ref D_80165762) | 0x80165762 -[D_80165764](@ref D_80165764) | 0x80165764 -[D_80165766](@ref D_80165766) | 0x80165766 +[D_80165768](@ref D_80165768) | 0x80165768 [D_8016576A](@ref D_8016576A) | 0x8016576A [D_80165770](@ref D_80165770) | 0x80165770 -[D_80165772](@ref D_80165772) | 0x80165772 -[D_80165774](@ref D_80165774) | 0x80165774 -[D_80165776](@ref D_80165776) | 0x80165776 +[D_80165778](@ref D_80165778) | 0x80165778 [D_80165780](@ref D_80165780) | 0x80165780 -[D_80165782](@ref D_80165782) | 0x80165782 -[D_80165784](@ref D_80165784) | 0x80165784 -[D_80165786](@ref D_80165786) | 0x80165786 +[D_80165788](@ref D_80165788) | 0x80165788 [D_8016578C](@ref D_8016578C) | 0x8016578C +[D_8016578E](@ref D_8016578E) | 0x8016578E [D_80165790](@ref D_80165790) | 0x80165790 +[D_80165792](@ref D_80165792) | 0x80165792 [D_80165794](@ref D_80165794) | 0x80165794 +[D_80165798](@ref D_80165798) | 0x80165798 [D_8016579C](@ref D_8016579C) | 0x8016579C [D_8016579E](@ref D_8016579E) | 0x8016579E +[D_801657A0](@ref D_801657A0) | 0x801657A0 [D_801657A2](@ref D_801657A2) | 0x801657A2 +[D_801657A4](@ref D_801657A4) | 0x801657A4 +[D_801657A8](@ref D_801657A8) | 0x801657A8 [D_801657AE](@ref D_801657AE) | 0x801657AE +[D_801657AF](@ref D_801657AF) | 0x801657AF [D_801657B0](@ref D_801657B0) | 0x801657B0 +[D_801657B1](@ref D_801657B1) | 0x801657B1 [D_801657B2](@ref D_801657B2) | 0x801657B2 +[D_801657B3](@ref D_801657B3) | 0x801657B3 [D_801657B4](@ref D_801657B4) | 0x801657B4 [D_801657B8](@ref D_801657B8) | 0x801657B8 [D_801657C8](@ref D_801657C8) | 0x801657C8 [D_801657D0](@ref D_801657D0) | 0x801657D0 [D_801657D8](@ref D_801657D8) | 0x801657D8 +[D_801657DA](@ref D_801657DA) | 0x801657DC +[D_801657E0](@ref D_801657E0) | 0x801657E0 [D_801657E1](@ref D_801657E1) | 0x801657E1 [D_801657E2](@ref D_801657E2) | 0x801657E2 [D_801657E3](@ref D_801657E3) | 0x801657E3 @@ -4476,11 +4509,12 @@ Variable Name | Memory Address [D_801657E6](@ref D_801657E6) | 0x801657E6 [D_801657E7](@ref D_801657E7) | 0x801657E7 [D_801657E8](@ref D_801657E8) | 0x801657E8 +[D_801657EC](@ref D_801657EC) | 0x801657EC [D_801657F0](@ref D_801657F0) | 0x801657F0 +[D_801657F4](@ref D_801657F4) | 0x801657F4 [D_801657F8](@ref D_801657F8) | 0x801657F8 [D_801657FC](@ref D_801657FC) | 0x801657FC [D_80165800](@ref D_80165800) | 0x80165800 -[D_80165801](@ref D_80165801) | 0x80165801 [D_80165804](@ref D_80165804) | 0x80165804 [D_80165808](@ref D_80165808) | 0x80165808 [D_8016580C](@ref D_8016580C) | 0x8016580C @@ -4489,35 +4523,62 @@ Variable Name | Memory Address [D_80165818](@ref D_80165818) | 0x80165818 [D_8016581C](@ref D_8016581C) | 0x8016581C [D_80165820](@ref D_80165820) | 0x80165820 +[D_80165824](@ref D_80165824) | 0x80165824 [D_80165828](@ref D_80165828) | 0x80165828 [D_8016582C](@ref D_8016582C) | 0x8016582C [D_80165832](@ref D_80165832) | 0x80165832 [D_80165834](@ref D_80165834) | 0x80165834 +[D_8016583A](@ref D_8016583A) | 0x8016583C [D_80165840](@ref D_80165840) | 0x80165840 +[D_80165848](@ref D_80165848) | 0x80165848 [D_80165860](@ref D_80165860) | 0x80165860 +[D_80165864](@ref D_80165864) | 0x80165864 +[D_80165868](@ref D_80165868) | 0x80165868 [D_8016586C](@ref D_8016586C) | 0x8016586C +[D_80165870](@ref D_80165870) | 0x80165870 [D_80165878](@ref D_80165878) | 0x80165878 [D_8016587C](@ref D_8016587C) | 0x8016587C [D_80165880](@ref D_80165880) | 0x80165880 +[D_80165884](@ref D_80165884) | 0x80165884 [D_80165888](@ref D_80165888) | 0x80165888 +[D_8016588C](@ref D_8016588C) | 0x8016588C [D_80165890](@ref D_80165890) | 0x80165890 +[D_80165894](@ref D_80165894) | 0x80165894 [D_80165898](@ref D_80165898) | 0x80165898 [D_8016589C](@ref D_8016589C) | 0x8016589C +[D_801658A0](@ref D_801658A0) | 0x801658A0 [D_801658A8](@ref D_801658A8) | 0x801658A8 +[D_801658B0](@ref D_801658B0) | 0x801658B0 [D_801658BC](@ref D_801658BC) | 0x801658BC +[D_801658C0](@ref D_801658C0) | 0x801658C0 +[D_801658C4](@ref D_801658C4) | 0x801658C4 [D_801658C6](@ref D_801658C6) | 0x801658C6 +[D_801658C8](@ref D_801658C8) | 0x801658C8 +[D_801658CC](@ref D_801658CC) | 0x801658CC [D_801658CE](@ref D_801658CE) | 0x801658CE +[D_801658D0](@ref D_801658D0) | 0x801658D0 +[D_801658D4](@ref D_801658D4) | 0x801658D4 [D_801658D6](@ref D_801658D6) | 0x801658D6 +[D_801658D8](@ref D_801658D8) | 0x801658D8 [D_801658DC](@ref D_801658DC) | 0x801658DC +[D_801658E0](@ref D_801658E0) | 0x801658E0 [D_801658E4](@ref D_801658E4) | 0x801658E4 +[D_801658E8](@ref D_801658E8) | 0x801658E8 [D_801658EC](@ref D_801658EC) | 0x801658EC +[D_801658F0](@ref D_801658F0) | 0x801658F0 [D_801658F4](@ref D_801658F4) | 0x801658F4 +[D_801658F8](@ref D_801658F8) | 0x801658F8 +[D_801658FC](@ref D_801658FC) | 0x801658FC [sRandomItemIndex](@ref sRandomItemIndex) | 0x801658FD [D_801658FE](@ref D_801658FE) | 0x801658FE [gControllerRandom](@ref gControllerRandom) | 0x801658FF [D_80165900](@ref D_80165900) | 0x80165900 +[D_80165904](@ref D_80165904) | 0x80165904 [D_80165908](@ref D_80165908) | 0x80165908 +[D_80165910](@ref D_80165910) | 0x80165910 [D_80165A90](@ref D_80165A90) | 0x80165A90 +[D_80165AA0](@ref D_80165AA0) | 0x80165A98 +[D_80165C14](@ref D_80165C14) | 0x80165C14 [gObjectList](@ref gObjectList) | 0x80165C18 [D_80183D58](@ref D_80183D58) | 0x80183D58 [objectListSize](@ref objectListSize) | 0x80183D5C @@ -4525,23 +4586,19 @@ Variable Name | Memory Address [D_80183DA0](@ref D_80183DA0) | 0x80183DA0 [D_80183DA8](@ref D_80183DA8) | 0x80183DA8 [D_80183DB8](@ref D_80183DB8) | 0x80183DB8 -[D_80183DBC](@ref D_80183DBC) | 0x80183DBC -[D_80183DC0](@ref D_80183DC0) | 0x80183DC0 -[D_80183DC4](@ref D_80183DC4) | 0x80183DC4 [D_80183DC8](@ref D_80183DC8) | 0x80183DC8 [D_80183DD8](@ref D_80183DD8) | 0x80183DD8 -[D_80183DF4](@ref D_80183DF4) | 0x80183DF4 +[D_80183DF8](@ref D_80183DF8) | 0x80183DF8 [D_80183E38](@ref D_80183E38) | 0x80183E38 [D_80183E40](@ref D_80183E40) | 0x80183E40 -[D_80183E44](@ref D_80183E44) | 0x80183E44 [D_80183E4C](@ref D_80183E4C) | 0x80183E4C [D_80183E50](@ref D_80183E50) | 0x80183E50 [D_80183E5C](@ref D_80183E5C) | 0x80183E5C +[D_80183E60](@ref D_80183E60) | 0x80183E60 [D_80183E6C](@ref D_80183E6C) | 0x80183E6C [D_80183E70](@ref D_80183E70) | 0x80183E70 [D_80183E7C](@ref D_80183E7C) | 0x80183E7C [D_80183E80](@ref D_80183E80) | 0x80183E80 -[D_80183E84](@ref D_80183E84) | 0x80183E84 [gItemWindowObjectByPlayerId](@ref gItemWindowObjectByPlayerId) | 0x80183E88 [D_80183E98](@ref D_80183E98) | 0x80183E98 [indexObjectList1](@ref indexObjectList1) | 0x80183EA0 @@ -4561,8 +4618,6 @@ Variable Name | Memory Address [D_8018C870](@ref D_8018C870) | 0x8018C870 [D_8018C970](@ref D_8018C970) | 0x8018C970 [playerHUD](@ref playerHUD) | 0x8018CA70 -[D_8018CA74](@ref D_8018CA74) | 0x8018CA74 -[D_8018CA78](@ref D_8018CA78) | 0x8018CA78 [D_8018CC80](@ref D_8018CC80) | 0x8018CC80 [D_8018CE10](@ref D_8018CE10) | 0x8018CE10 [D_8018CF10](@ref D_8018CF10) | 0x8018CF10 @@ -4572,6 +4627,7 @@ Variable Name | Memory Address [D_8018CF20](@ref D_8018CF20) | 0x8018CF20 [D_8018CF24](@ref D_8018CF24) | 0x8018CF24 [D_8018CF28](@ref D_8018CF28) | 0x8018CF28 +[D_8018CF38](@ref D_8018CF38) | 0x8018CF38 [D_8018CF48](@ref D_8018CF48) | 0x8018CF48 [D_8018CF50](@ref D_8018CF50) | 0x8018CF50 [D_8018CF60](@ref D_8018CF60) | 0x8018CF60 @@ -4600,59 +4656,40 @@ Variable Name | Memory Address [D_8018CFF0](@ref D_8018CFF0) | 0x8018CFF0 [D_8018CFF4](@ref D_8018CFF4) | 0x8018CFF4 [D_8018CFF8](@ref D_8018CFF8) | 0x8018CFF8 +[D_8018CFFC](@ref D_8018CFFC) | 0x8018CFFC [D_8018D000](@ref D_8018D000) | 0x8018D000 +[D_8018D004](@ref D_8018D004) | 0x8018D004 [D_8018D008](@ref D_8018D008) | 0x8018D008 [D_8018D00C](@ref D_8018D00C) | 0x8018D00C [D_8018D010](@ref D_8018D010) | 0x8018D010 +[D_8018D014](@ref D_8018D014) | 0x8018D014 [D_8018D018](@ref D_8018D018) | 0x8018D018 [xOrientation](@ref xOrientation) | 0x8018D01C [D_8018D020](@ref D_8018D020) | 0x8018D020 [D_8018D028](@ref D_8018D028) | 0x8018D028 -[D_8018D02C](@ref D_8018D02C) | 0x8018D02C -[D_8018D030](@ref D_8018D030) | 0x8018D030 -[D_8018D034](@ref D_8018D034) | 0x8018D034 -[D_8018D038](@ref D_8018D038) | 0x8018D038 -[D_8018D03C](@ref D_8018D03C) | 0x8018D03C -[D_8018D040](@ref D_8018D040) | 0x8018D040 -[D_8018D044](@ref D_8018D044) | 0x8018D044 [D_8018D048](@ref D_8018D048) | 0x8018D048 [D_8018D050](@ref D_8018D050) | 0x8018D050 -[D_8018D054](@ref D_8018D054) | 0x8018D054 -[D_8018D058](@ref D_8018D058) | 0x8018D058 -[D_8018D05C](@ref D_8018D05C) | 0x8018D05C -[D_8018D060](@ref D_8018D060) | 0x8018D060 -[D_8018D064](@ref D_8018D064) | 0x8018D064 -[D_8018D068](@ref D_8018D068) | 0x8018D068 -[D_8018D06C](@ref D_8018D06C) | 0x8018D06C [D_8018D070](@ref D_8018D070) | 0x8018D070 [D_8018D078](@ref D_8018D078) | 0x8018D078 -[D_8018D07C](@ref D_8018D07C) | 0x8018D07C -[D_8018D080](@ref D_8018D080) | 0x8018D080 -[D_8018D084](@ref D_8018D084) | 0x8018D084 -[D_8018D088](@ref D_8018D088) | 0x8018D088 -[D_8018D08C](@ref D_8018D08C) | 0x8018D08C -[D_8018D090](@ref D_8018D090) | 0x8018D090 -[D_8018D094](@ref D_8018D094) | 0x8018D094 [D_8018D098](@ref D_8018D098) | 0x8018D098 [D_8018D0A0](@ref D_8018D0A0) | 0x8018D0A0 [D_8018D0C0](@ref D_8018D0C0) | 0x8018D0C0 [D_8018D0C8](@ref D_8018D0C8) | 0x8018D0C8 -[D_8018D0CC](@ref D_8018D0CC) | 0x8018D0CC -[D_8018D0D0](@ref D_8018D0D0) | 0x8018D0D0 -[D_8018D0D4](@ref D_8018D0D4) | 0x8018D0D4 -[D_8018D0D8](@ref D_8018D0D8) | 0x8018D0D8 -[D_8018D0DC](@ref D_8018D0DC) | 0x8018D0DC -[D_8018D0E0](@ref D_8018D0E0) | 0x8018D0E0 -[D_8018D0E4](@ref D_8018D0E4) | 0x8018D0E4 [D_8018D0E8](@ref D_8018D0E8) | 0x8018D0E8 [D_8018D0F0](@ref D_8018D0F0) | 0x8018D0F0 [D_8018D110](@ref D_8018D110) | 0x8018D110 [D_8018D114](@ref D_8018D114) | 0x8018D114 +[D_8018D118](@ref D_8018D118) | 0x8018D118 [gMatrixHudCount](@ref gMatrixHudCount) | 0x8018D120 +[D_8018D128](@ref D_8018D128) | 0x8018D128 [D_8018D140](@ref D_8018D140) | 0x8018D140 +[D_8018D148](@ref D_8018D148) | 0x8018D148 [D_8018D150](@ref D_8018D150) | 0x8018D150 +[D_8018D154](@ref D_8018D154) | 0x8018D154 [D_8018D158](@ref D_8018D158) | 0x8018D158 +[D_8018D15C](@ref D_8018D15C) | 0x8018D15C [D_8018D160](@ref D_8018D160) | 0x8018D160 +[D_8018D164](@ref D_8018D164) | 0x8018D164 [D_8018D168](@ref D_8018D168) | 0x8018D168 [D_8018D16C](@ref D_8018D16C) | 0x8018D16C [D_8018D170](@ref D_8018D170) | 0x8018D170 @@ -4667,7 +4704,6 @@ Variable Name | Memory Address [D_8018D198](@ref D_8018D198) | 0x8018D198 [D_8018D1A0](@ref D_8018D1A0) | 0x8018D1A0 [D_8018D1A8](@ref D_8018D1A8) | 0x8018D1A8 -[D_8018D1B3](@ref D_8018D1B3) | 0x8018D1B3 [D_8018D1B4](@ref D_8018D1B4) | 0x8018D1B4 [D_8018D1B8](@ref D_8018D1B8) | 0x8018D1B8 [D_8018D1C4](@ref D_8018D1C4) | 0x8018D1C4 @@ -4678,9 +4714,11 @@ Variable Name | Memory Address [D_8018D1D8](@ref D_8018D1D8) | 0x8018D1D8 [D_8018D1DC](@ref D_8018D1DC) | 0x8018D1DC [D_8018D1E0](@ref D_8018D1E0) | 0x8018D1E0 +[D_8018D1E4](@ref D_8018D1E4) | 0x8018D1E4 [D_8018D1E8](@ref D_8018D1E8) | 0x8018D1E8 [D_8018D1EC](@ref D_8018D1EC) | 0x8018D1EC [D_8018D1F0](@ref D_8018D1F0) | 0x8018D1F0 +[D_8018D1F4](@ref D_8018D1F4) | 0x8018D1F4 [D_8018D1F8](@ref D_8018D1F8) | 0x8018D1F8 [D_8018D1FC](@ref D_8018D1FC) | 0x8018D1FC [D_8018D200](@ref D_8018D200) | 0x8018D200 @@ -4696,10 +4734,12 @@ Variable Name | Memory Address [D_8018D228](@ref D_8018D228) | 0x8018D228 [D_8018D22C](@ref D_8018D22C) | 0x8018D22C [D_8018D230](@ref D_8018D230) | 0x8018D230 +[D_8018D238](@ref D_8018D238) | 0x8018D238 [D_8018D240](@ref D_8018D240) | 0x8018D240 [D_8018D248](@ref D_8018D248) | 0x8018D248 [D_8018D2A0](@ref D_8018D2A0) | 0x8018D2A0 [D_8018D2A4](@ref D_8018D2A4) | 0x8018D2A4 +[D_8018D2A8](@ref D_8018D2A8) | 0x8018D2A8 [D_8018D2AC](@ref D_8018D2AC) | 0x8018D2AC [D_8018D2B0](@ref D_8018D2B0) | 0x8018D2B0 [D_8018D2B4](@ref D_8018D2B4) | 0x8018D2B4 @@ -4709,21 +4749,31 @@ Variable Name | Memory Address [D_8018D2C8](@ref D_8018D2C8) | 0x8018D2C8 [D_8018D2D8](@ref D_8018D2D8) | 0x8018D2D8 [D_8018D2E0](@ref D_8018D2E0) | 0x8018D2E0 +[D_8018D2E4](@ref D_8018D2E4) | 0x8018D2E4 [D_8018D2E8](@ref D_8018D2E8) | 0x8018D2E8 +[D_8018D2EC](@ref D_8018D2EC) | 0x8018D2EC [D_8018D2F0](@ref D_8018D2F0) | 0x8018D2F0 +[D_8018D2F4](@ref D_8018D2F4) | 0x8018D2F4 [D_8018D2F8](@ref D_8018D2F8) | 0x8018D2F8 +[D_8018D2FC](@ref D_8018D2FC) | 0x8018D2FC [D_8018D300](@ref D_8018D300) | 0x8018D300 +[D_8018D304](@ref D_8018D304) | 0x8018D304 [D_8018D308](@ref D_8018D308) | 0x8018D308 +[D_8018D30C](@ref D_8018D30C) | 0x8018D30C [D_8018D310](@ref D_8018D310) | 0x8018D310 [D_8018D314](@ref D_8018D314) | 0x8018D314 [D_8018D318](@ref D_8018D318) | 0x8018D318 +[D_8018D31C](@ref D_8018D31C) | 0x8018D31C [D_8018D320](@ref D_8018D320) | 0x8018D320 +[D_8018D328](@ref D_8018D328) | 0x8018D328 [D_8018D380](@ref D_8018D380) | 0x8018D380 [D_8018D384](@ref D_8018D384) | 0x8018D384 [D_8018D388](@ref D_8018D388) | 0x8018D388 +[D_8018D390](@ref D_8018D390) | 0x8018D390 [D_8018D3BC](@ref D_8018D3BC) | 0x8018D3BC [D_8018D3C0](@ref D_8018D3C0) | 0x8018D3C0 [D_8018D3C4](@ref D_8018D3C4) | 0x8018D3C4 +[D_8018D3C8](@ref D_8018D3C8) | 0x8018D3C8 [D_8018D3D4](@ref D_8018D3D4) | 0x8018D3D4 [D_8018D3D8](@ref D_8018D3D8) | 0x8018D3D8 [D_8018D3DC](@ref D_8018D3DC) | 0x8018D3DC @@ -4736,8 +4786,11 @@ Variable Name | Memory Address [D_8018D3F8](@ref D_8018D3F8) | 0x8018D3F8 [gRaceFrameCounter](@ref gRaceFrameCounter) | 0x8018D3FC [D_8018D400](@ref D_8018D400) | 0x8018D400 +[D_8018D404](@ref D_8018D404) | 0x8018D404 +[D_8018D408](@ref D_8018D408) | 0x8018D408 [D_8018D40C](@ref D_8018D40C) | 0x8018D40C [D_8018D410](@ref D_8018D410) | 0x8018D410 +[D_8018D418](@ref D_8018D418) | 0x8018D418 [D_8018D420](@ref D_8018D420) | 0x8018D420 [D_8018D424](@ref D_8018D424) | 0x8018D424 [D_8018D428](@ref D_8018D428) | 0x8018D428 @@ -4761,6 +4814,7 @@ Variable Name | Memory Address [D_8018D470](@ref D_8018D470) | 0x8018D470 [D_8018D474](@ref D_8018D474) | 0x8018D474 [D_8018D478](@ref D_8018D478) | 0x8018D478 +[D_8018D47C](@ref D_8018D47C) | 0x8018D47C [D_8018D480](@ref D_8018D480) | 0x8018D480 [D_8018D484](@ref D_8018D484) | 0x8018D484 [D_8018D488](@ref D_8018D488) | 0x8018D488 @@ -4814,13 +4868,11 @@ Variable Name | Memory Address [D_8018D9D9](@ref D_8018D9D9) | 0x8018D9D9 [D_8018D9E0](@ref D_8018D9E0) | 0x8018D9E0 [D_8018DEE0](@ref D_8018DEE0) | 0x8018DEE0 -[D_8018DEE4](@ref D_8018DEE4) | 0x8018DEE4 [D_8018E060](@ref D_8018E060) | 0x8018E060 +[D_8018E068](@ref D_8018E068) | 0x8018E068 [D_8018E0E8](@ref D_8018E0E8) | 0x8018E0E8 [gD_8018E118TotalSize](@ref gD_8018E118TotalSize) | 0x8018E110 [D_8018E118](@ref D_8018E118) | 0x8018E118 -[D_8018E11C](@ref D_8018E11C) | 0x8018E11C -[D_8018E124](@ref D_8018E124) | 0x8018E124 [gNumD_8018E118Entries](@ref gNumD_8018E118Entries) | 0x8018E758 [D_8018E75C](@ref D_8018E75C) | 0x8018E75C [gNumD_8018E768Entries](@ref gNumD_8018E768Entries) | 0x8018E760 @@ -4834,13 +4886,17 @@ Variable Name | Memory Address [D_8018E7E0](@ref D_8018E7E0) | 0x8018E7E0 [D_8018E7E8](@ref D_8018E7E8) | 0x8018E7E8 [D_8018E7F0](@ref D_8018E7F0) | 0x8018E7F0 +[D_8018E7F4](@ref D_8018E7F4) | 0x8018E7F4 [D_8018E7F8](@ref D_8018E7F8) | 0x8018E7F8 [D_8018E7FA](@ref D_8018E7FA) | 0x8018E7FA +[D_8018E7FC](@ref D_8018E7FC) | 0x8018E7FC [D_8018E800](@ref D_8018E800) | 0x8018E800 [D_8018E802](@ref D_8018E802) | 0x8018E802 +[D_8018E808](@ref D_8018E808) | 0x8018E808 [D_8018E810](@ref D_8018E810) | 0x8018E810 [D_8018E818](@ref D_8018E818) | 0x8018E818 [D_8018E81A](@ref D_8018E81A) | 0x8018E81A +[D_8018E81C](@ref D_8018E81C) | 0x8018E81C [D_8018E820](@ref D_8018E820) | 0x8018E820 [D_8018E822](@ref D_8018E822) | 0x8018E822 [code_80091750_pad_1](@ref code_80091750_pad_1) | 0x8018E824