8#define MESG_SP_COMPLETE 100
9#define MESG_DP_COMPLETE 101
10#define MESG_VI_VBLANK 102
11#define MESG_START_GFX_SPTASK 103
12#define MESG_NMI_REQUEST 104
14#define MTX_HUD_POOL_SIZE 1600
17#define MTX_HUD_POOL_SIZE_MAX MTX_HUD_POOL_SIZE
19#define MTX_HUD_POOL_SIZE_MAX MTX_HUD_POOL_SIZE - 50
22#define MTX_OBJECT_POOL_SIZE 512
27#define MTX_SHADOW_POOL_SIZE 8 * 4
32#define MTX_KART_POOL_SIZE 8 * 4
34#define MTX_EFFECT_POOL_SIZE 660
38#define MTX_EFFECT_POOL_SIZE_MAX MTX_EFFECT_POOL_SIZE
40#define MTX_EFFECT_POOL_SIZE_MAX MTX_EFFECT_POOL_SIZE + 100
43#define GFX_POOL_SIZE 15000
f32 Mat4[4][4]
Definition common_structs.h:20
Player * gPlayerOne
Definition main.c:79
OSMesgQueue gDmaMesgQueue
Definition main.c:100
struct SPTask * sNextDisplaySPTask
Definition main.c:66
ALIGNED8 u8 gGameLoopThreadStack[STACKSIZE]
Definition main.c:166
struct Controller * gControllerTwo
Definition main.c:70
Gfx * gDisplayListHead
Definition main.c:141
OSMesgQueue unused_gMsgQueue
Definition main.c:100
OSMesgQueue gGameVblankQueue
Definition main.c:100
s32 D_800DC544
Definition main.c:193
OSMesg gPIMesgBuf[32]
Definition main.c:174
Player * gPlayerTwoCopy
Definition main.c:89
s32 D_80150120
Definition main.c:127
f32 D_80150150
Definition main.c:136
OSIoMesg gDmaIoMesg
Definition main.c:108
f32 D_80150118
Definition main.c:122
Player * gPlayerSix
Definition main.c:84
u16 wasSoftReset
Definition main.c:124
f32 gCourseTimer
Definition main.c:208
s16 sNumVBlanks
Definition main.c:205
OSMesg gIntrMesgBuf[16]
Definition main.c:106
u16 sRenderingFramebuffer
Definition main.c:201
OSMesg gGfxMesgBuf[1]
Definition main.c:104
u16 D_80152300[4]
Definition main.c:155
s32 D_800DC540
Definition main.c:192
struct SPTask * sNextAudioSPTask
Definition main.c:65
s32 gGlobalTimer
Definition main.c:195
OSMesgQueue gPIMesgQueue
Definition main.c:175
s32 D_801502A0
Definition main.c:144
s32 gRaceState
Definition main.c:179
OSContStatus gControllerStatuses[4]
Definition main.c:112
OSMesg gMainReceivedMesg
Definition main.c:107
struct Controller * gControllerThree
Definition main.c:71
struct Controller * gControllerFour
Definition main.c:72
OSContPad gControllerPads[4]
Definition main.c:113
f32 gScreenAspect
Definition main.c:134
Player gPlayers[NUM_PLAYERS]
Definition main.c:78
u16 D_80152308
Definition main.c:156
s32 gGamestateNext
Definition main.c:184
OSMesg sSoundMesgBuf[1]
Definition main.c:102
u16 D_800DC514
Definition main.c:180
f32 gCameraZoom[4]
Definition main.c:131
Player * gPlayerFour
Definition main.c:82
Player * gPlayerOneCopy
Definition main.c:88
struct VblankHandler sSoundVblankHandler
Definition main.c:99
s32 gPlayerCountSelection1
Definition main.c:189
OSMesgQueue gSPTaskMesgQueue
Definition main.c:100
Player * gPlayerFive
Definition main.c:83
s32 gScreenModeSelection
Definition main.c:187
OSMesgQueue gGfxVblankQueue
Definition main.c:100
s32 gGotoMode
Definition main.c:128
u16 D_8015011E
Definition main.c:125
ALIGNED8 u8 gAudioThreadStack[STACKSIZE]
Definition main.c:168
OSMesg gGameMesgBuf
Definition main.c:103
u16 gPortFramebuffers[3][SCREEN_WIDTH *SCREEN_HEIGHT]
Definition main.c:147
Player * gPlayerTwo
Definition main.c:80
uintptr_t gPhysicalZBuffer
Definition main.c:148
u16 gNumActors
Definition main.c:117
struct SPTask * gGfxSPTask
Definition main.c:143
struct Controller gControllers[NUM_PLAYERS]
Definition main.c:68
ALIGNED8 u8 gGfxSPTaskYieldBuffer[4352]
Definition main.c:172
struct Controller * gControllerFive
Definition main.c:73
s32 gGamestate
Definition main.c:177
s32 D_800DC56C[8]
Definition main.c:204
s32 D_801502A4
Definition main.c:145
struct Controller * gControllerSeven
Definition main.c:75
struct GfxPool * gGfxPool
Definition main.c:95
OSMesg gDmaMesgBuf[1]
Definition main.c:103
OSThread gGameLoopThread
Definition main.c:165
u16 gMatrixObjectCount
Definition main.c:118
s32 D_800DC568
Definition main.c:203
struct VblankHandler * gVblankHandler2
Definition main.c:60
OSMesgQueue sSoundMesgQueue
Definition main.c:101
Player * gPlayerSeven
Definition main.c:85
CollisionGrid gCollisionGrid[1024]
Definition main.c:116
OSThread gVideoThread
Definition main.c:161
u16 * gPhysicalFramebuffers[3]
Definition main.c:146
struct SPTask * sCurrentAudioSPTask
Definition main.c:63
ALIGNED8 u8 gVideoThreadStack[STACKSIZE]
Definition main.c:162
OSMesgQueue gIntrMesgQueue
Definition main.c:100
struct D_80150158 gD_80150158[16]
Definition main.c:139
struct SPTask * sCurrentDisplaySPTask
Definition main.c:64
Player * gPlayerEight
Definition main.c:86
struct SPTask * gActiveSPTask
Definition main.c:62
struct Controller * gControllerSix
Definition main.c:74
ALIGNED8 u32 gGfxSPTaskStack[256]
Definition main.c:173
s32 gCCSelection
Definition main.c:194
OSMesg gSIEventMesgBuf[3]
Definition main.c:110
u16 gDemoMode
Definition main.c:182
struct VblankHandler gGameVblankHandler
Definition main.c:98
struct GfxPool gGfxPools[2]
Definition main.c:94
f32 gDeltaTime
Definition main.c:325
ALIGNED8 u8 gIdleThreadStack[STACKSIZE]
Definition main.c:160
Mat4 sBillBoardMtx
Definition main.c:151
u16 gEnableDebugMode
Definition main.c:183
s32 gActiveScreenMode
Definition main.c:186
struct Controller * gControllerEight
Definition main.c:76
s32 padding[2048]
Definition main.c:153
struct VblankHandler * gVblankHandler1
Definition main.c:59
u16 creditsRenderMode
Definition main.c:181
OSMesg gSPTaskMesgBuf[16]
Definition main.c:106
Player * gPlayerThree
Definition main.c:81
OSMesgQueue gSIEventMesgQueue
Definition main.c:109
f32 gVBlankTimer
Definition main.c:207
OSThread gAudioThread
Definition main.c:167
u16 sRenderedFramebuffer
Definition main.c:200
uintptr_t gSegmentTable[16]
Definition main.c:140
struct Controller * gControllerOne
Definition main.c:69
f32 D_8015014C
Definition main.c:135
s32 gTickVisuals
Definition main.c:120
OSThread gIdleThread
Definition main.c:159
u8 gControllerBits
Definition main.c:114
s32 gModeSelection
Definition main.c:191
s32 gTickLogic
Definition main.c:119
void init_segment_racing(void)
Definition main.c:551
void dispatch_audio_sptask(struct SPTask *)
Definition main.c:438
void interrupt_gfx_sptask(void)
Definition main.c:986
void func_80002600(void)
Definition main.c:1185
void thread4_audio(void *)
void func_8000262C(void)
Definition main.c:1191
void thread5_iteration(void)
Definition main.c:1273
void receive_new_tasks(void)
Definition main.c:993
void thread3_video(void *)
#define MTX_OBJECT_POOL_SIZE
Definition main.h:22
void exec_display_list(struct SPTask *)
Definition main.c:443
void func_80002658(void)
Definition main.c:1197
#define MTX_EFFECT_POOL_SIZE
Definition main.h:34
#define MTX_KART_POOL_SIZE
Definition main.h:32
void handle_dp_complete(void)
Definition main.c:1081
void start_sptask(s32)
Definition main.c:267
void main_func(void)
Definition main.c:216
void read_controllers(void)
Definition main.c:405
void thread5_game_loop(void)
Definition main.c:1248
void end_master_display_list(void)
Definition main.c:469
void func_80000BEC(void)
Definition main.c:434
void handle_vblank(void)
Definition main.c:1040
void game_init_clear_framebuffer(void)
Definition main.c:632
void thread1_idle(void *)
Definition main.c:231
void func_800025D4(void)
Definition main.c:1179
void setup_game_memory(void)
Definition main.c:580
#define GFX_POOL_SIZE
Definition main.h:43
#define MTX_SHADOW_POOL_SIZE
Definition main.h:27
void * clear_framebuffer(s32)
Definition main.c:477
void config_gfx_pool(void)
Definition main.c:504
void init_segment_ending_sequences(void)
Definition main.c:541
void display_and_vsync(void)
Definition main.c:517
void update_controller(s32)
Definition main.c:359
void rendering_init(void)
Definition main.c:491
void create_gfx_task_structure(void)
Definition main.c:284
void handle_sp_complete(void)
Definition main.c:1091
#define MTX_HUD_POOL_SIZE
Definition main.h:14
void update_gamestate(void)
Definition main.c:1208
void set_vblank_handler(s32, struct VblankHandler *, OSMesgQueue *, OSMesg *)
Definition main.c:1019
void setup_mesg_queues(void)
Definition main.c:258
void game_state_handler(void)
Definition main.c:944
void init_controllers(void)
Definition main.c:348
void dma_copy(u8 *, u8 *, size_t)
Definition main.c:561
void start_gfx_sptask(void)
Definition main.c:1032
void create_thread(OSThread *, OSId, void(*entry)(void *), void *, void *, OSPri)
Definition main.c:210
void init_rcp(void)
Definition main.c:458
void race_logic_loop(void)
Definition main.c:809
#define SCREEN_WIDTH
Definition mk64.h:26
#define SCREEN_HEIGHT
Definition mk64.h:27
s32 OSId
Definition os_thread.h:22
struct OSThread_s OSThread
s32 OSPri
Definition os_thread.h:21
u16 triangle
Definition main.h:62
u16 numTriangles
Definition main.h:63
Definition common_structs.h:66
Definition common_structs.h:59
Mtx mtxHud[MTX_HUD_POOL_SIZE]
Definition main.h:51
Mtx mtxLookAt[4]
Definition main.h:50
Mtx mtxKart[MTX_KART_POOL_SIZE]
Definition main.h:54
Mtx mtxObject[MTX_OBJECT_POOL_SIZE]
Definition main.h:52
Mtx mtxEffect[MTX_EFFECT_POOL_SIZE]
Definition main.h:55
Mtx mtxPersp[4]
Definition main.h:47
struct SPTask spTask
Definition main.h:58
Gfx gfxPool[GFX_POOL_SIZE]
Definition main.h:57
Mtx mtxOrtho
Definition main.h:48
Mtx mtxShadow[MTX_SHADOW_POOL_SIZE]
Definition main.h:53
Mtx mtxUnk
Definition main.h:49
Mtx mtxScreen
Definition main.h:46
Mtx mtxArr[4]
Definition main.h:56
Definition common_structs.h:264
Definition common_structs.h:47
Definition common_structs.h:54