sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

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