Fix Metal Mario

This commit is contained in:
FluffaMario 2026-05-20 05:16:28 -05:00
parent c20ae6f129
commit 26fcd638e3

View file

@ -37,6 +37,11 @@ static const Lights1 mario_brown2_lights_group = gdSPDefLights1(
0x73, 0x06, 0x00, 0x28, 0x28, 0x28
);
static const Lights1 mario_metal_lights_group = gdSPDefLights1(
0x7f, 0x7f, 0x7f,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
ROM_ASSET_LOAD_TEXTURE(mario_texture_metal, "actors/mario/mario_metal.rgba16.inc.c", 0x00114750, 78432, 0x00000090, 4096);
ROM_ASSET_LOAD_TEXTURE(mario_texture_yellow_button, "actors/mario/mario_overalls_button.rgba16.inc.c", 0x00114750, 78432, 0x00001090, 2048);
@ -171,11 +176,12 @@ const Gfx mario_butt[] = {
const Gfx mario_metal_butt[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
@ -488,11 +494,12 @@ const Gfx mario_left_thigh[] = {
const Gfx mario_metal_left_thigh[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
@ -2754,12 +2761,15 @@ const Gfx mario_metal_right_hand_cap_shared_dl[] = {
// 0x0401B278 - 0x0401B2D0
const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = {
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPPipeSync(),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsSPClearGeometryMode(G_CULL_BACK),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_1),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -2768,12 +2778,6 @@ const Gfx mario_metal_right_hand_cap_shared_dl_wings[] = {
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(mario_right_hand_cap_wings_half_1_dl),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_2),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -2971,12 +2975,13 @@ const Gfx mario_cap_wings_transparent[] = {
const Gfx mario_metal_cap_wings[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_1),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -2985,12 +2990,6 @@ const Gfx mario_metal_cap_wings[] = {
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(mario_wings_half_1_dl),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_2),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -3002,11 +3001,12 @@ const Gfx mario_metal_cap_wings[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
@ -3022,12 +3022,13 @@ const Gfx mario_metal_cap_wings[] = {
const Gfx mario_metal_cap_wings_transparent[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_1),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -3036,12 +3037,6 @@ const Gfx mario_metal_cap_wings_transparent[] = {
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(mario_wings_half_1_dl),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 0, 0, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_wings_half_2),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
@ -3053,11 +3048,12 @@ const Gfx mario_metal_cap_wings_transparent[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT),
gsSPLight(&mario_metal_lights_group.l, 1),
gsSPLight(&mario_metal_lights_group.a, 2),
gsSPCopyLightEXT(2, 15),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, COMBINED, COMBINED, 0, ENVIRONMENT, 0),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(4032, 1984, 0, 0, 1),
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0),
gsDPSetEnvRGB(127, 127, 127),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),