From 3670d0759fc7b2f0c879cbba88a0e5d65be13a5e Mon Sep 17 00:00:00 2001 From: FluffaMario <50761036+FluffaMario@users.noreply.github.com> Date: Tue, 19 May 2026 23:00:38 -0500 Subject: [PATCH] Update Luigi --- actors/luigi/geo.inc.c | 162 +- actors/luigi/geo_header.h | 26 +- actors/luigi/luigi_externs.h | 4 - actors/luigi/model.inc.c | 2973 ++++++++++++++++++++-------------- 4 files changed, 1825 insertions(+), 1340 deletions(-) diff --git a/actors/luigi/geo.inc.c b/actors/luigi/geo.inc.c index be9b7259d..f17b8fde7 100644 --- a/actors/luigi/geo.inc.c +++ b/actors/luigi/geo.inc.c @@ -1,47 +1,35 @@ #include "geo_header.h" -// Normal Mario Geo +// Normal Luigi Geo +// 0x170002E0 const GeoLayout luigi_geo_face_and_wings[] = { GEO_ASM(0, geo_mario_head_rotation), GEO_ROTATION_NODE(0x00, 0, 0, 0), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_l_logo_decal), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_hair_sideburn_decal_cap_on), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_NODE_START(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_front), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_half_closed), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_closed), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_right), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_left), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_up), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_down), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_on_eyes_dead), + GEO_CLOSE_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_hair_sideburn_decal_cap_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_front), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_half_closed), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_closed), + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_right), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_left), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_up), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_down), // unused + GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_off_eyes_dead), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_TRANSLATE_ROTATE(0, 140, -45, -110, 22, -40, -135), GEO_OPEN_NODE(), @@ -63,6 +51,7 @@ const GeoLayout luigi_geo_face_and_wings[] = { GEO_RETURN(), }; +// 0x1700041C const GeoLayout luigi_geo_left_hand[] = { GEO_SWITCH_CASE(1, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -82,6 +71,7 @@ const GeoLayout luigi_geo_left_hand[] = { GEO_RETURN(), }; +// 0x17000494 const GeoLayout luigi_geo_right_hand[] = { GEO_SWITCH_CASE(0, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -100,12 +90,8 @@ const GeoLayout luigi_geo_right_hand[] = { GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_peace), // here we go hand GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_decal), - GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_cap), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_decal), GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_wings), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -114,6 +100,7 @@ const GeoLayout luigi_geo_right_hand[] = { // The body loads all the parts with some shared dls to apply the solid color of the dl that has it, the same rule applies to the medium and low poly geos +// 0x1700053C const GeoLayout luigi_geo_body[] = { GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 22, 0, NULL), GEO_OPEN_NODE(), @@ -183,49 +170,37 @@ const GeoLayout luigi_geo_body[] = { GEO_RETURN(), }; -// Vanish Mario Geo +// Vanish Luigi Geo +// 0x17000DEC const GeoLayout luigi_vanish_geo_face_and_wings[] = { GEO_ASM(0, geo_mario_head_rotation), GEO_ROTATION_NODE(0x00, 0, 0, 0), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_l_logo_decal), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_on), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_NODE_START(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_front_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_half_closed_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_closed_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_right_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_left_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_up_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_down_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_on_eyes_dead_transparent), + GEO_CLOSE_NODE(), + GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_off), - GEO_OPEN_NODE(), - GEO_SWITCH_CASE(0, geo_switch_mario_eyes), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_front), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_half_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_closed), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_right), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_left), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_up), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_down), // unused - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_dead), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), - GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_front_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_half_closed_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_closed_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_right_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_left_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_up_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_down_transparent), // unused + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_off_eyes_dead_transparent), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_TRANSLATE_ROTATE(0, 140, -45, -110, 22, -40, -135), GEO_OPEN_NODE(), @@ -247,6 +222,7 @@ const GeoLayout luigi_vanish_geo_face_and_wings[] = { GEO_RETURN(), }; +// 0x17000F28 const GeoLayout luigi_vanish_geo_left_hand[] = { GEO_SWITCH_CASE(1, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -266,6 +242,7 @@ const GeoLayout luigi_vanish_geo_left_hand[] = { GEO_RETURN(), }; +// 0x17000FA0 const GeoLayout luigi_vanish_geo_right_hand[] = { GEO_SWITCH_CASE(0, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -284,20 +261,17 @@ const GeoLayout luigi_vanish_geo_right_hand[] = { GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_peace), // here we go hand GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_cap), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal), - GEO_CLOSE_NODE(), GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_cap), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_wings_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_wings), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_RETURN(), }; -// Same rule body as Normal Mario +// Same rule body as Normal Luigi +// 0x17001048 const GeoLayout luigi_vanish_geo_body[] = { GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 22, 0, NULL), GEO_OPEN_NODE(), @@ -367,8 +341,9 @@ const GeoLayout luigi_vanish_geo_body[] = { GEO_RETURN(), }; -// Metal Mario Geo +// Metal Luigi Geo +// 0x170018F8 const GeoLayout luigi_metal_geo_face_and_wings[] = { GEO_ASM(0, geo_mario_head_rotation), GEO_ROTATION_NODE(0x00, 0, 0, 0), @@ -398,6 +373,7 @@ const GeoLayout luigi_metal_geo_face_and_wings[] = { GEO_RETURN(), }; +// 0x170019A4 const GeoLayout luigi_metal_geo_left_hand[] = { GEO_SWITCH_CASE(1, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -417,6 +393,7 @@ const GeoLayout luigi_metal_geo_left_hand[] = { GEO_RETURN(), }; +// 0x17001A1C const GeoLayout luigi_metal_geo_right_hand[] = { GEO_SWITCH_CASE(0, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -443,8 +420,9 @@ const GeoLayout luigi_metal_geo_right_hand[] = { GEO_RETURN(), }; -// A difference from Normal Mario is that the dls after the butt and left thigh shares the metal texture of it, same rule applies to the medium and low poly geos +// A difference from Normal Luigi is that the dls after the butt and left thigh shares the metal texture of it, same rule applies to the medium and low poly geos +// 0x17001AC4 const GeoLayout luigi_metal_geo_body[] = { GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 22, 0, NULL), GEO_OPEN_NODE(), @@ -514,8 +492,9 @@ const GeoLayout luigi_metal_geo_body[] = { GEO_RETURN(), }; -// Metal Vanish Mario Geo +// Metal Vanish Luigi Geo +// 0x170022E4 const GeoLayout luigi_metal_vanish_geo_face_and_wings[] = { GEO_ASM(0, geo_mario_head_rotation), GEO_ROTATION_NODE(0x00, 0, 0, 0), @@ -545,6 +524,7 @@ const GeoLayout luigi_metal_vanish_geo_face_and_wings[] = { GEO_RETURN(), }; +// 0x17002390 const GeoLayout luigi_metal_vanish_geo_left_hand[] = { GEO_SWITCH_CASE(0, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -564,6 +544,7 @@ const GeoLayout luigi_metal_vanish_geo_left_hand[] = { GEO_RETURN(), }; +// 0x17002408 const GeoLayout luigi_metal_vanish_geo_right_hand[] = { GEO_SWITCH_CASE(0, geo_switch_mario_hand), GEO_OPEN_NODE(), @@ -584,14 +565,15 @@ const GeoLayout luigi_metal_vanish_geo_right_hand[] = { GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_metal_right_hand_cap_shared_dl), GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_metal_right_hand_cap_shared_dl), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_metal_right_hand_cap_shared_dl_wings_transparent), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_metal_right_hand_cap_shared_dl_wings), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_RETURN(), }; -// Same rules as Metal Mario +// Same rules as Metal Luigi +// 0x170024B0 const GeoLayout luigi_metal_vanish_geo_body[] = { GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 22, 0, NULL), GEO_OPEN_NODE(), @@ -661,8 +643,7 @@ const GeoLayout luigi_metal_vanish_geo_body[] = { GEO_RETURN(), }; -// High Poly - +// 0x17002CE0 const GeoLayout luigi_geo_load_body[] = { GEO_SWITCH_CASE(0, geo_switch_mario_cap_effect), GEO_OPEN_NODE(), @@ -674,8 +655,9 @@ const GeoLayout luigi_geo_load_body[] = { GEO_RETURN(), }; -// This last geo is used to load all of Mario Geo in the Level Scripts +// This last geo is used to load all of Luigi Geo in the Level Scripts +// 0x17002DD4 const GeoLayout luigi_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), @@ -684,23 +666,31 @@ const GeoLayout luigi_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE_DECAL + 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_TRANSPARENT_DECAL + 3, geo_mario_set_player_colors), GEO_ASM(LAYER_OPAQUE << 2, geo_mirror_mario_backface_culling), + GEO_ASM(LAYER_OPAQUE_DECAL << 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(LAYER_TRANSPARENT_DECAL << 2, geo_mirror_mario_backface_culling), GEO_ASM(0, geo_mirror_mario_set_alpha), GEO_OPEN_NODE(), GEO_BRANCH(1, luigi_geo_load_body), GEO_CLOSE_NODE(), GEO_ASM((LAYER_OPAQUE << 2) | 1, geo_mirror_mario_backface_culling), + GEO_ASM((LAYER_OPAQUE_DECAL << 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_ASM((LAYER_TRANSPARENT_DECAL << 2) | 1, geo_mirror_mario_backface_culling), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, luigi_material_revert_render_settings), GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_material_revert_render_settings), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT_DECAL, luigi_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/luigi/geo_header.h b/actors/luigi/geo_header.h index ccff7c5e9..a57bd6532 100644 --- a/actors/luigi/geo_header.h +++ b/actors/luigi/geo_header.h @@ -55,8 +55,6 @@ extern const Gfx luigi_mustache_cap_on_dl[]; extern const Gfx luigi_face_part_cap_on_dl[]; extern const Gfx luigi_face_cap_dl[]; extern const Gfx luigi_face_back_hair_cap_on_dl[]; -extern const Gfx luigi_hair_sideburn_decal_cap_on[]; -extern const Gfx luigi_l_logo_decal[]; extern const Gfx luigi_face_cap_on_dl[]; extern const Gfx luigi_cap_on_eyes_front[]; extern const Gfx luigi_cap_on_eyes_half_closed[]; @@ -66,13 +64,20 @@ extern const Gfx luigi_cap_on_eyes_left[]; extern const Gfx luigi_cap_on_eyes_up[]; extern const Gfx luigi_cap_on_eyes_down[]; extern const Gfx luigi_cap_on_eyes_dead[]; +extern const Gfx luigi_cap_on_eyes_front_transparent[]; +extern const Gfx luigi_cap_on_eyes_half_closed_transparent[]; +extern const Gfx luigi_cap_on_eyes_closed_transparent[]; +extern const Gfx luigi_cap_on_eyes_right_transparent[]; +extern const Gfx luigi_cap_on_eyes_left_transparent[]; +extern const Gfx luigi_cap_on_eyes_up_transparent[]; +extern const Gfx luigi_cap_on_eyes_down_transparent[]; +extern const Gfx luigi_cap_on_eyes_dead_transparent[]; extern const Gfx luigi_metal_cap_on_shared_dl[]; extern const Gfx luigi_eyes_cap_off_dl[]; extern const Gfx luigi_mustache_cap_off_dl[]; extern const Gfx luigi_hair_sideburn_cap_off_dl[]; extern const Gfx luigi_face_part_cap_off_dl[]; extern const Gfx luigi_face_hair_cap_off_dl[]; -extern const Gfx luigi_hair_sideburn_decal_cap_off[]; extern const Gfx luigi_face_cap_off_dl[]; extern const Gfx luigi_cap_off_eyes_front[]; extern const Gfx luigi_cap_off_eyes_half_closed[]; @@ -82,6 +87,14 @@ extern const Gfx luigi_cap_off_eyes_left[]; extern const Gfx luigi_cap_off_eyes_up[]; extern const Gfx luigi_cap_off_eyes_down[]; extern const Gfx luigi_cap_off_eyes_dead[]; +extern const Gfx luigi_cap_off_eyes_front_transparent[]; +extern const Gfx luigi_cap_off_eyes_half_closed_transparent[]; +extern const Gfx luigi_cap_off_eyes_closed_transparent[]; +extern const Gfx luigi_cap_off_eyes_right_transparent[]; +extern const Gfx luigi_cap_off_eyes_left_transparent[]; +extern const Gfx luigi_cap_off_eyes_up_transparent[]; +extern const Gfx luigi_cap_off_eyes_down_transparent[]; +extern const Gfx luigi_cap_off_eyes_dead_transparent[]; extern const Gfx luigi_metal_cap_off_shared_dl[]; extern const Gfx luigi_left_hand_open_shared_dl[]; extern const Gfx luigi_left_hand_open[]; @@ -92,20 +105,15 @@ extern const Gfx luigi_right_hand_cap_l_logo_dl[]; extern const Gfx luigi_right_hand_cap_top_dl[]; extern const Gfx luigi_right_hand_cap_hand_position_dl[]; extern const Gfx luigi_right_hand_cap_bottom_dl[]; -extern const Gfx luigi_right_hand_cap_decal[]; extern const Gfx luigi_right_hand_cap_dl[]; extern const Gfx luigi_right_hand_cap_wings_half_1_dl[]; extern const Gfx luigi_right_hand_cap_wings_half_2_dl[]; -extern const Gfx luigi_right_hand_cap_wings_intial_dl[]; -extern const Gfx luigi_right_hand_cap_wings_transparent_intial_dl[]; -extern const Gfx luigi_right_hand_cap_metal_wings_intial_dl[]; +extern const Gfx luigi_right_hand_cap_wings_initial_dl[]; extern const Gfx luigi_right_hand_cap_wings_end_dl[]; extern const Gfx luigi_right_hand_cap[]; extern const Gfx luigi_right_hand_cap_wings[]; -extern const Gfx luigi_right_hand_cap_wings_transparent[]; extern const Gfx luigi_metal_right_hand_cap_shared_dl[]; extern const Gfx luigi_metal_right_hand_cap_shared_dl_wings[]; -extern const Gfx luigi_metal_right_hand_cap_shared_dl_wings_transparent[]; extern const Gfx luigi_right_hand_peace_shared_dl[]; extern const Gfx luigi_right_hand_peace[]; extern const Gfx luigi_wings_half_1_dl[]; diff --git a/actors/luigi/luigi_externs.h b/actors/luigi/luigi_externs.h index 0e8222c07..02c986ae1 100644 --- a/actors/luigi/luigi_externs.h +++ b/actors/luigi/luigi_externs.h @@ -1,7 +1,3 @@ extern ALIGNED8 const Texture luigi_texture_l_logo[]; -extern ALIGNED8 const Texture luigi_texture_l_blend[]; -extern ALIGNED8 const Texture luigi_texture_l_cap[]; extern ALIGNED8 const Texture luigi_texture_hair_sideburn[]; -extern ALIGNED8 const Texture luigi_texture_add_sideburn[]; -extern ALIGNED8 const Texture luigi_texture_skin_sideburn[]; extern ALIGNED8 const Texture luigi_texture_mustache[]; \ No newline at end of file diff --git a/actors/luigi/model.inc.c b/actors/luigi/model.inc.c index 2a7a9d8af..b18bb0228 100644 --- a/actors/luigi/model.inc.c +++ b/actors/luigi/model.inc.c @@ -1,82 +1,64 @@ #include "pc/rom_assets.h" // Luigi +// 0x04000000 # solid color blue - butt, left thigh, right thigh - all poly types static const Lights1 luigi_blue_lights_group = gdSPDefLights1( - 0x0, 0x0, 0x7f, - 0x0, 0x0, 0xff, 0x28, 0x28, 0x28 + 0x00, 0x00, 0x7f, + 0x00, 0x00, 0xff, 0x28, 0x28, 0x28 ); +// 0x04000018 # solid color green - left & right arm, torso (tshirt part), caps - all poly types static const Lights1 luigi_green_lights_group = gdSPDefLights1( - 0x0, 0x7f, 0x0, - 0x0, 0xff, 0x0, 0x28, 0x28, 0x28 + 0x00, 0x7f, 0x00, + 0x00, 0xff, 0x00, 0x28, 0x28, 0x28 ); +// 0x04000030 # solid color white - metal butt & left thigh - normal left & right hand closed & open (with cap too) and all wings - all poly types static const Lights1 luigi_white_lights_group = gdSPDefLights1( 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 ); +// 0x04000048 # solid color brown 1 - foot - all poly types static const Lights1 luigi_brown1_lights_group = gdSPDefLights1( 0x39, 0x0e, 0x07, 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 ); +// 0x04000060 # solid color beige skin - face (cap on and off dls) - all poly types static const Lights1 luigi_beige_lights_group = gdSPDefLights1( 0x7f, 0x60, 0x3c, 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 ); +// 0x04000078 # solid color brown 2 - hair - all poly types static const Lights1 luigi_brown2_lights_group = gdSPDefLights1( 0x39, 0x03, 0x00, 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 ); -static const Lights1 luigi_black_lights_group = gdSPDefLights1( - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 -); - #include "actors/mario/mario_externs.h" -#define luigi_texture_metal_shade mario_texture_metal_shade -#define luigi_texture_metal_light mario_texture_metal_light -#define luigi_texture_yellow_button mario_texture_yellow_button -#define luigi_texture_eyes_front mario_texture_eyes_front -#define luigi_texture_eyes_half_closed mario_texture_eyes_half_closed -#define luigi_texture_eyes_closed mario_texture_eyes_closed -#define luigi_texture_eyes_left mario_texture_eyes_left -#define luigi_texture_eyes_right mario_texture_eyes_right -#define luigi_texture_eyes_up mario_texture_eyes_up -#define luigi_texture_eyes_down mario_texture_eyes_down -#define luigi_texture_eyes_dead mario_texture_eyes_dead -#define luigi_texture_wings_half_1 mario_texture_wings_half_1 -#define luigi_texture_wings_half_2 mario_texture_wings_half_2 -#define luigi_texture_metal_wings_half_1_shade mario_texture_metal_wings_half_1_shade -#define luigi_texture_metal_wings_half_1_light mario_texture_metal_wings_half_1_light -#define luigi_texture_metal_wings_half_2_shade mario_texture_metal_wings_half_2_shade -#define luigi_texture_metal_wings_half_2_light mario_texture_metal_wings_half_2_light +#define luigi_texture_metal mario_texture_metal +#define luigi_texture_yellow_button mario_texture_yellow_button +#define luigi_texture_eyes_front mario_texture_eyes_front +#define luigi_texture_eyes_half_closed mario_texture_eyes_half_closed +#define luigi_texture_eyes_closed mario_texture_eyes_closed +#define luigi_texture_eyes_left mario_texture_eyes_left +#define luigi_texture_eyes_right mario_texture_eyes_right +#define luigi_texture_eyes_up mario_texture_eyes_up +#define luigi_texture_eyes_down mario_texture_eyes_down +#define luigi_texture_eyes_dead mario_texture_eyes_dead +#define luigi_texture_wings_half_1 mario_texture_wings_half_1 +#define luigi_texture_wings_half_2 mario_texture_wings_half_2 +#define luigi_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 +#define luigi_texture_metal_wings_half_2 mario_texture_metal_wings_half_2 ALIGNED8 const Texture luigi_texture_l_logo[] = { -#include "actors/luigi/custom_luigi_logo.rgba16.inc.c" -}; - -ALIGNED8 const Texture luigi_texture_l_blend[] = { -#include "actors/luigi/custom_luigi_logo_blend.rgba16.inc.c" -}; - -ALIGNED8 const Texture luigi_texture_l_cap[] = { -#include "actors/luigi/custom_luigi_cap.rgba16.inc.c" +#include "actors/luigi/custom_luigi_logo.ia16.inc.c" }; ALIGNED8 const Texture luigi_texture_hair_sideburn[] = { -#include "actors/luigi/custom_luigi_sideburn.rgba16.inc.c" -}; - -ALIGNED8 const Texture luigi_texture_add_sideburn[] = { -#include "actors/luigi/custom_luigi_sideburn_add.rgba16.inc.c" -}; - -ALIGNED8 const Texture luigi_texture_skin_sideburn[] = { -#include "actors/luigi/custom_luigi_skin.rgba16.inc.c" +#include "actors/luigi/custom_luigi_sideburn.ia16.inc.c" }; ALIGNED8 const Texture luigi_texture_mustache[] = { @@ -252,22 +234,21 @@ const Gfx luigi_butt[] = { }; const Gfx luigi_metal_butt[] = { - 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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_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, luigi_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), + gsDPPipeSync(), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(4032, 1984, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + 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), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 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(luigi_butt_dl), gsSPEndDisplayList(), }; @@ -647,6 +628,7 @@ const Gfx luigi_metal_right_hand_closed[] = { gsSPDisplayList(luigi_right_hand_closed_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), @@ -722,22 +704,21 @@ const Gfx luigi_left_thigh[] = { }; const Gfx luigi_metal_left_thigh[] = { - 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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_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, luigi_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), + gsDPPipeSync(), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(4032, 1984, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + 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), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 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(luigi_left_thigh_dl), gsSPEndDisplayList(), }; @@ -1056,6 +1037,7 @@ const Gfx luigi_metal_right_foot[] = { gsSPDisplayList(luigi_right_foot_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsDPSetEnvColor(255, 255, 255, 255), @@ -1383,543 +1365,318 @@ const Gfx luigi_metal_torso_shared_dl[] = { }; Vtx luigi_l_logo_dl_vertex[7] = { - {{ {186, 83, 26}, 0, {730, 764}, {78, 83, 57, 255} }}, - {{ {147, 31, 77}, 0, {1200, 1106}, {254, 70, 106, 255} }}, - {{ {247, 60, 57}, 0, {1018, 94}, {63, 72, 83, 255} }}, - {{ {273, 73, 0}, 0, {474, -182}, {96, 83, 0, 255} }}, - {{ {186, 83, -25}, 0, {252, 768}, {78, 83, 199, 255} }}, - {{ {247, 60, -56}, 0, {-38, 100}, {63, 73, 173, 255} }}, - {{ {147, 31, -76}, 0, {-206, 1116}, {253, 70, 150, 255} }}, + {{{186, 83, 26}, 0, {728, 764}, {0x52, 0x55, 0x30, 0xFF}}}, + {{{147, 31, 77}, 0, {1198, 1106}, {0x04, 0x46, 0x6A, 0xFF}}}, + {{{247, 60, 57}, 0, {1004, 94}, {0x39, 0x4A, 0x55, 0xFF}}}, + {{{273, 73, 0}, 0, {472, -182}, {0x5F, 0x54, 0x00, 0xFF}}}, + {{{186, 83, -25}, 0, {248, 768}, {0x51, 0x54, 0xCF, 0xFF}}}, + {{{247, 60, -56}, 0, {-50, 100}, {0x39, 0x4A, 0xAB, 0xFF}}}, + {{{147, 31, -76}, 0, {-206, 1116}, {0x03, 0x46, 0x96, 0xFF}}}, }; Vtx luigi_eyes_cap_on_dl_vertex[12] = { - {{ {78, 89, -20}, 0, {282, 1028}, {67, 68, 173, 255} }}, - {{ {135, 74, -54}, 0, {-84, 412}, {25, 91, 171, 255} }}, - {{ {94, 76, -56}, 0, {-98, 860}, {17, 100, 180, 255} }}, - {{ {166, 84, -26}, 0, {202, 68}, {161, 84, 247, 255} }}, - {{ {135, 91, 0}, 0, {480, 402}, {10, 127, 0, 255} }}, - {{ {88, 92, 0}, 0, {488, 916}, {97, 82, 0, 255} }}, - {{ {78, 89, 20}, 0, {700, 1020}, {70, 67, 82, 255} }}, - {{ {166, 84, 27}, 0, {756, 60}, {161, 84, 9, 255} }}, - {{ {135, 74, 55}, 0, {1054, 392}, {25, 91, 85, 255} }}, - {{ {94, 76, 57}, 0, {1084, 840}, {17, 101, 76, 255} }}, - {{ {147, 31, 77}, 0, {1282, 258}, {254, 70, 106, 255} }}, - {{ {147, 31, -76}, 0, {-318, 286}, {253, 70, 150, 255} }}, + {{{94, 76, -56}, 0, {-102, 860}, {0x30, 0x5C, 0xB7, 0xFF}}}, + {{{78, 89, -20}, 0, {282, 1022}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{135, 74, -54}, 0, {-88, 412}, {0x19, 0x5C, 0xAC, 0xFF}}}, + {{{166, 84, -26}, 0, {198, 66}, {0xC6, 0x6E, 0xE7, 0xFF}}}, + {{{135, 91, 0}, 0, {480, 398}, {0x13, 0x7E, 0x00, 0xFF}}}, + {{{88, 92, 0}, 0, {488, 902}, {0x6A, 0x46, 0x00, 0xFF}}}, + {{{78, 89, 20}, 0, {698, 1010}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{166, 84, 27}, 0, {750, 48}, {0xC6, 0x6E, 0x19, 0xFF}}}, + {{{135, 74, 55}, 0, {1050, 380}, {0x19, 0x5C, 0x54, 0xFF}}}, + {{{94, 76, 57}, 0, {1080, 826}, {0x30, 0x5C, 0x49, 0xFF}}}, + {{{147, 31, 77}, 0, {1280, 240}, {0x04, 0x46, 0x6A, 0xFF}}}, + {{{147, 31, -76}, 0, {-322, 286}, {0x03, 0x46, 0x96, 0xFF}}}, }; Vtx luigi_hair_sideburn_cap_on_dl_vertex[12] = { - {{ {88, 42, -76}, 0, {-70, 700}, {7, 42, 136, 255} }}, - {{ {147, 31, -76}, 0, {90, -58}, {253, 70, 150, 255} }}, - {{ {115, -12, -91}, 0, {916, 184}, {235, 33, 135, 255} }}, - {{ {80, -24, -92}, 0, {1150, 582}, {0, 89, 165, 255} }}, - {{ {32, -5, -84}, 0, {842, 1210}, {187, 248, 149, 255} }}, - {{ {34, 34, -78}, 0, {118, 1334}, {213, 31, 140, 255} }}, - {{ {88, 42, 77}, 0, {-74, 726}, {6, 43, 119, 255} }}, - {{ {115, -11, 93}, 0, {922, 122}, {235, 33, 121, 255} }}, - {{ {147, 31, 77}, 0, {22, -68}, {254, 70, 106, 255} }}, - {{ {80, -24, 93}, 0, {1238, 518}, {254, 89, 91, 255} }}, - {{ {32, -5, 85}, 0, {968, 1192}, {187, 248, 107, 255} }}, - {{ {34, 34, 79}, 0, {196, 1366}, {213, 31, 116, 255} }}, + {{{115, -12, -91}, 0, {916, 184}, {0xED, 0x24, 0x88, 0xFF}}}, + {{{88, 42, -76}, 0, {-70, 700}, {0x11, 0x27, 0x88, 0xFF}}}, + {{{147, 31, -76}, 0, {90, -58}, {0x03, 0x46, 0x96, 0xFF}}}, + {{{80, -24, -92}, 0, {1150, 582}, {0x06, 0x59, 0xA6, 0xFF}}}, + {{{32, -5, -84}, 0, {842, 1210}, {0xC2, 0x05, 0x91, 0xFF}}}, + {{{34, 34, -78}, 0, {118, 1334}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{88, 42, 77}, 0, {-74, 726}, {0x10, 0x28, 0x77, 0xFF}}}, + {{{34, 34, 79}, 0, {196, 1366}, {0xDA, 0x21, 0x75, 0xFF}}}, + {{{32, -5, 85}, 0, {968, 1192}, {0xC2, 0x05, 0x6F, 0xFF}}}, + {{{80, -24, 93}, 0, {1238, 518}, {0x04, 0x59, 0x5B, 0xFF}}}, + {{{115, -11, 93}, 0, {922, 122}, {0xED, 0x24, 0x78, 0xFF}}}, + {{{147, 31, 77}, 0, {22, -68}, {0x04, 0x46, 0x6A, 0xFF}}}, }; -Vtx luigi_mustache_cap_on_dl_vertex[21] = { - {{ {78, 89, 20}, 0, {224, 146}, {70, 67, 82, 255} }}, - {{ {58, 93, 28}, 0, {342, 368}, {20, 35, 120, 255} }}, - {{ {66, 76, 68}, 0, {898, -18}, {7, 85, 94, 255} }}, - {{ {35, 79, 58}, 0, {824, 500}, {211, 87, 81, 255} }}, - {{ {35, 94, 27}, 0, {354, 690}, {183, 45, 94, 255} }}, - {{ {13, 83, 24}, 0, {442, 982}, {173, 91, 31, 255} }}, - {{ {24, 91, 0}, 0, {70, 924}, {139, 50, 0, 255} }}, - {{ {-7, 40, 43}, 0, {892, 1090}, {147, 20, 62, 255} }}, - {{ {34, 34, 79}, 0, {1296, 310}, {213, 31, 116, 255} }}, - {{ {35, 94, -26}, 0, {340, 684}, {184, 46, 162, 255} }}, - {{ {13, 83, -24}, 0, {394, 998}, {174, 91, 224, 255} }}, - {{ {24, 91, 0}, 0, {50, 900}, {139, 50, 0, 255} }}, - {{ {35, 79, -57}, 0, {792, 544}, {211, 86, 174, 255} }}, - {{ {58, 93, -27}, 0, {362, 344}, {18, 35, 135, 255} }}, - {{ {66, 76, -67}, 0, {922, -4}, {7, 85, 162, 255} }}, - {{ {78, 89, -20}, 0, {274, 100}, {67, 68, 173, 255} }}, - {{ {34, 34, -78}, 0, {1250, 390}, {213, 31, 140, 255} }}, - {{ {35, 79, -57}, 0, {792, 544}, {211, 86, 174, 255} }}, - {{ {66, 76, -67}, 0, {922, -4}, {7, 85, 162, 255} }}, - {{ {-7, 40, -42}, 0, {806, 1162}, {147, 19, 194, 255} }}, - {{ {13, 83, -24}, 0, {394, 998}, {174, 91, 224, 255} }}, +Vtx luigi_mustache_cap_on_dl_vertex[18] = { + {{{58, 93, 28}, 0, {342, 368}, {0x0E, 0x16, 0x7C, 0xFF}}}, + {{{66, 76, 68}, 0, {898, -18}, {0x23, 0x59, 0x53, 0xFF}}}, + {{{78, 89, 20}, 0, {224, 146}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{35, 79, 58}, 0, {824, 500}, {0xD7, 0x61, 0x47, 0xFF}}}, + {{{35, 94, 27}, 0, {354, 690}, {0xA8, 0x33, 0x4B, 0xFF}}}, + {{{13, 83, 24}, 0, {442, 982}, {0xB1, 0x61, 0x16, 0xFF}}}, + {{{24, 91, 0}, 0, {70, 924}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{-7, 40, 43}, 0, {892, 1090}, {0x94, 0x1D, 0x3C, 0xFF}}}, + {{{34, 34, 79}, 0, {1296, 310}, {0xDA, 0x21, 0x75, 0xFF}}}, + {{{24, 91, 0}, 0, {50, 900}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{35, 94, -26}, 0, {340, 684}, {0xA7, 0x32, 0xB4, 0xFF}}}, + {{{13, 83, -24}, 0, {394, 998}, {0xB1, 0x61, 0xEA, 0xFF}}}, + {{{35, 79, -57}, 0, {792, 544}, {0xD7, 0x61, 0xB9, 0xFF}}}, + {{{58, 93, -27}, 0, {362, 344}, {0x0E, 0x16, 0x84, 0xFF}}}, + {{{66, 76, -67}, 0, {922, -4}, {0x23, 0x59, 0xAD, 0xFF}}}, + {{{78, 89, -20}, 0, {274, 100}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{34, 34, -78}, 0, {1250, 390}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{-7, 40, -42}, 0, {806, 1162}, {0x94, 0x1D, 0xC4, 0xFF}}}, }; -Vtx luigi_face_cap_dl_vertex[43] = { - {{ {163, 124, -53}, 0, {0, 0}, {227, 81, 163, 255} }}, - {{ {147, 31, -76}, 0, {0, 0}, {253, 70, 150, 255} }}, - {{ {166, 84, -26}, 0, {0, 0}, {161, 84, 247, 255} }}, - {{ {186, 83, -25}, 0, {0, 0}, {78, 83, 199, 255} }}, - {{ {171, 155, 0}, 0, {0, 0}, {252, 127, 255, 255} }}, - {{ {166, 84, 27}, 0, {0, 0}, {161, 84, 9, 255} }}, - {{ {163, 125, 54}, 0, {0, 0}, {228, 82, 93, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, - {{ {186, 83, 26}, 0, {0, 0}, {78, 83, 57, 255} }}, - {{ {185, -5, -117}, 0, {0, 0}, {30, 9, 133, 255} }}, - {{ {247, 60, -56}, 0, {0, 0}, {63, 73, 173, 255} }}, - {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, - {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, - {{ {165, -90, -61}, 0, {0, 0}, {73, 168, 200, 255} }}, - {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, - {{ {273, 73, 0}, 0, {0, 0}, {96, 83, 0, 255} }}, - {{ {273, 73, 0}, 0, {0, 0}, {96, 83, 0, 255} }}, - {{ {270, -2, 34}, 0, {0, 0}, {111, 212, 43, 255} }}, - {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, - {{ {247, 60, 57}, 0, {0, 0}, {63, 72, 83, 255} }}, - {{ {185, -5, 117}, 0, {0, 0}, {31, 9, 123, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, - {{ {115, -11, 93}, 0, {0, 0}, {235, 33, 121, 255} }}, - {{ {129, -50, 108}, 0, {0, 0}, {233, 222, 120, 255} }}, - {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, - {{ {62, -96, 42}, 0, {0, 0}, {209, 168, 79, 255} }}, - {{ {77, -135, 42}, 0, {0, 0}, {188, 162, 53, 255} }}, - {{ {77, -135, -41}, 0, {0, 0}, {189, 162, 204, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {209, 169, 176, 255} }}, - {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, - {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, - {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, - {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, - {{ {124, -138, -40}, 0, {0, 0}, {40, 144, 210, 255} }}, - {{ {77, -135, -41}, 0, {0, 0}, {189, 162, 204, 255} }}, - {{ {165, -90, -61}, 0, {0, 0}, {73, 168, 200, 255} }}, - {{ {124, -138, 41}, 0, {0, 0}, {41, 145, 46, 255} }}, - {{ {165, -89, 62}, 0, {0, 0}, {73, 169, 57, 255} }}, - {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, - {{ {270, -2, 34}, 0, {0, 0}, {111, 212, 43, 255} }}, - {{ {185, -5, 117}, 0, {0, 0}, {31, 9, 123, 255} }}, - {{ {129, -50, 108}, 0, {0, 0}, {233, 222, 120, 255} }}, - {{ {77, -135, 42}, 0, {0, 0}, {188, 162, 53, 255} }}, +Vtx luigi_face_cap_dl_vertex[30] = { + {{{115, -12, -91}, 0, {0, 0}, {0xED, 0x24, 0x88, 0xFF}}}, + {{{129, -50, -108}, 0, {0, 0}, {0xDE, 0xD4, 0x8E, 0xFF}}}, + {{{88, -51, -73}, 0, {0, 0}, {0xD9, 0xAF, 0xA6, 0xFF}}}, + {{{185, -5, -117}, 0, {0, 0}, {0x1E, 0x04, 0x85, 0xFF}}}, + {{{147, 31, -76}, 0, {0, 0}, {0x03, 0x46, 0x96, 0xFF}}}, + {{{247, 60, -56}, 0, {0, 0}, {0x39, 0x4A, 0xAB, 0xFF}}}, + {{{270, -2, -34}, 0, {0, 0}, {0x6F, 0xCE, 0xDC, 0xFF}}}, + {{{273, 73, 0}, 0, {0, 0}, {0x5F, 0x54, 0x00, 0xFF}}}, + {{{270, -2, 34}, 0, {0, 0}, {0x72, 0xDC, 0x2B, 0xFF}}}, + {{{247, 60, 57}, 0, {0, 0}, {0x39, 0x4A, 0x55, 0xFF}}}, + {{{185, -5, 117}, 0, {0, 0}, {0x1F, 0x04, 0x7B, 0xFF}}}, + {{{147, 31, 77}, 0, {0, 0}, {0x04, 0x46, 0x6A, 0xFF}}}, + {{{115, -11, 93}, 0, {0, 0}, {0xED, 0x24, 0x78, 0xFF}}}, + {{{129, -50, 108}, 0, {0, 0}, {0xDF, 0xD3, 0x72, 0xFF}}}, + {{{88, -51, 74}, 0, {0, 0}, {0xD9, 0xAF, 0x59, 0xFF}}}, + {{{62, -96, 42}, 0, {0, 0}, {0xC9, 0x99, 0x31, 0xFF}}}, + {{{77, -135, 42}, 0, {0, 0}, {0xC1, 0xA4, 0x3C, 0xFF}}}, + {{{77, -135, -41}, 0, {0, 0}, {0xBB, 0x9D, 0xD8, 0xFF}}}, + {{{62, -96, -42}, 0, {0, 0}, {0xDE, 0x94, 0xC7, 0xFF}}}, + {{{124, -138, -40}, 0, {0, 0}, {0x28, 0x93, 0xCD, 0xFF}}}, + {{{165, -90, -61}, 0, {0, 0}, {0x51, 0xA9, 0xD5, 0xFF}}}, + {{{165, -89, 62}, 0, {0, 0}, {0x4E, 0xA6, 0x2B, 0xFF}}}, + {{{124, -138, 41}, 0, {0, 0}, {0x2D, 0x8E, 0x22, 0xFF}}}, + {{{166, 84, -26}, 0, {0, 0}, {0xC6, 0x6E, 0xE7, 0xFF}}}, + {{{163, 124, -53}, 0, {0, 0}, {0xDA, 0x5B, 0xB0, 0xFF}}}, + {{{171, 155, 0}, 0, {0, 0}, {0xED, 0x7E, 0x00, 0xFF}}}, + {{{166, 84, 27}, 0, {0, 0}, {0xC6, 0x6E, 0x19, 0xFF}}}, + {{{163, 125, 54}, 0, {0, 0}, {0xDA, 0x5B, 0x50, 0xFF}}}, + {{{186, 83, 26}, 0, {0, 0}, {0x52, 0x55, 0x30, 0xFF}}}, + {{{186, 83, -25}, 0, {0, 0}, {0x51, 0x54, 0xCF, 0xFF}}}, }; -Vtx luigi_face_part_cap_on_dl_vertex[88] = { - {{ {66, 76, 68}, 0, {0, 0}, {7, 85, 94, 255} }}, - {{ {94, 76, 57}, 0, {0, 0}, {17, 101, 76, 255} }}, - {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, - {{ {88, 42, 77}, 0, {0, 0}, {6, 43, 119, 255} }}, - {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, - {{ {135, 74, 55}, 0, {0, 0}, {25, 91, 85, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, - {{ {13, 83, -24}, 0, {0, 0}, {174, 91, 224, 255} }}, - {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, - {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, - {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, - {{ {-7, 40, -42}, 0, {0, 0}, {147, 19, 194, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, - {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, - {{ {57, -27, -110}, 0, {0, 0}, {217, 254, 135, 255} }}, - {{ {80, -24, -92}, 0, {0, 0}, {0, 89, 165, 255} }}, - {{ {95, -31, -110}, 0, {0, 0}, {43, 243, 137, 255} }}, - {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, - {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, - {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, - {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, - {{ {-7, 40, 43}, 0, {0, 0}, {147, 20, 62, 255} }}, - {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, - {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, - {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {57, -27, 111}, 0, {0, 0}, {217, 254, 121, 255} }}, - {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, - {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, - {{ {95, -31, 111}, 0, {0, 0}, {42, 241, 119, 255} }}, - {{ {115, -11, 93}, 0, {0, 0}, {235, 33, 121, 255} }}, - {{ {80, -24, 93}, 0, {0, 0}, {254, 89, 91, 255} }}, - {{ {88, 42, -76}, 0, {0, 0}, {7, 42, 136, 255} }}, - {{ {135, 74, -54}, 0, {0, 0}, {25, 91, 171, 255} }}, - {{ {147, 31, -76}, 0, {0, 0}, {253, 70, 150, 255} }}, - {{ {94, 76, -56}, 0, {0, 0}, {17, 100, 180, 255} }}, - {{ {66, 76, -67}, 0, {0, 0}, {7, 85, 162, 255} }}, - {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, - {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, - {{ {35, 94, 27}, 0, {0, 0}, {183, 45, 94, 255} }}, - {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, - {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, - {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, - {{ {58, 93, 28}, 0, {0, 0}, {20, 35, 120, 255} }}, - {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, - {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, - {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, - {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, - {{ {88, 92, 0}, 0, {0, 0}, {97, 82, 0, 255} }}, - {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, - {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, - {{ {58, 93, -27}, 0, {0, 0}, {18, 35, 135, 255} }}, - {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, - {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, - {{ {35, 94, -26}, 0, {0, 0}, {184, 46, 162, 255} }}, - {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, - {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, - {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, - {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, - {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, - {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, - {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, - {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, - {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, - {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, - {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, - {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, - {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, - {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, - {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, - {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, - {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, - {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, - {{ {39, 156, 0}, 0, {0, 0}, {224, 123, 0, 255} }}, - {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, - {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, - {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, - {{ {77, 157, 0}, 0, {0, 0}, {35, 122, 0, 255} }}, - {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, - {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, - {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, +Vtx luigi_face_part_cap_on_dl_vertex[60] = { + {{{24, 91, 0}, 0, {0, 0}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{13, 83, -24}, 0, {0, 0}, {0xB1, 0x61, 0xEA, 0xFF}}}, + {{{13, 83, 24}, 0, {0, 0}, {0xB1, 0x61, 0x16, 0xFF}}}, + {{{-19, 46, 0}, 0, {0, 0}, {0x84, 0x1D, 0x00, 0xFF}}}, + {{{-7, 40, -42}, 0, {0, 0}, {0x94, 0x1D, 0xC4, 0xFF}}}, + {{{12, -51, -34}, 0, {0, 0}, {0x88, 0xF8, 0xD7, 0xFF}}}, + {{{32, -5, -84}, 0, {0, 0}, {0xC2, 0x05, 0x91, 0xFF}}}, + {{{34, 34, -78}, 0, {0, 0}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{51, -44, -64}, 0, {0, 0}, {0xE3, 0xCA, 0x91, 0xFF}}}, + {{{57, -27, -110}, 0, {0, 0}, {0xCC, 0xE5, 0x8F, 0xFF}}}, + {{{80, -24, -92}, 0, {0, 0}, {0x06, 0x59, 0xA6, 0xFF}}}, + {{{95, -31, -110}, 0, {0, 0}, {0x32, 0x19, 0x8E, 0xFF}}}, + {{{115, -12, -91}, 0, {0, 0}, {0xED, 0x24, 0x88, 0xFF}}}, + {{{88, -51, -73}, 0, {0, 0}, {0xD9, 0xAF, 0xA6, 0xFF}}}, + {{{-7, 40, 43}, 0, {0, 0}, {0x94, 0x1D, 0x3C, 0xFF}}}, + {{{12, -51, 35}, 0, {0, 0}, {0x88, 0xF8, 0x29, 0xFF}}}, + {{{26, -79, 0}, 0, {0, 0}, {0x9F, 0xAE, 0x00, 0xFF}}}, + {{{32, -5, 85}, 0, {0, 0}, {0xC2, 0x05, 0x6F, 0xFF}}}, + {{{51, -44, 65}, 0, {0, 0}, {0xE3, 0xCA, 0x6F, 0xFF}}}, + {{{57, -27, 111}, 0, {0, 0}, {0xCC, 0xE5, 0x71, 0xFF}}}, + {{{88, -51, 74}, 0, {0, 0}, {0xD9, 0xAF, 0x59, 0xFF}}}, + {{{95, -31, 111}, 0, {0, 0}, {0x30, 0x18, 0x73, 0xFF}}}, + {{{115, -11, 93}, 0, {0, 0}, {0xED, 0x24, 0x78, 0xFF}}}, + {{{80, -24, 93}, 0, {0, 0}, {0x04, 0x59, 0x5B, 0xFF}}}, + {{{34, 34, 79}, 0, {0, 0}, {0xDA, 0x21, 0x75, 0xFF}}}, + {{{66, 76, 68}, 0, {0, 0}, {0x23, 0x59, 0x53, 0xFF}}}, + {{{94, 76, 57}, 0, {0, 0}, {0x30, 0x5C, 0x49, 0xFF}}}, + {{{78, 89, 20}, 0, {0, 0}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{88, 42, 77}, 0, {0, 0}, {0x10, 0x28, 0x77, 0xFF}}}, + {{{135, 74, 55}, 0, {0, 0}, {0x19, 0x5C, 0x54, 0xFF}}}, + {{{147, 31, 77}, 0, {0, 0}, {0x04, 0x46, 0x6A, 0xFF}}}, + {{{135, 74, -54}, 0, {0, 0}, {0x19, 0x5C, 0xAC, 0xFF}}}, + {{{147, 31, -76}, 0, {0, 0}, {0x03, 0x46, 0x96, 0xFF}}}, + {{{88, 42, -76}, 0, {0, 0}, {0x11, 0x27, 0x88, 0xFF}}}, + {{{94, 76, -56}, 0, {0, 0}, {0x30, 0x5C, 0xB7, 0xFF}}}, + {{{66, 76, -67}, 0, {0, 0}, {0x23, 0x59, 0xAD, 0xFF}}}, + {{{78, 89, -20}, 0, {0, 0}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{35, 94, -26}, 0, {0, 0}, {0xA7, 0x32, 0xB4, 0xFF}}}, + {{{15, 111, 0}, 0, {0, 0}, {0x84, 0xE8, 0xF8, 0xFF}}}, + {{{35, 94, 27}, 0, {0, 0}, {0xA8, 0x33, 0x4B, 0xFF}}}, + {{{29, 112, 36}, 0, {0, 0}, {0xB0, 0xE4, 0x5E, 0xFF}}}, + {{{58, 93, 28}, 0, {0, 0}, {0x0E, 0x16, 0x7C, 0xFF}}}, + {{{55, 112, 41}, 0, {0, 0}, {0x00, 0xEC, 0x7D, 0xFF}}}, + {{{81, 112, 36}, 0, {0, 0}, {0x45, 0xD6, 0x62, 0xFF}}}, + {{{96, 113, 0}, 0, {0, 0}, {0x7B, 0xE1, 0x06, 0xFF}}}, + {{{88, 92, 0}, 0, {0, 0}, {0x6A, 0x46, 0x00, 0xFF}}}, + {{{81, 112, -35}, 0, {0, 0}, {0x51, 0xDC, 0xA5, 0xFF}}}, + {{{58, 93, -27}, 0, {0, 0}, {0x0E, 0x16, 0x84, 0xFF}}}, + {{{55, 112, -40}, 0, {0, 0}, {0x00, 0xEC, 0x83, 0xFF}}}, + {{{29, 112, -35}, 0, {0, 0}, {0xBB, 0xDE, 0x9B, 0xFF}}}, + {{{32, 141, -35}, 0, {0, 0}, {0xB8, 0x34, 0xA6, 0xFF}}}, + {{{15, 141, 0}, 0, {0, 0}, {0x8E, 0x38, 0x09, 0xFF}}}, + {{{32, 141, 36}, 0, {0, 0}, {0xC8, 0x3D, 0x60, 0xFF}}}, + {{{58, 141, 41}, 0, {0, 0}, {0x03, 0x56, 0x5E, 0xFF}}}, + {{{82, 142, 36}, 0, {0, 0}, {0x52, 0x27, 0x58, 0xFF}}}, + {{{96, 142, 0}, 0, {0, 0}, {0x7A, 0x23, 0xF6, 0xFF}}}, + {{{82, 142, -35}, 0, {0, 0}, {0x44, 0x31, 0xA1, 0xFF}}}, + {{{58, 141, -40}, 0, {0, 0}, {0x03, 0x55, 0xA1, 0xFF}}}, + {{{39, 156, 0}, 0, {0, 0}, {0xEA, 0x7D, 0x00, 0xFF}}}, + {{{77, 157, 0}, 0, {0, 0}, {0x27, 0x79, 0x00, 0xFF}}}, }; -Vtx luigi_face_back_hair_cap_on_dl_vertex[24] = { - {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {209, 169, 176, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, - {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, - {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, - {{ {62, -96, 42}, 0, {0, 0}, {209, 168, 79, 255} }}, - {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, - {{ {46, -107, 45}, 0, {0, 0}, {60, 152, 41, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, - {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, - {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, - {{ {-3, -81, 44}, 0, {0, 0}, {129, 11, 1, 255} }}, - {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, - {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, - {{ {5, -113, -53}, 0, {0, 0}, {185, 158, 216, 255} }}, - {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, - {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, - {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, - {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, - {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, +Vtx luigi_face_back_hair_cap_on_dl_vertex[19] = { + {{{62, -96, 42}, 0, {0, 0}, {0xC9, 0x99, 0x31, 0xFF}}}, + {{{88, -51, 74}, 0, {0, 0}, {0xD9, 0xAF, 0x59, 0xFF}}}, + {{{51, -44, 65}, 0, {0, 0}, {0xE3, 0xCA, 0x6F, 0xFF}}}, + {{{46, -107, 45}, 0, {0, 0}, {0x58, 0xB3, 0x32, 0xFF}}}, + {{{19, -78, 73}, 0, {0, 0}, {0xDB, 0xFD, 0x79, 0xFF}}}, + {{{12, -51, 35}, 0, {0, 0}, {0x88, 0xF8, 0x29, 0xFF}}}, + {{{-3, -81, 44}, 0, {0, 0}, {0x86, 0xDF, 0x0B, 0xFF}}}, + {{{26, -79, 0}, 0, {0, 0}, {0x9F, 0xAE, 0x00, 0xFF}}}, + {{{24, -109, 21}, 0, {0, 0}, {0xFB, 0x8E, 0xC9, 0xFF}}}, + {{{62, -96, -42}, 0, {0, 0}, {0xDE, 0x94, 0xC7, 0xFF}}}, + {{{24, -109, -21}, 0, {0, 0}, {0xFB, 0x8E, 0x37, 0xFF}}}, + {{{-3, -81, -44}, 0, {0, 0}, {0x86, 0xDF, 0xF5, 0xFF}}}, + {{{12, -51, -34}, 0, {0, 0}, {0x88, 0xF8, 0xD7, 0xFF}}}, + {{{19, -78, -73}, 0, {0, 0}, {0xDB, 0xFD, 0x87, 0xFF}}}, + {{{51, -44, -64}, 0, {0, 0}, {0xE3, 0xCA, 0x91, 0xFF}}}, + {{{46, -107, -45}, 0, {0, 0}, {0x58, 0xB3, 0xCE, 0xFF}}}, + {{{88, -51, -73}, 0, {0, 0}, {0xD9, 0xAF, 0xA6, 0xFF}}}, + {{{5, -113, -53}, 0, {0, 0}, {0xDA, 0x93, 0xCB, 0xFF}}}, + {{{5, -113, 53}, 0, {0, 0}, {0xDA, 0x93, 0x35, 0xFF}}}, }; Gfx luigi_l_logo_dl[] = { gsSPVertex(luigi_l_logo_dl_vertex + 0, 7, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 0, 2, 0), - gsSP1Triangle(4, 0, 3, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(6, 4, 5, 0), + gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0), + gsSP2Triangles(3, 4, 0, 0, 3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), gsSPEndDisplayList(), }; Gfx luigi_eyes_cap_on_dl[] = { gsSPVertex(luigi_eyes_cap_on_dl_vertex + 0, 12, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 1, 0, 0), - gsSP1Triangle(4, 3, 0, 0), - gsSP1Triangle(5, 4, 0, 0), - gsSP1Triangle(5, 6, 4, 0), - gsSP1Triangle(4, 6, 7, 0), - gsSP1Triangle(7, 6, 8, 0), - gsSP1Triangle(9, 8, 6, 0), - gsSP1Triangle(7, 8, 10, 0), - gsSP1Triangle(3, 11, 1, 0), - gsSP1Triangle(4, 7, 3, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(1, 4, 3, 0, 1, 5, 4, 0), + gsSP2Triangles(4, 5, 6, 0, 7, 4, 6, 0), + gsSP2Triangles(8, 7, 6, 0, 6, 9, 8, 0), + gsSP2Triangles(10, 7, 8, 0, 3, 4, 7, 0), + gsSP1Triangle(2, 3, 11, 0), gsSPEndDisplayList(), }; Gfx luigi_hair_sideburn_cap_on_dl[] = { gsSPVertex(luigi_hair_sideburn_cap_on_dl_vertex + 0, 12, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 0, 2, 0), - gsSP1Triangle(3, 4, 0, 0), - gsSP1Triangle(4, 5, 0, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(6, 9, 7, 0), - gsSP1Triangle(10, 9, 6, 0), - gsSP1Triangle(11, 10, 6, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0), + gsSP2Triangles(1, 3, 4, 0, 4, 5, 1, 0), + gsSP2Triangles(6, 7, 8, 0, 8, 9, 6, 0), + gsSP2Triangles(9, 10, 6, 0, 11, 6, 10, 0), gsSPEndDisplayList(), }; Gfx luigi_mustache_cap_on_dl[] = { - gsSPVertex(luigi_mustache_cap_on_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 3, 2, 0), - gsSP1Triangle(4, 3, 1, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(4, 6, 5, 0), - gsSP1Triangle(3, 5, 7, 0), - gsSP1Triangle(3, 7, 8, 0), - gsSP1Triangle(8, 2, 3, 0), - gsSP1Triangle(9, 10, 11, 0), - gsSP1Triangle(12, 10, 9, 0), - gsSP1Triangle(9, 13, 12, 0), - gsSP1Triangle(13, 14, 12, 0), - gsSP1Triangle(15, 14, 13, 0), - gsSPVertex(luigi_mustache_cap_on_dl_vertex + 16, 5, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(1, 3, 4, 0), + gsSPVertex(luigi_mustache_cap_on_dl_vertex + 0, 18, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 0, 3, 0), + gsSP2Triangles(0, 4, 3, 0, 5, 3, 4, 0), + gsSP2Triangles(5, 4, 6, 0, 7, 3, 5, 0), + gsSP2Triangles(8, 3, 7, 0, 3, 8, 1, 0), + gsSP2Triangles(9, 10, 11, 0, 10, 12, 11, 0), + gsSP2Triangles(12, 10, 13, 0, 12, 13, 14, 0), + gsSP2Triangles(14, 13, 15, 0, 14, 16, 12, 0), + gsSP2Triangles(17, 12, 16, 0, 11, 12, 17, 0), gsSPEndDisplayList(), }; Gfx luigi_face_part_cap_on_dl[] = { - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 1, 0, 0), - gsSP1Triangle(0, 4, 3, 0), - gsSP1Triangle(3, 5, 1, 0), - gsSP1Triangle(6, 5, 3, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(7, 10, 8, 0), - gsSP1Triangle(11, 10, 7, 0), - gsSP1Triangle(11, 12, 10, 0), - gsSP1Triangle(11, 13, 12, 0), - gsSP1Triangle(11, 14, 13, 0), - gsSP1Triangle(12, 13, 15, 0), - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 16, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(2, 1, 3, 0), - gsSP1Triangle(4, 2, 3, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(5, 6, 4, 0), - gsSP1Triangle(2, 4, 6, 0), - gsSP1Triangle(0, 2, 6, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(8, 10, 9, 0), - gsSP1Triangle(8, 11, 10, 0), - gsSP1Triangle(10, 11, 12, 0), - gsSP1Triangle(13, 9, 10, 0), - gsSP1Triangle(13, 14, 9, 0), - gsSP1Triangle(13, 10, 15, 0), - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 32, 14, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 3, 1, 0), - gsSP1Triangle(3, 4, 1, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(6, 1, 4, 0), - gsSP1Triangle(1, 6, 2, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(8, 7, 10, 0), - gsSP1Triangle(10, 7, 11, 0), - gsSP1Triangle(12, 11, 7, 0), - gsSP1Triangle(13, 10, 11, 0), - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 46, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(0, 4, 3, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(4, 6, 5, 0), - gsSP1Triangle(6, 4, 7, 0), - gsSP1Triangle(7, 8, 6, 0), - gsSP1Triangle(9, 8, 7, 0), - gsSP1Triangle(10, 8, 9, 0), - gsSP1Triangle(8, 10, 11, 0), - gsSP1Triangle(10, 12, 11, 0), - gsSP1Triangle(11, 12, 13, 0), - gsSP1Triangle(12, 14, 13, 0), - gsSP1Triangle(14, 12, 15, 0), - gsSP1Triangle(15, 1, 14, 0), - gsSP1Triangle(2, 1, 15, 0), - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 62, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 3, 2, 0), - gsSP1Triangle(4, 3, 1, 0), - gsSP1Triangle(5, 3, 4, 0), - gsSP1Triangle(5, 4, 6, 0), - gsSP1Triangle(5, 6, 7, 0), - gsSP1Triangle(8, 7, 6, 0), - gsSP1Triangle(9, 8, 6, 0), - gsSP1Triangle(9, 10, 8, 0), - gsSP1Triangle(10, 11, 8, 0), - gsSP1Triangle(11, 10, 12, 0), - gsSP1Triangle(13, 11, 12, 0), - gsSP1Triangle(13, 12, 14, 0), - gsSP1Triangle(15, 13, 14, 0), - gsSP1Triangle(14, 2, 15, 0), - gsSP1Triangle(14, 0, 2, 0), - gsSPVertex(luigi_face_part_cap_on_dl_vertex + 78, 10, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(2, 1, 3, 0), - gsSP1Triangle(2, 3, 4, 0), - gsSP1Triangle(2, 4, 5, 0), - gsSP1Triangle(6, 2, 5, 0), - gsSP1Triangle(7, 6, 5, 0), - gsSP1Triangle(7, 8, 6, 0), - gsSP1Triangle(9, 6, 8, 0), - gsSP1Triangle(9, 0, 6, 0), - gsSP1Triangle(6, 0, 2, 0), + gsSPVertex(luigi_face_part_cap_on_dl_vertex + 0, 60, 0), + gsSP2Triangles(0, 1, 2, 0, 2, 1, 3, 0), + gsSP2Triangles(1, 4, 3, 0, 5, 3, 4, 0), + gsSP2Triangles(6, 5, 4, 0, 6, 4, 7, 0), + gsSP2Triangles(6, 8, 5, 0, 6, 9, 8, 0), + gsSP2Triangles(10, 9, 6, 0, 10, 11, 9, 0), + gsSP2Triangles(11, 10, 12, 0, 11, 12, 13, 0), + gsSP2Triangles(9, 11, 13, 0, 8, 9, 13, 0), + gsSP2Triangles(3, 14, 2, 0, 15, 14, 3, 0), + gsSP2Triangles(5, 15, 3, 0, 5, 16, 15, 0), + gsSP2Triangles(14, 15, 17, 0, 15, 18, 17, 0), + gsSP2Triangles(19, 17, 18, 0, 19, 18, 20, 0), + gsSP2Triangles(19, 20, 21, 0, 20, 22, 21, 0), + gsSP2Triangles(22, 23, 21, 0, 19, 21, 23, 0), + gsSP2Triangles(17, 19, 23, 0, 24, 14, 17, 0), + gsSP2Triangles(25, 26, 27, 0, 26, 25, 28, 0), + gsSP2Triangles(24, 28, 25, 0, 29, 26, 28, 0), + gsSP2Triangles(28, 30, 29, 0, 31, 32, 33, 0), + gsSP2Triangles(33, 34, 31, 0, 33, 35, 34, 0), + gsSP2Triangles(35, 33, 7, 0, 35, 36, 34, 0), + gsSP2Triangles(37, 0, 38, 0, 38, 0, 39, 0), + gsSP2Triangles(39, 40, 38, 0, 40, 39, 41, 0), + gsSP2Triangles(42, 40, 41, 0, 43, 42, 41, 0), + gsSP2Triangles(41, 27, 43, 0, 44, 43, 27, 0), + gsSP2Triangles(27, 45, 44, 0, 44, 45, 36, 0), + gsSP2Triangles(36, 46, 44, 0, 46, 36, 47, 0), + gsSP2Triangles(48, 46, 47, 0, 49, 48, 47, 0), + gsSP2Triangles(47, 37, 49, 0, 38, 49, 37, 0), + gsSP2Triangles(50, 49, 38, 0, 51, 50, 38, 0), + gsSP2Triangles(38, 40, 51, 0, 40, 52, 51, 0), + gsSP2Triangles(52, 40, 42, 0, 52, 42, 53, 0), + gsSP2Triangles(53, 42, 54, 0, 42, 43, 54, 0), + gsSP2Triangles(54, 43, 44, 0, 55, 54, 44, 0), + gsSP2Triangles(44, 46, 55, 0, 46, 56, 55, 0), + gsSP2Triangles(48, 56, 46, 0, 48, 57, 56, 0), + gsSP2Triangles(50, 57, 48, 0, 49, 50, 48, 0), + gsSP2Triangles(58, 57, 50, 0, 57, 58, 59, 0), + gsSP2Triangles(58, 53, 59, 0, 52, 53, 58, 0), + gsSP2Triangles(51, 52, 58, 0, 51, 58, 50, 0), + gsSP2Triangles(54, 59, 53, 0, 59, 54, 55, 0), + gsSP2Triangles(59, 55, 56, 0, 59, 56, 57, 0), gsSPEndDisplayList(), }; Gfx luigi_face_cap_dl[] = { - gsSPVertex(luigi_face_cap_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(4, 3, 0, 0), - gsSP1Triangle(4, 0, 2, 0), - gsSP1Triangle(5, 4, 2, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(6, 5, 7, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(4, 6, 8, 0), - gsSP1Triangle(4, 8, 3, 0), - gsSP1Triangle(9, 1, 10, 0), - gsSP1Triangle(11, 1, 9, 0), - gsSP1Triangle(12, 11, 9, 0), - gsSP1Triangle(13, 12, 9, 0), - gsSP1Triangle(9, 14, 13, 0), - gsSP1Triangle(10, 14, 9, 0), - gsSP1Triangle(14, 10, 15, 0), - gsSPVertex(luigi_face_cap_dl_vertex + 16, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 3, 1, 0), - gsSP1Triangle(4, 1, 3, 0), - gsSP1Triangle(3, 5, 4, 0), - gsSP1Triangle(5, 6, 4, 0), - gsSP1Triangle(7, 4, 6, 0), - gsSP1Triangle(7, 6, 8, 0), - gsSP1Triangle(8, 9, 7, 0), - gsSP1Triangle(7, 9, 10, 0), - gsSP1Triangle(9, 11, 10, 0), - gsSP1Triangle(9, 12, 11, 0), - gsSP1Triangle(12, 13, 11, 0), - gsSP1Triangle(12, 14, 13, 0), - gsSP1Triangle(13, 14, 15, 0), - gsSPVertex(luigi_face_cap_dl_vertex + 32, 11, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(1, 3, 4, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(6, 5, 3, 0), - gsSP1Triangle(7, 5, 6, 0), - gsSP1Triangle(8, 5, 7, 0), - gsSP1Triangle(5, 8, 9, 0), - gsSP1Triangle(4, 5, 9, 0), - gsSP1Triangle(4, 9, 10, 0), - gsSP1Triangle(4, 10, 2, 0), - gsSP1Triangle(1, 4, 2, 0), + gsSPVertex(luigi_face_cap_dl_vertex + 0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0), + gsSP2Triangles(4, 3, 0, 0, 4, 5, 3, 0), + gsSP2Triangles(6, 3, 5, 0, 5, 7, 6, 0), + gsSP2Triangles(6, 7, 8, 0, 8, 7, 9, 0), + gsSP2Triangles(9, 10, 8, 0, 10, 9, 11, 0), + gsSP2Triangles(10, 11, 12, 0, 12, 13, 10, 0), + gsSP2Triangles(14, 13, 12, 0, 14, 15, 13, 0), + gsSP2Triangles(13, 15, 16, 0, 16, 15, 17, 0), + gsSP2Triangles(15, 18, 17, 0, 17, 18, 1, 0), + gsSP2Triangles(2, 1, 18, 0, 1, 19, 17, 0), + gsSP2Triangles(20, 19, 1, 0, 3, 20, 1, 0), + gsSP2Triangles(20, 3, 6, 0, 20, 6, 21, 0), + gsSP2Triangles(6, 8, 21, 0, 8, 10, 21, 0), + gsSP2Triangles(13, 21, 10, 0, 13, 22, 21, 0), + gsSP2Triangles(16, 22, 13, 0, 17, 22, 16, 0), + gsSP2Triangles(17, 19, 22, 0, 22, 19, 20, 0), + gsSP2Triangles(20, 21, 22, 0, 23, 24, 4, 0), + gsSP2Triangles(23, 25, 24, 0, 23, 26, 25, 0), + gsSP2Triangles(27, 25, 26, 0, 11, 27, 26, 0), + gsSP2Triangles(28, 27, 11, 0, 28, 25, 27, 0), + gsSP2Triangles(29, 25, 28, 0, 24, 25, 29, 0), + gsSP1Triangle(24, 29, 4, 0), gsSPEndDisplayList(), }; Gfx luigi_face_back_hair_cap_on_dl[] = { - gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(2, 1, 3, 0), - gsSP1Triangle(1, 4, 3, 0), - gsSP1Triangle(1, 5, 4, 0), - gsSP1Triangle(6, 5, 1, 0), - gsSP1Triangle(6, 7, 5, 0), - gsSP1Triangle(6, 8, 7, 0), - gsSP1Triangle(9, 8, 6, 0), - gsSP1Triangle(9, 6, 10, 0), - gsSP1Triangle(9, 11, 8, 0), - gsSP1Triangle(12, 11, 9, 0), - gsSP1Triangle(12, 13, 11, 0), - gsSP1Triangle(13, 12, 5, 0), - gsSP1Triangle(7, 13, 5, 0), - gsSP1Triangle(13, 7, 14, 0), - gsSP1Triangle(7, 8, 14, 0), - gsSP1Triangle(8, 11, 14, 0), - gsSP1Triangle(11, 13, 14, 0), - gsSP1Triangle(2, 3, 15, 0), - gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 16, 8, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSP1Triangle(0, 3, 4, 0), - gsSP1Triangle(4, 3, 5, 0), - gsSP1Triangle(6, 4, 5, 0), - gsSP1Triangle(6, 1, 4, 0), - gsSP1Triangle(6, 7, 1, 0), - gsSP1Triangle(0, 4, 1, 0), + gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 0, 19, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(2, 4, 3, 0, 4, 2, 5, 0), + gsSP2Triangles(5, 6, 4, 0, 6, 5, 7, 0), + gsSP2Triangles(7, 8, 6, 0, 7, 0, 8, 0), + gsSP2Triangles(7, 9, 0, 0, 7, 10, 9, 0), + gsSP2Triangles(11, 10, 7, 0, 7, 12, 11, 0), + gsSP2Triangles(13, 11, 12, 0, 12, 14, 13, 0), + gsSP2Triangles(15, 13, 14, 0, 14, 9, 15, 0), + gsSP2Triangles(14, 16, 9, 0, 10, 15, 9, 0), + gsSP2Triangles(10, 17, 15, 0, 11, 17, 10, 0), + gsSP2Triangles(13, 17, 11, 0, 17, 13, 15, 0), + gsSP2Triangles(3, 8, 0, 0, 3, 18, 8, 0), + gsSP2Triangles(4, 18, 3, 0, 6, 18, 4, 0), + gsSP1Triangle(8, 18, 6, 0), gsSPEndDisplayList(), }; -const Gfx luigi_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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 11), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), - 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, luigi_texture_add_sideburn), - 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(luigi_hair_sideburn_cap_on_dl), - gsDPSetCycleType(G_CYC_1CYCLE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightsPlayerPart(SKIN), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_skin_sideburn), - 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), - gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPEndDisplayList(), -}; - -const Gfx luigi_l_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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 17), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_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, luigi_texture_l_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(luigi_l_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightsPlayerPart(CAP), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_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, luigi_texture_l_cap), - 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(luigi_l_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPEndDisplayList(), -}; - const Gfx luigi_face_cap_on_dl[] = { + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), gsSPDisplayList(luigi_face_part_cap_on_dl), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_face_cap_dl), @@ -1930,17 +1687,42 @@ const Gfx luigi_face_cap_on_dl[] = { const Gfx luigi_cap_on_eyes_front[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -1954,17 +1736,42 @@ const Gfx luigi_cap_on_eyes_front[] = { const Gfx luigi_cap_on_eyes_half_closed[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -1978,17 +1785,42 @@ const Gfx luigi_cap_on_eyes_half_closed[] = { const Gfx luigi_cap_on_eyes_closed[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2002,17 +1834,42 @@ const Gfx luigi_cap_on_eyes_closed[] = { const Gfx luigi_cap_on_eyes_right[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2026,17 +1883,42 @@ const Gfx luigi_cap_on_eyes_right[] = { const Gfx luigi_cap_on_eyes_left[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2050,17 +1932,42 @@ const Gfx luigi_cap_on_eyes_left[] = { const Gfx luigi_cap_on_eyes_up[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2074,17 +1981,42 @@ const Gfx luigi_cap_on_eyes_up[] = { const Gfx luigi_cap_on_eyes_down[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2098,17 +2030,425 @@ const Gfx luigi_cap_on_eyes_down[] = { const Gfx luigi_cap_on_eyes_dead[] = { gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), - 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, luigi_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x040119A0 - 0x04011A90 +const Gfx luigi_cap_on_eyes_front_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011A90 - 0x04011B80 +const Gfx luigi_cap_on_eyes_half_closed_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011B80 - 0x04011C70 +const Gfx luigi_cap_on_eyes_closed_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011C70 - 0x04011D60 +const Gfx luigi_cap_on_eyes_right_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011D60 - 0x04011E50 +const Gfx luigi_cap_on_eyes_left_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011E50 - 0x04011F40 +const Gfx luigi_cap_on_eyes_up_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04011F40 - 0x04012030 +const Gfx luigi_cap_on_eyes_down_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_on_dl), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_on_dl), + gsSPEndDisplayList(), +}; + +// 0x04012030 - 0x04012120 +const Gfx luigi_cap_on_eyes_dead_transparent[] = { + gsDPPipeSync(), + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_on_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -2132,528 +2472,310 @@ const Gfx luigi_metal_cap_on_shared_dl[] = { }; Vtx luigi_eyes_cap_off_dl_vertex[12] = { - {{ {78, 89, -20}, 0, {282, 1028}, {67, 68, 173, 255} }}, - {{ {135, 74, -54}, 0, {-84, 412}, {25, 91, 171, 255} }}, - {{ {94, 76, -56}, 0, {-98, 860}, {17, 100, 180, 255} }}, - {{ {166, 84, -26}, 0, {202, 68}, {25, 117, 214, 255} }}, - {{ {135, 91, 0}, 0, {480, 402}, {10, 127, 0, 255} }}, - {{ {88, 92, 0}, 0, {488, 916}, {97, 82, 0, 255} }}, - {{ {78, 89, 20}, 0, {700, 1020}, {70, 67, 82, 255} }}, - {{ {166, 84, 27}, 0, {756, 60}, {25, 118, 41, 255} }}, - {{ {135, 74, 55}, 0, {1054, 392}, {25, 91, 85, 255} }}, - {{ {94, 76, 57}, 0, {1084, 840}, {17, 101, 76, 255} }}, - {{ {147, 31, 77}, 0, {1282, 258}, {0, 55, 115, 255} }}, - {{ {147, 31, -76}, 0, {-318, 286}, {246, 51, 140, 255} }}, + {{{94, 76, -56}, 0, {-102, 860}, {0x30, 0x5C, 0xB7, 0xFF}}}, + {{{78, 89, -20}, 0, {282, 1022}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{135, 74, -54}, 0, {-88, 412}, {0x19, 0x5C, 0xAC, 0xFF}}}, + {{{166, 84, -26}, 0, {198, 66}, {0xF5, 0x73, 0xCC, 0xFF}}}, + {{{135, 91, 0}, 0, {480, 398}, {0x13, 0x7E, 0x00, 0xFF}}}, + {{{88, 92, 0}, 0, {488, 902}, {0x6A, 0x46, 0x00, 0xFF}}}, + {{{78, 89, 20}, 0, {698, 1010}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{166, 84, 27}, 0, {750, 48}, {0x01, 0x76, 0x2F, 0xFF}}}, + {{{135, 74, 55}, 0, {1050, 380}, {0x19, 0x5C, 0x54, 0xFF}}}, + {{{94, 76, 57}, 0, {1080, 826}, {0x30, 0x5C, 0x49, 0xFF}}}, + {{{147, 31, 77}, 0, {1280, 240}, {0x05, 0x38, 0x72, 0xFF}}}, + {{{147, 31, -76}, 0, {-322, 286}, {0xFE, 0x36, 0x8D, 0xFF}}}, }; Vtx luigi_hair_sideburn_cap_off_dl_vertex[12] = { - {{ {88, 42, -76}, 0, {-70, 700}, {7, 42, 136, 255} }}, - {{ {147, 31, -76}, 0, {90, -58}, {246, 51, 140, 255} }}, - {{ {115, -12, -91}, 0, {916, 184}, {255, 17, 130, 255} }}, - {{ {80, -24, -92}, 0, {1150, 582}, {0, 89, 165, 255} }}, - {{ {32, -5, -84}, 0, {842, 1210}, {187, 248, 149, 255} }}, - {{ {34, 34, -78}, 0, {118, 1334}, {213, 31, 140, 255} }}, - {{ {88, 42, 77}, 0, {-74, 726}, {6, 43, 119, 255} }}, - {{ {115, -11, 93}, 0, {922, 122}, {254, 18, 126, 255} }}, - {{ {147, 31, 77}, 0, {22, -68}, {0, 55, 115, 255} }}, - {{ {80, -24, 93}, 0, {1238, 518}, {254, 89, 91, 255} }}, - {{ {32, -5, 85}, 0, {968, 1192}, {187, 248, 107, 255} }}, - {{ {34, 34, 79}, 0, {196, 1366}, {213, 31, 116, 255} }}, + {{{88, 42, 77}, 0, {-74, 726}, {0x10, 0x28, 0x77, 0xFF}}}, + {{{34, 34, 79}, 0, {196, 1366}, {0xDA, 0x21, 0x75, 0xFF}}}, + {{{32, -5, 85}, 0, {968, 1192}, {0xC2, 0x05, 0x6F, 0xFF}}}, + {{{80, -24, 93}, 0, {1238, 518}, {0x04, 0x59, 0x5B, 0xFF}}}, + {{{115, -11, 93}, 0, {922, 122}, {0xFF, 0x13, 0x7E, 0xFF}}}, + {{{147, 31, 77}, 0, {22, -68}, {0x05, 0x38, 0x72, 0xFF}}}, + {{{32, -5, -84}, 0, {842, 1210}, {0xC2, 0x05, 0x91, 0xFF}}}, + {{{34, 34, -78}, 0, {118, 1334}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{88, 42, -76}, 0, {-70, 700}, {0x11, 0x27, 0x88, 0xFF}}}, + {{{80, -24, -92}, 0, {1150, 582}, {0x06, 0x59, 0xA6, 0xFF}}}, + {{{115, -12, -91}, 0, {916, 184}, {0xFF, 0x13, 0x82, 0xFF}}}, + {{{147, 31, -76}, 0, {90, -58}, {0xFE, 0x36, 0x8D, 0xFF}}}, }; -Vtx luigi_mustache_cap_off_dl_vertex[21] = { - {{ {78, 89, 20}, 0, {248, 50}, {70, 67, 82, 255} }}, - {{ {58, 93, 28}, 0, {330, 316}, {20, 35, 120, 255} }}, - {{ {66, 76, 68}, 0, {948, -8}, {7, 85, 94, 255} }}, - {{ {35, 79, 58}, 0, {784, 566}, {211, 87, 81, 255} }}, - {{ {35, 94, 27}, 0, {292, 670}, {183, 45, 94, 255} }}, - {{ {13, 83, 24}, 0, {336, 1006}, {173, 91, 31, 255} }}, - {{ {24, 91, 0}, 0, {-30, 876}, {139, 50, 0, 255} }}, - {{ {-7, 40, 43}, 0, {768, 1210}, {147, 20, 62, 255} }}, - {{ {34, 34, 79}, 0, {1276, 438}, {213, 31, 116, 255} }}, - {{ {35, 94, -26}, 0, {294, 656}, {184, 46, 162, 255} }}, - {{ {13, 83, -24}, 0, {310, 1002}, {174, 91, 224, 255} }}, - {{ {24, 91, 0}, 0, {-38, 852}, {139, 50, 0, 255} }}, - {{ {35, 79, -57}, 0, {780, 576}, {211, 86, 174, 255} }}, - {{ {58, 93, -27}, 0, {360, 296}, {18, 35, 135, 255} }}, - {{ {66, 76, -67}, 0, {992, -10}, {7, 85, 162, 255} }}, - {{ {78, 89, -20}, 0, {322, -20}, {67, 68, 173, 255} }}, - {{ {34, 34, -78}, 0, {1272, 464}, {213, 31, 140, 255} }}, - {{ {35, 79, -57}, 0, {780, 576}, {211, 86, 174, 255} }}, - {{ {66, 76, -67}, 0, {992, -10}, {7, 85, 162, 255} }}, - {{ {-7, 40, -42}, 0, {720, 1228}, {147, 19, 194, 255} }}, - {{ {13, 83, -24}, 0, {310, 1002}, {174, 91, 224, 255} }}, +Vtx luigi_mustache_cap_off_dl_vertex[18] = { + {{{66, 76, -67}, 0, {992, -10}, {0x23, 0x59, 0xAD, 0xFF}}}, + {{{58, 93, -27}, 0, {360, 296}, {0x0E, 0x16, 0x84, 0xFF}}}, + {{{78, 89, -20}, 0, {322, -20}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{35, 79, -57}, 0, {780, 576}, {0xD7, 0x61, 0xB9, 0xFF}}}, + {{{34, 34, -78}, 0, {1272, 464}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{-7, 40, -42}, 0, {720, 1228}, {0x94, 0x1D, 0xC4, 0xFF}}}, + {{{13, 83, -24}, 0, {310, 1002}, {0xB1, 0x61, 0xEA, 0xFF}}}, + {{{35, 94, -26}, 0, {294, 656}, {0xA7, 0x32, 0xB4, 0xFF}}}, + {{{24, 91, 0}, 0, {-38, 852}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{58, 93, 28}, 0, {330, 316}, {0x0E, 0x16, 0x7C, 0xFF}}}, + {{{66, 76, 68}, 0, {948, -8}, {0x23, 0x59, 0x53, 0xFF}}}, + {{{78, 89, 20}, 0, {248, 50}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{35, 79, 58}, 0, {784, 566}, {0xD7, 0x61, 0x47, 0xFF}}}, + {{{35, 94, 27}, 0, {292, 670}, {0xA8, 0x33, 0x4B, 0xFF}}}, + {{{13, 83, 24}, 0, {336, 1006}, {0xB1, 0x61, 0x16, 0xFF}}}, + {{{24, 91, 0}, 0, {-30, 876}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{-7, 40, 43}, 0, {768, 1210}, {0x94, 0x1D, 0x3C, 0xFF}}}, + {{{34, 34, 79}, 0, {1276, 438}, {0xDA, 0x21, 0x75, 0xFF}}}, }; -Vtx luigi_face_part_cap_off_dl_vertex[88] = { - {{ {66, 76, 68}, 0, {0, 0}, {7, 85, 94, 255} }}, - {{ {94, 76, 57}, 0, {0, 0}, {17, 101, 76, 255} }}, - {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, - {{ {88, 42, 77}, 0, {0, 0}, {6, 43, 119, 255} }}, - {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, - {{ {135, 74, 55}, 0, {0, 0}, {25, 91, 85, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, - {{ {13, 83, -24}, 0, {0, 0}, {174, 91, 224, 255} }}, - {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, - {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, - {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, - {{ {-7, 40, -42}, 0, {0, 0}, {147, 19, 194, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, - {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, - {{ {57, -27, -110}, 0, {0, 0}, {217, 254, 135, 255} }}, - {{ {80, -24, -92}, 0, {0, 0}, {0, 89, 165, 255} }}, - {{ {95, -31, -110}, 0, {0, 0}, {43, 243, 137, 255} }}, - {{ {115, -12, -91}, 0, {0, 0}, {255, 17, 130, 255} }}, - {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, - {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, - {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, - {{ {-7, 40, 43}, 0, {0, 0}, {147, 20, 62, 255} }}, - {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, - {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, - {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {57, -27, 111}, 0, {0, 0}, {217, 254, 121, 255} }}, - {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, - {{ {88, -51, 74}, 0, {0, 0}, {224, 183, 99, 255} }}, - {{ {95, -31, 111}, 0, {0, 0}, {42, 241, 119, 255} }}, - {{ {115, -11, 93}, 0, {0, 0}, {254, 18, 126, 255} }}, - {{ {80, -24, 93}, 0, {0, 0}, {254, 89, 91, 255} }}, - {{ {88, 42, -76}, 0, {0, 0}, {7, 42, 136, 255} }}, - {{ {135, 74, -54}, 0, {0, 0}, {25, 91, 171, 255} }}, - {{ {147, 31, -76}, 0, {0, 0}, {246, 51, 140, 255} }}, - {{ {94, 76, -56}, 0, {0, 0}, {17, 100, 180, 255} }}, - {{ {66, 76, -67}, 0, {0, 0}, {7, 85, 162, 255} }}, - {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, - {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, - {{ {35, 94, 27}, 0, {0, 0}, {183, 45, 94, 255} }}, - {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, - {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, - {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, - {{ {58, 93, 28}, 0, {0, 0}, {20, 35, 120, 255} }}, - {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, - {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, - {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, - {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, - {{ {88, 92, 0}, 0, {0, 0}, {97, 82, 0, 255} }}, - {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, - {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, - {{ {58, 93, -27}, 0, {0, 0}, {18, 35, 135, 255} }}, - {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, - {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, - {{ {35, 94, -26}, 0, {0, 0}, {184, 46, 162, 255} }}, - {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, - {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, - {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, - {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, - {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, - {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, - {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, - {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, - {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, - {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, - {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, - {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, - {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, - {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, - {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, - {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, - {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, - {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, - {{ {39, 156, 0}, 0, {0, 0}, {224, 123, 0, 255} }}, - {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, - {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, - {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, - {{ {77, 157, 0}, 0, {0, 0}, {35, 122, 0, 255} }}, - {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, - {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, - {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, +Vtx luigi_face_part_cap_off_dl_vertex[60] = { + {{{66, 76, -67}, 0, {0, 0}, {0x23, 0x59, 0xAD, 0xFF}}}, + {{{78, 89, -20}, 0, {0, 0}, {0x40, 0x5B, 0xC3, 0xFF}}}, + {{{94, 76, -56}, 0, {0, 0}, {0x30, 0x5C, 0xB7, 0xFF}}}, + {{{88, 42, -76}, 0, {0, 0}, {0x11, 0x27, 0x88, 0xFF}}}, + {{{135, 74, -54}, 0, {0, 0}, {0x19, 0x5C, 0xAC, 0xFF}}}, + {{{147, 31, -76}, 0, {0, 0}, {0xFE, 0x36, 0x8D, 0xFF}}}, + {{{34, 34, -78}, 0, {0, 0}, {0xDA, 0x21, 0x8B, 0xFF}}}, + {{{34, 34, 79}, 0, {0, 0}, {0xDA, 0x21, 0x75, 0xFF}}}, + {{{88, 42, 77}, 0, {0, 0}, {0x10, 0x28, 0x77, 0xFF}}}, + {{{66, 76, 68}, 0, {0, 0}, {0x23, 0x59, 0x53, 0xFF}}}, + {{{94, 76, 57}, 0, {0, 0}, {0x30, 0x5C, 0x49, 0xFF}}}, + {{{135, 74, 55}, 0, {0, 0}, {0x19, 0x5C, 0x54, 0xFF}}}, + {{{147, 31, 77}, 0, {0, 0}, {0x05, 0x38, 0x72, 0xFF}}}, + {{{78, 89, 20}, 0, {0, 0}, {0x40, 0x5B, 0x3D, 0xFF}}}, + {{{-7, 40, 43}, 0, {0, 0}, {0x94, 0x1D, 0x3C, 0xFF}}}, + {{{32, -5, 85}, 0, {0, 0}, {0xC2, 0x05, 0x6F, 0xFF}}}, + {{{12, -51, 35}, 0, {0, 0}, {0x88, 0xF8, 0x29, 0xFF}}}, + {{{-19, 46, 0}, 0, {0, 0}, {0x84, 0x1D, 0x00, 0xFF}}}, + {{{13, 83, 24}, 0, {0, 0}, {0xB1, 0x61, 0x16, 0xFF}}}, + {{{13, 83, -24}, 0, {0, 0}, {0xB1, 0x61, 0xEA, 0xFF}}}, + {{{24, 91, 0}, 0, {0, 0}, {0x95, 0x44, 0x00, 0xFF}}}, + {{{-7, 40, -42}, 0, {0, 0}, {0x94, 0x1D, 0xC4, 0xFF}}}, + {{{12, -51, -34}, 0, {0, 0}, {0x88, 0xF8, 0xD7, 0xFF}}}, + {{{32, -5, -84}, 0, {0, 0}, {0xC2, 0x05, 0x91, 0xFF}}}, + {{{51, -44, -64}, 0, {0, 0}, {0xE3, 0xCA, 0x91, 0xFF}}}, + {{{57, -27, -110}, 0, {0, 0}, {0xCC, 0xE5, 0x8F, 0xFF}}}, + {{{80, -24, -92}, 0, {0, 0}, {0x06, 0x59, 0xA6, 0xFF}}}, + {{{95, -31, -110}, 0, {0, 0}, {0x32, 0x19, 0x8E, 0xFF}}}, + {{{115, -12, -91}, 0, {0, 0}, {0xFF, 0x13, 0x82, 0xFF}}}, + {{{88, -51, -73}, 0, {0, 0}, {0xE8, 0xA9, 0xA6, 0xFF}}}, + {{{26, -79, 0}, 0, {0, 0}, {0x9F, 0xAE, 0x00, 0xFF}}}, + {{{88, 92, 0}, 0, {0, 0}, {0x6A, 0x46, 0x00, 0xFF}}}, + {{{96, 113, 0}, 0, {0, 0}, {0x7B, 0xE1, 0x06, 0xFF}}}, + {{{81, 112, -35}, 0, {0, 0}, {0x51, 0xDC, 0xA5, 0xFF}}}, + {{{58, 93, -27}, 0, {0, 0}, {0x0E, 0x16, 0x84, 0xFF}}}, + {{{55, 112, -40}, 0, {0, 0}, {0x00, 0xEC, 0x83, 0xFF}}}, + {{{29, 112, -35}, 0, {0, 0}, {0xBB, 0xDE, 0x9B, 0xFF}}}, + {{{35, 94, -26}, 0, {0, 0}, {0xA7, 0x32, 0xB4, 0xFF}}}, + {{{15, 111, 0}, 0, {0, 0}, {0x84, 0xE8, 0xF8, 0xFF}}}, + {{{35, 94, 27}, 0, {0, 0}, {0xA8, 0x33, 0x4B, 0xFF}}}, + {{{29, 112, 36}, 0, {0, 0}, {0xB0, 0xE4, 0x5E, 0xFF}}}, + {{{58, 93, 28}, 0, {0, 0}, {0x0E, 0x16, 0x7C, 0xFF}}}, + {{{55, 112, 41}, 0, {0, 0}, {0x00, 0xEC, 0x7D, 0xFF}}}, + {{{81, 112, 36}, 0, {0, 0}, {0x45, 0xD6, 0x62, 0xFF}}}, + {{{82, 142, 36}, 0, {0, 0}, {0x52, 0x27, 0x58, 0xFF}}}, + {{{96, 142, 0}, 0, {0, 0}, {0x7A, 0x23, 0xF6, 0xFF}}}, + {{{82, 142, -35}, 0, {0, 0}, {0x44, 0x31, 0xA1, 0xFF}}}, + {{{58, 141, -40}, 0, {0, 0}, {0x03, 0x55, 0xA1, 0xFF}}}, + {{{32, 141, -35}, 0, {0, 0}, {0xB8, 0x34, 0xA6, 0xFF}}}, + {{{15, 141, 0}, 0, {0, 0}, {0x8E, 0x38, 0x09, 0xFF}}}, + {{{32, 141, 36}, 0, {0, 0}, {0xC8, 0x3D, 0x60, 0xFF}}}, + {{{58, 141, 41}, 0, {0, 0}, {0x03, 0x56, 0x5E, 0xFF}}}, + {{{77, 157, 0}, 0, {0, 0}, {0x27, 0x79, 0x00, 0xFF}}}, + {{{39, 156, 0}, 0, {0, 0}, {0xEA, 0x7D, 0x00, 0xFF}}}, + {{{51, -44, 65}, 0, {0, 0}, {0xE3, 0xCA, 0x6F, 0xFF}}}, + {{{57, -27, 111}, 0, {0, 0}, {0xCC, 0xE5, 0x71, 0xFF}}}, + {{{88, -51, 74}, 0, {0, 0}, {0xE9, 0xA9, 0x59, 0xFF}}}, + {{{95, -31, 111}, 0, {0, 0}, {0x30, 0x18, 0x73, 0xFF}}}, + {{{115, -11, 93}, 0, {0, 0}, {0xFF, 0x13, 0x7E, 0xFF}}}, + {{{80, -24, 93}, 0, {0, 0}, {0x04, 0x59, 0x5B, 0xFF}}}, }; -Vtx luigi_face_hair_cap_off_dl_vertex[95] = { - {{ {-3, -81, 44}, 0, {0, 0}, {129, 11, 1, 255} }}, - {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, - {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, - {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, - {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, - {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, - {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, - {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, - {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, - {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, - {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, - {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, - {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, - {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, - {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, - {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, - {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, - {{ {115, -12, -91}, 0, {0, 0}, {255, 17, 130, 255} }}, - {{ {176, -9, -97}, 0, {0, 0}, {39, 5, 135, 255} }}, - {{ {147, 31, -76}, 0, {0, 0}, {246, 51, 140, 255} }}, - {{ {191, 61, -79}, 0, {0, 0}, {27, 59, 147, 255} }}, - {{ {142, 63, -57}, 0, {0, 0}, {222, 89, 172, 255} }}, - {{ {166, 84, -26}, 0, {0, 0}, {196, 92, 193, 255} }}, - {{ {202, 84, -59}, 0, {0, 0}, {15, 71, 152, 255} }}, - {{ {192, 116, -13}, 0, {0, 0}, {245, 127, 254, 255} }}, - {{ {151, 87, 0}, 0, {0, 0}, {184, 105, 5, 255} }}, - {{ {166, 84, 27}, 0, {0, 0}, {224, 107, 60, 255} }}, - {{ {200, 79, 48}, 0, {0, 0}, {34, 95, 77, 255} }}, - {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, - {{ {142, 63, 58}, 0, {0, 0}, {236, 86, 92, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, - {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, - {{ {175, -9, 98}, 0, {0, 0}, {39, 8, 121, 255} }}, - {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, - {{ {115, -11, 93}, 0, {0, 0}, {254, 18, 126, 255} }}, - {{ {142, -80, 93}, 0, {0, 0}, {0, 206, 117, 255} }}, - {{ {88, -51, 74}, 0, {0, 0}, {224, 183, 99, 255} }}, - {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, - {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, - {{ {46, -107, 45}, 0, {0, 0}, {60, 152, 41, 255} }}, - {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, - {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, - {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, - {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, - {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, - {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, - {{ {5, -113, -53}, 0, {0, 0}, {185, 158, 216, 255} }}, - {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, - {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, - {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, - {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, - {{ {175, -9, 98}, 0, {0, 0}, {39, 8, 121, 255} }}, - {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, - {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, - {{ {221, -14, 49}, 0, {0, 0}, {112, 240, 58, 255} }}, - {{ {186, -99, 63}, 0, {0, 0}, {71, 176, 68, 255} }}, - {{ {142, -80, 93}, 0, {0, 0}, {0, 206, 117, 255} }}, - {{ {114, -119, 58}, 0, {0, 0}, {233, 149, 64, 255} }}, - {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, - {{ {117, -127, 0}, 0, {0, 0}, {242, 130, 255, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, - {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, - {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, - {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, - {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, - {{ {186, -99, -62}, 0, {0, 0}, {71, 175, 188, 255} }}, - {{ {176, -9, -97}, 0, {0, 0}, {39, 5, 135, 255} }}, - {{ {221, -14, -49}, 0, {0, 0}, {112, 245, 196, 255} }}, - {{ {212, 28, -61}, 0, {0, 0}, {106, 7, 186, 255} }}, - {{ {191, 61, -79}, 0, {0, 0}, {27, 59, 147, 255} }}, - {{ {202, 84, -59}, 0, {0, 0}, {15, 71, 152, 255} }}, - {{ {223, 62, -34}, 0, {0, 0}, {113, 226, 206, 255} }}, - {{ {239, 97, -43}, 0, {0, 0}, {101, 52, 199, 255} }}, - {{ {192, 116, -13}, 0, {0, 0}, {245, 127, 254, 255} }}, - {{ {200, 79, 48}, 0, {0, 0}, {34, 95, 77, 255} }}, - {{ {222, 74, 33}, 0, {0, 0}, {100, 59, 52, 255} }}, - {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, - {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, - {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, - {{ {228, 57, 0}, 0, {0, 0}, {127, 250, 4, 255} }}, - {{ {222, 74, 33}, 0, {0, 0}, {100, 59, 52, 255} }}, - {{ {221, -14, 49}, 0, {0, 0}, {112, 240, 58, 255} }}, - {{ {235, -34, 0}, 0, {0, 0}, {125, 232, 0, 255} }}, - {{ {186, -99, 63}, 0, {0, 0}, {71, 176, 68, 255} }}, - {{ {198, -110, 0}, 0, {0, 0}, {80, 157, 0, 255} }}, - {{ {114, -119, 58}, 0, {0, 0}, {233, 149, 64, 255} }}, - {{ {117, -127, 0}, 0, {0, 0}, {242, 130, 255, 255} }}, - {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, - {{ {186, -99, -62}, 0, {0, 0}, {71, 175, 188, 255} }}, - {{ {221, -14, -49}, 0, {0, 0}, {112, 245, 196, 255} }}, - {{ {212, 28, -61}, 0, {0, 0}, {106, 7, 186, 255} }}, - {{ {223, 62, -34}, 0, {0, 0}, {113, 226, 206, 255} }}, - {{ {239, 97, -43}, 0, {0, 0}, {101, 52, 199, 255} }}, +Vtx luigi_face_hair_cap_off_dl_vertex[52] = { + {{{147, 31, 77}, 0, {0, 0}, {0x05, 0x38, 0x72, 0xFF}}}, + {{{191, 66, 66}, 0, {0, 0}, {0x10, 0x52, 0x5F, 0xFF}}}, + {{{142, 63, 58}, 0, {0, 0}, {0xE4, 0x5D, 0x52, 0xFF}}}, + {{{175, -9, 98}, 0, {0, 0}, {0x2D, 0x01, 0x77, 0xFF}}}, + {{{115, -11, 93}, 0, {0, 0}, {0xFF, 0x13, 0x7E, 0xFF}}}, + {{{142, -80, 93}, 0, {0, 0}, {0xEF, 0xD0, 0x74, 0xFF}}}, + {{{88, -51, 74}, 0, {0, 0}, {0xE9, 0xA9, 0x59, 0xFF}}}, + {{{62, -96, 42}, 0, {0, 0}, {0xF3, 0x8A, 0x2E, 0xFF}}}, + {{{51, -44, 65}, 0, {0, 0}, {0xE3, 0xCA, 0x6F, 0xFF}}}, + {{{46, -107, 45}, 0, {0, 0}, {0x58, 0xB3, 0x32, 0xFF}}}, + {{{19, -78, 73}, 0, {0, 0}, {0xDB, 0xFD, 0x79, 0xFF}}}, + {{{12, -51, 35}, 0, {0, 0}, {0x88, 0xF8, 0x29, 0xFF}}}, + {{{-3, -81, 44}, 0, {0, 0}, {0x86, 0xDF, 0x0B, 0xFF}}}, + {{{26, -79, 0}, 0, {0, 0}, {0x9F, 0xAE, 0x00, 0xFF}}}, + {{{24, -109, 21}, 0, {0, 0}, {0xFB, 0x8E, 0xC9, 0xFF}}}, + {{{62, -96, -42}, 0, {0, 0}, {0xF3, 0x8A, 0xD2, 0xFF}}}, + {{{24, -109, -21}, 0, {0, 0}, {0xFB, 0x8E, 0x37, 0xFF}}}, + {{{-3, -81, -44}, 0, {0, 0}, {0x86, 0xDF, 0xF5, 0xFF}}}, + {{{12, -51, -34}, 0, {0, 0}, {0x88, 0xF8, 0xD7, 0xFF}}}, + {{{19, -78, -73}, 0, {0, 0}, {0xDB, 0xFD, 0x87, 0xFF}}}, + {{{51, -44, -64}, 0, {0, 0}, {0xE3, 0xCA, 0x91, 0xFF}}}, + {{{46, -107, -45}, 0, {0, 0}, {0x58, 0xB3, 0xCE, 0xFF}}}, + {{{88, -51, -73}, 0, {0, 0}, {0xE8, 0xA9, 0xA6, 0xFF}}}, + {{{142, -81, -92}, 0, {0, 0}, {0xEF, 0xCF, 0x8C, 0xFF}}}, + {{{115, -12, -91}, 0, {0, 0}, {0xFF, 0x13, 0x82, 0xFF}}}, + {{{176, -9, -97}, 0, {0, 0}, {0x2F, 0xFE, 0x8A, 0xFF}}}, + {{{147, 31, -76}, 0, {0, 0}, {0xFE, 0x36, 0x8D, 0xFF}}}, + {{{191, 61, -79}, 0, {0, 0}, {0x07, 0x49, 0x98, 0xFF}}}, + {{{142, 63, -57}, 0, {0, 0}, {0xD6, 0x5B, 0xB3, 0xFF}}}, + {{{166, 84, -26}, 0, {0, 0}, {0xF5, 0x73, 0xCC, 0xFF}}}, + {{{202, 84, -59}, 0, {0, 0}, {0x31, 0x46, 0xA2, 0xFF}}}, + {{{192, 116, -13}, 0, {0, 0}, {0xE4, 0x7C, 0xFB, 0xFF}}}, + {{{151, 87, 0}, 0, {0, 0}, {0xB7, 0x68, 0xFE, 0xFF}}}, + {{{166, 84, 27}, 0, {0, 0}, {0x01, 0x76, 0x2F, 0xFF}}}, + {{{200, 79, 48}, 0, {0, 0}, {0x38, 0x61, 0x3C, 0xFF}}}, + {{{218, 28, 63}, 0, {0, 0}, {0x6E, 0x12, 0x3D, 0xFF}}}, + {{{221, -14, 49}, 0, {0, 0}, {0x73, 0xEC, 0x32, 0xFF}}}, + {{{186, -99, 63}, 0, {0, 0}, {0x51, 0xBA, 0x45, 0xFF}}}, + {{{114, -119, 58}, 0, {0, 0}, {0xFB, 0x8E, 0x38, 0xFF}}}, + {{{117, -127, 0}, 0, {0, 0}, {0xE8, 0x83, 0xFF, 0xFF}}}, + {{{114, -117, -58}, 0, {0, 0}, {0xFC, 0x8E, 0xC8, 0xFF}}}, + {{{186, -99, -62}, 0, {0, 0}, {0x50, 0xB9, 0xBD, 0xFF}}}, + {{{221, -14, -49}, 0, {0, 0}, {0x73, 0xF1, 0xCC, 0xFF}}}, + {{{212, 28, -61}, 0, {0, 0}, {0x72, 0x03, 0xC8, 0xFF}}}, + {{{223, 62, -34}, 0, {0, 0}, {0x72, 0xE4, 0xD1, 0xFF}}}, + {{{239, 97, -43}, 0, {0, 0}, {0x76, 0x2C, 0xF3, 0xFF}}}, + {{{222, 74, 33}, 0, {0, 0}, {0x71, 0x27, 0x2A, 0xFF}}}, + {{{228, 57, 0}, 0, {0, 0}, {0x7F, 0xF9, 0xFF, 0xFF}}}, + {{{235, -34, 0}, 0, {0, 0}, {0x7B, 0xE0, 0x00, 0xFF}}}, + {{{198, -110, 0}, 0, {0, 0}, {0x40, 0x92, 0x00, 0xFF}}}, + {{{5, -113, 53}, 0, {0, 0}, {0xDA, 0x93, 0x35, 0xFF}}}, + {{{5, -113, -53}, 0, {0, 0}, {0xDA, 0x93, 0xCB, 0xFF}}}, }; Gfx luigi_eyes_cap_off_dl[] = { gsSPVertex(luigi_eyes_cap_off_dl_vertex + 0, 12, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 1, 0, 0), - gsSP1Triangle(4, 3, 0, 0), - gsSP1Triangle(5, 4, 0, 0), - gsSP1Triangle(5, 6, 4, 0), - gsSP1Triangle(4, 6, 7, 0), - gsSP1Triangle(7, 6, 8, 0), - gsSP1Triangle(9, 8, 6, 0), - gsSP1Triangle(7, 8, 10, 0), - gsSP1Triangle(3, 11, 1, 0), - gsSP1Triangle(4, 7, 3, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(1, 4, 3, 0, 1, 5, 4, 0), + gsSP2Triangles(4, 5, 6, 0, 7, 4, 6, 0), + gsSP2Triangles(8, 7, 6, 0, 6, 9, 8, 0), + gsSP2Triangles(10, 7, 8, 0, 3, 4, 7, 0), + gsSP1Triangle(2, 3, 11, 0), gsSPEndDisplayList(), }; Gfx luigi_mustache_cap_off_dl[] = { - gsSPVertex(luigi_mustache_cap_off_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 3, 2, 0), - gsSP1Triangle(4, 3, 1, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(4, 6, 5, 0), - gsSP1Triangle(3, 5, 7, 0), - gsSP1Triangle(3, 7, 8, 0), - gsSP1Triangle(8, 2, 3, 0), - gsSP1Triangle(9, 10, 11, 0), - gsSP1Triangle(12, 10, 9, 0), - gsSP1Triangle(9, 13, 12, 0), - gsSP1Triangle(13, 14, 12, 0), - gsSP1Triangle(15, 14, 13, 0), - gsSPVertex(luigi_mustache_cap_off_dl_vertex + 16, 5, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(1, 3, 4, 0), + gsSPVertex(luigi_mustache_cap_off_dl_vertex + 0, 18, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0), + gsSP2Triangles(0, 4, 3, 0, 5, 3, 4, 0), + gsSP2Triangles(6, 3, 5, 0, 7, 3, 6, 0), + gsSP2Triangles(8, 7, 6, 0, 3, 7, 1, 0), + gsSP2Triangles(9, 10, 11, 0, 10, 9, 12, 0), + gsSP2Triangles(9, 13, 12, 0, 14, 12, 13, 0), + gsSP2Triangles(14, 13, 15, 0, 16, 12, 14, 0), + gsSP2Triangles(17, 12, 16, 0, 12, 17, 10, 0), gsSPEndDisplayList(), }; Gfx luigi_hair_sideburn_cap_off_dl[] = { gsSPVertex(luigi_hair_sideburn_cap_off_dl_vertex + 0, 12, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 0, 2, 0), - gsSP1Triangle(3, 4, 0, 0), - gsSP1Triangle(4, 5, 0, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(6, 9, 7, 0), - gsSP1Triangle(10, 9, 6, 0), - gsSP1Triangle(11, 10, 6, 0), + gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0), + gsSP2Triangles(3, 4, 0, 0, 5, 0, 4, 0), + gsSP2Triangles(6, 7, 8, 0, 8, 9, 6, 0), + gsSP2Triangles(9, 8, 10, 0, 10, 8, 11, 0), gsSPEndDisplayList(), }; Gfx luigi_face_part_cap_off_dl[] = { - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 1, 0, 0), - gsSP1Triangle(0, 4, 3, 0), - gsSP1Triangle(3, 5, 1, 0), - gsSP1Triangle(6, 5, 3, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(7, 10, 8, 0), - gsSP1Triangle(11, 10, 7, 0), - gsSP1Triangle(11, 12, 10, 0), - gsSP1Triangle(11, 13, 12, 0), - gsSP1Triangle(11, 14, 13, 0), - gsSP1Triangle(12, 13, 15, 0), - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 16, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(2, 1, 3, 0), - gsSP1Triangle(4, 2, 3, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(5, 6, 4, 0), - gsSP1Triangle(2, 4, 6, 0), - gsSP1Triangle(0, 2, 6, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(8, 10, 9, 0), - gsSP1Triangle(8, 11, 10, 0), - gsSP1Triangle(10, 11, 12, 0), - gsSP1Triangle(13, 9, 10, 0), - gsSP1Triangle(13, 14, 9, 0), - gsSP1Triangle(13, 10, 15, 0), - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 32, 14, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 3, 1, 0), - gsSP1Triangle(3, 4, 1, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(4, 5, 6, 0), - gsSP1Triangle(6, 1, 4, 0), - gsSP1Triangle(1, 6, 2, 0), - gsSP1Triangle(7, 8, 9, 0), - gsSP1Triangle(8, 7, 10, 0), - gsSP1Triangle(10, 7, 11, 0), - gsSP1Triangle(12, 11, 7, 0), - gsSP1Triangle(13, 10, 11, 0), - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 46, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(0, 4, 3, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(4, 6, 5, 0), - gsSP1Triangle(6, 4, 7, 0), - gsSP1Triangle(7, 8, 6, 0), - gsSP1Triangle(9, 8, 7, 0), - gsSP1Triangle(10, 8, 9, 0), - gsSP1Triangle(8, 10, 11, 0), - gsSP1Triangle(10, 12, 11, 0), - gsSP1Triangle(11, 12, 13, 0), - gsSP1Triangle(12, 14, 13, 0), - gsSP1Triangle(14, 12, 15, 0), - gsSP1Triangle(15, 1, 14, 0), - gsSP1Triangle(2, 1, 15, 0), - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 62, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 3, 2, 0), - gsSP1Triangle(4, 3, 1, 0), - gsSP1Triangle(5, 3, 4, 0), - gsSP1Triangle(5, 4, 6, 0), - gsSP1Triangle(5, 6, 7, 0), - gsSP1Triangle(8, 7, 6, 0), - gsSP1Triangle(9, 8, 6, 0), - gsSP1Triangle(9, 10, 8, 0), - gsSP1Triangle(10, 11, 8, 0), - gsSP1Triangle(11, 10, 12, 0), - gsSP1Triangle(13, 11, 12, 0), - gsSP1Triangle(13, 12, 14, 0), - gsSP1Triangle(15, 13, 14, 0), - gsSP1Triangle(14, 2, 15, 0), - gsSP1Triangle(14, 0, 2, 0), - gsSPVertex(luigi_face_part_cap_off_dl_vertex + 78, 10, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(2, 1, 3, 0), - gsSP1Triangle(2, 3, 4, 0), - gsSP1Triangle(2, 4, 5, 0), - gsSP1Triangle(6, 2, 5, 0), - gsSP1Triangle(7, 6, 5, 0), - gsSP1Triangle(7, 8, 6, 0), - gsSP1Triangle(9, 6, 8, 0), - gsSP1Triangle(9, 0, 6, 0), - gsSP1Triangle(6, 0, 2, 0), + gsSPVertex(luigi_face_part_cap_off_dl_vertex + 0, 60, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(3, 2, 4, 0, 4, 5, 3, 0), + gsSP2Triangles(0, 3, 6, 0, 7, 8, 9, 0), + gsSP2Triangles(10, 9, 8, 0, 11, 10, 8, 0), + gsSP2Triangles(8, 12, 11, 0, 9, 10, 13, 0), + gsSP2Triangles(7, 14, 15, 0, 14, 16, 15, 0), + gsSP2Triangles(16, 14, 17, 0, 17, 14, 18, 0), + gsSP2Triangles(18, 19, 17, 0, 20, 19, 18, 0), + gsSP2Triangles(19, 21, 17, 0, 22, 17, 21, 0), + gsSP2Triangles(23, 22, 21, 0, 23, 21, 6, 0), + gsSP2Triangles(23, 24, 22, 0, 23, 25, 24, 0), + gsSP2Triangles(26, 25, 23, 0, 26, 27, 25, 0), + gsSP2Triangles(27, 26, 28, 0, 27, 28, 29, 0), + gsSP2Triangles(25, 27, 29, 0, 24, 25, 29, 0), + gsSP2Triangles(22, 16, 17, 0, 22, 30, 16, 0), + gsSP2Triangles(13, 31, 32, 0, 32, 31, 1, 0), + gsSP2Triangles(1, 33, 32, 0, 33, 1, 34, 0), + gsSP2Triangles(35, 33, 34, 0, 36, 35, 34, 0), + gsSP2Triangles(34, 37, 36, 0, 38, 36, 37, 0), + gsSP2Triangles(37, 20, 38, 0, 38, 20, 39, 0), + gsSP2Triangles(39, 40, 38, 0, 40, 39, 41, 0), + gsSP2Triangles(42, 40, 41, 0, 43, 42, 41, 0), + gsSP2Triangles(41, 13, 43, 0, 32, 43, 13, 0), + gsSP2Triangles(44, 43, 32, 0, 45, 44, 32, 0), + gsSP2Triangles(32, 33, 45, 0, 33, 46, 45, 0), + gsSP2Triangles(35, 46, 33, 0, 35, 47, 46, 0), + gsSP2Triangles(48, 47, 35, 0, 36, 48, 35, 0), + gsSP2Triangles(48, 36, 38, 0, 49, 48, 38, 0), + gsSP2Triangles(38, 40, 49, 0, 40, 50, 49, 0), + gsSP2Triangles(50, 40, 42, 0, 50, 42, 51, 0), + gsSP2Triangles(51, 42, 44, 0, 42, 43, 44, 0), + gsSP2Triangles(44, 52, 51, 0, 52, 44, 45, 0), + gsSP2Triangles(52, 45, 46, 0, 52, 46, 47, 0), + gsSP2Triangles(47, 53, 52, 0, 53, 47, 48, 0), + gsSP2Triangles(49, 53, 48, 0, 49, 50, 53, 0), + gsSP2Triangles(50, 51, 53, 0, 53, 51, 52, 0), + gsSP2Triangles(16, 54, 15, 0, 55, 15, 54, 0), + gsSP2Triangles(55, 54, 56, 0, 55, 56, 57, 0), + gsSP2Triangles(56, 58, 57, 0, 58, 59, 57, 0), + gsSP2Triangles(55, 57, 59, 0, 15, 55, 59, 0), gsSPEndDisplayList(), }; Gfx luigi_face_hair_cap_off_dl[] = { - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 0, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(3, 0, 4, 0), - gsSP1Triangle(0, 5, 4, 0), - gsSP1Triangle(5, 0, 2, 0), - gsSP1Triangle(6, 5, 2, 0), - gsSP1Triangle(6, 2, 7, 0), - gsSP1Triangle(7, 2, 8, 0), - gsSP1Triangle(9, 8, 2, 0), - gsSP1Triangle(10, 9, 2, 0), - gsSP1Triangle(10, 11, 9, 0), - gsSP1Triangle(10, 12, 11, 0), - gsSP1Triangle(12, 13, 11, 0), - gsSP1Triangle(12, 7, 13, 0), - gsSP1Triangle(14, 7, 12, 0), - gsSP1Triangle(14, 15, 7, 0), - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 16, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 0, 2, 0), - gsSP1Triangle(2, 4, 3, 0), - gsSP1Triangle(4, 5, 3, 0), - gsSP1Triangle(5, 4, 6, 0), - gsSP1Triangle(7, 5, 6, 0), - gsSP1Triangle(5, 7, 8, 0), - gsSP1Triangle(8, 7, 9, 0), - gsSP1Triangle(7, 10, 9, 0), - gsSP1Triangle(9, 10, 11, 0), - gsSP1Triangle(12, 9, 11, 0), - gsSP1Triangle(11, 13, 12, 0), - gsSP1Triangle(11, 14, 13, 0), - gsSP1Triangle(15, 13, 14, 0), - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 32, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 3, 1, 0), - gsSP1Triangle(4, 1, 3, 0), - gsSP1Triangle(5, 4, 3, 0), - gsSP1Triangle(6, 4, 5, 0), - gsSP1Triangle(7, 6, 5, 0), - gsSP1Triangle(7, 8, 6, 0), - gsSP1Triangle(7, 9, 8, 0), - gsSP1Triangle(10, 9, 7, 0), - gsSP1Triangle(8, 9, 11, 0), - gsSP1Triangle(12, 8, 11, 0), - gsSP1Triangle(6, 8, 12, 0), - gsSP1Triangle(13, 14, 15, 0), - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 48, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(0, 2, 3, 0), - gsSP1Triangle(0, 3, 4, 0), - gsSP1Triangle(0, 4, 1, 0), - gsSP1Triangle(5, 6, 7, 0), - gsSP1Triangle(6, 5, 8, 0), - gsSP1Triangle(8, 5, 9, 0), - gsSP1Triangle(10, 9, 5, 0), - gsSP1Triangle(10, 11, 9, 0), - gsSP1Triangle(12, 11, 10, 0), - gsSP1Triangle(12, 13, 11, 0), - gsSP1Triangle(12, 14, 13, 0), - gsSP1Triangle(14, 15, 13, 0), - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 64, 16, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(3, 1, 0, 0), - gsSP1Triangle(4, 3, 0, 0), - gsSP1Triangle(3, 4, 5, 0), - gsSP1Triangle(5, 4, 6, 0), - gsSP1Triangle(7, 6, 4, 0), - gsSP1Triangle(6, 7, 8, 0), - gsSP1Triangle(6, 8, 9, 0), - gsSP1Triangle(9, 8, 10, 0), - gsSP1Triangle(8, 11, 10, 0), - gsSP1Triangle(11, 12, 10, 0), - gsSP1Triangle(12, 13, 10, 0), - gsSP1Triangle(14, 13, 12, 0), - gsSP1Triangle(15, 14, 12, 0), - gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 80, 15, 0), - gsSP1Triangle(0, 1, 2, 0), - gsSP1Triangle(1, 0, 3, 0), - gsSP1Triangle(3, 4, 1, 0), - gsSP1Triangle(4, 3, 5, 0), - gsSP1Triangle(6, 4, 5, 0), - gsSP1Triangle(6, 5, 7, 0), - gsSP1Triangle(8, 6, 7, 0), - gsSP1Triangle(8, 9, 6, 0), - gsSP1Triangle(9, 10, 6, 0), - gsSP1Triangle(6, 10, 4, 0), - gsSP1Triangle(10, 11, 4, 0), - gsSP1Triangle(11, 1, 4, 0), - gsSP1Triangle(11, 12, 1, 0), - gsSP1Triangle(12, 13, 1, 0), - gsSP1Triangle(1, 13, 14, 0), - gsSP1Triangle(1, 14, 2, 0), + gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 0, 52, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), + gsSP2Triangles(0, 4, 3, 0, 5, 3, 4, 0), + gsSP2Triangles(6, 5, 4, 0, 7, 5, 6, 0), + gsSP2Triangles(7, 6, 8, 0, 9, 7, 8, 0), + gsSP2Triangles(8, 10, 9, 0, 10, 8, 11, 0), + gsSP2Triangles(11, 12, 10, 0, 12, 11, 13, 0), + gsSP2Triangles(13, 14, 12, 0, 13, 7, 14, 0), + gsSP2Triangles(13, 15, 7, 0, 13, 16, 15, 0), + gsSP2Triangles(17, 16, 13, 0, 13, 18, 17, 0), + gsSP2Triangles(19, 17, 18, 0, 18, 20, 19, 0), + gsSP2Triangles(21, 19, 20, 0, 20, 15, 21, 0), + gsSP2Triangles(20, 22, 15, 0, 22, 23, 15, 0), + gsSP2Triangles(23, 22, 24, 0, 25, 23, 24, 0), + gsSP2Triangles(24, 26, 25, 0, 26, 27, 25, 0), + gsSP2Triangles(27, 26, 28, 0, 29, 27, 28, 0), + gsSP2Triangles(27, 29, 30, 0, 30, 29, 31, 0), + gsSP2Triangles(29, 32, 31, 0, 31, 32, 33, 0), + gsSP2Triangles(34, 31, 33, 0, 33, 1, 34, 0), + gsSP2Triangles(33, 2, 1, 0, 1, 35, 34, 0), + gsSP2Triangles(3, 35, 1, 0, 35, 3, 36, 0), + gsSP2Triangles(36, 3, 37, 0, 5, 37, 3, 0), + gsSP2Triangles(5, 38, 37, 0, 7, 38, 5, 0), + gsSP2Triangles(7, 39, 38, 0, 7, 15, 39, 0), + gsSP2Triangles(15, 40, 39, 0, 23, 40, 15, 0), + gsSP2Triangles(41, 40, 23, 0, 25, 41, 23, 0), + gsSP2Triangles(41, 25, 42, 0, 42, 25, 43, 0), + gsSP2Triangles(27, 43, 25, 0, 43, 27, 30, 0), + gsSP2Triangles(43, 30, 44, 0, 44, 30, 45, 0), + gsSP2Triangles(30, 31, 45, 0, 31, 34, 45, 0), + gsSP2Triangles(34, 46, 45, 0, 35, 46, 34, 0), + gsSP2Triangles(35, 47, 46, 0, 47, 35, 36, 0), + gsSP2Triangles(36, 48, 47, 0, 48, 36, 37, 0), + gsSP2Triangles(49, 48, 37, 0, 49, 37, 38, 0), + gsSP2Triangles(39, 49, 38, 0, 39, 40, 49, 0), + gsSP2Triangles(40, 41, 49, 0, 49, 41, 48, 0), + gsSP2Triangles(41, 42, 48, 0, 42, 47, 48, 0), + gsSP2Triangles(42, 43, 47, 0, 43, 44, 47, 0), + gsSP2Triangles(47, 44, 45, 0, 47, 45, 46, 0), + gsSP2Triangles(9, 14, 7, 0, 9, 50, 14, 0), + gsSP2Triangles(10, 50, 9, 0, 12, 50, 10, 0), + gsSP2Triangles(14, 50, 12, 0, 16, 21, 15, 0), + gsSP2Triangles(16, 51, 21, 0, 17, 51, 16, 0), + gsSP2Triangles(19, 51, 17, 0, 51, 19, 21, 0), gsSPEndDisplayList(), }; -const Gfx luigi_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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 11), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), - 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, luigi_texture_add_sideburn), - 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(luigi_hair_sideburn_cap_off_dl), - gsDPSetCycleType(G_CYC_1CYCLE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightsPlayerPart(SKIN), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_skin_sideburn), - 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), - gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPEndDisplayList(), -}; - +// 0x040139C0 - 0x040139E8 const Gfx luigi_face_cap_off_dl[] = { + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), gsSPDisplayList(luigi_face_part_cap_off_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_hair_cap_off_dl), gsSPEndDisplayList(), }; +// 0x040139E8 - 0x04013AB8 const Gfx luigi_cap_off_eyes_front[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2671,6 +2793,20 @@ const Gfx luigi_cap_off_eyes_front[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2678,8 +2814,8 @@ const Gfx luigi_cap_off_eyes_front[] = { gsSPEndDisplayList(), }; +// 0x04013AB8 - 0x04013B88 const Gfx luigi_cap_off_eyes_half_closed[] = { - gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), 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), @@ -2695,6 +2831,20 @@ const Gfx luigi_cap_off_eyes_half_closed[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2702,8 +2852,8 @@ const Gfx luigi_cap_off_eyes_half_closed[] = { gsSPEndDisplayList(), }; +// 0x04013B88 - 0x04013C58 const Gfx luigi_cap_off_eyes_closed[] = { - gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), 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), @@ -2719,6 +2869,20 @@ const Gfx luigi_cap_off_eyes_closed[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2726,6 +2890,7 @@ const Gfx luigi_cap_off_eyes_closed[] = { gsSPEndDisplayList(), }; +// 0x04013C58 - 0x04013D28 const Gfx luigi_cap_off_eyes_right[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2743,6 +2908,20 @@ const Gfx luigi_cap_off_eyes_right[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2750,6 +2929,7 @@ const Gfx luigi_cap_off_eyes_right[] = { gsSPEndDisplayList(), }; +// 0x04013D28 - 0x04013DF8 const Gfx luigi_cap_off_eyes_left[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2767,6 +2947,20 @@ const Gfx luigi_cap_off_eyes_left[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2774,6 +2968,7 @@ const Gfx luigi_cap_off_eyes_left[] = { gsSPEndDisplayList(), }; +// 0x04013DF8 - 0x04013EC8 const Gfx luigi_cap_off_eyes_up[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2791,6 +2986,20 @@ const Gfx luigi_cap_off_eyes_up[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2798,6 +3007,7 @@ const Gfx luigi_cap_off_eyes_up[] = { gsSPEndDisplayList(), }; +// 0x04013EC8 - 0x04013F98 const Gfx luigi_cap_off_eyes_down[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2815,6 +3025,20 @@ const Gfx luigi_cap_off_eyes_down[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2822,6 +3046,7 @@ const Gfx luigi_cap_off_eyes_down[] = { gsSPEndDisplayList(), }; +// 0x04013F98 - 0x04014068 const Gfx luigi_cap_off_eyes_dead[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), @@ -2839,6 +3064,20 @@ const Gfx luigi_cap_off_eyes_dead[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_NOOP, G_RM_AA_ZB_XLU_SURF2), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2846,6 +3085,301 @@ const Gfx luigi_cap_off_eyes_dead[] = { gsSPEndDisplayList(), }; +// 0x040139E8 - 0x04013AB8 +const Gfx luigi_cap_off_eyes_front_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_front), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013AB8 - 0x04013B88 +const Gfx luigi_cap_off_eyes_half_closed_transparent[] = { + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_half_closed), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013B88 - 0x04013C58 +const Gfx luigi_cap_off_eyes_closed_transparent[] = { + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_closed), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013C58 - 0x04013D28 +const Gfx luigi_cap_off_eyes_right_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_right), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013D28 - 0x04013DF8 +const Gfx luigi_cap_off_eyes_left_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_left), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013DF8 - 0x04013EC8 +const Gfx luigi_cap_off_eyes_up_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_up), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013EC8 - 0x04013F98 +const Gfx luigi_cap_off_eyes_down_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_down), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04013F98 - 0x04014068 +const Gfx luigi_cap_off_eyes_dead_transparent[] = { + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), + 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, luigi_texture_eyes_dead), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(SKIN), + gsSPDisplayList(luigi_eyes_cap_off_dl), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPDisplayList(luigi_mustache_cap_off_dl), + gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, ENVIRONMENT, 0, 1, 0, COMBINED, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 115, 6, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 4, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), + gsSPDisplayList(luigi_face_cap_off_dl), + gsSPEndDisplayList(), +}; + +// 0x04014068 - 0x04014098 const Gfx luigi_metal_cap_off_shared_dl[] = { gsSPDisplayList(luigi_eyes_cap_off_dl), gsSPDisplayList(luigi_mustache_cap_off_dl), @@ -2917,6 +3451,7 @@ const Gfx luigi_left_hand_open_shared_dl[] = { gsSPEndDisplayList(), }; +// 0x04019CA0 - 0x04019CC0 const Gfx luigi_left_hand_open[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2987,6 +3522,7 @@ const Gfx luigi_right_hand_open_dl[] = { gsSPEndDisplayList(), }; +// 0x0401A428 - 0x0401A448 const Gfx luigi_right_hand_open[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -2995,10 +3531,12 @@ const Gfx luigi_right_hand_open[] = { gsSPEndDisplayList(), }; +// 0x0401A448 - 0x0401A478 const Gfx luigi_metal_right_hand_open[] = { gsSPDisplayList(luigi_right_hand_open_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), @@ -3111,49 +3649,11 @@ const Gfx luigi_right_hand_cap_bottom_dl[] = { gsSPEndDisplayList(), }; -const Gfx luigi_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(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 17), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_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, luigi_texture_l_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(luigi_right_hand_cap_l_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0), - gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightsPlayerPart(CAP), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_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, luigi_texture_l_cap), - 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(luigi_right_hand_cap_l_logo_dl), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPEndDisplayList(), -}; - +// 0x0401AF20 - 0x0401AF60 const Gfx luigi_right_hand_cap_dl[] = { gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_top_dl), - gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in luigi_misc.c gsSPDisplayList(luigi_right_hand_cap_hand_position_dl), gsDPSetCombineLERP(SHADE, 0, PRIMITIVE, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, PRIMITIVE, 0, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), @@ -3209,9 +3709,9 @@ const Gfx luigi_right_hand_cap_wings_half_2_dl[] = { }; // 0x0401B0E0 - 0x0401B138 -const Gfx luigi_right_hand_cap_wings_intial_dl[] = { +const Gfx luigi_right_hand_cap_wings_initial_dl[] = { gsDPPipeSync(), - gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), + gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), 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), @@ -3223,62 +3723,43 @@ const Gfx luigi_right_hand_cap_wings_intial_dl[] = { gsSPEndDisplayList(), }; -const Gfx luigi_right_hand_cap_wings_transparent_intial_dl[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), - 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(&luigi_white_lights_group.l, 1), - gsSPLight(&luigi_white_lights_group.a, 2), - 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), - gsSPEndDisplayList(), -}; - -const Gfx luigi_right_hand_cap_metal_wings_intial_dl[] = { - gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0), - gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK), - gsSPTexture(65535, 65535, 0, 0, 1), - gsSPLight(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 15), - gsSPEndDisplayList(), -}; - // 0x0401B138 - 0x0401B158 const Gfx luigi_right_hand_cap_wings_end_dl[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; +// 0x0401B158 - 0x0401B1D8 const Gfx luigi_right_hand_cap[] = { + gsSPCopyLightsPlayerPart(CAP), + gsDPSetCombineLERP(1, PRIMITIVE, TEXEL0, PRIMITIVE, 0, 0, 0, ENVIRONMENT, COMBINED, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 7, 0), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), + gsDPSetTile(G_IM_FMT_IA, 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_IA, 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), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 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(luigi_right_hand_cap_l_logo_dl), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_right_hand_cap_dl), gsSPEndDisplayList(), }; +// 0x0401B1D8 - 0x0401B230 const Gfx luigi_right_hand_cap_wings[] = { - gsSPDisplayList(luigi_right_hand_cap_wings_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_2), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), - gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), - gsSPEndDisplayList(), -}; - -const Gfx luigi_right_hand_cap_wings_transparent[] = { - gsSPDisplayList(luigi_right_hand_cap_wings_transparent_intial_dl), + gsSPDisplayList(luigi_right_hand_cap_wings_initial_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), @@ -3291,6 +3772,7 @@ const Gfx luigi_right_hand_cap_wings_transparent[] = { gsSPEndDisplayList(), }; +// 0x0401B230 - 0x0401B278 const Gfx luigi_metal_right_hand_cap_shared_dl[] = { gsSPDisplayList(luigi_right_hand_cap_l_logo_dl), gsSPDisplayList(luigi_right_hand_cap_top_dl), @@ -3298,61 +3780,40 @@ const Gfx luigi_metal_right_hand_cap_shared_dl[] = { gsSPDisplayList(luigi_right_hand_cap_bottom_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), }; +// 0x0401B278 - 0x0401B2D0 const Gfx luigi_metal_right_hand_cap_shared_dl_wings[] = { - gsSPDisplayList(luigi_right_hand_cap_metal_wings_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_shade), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_shade), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), - gsDPSetTileSize(1, 0, 0, 124, 252), - gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), - gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), - gsSPEndDisplayList(), -}; - -const Gfx luigi_metal_right_hand_cap_shared_dl_wings_transparent[] = { - gsSPDisplayList(luigi_right_hand_cap_metal_wings_intial_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), - gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), - gsDPSetTileSize(1, 0, 0, 124, 252), - gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), - gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), @@ -3447,6 +3908,7 @@ const Gfx luigi_right_hand_peace_shared_dl[] = { gsSPEndDisplayList(), }; +// 0x0401BF30 - 0x0401BF50 const Gfx luigi_right_hand_peace[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), @@ -3508,7 +3970,7 @@ const Gfx luigi_cap_wings[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), gsSPEndDisplayList(), }; @@ -3535,7 +3997,7 @@ const Gfx luigi_cap_wings_transparent[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), gsSPEndDisplayList(), }; @@ -3543,36 +4005,50 @@ const Gfx luigi_cap_wings_transparent[] = { const Gfx luigi_metal_cap_wings[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPLight(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_shade), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_shade), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), + gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(4032, 1984, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + 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), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPEndDisplayList(), }; @@ -3580,36 +4056,50 @@ const Gfx luigi_metal_cap_wings[] = { const Gfx luigi_metal_cap_wings_transparent[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPLight(&luigi_black_lights_group.l, 1), - gsSPCopyLightEXT(2, 15), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_shade), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_1_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_wings_half_1_dl), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_shade), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 252), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_wings_half_2_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, 256), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 252), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), + gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK), + gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, COMBINED, 0, 0, 0, ENVIRONMENT), + gsDPSetCycleType(G_CYC_2CYCLE), + gsSPTexture(4032, 1984, 0, 0, 1), + gsDPSetPrimColor(0, 0, 255, 0, 0, 255), + gsSPCopyPlayerPartToColor(G_COL_PRIM, 6, 0), + gsDPSetEnvRGB(127, 127, 127), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + 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), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPEndDisplayList(), }; @@ -3617,6 +4107,7 @@ const Gfx luigi_material_revert_render_settings[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING), gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCycleType(G_CYC_1CYCLE), 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),