mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-08 13:26:14 -04:00
z_syscfb.c, z_vimode.c, code_80140CE0 split and OK (#1159)
* z_vimode * Fixups * WIP * matching * sys_cfb OK * some documentation * vimode docs, name all syscfb vars * quick fixes * suggested changes, more things I missed * merge suggestions * code_80140CE0 -> z_viscvg * format * update symbols * more suggestions * fix include order * sNotebookViMode comment, bss fix --------- Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk> Co-authored-by: louist103 <louist103@gmail.com>
This commit is contained in:
+21
-21
@@ -1090,7 +1090,7 @@ void Font_LoadCharNES(PlayState* play, u8 codePointIndex, s32 offset);
|
||||
void Font_LoadMessageBoxEndIcon(Font* font, u16 icon);
|
||||
void Font_LoadOrderedFont(Font* font);
|
||||
// void func_800F5090(void);
|
||||
// void func_800F50D4(void);
|
||||
s32 Environment_ZBufValToFixedPoint(s32 zBufferVal);
|
||||
void Environment_Init(PlayState* play, EnvironmentContext* envCtx, s32 arg2);
|
||||
u32 func_800F5954(u8* param_1, u32 param_2, u32 param_3, u8 param_4, u8 param_5);
|
||||
f32 Environment_LerpWeight(u16 max, u16 min, u16 val);
|
||||
@@ -1724,22 +1724,23 @@ void SkinMatrix_SetYRotation(MtxF* mf, s16 a);
|
||||
void SkinMatrix_MulYRotation(MtxF* mf, s16 a);
|
||||
void SkinMatrix_SetZRotation(MtxF* mf, s16 a);
|
||||
|
||||
void func_80140260(OSViMode* vimode);
|
||||
// void func_8014026C(OSViMode* param_1, UNK_TYPE1 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6, s32 param_7, s32 param_8, UNK_TYPE4 param_9, s32 param_10, s16 param_11, u32 param_12, UNK_TYPE4 param_13);
|
||||
// void func_80140730(void);
|
||||
// void func_80140810(void);
|
||||
void func_80140898(void* arg0);
|
||||
void func_80140900(void* arg0);
|
||||
// void func_8014090C(void);
|
||||
// void func_80140970(void);
|
||||
void func_80140CE0(void* arg0);
|
||||
void func_80140D04(void* arg0);
|
||||
void func_80140D10(void* arg0, Gfx** gfx, u32 arg2);
|
||||
void ViMode_LogPrint(OSViMode* vimode);
|
||||
void ViMode_Configure(OSViMode* viMode, s32 type, s32 tvType, s32 loRes, s32 antialiasOff, s32 modeN, s32 fb16Bit,
|
||||
s32 width, s32 height, s32 leftAdjust, s32 rightAdjust, s32 upperAdjust, s32 lowerAdjust);
|
||||
void ViMode_Save(ViMode* viMode);
|
||||
void ViMode_Load(ViMode* viMode);
|
||||
void ViMode_Init(ViMode* viMode);
|
||||
void ViMode_Destroy(ViMode* viMode);
|
||||
void ViMode_ConfigureFeatures(ViMode* viMode, s32 viFeatures);
|
||||
void ViMode_Update(ViMode* viMode, Input* input);
|
||||
void VisCvg_Init(struct_801F8010* this);
|
||||
void VisCvg_Destroy(struct_801F8010* this);
|
||||
void VisCvg_Draw(struct_801F8010* this, Gfx** gfxp);
|
||||
void func_80140E80(Struct_80140E80* arg0);
|
||||
void func_80140EA0(Struct_80140E80* arg0);
|
||||
// void func_80140EAC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_80141008(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
void func_8014116C(Gfx** gfxP, u16* arg1, u16* arg2, s32 width, s32 height, s32 arg5);
|
||||
void func_8014116C(Gfx** gfxP, u16* arg1, u16* workBuffer, s32 width, s32 height, s32 arg5);
|
||||
// void func_801411B4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
// void func_80141200(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8014151C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
@@ -2048,15 +2049,14 @@ void Mtx_SetTranslateScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32
|
||||
void Mtx_SetRotationMtx(Mtx* mtx, s32 angle, f32 axisX, f32 axisY, f32 axisZ);
|
||||
void Mtx_SetTranslationRotationScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s32 angle, f32 axisX, f32 axisY, f32 axisZ,f32 translateX, f32 translateY, f32 translateZ);
|
||||
|
||||
void func_80178750(void);
|
||||
void func_80178818(void);
|
||||
void func_80178978(void);
|
||||
// void func_801789D4(void);
|
||||
void* SysCfb_GetFbPtr(s32 index);
|
||||
void SysCfb_SetLoResMode(void);
|
||||
void SysCfb_SetHiResMode(void);
|
||||
void SysCfb_Init(void);
|
||||
void* SysCfb_GetFramebuffer(s32 index);
|
||||
void* SysCfb_GetZBuffer(void);
|
||||
// UNK_TYPE4 func_80178A24(void);
|
||||
// void func_80178A34(void);
|
||||
s32 func_80178A94(s32 param_1, s32 param_2);
|
||||
void* SysCfb_GetWorkBuffer(void);
|
||||
u16 SysCfb_GetZBufferPixel(s32 x, s32 y);
|
||||
s32 SysCfb_GetZBufferInt(s32 x, s32 y);
|
||||
void CmpDma_LoadFile(uintptr_t segmentVrom, s32 id, void* dst, size_t size);
|
||||
void CmpDma_LoadAllFiles(uintptr_t segmentVrom, void* dst, size_t size);
|
||||
// void Check_WriteRGBA16Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
|
||||
+4
-2
@@ -7,9 +7,11 @@
|
||||
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
#define SCREEN_WIDTH_HIRES 640
|
||||
#define SCREEN_HEIGHT_HIRES 480
|
||||
|
||||
#define SCREEN_WIDTH_HIGH_RES 576
|
||||
#define SCREEN_HEIGHT_HIGH_RES 454
|
||||
#define HIRES_BUFFER_WIDTH 576
|
||||
#define HIRES_BUFFER_HEIGHT 454
|
||||
|
||||
#define PROJECTED_TO_SCREEN_X(projectedPos, invW) ((projectedPos).x * (invW) * (SCREEN_WIDTH / 2) + (SCREEN_WIDTH / 2))
|
||||
#define PROJECTED_TO_SCREEN_Y(projectedPos, invW) ((projectedPos).y * (invW) * (-SCREEN_HEIGHT / 2) + (SCREEN_HEIGHT / 2))
|
||||
|
||||
@@ -65,6 +65,13 @@ extern RegEditor* gRegEditor;
|
||||
#define R_ENABLE_ARENA_DBG SREG(0) // Same as OoT
|
||||
#define R_ROOM_IMAGE_NODRAW_FLAGS SREG(25)
|
||||
#define R_UPDATE_RATE SREG(30)
|
||||
#define R_VI_MODE_EDIT_STATE SREG(48)
|
||||
#define R_VI_MODE_EDIT_WIDTH SREG(49)
|
||||
#define R_VI_MODE_EDIT_HEIGHT SREG(50)
|
||||
#define R_VI_MODE_EDIT_ULY_ADJ SREG(51)
|
||||
#define R_VI_MODE_EDIT_LRY_ADJ SREG(52)
|
||||
#define R_VI_MODE_EDIT_ULX_ADJ SREG(53)
|
||||
#define R_VI_MODE_EDIT_LRX_ADJ SREG(54)
|
||||
#define R_FB_FILTER_TYPE SREG(80)
|
||||
#define R_FB_FILTER_PRIM_COLOR(c) SREG(81 + c)
|
||||
#define R_FB_FILTER_A SREG(84)
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#ifndef ULTRA64_VIINT_H
|
||||
#define ULTRA64_VIINT_H
|
||||
|
||||
#define VI_STATE_MODE_SET (1 << 0)
|
||||
#define VI_STATE_XSCALE_SET (1 << 1)
|
||||
#define VI_STATE_YSCALE_FACTOR_SET (1 << 2)
|
||||
#define VI_STATE_CTRL_SET (1 << 3)
|
||||
#define VI_STATE_BUFFER_SET (1 << 4)
|
||||
#define VI_STATE_BLACK (1 << 5)
|
||||
#define VI_STATE_REPEATLINE (1 << 6)
|
||||
#define VI_STATE_FADE (1 << 7)
|
||||
|
||||
#define VI_SCALE_MASK 0xFFF
|
||||
#define VI_2_10_FPART_MASK 0x3FF
|
||||
#define VI_SUBPIXEL_SH 0x10
|
||||
|
||||
// For use in initializing OSViMode structures
|
||||
|
||||
#define BURST(hsync_width, color_width, vsync_width, color_start) \
|
||||
(hsync_width | (color_width << 8) | (vsync_width << 16) | (color_start << 20))
|
||||
#define WIDTH(v) v
|
||||
#define VSYNC(v) v
|
||||
#define HSYNC(duration, leap) (duration | (leap << 16))
|
||||
#define LEAP(upper, lower) ((upper << 16) | lower)
|
||||
#define START(start, end) ((start << 16) | end)
|
||||
|
||||
#define FTOFIX(val, i, f) ((u32)(val * (f32)(1 << f)) & ((1 << (i + f)) - 1))
|
||||
|
||||
#define F210(val) FTOFIX(val, 2, 10)
|
||||
#define SCALE(scaleup, off) (F210((1.0f / (f32)scaleup)) | (F210((f32)off) << 16))
|
||||
|
||||
#define VCURRENT(v) v
|
||||
#define ORIGIN(v) v
|
||||
#define VINTR(v) v
|
||||
#define HSTART START
|
||||
|
||||
#endif
|
||||
+22
-22
@@ -2393,7 +2393,7 @@ extern UNK_TYPE1 D_801F7FF0;
|
||||
extern struct_801F8010 D_801F8010;
|
||||
extern VisZbuf sVisZbuf;
|
||||
extern VisMono sMonoColors;
|
||||
extern UNK_TYPE1 D_801F8048;
|
||||
extern ViMode D_801F8048;
|
||||
extern FaultAddrConvClient sGraphFaultAddrConvClient;
|
||||
extern FaultClient sGraphFaultClient;
|
||||
extern GfxMasterList* gGfxMasterDL;
|
||||
@@ -2422,30 +2422,30 @@ extern volatile OSTime sRSPOtherTotalTime;
|
||||
// extern UNK_TYPE1 D_801FBB18;
|
||||
extern volatile OSTime gRDPTotalTime;
|
||||
// extern UNK_TYPE1 D_801FBB28;
|
||||
extern OSViMode D_801FBB30;
|
||||
extern u32* gFramebuffers[2];
|
||||
extern OSViMode* D_801FBB88;
|
||||
extern OSViMode sNotebookViMode;
|
||||
extern void* gFramebuffers[2];
|
||||
extern OSViMode* gActiveViMode;
|
||||
extern u16* gZBufferPtr;
|
||||
extern void* D_801FBB90;
|
||||
extern void* gWorkBuffer;
|
||||
extern u64* gGfxSPTaskOutputBufferPtr;
|
||||
extern size_t gGfxSPTaskOutputBufferSize;
|
||||
// extern UNK_TYPE1 D_801FBB9C;
|
||||
// extern UNK_TYPE1 D_801FBBA0;
|
||||
extern u16 (*gZBuffer)[SCREEN_WIDTH * SCREEN_HEIGHT];
|
||||
extern u16 (*gWorkBuffer)[SCREEN_WIDTH * SCREEN_HEIGHT];
|
||||
extern u64 (*gGfxSPTaskOutputBuffer)[0x3000];
|
||||
extern void* gGfxSPTaskOutputBufferEnd;
|
||||
// extern UNK_TYPE1 D_801FBBB4;
|
||||
// extern UNK_TYPE1 D_801FBBB8;
|
||||
// extern UNK_TYPE1 D_801FBBBC;
|
||||
// extern UNK_TYPE1 D_801FBBC0;
|
||||
extern u64 (*gGfxSPTaskOutputBuffer2)[0x3000];
|
||||
extern void* gGfxSPTaskOutputBufferEnd2;
|
||||
extern UNK_TYPE2 D_801FBBCC;
|
||||
extern UNK_TYPE2 D_801FBBCE;
|
||||
// extern UNK_TYPE1 D_801FBBD0;
|
||||
// extern UNK_TYPE1 D_801FBBD2;
|
||||
extern u8 D_801FBBD4;
|
||||
extern void* sCfbLoRes1;
|
||||
extern void* sCfbLoRes0;
|
||||
extern u16 (*gZBufferLoRes)[SCREEN_WIDTH * SCREEN_HEIGHT];
|
||||
extern u16 (*gWorkBufferLoRes)[SCREEN_WIDTH * SCREEN_HEIGHT];
|
||||
extern u64 (*gGfxSPTaskOutputBufferLoRes)[0x3000];
|
||||
extern void* gGfxSPTaskOutputBufferEndLoRes;
|
||||
extern void* sCfbHiRes1;
|
||||
extern void* sCfbHiRes0;
|
||||
extern u16 (*gZBufferHiRes)[HIRES_BUFFER_WIDTH * HIRES_BUFFER_HEIGHT];
|
||||
extern u16 (*gWorkBufferHiRes)[HIRES_BUFFER_WIDTH * HIRES_BUFFER_HEIGHT];
|
||||
extern u64 (*gGfxSPTaskOutputBufferHiRes)[0x3000];
|
||||
extern void* gGfxSPTaskOutputBufferEndHiRes;
|
||||
extern s16 gCfbWidth;
|
||||
extern s16 gCfbHeight;
|
||||
extern s16 gCfbLeftAdjust;
|
||||
extern s16 gCfbUpperAdjust;
|
||||
extern u8 gSysCfbHiResEnabled;
|
||||
extern Vec3f D_801FBBF0;
|
||||
extern LineSegment Math3D_ColSphereTri_line;
|
||||
extern Vec3f Math3D_ColSphereTri_point;
|
||||
|
||||
+26
-1
@@ -612,7 +612,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x0 */ u32 type;
|
||||
/* 0x4 */ u32 setScissor;
|
||||
/* 0x8 */ Color_RGBA8 color;
|
||||
/* 0x8 */ Color_RGBA8_u32 color;
|
||||
/* 0xC */ Color_RGBA8 envColor;
|
||||
} struct_801F8010; // size = 0x10
|
||||
|
||||
@@ -676,4 +676,29 @@ enum fram_mode {
|
||||
FRAM_MODE_STATUS
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ VI_MODE_EDIT_STATE_INACTIVE,
|
||||
/* 1 */ VI_MODE_EDIT_STATE_ACTIVE,
|
||||
/* 2 */ VI_MODE_EDIT_STATE_2, // active, more adjustments
|
||||
/* 3 */ VI_MODE_EDIT_STATE_3 // active, more adjustments, print comparison with NTSC LAN1 mode
|
||||
} ViModeEditState;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ OSViMode customViMode;
|
||||
/* 0x50 */ s32 viHeight;
|
||||
/* 0x54 */ s32 viWidth;
|
||||
/* 0x58 */ s32 rightAdjust;
|
||||
/* 0x5C */ s32 leftAdjust;
|
||||
/* 0x60 */ s32 lowerAdjust;
|
||||
/* 0x64 */ s32 upperAdjust;
|
||||
/* 0x68 */ s32 editState;
|
||||
/* 0x6C */ s32 tvType;
|
||||
/* 0x70 */ u32 loRes;
|
||||
/* 0x74 */ u32 antialiasOff;
|
||||
/* 0x78 */ u32 modeN;
|
||||
/* 0x7C */ u32 fb16Bit;
|
||||
/* 0x80 */ u32 viFeatures;
|
||||
/* 0x84 */ u32 unk_84;
|
||||
} ViMode; // size = 0x88
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user