mirror of
https://gitlab.com/banjo.decomp/banjo-kazooie
synced 2026-09-10 03:41:57 -04:00
Merge branch 'draw_code' into 'master'
Draw code documentation See merge request banjo.decomp/banjo-kazooie!163
This commit is contained in:
+15
-15
@@ -149,17 +149,17 @@ void core1_ce60_func_8024BD40(s32 arg0, s32 arg1);
|
||||
|
||||
/* src/core1/depthbuffer.c */
|
||||
|
||||
extern u8 D_8000E800;
|
||||
extern u8 D_8000E800[];
|
||||
|
||||
void func_80253190(Gfx **gfx);
|
||||
void func_80253208(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
|
||||
bool func_80253400(void);
|
||||
bool depthBuffer_isPointerSet(void);
|
||||
void depthBuffer_stub(void);
|
||||
void func_80253428(int arg0);
|
||||
void func_802534A8(int arg0);
|
||||
void zBuffer_set(Gfx **gfx);
|
||||
void *zBuffer_get(void);
|
||||
void depthbuffer_clear(Gfx **gfx);
|
||||
void depthbuffer_clearRegion(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
|
||||
bool depthbuffer_getUnk4(void);
|
||||
bool depthbuffer_isDataPtrSet(void);
|
||||
void depthbuffer_stub(void);
|
||||
void depthbuffer_enable(bool enable);
|
||||
void depthbuffer_setUnk4(bool value);
|
||||
void depthbuffer_set(Gfx **gfx);
|
||||
void *depthbuffer_getDataPtr(void);
|
||||
|
||||
|
||||
|
||||
@@ -189,9 +189,9 @@ extern u16 gFramebuffers[2][DEFAULT_FRAMEBUFFER_WIDTH * DEFAULT_FRAMEBUFFER_HEIG
|
||||
void core1_15B30_requestLockForTaskDataID(void);
|
||||
void core1_15B30_requestReleaseForTaskDataID(void);
|
||||
void core1_15B30_addAudioTaskData(Acmd *start, Acmd *end, OSMesgQueue *mesg_queue, OSMesg msg);
|
||||
void func_80253640(Gfx ** gdl, void *arg1);
|
||||
void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx);
|
||||
void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address);
|
||||
void setupFramebuffer(Gfx **gfx, void *color_buffer);
|
||||
void setupFramebufferForGamemode(Gfx **gfx, s32 framebuffer_idx);
|
||||
void setupScissorBoxAndFramebuffer(Gfx **gfx, void *color_buffer);
|
||||
void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx);
|
||||
void core1_15B30_finishDList_renderThread(Gfx **gfx);
|
||||
void core1_15B30_finishDList(Gfx **gfx);
|
||||
@@ -211,8 +211,8 @@ void graphicsCache_init(void);
|
||||
void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom);
|
||||
void scissorBox_setDefault(void);
|
||||
void core1_15B30_addTask7TaskData(s32 framebuffer_id);
|
||||
void toggleTextureFilterPoint(void);
|
||||
void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void core1_15B30_toggleTexturePointFilter(void);
|
||||
void graphicscache_swapAndGetStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void dummy_func_80254464(void);
|
||||
|
||||
/* src/core1/defragmanager.c */
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ void ml_vec3f_normalize(f32 vec[3]);
|
||||
void ml_vec2f_normalize(f32 vec[2]);
|
||||
void ml_3f_normalize(f32 *x, f32 *y, f32 *z);
|
||||
void ml_vec3f_set_length_copy(f32 dst[3], f32 src[3], f32 len);
|
||||
void func_80256664(f32 ptr[3]);
|
||||
void ml_vec3f_clamp_deg360(f32 ptr[3]);
|
||||
void func_80256740(f32 vec[3]);
|
||||
void ml_vec3f_pitch_rotate_copy(f32 dst[3], f32 src[3], f32 pitch);
|
||||
void ml_vec3f_yaw_rotate_copy(f32 dst[3], f32 src[3], f32 yaw);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define __GC_TRANSITION__
|
||||
|
||||
void gctransition_defrag(void);
|
||||
void gctransition_draw(Gfx **arg0, Mtx **arg1, Vtx **arg2);
|
||||
void gctransition_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void gctransition_8030BD4C(void);
|
||||
f32 gctransition_8030BD88(void);
|
||||
int gctransition_done(void);
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
out[2] = c;\
|
||||
}
|
||||
|
||||
#define TUPLE_SET(dst, value) { dst[0] = dst[1] = dst[2] = value; }
|
||||
|
||||
#define TUPLE_COPY(dst, src) {\
|
||||
dst[0] = src[0];\
|
||||
dst[1] = src[1];\
|
||||
|
||||
+1
-1
@@ -136,7 +136,7 @@ typedef struct actorMarker_s{
|
||||
u32 unk40_22:1;
|
||||
u32 unk40_21:1;
|
||||
u32 unk40_20:1;
|
||||
u32 unk40_19:1;
|
||||
u32 unk40_19:1; // set for screen overlay sprites
|
||||
u32 pad40_18:19;
|
||||
Vec3fArray * unk44;
|
||||
BKModel * unk48;
|
||||
|
||||
+2
-2
@@ -151,7 +151,7 @@ void mainLoop(void){
|
||||
|
||||
#if ANTI_TAMPER
|
||||
if(!mapSpecificFlags_validateCRC1()){
|
||||
eeprom_writeBlocks(0, 0, 0x80397AD0, 0x40);
|
||||
eeprom_writeBlocks(0, 0, (void *) PHYS_TO_K0(0x00397AD0), EEPROM_MAXBLOCKS);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -164,7 +164,7 @@ void mainLoop(void){
|
||||
func_80255ACC();
|
||||
spawnQueue_func_802C3A18();
|
||||
if(func_802E4424())
|
||||
game_draw(0);
|
||||
game_draw(FALSE);
|
||||
spawnQueue_flush();
|
||||
break;
|
||||
}//L8023DE34
|
||||
|
||||
+51
-52
@@ -8,7 +8,7 @@ s32 gFramebufferHeight = DEFAULT_FRAMEBUFFER_HEIGHT;
|
||||
static Mtx *sMtxStack[2];
|
||||
static Vtx *sVtxStack[2];
|
||||
static s32 sStackSelector;
|
||||
s32 gTextureFilterPoint;
|
||||
bool sUseTexturePointFilter;
|
||||
struct ucode_task_data_s sUcodeTaskData[20];
|
||||
s32 sCurrentUcodeTaskDataID;
|
||||
OSMesgQueue sTaskDataListLockMesgQueue;
|
||||
@@ -17,7 +17,7 @@ u16 gScissorBoxLeft;
|
||||
u16 gScissorBoxRight;
|
||||
u16 gScissorBoxTop;
|
||||
u16 gScissorBoxBottom;
|
||||
Gfx *D_80283214;
|
||||
Gfx *D_80283214; // never used
|
||||
|
||||
void core1_15B30_requestLockForTaskDataID(void) {
|
||||
osRecvMesg(&sTaskDataListLockMesgQueue, NULL, OS_MESG_BLOCK);
|
||||
@@ -44,47 +44,45 @@ void core1_15B30_addAudioTaskData(Acmd *start, Acmd *end, OSMesgQueue *mesg_queu
|
||||
thread5_sendTaskToQueue((OSMesg) task_data);
|
||||
}
|
||||
|
||||
void func_80253640(Gfx ** gdl, void *arg1){
|
||||
D_80283214 = *gdl;
|
||||
gSPSegment((*gdl)++, 0x00, 0x00000000);
|
||||
gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2);
|
||||
gSPClearGeometryMode((*gdl)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gDPPipeSync((*gdl)++);
|
||||
gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE);
|
||||
gDPSetAlphaCompare((*gdl)++, G_AC_NONE);
|
||||
gDPSetColorDither((*gdl)++, G_CD_MAGICSQ);
|
||||
gDPSetScissor((*gdl)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
|
||||
func_80253208(gdl, 0, 0, gFramebufferWidth, gFramebufferHeight, arg1);
|
||||
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_K0_TO_PHYSICAL(arg1));
|
||||
gDPSetCycleType((*gdl)++, G_CYC_1CYCLE);
|
||||
gDPSetTextureConvert((*gdl)++, G_TC_FILT);
|
||||
gDPSetTextureDetail((*gdl)++, G_TD_CLAMP);
|
||||
if(gTextureFilterPoint){
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_POINT);
|
||||
}else{
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
|
||||
}
|
||||
gDPSetTextureLOD((*gdl)++, G_TL_TILE);
|
||||
gDPSetTextureLUT((*gdl)++, G_TT_NONE);
|
||||
gDPSetTexturePersp((*gdl)++, G_TP_PERSP);
|
||||
zBuffer_set(gdl);
|
||||
}
|
||||
|
||||
void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx) {
|
||||
if(getGameMode() == GAME_MODE_8_BOTTLES_BONUS || getGameMode() == GAME_MODE_A_SNS_PICTURE)
|
||||
{
|
||||
scissorBox_setSmall();
|
||||
func_80253640(gdl, func_8030C704());
|
||||
}
|
||||
else{
|
||||
scissorBox_setDefault();
|
||||
func_80253640(gdl, gFramebuffers[framebuffer_idx]);
|
||||
}
|
||||
}
|
||||
|
||||
void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address){
|
||||
void setupFramebuffer(Gfx **gfx, void *color_buffer) {
|
||||
D_80283214 = *gfx;
|
||||
gSPSegment((*gfx)++, 0x00, 0x00000000);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_PHYSICAL_TO_K0(framebuffer_address));
|
||||
gDPSetRenderMode((*gfx)++, G_RM_NOOP, G_RM_NOOP2);
|
||||
gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
|
||||
gDPSetAlphaCompare((*gfx)++, G_AC_NONE);
|
||||
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
|
||||
gDPSetScissor((*gfx)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
|
||||
depthbuffer_clearRegion(gfx, 0, 0, gFramebufferWidth, gFramebufferHeight, color_buffer);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_K0_TO_PHYSICAL(color_buffer));
|
||||
gDPSetCycleType((*gfx)++, G_CYC_1CYCLE);
|
||||
gDPSetTextureConvert((*gfx)++, G_TC_FILT);
|
||||
gDPSetTextureDetail((*gfx)++, G_TD_CLAMP);
|
||||
if (sUseTexturePointFilter) {
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_POINT);
|
||||
}else{
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
|
||||
}
|
||||
gDPSetTextureLOD((*gfx)++, G_TL_TILE);
|
||||
gDPSetTextureLUT((*gfx)++, G_TT_NONE);
|
||||
gDPSetTexturePersp((*gfx)++, G_TP_PERSP);
|
||||
depthbuffer_set(gfx);
|
||||
}
|
||||
|
||||
void setupFramebufferForGamemode(Gfx **gfx, s32 framebuffer_idx) {
|
||||
if ((getGameMode() == GAME_MODE_8_BOTTLES_BONUS) || (getGameMode() == GAME_MODE_A_SNS_PICTURE)) {
|
||||
picturebox_setScissorBox();
|
||||
setupFramebuffer(gfx, picturebox_getColorBuffer());
|
||||
} else {
|
||||
scissorBox_setDefault();
|
||||
setupFramebuffer(gfx, gFramebuffers[framebuffer_idx]);
|
||||
}
|
||||
}
|
||||
|
||||
void setupScissorBoxAndFramebuffer(Gfx **gfx, void *color_buffer) {
|
||||
gSPSegment((*gfx)++, 0x00, 0x00000000);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_PHYSICAL_TO_K0(color_buffer));
|
||||
gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH);
|
||||
@@ -184,13 +182,13 @@ void core1_15B30_init(void) {
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
|
||||
void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
|
||||
void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b) {
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
|
||||
gDPSetCycleType((*gfx)++, G_CYC_FILL);
|
||||
gDPSetFillColor((*gfx)++, GPACK_RGBA5551(r, g, b, 1) << 16 | GPACK_RGBA5551(r, g, b, 1));
|
||||
gDPSetRenderMode((*gfx)++, G_RM_NOOP, G_RM_NOOP2);
|
||||
gDPScisFillRectangle((*gfx)++, x, y, x + w -1, y + h -1);
|
||||
gDPScisFillRectangle((*gfx)++, x, y, x + w - 1, y + h - 1);
|
||||
}
|
||||
|
||||
void graphicsCache_release(void) {
|
||||
@@ -205,8 +203,8 @@ void graphicsCache_release(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void graphicsCache_init(void){
|
||||
if(sGfxStack[0] == NULL){
|
||||
void graphicsCache_init(void) {
|
||||
if (sGfxStack[0] == NULL) {
|
||||
sGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands
|
||||
sGfxStack[1] = (Gfx *)malloc(29600);
|
||||
sMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices
|
||||
@@ -215,8 +213,10 @@ void graphicsCache_init(void){
|
||||
sVtxStack[1] = (Vtx *)malloc(6880);
|
||||
dummy_func_80254464();
|
||||
}
|
||||
|
||||
|
||||
sStackSelector = 0;
|
||||
gTextureFilterPoint = 0;
|
||||
sUseTexturePointFilter = FALSE;
|
||||
}
|
||||
|
||||
void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) {
|
||||
@@ -231,7 +231,7 @@ void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) {
|
||||
|
||||
|
||||
void scissorBox_setDefault(void){
|
||||
scissorBox_set(0, 292, 0, 216);
|
||||
scissorBox_set(0, DEFAULT_FRAMEBUFFER_WIDTH, 0, DEFAULT_FRAMEBUFFER_HEIGHT);
|
||||
}
|
||||
|
||||
void core1_15B30_addTask7TaskData(s32 framebuffer_id) {
|
||||
@@ -248,12 +248,11 @@ void core1_15B30_addTask7TaskData(s32 framebuffer_id) {
|
||||
thread5_sendTaskToQueue((OSMesg) task_data);
|
||||
}
|
||||
|
||||
void toggleTextureFilterPoint(void){
|
||||
u32 ret_val = gTextureFilterPoint;
|
||||
gTextureFilterPoint = ret_val < 1;
|
||||
void core1_15B30_toggleTexturePointFilter(void) {
|
||||
sUseTexturePointFilter = !sUseTexturePointFilter;
|
||||
}
|
||||
|
||||
void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
void graphicscache_swapAndGetStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
sStackSelector = (1 - sStackSelector);
|
||||
*gfx = sGfxStack[sStackSelector];
|
||||
*mtx = sMtxStack[sStackSelector];
|
||||
|
||||
+27
-25
@@ -4,67 +4,69 @@
|
||||
#include "variables.h"
|
||||
|
||||
struct {
|
||||
void *data;
|
||||
int unk4;
|
||||
u16 *data;
|
||||
bool unk4;
|
||||
} sDepthBuffer;
|
||||
|
||||
void func_80253190(Gfx **gfx) {
|
||||
func_80253208(gfx, 0, 0, gFramebufferWidth, gFramebufferHeight, gFramebuffers[getActiveFramebuffer()]);
|
||||
void depthbuffer_clear(Gfx **gfx) {
|
||||
depthbuffer_clearRegion(gfx, 0, 0, gFramebufferWidth, gFramebufferHeight, gFramebuffers[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
void func_80253208(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, void *color_buffer){
|
||||
if( sDepthBuffer.data != NULL && (getGameMode() != GAME_MODE_4_PAUSED || gsworld_getEnableDraw())){
|
||||
//draw z_buffer
|
||||
void depthbuffer_clearRegion(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, void *color_buffer) {
|
||||
if ((sDepthBuffer.data != NULL) && ((getGameMode() != GAME_MODE_4_PAUSED) || gsworld_getEnableDraw())) {
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_K0_TO_PHYSICAL(sDepthBuffer.data));
|
||||
gDPSetCycleType((*gfx)++, G_CYC_FILL);
|
||||
gDPSetRenderMode((*gfx)++, G_RM_NOOP, G_RM_NOOP2);
|
||||
gDPSetFillColor((*gfx)++, 0xFFFCFFFC);
|
||||
gDPSetFillColor((*gfx)++, (GPACK_ZDZ(G_MAXFBZ, 0) << 16) | GPACK_ZDZ(G_MAXFBZ, 0));
|
||||
gDPScisFillRectangle((*gfx)++, x, y, x + w - 1, y + h - 1);
|
||||
|
||||
//draw color_buffer
|
||||
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_K0_TO_PHYSICAL(color_buffer));
|
||||
}
|
||||
}
|
||||
|
||||
int func_80253400(void){
|
||||
bool depthbuffer_getUnk4(void) {
|
||||
return sDepthBuffer.unk4;
|
||||
}
|
||||
|
||||
bool depthBuffer_isPointerSet(void) {
|
||||
bool depthbuffer_isDataPtrSet(void) {
|
||||
return sDepthBuffer.data != NULL;
|
||||
}
|
||||
|
||||
void depthBuffer_stub(void) {}
|
||||
void depthbuffer_stub(void) {}
|
||||
|
||||
void func_80253428(int arg0) {
|
||||
void depthbuffer_enable(bool enable) {
|
||||
u16 *var_v0;
|
||||
int new_var;
|
||||
if (arg0) {
|
||||
var_v0 = (sDepthBuffer.data = &D_8000E800);
|
||||
while (((s32) sDepthBuffer.data) % 0x40) {
|
||||
var_v0 = (sDepthBuffer.data = var_v0 + 1);
|
||||
|
||||
if (enable) {
|
||||
sDepthBuffer.data = (u16 *) D_8000E800;
|
||||
|
||||
var_v0 = sDepthBuffer.data;
|
||||
while (((s32) sDepthBuffer.data) % 64) {
|
||||
sDepthBuffer.data = var_v0 + 1;
|
||||
var_v0 = sDepthBuffer.data;
|
||||
}
|
||||
|
||||
do { } while ((&D_8000E800 && 1) * 0); //remove this
|
||||
}else{
|
||||
do { } while ((D_8000E800 && 1) * 0); //remove this
|
||||
} else {
|
||||
sDepthBuffer.data = NULL;
|
||||
}
|
||||
|
||||
sDepthBuffer.unk4 = FALSE;
|
||||
}
|
||||
|
||||
void func_802534A8(int arg0) {
|
||||
sDepthBuffer.unk4 = (sDepthBuffer.data != NULL && arg0);
|
||||
void depthbuffer_setUnk4(bool value) {
|
||||
sDepthBuffer.unk4 = sDepthBuffer.data && value;
|
||||
}
|
||||
|
||||
void zBuffer_set(Gfx **gfx) {
|
||||
void depthbuffer_set(Gfx **gfx) {
|
||||
if (sDepthBuffer.data && getGameMode() != GAME_MODE_4_PAUSED) {
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetDepthImage((*gfx)++, sDepthBuffer.data);
|
||||
}
|
||||
}
|
||||
|
||||
void *zBuffer_get(void) {
|
||||
void *depthbuffer_getDataPtr(void) {
|
||||
return sDepthBuffer.data;
|
||||
}
|
||||
|
||||
+5
-7
@@ -231,16 +231,14 @@ void ml_vec3f_set_length_copy(f32 dst[3], f32 src[3], f32 len)
|
||||
ml_vec3f_copy(dst, src);
|
||||
}
|
||||
|
||||
void func_80256664(f32 ptr[3])
|
||||
{
|
||||
u32 i;
|
||||
void ml_vec3f_clamp_deg360(f32 ptr[3]) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
for (i = 0; i < 3; i++) {
|
||||
if (ptr[i] >= 0)
|
||||
ptr[i] = (s32)ptr[i] % 360;
|
||||
ptr[i] = (s32) ptr[i] % 360;
|
||||
else
|
||||
ptr[i] += ((360 - (s32)ptr[i]) / 360) * 360;
|
||||
ptr[i] += ((360 - (s32) ptr[i]) / 360) * 360;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,10 +93,12 @@ void viewport_setRenderPerspectiveMatrix(Gfx **gfx, Mtx **mtx, f32 near, f32 far
|
||||
near = MAX(sViewportNear, near);
|
||||
far = MIN(sViewportFar, far);
|
||||
|
||||
if(*(u32*)OS_PHYSICAL_TO_K1(0x1D8) + 0x53D4FFF0) { // what's this?
|
||||
#if ANTI_TAMPER
|
||||
if ((*(u32*) OS_PHYSICAL_TO_K1(0x000001D8)) + 0x53D4FFF0) {
|
||||
near = 750.0f;
|
||||
far = 1250.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
guPerspective(*mtx, &perspNorm, sViewportFOVy, sViewportAspect, near, far, 0.5f);
|
||||
gSPPerspNormalize((*gfx)++, perspNorm);
|
||||
|
||||
@@ -50,7 +50,7 @@ typedef struct{
|
||||
extern void item_set(enum item_e, s32);
|
||||
extern void actor_postdrawMethod(ActorMarker *);
|
||||
extern void viewport_setNearAndFar(f32, f32);
|
||||
extern s16 *func_8030C704(void);
|
||||
extern s16 *picturebox_getColorBuffer(void);
|
||||
|
||||
Actor *chBottlesBonus_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chBottlesBonus_update(Actor *this);
|
||||
@@ -157,7 +157,7 @@ Actor *chBottlesBonus_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx)
|
||||
void *sp50;
|
||||
|
||||
sp6C = marker_getActor(marker);
|
||||
sp50 = func_8030C704(); //grabs frame as texture?
|
||||
sp50 = picturebox_getColorBuffer(); //grabs frame as texture?
|
||||
if ((sp50 == NULL) || (getGameMode() != GAME_MODE_8_BOTTLES_BONUS))
|
||||
return sp6C;
|
||||
|
||||
@@ -171,7 +171,7 @@ Actor *chBottlesBonus_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx)
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_POINT);
|
||||
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
|
||||
func_802DF160(gfx, mtx, vtx);
|
||||
func_80253190(gfx);
|
||||
depthbuffer_clear(gfx);
|
||||
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_POINT);
|
||||
gSPSegment((*gfx)++, 0x04, osVirtualToPhysical(sp50));
|
||||
|
||||
@@ -153,7 +153,7 @@ void chBottlesBonusCursor_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
actor_setOpacity(this, 0xB9);
|
||||
viewport_func_8024E030(this->position, D_8037E5C0.unk18);
|
||||
sp3C = (this->scale * 650.0f);
|
||||
func_80253208(gfx,
|
||||
depthbuffer_clearRegion(gfx,
|
||||
(s32)(D_8037E5C0.unk18[0] - sp3C/2), (s32)(D_8037E5C0.unk18[1] - sp3C/2),
|
||||
(s32)sp3C, (s32)sp3C,
|
||||
gFramebuffers[getActiveFramebuffer()]
|
||||
|
||||
@@ -43,7 +43,7 @@ Actor *chMumbosHandWithPicture_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, V
|
||||
|
||||
|
||||
this = marker_getActor(marker);
|
||||
sp48 = func_8030C704();
|
||||
sp48 = picturebox_getColorBuffer();
|
||||
|
||||
if ((sp48 == 0) || (getGameMode() != GAME_MODE_A_SNS_PICTURE))
|
||||
return this;
|
||||
@@ -63,7 +63,7 @@ Actor *chMumbosHandWithPicture_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, V
|
||||
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
|
||||
modelRender_draw(gfx, mtx, sp58, NULL, 1.0f, sp4C, D_8037DFE8);
|
||||
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
|
||||
func_80253190(gfx);
|
||||
depthbuffer_clear(gfx);
|
||||
gSPSegment((*gfx)++, 0x04, osVirtualToPhysical(sp48));
|
||||
modelRender_setPreDrawCallback((GenFunction_1)actor_predrawMethod, (s32)this);
|
||||
modelRender_setPostDrawCallback((GenFunction_1)actor_postdrawMethod, (s32)marker);
|
||||
|
||||
@@ -180,9 +180,9 @@ void func_802BBD0C(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
func_802BEE2C(gdl, mptr, vptr);
|
||||
}
|
||||
|
||||
void func_802BBD2C(f32 *arg0, f32 *arg1){
|
||||
*arg0 = D_8037D8C8;
|
||||
*arg1 = D_8037D8CC;
|
||||
void core2_34790_getClipDistances(f32 *near, f32 *far) {
|
||||
*near = D_8037D8C8;
|
||||
*far = D_8037D8CC;
|
||||
}
|
||||
|
||||
f32 func_802BBD48(void) {
|
||||
|
||||
@@ -30,7 +30,7 @@ Actor *func_802DF160(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
void *sp38;
|
||||
|
||||
this = marker_getActor(D_8037E000);
|
||||
sp38 = func_8030C704();
|
||||
sp38 = picturebox_getColorBuffer();
|
||||
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_POINT);
|
||||
gSPSegment((*gfx)++, 0x04, osVirtualToPhysical(sp38));
|
||||
|
||||
@@ -44,11 +44,11 @@ void func_802E329C(s32 arg0, Gfx **gfx_begin, Gfx **gfx_end) {
|
||||
Vtx *vtx;
|
||||
Vtx *vtx_start;
|
||||
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
graphicscache_swapAndGetStacks(&gfx, &mtx, &vtx);
|
||||
gfx_start = gfx;
|
||||
mtx_start = mtx;
|
||||
vtx_start = vtx;
|
||||
scissorBox_SetForGameMode(&gfx, arg0);
|
||||
setupFramebufferForGamemode(&gfx, arg0);
|
||||
if (D_8037E8C0.unk14 == 2) {
|
||||
drawRectangle2D(&gfx, 0, 0, (s32) (f32) gFramebufferWidth, (s32) (f32) gFramebufferHeight, 0, 0, 0);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ void func_802E3580(void) {
|
||||
func_802F1884(D_8037E8C0.unk10);
|
||||
func_802E5F68();
|
||||
coMusicPlayer_free();
|
||||
depthBuffer_stub();
|
||||
depthbuffer_stub();
|
||||
viMgr_func_8024BF94(2);
|
||||
}
|
||||
|
||||
|
||||
+47
-52
@@ -12,7 +12,7 @@ extern void timedFuncQueue_update(void);
|
||||
extern void func_8025A2B0(void);
|
||||
extern void func_8025A430(s32, s32, s32);
|
||||
extern void func_8034BB90(void);
|
||||
extern void func_8030C27C(void);
|
||||
extern void picturebox_spawn(void);
|
||||
extern void func_80321C34(void);
|
||||
extern void func_8030ED0C(void);
|
||||
extern void coMusicPlayer_update(void);
|
||||
@@ -110,57 +110,54 @@ void func_802E398C(s32 arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 framebuffer_idx, s32 arg4){
|
||||
Mtx* m_start = *mptr;
|
||||
Vtx* v_start = *vptr;
|
||||
void func_802E39D0(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 framebuffer_idx, bool arg4) {
|
||||
Mtx* mtx_start = *mtx;
|
||||
Vtx* vtx_start = *vtx;
|
||||
|
||||
scissorBox_SetForGameMode(gdl, framebuffer_idx);
|
||||
setupFramebufferForGamemode(gfx, framebuffer_idx);
|
||||
D_8037E8E0.unkC = FALSE;
|
||||
gsworld_draw(gdl, mptr, vptr);
|
||||
if(!arg4){
|
||||
gsworld_draw(gfx, mtx, vtx);
|
||||
|
||||
if (!arg4) { // related to framebufferdraw_ functions
|
||||
func_802E67AC();
|
||||
func_802E3BD0(getActiveFramebuffer());
|
||||
func_802E67C4();
|
||||
func_802E5F10(gdl);
|
||||
func_802E5F10(gfx);
|
||||
}
|
||||
if( D_8037E8E0.game_mode == GAME_MODE_A_SNS_PICTURE
|
||||
&& D_8037E8E0.unk19 != 6
|
||||
&& D_8037E8E0.unk19 != 5
|
||||
){
|
||||
gctransition_draw(gdl, mptr, vptr);
|
||||
|
||||
if ((D_8037E8E0.game_mode == GAME_MODE_A_SNS_PICTURE) && (D_8037E8E0.unk19 != 6) && (D_8037E8E0.unk19 != 5)) {
|
||||
gctransition_draw(gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
if( D_8037E8E0.game_mode == GAME_MODE_8_BOTTLES_BONUS
|
||||
|| D_8037E8E0.game_mode == GAME_MODE_A_SNS_PICTURE
|
||||
){
|
||||
func_8030C2D4(gdl, mptr, vptr);
|
||||
if ((D_8037E8E0.game_mode == GAME_MODE_8_BOTTLES_BONUS) || (D_8037E8E0.game_mode == GAME_MODE_A_SNS_PICTURE)) {
|
||||
picturebox_resetScissorBoxAndFramebuffer(gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
if(!game_is_frozen() && gsworld_getEnableDraw()){
|
||||
func_8032D474(gdl, mptr, vptr);
|
||||
if (!game_is_frozen() && gsworld_getEnableDraw()) {
|
||||
core2_A5BC0_drawScreenOverlayMarkers(gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
gcpausemenu_draw(gdl, mptr, vptr);
|
||||
if(!game_is_frozen()){
|
||||
dummy_func_8025AFC0(gdl, mptr, vptr);
|
||||
gcpausemenu_draw(gfx, mtx, vtx);
|
||||
|
||||
if (!game_is_frozen()) {
|
||||
dummy_func_8025AFC0(gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
gcdialog_draw(gdl, mptr, vptr);
|
||||
if(!game_is_frozen()){
|
||||
itemPrint_draw(gdl, mptr, vptr);
|
||||
gcdialog_draw(gfx, mtx, vtx);
|
||||
|
||||
if (!game_is_frozen()) {
|
||||
itemPrint_draw(gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
printbuffer_draw(gdl, mptr, vptr);
|
||||
printbuffer_draw(gfx, mtx, vtx);
|
||||
|
||||
if( D_8037E8E0.game_mode != GAME_MODE_A_SNS_PICTURE
|
||||
|| D_8037E8E0.unk19 == 6
|
||||
|| D_8037E8E0.unk19 == 5
|
||||
){
|
||||
gctransition_draw(gdl, mptr, vptr);
|
||||
if ((D_8037E8E0.game_mode != GAME_MODE_A_SNS_PICTURE) || (D_8037E8E0.unk19 == 6) || (D_8037E8E0.unk19 == 5)) {
|
||||
gctransition_draw(gfx, mtx, vtx);
|
||||
}
|
||||
core1_15B30_finishDList(gdl);
|
||||
osWritebackDCache(m_start, sizeof(Mtx)*( *mptr - m_start));
|
||||
osWritebackDCache(v_start, sizeof(Vtx)*( *vptr - v_start));
|
||||
|
||||
core1_15B30_finishDList(gfx);
|
||||
osWritebackDCache(mtx_start, sizeof(Mtx) * (*mtx - mtx_start));
|
||||
osWritebackDCache(vtx_start, sizeof(Vtx) * (*vtx - vtx_start));
|
||||
}
|
||||
|
||||
void func_802E3BD0(s32 frame_buffer_indx){
|
||||
@@ -191,10 +188,10 @@ void game_setMode(enum game_mode_e next_mode, s32 arg1){
|
||||
|
||||
//L802E3C84
|
||||
if(next_mode == GAME_MODE_8_BOTTLES_BONUS || next_mode == GAME_MODE_A_SNS_PICTURE){
|
||||
func_8030C1A0();
|
||||
picturebox_init();
|
||||
}
|
||||
else{
|
||||
func_8030C204();
|
||||
picturebox_free();
|
||||
}//L802E3CB4
|
||||
|
||||
D_8037E8E0.game_mode = next_mode;
|
||||
@@ -277,32 +274,30 @@ s32 func_802E3F80(void){
|
||||
return D_8037E8E0.unk0;
|
||||
}
|
||||
|
||||
void game_draw(s32 arg0){
|
||||
Gfx *gfx;
|
||||
Gfx *gfx_start;
|
||||
Gfx *sp2C;
|
||||
void game_draw(bool arg0) {
|
||||
Gfx *gfx, *gfx_start, *gfx_end;
|
||||
Mtx *mtx;
|
||||
Vtx *vtx;
|
||||
|
||||
if(arg0) {
|
||||
if (arg0) {
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
graphicscache_swapAndGetStacks(&gfx, &mtx, &vtx);
|
||||
|
||||
if(D_8037E8E0.unkC == 1){
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
if (D_8037E8E0.unkC == TRUE) { // BUG: Compares explicit for integral value of TRUE, instead for true-ness
|
||||
graphicscache_swapAndGetStacks(&gfx, &mtx, &vtx);
|
||||
}
|
||||
|
||||
gfx_start = gfx;
|
||||
func_802E39D0(&gfx, &mtx, &vtx, getActiveFramebuffer(), arg0);
|
||||
|
||||
if(D_8037E8E0.unkC == 0){
|
||||
sp2C = gfx;
|
||||
if (!D_8037E8E0.unkC) {
|
||||
gfx_end = gfx;
|
||||
viMgr_func_8024C1DC();
|
||||
core1_15B30_addF3DEXTaskData_40000000(gfx_start, sp2C);
|
||||
core1_15B30_addF3DEXTaskData_40000000(gfx_start, gfx_end);
|
||||
|
||||
if(arg0) {
|
||||
if (arg0) {
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
}
|
||||
@@ -363,7 +358,7 @@ void func_802E4170(void){
|
||||
timedFuncQueue_free();
|
||||
func_802F9C48();
|
||||
modelRender_free();
|
||||
depthBuffer_stub();
|
||||
depthbuffer_stub();
|
||||
func_802E398C(0);
|
||||
func_8030AFD8(0);
|
||||
func_80321854();
|
||||
@@ -378,7 +373,7 @@ void func_802E4214(enum map_e map_id){
|
||||
D_8037E8E0.unk19 = D_8037E8E0.unk18 = 0;
|
||||
D_8037E8E0.map = D_8037E8E0.exit = D_8037E8E0.unk17 = 0;
|
||||
D_8037E8E0.unk1B = D_8037E8E0.unk1A = 0;
|
||||
D_8037E8E0.unkC = 0;
|
||||
D_8037E8E0.unkC = FALSE;
|
||||
D_8037E8E0.unk1C = 0;
|
||||
savedata_init();
|
||||
sns_save_and_update_global_data();
|
||||
@@ -393,7 +388,7 @@ void func_802E4214(enum map_e map_id){
|
||||
func_802E5F38();
|
||||
defragManager_init();
|
||||
modelRender_init();
|
||||
func_80253428(1);
|
||||
depthbuffer_enable(TRUE);
|
||||
animCache_init();
|
||||
viewport_reset();
|
||||
viewport_setNearAndFar(1.0f, 10000.0f);
|
||||
@@ -520,7 +515,7 @@ bool func_802E4424(void) {
|
||||
switch (D_8037E8E0.game_mode) {
|
||||
case GAME_MODE_8_BOTTLES_BONUS:
|
||||
case GAME_MODE_A_SNS_PICTURE:
|
||||
func_8030C27C();
|
||||
picturebox_spawn();
|
||||
/* fallthrough */
|
||||
case GAME_MODE_7_ATTRACT_DEMO:
|
||||
case GAME_MODE_9_BANJO_AND_KAZOOIE:
|
||||
|
||||
+19
-19
@@ -308,33 +308,33 @@ void func_802E57E0(struct5DBC0_1s *arg0, Gfx **gfx) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_802E5C98(Gfx **gdl){
|
||||
void func_802E5C98(Gfx **gfx) {
|
||||
int i;
|
||||
|
||||
gDPPipeSync((*gdl)++);
|
||||
gSPClearGeometryMode((*gdl)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gSPTexture((*gdl)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gSPSetGeometryMode((*gdl)++, G_TEXTURE_GEN_LINEAR);
|
||||
gDPSetCycleType((*gdl)++, G_CYC_1CYCLE);
|
||||
gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE);
|
||||
gDPSetTextureLOD((*gdl)++, G_TL_TILE);
|
||||
gDPSetTextureLUT((*gdl)++, G_TT_NONE);
|
||||
gDPSetTextureDetail((*gdl)++, G_TD_CLAMP);
|
||||
gDPSetTexturePersp((*gdl)++, G_TP_NONE);
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
|
||||
gDPSetTextureConvert((*gdl)++, G_TC_FILT);
|
||||
gDPSetAlphaCompare((*gdl)++, G_AC_NONE);
|
||||
gDPSetRenderMode((*gdl)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPPipeSync((*gfx)++);
|
||||
gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gSPSetGeometryMode((*gfx)++, G_TEXTURE_GEN_LINEAR);
|
||||
gDPSetCycleType((*gfx)++, G_CYC_1CYCLE);
|
||||
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
|
||||
gDPSetTextureLOD((*gfx)++, G_TL_TILE);
|
||||
gDPSetTextureLUT((*gfx)++, G_TT_NONE);
|
||||
gDPSetTextureDetail((*gfx)++, G_TD_CLAMP);
|
||||
gDPSetTexturePersp((*gfx)++, G_TP_NONE);
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
|
||||
gDPSetTextureConvert((*gfx)++, G_TC_FILT);
|
||||
gDPSetAlphaCompare((*gfx)++, G_AC_NONE);
|
||||
gDPSetRenderMode((*gfx)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
for(i = 0; i < D_8037E900->unkC; i++){
|
||||
D_8037E900->unk0[i].unk4 -= 0x10;
|
||||
func_802E57E0(D_8037E900->unk0 + i, gdl);
|
||||
func_802E57E0(D_8037E900->unk0 + i, gfx);
|
||||
D_8037E900->unk0[i].unk4 += 0x10;
|
||||
}
|
||||
gDPSetTexturePersp((*gdl)++, G_TP_PERSP);
|
||||
gDPSetTexturePersp((*gfx)++, G_TP_PERSP);
|
||||
}
|
||||
|
||||
void func_802E5F10(Gfx **gdl){
|
||||
func_802E5C98(gdl);
|
||||
void func_802E5F10(Gfx **gfx) {
|
||||
func_802E5C98(gfx);
|
||||
func_802E5188();
|
||||
}
|
||||
|
||||
|
||||
@@ -182,13 +182,13 @@ void itemPrint_update(void) {
|
||||
}
|
||||
|
||||
|
||||
void itemPrint_draw(Gfx **gdl, Mtx ** mptr, Vtx **vptr){
|
||||
void itemPrint_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
s32 i;
|
||||
if(D_803810B0 && level_get() != LEVEL_D_CUTSCENE){
|
||||
for(i = 0; i < 0x2C; i++){
|
||||
if(!func_802E4A08() || i < 6){
|
||||
if(func_802FB0D4(D_803692F8[i].unk14)){
|
||||
D_803692F8[i].unk8(i, D_803692F8[i].unk14, gdl, mptr, vptr);
|
||||
D_803692F8[i].unk8(i, D_803692F8[i].unk14, gfx, mtx, vtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+34
-36
@@ -3,7 +3,6 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
#define TILE_SIZE 32
|
||||
#define TILE_COUNT_X 5
|
||||
#define TILE_COUNT_Y 4
|
||||
@@ -14,8 +13,7 @@
|
||||
#define HORIZONTAL_MARGIN (((SCREEN_WIDTH) - IMAGE_WIDTH) / 2)
|
||||
#define VERTICAL_MARGIN (((SCREEN_HEIGHT) - IMAGE_HEIGHT) / 2)
|
||||
|
||||
/* .data */
|
||||
Gfx D_8036C450[] = {
|
||||
Gfx sPictureBoxInitDL[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_SHADE | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH),
|
||||
@@ -25,85 +23,85 @@ Gfx D_8036C450[] = {
|
||||
gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE_ALPHA, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE_ALPHA, 0, 0, 0, 0, TEXEL0),
|
||||
gsDPSetTextureFilter(G_TF_POINT),
|
||||
gsDPSetTexturePersp(G_TP_NONE),
|
||||
gsDPSetPrimColor(0, 0, 0x00, 0x00, 0x00, 0x78),
|
||||
gsDPSetPrimColor(0, 0, 0, 0, 0, 120),
|
||||
gsSPEndDisplayList()
|
||||
};
|
||||
|
||||
Gfx D_8036C4A8[] = {
|
||||
Gfx sPictureBoxFinishDL[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTextureFilter(G_TF_BILERP),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsSPEndDisplayList()
|
||||
};
|
||||
|
||||
/* .bss */
|
||||
s16 *D_80382450;
|
||||
void *D_80382454;
|
||||
s16 *sPictureBoxColorBuffer;
|
||||
void *sPictureBoxColorBufferBase;
|
||||
|
||||
|
||||
/* .code */
|
||||
void func_8030C160(void){
|
||||
void picturebox_func_8030C160(void) {
|
||||
func_8024F150();
|
||||
}
|
||||
|
||||
void func_8030C180(void){
|
||||
void picturebox_func_8030C180(void) {
|
||||
func_8024F180();
|
||||
}
|
||||
|
||||
void func_8030C1A0(void){
|
||||
if(D_80382454 == NULL){
|
||||
D_80382454 = D_80382450 = malloc(IMAGE_WIDTH * IMAGE_HEIGHT * sizeof(u16) + 64);
|
||||
void picturebox_init(void) {
|
||||
if (sPictureBoxColorBufferBase == NULL) {
|
||||
sPictureBoxColorBuffer = malloc(IMAGE_WIDTH * IMAGE_HEIGHT * sizeof(u16) + 64);
|
||||
sPictureBoxColorBufferBase = sPictureBoxColorBuffer;
|
||||
|
||||
while((s32)D_80382450 & 0x3F){
|
||||
D_80382450++;
|
||||
// Make sure that the color buffer is aligned on a 64-byte boundary
|
||||
while ((s32)sPictureBoxColorBuffer & 0x3F) {
|
||||
sPictureBoxColorBuffer++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8030C204(void){
|
||||
if(D_80382454){
|
||||
free(D_80382454);
|
||||
D_80382454 = NULL;
|
||||
void picturebox_free(void) {
|
||||
if (sPictureBoxColorBufferBase) {
|
||||
free(sPictureBoxColorBufferBase);
|
||||
sPictureBoxColorBufferBase = NULL;
|
||||
}
|
||||
|
||||
switch(getGameMode()){
|
||||
switch (getGameMode()) {
|
||||
case GAME_MODE_8_BOTTLES_BONUS:
|
||||
chBottlesBonus_func_802DEA8C(0, 0);
|
||||
break;
|
||||
|
||||
case GAME_MODE_A_SNS_PICTURE:
|
||||
func_802DF11C(0, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8030C27C(void){
|
||||
switch(getGameMode()){
|
||||
void picturebox_spawn(void) {
|
||||
switch (getGameMode()) {
|
||||
case GAME_MODE_8_BOTTLES_BONUS:
|
||||
chBottlesBonus_spawn(0, 0);
|
||||
break;
|
||||
|
||||
case GAME_MODE_A_SNS_PICTURE:
|
||||
func_802DF090(0, 0);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void func_8030C2D4(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
void picturebox_resetScissorBoxAndFramebuffer(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
scissorBox_setDefault();
|
||||
func_80253640(gdl, gFramebuffers[getActiveFramebuffer()]);
|
||||
setupFramebuffer(gfx, gFramebuffers[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
// Draws a 160x128 image pointed to by D_80382450 into the center of the screen
|
||||
void func_8030C33C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
// Draws a 160x128 image pointed to by sPictureBoxColorBuffer into the center of the screen
|
||||
void picturebox_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
s32 x, y;
|
||||
|
||||
// Set up the rendering state to draw the image
|
||||
gSPDisplayList((*gfx)++, D_8036C450);
|
||||
gSPDisplayList((*gfx)++, sPictureBoxInitDL);
|
||||
// Iterate over every tile in the image
|
||||
for (y = 0; y < TILE_COUNT_Y; y++) {
|
||||
for(x = 0; x < TILE_COUNT_X; x++){
|
||||
// Load the current tile from the image
|
||||
gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(D_80382450), G_IM_FMT_IA, G_IM_SIZ_16b, IMAGE_WIDTH, IMAGE_HEIGHT,
|
||||
gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(sPictureBoxColorBuffer), G_IM_FMT_IA, G_IM_SIZ_16b, IMAGE_WIDTH, IMAGE_HEIGHT,
|
||||
TILE_SIZE * x, TILE_SIZE * y, TILE_SIZE * (x + 1) - 1, TILE_SIZE * (y + 1) - 1,
|
||||
0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
@@ -119,14 +117,14 @@ void func_8030C33C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
}
|
||||
}
|
||||
// Reset the rendering state
|
||||
gSPDisplayList((*gfx)++, D_8036C4A8);
|
||||
gSPDisplayList((*gfx)++, sPictureBoxFinishDL);
|
||||
}
|
||||
|
||||
|
||||
s16 *func_8030C704(void){
|
||||
return D_80382450;
|
||||
s16 *picturebox_getColorBuffer(void) {
|
||||
return sPictureBoxColorBuffer;
|
||||
}
|
||||
|
||||
void scissorBox_setSmall(void){
|
||||
scissorBox_set(0, 160, 0, 128);
|
||||
void picturebox_setScissorBox(void) {
|
||||
scissorBox_set(0, IMAGE_WIDTH, 0, IMAGE_HEIGHT);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ void func_80314BB0(Gfx **gfx, Mtx **mtx, Vtx **vtx, void * frame_buffer_1, void
|
||||
void func_80315084(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
gsworld_setEnableDraw(FALSE);
|
||||
D_803830A0 = 2;
|
||||
func_80314BB0(gfx, mtx, vtx, zBuffer_get(), gFramebuffers[getActiveFramebuffer()]);
|
||||
func_80314BB0(gfx, mtx, vtx, depthbuffer_getDataPtr(), gFramebuffers[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
void func_80315110(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
@@ -72,7 +72,7 @@ void func_80315110(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
else{
|
||||
D_803830A0--;
|
||||
}
|
||||
func_80314BB0(gfx, mtx, vtx, gFramebuffers[getActiveFramebuffer()], zBuffer_get());
|
||||
func_80314BB0(gfx, mtx, vtx, gFramebuffers[getActiveFramebuffer()], depthbuffer_getDataPtr());
|
||||
}
|
||||
|
||||
void func_803151D0(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
|
||||
@@ -343,17 +343,19 @@ void func_8032D3A8(void){
|
||||
vector_clear(D_80383554);
|
||||
}
|
||||
|
||||
void func_8032D3D8(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
void core2_A5BC0_drawUnknownMarkers(Gfx **gfx, Mtx **mtx, Vtx **vtx) { // further investigation needed what's drawn here
|
||||
int i;
|
||||
for(i = 0; i < vector_size(D_80383550); i++){
|
||||
__marker_draw(*(ActorMarker **) vector_at(D_80383550, i), gdl, mptr, vptr);
|
||||
|
||||
for (i = 0; i < vector_size(D_80383550); i++) {
|
||||
__marker_draw(*(ActorMarker **) vector_at(D_80383550, i), gfx, mtx, vtx);
|
||||
}
|
||||
}
|
||||
|
||||
void func_8032D474(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
void core2_A5BC0_drawScreenOverlayMarkers(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
int i;
|
||||
for(i = 0; i < vector_size(D_80383554); i++){
|
||||
__marker_draw(*(ActorMarker **) vector_at(D_80383554, i), gdl, mptr, vptr);
|
||||
|
||||
for (i = 0; i < vector_size(D_80383554); i++) {
|
||||
__marker_draw(*(ActorMarker **) vector_at(D_80383554, i), gfx, mtx, vtx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
extern void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
|
||||
extern void depthbuffer_clearRegion(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
|
||||
|
||||
extern f32 func_802FB0E4(struct8s*);
|
||||
|
||||
@@ -209,7 +209,7 @@ void fxcommon3score_draw(enum item_e item_id, void *arg1, Gfx **gfx, Mtx **mtx,
|
||||
if(a1->unk6C == 0.0f){
|
||||
a1->unk6C = 1.1*(vtxList_getGlobalNorm(modelbin_getVtxList(a1->model)) * a1->unk3C);
|
||||
}
|
||||
func_80253208(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, gFramebuffers[getActiveFramebuffer()]);
|
||||
depthbuffer_clearRegion(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, gFramebuffers[getActiveFramebuffer()]);
|
||||
if(a1->anim_ctrl != NULL){
|
||||
anctrl_drawSetup(a1->anim_ctrl, sp5C, 1);
|
||||
}
|
||||
|
||||
+11
-11
@@ -67,30 +67,30 @@ MapSkyInfo * sky_getMapSkyInfo(enum map_e map_id){
|
||||
return v1;
|
||||
}
|
||||
|
||||
void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
int i;
|
||||
f32 position[3];
|
||||
f32 rotation[3];
|
||||
BKModelBin *iAsset;
|
||||
BKModelBin *sky_model_bin;
|
||||
|
||||
viewport_setNearAndFar(5.0f, 15000.0f);
|
||||
if(gcSky.model_bins[0]){
|
||||
drawRectangle2D(gfx, 0, 0, (s32)(f32) gFramebufferWidth, (s32)(f32)gFramebufferHeight,0, 0, 0); //fill screen with black
|
||||
|
||||
if (gcSky.model_bins[0]) {
|
||||
drawRectangle2D(gfx, 0, 0, (f32) gFramebufferWidth, (f32) gFramebufferHeight, 0, 0, 0);
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
|
||||
viewport_getPosition_vec3f(position);
|
||||
for(i = 0; i < 3; i++){
|
||||
iAsset = gcSky.model_bins[i];
|
||||
if(iAsset){
|
||||
for (i = 0; i < 3; i++) {
|
||||
sky_model_bin = gcSky.model_bins[i];
|
||||
if (sky_model_bin) {
|
||||
rotation[0] = 0.0f;
|
||||
rotation[1] = gcSky.sky_info->sky_list[i].rotation_speed * gcSky.timer;
|
||||
rotation[2] = 0.0f;
|
||||
modelRender_draw(gfx, mtx, position, rotation, gcSky.sky_info->sky_list[i].scale, NULL, iAsset);
|
||||
modelRender_draw(gfx, mtx, position, rotation, gcSky.sky_info->sky_list[i].scale, NULL, sky_model_bin);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
drawRectangle2D(gfx, 0, 0, (f32) gFramebufferWidth, (f32) gFramebufferHeight, 0, 0, 0);
|
||||
}
|
||||
else{//L8030B200
|
||||
drawRectangle2D(gfx, 0, 0, (s32)(f32) gFramebufferWidth, (s32)(f32)gFramebufferHeight, 0, 0, 0);
|
||||
}//L8030B254
|
||||
}
|
||||
|
||||
void sky_free(void){
|
||||
|
||||
+17
-17
@@ -238,7 +238,7 @@ void gctransition_defrag(void){
|
||||
s_current_transition.model_ptr = defrag_asset(s_current_transition.model_ptr);
|
||||
}
|
||||
|
||||
void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
void gctransition_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
f32 vp_position[3];
|
||||
f32 vp_rotation[3];
|
||||
f32 percentage;
|
||||
@@ -267,25 +267,25 @@ void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
viewport_setPosition_vec3f(vp_position); //viewport_getPosition_vec3f
|
||||
viewport_setRotation_vec3f(vp_rotation); //viewport_getRotation_vec3f
|
||||
viewport_update(); //camera_updateNormal
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gdl, mptr);
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
|
||||
|
||||
|
||||
sp58[0] = 0.0f;
|
||||
sp58[1] = 0.0f;
|
||||
sp58[2] = 0.0f;
|
||||
if(s_current_transition.anctrl != NULL){
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_POINT);
|
||||
gDPSetColorDither((*gdl)++, G_CD_DISABLE);
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_POINT);
|
||||
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
|
||||
anctrl_drawSetup(s_current_transition.anctrl, sp58, 1);
|
||||
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
|
||||
}
|
||||
|
||||
//complex animation (from animation bin file)
|
||||
if(s_current_transition.state == 1 || s_current_transition.state == 6){
|
||||
modelRender_draw(gdl, mptr, sp58, vp_rotation, 1.0f, 0, s_current_transition.model_ptr);
|
||||
modelRender_draw(gfx, mtx, sp58, vp_rotation, 1.0f, 0, s_current_transition.model_ptr);
|
||||
if(s_current_transition.anctrl != NULL){
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
|
||||
gDPSetColorDither((*gdl)++, G_CD_MAGICSQ);
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
|
||||
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -302,7 +302,7 @@ void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
vp_rotation[2] = s_current_transition.rotation - 90.0f*percentage;
|
||||
scale = percentage*s_current_transition.transistion_info->scale + 0.1;
|
||||
}
|
||||
modelRender_draw(gdl, mptr, sp58, vp_rotation, scale, 0, s_current_transition.model_ptr);
|
||||
modelRender_draw(gfx, mtx, sp58, vp_rotation, scale, 0, s_current_transition.model_ptr);
|
||||
}
|
||||
else if(s_current_transition.state == TRANSITION_STATE_5_FADE_OUT){//L8030B9EC
|
||||
switch (s_current_transition.transistion_info->uid)
|
||||
@@ -323,7 +323,7 @@ void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
break;
|
||||
}
|
||||
if(!(s_current_transition.substate < 3) || s_current_transition.transistion_info->uid != 0x11){
|
||||
modelRender_draw(gdl, mptr, sp58, vp_rotation, scale, 0, s_current_transition.model_ptr);
|
||||
modelRender_draw(gfx, mtx, sp58, vp_rotation, scale, 0, s_current_transition.model_ptr);
|
||||
}
|
||||
else{
|
||||
modelRender_reset();
|
||||
@@ -335,14 +335,14 @@ void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
gcbound_reset();
|
||||
gcbound_alpha((1.0f - percentage)*255.0f + 0.5);
|
||||
gcbound_color(0,0,0);
|
||||
gcbound_draw(gdl);
|
||||
gcbound_draw(gfx);
|
||||
}
|
||||
else if(s_current_transition.state == TRANSITION_STATE_3_BLACK_OUT){//L8030BB6C
|
||||
//fade out black (i.e. get more black)
|
||||
gcbound_reset();
|
||||
gcbound_alpha(percentage*255.0f + 0.5);
|
||||
gcbound_color(0,0,0);
|
||||
gcbound_draw(gdl);
|
||||
gcbound_draw(gfx);
|
||||
}
|
||||
else if(s_current_transition.state == TRANSITION_STATE_7_WHITE_IN){//L8030BBD8
|
||||
//fade in white (i.e. get less white)
|
||||
@@ -350,23 +350,23 @@ void gctransition_draw(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
gcbound_reset();
|
||||
gcbound_alpha(percentage*255.0f + 0.5);
|
||||
gcbound_color(0xff,0xff,0xff);
|
||||
gcbound_draw(gdl);
|
||||
gcbound_draw(gfx);
|
||||
}
|
||||
else if(s_current_transition.state == TRANSITION_STATE_8_WHITE_OUT){//L8030BC8C
|
||||
//fade out white (i.e. get more white)
|
||||
gcbound_reset();
|
||||
gcbound_alpha(percentage*255.0f + 0.5);
|
||||
gcbound_color(0xff,0xff,0xff);
|
||||
gcbound_draw(gdl);
|
||||
gcbound_draw(gfx);
|
||||
}//L8030BD00
|
||||
else{
|
||||
|
||||
}
|
||||
if(s_current_transition.anctrl != NULL){
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
|
||||
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
|
||||
}
|
||||
viewport_restoreState();
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gdl, mptr);
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
|
||||
|
||||
}
|
||||
|
||||
@@ -405,7 +405,7 @@ void gctransition_8030BE3C(void){
|
||||
void gctransition_8030BE60(void){
|
||||
TransitionInfo *tmp_a1;
|
||||
tmp_a1 = _gctranstion_8030B400(_gctranstion_get_map_transition_info(gsworld_getMap())->out_index);
|
||||
func_8030C180();
|
||||
picturebox_func_8030C180();
|
||||
_gctranstion_changeState(tmp_a1->state, tmp_a1);
|
||||
}
|
||||
|
||||
@@ -488,7 +488,7 @@ void gctransition_update(void){
|
||||
}//L8030C104
|
||||
_gctranstion_changeState(s_current_transition.transistion_info->next_state, 0);
|
||||
if(s_current_transition.state == TRANSITION_STATE_4_FADE_IN)
|
||||
func_8030C180();
|
||||
picturebox_func_8030C180();
|
||||
|
||||
if(s_current_transition.anctrl != NULL)
|
||||
gsworld_update();
|
||||
|
||||
+6
-8
@@ -4,7 +4,7 @@
|
||||
#include "variables.h"
|
||||
|
||||
#include <core2/file.h>
|
||||
#include <math.h>
|
||||
#include "math.h"
|
||||
#include "prop.h"
|
||||
|
||||
extern void mapModel_getCubeBounds(s32 min[3], s32 max[3]);
|
||||
@@ -376,21 +376,19 @@ void func_80302C94(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
s32 sp38[3];
|
||||
f32 temp_f18;
|
||||
|
||||
#if ANTI_TAMPER
|
||||
#if ANTI_TAMPER
|
||||
if (!mapSpecificFlags_validateCRC1())
|
||||
return;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
func_8032D3A8();
|
||||
viewport_getPosition_vec3f(vp_position);
|
||||
viewport_getRotation_vec3f(vp_rotation);
|
||||
func_80256664(vp_rotation);
|
||||
ml_vec3f_clamp_deg360(vp_rotation);
|
||||
cube_positionToIndices(vp_cube_indices, vp_position);
|
||||
vp_cube_indices[0] -= sCubeList.min[0];\
|
||||
vp_cube_indices[1] -= sCubeList.min[1];\
|
||||
vp_cube_indices[2] -= sCubeList.min[2];
|
||||
TUPLE_DIFF(vp_cube_indices, sCubeList.min)
|
||||
func_80308EC8();
|
||||
sp44[0] = sp44[1] = sp44[2] = 0;
|
||||
TUPLE_SET(sp44, 0)
|
||||
sp38[0] = sCubeList.width[0] - 1;\
|
||||
sp38[1] = sCubeList.width[1] - 1;\
|
||||
sp38[2] = sCubeList.width[2] - 1;
|
||||
|
||||
+5
-5
@@ -31,19 +31,19 @@ void gsworld_draw(Gfx** gfx, Mtx **mtx, Vtx **vtx) {
|
||||
|
||||
if (!sEnableDraw) {
|
||||
drawRectangle2D(gfx, 0, 0, gFramebufferWidth, gFramebufferHeight, 0, 0, 0);
|
||||
func_802BBD2C(&near, &far);
|
||||
core2_34790_getClipDistances(&near, &far);
|
||||
viewport_setNearAndFar(near, far);
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!func_80320708()) {
|
||||
eeprom_writeBlocks(0, 0, (void *) 0x80BC7230, EEPROM_MAXBLOCKS);
|
||||
eeprom_writeBlocks(0, 0, (void *) PHYS_TO_K0(0x00BC7230), EEPROM_MAXBLOCKS);
|
||||
}
|
||||
|
||||
spawnQueue_unlock();
|
||||
sky_draw(gfx, mtx, vtx);
|
||||
func_802BBD2C(&near, &far);
|
||||
core2_34790_getClipDistances(&near, &far);
|
||||
viewport_setNearAndFar(near, far);
|
||||
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
|
||||
|
||||
@@ -74,7 +74,7 @@ void gsworld_draw(Gfx** gfx, Mtx **mtx, Vtx **vtx) {
|
||||
mapModel_xlu_draw(gfx, mtx, vtx);
|
||||
}
|
||||
if (!game_is_frozen()) {
|
||||
func_8032D3D8(gfx, mtx, vtx);
|
||||
core2_A5BC0_drawUnknownMarkers(gfx, mtx, vtx);
|
||||
}
|
||||
if (!game_is_frozen()) {
|
||||
partEmitMgr_drawPass1(gfx, mtx, vtx);
|
||||
@@ -89,7 +89,7 @@ void gsworld_draw(Gfx** gfx, Mtx **mtx, Vtx **vtx) {
|
||||
func_8034F6F0(gfx, mtx, vtx);
|
||||
player_draw(gfx, mtx, vtx);
|
||||
func_80302C94(gfx, mtx, vtx);
|
||||
func_8032D3D8(gfx, mtx, vtx);
|
||||
core2_A5BC0_drawUnknownMarkers(gfx, mtx, vtx);
|
||||
jiggylist_draw(gfx, mtx, vtx);
|
||||
func_803500D8(gfx, mtx, vtx);
|
||||
func_802F2ED0(func_8032994C(), gfx, mtx, vtx);
|
||||
|
||||
@@ -422,7 +422,7 @@ void spawnQueue_free(void){
|
||||
void spawnQueue_func_802C39D4(void){
|
||||
func_803268B4();
|
||||
if(!levelSpecificFlags_validateCRC2()){
|
||||
eeprom_writeBlocks(0, 0, (void*)0x80749530, EEPROM_MAXBLOCKS);
|
||||
eeprom_writeBlocks(0, 0, (void *) PHYS_TO_K0(0x00749530), EEPROM_MAXBLOCKS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,12 +462,12 @@ void spawnQueue_flush(void){
|
||||
func_803283D4();
|
||||
}
|
||||
|
||||
void spawnQueue_unlock(void){
|
||||
spawnQueueLock = 0;
|
||||
void spawnQueue_unlock(void) {
|
||||
spawnQueueLock = FALSE;
|
||||
}
|
||||
|
||||
void spawnQueue_lock(void){
|
||||
spawnQueueLock = 1;
|
||||
void spawnQueue_lock(void) {
|
||||
spawnQueueLock = TRUE;
|
||||
}
|
||||
|
||||
void __spawnQueue_add_0(void (* arg0)(void)){
|
||||
|
||||
Reference in New Issue
Block a user