game_init.h (2183B)
1 #ifndef GAME_INIT_H 2 #define GAME_INIT_H 3 4 #include <PR/ultratypes.h> 5 #include <PR/gbi.h> 6 #include <PR/os_cont.h> 7 #include <PR/os_message.h> 8 9 #include "types.h" 10 #include "memory.h" 11 12 #define GFX_POOL_SIZE 6400 // Size of how large the master display list (gDisplayListHead) can be 13 14 struct GfxPool { 15 Gfx buffer[GFX_POOL_SIZE]; 16 struct SPTask spTask; 17 }; 18 19 struct DemoInput { 20 u8 timer; // time until next input. if this value is 0, it means the demo is over 21 s8 rawStickX; 22 s8 rawStickY; 23 u8 buttonMask; 24 }; 25 26 extern struct Controller gControllers[3]; 27 extern OSContStatus gControllerStatuses[4]; 28 extern OSContPad gControllerPads[4]; 29 extern OSMesgQueue gGameVblankQueue; 30 extern OSMesgQueue gGfxVblankQueue; 31 extern OSMesg gGameMesgBuf[1]; 32 extern OSMesg gGfxMesgBuf[1]; 33 extern struct VblankHandler gGameVblankHandler; 34 extern uintptr_t gPhysicalFramebuffers[3]; 35 extern uintptr_t gPhysicalZBuffer; 36 extern void *gMarioAnimsMemAlloc; 37 extern void *gDemoInputsMemAlloc; 38 extern struct SPTask *gGfxSPTask; 39 extern Gfx *gDisplayListHead; 40 extern u8 *gGfxPoolEnd; 41 extern struct GfxPool *gGfxPool; 42 extern u8 gControllerBits; 43 extern s8 gEepromProbe; 44 45 extern void (*gGoddardVblankCallback)(void); 46 extern struct Controller *gPlayer1Controller; 47 extern struct Controller *gPlayer2Controller; 48 extern struct Controller *gPlayer3Controller; 49 extern struct DemoInput *gCurrDemoInput; 50 extern u16 gDemoInputListID; 51 extern struct DemoInput gRecordedDemoInput; 52 53 // this area is the demo input + the header. when the demo is loaded in, there is a header the size 54 // of a single word next to the input list. this word is the current ID count. 55 extern struct DmaHandlerList gMarioAnimsBuf; 56 extern struct DmaHandlerList gDemoInputsBuf; 57 58 extern u8 gMarioAnims[]; 59 extern u8 gDemoInputs[]; 60 61 extern u16 sRenderingFramebuffer; 62 extern u32 gGlobalTimer; 63 64 void setup_game_memory(void); 65 void thread5_game_loop(UNUSED void *arg); 66 void clear_framebuffer(s32 color); 67 void clear_viewport(Vp *viewport, s32 color); 68 void make_viewport_clip_rect(Vp *viewport); 69 void init_rcp(void); 70 void end_master_display_list(void); 71 void render_init(void); 72 void select_gfx_pool(void); 73 void display_and_vsync(void); 74 75 #endif // GAME_INIT_H