Go to the source code of this file.
|
void | create_thread (OSThread *, OSId, void(*entry)(void *), void *, void *, OSPri) |
|
void | main_func (void) |
|
void | thread1_idle (void *) |
|
void | setup_mesg_queues (void) |
|
void | start_sptask (s32) |
|
void | create_gfx_task_structure (void) |
|
void | init_controllers (void) |
|
void | update_controller (s32) |
|
void | read_controllers (void) |
|
void | func_80000BEC (void) |
|
void | dispatch_audio_sptask (struct SPTask *) |
|
void | exec_display_list (struct SPTask *) |
|
void | init_rcp (void) |
|
void | end_master_display_list (void) |
|
void * | clear_framebuffer (s32) |
|
void | rendering_init (void) |
|
void | config_gfx_pool (void) |
|
void | display_and_vsync (void) |
|
void | init_segment_ending_sequences (void) |
|
void | init_segment_racing (void) |
|
void | dma_copy (u8 *, u8 *, size_t) |
|
void | setup_game_memory (void) |
|
void | game_init_clear_framebuffer (void) |
|
void | race_logic_loop (void) |
|
void | game_state_handler (void) |
|
void | interrupt_gfx_sptask (void) |
|
void | receive_new_tasks (void) |
|
void | set_vblank_handler (s32, struct VblankHandler *, OSMesgQueue *, OSMesg *) |
|
void | start_gfx_sptask (void) |
|
void | handle_vblank (void) |
|
void | handle_dp_complete (void) |
|
void | handle_sp_complete (void) |
|
void | thread3_video (void *) |
|
void | func_800025D4 (void) |
|
void | func_80002600 (void) |
|
void | func_8000262C (void) |
|
void | func_80002658 (void) |
|
void | update_gamestate (void) |
|
void | thread5_game_loop (void *) |
|
void | thread4_audio (void *) |
|
◆ GFX_POOL_SIZE
◆ MESG_DP_COMPLETE
◆ MESG_NMI_REQUEST
◆ MESG_SP_COMPLETE
◆ MESG_START_GFX_SPTASK
#define MESG_START_GFX_SPTASK 103 |
◆ MESG_VI_VBLANK
◆ MTX_EFFECT_POOL_SIZE
#define MTX_EFFECT_POOL_SIZE 660 |
◆ MTX_EFFECT_POOL_SIZE_MAX
◆ MTX_HUD_POOL_SIZE
◆ MTX_HUD_POOL_SIZE_MAX
◆ MTX_KART_POOL_SIZE
#define MTX_KART_POOL_SIZE 8 * 4 |
- Todo
- Verify with proper documentation
◆ MTX_OBJECT_POOL_SIZE
#define MTX_OBJECT_POOL_SIZE 128 |
◆ MTX_SHADOW_POOL_SIZE
#define MTX_SHADOW_POOL_SIZE 8 * 4 |
- Todo
- Verify with proper documentation
◆ clear_framebuffer()
void * clear_framebuffer |
( |
s32 | color | ) |
|
- Todo
- Why did void* work for matching
◆ config_gfx_pool()
◆ create_gfx_task_structure()
Initializes the Fast3D OSTask structure. Loads F3DEX or F3DLX based on the number of players
◆ create_thread()
◆ dispatch_audio_sptask()
◆ display_and_vsync()
Send current master display list for rendering. Tell the VI which colour framebuffer to display. Yields to the VI framerate twice, locking the game at 30 FPS. Selects the next framebuffer to be rendered and displayed.
◆ dma_copy()
void dma_copy |
( |
u8 * | dest, |
|
|
u8 * | romAddr, |
|
|
size_t | size ) |
◆ end_master_display_list()
End the master display list and initialize the graphics task structure for the next frame to be rendered.
◆ exec_display_list()
◆ func_80000BEC()
◆ func_800025D4()
◆ func_80002600()
◆ func_8000262C()
◆ func_80002658()
◆ game_init_clear_framebuffer()
void game_init_clear_framebuffer |
( |
void | | ) |
|
◆ game_state_handler()
mk64's game loop depends on a series of states. It runs a wide branching series of code based on these states. State 1) Clear framebuffer State 2) Run menus State 3) Process race related logic State 4) Ending sequence State 5) Credits
Note that the state doesn't flip-flop at random but is permanent until the state changes (ie. Exit menus and start a race).
◆ handle_dp_complete()
◆ handle_sp_complete()
◆ handle_vblank()
◆ init_controllers()
◆ init_rcp()
Set default RCP (Reality Co-Processor) settings.
◆ init_segment_ending_sequences()
void init_segment_ending_sequences |
( |
void | | ) |
|
◆ init_segment_racing()
◆ interrupt_gfx_sptask()
◆ main_func()
◆ race_logic_loop()
◆ read_controllers()
◆ receive_new_tasks()
◆ rendering_init()
◆ set_vblank_handler()
◆ setup_game_memory()
Setup main segments and framebuffers.
◆ setup_mesg_queues()
◆ start_gfx_sptask()
◆ start_sptask()
◆ thread1_idle()
Initialize hardware, start main thread, then idle.
◆ thread3_video()
◆ thread4_audio()
◆ thread5_game_loop()
◆ update_controller()
void update_controller |
( |
s32 | index | ) |
|
◆ update_gamestate()
Sets courseId to NULL if
- Bug
- Reloading this segment makes random_u16() deterministic for player spawn order. In laymens terms, random_u16() outputs the same value every time.
◆ creditsRenderMode
◆ D_800DC510
◆ D_800DC540
◆ D_800DC544
◆ D_800DC568
◆ D_800DC56C
◆ D_800FD850
◆ D_8014F110
◆ D_80150118
◆ D_8015011E
◆ D_80150120
◆ D_8015014C
◆ D_80150150
◆ D_801502A0
◆ D_801502A4
◆ D_801502B4
◆ D_801502C0
◆ D_80152300
◆ D_80152308
◆ D_801978D0
◆ gActiveScreenMode
◆ gActiveSPTask
◆ gAudioThread
◆ gAudioThreadStack
◆ gCameraZoom
◆ gCCSelection
◆ gControllerBits
◆ gControllerEight
◆ gControllerFive
◆ gControllerFour
◆ gControllerOne
◆ gControllerPads
◆ gControllers
◆ gControllerSeven
◆ gControllerSix
◆ gControllerStatuses
◆ gControllerThree
◆ gControllerTwo
◆ gCourseTimer
◆ gD_80150158
◆ gDemoMode
◆ gDisplayListHead
◆ gDmaIoMesg
◆ gDmaMesgBuf
◆ gDmaMesgQueue
OSMesgQueue gDmaMesgQueue |
|
extern |
◆ gEnableDebugMode
◆ gfxPool_padding
◆ gGameLoopThread
◆ gGameLoopThreadStack
u8 gGameLoopThreadStack[] |
|
extern |
◆ gGameMesgBuf
◆ gGamestate
◆ gGamestateNext
◆ gGameVblankHandler
◆ gGameVblankQueue
OSMesgQueue gGameVblankQueue |
◆ gGfxMesgBuf
◆ gGfxPool
◆ gGfxPools
◆ gGfxSPTask
◆ gGfxSPTaskOutputBuffer
u64 gGfxSPTaskOutputBuffer[] |
|
extern |
◆ gGfxSPTaskOutputBufferSize
u32 gGfxSPTaskOutputBufferSize |
|
extern |
◆ gGfxSPTaskStack
◆ gGfxSPTaskYieldBuffer
u8 gGfxSPTaskYieldBuffer[] |
|
extern |
◆ gGfxVblankQueue
OSMesgQueue gGfxVblankQueue |
◆ gGlobalTimer
◆ gGotoMode
◆ gIdleThread
◆ gIdleThreadStack
◆ gIntrMesgBuf
◆ gIntrMesgQueue
OSMesgQueue gIntrMesgQueue |
◆ gMainReceivedMesg
◆ gMatrixObjectCount
◆ gModeSelection
◆ gNumActors
◆ gPhysicalFramebuffers
u16* gPhysicalFramebuffers[] |
|
extern |
◆ gPIMesgBuf
◆ gPIMesgQueue
◆ gPlayerCountSelection1
s32 gPlayerCountSelection1 |
|
extern |
◆ gPlayerEight
◆ gPlayerFive
◆ gPlayerFour
◆ gPlayerOne
◆ gPlayerOneCopy
◆ gPlayers
◆ gPlayerSeven
◆ gPlayerSix
◆ gPlayerThree
◆ gPlayerTwo
◆ gPlayerTwoCopy
◆ gScreenAspect
◆ gScreenModeSelection
◆ gSegmentTable
uintptr_t gSegmentTable[] |
|
extern |
◆ gSIEventMesgBuf
◆ gSIEventMesgQueue
OSMesgQueue gSIEventMesgQueue |
|
extern |
◆ gSPTaskMesgBuf
◆ gSPTaskMesgQueue
OSMesgQueue gSPTaskMesgQueue |
◆ gTickSpeed
◆ gVblankHandler1
◆ gVblankHandler2
◆ gVBlankTimer
◆ gVideoThread
◆ gVideoThreadStack
◆ padding
◆ sCurrentAudioSPTask
◆ sCurrentDisplaySPTask
◆ sNextAudioSPTask
◆ sNextDisplaySPTask
◆ sNumVBlanks
◆ sRenderedFramebuffer
◆ sRenderingFramebuffer
u16 sRenderingFramebuffer |
|
extern |
◆ sSoundMesgBuf
◆ sSoundMesgQueue
OSMesgQueue sSoundMesgQueue |
|
extern |
◆ sSoundVblankHandler
◆ unused_gMsgQueue
OSMesgQueue unused_gMsgQueue |
◆ wasSoftReset