diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 2324d54b..373ee784 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -163,7 +163,7 @@ segments: - [0xF46500, c, code_8C50] - [0xF475C0, c, code_ABB0] - [0xF49870, c, code_CE60] - - [0xF4AD70, c, code_E360] + - [0xF4AD70, c, vimgr] - [0xF4B4C0, c, viewport] - [0xF4D3D0, c, pfsmanager] - [0xF4E490, c, code_11AC0] @@ -375,7 +375,7 @@ segments: - [0xF74AD0, .data, code_8C50] - [0xF74C60, .data, code_ABB0] - [0xF74C70, .data, code_CE60] - - [0xF74CE0, .data, code_E360] + - [0xF74CE0, .data, vimgr] - [0xF74DD0, .data, viewport] - [0xF74DE0, .data, pfsmanager] - [0xF74DF0, .data, code_11AC0] @@ -465,7 +465,7 @@ segments: - [0xF791D0, .bss, code_8C50] - [0xF791D0, .bss, code_ABB0] - [0xF791D0, .bss, code_CE60] - - [0xF791D0, .bss, code_E360] + - [0xF791D0, .bss, vimgr] - [0xF791D0, .bss, viewport] - [0xF791D0, .bss, pfsmanager] - [0xF791D0, .bss, code_11AC0] diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index 4beae8ec..9c639723 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -164,7 +164,7 @@ segments: - [0xF22F80, c, code_9D30] #DONE - [0xF23E00, c, code_ABB0] #DONE - [0xF260B0, c, code_CE60] #DONE - - [0xF275B0, c, code_E360] #DONE + - [0xF275B0, c, vimgr] #DONE - [0xF27D40, c, viewport] #DONE - [0xF29C50, c,pfsmanager] - [0xF2AD10, c, code_11AC0] #DONE @@ -376,7 +376,7 @@ segments: - [0xF51280, .data, code_9D30] - [0xF51430, .data, code_ABB0] - [0xF51440, .data, code_CE60] - - [0xF514B0, .data, code_E360] + - [0xF514B0, .data, vimgr] - [0xF51550, .data, viewport] - [0xF51560, .data, pfsmanager] - [0xF51570, .data, code_11AC0] @@ -466,7 +466,7 @@ segments: - [0xF55960, .bss, code_8C50] - [0xF55960, .bss, code_ABB0] - [0xF55960, .bss, code_CE60] - - [0xF55960, .bss, code_E360] + - [0xF55960, .bss, vimgr] - [0xF55960, .bss, viewport] - [0xF55960, .bss, pfsmanager] - [0xF55960, .bss, code_11AC0] diff --git a/include/core1/core1.h b/include/core1/core1.h index dac52a53..cf986ab0 100644 --- a/include/core1/core1.h +++ b/include/core1/core1.h @@ -3,6 +3,7 @@ #include #include "bool.h" +#include "enums.h" #include "core1/eeprom.h" #include "core1/main.h" @@ -12,8 +13,74 @@ #include "core1/sns.h" #include "core1/ucode.h" #include "core1/viewport.h" +#include "core1/vimgr.h" void mlMtx_apply_vec3f(f32[3], f32[3]); void func_80252C08(f32 arg0[3], f32 arg1[3], f32 scale, f32 arg3[3]); + + +/* src/core1/code_15770.c */ + +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); + + + +/* src/core1/code_15B30.c */ + +typedef struct { + s32 unk0; + s32 unk4; + Gfx *unk8; + Gfx *unkC; + s32 unk10; + s32 unk14; +}Struct_Core1_15B30; + +#define DEFAULT_FRAMEBUFFER_WIDTH 292 +#define DEFAULT_FRAMEBUFFER_HEIGHT 216 + +extern s32 gFramebufferWidth; +extern s32 gFramebufferHeight; +extern u16 gFramebuffers[2][DEFAULT_FRAMEBUFFER_WIDTH * DEFAULT_FRAMEBUFFER_HEIGHT]; + +void func_80253550(void); +void func_8025357C(void); +void func_802535A8(Gfx **arg0, Gfx **arg1, UNK_TYPE(s32) arg2, UNK_TYPE(s32) arg3); +void func_80253640(Gfx ** gdl, void *arg1); +void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx); +void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address); +void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx); +void func_80253DC0(Gfx **gfx); +void finishFrame(Gfx **gdl); +void func_80253E14(Gfx *arg0, Gfx *arg1, s32 arg2); +void func_80253EA4(Gfx *arg0, Gfx *arg1); +void func_80253EC4(Gfx *arg0, Gfx *arg1); +void func_80253EE4(Gfx **arg0, Gfx **arg1, s32 arg2); +void func_80253F74(Gfx **arg0, Gfx **arg1); +void func_80253F94(Gfx **arg0, Gfx **arg1); +void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom); +void func_80253FE8(void); +void func_80254008(void); +void func_80254028(void); +void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b); +void graphicsCache_release(void); +void graphicsCache_init(void); +void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom); +void scissorBox_setDefault(void); +void func_80254374(s32 arg0); +void toggleTextureFilterPoint(void); +void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx); +void dummy_func_80254464(void); + #endif diff --git a/include/core1/vimgr.h b/include/core1/vimgr.h new file mode 100644 index 00000000..f15a3b79 --- /dev/null +++ b/include/core1/vimgr.h @@ -0,0 +1,28 @@ +#ifndef BANJO_KAZOOIE_CORE1_VIMGR_H +#define BANJO_KAZOOIE_CORE1_VIMGR_H + +typedef struct struct_1_s{ + OSMesgQueue *messageQueue; + OSMesg message; +} struct1; + +u32 getOtherFramebuffer(void); +s32 viMgr_func_8024BD94(void); +s32 getActiveFramebuffer(void); +void viMgr_func_8024BDAC(OSMesgQueue *mq, OSMesg msg); +void viMgr_init(void); +void viMgr_func_8024BF94(s32 arg0); +s32 viMgr_func_8024BFA0(void); +void viMgr_func_8024BFAC(void); +void viMgr_func_8024BFD8(s32 arg0); +void viMgr_func_8024C1B4(void); +void viMgr_func_8024C1DC(void); +void viMgr_func_8024C1FC(OSMesgQueue *mq, OSMesg msg); +void viMgr_setActiveFramebuffer(s32 arg0); +void viMgr_entry(void *arg0); +void viMgr_setScreenBlack(s32 active); +void viMgr_clearFramebuffers(void); +s32 viMgr_func_8024C4E8(void); +void viMgr_func_8024C4F8(s32 arg0); + +#endif diff --git a/include/variables.h b/include/variables.h index 2a3aded3..3a59f3cc 100644 --- a/include/variables.h +++ b/include/variables.h @@ -14,9 +14,6 @@ struct Overlay { extern struct Overlay gOverlayTable[]; -extern s32 framebuffer_width; -extern s32 framebuffer_height; - extern f32 climbPoleBottom[3]; extern f32 climbPoleTop[3]; #endif diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 2fa6f976..d478a918 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -21,7 +21,7 @@ D_803FBE00 = 0x803FBE00; D_803FFE00 = 0x803FFE00; D_803FFE10 = 0x803FFE10; gOverlayTable = 0x803FFE10; -D_803A5D00 = 0x803A5D00; /* framebuffers */ +gFramebuffers = 0x803A5D00; /* framebuffers */ /* Renames for the boot segment */ boot_D_8002D500 = D_8002D500; diff --git a/manual_syms.us.v10.txt b/manual_syms.us.v10.txt index d1b2f670..ba725a80 100644 --- a/manual_syms.us.v10.txt +++ b/manual_syms.us.v10.txt @@ -20,7 +20,7 @@ D_803FBE00 = 0x803FBE00; D_803FFE00 = 0x803FFE00; D_803FFE10 = 0x803FFE10; gOverlayTable = 0x803FFE10; -D_803A5D00 = 0x803A5D00; /* framebuffers */ +gFramebuffers = 0x803A5D00; /* framebuffers */ /* Renames for the boot segment */ boot_D_8002D500 = D_8002D500; diff --git a/src/core1/code_0.c b/src/core1/code_0.c index 8cc66d23..3b675087 100644 --- a/src/core1/code_0.c +++ b/src/core1/code_0.c @@ -36,8 +36,6 @@ static u64 sDebugVar_8027BEF0; // never used extern u8 core2_TEXT_START[]; -extern u16 D_803A5D00[2][0x1ECC0/2]; - void func_8023DA20(s32 arg0){ bzero(&D_8027A130, core2_TEXT_START - (u8*)&D_8027A130); osWriteBackDCacheAll(); @@ -53,7 +51,7 @@ void func_8023DA74(void){ void func_8023DA9C(s32 arg0){ func_80254008(); - func_8024C428(); + viMgr_clearFramebuffers(); if (D_8027A130 == 4){ func_802E3580(); } @@ -108,7 +106,7 @@ void core1_init(void) { ucode_load(); setBootMap(getDefaultBootMap()); rarezip_init(); //initialize decompressor's huft table - func_8024BE30(); + viMgr_init(); overlayManagerloadCore2(); sDebugVar_8027BEF0 = sDebugVar_8027A538; heap_init(); @@ -183,7 +181,7 @@ void mainLoop(void){ ){ s32 offset; //render weird CRC failure image - for(y= 0x1e; y < framebuffer_height - 0x1e; y++){//L8023DEB4 + for(y= 0x1e; y < gFramebufferHeight - 0x1e; y++){//L8023DEB4 for(x = 0x14; x < 0xeb; x++){ tmp = ((8 * globalTimer_getTime()) + ((x*x) + (y*y))); @@ -194,9 +192,9 @@ void mainLoop(void){ rgba = b | r | g | a; - offset = ((framebuffer_width - 0xFF) / 2) + x + (y*framebuffer_width); - D_803A5D00[0][offset] = (s32) rgba; - D_803A5D00[1][offset] = (s32) rgba; + offset = ((gFramebufferWidth - 0xFF) / 2) + x + (y*gFramebufferWidth); + gFramebuffers[0][offset] = (s32) rgba; + gFramebuffers[1][offset] = (s32) rgba; } } }//L8023DF70 diff --git a/src/core1/code_15770.c b/src/core1/code_15770.c index 145bec12..d1c9b28d 100644 --- a/src/core1/code_15770.c +++ b/src/core1/code_15770.c @@ -4,72 +4,67 @@ #include "variables.h" struct { - u16 *data; + void *data; int unk4; -} gzBuffer; +} sDepthBuffer; -extern u8 D_8000E800; -extern u16 D_803A5D00[2][0xF660]; - -void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer); - -void func_80253190(Gfx **gdl){ - func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, D_803A5D00[getActiveFramebuffer()]); +void func_80253190(Gfx **gfx) { + func_80253208(gfx, 0, 0, gFramebufferWidth, gFramebufferHeight, gFramebuffers[getActiveFramebuffer()]); } -void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){ - if( gzBuffer.data != NULL && (getGameMode() != GAME_MODE_4_PAUSED || func_80335134())){ +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 || func_80335134())){ //draw z_buffer - gDPPipeSync((*gdl)++); - gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(gzBuffer.data)); - gDPSetCycleType((*gdl)++, G_CYC_FILL); - gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2); - gDPSetFillColor((*gdl)++, 0xFFFCFFFC); - gDPScisFillRectangle((*gdl)++, x, y, x + w - 1, y + h - 1); + 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); + gDPScisFillRectangle((*gfx)++, x, y, x + w - 1, y + h - 1); //draw color_buffer - gDPPipeSync((*gdl)++); - gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(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){ - return gzBuffer.unk4; + return sDepthBuffer.unk4; } -int func_8025340C(void){ - return gzBuffer.data != NULL; +bool depthBuffer_isPointerSet(void) { + return sDepthBuffer.data != NULL; } -void dummy_func_80253420(void){} +void depthBuffer_stub(void) {} void func_80253428(int arg0) { u16 *var_v0; int new_var; if (arg0) { - var_v0 = (gzBuffer.data = &D_8000E800); - while (((s32) gzBuffer.data) % 0x40) {\ - var_v0 = (gzBuffer.data = var_v0 + 1); + var_v0 = (sDepthBuffer.data = &D_8000E800); + while (((s32) sDepthBuffer.data) % 0x40) { + var_v0 = (sDepthBuffer.data = var_v0 + 1); } do { } while ((&D_8000E800 && 1) * 0); //remove this }else{ - gzBuffer.data = 0; + sDepthBuffer.data = NULL; } - gzBuffer.unk4 = 0; + sDepthBuffer.unk4 = FALSE; } -void func_802534A8(int arg0){ - gzBuffer.unk4 = (gzBuffer.data != NULL && arg0); +void func_802534A8(int arg0) { + sDepthBuffer.unk4 = (sDepthBuffer.data != NULL && arg0); } -void zBuffer_set(Gfx **gdl){ - if(gzBuffer.data && getGameMode() != GAME_MODE_4_PAUSED){ - gDPPipeSync((*gdl)++); - gDPSetDepthImage((*gdl)++, gzBuffer.data); +void zBuffer_set(Gfx **gfx) { + if (sDepthBuffer.data && getGameMode() != GAME_MODE_4_PAUSED) { + gDPPipeSync((*gfx)++); + gDPSetDepthImage((*gfx)++, sDepthBuffer.data); } } -void *zBuffer_get(void){ - return gzBuffer.data; +void *zBuffer_get(void) { + return sDepthBuffer.data; } diff --git a/src/core1/code_15B30.c b/src/core1/code_15B30.c index cd5717c0..c399068b 100644 --- a/src/core1/code_15B30.c +++ b/src/core1/code_15B30.c @@ -1,29 +1,13 @@ #include #include "core1/core1.h" -#include "functions.h" -#include "variables.h" +static Gfx *sGfxStack[2] = { NULL, NULL }; +s32 gFramebufferWidth = DEFAULT_FRAMEBUFFER_WIDTH; +s32 gFramebufferHeight = DEFAULT_FRAMEBUFFER_HEIGHT; -typedef struct { - s32 unk0; - s32 unk4; - Gfx *unk8; - Gfx *unkC; - s32 unk10; - s32 unk14; -}Struct_Core1_15B30; - -extern u8 D_803A5D00[2][0x1ecc0]; - -/* .data */ -Gfx *gGfxStack[2] = {NULL, NULL}; -s32 framebuffer_width = 292; -s32 framebuffer_height = 216; - -/* .bss */ -Mtx *gMtxStack[2]; -Vtx *gVtxStack[2]; -s32 gStackSelector; +static Mtx *sMtxStack[2]; +static Vtx *sVtxStack[2]; +static s32 sStackSelector; s32 gTextureFilterPoint; Struct_Core1_15B30 D_80283008[20]; s32 D_802831E8; @@ -35,11 +19,6 @@ u16 gScissorBoxTop; u16 gScissorBoxBottom; Gfx *D_80283214; -/* .h */ -void scissorBox_setDefault(void); -void dummy_func_80254464(void); - -/* .code */ void func_80253550(void){ osRecvMesg(&D_802831F0, NULL, OS_MESG_BLOCK); } @@ -74,8 +53,8 @@ void func_80253640(Gfx ** gdl, void *arg1){ 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, framebuffer_width, framebuffer_height, arg1); - gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(arg1)); + 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); @@ -98,13 +77,13 @@ void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx) { } else{ scissorBox_setDefault(); - func_80253640(gdl, D_803A5D00[framebuffer_idx]); + func_80253640(gdl, gFramebuffers[framebuffer_idx]); } } void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address){ gSPSegment((*gfx)++, 0x00, 0x00000000); - gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(framebuffer_address)); + gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_PHYSICAL_TO_K0(framebuffer_address)); 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); @@ -121,7 +100,7 @@ void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address){ void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx){ scissorBox_setDefault(); - setupScissorBoxAndFramebuffer(gfx, D_803A5D00[framebuffer_idx]); + setupScissorBoxAndFramebuffer(gfx, gFramebuffers[framebuffer_idx]); } void func_80253DC0(Gfx **gfx){ @@ -184,7 +163,7 @@ void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom){ } void func_80253FE8(void){ - func_8024BFAC(); + viMgr_func_8024BFAC(); } void func_80254008(void){ @@ -208,29 +187,29 @@ void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b) gDPScisFillRectangle((*gfx)++, x, y, x + w -1, y + h -1); } -void graphicsCache_release(void){ - if(gGfxStack[0]){ - free(gGfxStack[0]); - free(gGfxStack[1]); - free(gMtxStack[0]); - free(gMtxStack[1]); - free(gVtxStack[0]); - free(gVtxStack[1]); - gGfxStack[0] = NULL; +void graphicsCache_release(void) { + if (sGfxStack[0]) { + free(sGfxStack[0]); + free(sGfxStack[1]); + free(sMtxStack[0]); + free(sMtxStack[1]); + free(sVtxStack[0]); + free(sVtxStack[1]); + sGfxStack[0] = NULL; } } void graphicsCache_init(void){ - if(gGfxStack[0] == NULL){ - gGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands - gGfxStack[1] = (Gfx *)malloc(29600); - gMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices - gMtxStack[1] = (Mtx *)malloc(44800); - gVtxStack[0] = (Vtx *)malloc(6880); // 430 vertices - gVtxStack[1] = (Vtx *)malloc(6880); + if(sGfxStack[0] == NULL){ + sGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands + sGfxStack[1] = (Gfx *)malloc(29600); + sMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices + sMtxStack[1] = (Mtx *)malloc(44800); + sVtxStack[0] = (Vtx *)malloc(6880); // 430 vertices + sVtxStack[1] = (Vtx *)malloc(6880); dummy_func_80254464(); } - gStackSelector = 0; + sStackSelector = 0; gTextureFilterPoint = 0; } @@ -239,8 +218,8 @@ void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) { gScissorBoxTop = top; gScissorBoxRight = right; gScissorBoxBottom = bottom; - framebuffer_width = top - left; - framebuffer_height = bottom - right; + gFramebufferWidth = top - left; + gFramebufferHeight = bottom - right; viewport_pushFramebufferExtendsToVpStack(); } @@ -253,7 +232,7 @@ void func_80254374(s32 arg0) { Struct_Core1_15B30 *sp1C; func_80253550(); - func_8024C2A0(arg0); + viMgr_setActiveFramebuffer(arg0); sp1C = &D_80283008[D_802831E8]; D_802831E8 = (s32) (D_802831E8 + 1) % 20; func_8025357C(); @@ -267,10 +246,10 @@ void toggleTextureFilterPoint(void){ } void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx){ - gStackSelector = (1 - gStackSelector); - *gfx = gGfxStack[gStackSelector]; - *mtx = gMtxStack[gStackSelector]; - *vtx = gVtxStack[gStackSelector]; + sStackSelector = (1 - sStackSelector); + *gfx = sGfxStack[sStackSelector]; + *mtx = sMtxStack[sStackSelector]; + *vtx = sVtxStack[sStackSelector]; } -void dummy_func_80254464(void){} +void dummy_func_80254464(void) {} diff --git a/src/core1/code_8C50.c b/src/core1/code_8C50.c index 49fa5599..16b0a0b9 100644 --- a/src/core1/code_8C50.c +++ b/src/core1/code_8C50.c @@ -219,7 +219,7 @@ void func_80246C2C(void){ if((D_8027FC14 << 1) < 0){ osDpSetStatus(DPC_SET_FREEZE); D_80280688 = osViGetCurrentFramebuffer(); - func_8024BFAC(); + viMgr_func_8024BFAC(); } D_8027FC14 = D_8027FC18 = 2; D_80275998 = 0; @@ -474,7 +474,7 @@ void func_80247560(void){ osSetEventMesg(OS_EVENT_SP, &D_8027FB60, CORE1_8C50_EVENT_SP); osSetEventMesg(OS_EVENT_FAULT, &D_8027FB60, CORE1_8C50_EVENT_FAULT); osSetEventMesg(OS_EVENT_PRENMI, &D_8027FB60, CORE1_8C50_EVENT_PRENMI); - func_8024BDAC(&D_8027FB60, 5); + viMgr_func_8024BDAC(&D_8027FB60, 5); D_8027FC0C = 0; D_8027FC10 = 0; D_8027FC14 = D_8027FC18 = 2; diff --git a/src/core1/code_9D30.c b/src/core1/code_9D30.c index 6fd22eed..a8dc6945 100644 --- a/src/core1/code_9D30.c +++ b/src/core1/code_9D30.c @@ -6,9 +6,6 @@ #include "version.h" #if VERSION == VERSION_USA_1_0 -extern u16 D_803A5D00[2][0xF660]; //framebuffer -extern s32 framebuffer_width; //framebuffer width -extern s32 framebuffer_height; //framebuffer height /* .data */ u8 D_80275A50[8][3] = { @@ -96,11 +93,11 @@ void func_80247750(s32 r, s32 g, s32 b){ void func_8024776C(s32 x, s32 y) { s32 rgba16; - if( ((x >= 0) && (x < framebuffer_width)) - && ((y >= 0) && (y < framebuffer_height)) + if( ((x >= 0) && (x < gFramebufferWidth)) + && ((y >= 0) && (y < gFramebufferHeight)) ) { - D_803A5D00[0][x + y*framebuffer_width] = _SHIFTL(D_80275A68 >> 3, 11, 5) | _SHIFTL(D_80275A6C >> 3, 6, 5) | _SHIFTL(D_80275A70 >> 3, 1, 5) | _SHIFTL(1, 0, 1); - D_803A5D00[1][x + y*framebuffer_width] = _SHIFTL(D_80275A68 >> 3, 11, 5) | _SHIFTL(D_80275A6C >> 3, 6, 5) | _SHIFTL(D_80275A70 >> 3, 1, 5) | _SHIFTL(1, 0, 1); + gFramebuffers[0][x + y*gFramebufferWidth] = _SHIFTL(D_80275A68 >> 3, 11, 5) | _SHIFTL(D_80275A6C >> 3, 6, 5) | _SHIFTL(D_80275A70 >> 3, 1, 5) | _SHIFTL(1, 0, 1); + gFramebuffers[1][x + y*gFramebufferWidth] = _SHIFTL(D_80275A68 >> 3, 11, 5) | _SHIFTL(D_80275A6C >> 3, 6, 5) | _SHIFTL(D_80275A70 >> 3, 1, 5) | _SHIFTL(1, 0, 1); } } @@ -120,7 +117,7 @@ void func_80247818(s32 x, s32 y, s32 w, s32 h) { void func_802478C0(s32 r, s32 g, s32 b) { func_80247750(r, g, b); - func_80247818((framebuffer_width - 128) / 2, (framebuffer_height - 100) / 2, 128, 100); + func_80247818((gFramebufferWidth - 128) / 2, (gFramebufferHeight - 100) / 2, 128, 100); } void func_8024792C(void){} @@ -207,9 +204,9 @@ void func_80247C20(void) { } if (D_80275BE0) { - for(i = 0; i < framebuffer_width * framebuffer_height; i++){ - D_803A5D00[0][i] = 0; - D_803A5D00[1][i] = 0; + for(i = 0; i < gFramebufferWidth * gFramebufferHeight; i++){ + gFramebuffers[0][i] = 0; + gFramebuffers[1][i] = 0; } osWriteBackDCacheAll(); } diff --git a/src/core1/code_ABB0.c b/src/core1/code_ABB0.c index 737d5ec4..f1788cd8 100644 --- a/src/core1/code_ABB0.c +++ b/src/core1/code_ABB0.c @@ -21,11 +21,6 @@ void draw_prim_rect(s32 x, s32 y, s32 w, s32 h); void set_prim_color(s32 r, s32 g, s32 b); void func_8024A85C(s32 buffer_indx); - -extern u16 D_803A5D00[2][0xF660]; //framebuffer -extern s32 framebuffer_width; //framebuffer width -extern s32 framebuffer_height; //framebuffer height - /* .bss */ s32 D_802806E0; s32 D_802806E4; @@ -51,7 +46,7 @@ void draw_sprite_ci4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable s32 color1; s32 color2; - framebuffer = D_803A5D00[D_802806EC]; + framebuffer = gFramebuffers[D_802806EC]; sprite_frame = spriteGetFramePtr(sprite, (u32) frame); if (!alpha_enabled){ set_prim_color(0, 0, 0x80); @@ -79,12 +74,12 @@ void draw_sprite_ci4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable indx1 = ((*tmem) >> 4) & 0xF; indx2 = *tmem & 0xF; fb_x = (chunk->x + x) + ix; - if ((0 <= fb_x) && (fb_x < framebuffer_width)) + if ((0 <= fb_x) && (fb_x < gFramebufferWidth)) { fb_y = (chunk->y + y) + iy; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { - pxl_ptr = (framebuffer + fb_x) + (fb_y * framebuffer_width); + pxl_ptr = (framebuffer + fb_x) + (fb_y * gFramebufferWidth); color1 = palette[indx1]; if (color1 & 1) { *pxl_ptr = color1; @@ -127,7 +122,7 @@ void draw_sprite_ci8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable if (D_80275C00 == 0xA) { D_80275C00 = 0; } - framebuffer = D_803A5D00[D_802806EC]; + framebuffer = gFramebuffers[D_802806EC]; sprite_frame = spriteGetFramePtr(sprite, (u32) frame); if (!alpha_enabled){ set_prim_color(0, 0, 0x80); @@ -150,12 +145,12 @@ void draw_sprite_ci8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable for (iy = 0; iy < chunk->h; iy++){ for (ix = 0; ix < chunk->w; ix++){ fb_x = (chunk->x + x) + ix; - if ((0 <= fb_x) && (fb_x < framebuffer_width)) + if ((0 <= fb_x) && (fb_x < gFramebufferWidth)) { fb_y = (chunk->y + y) + iy; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { - pxl_ptr = (framebuffer + fb_x) + (fb_y * framebuffer_width); + pxl_ptr = (framebuffer + fb_x) + (fb_y * gFramebufferWidth); if (palette[*tmem] & 1){ *pxl_ptr = palette[*tmem]; } @@ -193,7 +188,7 @@ void draw_sprite_rgba16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_en u16 *pxl_ptr; u16 rgba; - framebuffer_ptr = &D_803A5D00[D_802806EC][0]; + framebuffer_ptr = &gFramebuffers[D_802806EC][0]; sprite_ptr = spriteGetFramePtr(sprite, frame); if (!alpha_enabled) { set_prim_color(0, 0, 0x80); @@ -206,10 +201,10 @@ void draw_sprite_rgba16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_en for(txtr_y = 0; txtr_y < chunk_ptr->h; txtr_y++) { for(txtr_x = 0; txtr_x < chunk_ptr->w; txtr_x++) { fb_x = chunk_ptr->x + x + txtr_x; - if ((fb_x >= 0) && (fb_x < framebuffer_width)) { + if ((fb_x >= 0) && (fb_x < gFramebufferWidth)) { fb_y = chunk_ptr->y + y + txtr_y; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) { - pxl_ptr = framebuffer_ptr + fb_x + (fb_y * framebuffer_width); + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { + pxl_ptr = framebuffer_ptr + fb_x + (fb_y * gFramebufferWidth); rgba = *tmem; if (rgba & 1) { *pxl_ptr = rgba; @@ -240,7 +235,7 @@ void draw_sprite_i4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enable s32 txtr_x; u16 *fb_pxl_ptr; - framebuffer_ptr = &D_803A5D00[D_802806EC][0]; + framebuffer_ptr = &gFramebuffers[D_802806EC][0]; frame_ptr = spriteGetFramePtr(sprite, frame); if (!aplha_enabled) { set_prim_color(0, 0, 0x80); @@ -253,12 +248,12 @@ void draw_sprite_i4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enable for(txtr_y = 0; txtr_y < chunk_ptr->h; txtr_y++) { for(txtr_x = 0; txtr_x < chunk_ptr->w; txtr_x += 2) { fb_x = chunk_ptr->x + x + txtr_x; - if ((fb_x >= 0) && (fb_x < framebuffer_width)) { + if ((fb_x >= 0) && (fb_x < gFramebufferWidth)) { fb_y = chunk_ptr->y + y + txtr_y; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) { + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { p1 = (*tmem >> 4); p2 = (*tmem & 0xF); - fb_pxl_ptr = framebuffer_ptr + fb_x + (fb_y * framebuffer_width); + fb_pxl_ptr = framebuffer_ptr + fb_x + (fb_y * gFramebufferWidth); if (p1) { *fb_pxl_ptr = (p1 << 0xC) | (p1 << 0x7) | (p1 << 0x2) | 1; } else if (!aplha_enabled) { @@ -297,7 +292,7 @@ void draw_sprite_ia4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabl s32 txtr_x; u16 *fb_pxl_ptr; - framebuffer_ptr = &D_803A5D00[D_802806EC][0]; + framebuffer_ptr = &gFramebuffers[D_802806EC][0]; frame_ptr = spriteGetFramePtr(sprite, frame); if (!aplha_enabled) { set_prim_color(0, 0, 0x80); @@ -310,10 +305,10 @@ void draw_sprite_ia4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabl for(txtr_y = 0; txtr_y < chunk_ptr->h; txtr_y++) { for(txtr_x = 0; txtr_x < chunk_ptr->w; txtr_x += 2) { fb_x = chunk_ptr->x + x + txtr_x; - if ((fb_x >= 0) && (fb_x < framebuffer_width)) { + if ((fb_x >= 0) && (fb_x < gFramebufferWidth)) { fb_y = chunk_ptr->y + y + txtr_y; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) { - fb_pxl_ptr = framebuffer_ptr + fb_x + (fb_y * framebuffer_width);\ + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { + fb_pxl_ptr = framebuffer_ptr + fb_x + (fb_y * gFramebufferWidth);\ p1 = (*tmem >> 4); p2 = (*tmem & 0xF); p1_i = p1 & 0xE; @@ -352,7 +347,7 @@ void draw_sprite_i8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled s32 i_chunk; s32 txtr_y; - framebuffer_ptr = &D_803A5D00[D_802806EC][0]; + framebuffer_ptr = &gFramebuffers[D_802806EC][0]; frame_ptr = spriteGetFramePtr(sprite, frame); if (!alpha_enabled) { set_prim_color(0, 0, 0x80); @@ -367,10 +362,10 @@ void draw_sprite_i8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled for(txtr_x = 0; txtr_x < chunk_ptr->w; txtr_x++){ fb_x = chunk_ptr->x + x + txtr_x; if (fb_x >= 0) { - if (fb_x < framebuffer_width) { + if (fb_x < gFramebufferWidth) { fb_y = chunk_ptr->y + y + txtr_y; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) { - pixel_ptr = framebuffer_ptr + fb_x + fb_y * framebuffer_width; + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { + pixel_ptr = framebuffer_ptr + fb_x + fb_y * gFramebufferWidth; intensity = (s32) *txtr_ptr >> 3; if (intensity != 0) { *pixel_ptr = (intensity << 0xB) | (intensity << 6) | (intensity << 1) | 1; @@ -401,7 +396,7 @@ void draw_sprite_ia8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabl s32 var_t3; u32 temp_a2; - framebuffer_ptr = &D_803A5D00[D_802806EC][0]; + framebuffer_ptr = &gFramebuffers[D_802806EC][0]; sprite_frame = spriteGetFramePtr(sprite, frame); if (!alpha_enabled) { //draw blue rect over display area @@ -415,10 +410,10 @@ void draw_sprite_ia8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabl for(var_t3 = 0; var_t3 < chunk_ptr->h; var_t3++){ for(var_a3 = 0; var_a3 < chunk_ptr->w; var_a3++) { fb_x = chunk_ptr->x + x + var_a3; - if ((fb_x >= 0) && (fb_x < framebuffer_width)) { + if ((fb_x >= 0) && (fb_x < gFramebufferWidth)) { fb_y = chunk_ptr->y + y + var_t3; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) { - temp_a1 = framebuffer_ptr + fb_x + fb_y * framebuffer_width; + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { + temp_a1 = framebuffer_ptr + fb_x + fb_y * gFramebufferWidth; temp_a2 = *var_t2; if (IA8_A(temp_a2)) { *temp_a1 = I4_2_RGBA16(IA8_I(temp_a2), 1); @@ -456,7 +451,7 @@ void draw_sprite_rgba32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_ena s32 blue8; - framebuffer = &D_803A5D00[D_802806EC][0]; + framebuffer = &gFramebuffers[D_802806EC][0]; sprite_frame = spriteGetFramePtr(sprite, frame); if (!alpha_enabled) { set_prim_color(0, 0, 0x80); @@ -478,13 +473,13 @@ void draw_sprite_rgba32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_ena for (ix = 0; ix < chunk_ptr->w; ix++) { fb_x = (chunk_ptr->x + x) + ix; - if ((fb_x >= 0) && (fb_x < framebuffer_width)) + if ((fb_x >= 0) && (fb_x < gFramebufferWidth)) { fb_y = (chunk_ptr->y + y) + iy; - if ((fb_y >= 0) && (fb_y < framebuffer_height)) + if ((fb_y >= 0) && (fb_y < gFramebufferHeight)) { txtr_value = *tmem; - pxl_ptr = (framebuffer + fb_x) + (fb_y * framebuffer_width); + pxl_ptr = (framebuffer + fb_x) + (fb_y * gFramebufferWidth); fb_value = (unsigned int) (*pxl_ptr); alpha = _SHIFTR(txtr_value, 0, 8); if (alpha) {//blend texture with existing pixel color @@ -524,7 +519,7 @@ void draw_texture_ci4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled palette_ptr = (u16*)tmem; pixel_ptr = (u8*)&palette_ptr[0x10]; - framebuffer_ptr = &D_803A5D00[D_802806EC][x + y * framebuffer_width]; + framebuffer_ptr = &gFramebuffers[D_802806EC][x + y * gFramebufferWidth]; for(iy = 0; iy < h; iy++){ for(ix = 0; ix < w; ix++){ icolor = (ix & 1)? pixel_ptr[ix/2 + (iy*w)/2] & 0xF @@ -532,7 +527,7 @@ void draw_texture_ci4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled *framebuffer_ptr = palette_ptr[icolor]; framebuffer_ptr++; } - framebuffer_ptr += (framebuffer_width - w); + framebuffer_ptr += (gFramebufferWidth - w); } } @@ -576,7 +571,7 @@ void func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) { return; } //otherwise RGBA16 - framebuffer_ptr = &D_803A5D00[D_802806EC][x + y*framebuffer_width]; + framebuffer_ptr = &gFramebuffers[D_802806EC][x + y*gFramebufferWidth]; for(iy = 0; iy < temp_v0->h; iy++){ for(ix = 0; ix < temp_v0->w; ix++){ temp_v1 = *texture_ptr; @@ -588,7 +583,7 @@ void func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) { texture_ptr++; framebuffer_ptr++; } - framebuffer_ptr += (framebuffer_width - temp_v0->w); + framebuffer_ptr += (gFramebufferWidth - temp_v0->w); } } @@ -601,7 +596,7 @@ void func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mask_texture = func_8033EFB0(maskList, maskIndex); mask_ptr = (u16*)(mask_texture + 1) + mX + mY * mask_texture->w; - color_ptr = &D_803A5D00[D_802806EC][x + y * framebuffer_width]; + color_ptr = &gFramebuffers[D_802806EC][x + y * gFramebufferWidth]; for(iy = 0; iy < mH; iy += mStride){ for(ix = 0; ix < mW; ix++){ @@ -619,7 +614,7 @@ void func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mask_ptr++; } mask_ptr += ((mStride * mask_texture->w) - mW); - color_ptr += (framebuffer_width - mW); + color_ptr += (gFramebufferWidth - mW); } } @@ -628,14 +623,14 @@ void func_8024A284(s32 x, s32 y, s32 arg2, s32 arg3, s32 horz_spacing, s32 vert_ s32 var_s2; s32 var_s3; - for(var_s2 = 0; var_s2 < framebuffer_width; var_s2 += horz_spacing){ - for(var_s3 = 0; var_s3 < framebuffer_height; var_s3++){ + for(var_s2 = 0; var_s2 < gFramebufferWidth; var_s2 += horz_spacing){ + for(var_s3 = 0; var_s3 < gFramebufferHeight; var_s3++){ func_8024A3C8(x + var_s2, y + var_s3); } } - for(var_s3 = 0; var_s3 < framebuffer_height; var_s3 += vert_spacing) { - for(var_s2 = 0; var_s2 < framebuffer_width; var_s2++){ + for(var_s3 = 0; var_s3 < gFramebufferHeight; var_s3 += vert_spacing) { + for(var_s2 = 0; var_s2 < gFramebufferWidth; var_s2++){ func_8024A3C8(x + var_s2, y + var_s3); } } @@ -646,8 +641,8 @@ void func_8024A3C8(s32 x, s32 y) { s32 temp_v0; if (x >= 0) { - if ((x < framebuffer_width) && (y >= 0) && (y < framebuffer_height)) { - D_803A5D00[D_802806EC][x + y * framebuffer_width] = _SHIFTL(D_802806E0 >> 3, 11, 5) | _SHIFTL(D_802806E4 >> 3, 6, 5) | _SHIFTL(D_802806E8 >> 3, 1, 5) | _SHIFTL(1, 0, 1); + if ((x < gFramebufferWidth) && (y >= 0) && (y < gFramebufferHeight)) { + gFramebuffers[D_802806EC][x + y * gFramebufferWidth] = _SHIFTL(D_802806E0 >> 3, 11, 5) | _SHIFTL(D_802806E4 >> 3, 6, 5) | _SHIFTL(D_802806E8 >> 3, 1, 5) | _SHIFTL(1, 0, 1); } } } @@ -688,8 +683,8 @@ void func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 ar s16 *var_t0; s16 *var_t2; var_v0 = 0; - var_v1 = framebuffer_width; - var_t0 = &D_803A5D00[D_802806EC][x + (y * framebuffer_width)]; + var_v1 = gFramebufferWidth; + var_t0 = &gFramebuffers[D_802806EC][x + (y * gFramebufferWidth)]; new_var = (s32) (((f64) (256.0f / (new_var3 = arg6))) + 0.5); new_var2 = (s32) (((f64) (256.0f / arg5)) + 0.5); for (var_t1 = (arg4 * arg6) + 0.5; var_t1 != 0; var_t1--) @@ -704,7 +699,7 @@ void func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 ar var_t2++; } - var_t0 += framebuffer_width; + var_t0 += gFramebufferWidth; var_v0 += new_var; } diff --git a/src/core1/overlay.c b/src/core1/overlay.c index 6b4ddbcf..3cb11bc6 100644 --- a/src/core1/overlay.c +++ b/src/core1/overlay.c @@ -11,7 +11,6 @@ typedef struct{ extern struct49s D_803FFE10[]; -extern u8 D_8000E800; extern u8 D_8002D500; extern u32 D_8027BF2C; extern u32 D_8027BF30; diff --git a/src/core1/overlaymanager.c b/src/core1/overlaymanager.c index 36614a08..da31303a 100644 --- a/src/core1/overlaymanager.c +++ b/src/core1/overlaymanager.c @@ -18,7 +18,6 @@ typedef struct struct_2a_s{ } OverlayAddressMap; -extern u8 D_803A5D00; #define SEGMENT_EXTERNS(segname) \ extern u8 segname##_VRAM[]; \ @@ -112,7 +111,7 @@ s32 __overlayManager80251178(void){ sp18 = func_802546DC(); sp1C = __overlayManager80251170(); - return ((sp1C + &D_803A5D00) - largest_overlay->ram_end) + sp18; + return ((sp1C + (u8 *)gFramebuffers) - largest_overlay->ram_end) + sp18; } void __overlayManager802511C4(void){ diff --git a/src/core1/rumblemanager.c b/src/core1/rumblemanager.c index dca9c5a7..34e76908 100644 --- a/src/core1/rumblemanager.c +++ b/src/core1/rumblemanager.c @@ -126,7 +126,7 @@ void rumbleManager_init(void) { osCreateMesgQueue(&D_80282390, &D_802823A8, 1); osCreateThread(&sRumbleThread, 8, rumbleThread_entry, NULL, sRumbleThreadStack + RUMBLE_THREAD_STACK_SIZE, 25); osStartThread(&sRumbleThread); - func_8024BDAC(&D_80282390, 0); + viMgr_func_8024BDAC(&D_80282390, 0); } } diff --git a/src/core1/viewport.c b/src/core1/viewport.c index 35e4ffb7..3d52039f 100644 --- a/src/core1/viewport.c +++ b/src/core1/viewport.c @@ -76,7 +76,7 @@ void viewport_getRotation_f3(f32 *pitch, f32 *yaw, f32 *roll) { void viewport_setRenderViewportAndOrthoMatrix(Gfx **gfx, Mtx **mtx) { gSPViewport((*gfx)++, &sViewportStack[sViewportStackIndex]); - guOrtho(*mtx, -(2*(f32)framebuffer_width), (2*(f32)framebuffer_width), -(2*(f32)framebuffer_height), (2*(f32)framebuffer_height), 1.0f, 20.0f, 1.0f); + guOrtho(*mtx, -(2*(f32)gFramebufferWidth), (2*(f32)gFramebufferWidth), -(2*(f32)gFramebufferHeight), (2*(f32)gFramebufferHeight), 1.0f, 20.0f, 1.0f); gSPMatrix((*gfx)++, OS_K0_TO_PHYSICAL((*mtx)++), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guTranslate(*mtx, 0.0f, 0.0f, 0.0f); @@ -133,7 +133,7 @@ f32 viewport_debug3(void) { } void viewport_pushFramebufferExtendsToVpStack(void) { - viewport_pushVpScaleAndTranslation((s32) ((f32)framebuffer_width/2), (s32) ((f32)framebuffer_height/2), (s32) ((f32)framebuffer_width/2), (s32) ((f32)framebuffer_height/2)); + viewport_pushVpScaleAndTranslation((s32) ((f32)gFramebufferWidth/2), (s32) ((f32)gFramebufferHeight/2), (s32) ((f32)gFramebufferWidth/2), (s32) ((f32)gFramebufferHeight/2)); } void viewport_reset(void) { @@ -427,13 +427,13 @@ f32 viewport_transformCoordinate(f32 x, f32 y, f32 viewport_translation[3], f32 if ((sViewportFOVy != fovy) || (sViewportNear != near)) { fovy_rad = (sViewportFOVy * M_PI) / 360.0; - scale = (500.0 + sViewportNear) / (((framebuffer_height / (f32)2) / sinf(fovy_rad)) * cosf(fovy_rad)); + scale = (500.0 + sViewportNear) / (((gFramebufferHeight / (f32)2) / sinf(fovy_rad)) * cosf(fovy_rad)); fovy = sViewportFOVy; near = sViewportNear; } - x = x - (framebuffer_width / (f32)2); - y = (framebuffer_height / (f32)2) - y; + x = x - (gFramebufferWidth / (f32)2); + y = (gFramebufferHeight / (f32)2) - y; viewport_rotation[0] = sViewportRotation[0]; viewport_rotation[1] = sViewportRotation[1]; @@ -481,16 +481,16 @@ bool viewport_func_8024E030(f32 pos[3], f32 *arg1) } temp_f2 = gu_sqrtf((delta[1] * delta[1]) + (delta[2] * delta[2])) * sinf(fovy_radians); - temp_f2_2 = (((f32) framebuffer_width) / ((f32) framebuffer_height)) * temp_f2; + temp_f2_2 = (((f32) gFramebufferWidth) / ((f32) gFramebufferHeight)) * temp_f2; - arg1[0] = (f32) (((delta[0] / temp_f2_2) + 1) * (((f32) framebuffer_width) / 2)); - arg1[1] = (f32) ((1 - (delta[1] / temp_f2)) * (((f32) framebuffer_height) / 2)); + arg1[0] = (f32) (((delta[0] / temp_f2_2) + 1) * (((f32) gFramebufferWidth) / 2)); + arg1[1] = (f32) ((1 - (delta[1] / temp_f2)) * (((f32) gFramebufferHeight) / 2)); - if ((arg1[0] < (-((f32) framebuffer_width))) || ((((f32) framebuffer_width) * 2) < arg1[0])) { + if ((arg1[0] < (-((f32) gFramebufferWidth))) || ((((f32) gFramebufferWidth) * 2) < arg1[0])) { return FALSE; } - if ((arg1[1] < (-((f32) framebuffer_height))) || ((((f32) framebuffer_height) * 2) < arg1[1])) { + if ((arg1[1] < (-((f32) gFramebufferHeight))) || ((((f32) gFramebufferHeight) * 2) < arg1[1])) { return FALSE; } diff --git a/src/core1/code_E360.c b/src/core1/vimgr.c similarity index 54% rename from src/core1/code_E360.c rename to src/core1/vimgr.c index 558db6a8..f10fc96d 100644 --- a/src/core1/code_E360.c +++ b/src/core1/vimgr.c @@ -4,18 +4,10 @@ #include "variables.h" #include "version.h" +#define VIMANAGER_THREAD_STACK_SIZE 0x400 -void func_8024BF94(s32 arg0); -void func_8024C2F8(void *); - -typedef struct struct_1_s{ - OSMesgQueue *messageQueue; - OSMesg message; -} struct1; - -extern u32 D_80000300; - -OSViMode D_80275C80 = { +// Used in US 1.0 NTSC +static OSViMode sViMode_US10_NTSC = { OS_VI_NTSC_LPN1, { VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | 0x3200, /*ctrl*/ @@ -34,7 +26,8 @@ OSViMode D_80275C80 = { } }; -OSViMode D_80275CD0 = { +// Used in US 1.0 MPAL (N64 SDK says: "mainly brazil") +static OSViMode sViMode_US10_MPAL = { OS_VI_MPAL_LPN1, { VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | 0x3200, /*ctrl*/ @@ -54,7 +47,8 @@ OSViMode D_80275CD0 = { }; #if VERSION == VERSION_PAL -OSViMode D_PAL_80275CD0 = { +// Used in PAL +static OSViMode sViMode_PAL = { OS_VI_PAL_LPN1, { VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | 0x3100, /*ctrl*/ @@ -77,43 +71,34 @@ OSViMode D_PAL_80275CD0 = { // 42200000 3FAD097B 41F00000 457A0000 // C3A68832 DDC3A724 00000000 00000000 - -u32 gActiveFramebuffer; +static u32 sActiveFramebuffer; u32 D_80280724; u32 D_80280728; struct1 D_80280730[8]; -OSMesgQueue D_80280770; -OSMesg D_80280788[10]; -OSMesgQueue D_802807B0; -OSMesg D_802807C8[1]; -OSMesgQueue D_802807D0; -OSMesg D_802807E8[FRAMERATE]; +static OSMesgQueue sMesgQueue1; +static OSMesg sMesgBuffer1[10]; +static OSMesgQueue sMesgQueue2; +static OSMesg sMesgBuffer2[1]; +static OSMesgQueue sMesgQueue3; +static OSMesg sMesgBuffer3[FRAMERATE]; volatile s32 D_802808D8; s32 D_802808DC; -OSThread D_802808E0; -#define THREAD0_STACK_SIZE 0x400 -u8 thread0_stack[THREAD0_STACK_SIZE]; +static OSThread sViManagerThread; +static u8 sViManagerThreadStack[VIMANAGER_THREAD_STACK_SIZE]; - -extern u8 D_803A5D00[2][0x1ECC0]; //framebuffer - -void func_8024C428(void); - -/* .code */ -bool func_8024BD80(void){ - sizeof(OSThread); - return NOT(gActiveFramebuffer); +u32 getOtherFramebuffer(void) { + return NOT(sActiveFramebuffer); } -s32 func_8024BD94(void){ +s32 viMgr_func_8024BD94(void){ return D_80280724; } s32 getActiveFramebuffer(void){ - return gActiveFramebuffer; + return sActiveFramebuffer; } -void func_8024BDAC(OSMesgQueue *mq, OSMesg msg){ +void viMgr_func_8024BDAC(OSMesgQueue *mq, OSMesg msg){ s32 i; for(i = 0; i < 8; i++){ if(D_80280730[i].messageQueue == NULL){ @@ -125,72 +110,79 @@ void func_8024BDAC(OSMesgQueue *mq, OSMesg msg){ } -void func_8024BE30(void){ +void viMgr_init(void) { s32 i; - func_8024C428(); + viMgr_clearFramebuffers(); + osCreateViManager(OS_PRIORITY_VIMGR); #if VERSION == VERSION_USA_1_0 if(osTvType != OS_TV_NTSC) - osViSetMode(&D_80275CD0); //PAL + osViSetMode(&sViMode_US10_MPAL); else - osViSetMode(&D_80275C80); //NTSC + osViSetMode(&sViMode_US10_NTSC); #elif VERSION == VERSION_PAL - osViSetMode(&D_PAL_80275CD0); //PAL + osViSetMode(&sViMode_PAL); #endif + osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON); osViSetSpecialFeatures(OS_VI_GAMMA_OFF); - osViSwapBuffer(&D_803A5D00); - osCreateMesgQueue(&D_80280770, D_80280788, 10); - osCreateMesgQueue(&D_802807B0, D_802807C8, 1); - osCreateMesgQueue(&D_802807D0, D_802807E8, FRAMERATE); - osViSetEvent(&D_80280770,NULL,1); - gActiveFramebuffer = 0; + osViSwapBuffer(&gFramebuffers[0]); + + osCreateMesgQueue(&sMesgQueue1, sMesgBuffer1, 10); + osCreateMesgQueue(&sMesgQueue2, sMesgBuffer2, 1); + osCreateMesgQueue(&sMesgQueue3, sMesgBuffer3, FRAMERATE); + osViSetEvent(&sMesgQueue1, NULL, 1); + + sActiveFramebuffer = 0; D_80280724 = 1; D_80280728 = 0; - for(i = 0; i<8; i++){ + + for (i = 0; i < 8; i++) { D_80280730[i].messageQueue = NULL; } + D_802808D8 = 0; - func_8024BF94(2); - osCreateThread(&D_802808E0,0,func_8024C2F8,NULL, thread0_stack + THREAD0_STACK_SIZE, 80); - osStartThread(&D_802808E0); + viMgr_func_8024BF94(2); + + osCreateThread(&sViManagerThread, 0, viMgr_entry, NULL, sViManagerThreadStack + VIMANAGER_THREAD_STACK_SIZE, 80); + osStartThread(&sViManagerThread); } -void func_8024BF94(s32 arg0){ +void viMgr_func_8024BF94(s32 arg0){ D_802808DC = arg0; } -s32 func_8024BFA0(void){ +s32 viMgr_func_8024BFA0(void){ return D_802808DC; } -void func_8024BFAC(void){ - osSendMesg(&D_802807B0, 0, OS_MESG_NOBLOCK); +void viMgr_func_8024BFAC(void){ + osSendMesg(&sMesgQueue2, 0, OS_MESG_NOBLOCK); } -void func_8024BFD8(s32 arg0){ +void viMgr_func_8024BFD8(s32 arg0){ static s32 D_80280E90; osSetThreadPri(NULL, 0x7f); defragManager_setPriority(0x1E); defragManager_80240874(); if(arg0){ - osRecvMesg(&D_802807B0, NULL, OS_MESG_BLOCK); + osRecvMesg(&sMesgQueue2, NULL, OS_MESG_BLOCK); } - while(D_802808D8 < func_8024BFA0() - D_80280E90){ - osRecvMesg(&D_802807D0, NULL, OS_MESG_BLOCK); + while(D_802808D8 < viMgr_func_8024BFA0() - D_80280E90){ + osRecvMesg(&sMesgQueue3, NULL, OS_MESG_BLOCK); } - while(D_802807D0.validCount){ - osRecvMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK); + while(sMesgQueue3.validCount){ + osRecvMesg(&sMesgQueue3, NULL, OS_MESG_NOBLOCK); } - osViSwapBuffer(D_803A5D00[gActiveFramebuffer = func_8024BD80()]); + osViSwapBuffer(gFramebuffers[sActiveFramebuffer = getOtherFramebuffer()]); D_80280E90 = 0; while(!(osDpGetStatus() & 2) && osViGetCurrentFramebuffer() != osViGetNextFramebuffer()){ - osRecvMesg(&D_802807D0, NULL, OS_MESG_BLOCK); + osRecvMesg(&sMesgQueue3, NULL, OS_MESG_BLOCK); D_80280E90++; }//L8024C178 D_80280724 = D_802808D8; @@ -200,35 +192,36 @@ void func_8024BFD8(s32 arg0){ defragManager_setPriority(0xA); } -void func_8024C1B4(void){ - func_8024BFD8(0); +void viMgr_func_8024C1B4(void){ + viMgr_func_8024BFD8(0); dummy_func_8025AFB8(); } -void func_8024C1DC(void){ - func_8024BFD8(1); +void viMgr_func_8024C1DC(void){ + viMgr_func_8024BFD8(1); } -void func_8024C1FC(OSMesgQueue *mq, OSMesg msg){ +void viMgr_func_8024C1FC(OSMesgQueue *mq, OSMesg msg) { s32 i; - for(i = 0; i < 8; i++){ - if(D_80280730[i].messageQueue == mq && D_80280730[i].message == msg){ + + for (i = 0; i < 8; i++) { + if (D_80280730[i].messageQueue == mq && D_80280730[i].message == msg) { D_80280730[i].messageQueue = NULL; return; } } } -void func_8024C2A0(s32 arg0) { - gActiveFramebuffer = arg0; - osViSwapBuffer(D_803A5D00[gActiveFramebuffer]); +void viMgr_setActiveFramebuffer(s32 fb_idx) { + sActiveFramebuffer = fb_idx; + osViSwapBuffer(gFramebuffers[sActiveFramebuffer]); } -void func_8024C2F8(void *arg0){ +void viMgr_entry(void *arg0){ s32 i; OSMesg sp48; do{ - osRecvMesg(&D_80280770, &sp48, OS_MESG_BLOCK); + osRecvMesg(&sMesgQueue1, &sp48, OS_MESG_BLOCK); func_80247380(); D_802808D8++; if(D_802808D8 == 420){ @@ -236,7 +229,7 @@ void func_8024C2F8(void *arg0){ func_802485BC(); #endif } - osSendMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK); + osSendMesg(&sMesgQueue3, NULL, OS_MESG_NOBLOCK); for(i = 0; i < 8; i++){ if(D_80280730[i].messageQueue != NULL){ @@ -246,20 +239,19 @@ void func_8024C2F8(void *arg0){ }while(1); } -void func_8024C408(s32 arg0){ - osViBlack(arg0); +void viMgr_setScreenBlack(s32 active) { + osViBlack(active); } -void func_8024C428(void) { - //zeros all both framebuffers - func_80253034(&D_803A5D00, 0, (s32) ((f32)framebuffer_width*2*framebuffer_height*2)); - osWritebackDCache(&D_803A5D00, (s32) ((f32)framebuffer_width*2* framebuffer_height*2)); +void viMgr_clearFramebuffers(void) { + func_80253034(&gFramebuffers, 0, (s32) ((f32)gFramebufferWidth*2*gFramebufferHeight*2)); // TODO: This function does not exist in source code, why does it work? + osWritebackDCache(&gFramebuffers, (s32) ((f32)gFramebufferWidth*2*gFramebufferHeight*2)); } -s32 func_8024C4E8(void){ +s32 viMgr_func_8024C4E8(void) { return D_802808D8; } -void func_8024C4F8(s32 arg0){ +void viMgr_func_8024C4F8(s32 arg0) { D_802808D8 = arg0; } diff --git a/src/core2/ch/bottlesbonuscursor.c b/src/core2/ch/bottlesbonuscursor.c index 8151e167..9326e1e4 100644 --- a/src/core2/ch/bottlesbonuscursor.c +++ b/src/core2/ch/bottlesbonuscursor.c @@ -8,7 +8,6 @@ #define ABS(d) ((d) >= 0) ? (d) : -(d) #endif -extern s16 D_803A5D00[2][0xF660]; //framebuffer extern u8 D_8037DCC8; //bottles bonus flags??? @@ -156,7 +155,7 @@ void chBottlesBonusCursor_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { func_80253208(gfx, (s32)(D_8037E5C0.unk18[0] - sp3C/2), (s32)(D_8037E5C0.unk18[1] - sp3C/2), (s32)sp3C, (s32)sp3C, - D_803A5D00[getActiveFramebuffer()] + gFramebuffers[getActiveFramebuffer()] ); modelRender_draw(gfx, mtx, this->position, rotation, this->scale, NULL, marker_loadModelBin(chBottlesBonusCursorMarker)); viewport_func_8024E030(this->position, D_8037E5C0.unk10); diff --git a/src/core2/code_379B0.c b/src/core2/code_379B0.c index f9d6f31e..e7939787 100644 --- a/src/core2/code_379B0.c +++ b/src/core2/code_379B0.c @@ -20,7 +20,7 @@ void func_802BE940(void) sp3C[0] = (sp3C[1] = (sp3C[2] = 0.0f)); sp3C[1] = -1.0f; ml_vec3f_pitch_rotate_copy(sp24, sp3C, 68.0f); - sp30[0] = sp24[1] * ((f32) framebuffer_width / framebuffer_height); + sp30[0] = sp24[1] * ((f32) gFramebufferWidth / gFramebufferHeight); sp30[1] = 0; D_8037DA40[1] = sp24[1]; diff --git a/src/core2/code_5C240.c b/src/core2/code_5C240.c index 187c73bf..194a66ba 100644 --- a/src/core2/code_5C240.c +++ b/src/core2/code_5C240.c @@ -11,10 +11,6 @@ extern void func_8033DC18(void); extern f32 func_8033DC20(void); extern void func_8033DC9C(f32); -extern s32 framebuffer_width; //framebuffer_width -extern s32 framebuffer_height; //framebuffer_height -extern s16 D_803A5D00[2][0xF660]; //framebuffer - /* .bss */ struct { f32 unk0; @@ -35,7 +31,7 @@ void func_802E31D0(s32 arg0) { if ((temp_v0 == 0) || (temp_v0 == 3)) { func_8024A85C(arg0); func_80249DE0(0, 0, D_8037E8C0.unkC, 0, 0); - osWritebackDCache(D_803A5D00[arg0], (s32) ((f32) framebuffer_width * (f32) framebuffer_height * sizeof(s16))); + osWritebackDCache(gFramebuffers[arg0], (s32) ((f32) gFramebufferWidth * (f32) gFramebufferHeight * sizeof(s16))); } } @@ -53,14 +49,14 @@ void func_802E329C(s32 arg0, Gfx **gfx_begin, Gfx **gfx_end) { vtx_start = vtx; scissorBox_SetForGameMode(&gfx, arg0); if (D_8037E8C0.unk14 == 2) { - drawRectangle2D(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0); + drawRectangle2D(&gfx, 0, 0, (s32) (f32) gFramebufferWidth, (s32) (f32) gFramebufferHeight, 0, 0, 0); } if ((D_8037E8C0.unk14 == 0) || (D_8037E8C0.unk14 == 3)) { viewport_setRenderViewportAndPerspectiveMatrix(&gfx, &mtx); gcbound_draw(&gfx); } if (D_8037E8C0.unk14 == 1) { - drawRectangle2D(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0); + drawRectangle2D(&gfx, 0, 0, (s32) (f32) gFramebufferWidth, (s32) (f32) gFramebufferHeight, 0, 0, 0); viewport_setRenderViewportAndPerspectiveMatrix(&gfx, &mtx); func_802F1858(D_8037E8C0.unk10, &gfx, &mtx, &vtx); } @@ -95,11 +91,11 @@ void func_802E3524(s32 arg0) { Gfx *gfx_begin; Gfx *gfx_end; - func_802E31D0(func_8024BD80()); - func_802E329C(func_8024BD80(), &gfx_begin, &gfx_end); + func_802E31D0(getOtherFramebuffer()); + func_802E329C(getOtherFramebuffer(), &gfx_begin, &gfx_end); func_80253EA4(gfx_begin, gfx_end); func_80254008(); - func_8024C1B4(); + viMgr_func_8024C1B4(); } void func_802E3580(void) { @@ -107,8 +103,8 @@ void func_802E3580(void) { func_802F1884(D_8037E8C0.unk10); func_802E5F68(); comusicPlayer_free(); - dummy_func_80253420(); - func_8024BF94(2); + depthBuffer_stub(); + viMgr_func_8024BF94(2); } void dummy_func_802E35D0(void){} diff --git a/src/core2/code_5C870.c b/src/core2/code_5C870.c index 0761540c..3b12d070 100644 --- a/src/core2/code_5C870.c +++ b/src/core2/code_5C870.c @@ -301,7 +301,7 @@ void game_draw(s32 arg0){ if(D_8037E8E0.unkC == 0){ sp2C = gfx; - func_8024C1DC(); + viMgr_func_8024C1DC(); func_80253EC4(gfx_start, sp2C); if(arg0) { @@ -365,7 +365,7 @@ void func_802E4170(void){ timedFuncQueue_free(); func_802F9C48(); modelRender_free(); - dummy_func_80253420(); + depthBuffer_stub(); func_802E398C(0); func_8030AFD8(0); func_80321854(); diff --git a/src/core2/code_5DBC0.c b/src/core2/code_5DBC0.c index 317ff79c..893d6b55 100644 --- a/src/core2/code_5DBC0.c +++ b/src/core2/code_5DBC0.c @@ -481,7 +481,7 @@ void func_802E6628(s32 arg0, char *arg1) { sp2C = func_802E4E54(0); arg0 *= D_8037E900->unk4[sp2C].height; - func_802E502C((s32) (((f32) framebuffer_width - (f32) func_802E51A4(arg1, sp2C, 0, D_8037E900->flags)) / 2), arg0, sp2C, arg1, sp28); + func_802E502C((s32) (((f32) gFramebufferWidth - (f32) func_802E51A4(arg1, sp2C, 0, D_8037E900->flags)) / 2), arg0, sp2C, arg1, sp28); } void func_802E66F0(s32 arg0, char *arg1) { @@ -491,7 +491,7 @@ void func_802E66F0(s32 arg0, char *arg1) { sp24 = func_802E4E54(0); arg0 *= D_8037E900->unk4[sp24].height; - func_802E502C((s32) (((f32) framebuffer_width - (f32) func_802E51A4(arg1, sp24, 0, D_8037E900->flags)) / 2), arg0, sp24, arg1, D_8037E900->unk1C); + func_802E502C((s32) (((f32) gFramebufferWidth - (f32) func_802E51A4(arg1, sp24, 0, D_8037E900->flags)) / 2), arg0, sp24, arg1, D_8037E900->unk1C); } void func_802E67AC(void){ diff --git a/src/core2/code_6A4B0.c b/src/core2/code_6A4B0.c index f1d2b910..6937d57e 100644 --- a/src/core2/code_6A4B0.c +++ b/src/core2/code_6A4B0.c @@ -4,7 +4,6 @@ #include "variables.h" -extern s16 D_803A5D00[2][0xF660]; typedef struct Struct_Core2_6A4B0_2{ s16 (*vtx_coord)[3]; @@ -75,8 +74,8 @@ void func_802F1440(Struct_Core2_6A4B0_2 *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx) gSPVertex((*gfx)++, osVirtualToPhysical(i_vtx), 16, 0); for(sp4C = 0; sp4C < 6; sp4C++){ for(sp50 = 0; sp50 < 9; sp50++){ - s16 *tmem = arg0->tmem_ptr + (0x20*sp50 + 1) + (0x20*sp4C + 0xC)*framebuffer_width; - gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(tmem), G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, 0, 0, 0, 33, 33, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + s16 *tmem = arg0->tmem_ptr + (0x20*sp50 + 1) + (0x20*sp4C + 0xC)*gFramebufferWidth; + gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(tmem), G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, 0, 0, 0, 33, 33, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); for(sp54 = 0; sp54 < 2; sp54++){ gSP1Triangle((*gfx)++, var_s3, var_s3 + 1, var_s3 + 2, 0); var_s3 += 3; @@ -129,12 +128,12 @@ Struct_Core2_6A4B0_2 *func_802F18F0(void){ void func_802F1934(Struct_Core2_6A4B0_2 * arg0, s32 arg1){ func_802F18B8(arg0); - arg0->tmem_raw_ptr = malloc(framebuffer_width*framebuffer_height*sizeof(u16) + 0x10); + arg0->tmem_raw_ptr = malloc(gFramebufferWidth*gFramebufferHeight*sizeof(u16) + 0x10); arg0->tmem_ptr = arg0->tmem_raw_ptr; while(((s32)arg0->tmem_ptr & 0x10) == 0){ arg0->tmem_ptr = (u16*)((s32)arg0->tmem_ptr + 1); } - func_80253010(arg0->tmem_ptr, D_803A5D00[arg1], framebuffer_width*framebuffer_height*sizeof(u16)); + func_80253010(arg0->tmem_ptr, gFramebuffers[arg1], gFramebufferWidth*gFramebufferHeight*sizeof(u16)); osWriteBackDCacheAll(); } @@ -163,8 +162,8 @@ void func_802F1A10(Struct_Core2_6A4B0_2 *arg0, f32 angle_degrees) { cos = cosf(angle_degrees * 2 * BAD_PI); sin = sinf(angle_degrees * 2 * BAD_PI); viewport_getPosition_vec3f(spC0); - spCC[0] = (-(framebuffer_width / 2) * 4) + 8; - spCC[1] = ((framebuffer_height / 2) * 4) - 0x38; + spCC[0] = (-(gFramebufferWidth / 2) * 4) + 8; + spCC[1] = ((gFramebufferHeight / 2) * 4) - 0x38; spCC[2] = -0xA; for(var_s6 = 0; var_s6 < 6; var_s6++){ for(var_s4 = 0; var_s4 < 9; var_s4++){ diff --git a/src/core2/code_6B030.c b/src/core2/code_6B030.c index 3c1909cf..41cdd868 100644 --- a/src/core2/code_6B030.c +++ b/src/core2/code_6B030.c @@ -6,7 +6,6 @@ #include "ml/mtx.h" -extern s16 D_803A5D00[2][0xF660]; extern f32 func_80257680(f32, f32, f32); @@ -87,23 +86,23 @@ void func_802F1FC0(Struct65s *self, Gfx **gfx, Mtx **mtx, Vtx **vtx) { mlMtx_apply_vec3f(spD0, spD0); spD0[0] = (-297.0f * spD0[0]) / spD0[2]; spD0[1] = (297.0f * spD0[1]) / spD0[2]; - spC4 = (s32) (spD0[0] + (f32) (framebuffer_width / 2)); - spC0 = (s32) (spD0[1] + (f32) (framebuffer_height / 2)); + spC4 = (s32) (spD0[0] + (f32) (gFramebufferWidth / 2)); + spC0 = (s32) (spD0[1] + (f32) (gFramebufferHeight / 2)); if (spC4 < 0) { spC4 = 0; - } else if (framebuffer_width - 0x20 < spC4) { - spC4 = framebuffer_width - 0x20; + } else if (gFramebufferWidth - 0x20 < spC4) { + spC4 = gFramebufferWidth - 0x20; } if (spC0 < 0) { spC0 = 0; - } else if (framebuffer_height - 0x20 < spC0) { - spC0 = framebuffer_height - 0x20; + } else if (gFramebufferHeight - 0x20 < spC0) { + spC0 = gFramebufferHeight - 0x20; } gSPDisplayList((*gfx)++, D_80368AC0); func_80347FC0(gfx, D_80368AB0[1].unk0, 0, 0, 0, 0, 0, NULL, NULL, &width, &height); - temp_addr = &D_803A5D00[func_8024BD80()][spC0*framebuffer_width + (spC4 & 0xFFFC)]; - gDPSetTextureImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, temp_addr); + temp_addr = &gFramebuffers[getOtherFramebuffer()][spC0*gFramebufferWidth + (spC4 & 0xFFFC)]; + gDPSetTextureImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, temp_addr); gDPSetTile((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 9, 0x0080, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD); gDPLoadSync((*gfx)++); gDPLoadTile((*gfx)++, G_TX_LOADTILE, 0, 0, 0x008C, 0x007C); diff --git a/src/core2/code_6DA30.c b/src/core2/code_6DA30.c index abad6efb..617649cb 100644 --- a/src/core2/code_6DA30.c +++ b/src/core2/code_6DA30.c @@ -740,8 +740,8 @@ void _printbuffer_draw_letter(char letter, f32* xPtr, f32* yPtr, f32 arg3, Gfx * temp_f24 = (sp214->x - 1.0); spD0 = sp214->y - 1.0; - temp_f26 = (f64) sp200 - (f32) framebuffer_width * 0.5; - spC0 = (f64)f28 - (f32)framebuffer_height*0.5 -0.5f; + temp_f26 = (f64) sp200 - (f32) gFramebufferWidth * 0.5; + spC0 = (f64)f28 - (f32)gFramebufferHeight*0.5 -0.5f; gSPVertex((*gfx)++, *vtx, 4, 0); for(iy = 0.0f; iy < 2.0; iy+= 1.0){ for(ix = 0.0f; ix < 2.0; ix += 1.0){ diff --git a/src/core2/code_77E50.c b/src/core2/code_77E50.c index 987ecc94..7abc743a 100644 --- a/src/core2/code_77E50.c +++ b/src/core2/code_77E50.c @@ -1,9 +1,8 @@ #include +#include "core1/core1.h" #include "functions.h" #include "variables.h" -extern s16 D_803A5D00[2][0xF660]; - void func_802FEDE0(BKTextureList *texture_list, s32 indx, s32 x_offset, s32 y_offset){ u16 *sp24; u16 *frame_buffer_ptr; @@ -11,10 +10,10 @@ void func_802FEDE0(BKTextureList *texture_list, s32 indx, s32 x_offset, s32 y_of s32 x; sp24 = (u16*)func_802EA620(texture_list) + indx*32*32; - frame_buffer_ptr = D_803A5D00[getActiveFramebuffer()]; + frame_buffer_ptr = gFramebuffers[getActiveFramebuffer()]; for(y = 0; y < 32; y++){//L802FEE60 for(x = 0; x < 32; x++){//L802FEE68 - sp24[32*(31 - y) + x] = frame_buffer_ptr[(y_offset + y)*framebuffer_width + (x_offset + x)] | 1; //framebuffer to texture??? + sp24[32*(31 - y) + x] = frame_buffer_ptr[(y_offset + y)*gFramebufferWidth + (x_offset + x)] | 1; //framebuffer to texture??? }; }; } @@ -25,12 +24,12 @@ void func_802FEF48(BKModelBin *model_bin){ s32 x, y; texture_list = model_getTextureList(model_bin); - osInvalDCache((void *)D_803A5D00[getActiveFramebuffer()], framebuffer_width * framebuffer_height*2); + osInvalDCache((void *)gFramebuffers[getActiveFramebuffer()], gFramebufferWidth * gFramebufferHeight*2); for(y = 0; y < 8; y++){//L802FEFEC for(x = 0; x < 10; x++){ //get textures from framebuffer??? - func_802FEDE0(texture_list, 10*y + x, 32*x + (framebuffer_width - 10*32)/2, (s32)32*y + (framebuffer_height - 8*32)/2); + func_802FEDE0(texture_list, 10*y + x, 32*x + (gFramebufferWidth - 10*32)/2, (s32)32*y + (gFramebufferHeight - 8*32)/2); } }; diff --git a/src/core2/code_851D0.c b/src/core2/code_851D0.c index e39b1218..7dd2bc94 100644 --- a/src/core2/code_851D0.c +++ b/src/core2/code_851D0.c @@ -1,9 +1,8 @@ #include +#include "core1/core1.h" #include "functions.h" #include "variables.h" -extern u8 D_803A5D00[2][0x1ecc0]; - #define TILE_SIZE 32 #define TILE_COUNT_X 5 @@ -91,7 +90,7 @@ void func_8030C27C(void){ void func_8030C2D4(Gfx **gdl, Mtx **mptr, Vtx **vptr){ scissorBox_setDefault(); - func_80253640(gdl, D_803A5D00[getActiveFramebuffer()]); + func_80253640(gdl, gFramebuffers[getActiveFramebuffer()]); } // Draws a 160x128 image pointed to by D_80382450 into the center of the screen diff --git a/src/core2/code_8DC20.c b/src/core2/code_8DC20.c index 518bec41..f09152e0 100644 --- a/src/core2/code_8DC20.c +++ b/src/core2/code_8DC20.c @@ -1,9 +1,9 @@ #include +#include "core1/core1.h" #include "functions.h" #include "variables.h" -extern s16 D_803A5D00[2][0xF660]; Gfx D_8036C630[] = { @@ -40,10 +40,10 @@ void func_80314BB0(Gfx **gfx, Mtx **mtx, Vtx **vtx, void * frame_buffer_1, void s32 y; gSPDisplayList((*gfx)++, D_8036C630); - gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(frame_buffer_1)); - for(y = 0; y < framebuffer_height / 32 + 1; y++){ - for(x = 0; x < framebuffer_width / 32 + 1; x++){ - gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(frame_buffer_2), G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, framebuffer_height, + gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_PHYSICAL_TO_K0(frame_buffer_1)); + for(y = 0; y < gFramebufferHeight / 32 + 1; y++){ + for(x = 0; x < gFramebufferWidth / 32 + 1; x++){ + gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(frame_buffer_2), G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, gFramebufferHeight, 0x20*x, 0x20*y, 0x20*(x + 1) - 1, 0x20*(y + 1) - 1, NULL, G_TX_CLAMP, G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, 0, 0 ); @@ -53,13 +53,13 @@ void func_80314BB0(Gfx **gfx, Mtx **mtx, Vtx **vtx, void * frame_buffer_1, void } } gSPDisplayList((*gfx)++, D_8036C690); - gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(D_803A5D00[getActiveFramebuffer()])); + gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, gFramebufferWidth, OS_PHYSICAL_TO_K0(gFramebuffers[getActiveFramebuffer()])); } void func_80315084(Gfx **gfx, Mtx **mtx, Vtx **vtx){ func_80335128(0); D_803830A0 = 2; - func_80314BB0(gfx, mtx, vtx, zBuffer_get(), D_803A5D00[getActiveFramebuffer()]); + func_80314BB0(gfx, mtx, vtx, zBuffer_get(), 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, D_803A5D00[getActiveFramebuffer()], zBuffer_get()); + func_80314BB0(gfx, mtx, vtx, gFramebuffers[getActiveFramebuffer()], zBuffer_get()); } void func_803151D0(Gfx **gfx, Mtx **mtx, Vtx **vtx){ diff --git a/src/core2/code_9B180.c b/src/core2/code_9B180.c index e67f7b51..d151bcf7 100644 --- a/src/core2/code_9B180.c +++ b/src/core2/code_9B180.c @@ -143,7 +143,7 @@ void func_803223AC(void) { func_8032236C(0x1C, 4, &sp28); func_8032236C(0x1D, 5, &sp28); sp28 = (sp28 == 0) ? 2 : sp28; - func_8024BF94(sp28); + viMgr_func_8024BF94(sp28); } void func_80322490(void) { diff --git a/src/core2/code_AD5B0.c b/src/core2/code_AD5B0.c index 95b61e24..5e1837be 100644 --- a/src/core2/code_AD5B0.c +++ b/src/core2/code_AD5B0.c @@ -31,7 +31,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) { f32 sp40; if (D_803835E0 == 0) { - drawRectangle2D(gdl, 0, 0, framebuffer_width, framebuffer_height, 0, 0, 0); + drawRectangle2D(gdl, 0, 0, gFramebufferWidth, gFramebufferHeight, 0, 0, 0); func_802BBD2C(&sp44, &sp40); viewport_setNearAndFar(sp44, sp40); viewport_setRenderViewportAndPerspectiveMatrix(gdl, mptr); diff --git a/src/core2/code_B6C60.c b/src/core2/code_B6C60.c index 6c459b7a..5634e619 100644 --- a/src/core2/code_B6C60.c +++ b/src/core2/code_B6C60.c @@ -21,7 +21,7 @@ void func_8033DC18(void){} f32 func_8033DC20(void){ f32 out; - D_80384470 = func_8024BD94(); + D_80384470 = viMgr_func_8024BD94(); out = 0.016666666666666666*D_80384470; return out; } diff --git a/src/core2/code_B6CE0.c b/src/core2/code_B6CE0.c index 815e00af..1f9d3ed2 100644 --- a/src/core2/code_B6CE0.c +++ b/src/core2/code_B6CE0.c @@ -39,7 +39,7 @@ f32 time_getDelta(void){ } f32 func_8033DDB8(void){ - return func_8024BD94()*(1/60.0); + return viMgr_func_8024BD94()*(1/60.0); } f32 func_8033DDEC(void){ diff --git a/src/core2/code_C97F0.c b/src/core2/code_C97F0.c index 4b945a4c..e497386e 100644 --- a/src/core2/code_C97F0.c +++ b/src/core2/code_C97F0.c @@ -136,14 +136,14 @@ void func_80350818(Gfx **gfx, Mtx **mtx, Vtx **vtx) { sp9C[2] = temp_s1->unk4[2]; ml_vec3f_yaw_rotate_copy(sp9C, sp9C, -spD0[1]); ml_vec3f_pitch_rotate_copy(sp9C, sp9C, -spD0[0]); - if (!(((1.2 * (f32)framebuffer_width) / 2) < sp9C[0]) && !(sp9C[0] < ((-1.2 * (f32)framebuffer_width) / 2))) { - if (!(((1.2 * (f32)framebuffer_height) / 2) < sp9C[1]) && !(sp9C[1] < ((-1.2 * (f32)framebuffer_height) / 2))) { + if (!(((1.2 * (f32)gFramebufferWidth) / 2) < sp9C[0]) && !(sp9C[0] < ((-1.2 * (f32)gFramebufferWidth) / 2))) { + if (!(((1.2 * (f32)gFramebufferHeight) / 2) < sp9C[1]) && !(sp9C[1] < ((-1.2 * (f32)gFramebufferHeight) / 2))) { sp90[0] = -sp9C[0]; sp90[1] = -sp9C[1]; sp90[2] = sp9C[2]; ml_vec3f_pitch_rotate_copy(sp90, sp90, spD0[0]); ml_vec3f_yaw_rotate_copy(sp90, sp90, spD0[1]); - var_f22 = 1.0f - (((sp9C[0] * sp9C[0]) + (sp9C[1] * sp9C[1])) / ((f32)framebuffer_height * (f32)framebuffer_height)); + var_f22 = 1.0f - (((sp9C[0] * sp9C[0]) + (sp9C[1] * sp9C[1])) / ((f32)gFramebufferHeight * (f32)gFramebufferHeight)); if (var_f22 < 0.0f) { var_f22 = 0.0f; } @@ -181,7 +181,7 @@ void func_80350BFC(void) { if (D_80386170.unk4 != NULL) { D_80386170.unk0 = func_80350780(D_80386170.unk4->unk10); D_80386170.unk8 = assetcache_get(0x882); - ml_vec3f_set_length(D_80386170.unk4->unk4, (2*(f32)framebuffer_width) / 2); + ml_vec3f_set_length(D_80386170.unk4->unk4, (2*(f32)gFramebufferWidth) / 2); D_8038617C.unk0 = 1; D_8038617C.unk1 = 0; } diff --git a/src/core2/fx/airscore.c b/src/core2/fx/airscore.c index f736449a..3ccdc443 100644 --- a/src/core2/fx/airscore.c +++ b/src/core2/fx/airscore.c @@ -86,8 +86,8 @@ void fxairscore_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, gDPSetPrimColor((*gfx)++, 0, 0, 0x00, 0x00, 0x00, 0x78); } x = func_802FB0E4(arg1); - x = ((-40 + x) + D_80381F68[var_s6]) - ((f32) framebuffer_width / 2); - y = ((78 + (i_part * 15.5)) - ((f32) framebuffer_height / 2)); + x = ((-40 + x) + D_80381F68[var_s6]) - ((f32) gFramebufferWidth / 2); + y = ((78 + (i_part * 15.5)) - ((f32) gFramebufferHeight / 2)); //stagger x position x = (i_part & 1) ? x + 5.0f : x - 5.0f; diff --git a/src/core2/fx/common2score.c b/src/core2/fx/common2score.c index e988c8b7..6fd22108 100644 --- a/src/core2/fx/common2score.c +++ b/src/core2/fx/common2score.c @@ -8,9 +8,6 @@ f32 time_getDelta(void); f32 func_802FB0DC(struct8s *); f32 func_802FB0E4(struct8s *); -extern s32 framebuffer_width; //framebuffer_w -extern s32 framebuffer_height; //framebuffer_h - Gfx D_80369920[] = { gsDPPipeSync(), @@ -154,8 +151,8 @@ void func_802FD360(struct8s *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx){ tmp_f26 = (arg0->unk20 == ITEM_0_HOURGLASS_TIMER && texture_width == 0x10) ? 1.0f : 0.0f; for(tmp_s4 = 0; tmp_s4 < 2; tmp_s4++){//L802FD528 for(tmp_s2 = 0; tmp_s2 < 2; tmp_s2++){// - (*vtx)->v.ob[0] = ((func_802FB0DC(arg0) + (((texture_width*arg0->unk40*tmp_s2 - texture_width*arg0->unk40/2) - (f32)framebuffer_width/2) + arg0->unk38)) + tmp_f26) * 4.0f; - (*vtx)->v.ob[1] = ((((texture_height*arg0->unk40/2 - texture_height*arg0->unk40*tmp_s4) + (f32)framebuffer_height/2) - arg0->unk3C) - func_802FB0E4(arg0)*arg0->unk4C)*4.0f; + (*vtx)->v.ob[0] = ((func_802FB0DC(arg0) + (((texture_width*arg0->unk40*tmp_s2 - texture_width*arg0->unk40/2) - (f32)gFramebufferWidth/2) + arg0->unk38)) + tmp_f26) * 4.0f; + (*vtx)->v.ob[1] = ((((texture_height*arg0->unk40/2 - texture_height*arg0->unk40*tmp_s4) + (f32)gFramebufferHeight/2) - arg0->unk3C) - func_802FB0E4(arg0)*arg0->unk4C)*4.0f; (*vtx)->v.ob[2] = -0x14; (*vtx)->v.tc[0] = ((texture_width -1) * tmp_s2) << 6; (*vtx)->v.tc[1] = ((texture_height -1) * tmp_s4) << 6; diff --git a/src/core2/fx/common3score.c b/src/core2/fx/common3score.c index ef1c85d3..bf18ce56 100644 --- a/src/core2/fx/common3score.c +++ b/src/core2/fx/common3score.c @@ -7,7 +7,6 @@ extern f32 vtxList_getGlobalNorm(BKVertexList *); extern void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer); -extern s16 D_803A5D00[2][0xF660]; extern f32 func_802FB0E4(struct8s*); typedef struct { @@ -210,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(model_getVtxList(a1->model)) * a1->unk3C); } - func_80253208(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, D_803A5D00[getActiveFramebuffer()]); + func_80253208(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, gFramebuffers[getActiveFramebuffer()]); if(a1->anim_ctrl != NULL){ animctrl_drawSetup(a1->anim_ctrl, sp5C, 1); } diff --git a/src/core2/fx/healthscore.c b/src/core2/fx/healthscore.c index 20d855cd..0a693ded 100644 --- a/src/core2/fx/healthscore.c +++ b/src/core2/fx/healthscore.c @@ -6,9 +6,6 @@ extern f32 func_802FB0E4(struct8s*); -extern s32 framebuffer_width; -extern s32 framebuffer_height; - /* .data */ BKSprite * gSpriteHealth = NULL; BKSprite * gSpriteRedHealth = NULL; @@ -112,8 +109,8 @@ void fxhealthscore_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mt gDPSetPrimColor((*gfx)++, 0, 0, 0xFF, 0xFF, 0xFF, 0x78); } - f20 = 96.0f - (f32) framebuffer_width / 2 + (i * 13); - f14 = (f32) framebuffer_height / 2 - func_802FB0E4(arg1) - D_80381F08[s6] - -48.0f; + f20 = 96.0f - (f32) gFramebufferWidth / 2 + (i * 13); + f14 = (f32) gFramebufferHeight / 2 - func_802FB0E4(arg1) - D_80381F08[s6] - -48.0f; f14 = (i & 1) ? f14 + 5.75 : f14 - 5.75; gSPVertex((*gfx)++, *vtx, 4, 0); diff --git a/src/core2/fx/honeycarrierscore.c b/src/core2/fx/honeycarrierscore.c index a128983a..4778c2cb 100644 --- a/src/core2/fx/honeycarrierscore.c +++ b/src/core2/fx/honeycarrierscore.c @@ -141,8 +141,8 @@ void fxhoneycarrierscore_draw(s32 arg0, struct8s *arg1, Gfx **arg2, Mtx **arg3, } } } - sp128 = (244.0f - ((f32) framebuffer_width / 2)); - sp124 = func_802FB0E4(arg1) + ((f32) framebuffer_height / 2) - 246.0f; + sp128 = (244.0f - ((f32) gFramebufferWidth / 2)); + sp124 = func_802FB0E4(arg1) + ((f32) gFramebufferHeight / 2) - 246.0f; guTranslate(*arg3, sp128 * 4.0f, sp124 * 4.0f, 0.0f); gSPMatrix((*arg2)++, OS_K0_TO_PHYSICAL((*arg3)++), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); guRotate(*arg3, func_802FDE60(D_803815D8 + D_803815DC), 0.0f, 0.0f, 1.0f); diff --git a/src/core2/fx/jinjoscore.c b/src/core2/fx/jinjoscore.c index bc7ff2b2..5130cb97 100644 --- a/src/core2/fx/jinjoscore.c +++ b/src/core2/fx/jinjoscore.c @@ -176,8 +176,8 @@ void fxjinjoscore_draw(s32 arg0, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vtx **vtx // If the jinjo is collected then it's drawn fully opaque, otherwise it's drawn with partial alpha gDPSetPrimColor((*gfx)++, 0, 0, 0x00, 0x00, 0x00, jinjo_collected ? 0xFF : 0x6E); } - center_x = pos_x - (f32) framebuffer_width / 2 + x_offset; - center_y = (f32) framebuffer_height / 2 + func_802FB0E4(arg1) - 266.0f + 40.0f + y_offset - D_80381E78[jinjo_id]; + center_x = pos_x - (f32) gFramebufferWidth / 2 + x_offset; + center_y = (f32) gFramebufferHeight / 2 + func_802FB0E4(arg1) - 266.0f + 40.0f + y_offset - D_80381E78[jinjo_id]; gSPVertex((*gfx)++, *vtx, 4, 0); // Set up the positions of the four vertices for(i = 0; i < 2; i++){ diff --git a/src/core2/fx/lifescore.c b/src/core2/fx/lifescore.c index 04f522ab..5b00bebd 100644 --- a/src/core2/fx/lifescore.c +++ b/src/core2/fx/lifescore.c @@ -102,8 +102,8 @@ void fxlifescore_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, sp104 = sp104 + 4; } - var_s5 = (40.0f - ((f32) framebuffer_width / 2)) + spE0; - var_s4 = (((((f32) framebuffer_height / 2) - func_802FB0E4(arg1)) - -16.0f) - spDC); + var_s5 = (40.0f - ((f32) gFramebufferWidth / 2)) + spE0; + var_s4 = (((((f32) gFramebufferHeight / 2) - func_802FB0E4(arg1)) - -16.0f) - spDC); for(var_v1 = 0; var_v1 < 2; var_v1++){ for(var_v0 = 0; var_v0 < 2; var_v0++){ (*vtx)->v.ob[0] = (s16) (s32) (((((f32) spF0 * D_80381EB8 * (f32) var_v0) - (((f32) spE8 * D_80381EB8) / 2)) + var_s5) * 4.0f); diff --git a/src/core2/gc/bound.c b/src/core2/gc/bound.c index 437331c7..1860a233 100644 --- a/src/core2/gc/bound.c +++ b/src/core2/gc/bound.c @@ -26,7 +26,7 @@ u8 _gcbound_blue; //D_80380902 void _gcbound_draw(Gfx** dl, s32 a, s32 r, s32 g, s32 b){ gSPDisplayList((*dl)++, &D_803688E8); gDPSetFogColor((*dl)++, r, g, b, a); - gSPTextureRectangle((*dl)++, 0, 0, (framebuffer_width-1)<<2, (framebuffer_height-1)<<2, 0, 0, 0, 0x100, 0x100); + gSPTextureRectangle((*dl)++, 0, 0, (gFramebufferWidth-1)<<2, (gFramebufferHeight-1)<<2, 0, 0, 0, 0x100, 0x100); } void gcbound_draw(Gfx** dl){ diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index bc370ce3..6d2611c1 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -1373,7 +1373,7 @@ void gcpausemenu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { } gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.joystick_sprite, D_80383010.joystick_frame, 30.0f, 196.0f, 1, (s32) D_80383010.left_joystick_alpha); - gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.joystick_sprite, D_80383010.joystick_frame, (f32)(framebuffer_width - 0x1E), 196.0f, 0, (s32) D_80383010.right_joystick_alpha); + gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.joystick_sprite, D_80383010.joystick_frame, (f32)(gFramebufferWidth - 0x1E), 196.0f, 0, (s32) D_80383010.right_joystick_alpha); var_a0 = ((*((u32 * ) & D_80383010.state) << 0x1c) >> 0x1f); //left_joystick_visible if (var_a0 != 0) { if (D_80383010.left_joystick_alpha < 0xFF) { @@ -1396,7 +1396,7 @@ void gcpausemenu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { D_80383010.right_joystick_alpha = (D_80383010.right_joystick_alpha - 0xC > 0) ? D_80383010.right_joystick_alpha - 0xC : 0; } } - gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.b_button_sprite, (s32) D_80383010.b_button_frame, framebuffer_width * 0.5, 196.0f, 0, (s32) D_80383010.b_button_alpha); + gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.b_button_sprite, (s32) D_80383010.b_button_frame, gFramebufferWidth * 0.5, 196.0f, 0, (s32) D_80383010.b_button_alpha); var_a0 = ((*((u32 * ) & D_80383010.state) << 0x1e) >> 0x1f);//b_button_visible if (var_a0 != 0) { if (D_80383010.b_button_alpha < 0xFF) { diff --git a/src/core2/gc/sky.c b/src/core2/gc/sky.c index 756ce704..9dea25a6 100644 --- a/src/core2/gc/sky.c +++ b/src/core2/gc/sky.c @@ -75,7 +75,7 @@ void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){ viewport_setNearAndFar(5.0f, 15000.0f); if(gcSky.model_bins[0]){ - drawRectangle2D(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height,0, 0, 0); //fill screen with black + drawRectangle2D(gfx, 0, 0, (s32)(f32) gFramebufferWidth, (s32)(f32)gFramebufferHeight,0, 0, 0); //fill screen with black viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx); viewport_getPosition_vec3f(position); for(i = 0; i < 3; i++){ @@ -89,7 +89,7 @@ void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){ } } else{//L8030B200 - drawRectangle2D(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height, 0, 0, 0); + drawRectangle2D(gfx, 0, 0, (s32)(f32) gFramebufferWidth, (s32)(f32)gFramebufferHeight, 0, 0, 0); }//L8030B254 } diff --git a/src/core2/gc/zoombox.c b/src/core2/gc/zoombox.c index 4b507cae..ff1d9453 100644 --- a/src/core2/gc/zoombox.c +++ b/src/core2/gc/zoombox.c @@ -861,7 +861,7 @@ void func_803164B0(GcZoombox *this, Gfx **gfx, Mtx **mtx, s32 arg3, s32 arg4, BK } sp2C[1] = this->unk172 + ((f32) arg4 * this->unk198); sp2C[2] = -10.0f; - func_80252330((sp2C[0] * 4.0f) - ((f32)framebuffer_width * 2), ((f32)framebuffer_height * 2) - (sp2C[1] * 4.0f), sp2C[2]); + func_80252330((sp2C[0] * 4.0f) - ((f32)gFramebufferWidth * 2), ((f32)gFramebufferHeight * 2) - (sp2C[1] * 4.0f), sp2C[2]); temp_f12 = (f32) ((f64) this->unk198 * 0.8); mlMtxScale_xyz(temp_f12, temp_f12, 1.0f); mlMtxApply(*mtx); @@ -1402,8 +1402,8 @@ GcZoombox *gczoombox_new(s32 y, GcZoomboxSprite portrait_id, s32 arg2, s32 arg3, this->unk1A4_24 = arg3; if(this->unk1A4_24){ this->unk16A = 45; - this->unk174 = framebuffer_width - 0x25; - this->unk170 = framebuffer_width + 0x66; + this->unk174 = gFramebufferWidth - 0x25; + this->unk170 = gFramebufferWidth + 0x66; }else{ this->unk16A = 71; this->unk174 = 0x25; @@ -1604,9 +1604,9 @@ void func_80318640(GcZoombox *this, s32 arg1, f32 arg2, f32 arg3, s32 arg4) { if (this != NULL) { if (this->unk1A4_24) { - this->unk174 = framebuffer_width - arg1; + this->unk174 = gFramebufferWidth - arg1; this->unk16A = arg1 + (8.0f * arg2); - this->unk170 = (framebuffer_width - arg1) + 0x8B; + this->unk170 = (gFramebufferWidth - arg1) + 0x8B; } else { this->unk174 = arg1; phi_v0 = arg4 ? 0x28 : 0x22;