diff --git a/actors/common1.h b/actors/common1.h index 2e1db49c..2628742d 100644 --- a/actors/common1.h +++ b/actors/common1.h @@ -153,26 +153,7 @@ extern const GeoLayout leaves_geo[]; extern const Gfx leaves_seg3_dl_0301CDE0[]; // mario_cap -extern const GeoLayout marios_cap_geo[]; -extern const GeoLayout marios_metal_cap_geo[]; -extern const GeoLayout marios_wing_cap_geo[]; -extern const GeoLayout marios_winged_metal_cap_geo[]; -extern const Gfx mario_cap_seg3_dl_03022B30[]; -extern const Gfx mario_cap_seg3_dl_03022B68[]; -extern const Gfx mario_cap_seg3_dl_03022CC8[]; -extern const Gfx mario_cap_seg3_dl_03022D10[]; -extern const Gfx mario_cap_seg3_dl_03022E78[]; -extern const Gfx mario_cap_seg3_dl_03022EA8[]; -extern const Gfx mario_cap_seg3_dl_03022ED8[]; -extern const Gfx mario_cap_seg3_dl_03022F20[]; -extern const Gfx mario_cap_m_logo_decal_dl[]; -extern const Gfx mario_cap_seg3_dl_03022F48[]; -extern const Gfx mario_cap_seg3_dl_03022FF8[]; -extern const Gfx mario_cap_seg3_dl_030230B0[]; -extern const Gfx mario_cap_seg3_dl_03023108[]; -extern const Gfx mario_cap_seg3_dl_03023160[]; -extern const Gfx mario_cap_seg3_dl_03023298[]; -extern const Gfx mario_cap_material_revert_render_settings[]; +#include "actors/mario_cap/geo_header.h" // mist extern const GeoLayout mist_geo[]; diff --git a/actors/group0.h b/actors/group0.h index 0de8e94e..5e11ec17 100644 --- a/actors/group0.h +++ b/actors/group0.h @@ -17,122 +17,7 @@ extern const Gfx burn_smoke_seg4_dl_04022048[]; extern const Gfx burn_smoke_seg4_dl_04022070[]; // mario -extern const GeoLayout mario_geo_face_and_wings[]; -extern const GeoLayout mario_geo_left_hand[]; -extern const GeoLayout mario_geo_right_hand[]; -extern const GeoLayout mario_geo_body[]; -extern const GeoLayout mario_vanish_geo_face_and_wings[]; -extern const GeoLayout mario_vanish_geo_left_hand[]; -extern const GeoLayout mario_vanish_geo_right_hand[]; -extern const GeoLayout mario_vanish_geo_body[]; -extern const GeoLayout mario_metal_geo_face_and_wings[]; -extern const GeoLayout mario_metal_geo_left_hand[]; -extern const GeoLayout mario_metal_geo_right_hand[]; -extern const GeoLayout mario_metal_geo_body[]; -extern const GeoLayout mario_metal_vanish_geo_face_and_wings[]; -extern const GeoLayout mario_metal_vanish_geo_left_hand[]; -extern const GeoLayout mario_metal_vanish_geo_right_hand[]; -extern const GeoLayout mario_metal_vanish_geo_body[]; -extern const GeoLayout mario_geo_load_body[]; -extern const GeoLayout mario_geo[]; -extern const Gfx mario_butt_dl[]; -extern const Gfx mario_butt[]; -extern const Gfx mario_metal_butt[]; -extern const Gfx mario_left_arm_shared_dl[]; -extern const Gfx mario_left_arm[]; -extern const Gfx mario_left_forearm_shared_dl[]; -extern const Gfx mario_left_hand_closed_shared_dl[]; -extern const Gfx mario_left_hand_closed[]; -extern const Gfx mario_right_arm_shared_dl[]; -extern const Gfx mario_right_arm[]; -extern const Gfx mario_right_forearm_shared_dl[]; -extern const Gfx mario_right_hand_closed_dl[]; -extern const Gfx mario_right_hand_closed[]; -extern const Gfx mario_metal_right_hand_closed[]; -extern const Gfx mario_left_thigh_dl[]; -extern const Gfx mario_left_thigh[]; -extern const Gfx mario_metal_left_thigh[]; -extern const Gfx mario_left_leg_shared_dl[]; -extern const Gfx mario_left_foot_shared_dl[]; -extern const Gfx mario_left_foot[]; -extern const Gfx mario_right_thigh_shared_dl[]; -extern const Gfx mario_right_thigh[]; -extern const Gfx mario_right_leg_shared_dl[]; -extern const Gfx mario_right_foot_dl[]; -extern const Gfx mario_right_foot[]; -extern const Gfx mario_metal_right_foot[]; -extern const Gfx mario_yellow_button_dl[]; -extern const Gfx mario_pants_overalls_shared_dl[]; -extern const Gfx mario_tshirt_shared_dl[]; -extern const Gfx mario_torso_dl[]; -extern const Gfx mario_torso[]; -extern const Gfx mario_metal_torso_shared_dl[]; -extern const Gfx mario_m_logo_dl[]; -extern const Gfx mario_eyes_cap_on_dl[]; -extern const Gfx mario_hair_sideburn_cap_on_dl[]; -extern const Gfx mario_mustache_cap_on_dl[]; -extern const Gfx mario_face_part_cap_on_dl[]; -extern const Gfx mario_face_cap_dl[]; -extern const Gfx mario_face_back_hair_cap_on_dl[]; -extern const Gfx mario_hair_sideburn_decal_cap_on_dl[]; -extern const Gfx mario_m_decal_dl[]; -extern const Gfx mario_face_cap_on_dl[]; -extern const Gfx mario_cap_on_eyes_front[]; -extern const Gfx mario_cap_on_eyes_half_closed[]; -extern const Gfx mario_cap_on_eyes_closed[]; -extern const Gfx mario_cap_on_eyes_right[]; -extern const Gfx mario_cap_on_eyes_left[]; -extern const Gfx mario_cap_on_eyes_up[]; -extern const Gfx mario_cap_on_eyes_down[]; -extern const Gfx mario_cap_on_eyes_dead[]; -extern const Gfx mario_metal_cap_on_shared_dl[]; -extern const Gfx mario_eyes_cap_off_dl[]; -extern const Gfx mario_mustache_cap_off_dl[]; -extern const Gfx mario_hair_sideburn_cap_off_dl[]; -extern const Gfx mario_face_part_cap_off_dl[]; -extern const Gfx mario_face_hair_cap_off_dl[]; -extern const Gfx mario_hair_sideburn_decal_cap_off_dl[]; -extern const Gfx mario_face_cap_off_dl[]; -extern const Gfx mario_cap_off_eyes_front[]; -extern const Gfx mario_cap_off_eyes_half_closed[]; -extern const Gfx mario_cap_off_eyes_closed[]; -extern const Gfx mario_cap_off_eyes_right[]; -extern const Gfx mario_cap_off_eyes_left[]; -extern const Gfx mario_cap_off_eyes_up[]; -extern const Gfx mario_cap_off_eyes_down[]; -extern const Gfx mario_cap_off_eyes_dead[]; -extern const Gfx mario_metal_cap_off_shared_dl[]; -extern const Gfx mario_left_hand_open_shared_dl[]; -extern const Gfx mario_left_hand_open[]; -extern const Gfx mario_right_hand_open_dl[]; -extern const Gfx mario_right_hand_open[]; -extern const Gfx mario_metal_right_hand_open[]; -extern const Gfx mario_right_hand_cap_m_logo_dl[]; -extern const Gfx mario_right_hand_cap_top_dl[]; -extern const Gfx mario_right_hand_cap_hand_position_dl[]; -extern const Gfx mario_right_hand_cap_bottom_dl[]; -extern const Gfx mario_right_hand_cap_decal_dl[]; -extern const Gfx mario_right_hand_cap_dl[]; -extern const Gfx mario_right_hand_cap_wings_half_1_dl[]; -extern const Gfx mario_right_hand_cap_wings_half_2_dl[]; -extern const Gfx mario_right_hand_cap_wings_intial_dl[]; -extern const Gfx mario_right_hand_cap_wings_transparent_intial_dl[]; -extern const Gfx mario_right_hand_cap_wings_end_dl[]; -extern const Gfx mario_right_hand_cap[]; -extern const Gfx mario_right_hand_cap_wings[]; -extern const Gfx mario_right_hand_cap_wings_transparent[]; -extern const Gfx mario_metal_right_hand_cap_shared_dl[]; -extern const Gfx mario_metal_right_hand_cap_shared_dl_wings[]; -extern const Gfx mario_metal_right_hand_cap_shared_dl_wings_transparent[]; -extern const Gfx mario_right_hand_peace_shared_dl[]; -extern const Gfx mario_right_hand_peace[]; -extern const Gfx mario_wings_half_1_dl[]; -extern const Gfx mario_wings_half_2_dl[]; -extern const Gfx mario_cap_wings[]; -extern const Gfx mario_cap_wings_transparent[]; -extern const Gfx mario_metal_cap_wings[]; -extern const Gfx mario_metal_cap_wings_transparent[]; -extern const Gfx mario_material_revert_render_settings[]; +#include "actors/mario/geo_header.h" // sparkle extern const GeoLayout sparkles_geo[]; diff --git a/actors/mario/custom_mario_cap.rgba16.png b/actors/mario/custom_mario_cap.rgba16.png new file mode 100644 index 00000000..c8fa9b04 Binary files /dev/null and b/actors/mario/custom_mario_cap.rgba16.png differ diff --git a/actors/mario/custom_mario_cap_inside.rgba16.png b/actors/mario/custom_mario_cap_inside.rgba32.png similarity index 100% rename from actors/mario/custom_mario_cap_inside.rgba16.png rename to actors/mario/custom_mario_cap_inside.rgba32.png diff --git a/actors/mario/custom_mario_m_blend.rgba16.png b/actors/mario/custom_mario_logo_blend.rgba16.png similarity index 100% rename from actors/mario/custom_mario_m_blend.rgba16.png rename to actors/mario/custom_mario_logo_blend.rgba16.png diff --git a/actors/mario/custom_mario_sideburn.rgba16.png b/actors/mario/custom_mario_sideburn.rgba16.png deleted file mode 100644 index c75d9fc9..00000000 Binary files a/actors/mario/custom_mario_sideburn.rgba16.png and /dev/null differ diff --git a/actors/mario/custom_mario_sideburn.rgba32.png b/actors/mario/custom_mario_sideburn.rgba32.png new file mode 100644 index 00000000..fd35b50c Binary files /dev/null and b/actors/mario/custom_mario_sideburn.rgba32.png differ diff --git a/actors/mario/custom_mario_sideburn_add.rgba32.png b/actors/mario/custom_mario_sideburn_add.rgba32.png new file mode 100644 index 00000000..29328272 Binary files /dev/null and b/actors/mario/custom_mario_sideburn_add.rgba32.png differ diff --git a/actors/mario/custom_mario_skin.rgba16.png b/actors/mario/custom_mario_skin.rgba16.png new file mode 100644 index 00000000..2c833b78 Binary files /dev/null and b/actors/mario/custom_mario_skin.rgba16.png differ diff --git a/actors/mario/geo.inc.c b/actors/mario/geo.inc.c index 1228eb40..9cefb37c 100644 --- a/actors/mario/geo.inc.c +++ b/actors/mario/geo.inc.c @@ -9,10 +9,8 @@ const GeoLayout mario_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, mario_m_decal_dl), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_on_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_m_logo_decal), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_hair_sideburn_decal_cap_on), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -29,9 +27,7 @@ const GeoLayout mario_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, mario_hair_sideburn_decal_cap_off_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_hair_sideburn_decal_cap_off), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -107,15 +103,11 @@ const GeoLayout mario_geo_right_hand[] = { GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_peace), // here we go hand GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), GEO_OPEN_NODE(), - GEO_ASM(2, geo_mirror_mario_backface_culling), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_decal), GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, mario_right_hand_cap), GEO_OPEN_NODE(), - GEO_ASM(2, geo_mirror_mario_backface_culling), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal_dl), - GEO_ASM(3, geo_mirror_mario_backface_culling), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_decal), GEO_DISPLAY_LIST(LAYER_ALPHA, mario_right_hand_cap_wings), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -205,8 +197,8 @@ const GeoLayout mario_vanish_geo_face_and_wings[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_decal_dl), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_on_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_logo_decal), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_on), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -223,7 +215,7 @@ const GeoLayout mario_vanish_geo_face_and_wings[] = { GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_off_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_off), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -299,11 +291,11 @@ const GeoLayout mario_vanish_geo_right_hand[] = { GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_peace), // here we go hand GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal), GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, mario_right_hand_cap), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_decal), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_cap_wings_transparent), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -706,14 +698,19 @@ const GeoLayout mario_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), + 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(0, geo_mirror_mario_backface_culling), + 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, mario_geo_load_body), GEO_CLOSE_NODE(), - GEO_ASM(1, geo_mirror_mario_backface_culling), + 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_DISPLAY_LIST(LAYER_OPAQUE, mario_material_revert_render_settings), diff --git a/actors/mario/geo_header.h b/actors/mario/geo_header.h new file mode 100644 index 00000000..5fbe12a1 --- /dev/null +++ b/actors/mario/geo_header.h @@ -0,0 +1,116 @@ +extern const GeoLayout mario_geo_face_and_wings[]; +extern const GeoLayout mario_geo_left_hand[]; +extern const GeoLayout mario_geo_right_hand[]; +extern const GeoLayout mario_geo_body[]; +extern const GeoLayout mario_vanish_geo_face_and_wings[]; +extern const GeoLayout mario_vanish_geo_left_hand[]; +extern const GeoLayout mario_vanish_geo_right_hand[]; +extern const GeoLayout mario_vanish_geo_body[]; +extern const GeoLayout mario_metal_geo_face_and_wings[]; +extern const GeoLayout mario_metal_geo_left_hand[]; +extern const GeoLayout mario_metal_geo_right_hand[]; +extern const GeoLayout mario_metal_geo_body[]; +extern const GeoLayout mario_metal_vanish_geo_face_and_wings[]; +extern const GeoLayout mario_metal_vanish_geo_left_hand[]; +extern const GeoLayout mario_metal_vanish_geo_right_hand[]; +extern const GeoLayout mario_metal_vanish_geo_body[]; +extern const GeoLayout mario_geo_load_body[]; +extern const GeoLayout mario_geo[]; +extern const Gfx mario_butt_dl[]; +extern const Gfx mario_butt[]; +extern const Gfx mario_metal_butt[]; +extern const Gfx mario_left_arm_shared_dl[]; +extern const Gfx mario_left_arm[]; +extern const Gfx mario_left_forearm_shared_dl[]; +extern const Gfx mario_left_hand_closed_shared_dl[]; +extern const Gfx mario_left_hand_closed[]; +extern const Gfx mario_right_arm_shared_dl[]; +extern const Gfx mario_right_arm[]; +extern const Gfx mario_right_forearm_shared_dl[]; +extern const Gfx mario_right_hand_closed_dl[]; +extern const Gfx mario_right_hand_closed[]; +extern const Gfx mario_metal_right_hand_closed[]; +extern const Gfx mario_left_thigh_dl[]; +extern const Gfx mario_left_thigh[]; +extern const Gfx mario_metal_left_thigh[]; +extern const Gfx mario_left_leg_shared_dl[]; +extern const Gfx mario_left_foot_shared_dl[]; +extern const Gfx mario_left_foot[]; +extern const Gfx mario_right_thigh_shared_dl[]; +extern const Gfx mario_right_thigh[]; +extern const Gfx mario_right_leg_shared_dl[]; +extern const Gfx mario_right_foot_dl[]; +extern const Gfx mario_right_foot[]; +extern const Gfx mario_metal_right_foot[]; +extern const Gfx mario_yellow_button_dl[]; +extern const Gfx mario_pants_overalls_shared_dl[]; +extern const Gfx mario_tshirt_shared_dl[]; +extern const Gfx mario_torso_dl[]; +extern const Gfx mario_torso[]; +extern const Gfx mario_metal_torso_shared_dl[]; +extern const Gfx mario_m_logo_dl[]; +extern const Gfx mario_eyes_cap_on_dl[]; +extern const Gfx mario_hair_sideburn_cap_on_dl[]; +extern const Gfx mario_mustache_cap_on_dl[]; +extern const Gfx mario_face_part_cap_on_dl[]; +extern const Gfx mario_face_cap_dl[]; +extern const Gfx mario_face_back_hair_cap_on_dl[]; +extern const Gfx mario_hair_sideburn_decal_cap_on[]; +extern const Gfx mario_m_logo_decal[]; +extern const Gfx mario_face_cap_on_dl[]; +extern const Gfx mario_cap_on_eyes_front[]; +extern const Gfx mario_cap_on_eyes_half_closed[]; +extern const Gfx mario_cap_on_eyes_closed[]; +extern const Gfx mario_cap_on_eyes_right[]; +extern const Gfx mario_cap_on_eyes_left[]; +extern const Gfx mario_cap_on_eyes_up[]; +extern const Gfx mario_cap_on_eyes_down[]; +extern const Gfx mario_cap_on_eyes_dead[]; +extern const Gfx mario_metal_cap_on_shared_dl[]; +extern const Gfx mario_eyes_cap_off_dl[]; +extern const Gfx mario_mustache_cap_off_dl[]; +extern const Gfx mario_hair_sideburn_cap_off_dl[]; +extern const Gfx mario_face_part_cap_off_dl[]; +extern const Gfx mario_face_hair_cap_off_dl[]; +extern const Gfx mario_hair_sideburn_decal_cap_off[]; +extern const Gfx mario_face_cap_off_dl[]; +extern const Gfx mario_cap_off_eyes_front[]; +extern const Gfx mario_cap_off_eyes_half_closed[]; +extern const Gfx mario_cap_off_eyes_closed[]; +extern const Gfx mario_cap_off_eyes_right[]; +extern const Gfx mario_cap_off_eyes_left[]; +extern const Gfx mario_cap_off_eyes_up[]; +extern const Gfx mario_cap_off_eyes_down[]; +extern const Gfx mario_cap_off_eyes_dead[]; +extern const Gfx mario_metal_cap_off_shared_dl[]; +extern const Gfx mario_left_hand_open_shared_dl[]; +extern const Gfx mario_left_hand_open[]; +extern const Gfx mario_right_hand_open_dl[]; +extern const Gfx mario_right_hand_open[]; +extern const Gfx mario_metal_right_hand_open[]; +extern const Gfx mario_right_hand_cap_m_logo_dl[]; +extern const Gfx mario_right_hand_cap_top_dl[]; +extern const Gfx mario_right_hand_cap_hand_position_dl[]; +extern const Gfx mario_right_hand_cap_bottom_dl[]; +extern const Gfx mario_right_hand_cap_decal[]; +extern const Gfx mario_right_hand_cap_dl[]; +extern const Gfx mario_right_hand_cap_wings_half_1_dl[]; +extern const Gfx mario_right_hand_cap_wings_half_2_dl[]; +extern const Gfx mario_right_hand_cap_wings_intial_dl[]; +extern const Gfx mario_right_hand_cap_wings_transparent_intial_dl[]; +extern const Gfx mario_right_hand_cap_wings_end_dl[]; +extern const Gfx mario_right_hand_cap[]; +extern const Gfx mario_right_hand_cap_wings[]; +extern const Gfx mario_right_hand_cap_wings_transparent[]; +extern const Gfx mario_metal_right_hand_cap_shared_dl[]; +extern const Gfx mario_metal_right_hand_cap_shared_dl_wings[]; +extern const Gfx mario_metal_right_hand_cap_shared_dl_wings_transparent[]; +extern const Gfx mario_right_hand_peace_shared_dl[]; +extern const Gfx mario_right_hand_peace[]; +extern const Gfx mario_wings_half_1_dl[]; +extern const Gfx mario_wings_half_2_dl[]; +extern const Gfx mario_cap_wings[]; +extern const Gfx mario_cap_wings_transparent[]; +extern const Gfx mario_metal_cap_wings[]; +extern const Gfx mario_metal_cap_wings_transparent[]; +extern const Gfx mario_material_revert_render_settings[]; diff --git a/actors/mario/mario_externs.h b/actors/mario/mario_externs.h index 9593ad54..5287b0a9 100644 --- a/actors/mario/mario_externs.h +++ b/actors/mario/mario_externs.h @@ -4,7 +4,10 @@ extern ALIGNED8 const Texture mario_texture_metal_light[]; extern ALIGNED8 const Texture mario_texture_yellow_button[]; extern ALIGNED8 const Texture mario_texture_m_logo[]; extern ALIGNED8 const Texture mario_texture_m_blend[]; +extern ALIGNED8 const Texture mario_texture_m_cap[]; extern ALIGNED8 const Texture mario_texture_hair_sideburn[]; +extern ALIGNED8 const Texture mario_texture_add_sideburn[]; +extern ALIGNED8 const Texture mario_texture_skin_sideburn[]; extern ALIGNED8 const Texture mario_texture_mustache[]; extern ALIGNED8 const Texture mario_texture_eyes_front[]; extern ALIGNED8 const Texture mario_texture_eyes_half_closed[]; diff --git a/actors/mario/model.inc.c b/actors/mario/model.inc.c index c7a5c2f6..0526356c 100644 --- a/actors/mario/model.inc.c +++ b/actors/mario/model.inc.c @@ -53,92 +53,88 @@ ALIGNED8 const Texture mario_texture_metal_light[] = { #include "actors/mario/custom_mario_metal_light.rgba16.inc.c" }; -// 0x04001090 ALIGNED8 const Texture mario_texture_yellow_button[] = { #include "actors/mario/mario_overalls_button.rgba16.inc.c" }; -// 0x04001890 ALIGNED8 const Texture mario_texture_m_logo[] = { #include "actors/mario/custom_mario_logo.rgba16.inc.c" }; ALIGNED8 const Texture mario_texture_m_blend[] = { -#include "actors/mario/custom_mario_m_blend.rgba16.inc.c" +#include "actors/mario/custom_mario_logo_blend.rgba16.inc.c" +}; + +ALIGNED8 const Texture mario_texture_m_cap[] = { +#include "actors/mario/custom_mario_cap.rgba16.inc.c" }; -// 0x04002090 ALIGNED8 const Texture mario_texture_hair_sideburn[] = { -#include "actors/mario/custom_mario_sideburn.rgba16.inc.c" +#include "actors/mario/custom_mario_sideburn.rgba32.inc.c" +}; + +ALIGNED8 const Texture mario_texture_add_sideburn[] = { +#include "actors/mario/custom_mario_sideburn_add.rgba32.inc.c" +}; + +ALIGNED8 const Texture mario_texture_skin_sideburn[] = { +#include "actors/mario/custom_mario_skin.rgba16.inc.c" }; -// 0x04002890 ALIGNED8 const Texture mario_texture_mustache[] = { #include "actors/mario/mario_mustache.rgba16.inc.c" }; -// 0x04003090 ALIGNED8 const Texture mario_texture_eyes_front[] = { #include "actors/mario/mario_eyes_center.rgba16.inc.c" }; -// 0x04003890 ALIGNED8 const Texture mario_texture_eyes_half_closed[] = { #include "actors/mario/mario_eyes_half_closed.rgba16.inc.c" }; -// 0x04004090 ALIGNED8 const Texture mario_texture_eyes_closed[] = { #include "actors/mario/mario_eyes_closed.rgba16.inc.c" }; -// 0x04005890 ALIGNED8 const Texture mario_texture_eyes_right[] = { #include "actors/mario/mario_eyes_left_unused.rgba16.inc.c" }; -// 0x04006090 ALIGNED8 const Texture mario_texture_eyes_left[] = { #include "actors/mario/mario_eyes_right_unused.rgba16.inc.c" }; -// 0x04006890 ALIGNED8 const Texture mario_texture_eyes_up[] = { #include "actors/mario/mario_eyes_up_unused.rgba16.inc.c" }; -// 0x04007090 ALIGNED8 const Texture mario_texture_eyes_down[] = { #include "actors/mario/mario_eyes_down_unused.rgba16.inc.c" }; -// 0x04007890 ALIGNED8 const Texture mario_texture_eyes_dead[] = { #include "actors/mario/mario_eyes_dead.rgba16.inc.c" }; -// 0x04008090 ALIGNED8 const Texture mario_texture_wings_half_1[] = { #include "actors/mario/mario_wing.rgba16.inc.c" }; -// 0x04009090 ALIGNED8 const Texture mario_texture_wings_half_2[] = { #include "actors/mario/mario_wing_tip.rgba16.inc.c" }; -// 0x0400A090 ALIGNED8 const Texture mario_texture_metal_wings_half_1[] = { #include "actors/mario/mario_metal_wing_unused.rgba16.inc.c" }; -// 0x0400B090 ALIGNED8 const Texture mario_texture_metal_wings_half_2[] = { #include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c" }; ALIGNED8 const Texture mario_texture_cap_inside[] = { -#include "actors/mario/custom_mario_cap_inside.rgba16.inc.c" +#include "actors/mario/custom_mario_cap_inside.rgba32.inc.c" }; // 0x0400C090 @@ -2107,7 +2103,26 @@ const Gfx mario_face_back_hair_cap_on_dl[] = { gsSPEndDisplayList(), }; -const Gfx mario_hair_sideburn_decal_cap_on_dl[] = { +const Gfx mario_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(&mario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 11), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, mario_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, mario_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(mario_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), @@ -2115,11 +2130,10 @@ const Gfx mario_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, mario_texture_hair_sideburn), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 11), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_hair_sideburn_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -2127,22 +2141,35 @@ const Gfx mario_hair_sideburn_decal_cap_on_dl[] = { gsSPEndDisplayList(), }; -const Gfx mario_m_decal_dl[] = { - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), +const Gfx mario_m_logo_decal[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), + gsSPTexture(65535, 65535, 0, 0, 1), gsSPLight(&mario_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo), - 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, mario_texture_m_blend), - 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), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo), + 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, mario_texture_m_blend), + 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), + gsSPDisplayList(mario_m_logo_dl), + 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), + 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, 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, mario_texture_m_cap), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -2152,10 +2179,8 @@ const Gfx mario_m_decal_dl[] = { // 0x04011960 - 0x040119A0 const Gfx mario_face_cap_on_dl[] = { - gsSPDisplayList(mario_hair_sideburn_cap_on_dl), gsSPDisplayList(mario_face_part_cap_on_dl), - gsSPCopyLightsPlayerPart(CAP), // gsSPLight(&mario_red_lights_group.a, 2), - gsSPDisplayList(mario_m_logo_dl), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_face_cap_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_face_back_hair_cap_on_dl), @@ -2878,7 +2903,26 @@ const Gfx mario_face_hair_cap_off_dl[] = { gsSPEndDisplayList(), }; -const Gfx mario_hair_sideburn_decal_cap_off_dl[] = { +const Gfx mario_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(&mario_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 11), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, mario_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, mario_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(mario_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), @@ -2886,11 +2930,10 @@ const Gfx mario_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, mario_texture_hair_sideburn), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 11), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_hair_sideburn_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -2900,7 +2943,6 @@ const Gfx mario_hair_sideburn_decal_cap_off_dl[] = { // 0x040139C0 - 0x040139E8 const Gfx mario_face_cap_off_dl[] = { - gsSPDisplayList(mario_hair_sideburn_cap_off_dl), gsSPDisplayList(mario_face_part_cap_off_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_face_hair_cap_off_dl), @@ -3678,22 +3720,35 @@ const Gfx mario_right_hand_cap_bottom_dl[] = { gsSPEndDisplayList(), }; -const Gfx mario_right_hand_cap_decal_dl[] = { - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), +const Gfx mario_right_hand_cap_decal[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), + gsSPTexture(65535, 65535, 0, 0, 1), gsSPLight(&mario_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo), - 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, mario_texture_m_blend), - 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), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo), + 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, mario_texture_m_blend), + 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), + gsSPDisplayList(mario_right_hand_cap_m_logo_dl), + 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), + 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, 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, mario_texture_m_cap), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_right_hand_cap_m_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -3703,22 +3758,22 @@ const Gfx mario_right_hand_cap_decal_dl[] = { // 0x0401AF20 - 0x0401AF60 const Gfx mario_right_hand_cap_dl[] = { + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_right_hand_cap_top_dl), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_cap_hand_position_dl), 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), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 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, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_cap_inside), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b, 1, mario_texture_cap_inside), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES)), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_32b_BYTES)), gsSPCopyLightsPlayerPart(CAP), - gsSPDisplayList(mario_right_hand_cap_m_logo_dl), gsSPDisplayList(mario_right_hand_cap_bottom_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), @@ -3726,28 +3781,28 @@ const Gfx mario_right_hand_cap_dl[] = { // 0x0401AF60 static const Vtx mario_right_hand_cap_wings_half_1_dl_vertex[] = { - {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 212, 96, 143}, 0, { 990, 2012}, {0xbe, 0x65, 0xda, 0xff}}}, - {{{ 368, 146, 7}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 322, 87, -67}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 166, 37, 68}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 178, -177, 128}, 0, { 990, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 149, -100, 60}, 0, { 0, 2012}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 319, -248, -14}, 0, { 990, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, - {{{ 290, -171, -81}, 0, { 0, 0}, {0xa8, 0xb4, 0xcf, 0xff}}}, + {{{ 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}}}, }; // 0x0401B000 static const Vtx mario_right_hand_cap_wings_half_2_dl_vertex[] = { - {{{ 414, 206, 82}, 0, { 990, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 212, 96, 143}, 0, { 0, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 258, 156, 218}, 0, { 990, 2012}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 368, 146, 7}, 0, { 0, 0}, {0xbe, 0x64, 0xd9, 0xff}}}, - {{{ 178, -177, 128}, 0, { 0, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 319, -248, -14}, 0, { 0, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 349, -325, 53}, 0, { 990, 0}, {0xa8, 0xb3, 0xcf, 0xff}}}, - {{{ 207, -253, 195}, 0, { 990, 2012}, {0xa8, 0xb3, 0xcf, 0xff}}}, + {{{ 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}}}, }; // 0x0401B080 - 0x0401B0B0 @@ -3770,7 +3825,7 @@ const Gfx mario_right_hand_cap_wings_half_2_dl[] = { const Gfx mario_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(&mario_white_lights_group.l, 1), @@ -3784,7 +3839,7 @@ const Gfx mario_right_hand_cap_wings_intial_dl[] = { const Gfx mario_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(&mario_white_lights_group.l, 1), @@ -3800,7 +3855,7 @@ const Gfx mario_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(), }; @@ -4149,18 +4204,18 @@ const Gfx mario_right_hand_peace[] = { // 0x0401C940 static const Vtx mario_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}}}, }; // 0x0401C980 static const Vtx mario_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}}}, }; // 0x0401C9C0 - 0x0401C9E0 @@ -4181,7 +4236,7 @@ const Gfx mario_wings_half_2_dl[] = { const Gfx mario_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(), @@ -4200,7 +4255,7 @@ const Gfx mario_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(), }; @@ -4208,7 +4263,7 @@ const Gfx mario_cap_wings[] = { const Gfx mario_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(), @@ -4227,7 +4282,7 @@ const Gfx mario_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(), }; @@ -4235,7 +4290,7 @@ const Gfx mario_cap_wings_transparent[] = { const Gfx mario_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(), @@ -4254,7 +4309,7 @@ const Gfx mario_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(), }; @@ -4264,7 +4319,7 @@ const Gfx mario_metal_cap_wings_transparent[] = { 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(), @@ -4280,7 +4335,7 @@ const Gfx mario_metal_cap_wings_transparent[] = { gsSPDisplayList(mario_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_TEXTURE_GEN | G_LIGHTING | G_CULL_BACK), gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE), gsDPLoadTextureBlock(mario_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), diff --git a/actors/mario_cap/geo.inc.c b/actors/mario_cap/geo.inc.c index 124a019a..24253149 100644 --- a/actors/mario_cap/geo.inc.c +++ b/actors/mario_cap/geo.inc.c @@ -14,12 +14,12 @@ const GeoLayout marios_cap_geo[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal_dl), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_m_logo_decal), GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022F48), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -74,13 +74,13 @@ const GeoLayout marios_wing_cap_geo[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal_dl), + GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_m_logo_decal), GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_030230B0), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal_dl), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_m_logo_decal), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03023160), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/mario_cap/geo_header.h b/actors/mario_cap/geo_header.h new file mode 100644 index 00000000..8fdb38db --- /dev/null +++ b/actors/mario_cap/geo_header.h @@ -0,0 +1,20 @@ +extern const GeoLayout marios_cap_geo[]; +extern const GeoLayout marios_metal_cap_geo[]; +extern const GeoLayout marios_wing_cap_geo[]; +extern const GeoLayout marios_winged_metal_cap_geo[]; +extern const Gfx mario_cap_seg3_dl_03022B30[]; +extern const Gfx mario_cap_seg3_dl_03022B68[]; +extern const Gfx mario_cap_seg3_dl_03022CC8[]; +extern const Gfx mario_cap_seg3_dl_03022D10[]; +extern const Gfx mario_cap_seg3_dl_03022E78[]; +extern const Gfx mario_cap_seg3_dl_03022EA8[]; +extern const Gfx mario_cap_seg3_dl_03022ED8[]; +extern const Gfx mario_cap_seg3_dl_03022F20[]; +extern const Gfx mario_cap_m_logo_decal[]; +extern const Gfx mario_cap_seg3_dl_03022F48[]; +extern const Gfx mario_cap_seg3_dl_03022FF8[]; +extern const Gfx mario_cap_seg3_dl_030230B0[]; +extern const Gfx mario_cap_seg3_dl_03023108[]; +extern const Gfx mario_cap_seg3_dl_03023160[]; +extern const Gfx mario_cap_seg3_dl_03023298[]; +extern const Gfx mario_cap_material_revert_render_settings[]; \ No newline at end of file diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index 68a9a0eb..3a339420 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -28,6 +28,7 @@ static const Lights1 mario_cap_black_lights_group = gdSPDefLights1( #define mario_cap_texture_metal_light mario_texture_metal_light #define mario_cap_texture_m_logo mario_texture_m_logo #define mario_cap_texture_m_blend mario_texture_m_blend +#define mario_cap_texture_m_cap mario_texture_m_cap #define mario_cap_texture_wings_half_1 mario_texture_wings_half_1 #define mario_cap_texture_wings_half_2 mario_texture_wings_half_2 #define mario_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 @@ -215,30 +216,30 @@ const Gfx mario_cap_seg3_dl_03022D10[] = { // 0x03022D38 static const Vtx mario_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 mario_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 @@ -279,22 +280,35 @@ const Gfx mario_cap_seg3_dl_03022F20[] = { gsSPEndDisplayList(), }; -const Gfx mario_cap_m_logo_decal_dl[] = { - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), +const Gfx mario_cap_m_logo_decal[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0), + gsSPTexture(65535, 65535, 0, 0, 1), gsSPLight(&mario_cap_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_m_logo), - 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, mario_cap_texture_m_blend), - 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), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_m_logo), + 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, mario_cap_texture_m_blend), + 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), + gsSPDisplayList(mario_cap_seg3_dl_03022B30), + 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), + 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, 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, mario_cap_texture_m_cap), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -307,7 +321,6 @@ const Gfx mario_cap_seg3_dl_03022F48[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(CAP), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022D10), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), diff --git a/src/game/characters.c b/src/game/characters.c index 6849e41b..c5d62a7e 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -15,7 +15,7 @@ #include "pc/lua/smlua.h" extern Gfx mario_cap_seg3_dl_03022F48[]; -extern Gfx mario_cap_m_logo_decal_dl[]; +extern Gfx mario_cap_m_logo_decal[]; extern Gfx luigi_cap_seg3_dl_03022F48[]; extern Gfx luigi_cap_l_logo_decal_dl[]; extern Gfx toad_cap_Cap_mesh_layer_1[]; @@ -41,9 +41,9 @@ struct Character gCharacters[CT_MAX] = { .capMetalModelId = MODEL_MARIOS_METAL_CAP, .capWingModelId = MODEL_MARIOS_WING_CAP, .capMetalWingModelId = MODEL_MARIOS_WINGED_METAL_CAP, - .capEnemyLayer = LAYER_TRANSPARENT, + .capEnemyLayer = LAYER_ALPHA, .capEnemyGfx = mario_cap_seg3_dl_03022F48, - .capEnemyDecalGfx = mario_cap_m_logo_decal_dl, + .capEnemyDecalGfx = mario_cap_m_logo_decal, .torsoRotMult = 1.0f, // anim .animOffsetEnabled = false, diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c index 78b06b67..5a12849c 100644 --- a/src/game/mario_misc.c +++ b/src/game/mario_misc.c @@ -742,6 +742,9 @@ Gfx* geo_mirror_mario_backface_culling(s32 callContext, struct GraphNode* node, gSPEndDisplayList(&gfx[2]); } u32 layer = ((asGenerated->parameter & 0x02) == 2) ? LAYER_TRANSPARENT : LAYER_OPAQUE; + if ((asGenerated->parameter & 0xFC) != 0) { + layer = asGenerated->parameter >> 2; + } asGenerated->fnNode.node.flags = (asGenerated->fnNode.node.flags & 0xFF) | (layer << 8); } return gfx;