diff --git a/actors/luigi_cap/model.inc.c b/actors/luigi_cap/model.inc.c index 9647d74b..6cb07c22 100644 --- a/actors/luigi_cap/model.inc.c +++ b/actors/luigi_cap/model.inc.c @@ -368,7 +368,6 @@ const Gfx luigi_cap_seg3_dl_03023160[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPDisplayList(luigi_cap_seg3_dl_03022D10), gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index c8bef3c3..465aa52f 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -397,7 +397,6 @@ const Gfx mario_cap_seg3_dl_03023160[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022D10), gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), diff --git a/actors/wario/custom_wario_sideburn.rgba16.png b/actors/wario/custom_wario_sideburn.rgba16.png deleted file mode 100644 index d74c4ad2..00000000 Binary files a/actors/wario/custom_wario_sideburn.rgba16.png and /dev/null differ diff --git a/actors/wario/custom_wario_sideburn.rgba32.png b/actors/wario/custom_wario_sideburn.rgba32.png new file mode 100644 index 00000000..30034c31 Binary files /dev/null and b/actors/wario/custom_wario_sideburn.rgba32.png differ diff --git a/actors/wario/custom_wario_sideburn_add.rgba32.png b/actors/wario/custom_wario_sideburn_add.rgba32.png new file mode 100644 index 00000000..101d9802 Binary files /dev/null and b/actors/wario/custom_wario_sideburn_add.rgba32.png differ diff --git a/actors/wario/custom_wario_skin.rgba32.png b/actors/wario/custom_wario_skin.rgba32.png new file mode 100644 index 00000000..29614c10 Binary files /dev/null and b/actors/wario/custom_wario_skin.rgba32.png differ diff --git a/actors/wario/geo.inc.c b/actors/wario/geo.inc.c index 1fdaa137..5345d97d 100644 --- a/actors/wario/geo.inc.c +++ b/actors/wario/geo.inc.c @@ -1,3 +1,4 @@ +#include "geo_header.h" // Normal Mario Geo const GeoLayout wario_geo_face_and_wings[] = { @@ -8,9 +9,7 @@ const GeoLayout wario_geo_face_and_wings[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ASM(2, geo_mirror_mario_backface_culling), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_on_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_on), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -27,9 +26,7 @@ const GeoLayout wario_geo_face_and_wings[] = { GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ASM(2, geo_mirror_mario_backface_culling), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_off_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_off), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -191,7 +188,7 @@ const GeoLayout wario_vanish_geo_face_and_wings[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_on_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_on), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -208,7 +205,7 @@ const GeoLayout wario_vanish_geo_face_and_wings[] = { GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_off_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_off), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -671,22 +668,30 @@ const GeoLayout wario_geo_load_body[] = { // This last geo is used to load all of Mario Geo in the Level Scripts const GeoLayout wario_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), - GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), - GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), - GEO_ASM(0, geo_mirror_mario_backface_culling), - GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100), GEO_OPEN_NODE(), - GEO_BRANCH(1, wario_geo_load_body), + GEO_SCALE(0x00, 16384), + GEO_OPEN_NODE(), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE << 2, geo_mirror_mario_backface_culling), + GEO_ASM(LAYER_ALPHA << 2, geo_mirror_mario_backface_culling), + GEO_ASM(LAYER_TRANSPARENT << 2, geo_mirror_mario_backface_culling), + GEO_ASM(0, geo_mirror_mario_set_alpha), + GEO_OPEN_NODE(), + GEO_BRANCH(1, wario_geo_load_body), + GEO_CLOSE_NODE(), + GEO_ASM((LAYER_OPAQUE << 2) | 1, geo_mirror_mario_backface_culling), + GEO_ASM((LAYER_ALPHA << 2) | 1, geo_mirror_mario_backface_culling), + GEO_ASM((LAYER_TRANSPARENT << 2) | 1, geo_mirror_mario_backface_culling), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ASM(1, geo_mirror_mario_backface_culling), - GEO_CLOSE_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_material_revert_render_settings), - GEO_DISPLAY_LIST(LAYER_ALPHA, wario_material_revert_render_settings), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/wario/geo_header.h b/actors/wario/geo_header.h index 32e69648..002b63cc 100644 --- a/actors/wario/geo_header.h +++ b/actors/wario/geo_header.h @@ -58,7 +58,7 @@ extern const Gfx wario_face_back_hair_cap_on_dl[]; extern const Gfx wario_nose_cap_on_dl[]; extern const Gfx wario_mustache_cap_on_dl[]; extern const Gfx wario_mustache_cap_on_dead_dl[]; -extern const Gfx wario_hair_sideburn_decal_cap_on_dl[]; +extern const Gfx wario_hair_sideburn_decal_cap_on[]; extern const Gfx wario_face_cap_on_dl[]; extern const Gfx wario_cap_on_eyes_front[]; extern const Gfx wario_cap_on_eyes_half_closed[]; @@ -77,7 +77,7 @@ extern const Gfx wario_face_hair_cap_off_dl[]; extern const Gfx wario_nose_cap_off_dl[]; extern const Gfx wario_mustache_cap_off_dl[]; extern const Gfx wario_mustache_cap_off_dead_dl[]; -extern const Gfx wario_hair_sideburn_decal_cap_off_dl[]; +extern const Gfx wario_hair_sideburn_decal_cap_off[]; extern const Gfx wario_face_cap_off_dl[]; extern const Gfx wario_cap_off_eyes_front[]; extern const Gfx wario_cap_off_eyes_half_closed[]; diff --git a/actors/wario/model.inc.c b/actors/wario/model.inc.c index 69e8b35c..5a0077ac 100644 --- a/actors/wario/model.inc.c +++ b/actors/wario/model.inc.c @@ -39,7 +39,8 @@ static const Lights1 wario_black_lights_group = gdSPDefLights1( ); #include "actors/mario/mario_externs.h" -#define wario_texture_metal mario_texture_metal +#define wario_texture_metal_shade mario_texture_metal_shade +#define wario_texture_metal_light mario_texture_metal_light #define wario_texture_wings_half_1 mario_texture_wings_half_1 #define wario_texture_wings_half_2 mario_texture_wings_half_2 #define wario_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 @@ -55,7 +56,15 @@ ALIGNED8 const Texture wario_texture_w_logo[] = { }; ALIGNED8 const Texture wario_texture_hair_sideburn[] = { -#include "actors/wario/custom_wario_sideburn.rgba16.inc.c" +#include "actors/wario/custom_wario_sideburn.rgba32.inc.c" +}; + +ALIGNED8 const Texture wario_texture_add_sideburn[] = { +#include "actors/wario/custom_wario_sideburn_add.rgba32.inc.c" +}; + +ALIGNED8 const Texture wario_texture_skin_sideburn[] = { +#include "actors/wario/custom_wario_skin.rgba16.inc.c" }; ALIGNED8 const Texture wario_texture_mouth[] = { @@ -267,12 +276,22 @@ const Gfx wario_butt[] = { }; const Gfx wario_metal_butt[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPLoadTextureBlock(wario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_texture_metal_shade), + 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, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_butt_dl), gsSPEndDisplayList(), }; @@ -354,6 +373,8 @@ const Gfx wario_left_arm_shared_dl[] = { }; const Gfx wario_left_arm[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&wario_green_lights_group.a, 2), gsSPDisplayList(wario_left_arm_shared_dl), gsSPEndDisplayList(), @@ -512,6 +533,8 @@ const Gfx wario_left_hand_closed_shared_dl[] = { }; const Gfx wario_left_hand_closed[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(wario_left_hand_closed_shared_dl), gsSPEndDisplayList(), @@ -591,6 +614,8 @@ const Gfx wario_right_arm_shared_dl[] = { }; const Gfx wario_right_arm[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&wario_green_lights_group.a, 2), gsSPDisplayList(wario_right_arm_shared_dl), gsSPEndDisplayList(), @@ -746,6 +771,8 @@ const Gfx wario_right_hand_closed_dl[] = { }; const Gfx wario_right_hand_closed[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(wario_right_hand_closed_dl), gsSPEndDisplayList(), @@ -830,12 +857,22 @@ const Gfx wario_left_thigh[] = { }; const Gfx wario_metal_left_thigh[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPLoadTextureBlock(wario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_texture_metal_shade), + 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, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -962,6 +999,8 @@ const Gfx wario_left_foot_shared_dl[] = { }; const Gfx wario_left_foot[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(wario_left_foot_shared_dl), gsSPEndDisplayList(), @@ -1029,6 +1068,8 @@ const Gfx wario_right_thigh_shared_dl[] = { }; const Gfx wario_right_thigh[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&wario_blue_lights_group.a, 2), gsSPDisplayList(wario_right_thigh_shared_dl), gsSPEndDisplayList(), @@ -1168,6 +1209,8 @@ const Gfx wario_right_foot_dl[] = { }; const Gfx wario_right_foot[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(wario_right_foot_dl), gsDPPipeSync(), @@ -2092,7 +2135,26 @@ const Gfx wario_mustache_cap_on_dead_dl[] = { gsSPEndDisplayList(), }; -const Gfx wario_hair_sideburn_decal_cap_on_dl[] = { +const Gfx wario_hair_sideburn_decal_cap_on[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPLight(&wario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 11), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, wario_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_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, 1023, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, wario_texture_add_sideburn), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 1023, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(1, 0, 0, 124, 124), + gsSPDisplayList(wario_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), @@ -2100,10 +2162,10 @@ const Gfx wario_hair_sideburn_decal_cap_on_dl[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_texture_hair_sideburn), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(HAIR), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(wario_hair_sideburn_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -2112,7 +2174,6 @@ const Gfx wario_hair_sideburn_decal_cap_on_dl[] = { }; const Gfx wario_face_cap_on_dl[] = { - gsSPDisplayList(wario_hair_sideburn_cap_on_dl), gsSPDisplayList(wario_face_part_cap_on_dl), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(wario_face_cap_dl), @@ -2130,7 +2191,6 @@ const Gfx wario_face_cap_on_dl[] = { }; const Gfx wario_face_cap_on_dead_dl[] = { - gsSPDisplayList(wario_hair_sideburn_cap_on_dl), gsSPDisplayList(wario_face_part_cap_on_dl), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(wario_face_cap_dl), @@ -3022,7 +3082,26 @@ const Gfx wario_mustache_cap_off_dead_dl[] = { gsSPEndDisplayList(), }; -const Gfx wario_hair_sideburn_decal_cap_off_dl[] = { +const Gfx wario_hair_sideburn_decal_cap_off[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsSPLight(&wario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 11), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, wario_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_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, 1023, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, wario_texture_add_sideburn), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 1023, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(1, 0, 0, 124, 124), + gsSPDisplayList(wario_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), @@ -3030,10 +3109,10 @@ const Gfx wario_hair_sideburn_decal_cap_off_dl[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_texture_hair_sideburn), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(HAIR), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(wario_hair_sideburn_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -3042,7 +3121,6 @@ const Gfx wario_hair_sideburn_decal_cap_off_dl[] = { }; const Gfx wario_face_cap_off_dl[] = { - gsSPDisplayList(wario_hair_sideburn_cap_off_dl), gsSPDisplayList(wario_face_part_cap_off_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(wario_face_hair_cap_off_dl), @@ -3058,7 +3136,6 @@ const Gfx wario_face_cap_off_dl[] = { }; const Gfx wario_face_cap_off_dead_dl[] = { - gsSPDisplayList(wario_hair_sideburn_cap_off_dl), gsSPDisplayList(wario_face_part_cap_off_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(wario_face_hair_cap_off_dl), @@ -3417,6 +3494,8 @@ const Gfx wario_left_hand_open_shared_dl[] = { }; const Gfx wario_left_hand_open[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(wario_left_hand_open_shared_dl), gsSPEndDisplayList(), @@ -3559,6 +3638,8 @@ const Gfx wario_right_hand_open_dl[] = { }; const Gfx wario_right_hand_open[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(wario_right_hand_open_dl), gsSPEndDisplayList(), @@ -3821,6 +3902,7 @@ const Gfx wario_right_hand_cap_bottom_dl[] = { }; const Gfx wario_right_hand_cap_dl[] = { + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(wario_right_hand_cap_top_dl), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in wario_misc.c gsSPDisplayList(wario_right_hand_cap_hand_position_dl), @@ -3842,27 +3924,27 @@ const Gfx wario_right_hand_cap_dl[] = { }; static const Vtx wario_right_hand_cap_wings_half_1_dl_vertex[10] = { - {{{368, 146, 7}, 0, {990, 0}, {0xBE, 0x66, 0xDA, 0xFE}}}, - {{{166, 37, 68}, 0, {0, 2012}, {0xBE, 0x66, 0xDA, 0xFE}}}, - {{{212, 96, 143}, 0, {990, 2012}, {0xBE, 0x66, 0xDA, 0xFE}}}, - {{{368, 146, 7}, 0, {990, 0}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{322, 87, -67}, 0, {0, 0}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{166, 37, 68}, 0, {0, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{178, -177, 128}, 0, {990, 2012}, {0xA7, 0xB3, 0xCF, 0xFE}}}, - {{{149, -100, 60}, 0, {0, 2012}, {0xA7, 0xB3, 0xCF, 0xFE}}}, - {{{319, -248, -14}, 0, {990, 0}, {0xA7, 0xB3, 0xCF, 0xFE}}}, - {{{290, -171, -81}, 0, {0, 0}, {0xA7, 0xB3, 0xCF, 0xFE}}}, + {{{368, 146, 7}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{166, 37, 68}, 0, {0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{212, 96, 143}, 0, {990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{368, 146, 7}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{322, 87, -67}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{166, 37, 68}, 0, {0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{178, -177, 128}, 0, {990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{149, -100, 60}, 0, {0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{319, -248, -14}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{290, -171, -81}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; static const Vtx wario_right_hand_cap_wings_half_2_dl_vertex[8] = { - {{{414, 206, 82}, 0, {990, 0}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{212, 96, 143}, 0, {0, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{258, 156, 218}, 0, {990, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{368, 146, 7}, 0, {0, 0}, {0xBD, 0x65, 0xD9, 0xFE}}}, - {{{178, -177, 128}, 0, {0, 2012}, {0xA8, 0xB3, 0xCF, 0xFE}}}, - {{{319, -248, -14}, 0, {0, 0}, {0xA8, 0xB3, 0xCF, 0xFE}}}, - {{{349, -325, 53}, 0, {990, 0}, {0xA8, 0xB3, 0xCF, 0xFE}}}, - {{{207, -253, 195}, 0, {990, 2012}, {0xA8, 0xB3, 0xCF, 0xFE}}}, + {{{414, 206, 82}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{212, 96, 143}, 0, {0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{258, 156, 218}, 0, {990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{368, 146, 7}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{178, -177, 128}, 0, {0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{319, -248, -14}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{349, -325, 53}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{207, -253, 195}, 0, {990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, }; const Gfx wario_right_hand_cap_wings_half_1_dl[] = { @@ -3886,7 +3968,7 @@ const Gfx wario_right_hand_cap_wings_half_2_dl[] = { const Gfx wario_right_hand_cap_wings_intial_dl[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPLight(&wario_white_lights_group.l, 1), @@ -3900,7 +3982,7 @@ const Gfx wario_right_hand_cap_wings_intial_dl[] = { const Gfx wario_right_hand_cap_wings_transparent_intial_dl[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPLight(&wario_white_lights_group.l, 1), @@ -3915,7 +3997,7 @@ const Gfx wario_right_hand_cap_wings_end_dl[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; @@ -4210,23 +4292,25 @@ const Gfx wario_right_hand_peace_shared_dl[] = { }; const Gfx wario_right_hand_peace[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(wario_right_hand_peace_shared_dl), gsSPEndDisplayList(), }; static const Vtx wario_wings_half_1_dl_vertex[] = { - {{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, + {{{ -105, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -105, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; static const Vtx wario_wings_half_2_dl_vertex[] = { - {{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, - {{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}}, + {{{ 0, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 106, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 0, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 106, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, }; const Gfx wario_wings_half_1_dl[] = { @@ -4245,7 +4329,7 @@ const Gfx wario_wings_half_2_dl[] = { const Gfx wario_cap_wings[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), @@ -4264,7 +4348,7 @@ const Gfx wario_cap_wings[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; @@ -4272,7 +4356,7 @@ const Gfx wario_cap_wings[] = { const Gfx wario_cap_wings_transparent[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), @@ -4291,7 +4375,7 @@ const Gfx wario_cap_wings_transparent[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; @@ -4299,7 +4383,7 @@ const Gfx wario_cap_wings_transparent[] = { const Gfx wario_metal_cap_wings[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), @@ -4318,22 +4402,22 @@ const Gfx wario_metal_cap_wings[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; // 0x0401CC28 - 0x0401CD20 const Gfx wario_metal_cap_wings_transparent[] = { gsDPPipeSync(), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), + gsSPLight(&wario_white_lights_group.l, 1), + gsSPLight(&wario_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -4344,10 +4428,8 @@ const Gfx wario_metal_cap_wings_transparent[] = { gsSPDisplayList(wario_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), - gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), - gsDPLoadTextureBlock(wario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; diff --git a/actors/wario/wario_externs.h b/actors/wario/wario_externs.h new file mode 100644 index 00000000..2f7454f6 --- /dev/null +++ b/actors/wario/wario_externs.h @@ -0,0 +1,15 @@ +extern ALIGNED8 const Texture wario_texture_white_button[]; +extern ALIGNED8 const Texture wario_texture_w_logo[]; +extern ALIGNED8 const Texture wario_texture_hair_sideburn[]; +extern ALIGNED8 const Texture wario_texture_add_sideburn[]; +extern ALIGNED8 const Texture wario_texture_skin_sideburn[]; +extern ALIGNED8 const Texture wario_texture_mouth[]; +extern ALIGNED8 const Texture wario_texture_mouth_dead[]; +extern ALIGNED8 const Texture wario_texture_eyes_front[]; +extern ALIGNED8 const Texture wario_texture_eyes_half_closed[]; +extern ALIGNED8 const Texture wario_texture_eyes_closed[]; +extern ALIGNED8 const Texture wario_texture_eyes_right[]; +extern ALIGNED8 const Texture wario_texture_eyes_left[]; +extern ALIGNED8 const Texture wario_texture_eyes_up[]; +extern ALIGNED8 const Texture wario_texture_eyes_down[]; +extern ALIGNED8 const Texture wario_texture_eyes_dead[]; \ No newline at end of file diff --git a/actors/wario_cap/custom_wario_cap_logo.rgba16.png b/actors/wario_cap/custom_wario_cap_logo.rgba16.png deleted file mode 100644 index 724ac9fd..00000000 Binary files a/actors/wario_cap/custom_wario_cap_logo.rgba16.png and /dev/null differ diff --git a/actors/wario_cap/geo.inc.c b/actors/wario_cap/geo.inc.c index 3083e114..9c8a1044 100644 --- a/actors/wario_cap/geo.inc.c +++ b/actors/wario_cap/geo.inc.c @@ -1,84 +1,124 @@ +#include "geo_header.h" // 0x16000CA4 const GeoLayout warios_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022F48), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022F48), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000CF0 const GeoLayout warios_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022FF8), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022FF8), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000D3C const GeoLayout warios_wing_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_030230B0), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023160), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_030230B0), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023160), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000DA8 const GeoLayout warios_winged_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_03023108), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023298), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_03023108), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023298), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/wario_cap/geo_header.h b/actors/wario_cap/geo_header.h new file mode 100644 index 00000000..d51a692e --- /dev/null +++ b/actors/wario_cap/geo_header.h @@ -0,0 +1,19 @@ +extern const GeoLayout warios_cap_geo[]; +extern const GeoLayout warios_metal_cap_geo[]; +extern const GeoLayout warios_wing_cap_geo[]; +extern const GeoLayout warios_winged_metal_cap_geo[]; +extern const Gfx wario_cap_seg3_dl_03022B30[]; +extern const Gfx wario_cap_seg3_dl_03022B68[]; +extern const Gfx wario_cap_seg3_dl_03022CC8[]; +extern const Gfx wario_cap_seg3_dl_03022D10[]; +extern const Gfx wario_cap_seg3_dl_03022E78[]; +extern const Gfx wario_cap_seg3_dl_03022EA8[]; +extern const Gfx wario_cap_seg3_dl_03022ED8[]; +extern const Gfx wario_cap_seg3_dl_03022F20[]; +extern const Gfx wario_cap_seg3_dl_03022F48[]; +extern const Gfx wario_cap_seg3_dl_03022FF8[]; +extern const Gfx wario_cap_seg3_dl_030230B0[]; +extern const Gfx wario_cap_seg3_dl_03023108[]; +extern const Gfx wario_cap_seg3_dl_03023160[]; +extern const Gfx wario_cap_seg3_dl_03023298[]; +extern const Gfx wario_cap_material_revert_render_settings[]; \ No newline at end of file diff --git a/actors/wario_cap/model.inc.c b/actors/wario_cap/model.inc.c index fb5bffe2..dd5f18d5 100644 --- a/actors/wario_cap/model.inc.c +++ b/actors/wario_cap/model.inc.c @@ -18,19 +18,21 @@ static const Lights1 wario_cap_seg3_lights_0301CF38 = gdSPDefLights1( 0xff, 0xbd, 0x00, 0x28, 0x28, 0x28 ); -#include "actors/mario/mario_externs.h" -#include "actors/mario_cap/mario_cap_externs.h" -#define wario_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50 -#define wario_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750 -#define wario_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750 -#define wario_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750 -#define wario_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750 -#define wario_cap_texture_cap_inside mario_texture_cap_inside +static const Lights1 wario_cap_black_lights_group = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0301DF50 -ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[] = { -#include "actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c" -}; +#include "actors/mario/mario_externs.h" +#include "actors/wario/wario_externs.h" +#define wario_cap_texture_metal_shade mario_texture_metal_shade +#define wario_cap_texture_metal_light mario_texture_metal_light +#define wario_cap_texture_w_logo wario_texture_w_logo +#define wario_cap_texture_wings_half_1 mario_texture_wings_half_1 +#define wario_cap_texture_wings_half_2 mario_texture_wings_half_2 +#define wario_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 +#define wario_cap_texture_metal_wings_half_2 mario_texture_metal_wings_half_2 +#define wario_cap_texture_cap_inside mario_texture_cap_inside // 0x03022750 static const Vtx wario_cap_seg3_vertex_03022750[] = { @@ -183,30 +185,30 @@ const Gfx wario_cap_seg3_dl_03022D10[] = { // 0x03022D38 static const Vtx wario_cap_seg3_vertex_03022D38[] = { - {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, + {{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 131, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 138, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -137, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -130, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x03022DF8 static const Vtx wario_cap_seg3_vertex_03022DF8[] = { - {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, + {{{ 268, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 199, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 138, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 207, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -206, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -137, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -267, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x03022E78 - 0x03022EA8 @@ -256,7 +258,7 @@ const Gfx wario_cap_seg3_dl_03022F48[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_w_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), @@ -274,12 +276,22 @@ const Gfx wario_cap_seg3_dl_03022F48[] = { // 0x03022FF8 - 0x030230B0 const Gfx wario_cap_seg3_dl_03022FF8[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPLoadTextureBlock(wario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_cap_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_shade), + 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, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -295,11 +307,11 @@ const Gfx wario_cap_seg3_dl_03022FF8[] = { // 0x030230B0 - 0x03023108 const Gfx wario_cap_seg3_dl_030230B0[] = { gsSPDisplayList(wario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301E750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301F750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -310,11 +322,11 @@ const Gfx wario_cap_seg3_dl_030230B0[] = { // 0x03023108 - 0x03023160 const Gfx wario_cap_seg3_dl_03023108[] = { gsSPDisplayList(wario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03020750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03021750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -331,7 +343,7 @@ const Gfx wario_cap_seg3_dl_03023160[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_w_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), @@ -347,11 +359,11 @@ const Gfx wario_cap_seg3_dl_03023160[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301E750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301F750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -366,18 +378,22 @@ const Gfx wario_cap_seg3_dl_03023160[] = { // 0x03023298 - 0x030233D0 const Gfx wario_cap_seg3_dl_03023298[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301CF50), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsDPPipeSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_cap_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_shade), + 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, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -389,11 +405,11 @@ const Gfx wario_cap_seg3_dl_03023298[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03020750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03021750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -405,3 +421,27 @@ const Gfx wario_cap_seg3_dl_03023298[] = { gsDPSetEnvColor(255, 255, 255, 255), gsSPEndDisplayList(), }; + +const Gfx wario_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + 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, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(1, 0, 0, 124, 124), + + gsSPEndDisplayList(), +}; diff --git a/data/dynos_mgr_builtin_externs.h b/data/dynos_mgr_builtin_externs.h index 0c40bb6a..3fcbd8f4 100644 --- a/data/dynos_mgr_builtin_externs.h +++ b/data/dynos_mgr_builtin_externs.h @@ -1678,6 +1678,8 @@ extern ALIGNED8 const Texture toad_player_texture_eyes_dead[]; extern ALIGNED8 const Texture wario_texture_white_button[]; extern ALIGNED8 const Texture wario_texture_w_logo[]; extern ALIGNED8 const Texture wario_texture_hair_sideburn[]; +extern ALIGNED8 const Texture wario_texture_add_sideburn[]; +extern ALIGNED8 const Texture wario_texture_skin_sideburn[]; extern ALIGNED8 const Texture wario_texture_mouth[]; extern ALIGNED8 const Texture wario_texture_mouth_dead[]; extern ALIGNED8 const Texture wario_texture_eyes_front[]; @@ -1688,7 +1690,6 @@ extern ALIGNED8 const Texture wario_texture_eyes_left[]; extern ALIGNED8 const Texture wario_texture_eyes_up[]; extern ALIGNED8 const Texture wario_texture_eyes_down[]; extern ALIGNED8 const Texture wario_texture_eyes_dead[]; -extern ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[]; extern ALIGNED8 const Texture waluigi_custom_waluigi_overalls_button_rgba16[]; extern ALIGNED8 const Texture waluigi_custom_waluigi_metal_rgba16[]; diff --git a/data/dynos_mgr_builtin_tex.cpp b/data/dynos_mgr_builtin_tex.cpp index e71d4c28..e3114f32 100644 --- a/data/dynos_mgr_builtin_tex.cpp +++ b/data/dynos_mgr_builtin_tex.cpp @@ -1109,7 +1109,9 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = { define_builtin_tex(toad_player_texture_eyes_dead, "actors/toad_player/custom_toad_eyes_dead.rgba32.png", 32, 32, 16), define_builtin_tex(wario_texture_white_button, "actors/wario/custom_wario_overalls_button.rgba16.png", 32, 32, 16), define_builtin_tex(wario_texture_w_logo, "actors/wario/custom_wario_logo.rgba16.png", 32, 32, 16), - define_builtin_tex(wario_texture_hair_sideburn, "actors/wario/custom_wario_sideburn.rgba16.png", 32, 32, 16), + define_builtin_tex(wario_texture_hair_sideburn, "actors/wario/custom_wario_sideburn.rgba32.png", 32, 32, 16), + define_builtin_tex(wario_texture_add_sideburn, "actors/wario/custom_wario_sideburn_add.rgba32.png", 32, 32, 16), + define_builtin_tex(wario_texture_skin_sideburn, "actors/wario/custom_wario_skin.rgba16.png", 32, 32, 16), define_builtin_tex(wario_texture_mouth, "actors/wario/custom_wario_mouth.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_mouth_dead, "actors/wario/custom_wario_mouth_dead.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_front, "actors/wario/custom_wario_eyes_center.rgba16.png", 64, 32, 16), @@ -1120,7 +1122,6 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = { define_builtin_tex(wario_texture_eyes_up, "actors/wario/custom_wario_eyes_up_unused.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_down, "actors/wario/custom_wario_eyes_down_unused.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_dead, "actors/wario/custom_wario_eyes_dead.rgba16.png", 64, 32, 16), - define_builtin_tex(wario_cap_seg3_texture_0301DF50, "actors/wario_cap/custom_wario_cap_logo.rgba16.png", 32, 32, 16), // Waluigi define_builtin_tex(waluigi_custom_waluigi_overalls_button_rgba16, "actors/waluigi/custom_waluigi_overalls_button.rgba16.png", 32, 32, 16),