Attempt to decompile menugfxRenderGradient

This commit is contained in:
Ryan Dwyer 2022-01-25 08:25:37 +10:00
parent cdf53afbd2
commit 8cacff28e1
9 changed files with 131 additions and 58 deletions

View File

@ -6620,14 +6620,14 @@ glabel amRender
// vertices[7].x = vertices[3].x + tmp2;
// vertices[7].y = vertices[3].y;
//
// vertices[0].s = 0;
// vertices[1].s = 0;
// vertices[2].s = 0;
// vertices[3].s = 0;
// vertices[4].s = 4;
// vertices[5].s = 4;
// vertices[6].s = 4;
// vertices[7].s = 4;
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
// vertices[4].colour = 4;
// vertices[5].colour = 4;
// vertices[6].colour = 4;
// vertices[7].colour = 4;
//
// colours[0] = 0x22222200;
// colours[1] = 0x0000004f;

View File

@ -2011,10 +2011,10 @@ Gfx *bviewRenderEyespySideRect(Gfx *gdl, s32 *points, u8 r, u8 g, u8 b, u8 alpha
colours[0] = r << 0x18 | g << 0x10 | b << 8 | 0xff;
colours[1] = r << 0x18 | g << 0x10 | b << 8 | alpha;
vertices[0].s = 0;
vertices[1].s = 0;
vertices[2].s = 4;
vertices[3].s = 4;
vertices[0].colour = 0;
vertices[1].colour = 0;
vertices[2].colour = 4;
vertices[3].colour = 4;
gDPSetColorArray(gdl++, colours, 2);
gDPSetVerticeArray(gdl++, vertices, 4);

View File

@ -152,7 +152,7 @@ void func0f137874(struct gfxvtx *vertices, u32 *colours, s32 arg2, s32 alpha, s3
}
for (i = 0; i < ARRAYCOUNT(var8007f13c[arg2].s);) {
vertices[i].s = var8007f13c[arg2].s[i] * 4;
vertices[i].colour = var8007f13c[arg2].s[i] * 4;
i++;
}
@ -726,10 +726,10 @@ Gfx *creditsRenderLine(Gfx *gdl, struct coord *from, struct coord *to)
vertices[3].y = to->y;
vertices[3].z = to->z;
vertices[0].s = 0;
vertices[1].s = 4;
vertices[2].s = 4;
vertices[3].s = 0;
vertices[0].colour = 0;
vertices[1].colour = 4;
vertices[2].colour = 4;
vertices[3].colour = 0;
colours[0] = 0xffffffff;
colours[1] = 0xffffffff;

View File

@ -5219,7 +5219,7 @@ glabel var7f1acd8c
// // 7b8
// vertices = gfxAllocateVertices(4);
//
// vertices[0].s = vertices[1].s = vertices[2].s = vertices[3].s = 0;
// vertices[0].colour = vertices[1].colour = vertices[2].colour = vertices[3].colour = 0;
//
// vertices[0].unk08 = 0;
// vertices[0].unk0a = 0;
@ -5887,12 +5887,12 @@ glabel var7f1acd90
//
// vertices = gfxAllocateVertices(6);
//
// vertices[0].s = 0;
// vertices[1].s = 0;
// vertices[2].s = 0;
// vertices[3].s = 0;
// vertices[4].s = 4;
// vertices[5].s = 4;
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
// vertices[4].colour = 4;
// vertices[5].colour = 4;
//
// vertices[0].unk08 = 0;
// vertices[0].unk0a = 0;

View File

@ -957,7 +957,7 @@ void func0f0e0cbc(s32 arg0, s32 arg1, s16 arg2, s16 arg3, struct gfxvtx *vertex,
vertex->y = arg3 * 10;
vertex->z = -10;
vertex->s = 0;
vertex->colour = 0;
mtx4TransformVecInPlace(arg5, &sp24);
@ -2423,6 +2423,79 @@ glabel menugfxRenderGradient
/* f0e1fa8: 27bd0060 */ addiu $sp,$sp,0x60
);
// Mismatch: Goal has the if statement with empty contents
//Gfx *menugfxRenderGradient(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, u32 colourstart, u32 colourmid, u32 colourend)
//{
// u32 *colours = gfxAllocateColours(3);
// struct gfxvtx *vertices = gfxAllocateVertices(6);
// s32 ymid;
//
// gDPPipeSync(gdl++);
// gDPSetCycleType(gdl++, G_CYC_1CYCLE);
// gDPSetAlphaCompare(gdl++, G_AC_NONE);
// gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI);
// gSPClearGeometryMode(gdl++, G_CULL_BOTH);
// gDPSetTextureFilter(gdl++, G_TF_BILERP);
//
// func0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL);
//
// gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
//
// ymid = (y1 + y2) / 2;
//
// if (x2 - x1 < ymid * 2) {
// ymid <<= 0;
// }
//
// // 0 = top left
// // 1 = top right
// // 2 = bottom right
// // 3 = bottom left
// // 4 = mid left
// // 5 = mid right
//
// vertices[0].z = -10;
// vertices[1].z = -10;
// vertices[2].z = -10;
// vertices[3].z = -10;
// vertices[4].z = -10;
// vertices[5].z = -10;
//
// vertices[0].x = x1 * 10;
// vertices[0].y = y1 * 10;
// vertices[0].colour = 0;
//
// vertices[1].x = x2 * 10;
// vertices[1].y = y1 * 10;
// vertices[1].colour = 0;
//
// vertices[2].x = x2 * 10;
// vertices[2].y = y2 * 10;
// vertices[2].colour = 4;
//
// vertices[3].x = x1 * 10;
// vertices[3].y = y2 * 10;
// vertices[3].colour = 4;
//
// vertices[4].x = x1 * 10;
// vertices[4].y = ymid * 10;
// vertices[4].colour = 8;
//
// vertices[5].x = x2 * 10;
// vertices[5].y = ymid * 10;
// vertices[5].colour = 8;
//
// colours[0] = colourstart;
// colours[2] = colourmid;
// colours[1] = colourend;
//
// gDPSetColorArray(gdl++, osVirtualToPhysical(colours), 3);
// gDPSetVerticeArray(gdl++, osVirtualToPhysical(vertices), 6);
// gDPTri4(gdl++, 0, 1, 5, 5, 4, 0, 2, 3, 4, 4, 5, 2);
//
// return gdl;
//}
GLOBAL_ASM(
glabel func0f0e1fac
/* f0e1fac: 27bdffa0 */ addiu $sp,$sp,-96
@ -2719,15 +2792,15 @@ Gfx *gfxDrawTri2(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, u32 colour1, u32 colo
vertices[3].z = -10;
if (!arg7) {
vertices[0].s = 0;
vertices[1].s = 4;
vertices[2].s = 4;
vertices[3].s = 0;
vertices[0].colour = 0;
vertices[1].colour = 4;
vertices[2].colour = 4;
vertices[3].colour = 0;
} else {
vertices[0].s = 0;
vertices[1].s = 0;
vertices[2].s = 4;
vertices[3].s = 4;
vertices[0].colour = 0;
vertices[1].colour = 0;
vertices[2].colour = 4;
vertices[3].colour = 4;
}
colours[0] = colour1;
@ -3446,9 +3519,9 @@ Gfx *gfxDrawEquTri(Gfx *gdl, s32 x, s32 y, s32 size, s32 direction, u32 colour1,
vertices[2].y = y * 10 + rely - halfheight;
vertices[2].z = -10;
vertices[0].s = 0;
vertices[1].s = 4;
vertices[2].s = 4;
vertices[0].colour = 0;
vertices[1].colour = 4;
vertices[2].colour = 4;
colours[0] = colour1;
colours[1] = colour2;

View File

@ -2822,7 +2822,7 @@ Gfx *nbombCreateGdl(void)
vertices[0].z = 0;
vertices[0].unk0a = 0;
vertices[0].s = 0;
vertices[0].colour = 0;
vertices[0].y = vertices[0].z;
vertices[0].x = vertices[0].z;
vertices[0].unk08 = vertices[0].unk0a;
@ -5302,10 +5302,10 @@ const u32 var7f1a7eac[] = {0x00000090};
// vertices[2].unk0a = sp72 + 640;
// vertices[3].unk08 = sVar15;
// vertices[3].unk0a = sp72 + 640;
// vertices[0].s = 0;
// vertices[1].s = 0;
// vertices[2].s = 0;
// vertices[3].s = 0;
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
// vertices[1].unk0a = sp72;
// vertices[4].unk0a = spfa;
// vertices[4].unk08 = sp76;
@ -5313,10 +5313,10 @@ const u32 var7f1a7eac[] = {0x00000090};
// vertices[6].unk08 = sp76 + 640;
// vertices[6].unk0a = spfa + 480;
// vertices[7].unk0a = spfa + 480;
// vertices[4].s = 0;
// vertices[5].s = 0;
// vertices[6].s = 0;
// vertices[7].s = 0;
// vertices[4].colour = 0;
// vertices[5].colour = 0;
// vertices[6].colour = 0;
// vertices[7].colour = 0;
// vertices[5].unk0a = spfa;
// vertices[7].unk08 = sp76;
//

View File

@ -51925,10 +51925,10 @@ glabel var7f1aa824
// colours[2] = screen->blue;
// colours[3] = screen->alpha;
//
// vertices[0].s = 0;
// vertices[1].s = 0;
// vertices[2].s = 0;
// vertices[3].s = 0;
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
//
// if (screen->alpha < 255) {
// arg5 = 2;

View File

@ -8013,14 +8013,14 @@ glabel sightRenderMaian
// vertices[7].y = innerbottom * 10;
// vertices[7].z = -10;
//
// vertices[0].s = 0;
// vertices[1].s = 0;
// vertices[2].s = 0;
// vertices[3].s = 0;
// vertices[4].s = 4;
// vertices[5].s = 4;
// vertices[6].s = 4;
// vertices[7].s = 4;
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
// vertices[4].colour = 4;
// vertices[5].colour = 4;
// vertices[6].colour = 4;
// vertices[7].colour = 4;
//
// colours[0] = 0x00ff000f;
// colours[1] = hasprop ? colour : 0x00ff0044;

View File

@ -6451,7 +6451,7 @@ struct gfxvtx {
/*0x02*/ s16 y;
/*0x04*/ s16 z;
/*0x06*/ u8 flags;
/*0x07*/ u8 s;
/*0x07*/ u8 colour;
/*0x08*/ s16 unk08;
/*0x0a*/ s16 unk0a;
};