5#define MESG_SP_COMPLETE 100
6#define MESG_DP_COMPLETE 101
7#define MESG_VI_VBLANK 102
8#define MESG_START_GFX_SPTASK 103
9#define MESG_NMI_REQUEST 104
11#define MTX_HUD_POOL_SIZE 800
14#define MTX_HUD_POOL_SIZE_MAX MTX_HUD_POOL_SIZE
16#define MTX_HUD_POOL_SIZE_MAX MTX_HUD_POOL_SIZE - 50
19#define MTX_OBJECT_POOL_SIZE 128
24#define MTX_SHADOW_POOL_SIZE 8 * 4
29#define MTX_KART_POOL_SIZE 8 * 4
31#define MTX_EFFECT_POOL_SIZE 660
35#define MTX_EFFECT_POOL_SIZE_MAX MTX_EFFECT_POOL_SIZE
37#define MTX_EFFECT_POOL_SIZE_MAX MTX_EFFECT_POOL_SIZE + 100
40#define GFX_POOL_SIZE 7500
203#ifndef D_800DC510_AS_U16
f32 Mat4[4][4]
Definition common_structs.h:16
OSMesg gPIMesgBuf[]
Definition main.c:164
Player * gPlayerOne
Definition main.c:72
void init_segment_racing(void)
Definition main.c:491
OSMesgQueue gDmaMesgQueue
Definition main.c:93
void dispatch_audio_sptask(struct SPTask *)
Definition main.c:384
struct SPTask * sNextDisplaySPTask
Definition main.c:59
struct Controller * gControllerTwo
Definition main.c:63
void interrupt_gfx_sptask(void)
Definition main.c:914
Gfx * gDisplayListHead
Definition main.c:132
void func_80002600(void)
Definition main.c:1111
u8 gVideoThreadStack[]
Definition main.c:152
OSMesgQueue unused_gMsgQueue
Definition main.h:141
OSMesgQueue gGameVblankQueue
Definition main.h:141
s32 D_800DC544
Definition main.c:183
Player * gPlayerTwoCopy
Definition main.c:82
void thread4_audio(void *)
s32 D_80150120
Definition main.c:118
f32 D_80150150
Definition main.c:127
OSMesg gGfxMesgBuf[]
Definition main.c:97
void func_8000262C(void)
Definition main.c:1117
OSIoMesg gDmaIoMesg
Definition main.c:101
void receive_new_tasks(void)
Definition main.c:921
s32 padding[]
Definition main.c:143
f32 D_80150118
Definition main.c:113
void thread3_video(void *)
struct D_80150158 gD_80150158[]
Definition main.c:130
Player * gPlayerSix
Definition main.c:77
u16 wasSoftReset
Definition main.c:115
f32 gCourseTimer
Definition main.c:198
#define MTX_OBJECT_POOL_SIZE
Definition main.h:19
s16 sNumVBlanks
Definition main.c:195
OSMesg gIntrMesgBuf[16]
Definition main.c:99
void exec_display_list(struct SPTask *)
Definition main.c:389
u16 sRenderingFramebuffer
Definition main.c:191
void func_80002658(void)
Definition main.c:1123
#define MTX_EFFECT_POOL_SIZE
Definition main.h:31
#define MTX_KART_POOL_SIZE
Definition main.h:29
s32 D_800DC540
Definition main.c:182
struct SPTask * sNextAudioSPTask
Definition main.c:58
s32 gGlobalTimer
Definition main.c:185
OSMesgQueue gPIMesgQueue
Definition main.c:165
void handle_dp_complete(void)
Definition main.c:1007
s32 D_801502A0
Definition main.c:135
OSMesg gMainReceivedMesg
Definition main.c:100
void start_sptask(s32)
Definition main.c:257
struct Controller * gControllerThree
Definition main.c:64
void main_func(void)
Definition main.c:206
u8 gAudioThreadStack[]
Definition main.c:158
u16 * gPhysicalFramebuffers[]
Definition main.c:137
Mat4 D_801502C0
Definition main.c:141
void read_controllers(void)
Definition main.c:351
OSContStatus gControllerStatuses[]
Definition main.c:105
struct Controller * gControllerFour
Definition main.c:65
s32 D_800DC510
Definition main.c:169
f32 gScreenAspect
Definition main.c:125
u16 D_80152308
Definition main.c:146
s32 gGamestateNext
Definition main.c:174
OSMesg sSoundMesgBuf[1]
Definition main.c:95
u16 D_800DC514
Definition main.c:170
Player * gPlayerFour
Definition main.c:75
Player * gPlayerOneCopy
Definition main.c:81
void end_master_display_list(void)
Definition main.c:415
struct Controller gControllers[]
Definition main.c:61
struct VblankHandler sSoundVblankHandler
Definition main.c:92
void func_80000BEC(void)
Definition main.c:380
s32 gPlayerCountSelection1
Definition main.c:179
OSMesgQueue gSPTaskMesgQueue
Definition main.h:141
void handle_vblank(void)
Definition main.c:968
void game_init_clear_framebuffer(void)
Definition main.c:571
u8 gGfxSPTaskYieldBuffer[]
Definition main.c:162
void thread1_idle(void *)
Definition main.c:221
Player * gPlayerFive
Definition main.c:76
s32 gScreenModeSelection
Definition main.c:177
OSMesgQueue gGfxVblankQueue
Definition main.h:141
s32 gGotoMode
Definition main.c:119
u16 D_8015011E
Definition main.c:116
OSMesg gGameMesgBuf
Definition main.h:144
void func_800025D4(void)
Definition main.c:1105
void setup_game_memory(void)
Definition main.c:518
Player * gPlayerTwo
Definition main.c:73
uintptr_t gPhysicalZBuffer
Definition main.c:138
#define GFX_POOL_SIZE
Definition main.h:40
u16 gNumActors
Definition main.c:110
#define MTX_SHADOW_POOL_SIZE
Definition main.h:24
void * clear_framebuffer(s32)
Definition main.c:423
struct SPTask * gGfxSPTask
Definition main.c:134
Player gPlayers[]
Definition main.c:71
void config_gfx_pool(void)
Definition main.c:450
struct Controller * gControllerFive
Definition main.c:66
s32 gGamestate
Definition main.c:167
s32 D_801502A4
Definition main.c:136
struct Controller * gControllerSeven
Definition main.c:68
struct GfxPool * gGfxPool
Definition main.c:88
OSMesg gDmaMesgBuf[1]
Definition main.c:96
void init_segment_ending_sequences(void)
Definition main.c:483
OSThread gGameLoopThread
Definition main.c:155
u8 gIdleThreadStack[]
Definition main.c:150
void display_and_vsync(void)
Definition main.c:463
u16 gMatrixObjectCount
Definition main.c:111
s32 D_800DC568
Definition main.c:193
struct GfxPool gGfxPools[]
Definition main.c:87
void update_controller(s32)
Definition main.c:315
struct VblankHandler * gVblankHandler2
Definition main.c:53
OSMesgQueue sSoundMesgQueue
Definition main.c:94
Player * gPlayerSeven
Definition main.c:78
u8 gGameLoopThreadStack[]
Definition main.c:156
void rendering_init(void)
Definition main.c:437
OSThread gVideoThread
Definition main.c:151
struct SPTask * sCurrentAudioSPTask
Definition main.c:56
void create_gfx_task_structure(void)
Definition main.c:272
CollisionGrid gCollisionGrid[]
Definition main.c:109
s32 gTickSpeed
Definition main.c:112
OSMesgQueue gIntrMesgQueue
Definition main.h:141
void handle_sp_complete(void)
Definition main.c:1017
#define MTX_HUD_POOL_SIZE
Definition main.h:11
struct SPTask * sCurrentDisplaySPTask
Definition main.c:57
Player * gPlayerEight
Definition main.c:79
struct SPTask * gActiveSPTask
Definition main.c:55
OSContPad gControllerPads[]
Definition main.c:106
struct Controller * gControllerSix
Definition main.c:67
u16 D_80152300[]
Definition main.c:145
void update_gamestate(void)
Definition main.c:1134
s32 gCCSelection
Definition main.c:184
OSMesg gSIEventMesgBuf[3]
Definition main.c:103
u16 gDemoMode
Definition main.c:172
s32 D_800DC56C[]
Definition main.c:194
struct VblankHandler gGameVblankHandler
Definition main.c:91
u32 gGfxSPTaskStack[]
Definition main.c:163
void thread5_game_loop(void *)
u16 gEnableDebugMode
Definition main.c:173
void set_vblank_handler(s32, struct VblankHandler *, OSMesgQueue *, OSMesg *)
Definition main.c:947
s32 gActiveScreenMode
Definition main.c:176
void setup_mesg_queues(void)
Definition main.c:248
struct Controller * gControllerEight
Definition main.c:69
void game_state_handler(void)
Definition main.c:874
struct VblankHandler * gVblankHandler1
Definition main.c:52
u16 creditsRenderMode
Definition main.c:171
OSMesg gSPTaskMesgBuf[16]
Definition main.h:146
void init_controllers(void)
Definition main.c:304
Player * gPlayerThree
Definition main.c:74
OSMesgQueue gSIEventMesgQueue
Definition main.c:102
f32 gVBlankTimer
Definition main.c:197
OSThread gAudioThread
Definition main.c:157
void dma_copy(u8 *, u8 *, size_t)
Definition main.c:499
u16 sRenderedFramebuffer
Definition main.c:190
uintptr_t gSegmentTable[]
Definition main.c:131
struct Controller * gControllerOne
Definition main.c:62
void start_gfx_sptask(void)
Definition main.c:960
f32 gCameraZoom[]
Definition main.c:122
f32 D_8015014C
Definition main.c:126
OSThread gIdleThread
Definition main.c:149
void create_thread(OSThread *, OSId, void(*entry)(void *), void *, void *, OSPri)
Definition main.c:200
u8 gControllerBits
Definition main.c:107
s32 gModeSelection
Definition main.c:181
void init_rcp(void)
Definition main.c:404
void race_logic_loop(void)
Definition main.c:576
s32 OSId
Definition os_thread.h:22
s32 OSPri
Definition os_thread.h:21
u16 triangle
Definition main.h:59
u16 numTriangles
Definition main.h:60
Definition common_structs.h:62
Definition common_structs.h:55
Mtx mtxHud[MTX_HUD_POOL_SIZE]
Definition main.h:48
Mtx mtxLookAt[4]
Definition main.h:47
Mtx mtxKart[MTX_KART_POOL_SIZE]
Definition main.h:51
Mtx mtxObject[MTX_OBJECT_POOL_SIZE]
Definition main.h:49
Mtx mtxEffect[MTX_EFFECT_POOL_SIZE]
Definition main.h:52
Mtx mtxPersp[4]
Definition main.h:44
struct SPTask spTask
Definition main.h:55
Gfx gfxPool[GFX_POOL_SIZE]
Definition main.h:54
Mtx mtxOrtho
Definition main.h:45
Mtx mtxShadow[MTX_SHADOW_POOL_SIZE]
Definition main.h:50
Mtx mtxUnk
Definition main.h:46
Mtx mtxScreen
Definition main.h:43
Mtx mtxArr[4]
Definition main.h:53
Definition os_thread.h:50
Definition common_structs.h:249
Definition common_structs.h:43
Definition common_structs.h:50
signed int s32
Definition ultratypes.h:15
unsigned int u32
Definition ultratypes.h:16
signed short int s16
Definition ultratypes.h:13
float f32
Definition ultratypes.h:34
unsigned short int u16
Definition ultratypes.h:14
unsigned char u8
Definition ultratypes.h:12