From 1df1cc9558f2b8299954297497e5b32bfb2a3ebd Mon Sep 17 00:00:00 2001 From: FluffaMario Date: Fri, 8 Dec 2023 03:38:52 -0600 Subject: [PATCH 1/7] Update Wario, hope this works... --- actors/luigi_cap/model.inc.c | 1 - actors/mario_cap/model.inc.c | 1 - actors/wario/custom_wario_sideburn.rgba16.png | Bin 671 -> 0 bytes actors/wario/custom_wario_sideburn.rgba32.png | Bin 0 -> 642 bytes .../custom_wario_sideburn_add.rgba32.png | Bin 0 -> 436 bytes actors/wario/custom_wario_skin.rgba32.png | Bin 0 -> 296 bytes actors/wario/geo.inc.c | 47 ++-- actors/wario/geo_header.h | 4 +- actors/wario/model.inc.c | 214 ++++++++++++------ actors/wario/wario_externs.h | 15 ++ .../custom_wario_cap_logo.rgba16.png | Bin 547 -> 0 bytes actors/wario_cap/geo.inc.c | 114 +++++++--- actors/wario_cap/geo_header.h | 19 ++ actors/wario_cap/model.inc.c | 160 ++++++++----- data/dynos_mgr_builtin_externs.h | 3 +- data/dynos_mgr_builtin_tex.cpp | 5 +- 16 files changed, 392 insertions(+), 191 deletions(-) delete mode 100644 actors/wario/custom_wario_sideburn.rgba16.png create mode 100644 actors/wario/custom_wario_sideburn.rgba32.png create mode 100644 actors/wario/custom_wario_sideburn_add.rgba32.png create mode 100644 actors/wario/custom_wario_skin.rgba32.png create mode 100644 actors/wario/wario_externs.h delete mode 100644 actors/wario_cap/custom_wario_cap_logo.rgba16.png create mode 100644 actors/wario_cap/geo_header.h diff --git a/actors/luigi_cap/model.inc.c b/actors/luigi_cap/model.inc.c index 9647d74b1..6cb07c222 100644 --- a/actors/luigi_cap/model.inc.c +++ b/actors/luigi_cap/model.inc.c @@ -368,7 +368,6 @@ const Gfx luigi_cap_seg3_dl_03023160[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPDisplayList(luigi_cap_seg3_dl_03022D10), gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index c8bef3c3d..465aa52f8 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -397,7 +397,6 @@ const Gfx mario_cap_seg3_dl_03023160[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), - gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022D10), gsDPPipeSync(), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), diff --git a/actors/wario/custom_wario_sideburn.rgba16.png b/actors/wario/custom_wario_sideburn.rgba16.png deleted file mode 100644 index d74c4ad279eb0fcdc635ccec2e42063f9e1b271f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0yIfPK~z{r<(8qA z!Y~j;(^cTWfkYy~Vfh3k|HUWp3pg|mBoYY@9Jp?7Hq#Ah(l&+N6?@O=X_B7yy<{en zX4~yn{Uxmo%;)pmHVdxTt9m>h<`NhaMx&8B91fZ779<-8iNpPVSGU{E7;uFd19$9l zxv0Tlp!)rO_F>0frrYhRPN!pgWwe-WDI<;vNHP$c{VTj}1=^BifH=pfdIo+D2uTKZ zyPa*7ksT09z!2y2+1!&1%w{unI-Q-*FdmO- zrf);US%u^ASj?K`Y`XML{7q3xHlW2bOxSj5cD}g(+$Y%pU_xSupnJK5mL4Plp_Kuk zuG=_9ajPFt0bw{Cnme>M0DMSSN0ZTnrPu4(C)F$#3)_0pfZ)!w&IHS^6Sz1P-(nyI z$sM7!0ry}c*(BlIMD&wT=Z%_9r?&TnF`!)~opP?Y{0B6FoM8vquE7|EPtgypO^gEd4A2yD;IW}~=VGXkQJ zDlF6*aG_w4eEa?0^vMrmT(`_sBpLV#e*G}=`R@jl`UH)Ykvw4h>-hix002ovPDHLk FV1kSRD$4)> diff --git a/actors/wario/custom_wario_sideburn.rgba32.png b/actors/wario/custom_wario_sideburn.rgba32.png new file mode 100644 index 0000000000000000000000000000000000000000..30034c317633a8fb41ae6a977f96d6d94a96edb1 GIT binary patch literal 642 zcmV-|0)737P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0vAa{K~z{r<(Bb{ z!XOlf>5X6vchM1yGZ;rOj$j#*vKTBfkQ@Cgyln=?Qe;4;Ek#!w=yqK$GC&~Z;G>cRf-i^k zD>ATNuifc%YKc%zZNWZfvsuW;oCEcIKK~Z+)_@+pHAX!esEUIS@$2>K&gXL@Dl;Gq znR-t+l!^^_@d^{M+!6*WZrd%z1^^SQ)hd(`)JbE-rLLckG60-EX#B{jV;}r-(sKyZ5Bow&=-^5hB^>!5Yo@a zO)%isu;`Z4;)w9!ArO4*pjZtA13sb&jJof-rQMGFa=8p1y?-~>o`j>=H`c5T(QMZ! zg^Zefh&Xjd?^F7h%!^ihkeSdUvhbXC=_CF6#7QY}XkA9kM06VVwVn+OLP`{@Fo-zk zg{R*D_*rP(c9N$^i3%dlAabLJ|f9u2WdZ8W7l?yWK9_|JsZo;-$huuK^7Q7E6N}K$NZ9H_crX8Tbi){W7xr ccLUCS0u))2H5GN5mjD0&07*qoM6N<$g8r8uod5s; literal 0 HcmV?d00001 diff --git a/actors/wario/custom_wario_sideburn_add.rgba32.png b/actors/wario/custom_wario_sideburn_add.rgba32.png new file mode 100644 index 0000000000000000000000000000000000000000..101d980292e98ece19c471a832c4f104f5601361 GIT binary patch literal 436 zcmV;l0ZaagP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0ZBH0o%5%PdZNK?m=4W5-!uN!)H7l1$K_POk@EBN+zN# z2MXgipA$fiYEg0(C>Dg~2#N%u&H;Ru8dL$GC|&P_L=N@T3TVj=0A-nKKnX;b3#uXt zlRJNl+tE!)+FQJ#aU7#R0C0@|1LWLI<+Kx&495bpy6d_yIzy5x?*H4T%O?(tyx4HG zg(vhUu9Ml;6G#dG{6-LOorBmy$snT6!PBBPh)2i7(?tXWE+3QZaQu6($Dff}kEtS# e^23K0#(V>q;*I%&`@W(80000!lvI6;>1s;*b3=DkxL735kHCP2GxYyIgF(ktM?es{#1_d70gTL=b>M}NO+Gdm4 z;g|Gd;_-k3N8hQt39fATsyjVp&DrfTOPYnRnD2983fRG?SjH3Gnj8g(-Prc$-rK<>a*ONT&UV)yD$Q+S z9({Q$7@qi;pXd|RKgiSB@?5jRd(n*FA_^CTuI`z`&^Td1Pnw@+!waqx2VNcjYpf+3 n-nqj0@BIziSb~4-YA|G9BBP`5P$1(m&?5|Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0k}y-K~z{r?N*_- z!Y~Xi?+cJ1kw|dhut;!7B$iJ=@(V~LzX6{C4jd92k~Jx5*St44duN7w&fT)!EV=C% zYYPBellb9tWB3~Q8fe_WC$HgOH?;U%3E35BVF_XaYFx!_HqWRT8%UC%*9(QJG)@tW z42Q3{WP~1pe++?mcyX~n)xhxxa5w;5uRM^!Y8BUG7QIlW%g8`6l5)SNQZcBh=>0yx z`OJa>nbUO=;;{&QK*SqN6KR9>I@Xs<78qo(-HvmF)CW@vhCpbU7z|Kl=-F#(laon4 zM>i)%7eZ_4Xx4;u_Ci^O%_gt&qr~XN=z>{bxASUB%bd{Cw_7gkfg_$FPzaHK(6oUTRdbO7#m7V@Az1#@4+(tzN0bMA8S=lPrm6;3CwjmOS) zyF6G%^hvTl$EJxI5E-yGBvDe0DAoOKM?}eW88K_UyCbTaT-o?1Te4cw_@?x0AZOse le-u&uoPoMtJqxP7b5G~Y6(NaQ8(jbZ002ovPDHLkV1gOE=xzW2 diff --git a/actors/wario_cap/geo.inc.c b/actors/wario_cap/geo.inc.c index 3083e1145..9c8a10447 100644 --- a/actors/wario_cap/geo.inc.c +++ b/actors/wario_cap/geo.inc.c @@ -1,84 +1,124 @@ +#include "geo_header.h" // 0x16000CA4 const GeoLayout warios_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022F48), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022F48), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000CF0 const GeoLayout warios_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022FF8), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03022FF8), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000D3C const GeoLayout warios_wing_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_030230B0), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023160), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022F48), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_030230B0), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023160), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; // 0x16000DA8 const GeoLayout warios_winged_metal_cap_geo[] = { - GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), + GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_SCALE(0x00, 16384), + GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75), GEO_OPEN_NODE(), - GEO_ASM(1, geo_mario_set_player_colors), - GEO_ASM(10, geo_update_layer_transparency), - GEO_SWITCH_CASE(2, geo_switch_anim_state), + GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_NODE_START(), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(10, geo_update_layer_transparency), + GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_03023108), - GEO_CLOSE_NODE(), - GEO_NODE_START(), - GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023298), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_seg3_dl_03023108), + GEO_CLOSE_NODE(), + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_seg3_dl_03023298), + GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/wario_cap/geo_header.h b/actors/wario_cap/geo_header.h new file mode 100644 index 000000000..d51a692e4 --- /dev/null +++ b/actors/wario_cap/geo_header.h @@ -0,0 +1,19 @@ +extern const GeoLayout warios_cap_geo[]; +extern const GeoLayout warios_metal_cap_geo[]; +extern const GeoLayout warios_wing_cap_geo[]; +extern const GeoLayout warios_winged_metal_cap_geo[]; +extern const Gfx wario_cap_seg3_dl_03022B30[]; +extern const Gfx wario_cap_seg3_dl_03022B68[]; +extern const Gfx wario_cap_seg3_dl_03022CC8[]; +extern const Gfx wario_cap_seg3_dl_03022D10[]; +extern const Gfx wario_cap_seg3_dl_03022E78[]; +extern const Gfx wario_cap_seg3_dl_03022EA8[]; +extern const Gfx wario_cap_seg3_dl_03022ED8[]; +extern const Gfx wario_cap_seg3_dl_03022F20[]; +extern const Gfx wario_cap_seg3_dl_03022F48[]; +extern const Gfx wario_cap_seg3_dl_03022FF8[]; +extern const Gfx wario_cap_seg3_dl_030230B0[]; +extern const Gfx wario_cap_seg3_dl_03023108[]; +extern const Gfx wario_cap_seg3_dl_03023160[]; +extern const Gfx wario_cap_seg3_dl_03023298[]; +extern const Gfx wario_cap_material_revert_render_settings[]; \ No newline at end of file diff --git a/actors/wario_cap/model.inc.c b/actors/wario_cap/model.inc.c index fb5bffe24..dd5f18d5b 100644 --- a/actors/wario_cap/model.inc.c +++ b/actors/wario_cap/model.inc.c @@ -18,19 +18,21 @@ static const Lights1 wario_cap_seg3_lights_0301CF38 = gdSPDefLights1( 0xff, 0xbd, 0x00, 0x28, 0x28, 0x28 ); -#include "actors/mario/mario_externs.h" -#include "actors/mario_cap/mario_cap_externs.h" -#define wario_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50 -#define wario_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750 -#define wario_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750 -#define wario_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750 -#define wario_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750 -#define wario_cap_texture_cap_inside mario_texture_cap_inside +static const Lights1 wario_cap_black_lights_group = gdSPDefLights1( + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 +); -// 0x0301DF50 -ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[] = { -#include "actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c" -}; +#include "actors/mario/mario_externs.h" +#include "actors/wario/wario_externs.h" +#define wario_cap_texture_metal_shade mario_texture_metal_shade +#define wario_cap_texture_metal_light mario_texture_metal_light +#define wario_cap_texture_w_logo wario_texture_w_logo +#define wario_cap_texture_wings_half_1 mario_texture_wings_half_1 +#define wario_cap_texture_wings_half_2 mario_texture_wings_half_2 +#define wario_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 +#define wario_cap_texture_metal_wings_half_2 mario_texture_metal_wings_half_2 +#define wario_cap_texture_cap_inside mario_texture_cap_inside // 0x03022750 static const Vtx wario_cap_seg3_vertex_03022750[] = { @@ -183,30 +185,30 @@ const Gfx wario_cap_seg3_dl_03022D10[] = { // 0x03022D38 static const Vtx wario_cap_seg3_vertex_03022D38[] = { - {{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}}, - {{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}}, - {{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}}, - {{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}}, - {{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}}, + {{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 131, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 138, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -137, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -130, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x03022DF8 static const Vtx wario_cap_seg3_vertex_03022DF8[] = { - {{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}}, - {{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}}, - {{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}}, + {{{ 268, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 199, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 138, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ 207, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -206, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -137, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -267, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, + {{{ -198, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x03022E78 - 0x03022EA8 @@ -256,7 +258,7 @@ const Gfx wario_cap_seg3_dl_03022F48[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_w_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), @@ -274,12 +276,22 @@ const Gfx wario_cap_seg3_dl_03022F48[] = { // 0x03022FF8 - 0x030230B0 const Gfx wario_cap_seg3_dl_03022FF8[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPLoadTextureBlock(wario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_cap_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_shade), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -295,11 +307,11 @@ const Gfx wario_cap_seg3_dl_03022FF8[] = { // 0x030230B0 - 0x03023108 const Gfx wario_cap_seg3_dl_030230B0[] = { gsSPDisplayList(wario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301E750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301F750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -310,11 +322,11 @@ const Gfx wario_cap_seg3_dl_030230B0[] = { // 0x03023108 - 0x03023160 const Gfx wario_cap_seg3_dl_03023108[] = { gsSPDisplayList(wario_cap_seg3_dl_03022ED8), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03020750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03021750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -331,7 +343,7 @@ const Gfx wario_cap_seg3_dl_03023160[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_w_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), @@ -347,11 +359,11 @@ const Gfx wario_cap_seg3_dl_03023160[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301E750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301F750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -366,18 +378,22 @@ const Gfx wario_cap_seg3_dl_03023160[] = { // 0x03023298 - 0x030233D0 const Gfx wario_cap_seg3_dl_03023298[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301CF50), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), - gsDPPipeSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(METAL), + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), + gsSPSetGeometryMode(G_TEXTURE_GEN), + gsSPTexture(4032, 1984, 0, 0, 1), + gsSPLight(&wario_cap_black_lights_group.l, 1), + gsSPCopyLightEXT(2, 15), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_shade), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, wario_cap_texture_metal_light), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -389,11 +405,11 @@ const Gfx wario_cap_seg3_dl_03023298[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03020750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022E78), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_03021750), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(wario_cap_seg3_dl_03022EA8), @@ -405,3 +421,27 @@ const Gfx wario_cap_seg3_dl_03023298[] = { gsDPSetEnvColor(255, 255, 255, 255), gsSPEndDisplayList(), }; + +const Gfx wario_cap_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(1, 0, 0, 124, 124), + + gsSPEndDisplayList(), +}; diff --git a/data/dynos_mgr_builtin_externs.h b/data/dynos_mgr_builtin_externs.h index 0c40bb6af..3fcbd8f4f 100644 --- a/data/dynos_mgr_builtin_externs.h +++ b/data/dynos_mgr_builtin_externs.h @@ -1678,6 +1678,8 @@ extern ALIGNED8 const Texture toad_player_texture_eyes_dead[]; extern ALIGNED8 const Texture wario_texture_white_button[]; extern ALIGNED8 const Texture wario_texture_w_logo[]; extern ALIGNED8 const Texture wario_texture_hair_sideburn[]; +extern ALIGNED8 const Texture wario_texture_add_sideburn[]; +extern ALIGNED8 const Texture wario_texture_skin_sideburn[]; extern ALIGNED8 const Texture wario_texture_mouth[]; extern ALIGNED8 const Texture wario_texture_mouth_dead[]; extern ALIGNED8 const Texture wario_texture_eyes_front[]; @@ -1688,7 +1690,6 @@ extern ALIGNED8 const Texture wario_texture_eyes_left[]; extern ALIGNED8 const Texture wario_texture_eyes_up[]; extern ALIGNED8 const Texture wario_texture_eyes_down[]; extern ALIGNED8 const Texture wario_texture_eyes_dead[]; -extern ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[]; extern ALIGNED8 const Texture waluigi_custom_waluigi_overalls_button_rgba16[]; extern ALIGNED8 const Texture waluigi_custom_waluigi_metal_rgba16[]; diff --git a/data/dynos_mgr_builtin_tex.cpp b/data/dynos_mgr_builtin_tex.cpp index e71d4c28a..e3114f329 100644 --- a/data/dynos_mgr_builtin_tex.cpp +++ b/data/dynos_mgr_builtin_tex.cpp @@ -1109,7 +1109,9 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = { define_builtin_tex(toad_player_texture_eyes_dead, "actors/toad_player/custom_toad_eyes_dead.rgba32.png", 32, 32, 16), define_builtin_tex(wario_texture_white_button, "actors/wario/custom_wario_overalls_button.rgba16.png", 32, 32, 16), define_builtin_tex(wario_texture_w_logo, "actors/wario/custom_wario_logo.rgba16.png", 32, 32, 16), - define_builtin_tex(wario_texture_hair_sideburn, "actors/wario/custom_wario_sideburn.rgba16.png", 32, 32, 16), + define_builtin_tex(wario_texture_hair_sideburn, "actors/wario/custom_wario_sideburn.rgba32.png", 32, 32, 16), + define_builtin_tex(wario_texture_add_sideburn, "actors/wario/custom_wario_sideburn_add.rgba32.png", 32, 32, 16), + define_builtin_tex(wario_texture_skin_sideburn, "actors/wario/custom_wario_skin.rgba16.png", 32, 32, 16), define_builtin_tex(wario_texture_mouth, "actors/wario/custom_wario_mouth.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_mouth_dead, "actors/wario/custom_wario_mouth_dead.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_front, "actors/wario/custom_wario_eyes_center.rgba16.png", 64, 32, 16), @@ -1120,7 +1122,6 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = { define_builtin_tex(wario_texture_eyes_up, "actors/wario/custom_wario_eyes_up_unused.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_down, "actors/wario/custom_wario_eyes_down_unused.rgba16.png", 64, 32, 16), define_builtin_tex(wario_texture_eyes_dead, "actors/wario/custom_wario_eyes_dead.rgba16.png", 64, 32, 16), - define_builtin_tex(wario_cap_seg3_texture_0301DF50, "actors/wario_cap/custom_wario_cap_logo.rgba16.png", 32, 32, 16), // Waluigi define_builtin_tex(waluigi_custom_waluigi_overalls_button_rgba16, "actors/waluigi/custom_waluigi_overalls_button.rgba16.png", 32, 32, 16), From d9dd7adc956aa3c6b4edce8bac06a56c0489114b Mon Sep 17 00:00:00 2001 From: FluffaMario Date: Fri, 8 Dec 2023 03:45:26 -0600 Subject: [PATCH 2/7] Oops --- ...skin.rgba32.png => custom_wario_skin.rgba16.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename actors/wario/{custom_wario_skin.rgba32.png => custom_wario_skin.rgba16.png} (100%) diff --git a/actors/wario/custom_wario_skin.rgba32.png b/actors/wario/custom_wario_skin.rgba16.png similarity index 100% rename from actors/wario/custom_wario_skin.rgba32.png rename to actors/wario/custom_wario_skin.rgba16.png From aed5353e61bcc53e8c009e59641bf85ca8fda693 Mon Sep 17 00:00:00 2001 From: FluffaMario Date: Fri, 8 Dec 2023 03:52:17 -0600 Subject: [PATCH 3/7] Double Oops --- actors/wario/geo.inc.c | 4 ++-- src/game/characters.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/actors/wario/geo.inc.c b/actors/wario/geo.inc.c index 5345d97d0..8f1bcc6ef 100644 --- a/actors/wario/geo.inc.c +++ b/actors/wario/geo.inc.c @@ -9,7 +9,7 @@ const GeoLayout wario_geo_face_and_wings[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_on), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_hair_sideburn_decal_cap_on), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), @@ -26,7 +26,7 @@ const GeoLayout wario_geo_face_and_wings[] = { GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, wario_hair_sideburn_decal_cap_off), + GEO_DISPLAY_LIST(LAYER_ALPHA, wario_hair_sideburn_decal_cap_off), GEO_OPEN_NODE(), GEO_SWITCH_CASE(0, geo_switch_mario_eyes), GEO_OPEN_NODE(), diff --git a/src/game/characters.c b/src/game/characters.c index 88b8608c5..4f559a69d 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -1157,7 +1157,7 @@ struct Character gCharacters[CT_MAX] = { .capEnemyDecalGfx = NULL, .torsoRotMult = 1.0f, // anim - .animOffsetEnabled = true, + .animOffsetEnabled = false, // character anims .animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, From 4337aeca0e41da21f75b7234ca5a470bc63b6038 Mon Sep 17 00:00:00 2001 From: FluffaMario Date: Fri, 8 Dec 2023 23:20:54 -0600 Subject: [PATCH 4/7] Update Toad --- actors/toad_cap/geo.inc.c | 27 +- actors/toad_cap/model.inc.c | 96 +- .../toad_player/custom_toad_blush.rgba16.png | Bin 723 -> 0 bytes actors/toad_player/custom_toad_cap.ia16.png | Bin 807 -> 693 bytes .../custom_toad_eyes_center.rgba32.png | Bin 816 -> 345 bytes .../custom_toad_eyes_closed.rgba32.png | Bin 682 -> 220 bytes .../custom_toad_eyes_dead.rgba32.png | Bin 1083 -> 390 bytes .../custom_toad_eyes_down.rgba32.png | Bin 846 -> 361 bytes .../custom_toad_eyes_half_closed.rgba32.png | Bin 754 -> 308 bytes .../custom_toad_eyes_left.rgba32.png | Bin 815 -> 346 bytes .../custom_toad_eyes_right.rgba32.png | Bin 830 -> 348 bytes .../custom_toad_eyes_up.rgba32.png | Bin 825 -> 358 bytes .../custom_toad_face_dead.rgba32.png | Bin 0 -> 819 bytes .../custom_toad_face_neutral.rgba32.png | Bin 0 -> 792 bytes actors/toad_player/custom_toad_hair.ia16.png | Bin 0 -> 813 bytes .../toad_player/custom_toad_hair.rgba16.png | Bin 499 -> 0 bytes actors/toad_player/custom_toad_spots.ia16.png | Bin 0 -> 692 bytes actors/toad_player/geo.inc.c | 502 ++-- actors/toad_player/geo_header.h | 320 +-- actors/toad_player/model.inc.c | 2249 ++++++++--------- actors/toad_player/toad_player_externs.h | 4 +- data/dynos_mgr_builtin_externs.h | 4 +- data/dynos_mgr_builtin_tex.cpp | 8 +- src/game/characters.c | 2 +- 24 files changed, 1527 insertions(+), 1685 deletions(-) delete mode 100644 actors/toad_player/custom_toad_blush.rgba16.png create mode 100644 actors/toad_player/custom_toad_face_dead.rgba32.png create mode 100644 actors/toad_player/custom_toad_face_neutral.rgba32.png create mode 100644 actors/toad_player/custom_toad_hair.ia16.png delete mode 100644 actors/toad_player/custom_toad_hair.rgba16.png create mode 100644 actors/toad_player/custom_toad_spots.ia16.png diff --git a/actors/toad_cap/geo.inc.c b/actors/toad_cap/geo.inc.c index 20627fc34..b95973b1f 100644 --- a/actors/toad_cap/geo.inc.c +++ b/actors/toad_cap/geo.inc.c @@ -1,3 +1,4 @@ +#include "geo_header.h" const GeoLayout toads_cap_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), @@ -5,15 +6,16 @@ const GeoLayout toads_cap_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(LAYER_FORCE, 16384), GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), - GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Cap_mesh_layer_5), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), @@ -24,6 +26,7 @@ const GeoLayout toads_cap_geo[] = { GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_material_revert_render_settings), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), @@ -36,8 +39,9 @@ const GeoLayout toads_metal_cap_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(LAYER_FORCE, 16384), GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), - GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), @@ -53,6 +57,7 @@ const GeoLayout toads_metal_cap_geo[] = { GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_material_revert_render_settings), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings), GEO_CLOSE_NODE(), GEO_END(), @@ -65,8 +70,9 @@ const GeoLayout toads_wing_cap_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(LAYER_FORCE, 16384), GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), - GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), @@ -75,7 +81,7 @@ const GeoLayout toads_wing_cap_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1), - GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Cap_mesh_layer_5), GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Wing_Cap_Wings_mesh_layer_4), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -105,8 +111,9 @@ const GeoLayout toads_winged_metal_cap_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(LAYER_FORCE, 16384), GEO_OPEN_NODE(), - GEO_ASM(0, geo_mario_set_player_colors), - GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors), + GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors), GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), diff --git a/actors/toad_cap/model.inc.c b/actors/toad_cap/model.inc.c index 733c15583..25e5fd11e 100644 --- a/actors/toad_cap/model.inc.c +++ b/actors/toad_cap/model.inc.c @@ -7,6 +7,7 @@ static const Lights1 toad_cap_black_lights_group = gdSPDefLights1( #include "actors/toad_player/toad_player_externs.h" #define toad_cap_texture_metal_shade mario_texture_metal_shade #define toad_cap_texture_metal_light mario_texture_metal_light +#define toad_cap_texture_cap toad_player_texture_cap #define toad_cap_texture_spots toad_player_texture_spots #define toad_cap_texture_wings_half_1 mario_texture_wings_half_1 #define toad_cap_texture_wings_half_2 mario_texture_wings_half_2 @@ -313,14 +314,14 @@ Gfx toad_cap_Cap_mesh_layer_5_tri_0[] = { }; Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_0[8] = { - {{ {-132, 118, -76}, 0, {974, 1996}, {167, 238, 89, 255} }}, - {{ {-62, 145, -1}, 0, {-16, 1996}, {167, 238, 89, 255} }}, - {{ {-192, 321, -94}, 0, {974, -16}, {166, 237, 88, 255} }}, - {{ {-125, 348, -19}, 0, {-16, -16}, {166, 236, 88, 255} }}, - {{ {192, 321, -94}, 0, {974, -16}, {90, 237, 88, 255} }}, - {{ {62, 145, -1}, 0, {-16, 1996}, {89, 238, 89, 255} }}, - {{ {132, 118, -76}, 0, {974, 1996}, {89, 238, 89, 255} }}, - {{ {125, 348, -19}, 0, {-16, -16}, {90, 236, 88, 255} }}, + {{ {-132, 118, -76}, 0, {974, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-62, 145, -1}, 0, {-16, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-192, 321, -94}, 0, {974, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-125, 348, -19}, 0, {-16, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {192, 321, -94}, 0, {974, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {62, 145, -1}, 0, {-16, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {132, 118, -76}, 0, {974, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {125, 348, -19}, 0, {-16, -16}, {0xff, 0xff, 0xff, 0xff} }}, }; Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0[] = { @@ -331,14 +332,14 @@ Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0[] = { }; Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_1[8] = { - {{ {-132, 118, -76}, 0, {-16, 1996}, {167, 238, 89, 255} }}, - {{ {-192, 321, -94}, 0, {-16, -16}, {166, 237, 88, 255} }}, - {{ {-261, 293, -171}, 0, {974, -16}, {166, 237, 88, 255} }}, - {{ {-201, 90, -153}, 0, {974, 1996}, {166, 237, 88, 255} }}, - {{ {261, 293, -171}, 0, {974, -16}, {90, 237, 88, 255} }}, - {{ {192, 321, -94}, 0, {-16, -16}, {90, 237, 88, 255} }}, - {{ {132, 118, -76}, 0, {-16, 1996}, {89, 238, 89, 255} }}, - {{ {201, 90, -153}, 0, {974, 1996}, {90, 237, 88, 255} }}, + {{ {-132, 118, -76}, 0, {-16, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-192, 321, -94}, 0, {-16, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-261, 293, -171}, 0, {974, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {-201, 90, -153}, 0, {974, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {261, 293, -171}, 0, {974, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {192, 321, -94}, 0, {-16, -16}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {132, 118, -76}, 0, {-16, 1996}, {0xff, 0xff, 0xff, 0xff} }}, + {{ {201, 90, -153}, 0, {974, 1996}, {0xff, 0xff, 0xff, 0xff} }}, }; Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_1[] = { @@ -377,9 +378,14 @@ Gfx mat_revert_toad_cap_metal[] = { Gfx mat_toad_cap_cap_base[] = { gsDPPipeSync(), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsSPTexture(65535, 65535, 0, 0, 1), gsSPCopyLightsPlayerPart(GLOVES), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_cap), + 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), gsSPEndDisplayList(), }; @@ -388,10 +394,10 @@ Gfx mat_toad_cap_toad_cap_inside[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsSPTexture(65535, 65535, 0, 0, 1), gsSPCopyLightsPlayerPart(GLOVES), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_cap_inside), - 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), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, toad_cap_texture_cap_inside), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 63, 1024), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 2, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0), gsDPSetTileSize(0, 0, 0, 28, 28), gsSPEndDisplayList(), }; @@ -412,7 +418,7 @@ Gfx mat_toad_cap_cap_spots[] = { Gfx mat_toad_cap_wing[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPGeometryMode(G_CULL_BACK, 0), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_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), @@ -424,14 +430,14 @@ Gfx mat_toad_cap_wing[] = { Gfx mat_revert_toad_cap_wing[] = { gsDPPipeSync(), - gsSPGeometryMode(0, G_CULL_BACK), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; Gfx mat_toad_cap_wing_tip[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPGeometryMode(G_CULL_BACK, 0), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_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), @@ -443,14 +449,14 @@ Gfx mat_toad_cap_wing_tip[] = { Gfx mat_revert_toad_cap_wing_tip[] = { gsDPPipeSync(), - gsSPGeometryMode(0, G_CULL_BACK), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; Gfx mat_toad_cap_metal_wing[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPGeometryMode(G_CULL_BACK, 0), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_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), @@ -462,14 +468,14 @@ Gfx mat_toad_cap_metal_wing[] = { Gfx mat_revert_toad_cap_metal_wing[] = { gsDPPipeSync(), - gsSPGeometryMode(0, G_CULL_BACK), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; Gfx mat_toad_cap_metal_wing_tip[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0), - gsSPGeometryMode(G_CULL_BACK, 0), + gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_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), @@ -481,19 +487,19 @@ Gfx mat_toad_cap_metal_wing_tip[] = { Gfx mat_revert_toad_cap_metal_wing_tip[] = { gsDPPipeSync(), - gsSPGeometryMode(0, G_CULL_BACK), + gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; Gfx toad_cap_Cap_mesh_layer_1[] = { - gsSPDisplayList(mat_toad_cap_cap_base), - gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0), gsSPDisplayList(mat_toad_cap_toad_cap_inside), gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_1), gsSPEndDisplayList(), }; Gfx toad_cap_Cap_mesh_layer_5[] = { + gsSPDisplayList(mat_toad_cap_cap_base), + gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0), gsSPDisplayList(mat_toad_cap_cap_spots), gsSPDisplayList(toad_cap_Cap_mesh_layer_5_tri_0), gsSPEndDisplayList(), @@ -502,7 +508,6 @@ Gfx toad_cap_Cap_mesh_layer_5[] = { Gfx toad_cap_Metal_Cap_mesh_layer_1[] = { gsSPDisplayList(mat_toad_cap_metal), gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0), - gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_1), gsSPDisplayList(mat_revert_toad_cap_metal), gsSPEndDisplayList(), }; @@ -528,13 +533,26 @@ Gfx toad_cap_Winged_Metal_Cap_Wings_mesh_layer_4[] = { }; Gfx toad_cap_material_revert_render_settings[] = { - gsDPPipeSync(), - gsSPSetGeometryMode(G_LIGHTING), - gsSPClearGeometryMode(G_TEXTURE_GEN), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), - gsSPTexture(65535, 65535, 0, 0, 0), - gsDPSetEnvColor(255, 255, 255, 255), - gsDPSetAlphaCompare(G_AC_NONE), - gsSPEndDisplayList(), + gsDPPipeSync(), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(6, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(1, 0, 0, 124, 124), + + gsSPEndDisplayList(), }; diff --git a/actors/toad_player/custom_toad_blush.rgba16.png b/actors/toad_player/custom_toad_blush.rgba16.png deleted file mode 100644 index b3885a732556e7ff7c9b8a66013f35c98e35a8f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2LQ1B1E% zoMvK_VqgWzFaj|Lqcof?08$?M`YsEQ;>>q*D+ckw;Fi|5b3g`Xfkz}zkna!(Gm2_> zH2@8Hs{Rzt^WUN+6vtoQ^Sh7g@N3oDK3(uc$P60`K)@AEeCoB@`kdEfMz3Baf8Nvz; zXKa#LBUsf;gCci7^6QTP8^xue$RR!AEGDWKsI2^2ocK}Z#kHI9&Mr%)BuDDWY<=;4#tEfHtCbTIHF;*Zyveg*Tf6x$ cbF28qmFs2~O92xDHsV-pPJQf!Hr4#ka+Oo$-7y^e}7d5AX;_vom+sN2iFuYp1jS` zX0^_M9Zt=B=W~lEZ*#P&1F*T+;au0LeJx(4cdNPtb~f8kMcpx|-{#zP?1fO7B*60Q$N8TUVP~Jb9a=Rb2vy3H@B-(ADM=FP^;3 zF<1f*I)6;)=UQt0_bKARizn~Si`5hO*-6G>LO<71*I5h3^5DgjcW2JNH*}10l5v<& zv+Xb?2xE-p!HXyFj`{-dJI5#|8Hb4*LEZYE9g=5_F_s4}p8Guh+ap<{jUGxH>E|0e zmX{KU^dI^^Cbi1voBQ%B8TG|X31C)@`LzCl78Z*?fhx@a(l8qa00000NkvXXu0mjf Di;zat literal 807 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2LQ1B1E% zoMvK_VqgWzFaj|Lqcof?08$?M`YsEQ;>>q*D+ckw;Fi|5b3g`Xfkz}zkna!(Gm2_> zH83zRIe5A_hD2~4oo*O(*g(KlxQ%Jo5^h!Z2V7HRW=zt4!g1lD-pd8tzkT+l?VZ-7 zQ+?u`j&|gw|Mk~5iCkNLIkVJv_f9p-JKKAi-sQ-?dwbjJhstavhC{tSueo+M{79%P z+34ld%ivM=j6c1;q*njI<$2}L-ap%Nb-%_FeMSL?A0=hCI09AoFoZHBxx6{=w_D@U zBnJO~ISL&DKlg53Z1^p;&tp!ws&F-rNS`&pY zc=2`e2y*n9t#a{WknZaV{Wj~2vS6*g)6CCZb`n!u8B@;hc5%qP**djbsFA@;Q}o3d z)eKR8r+czYCuVURh+#gQd}yK$*Ns~pC)kBAcWrC)=jls{V|bdbRNb({OiIrQYG(O$9nMvVtrmJYghAE9pv#SDP;~7uW~qMKIi;M~kLx9WC#3s*+jafwbvZ{J>7H^P%iOP$+EKj>x@|q5ChuG% zzJN<3PDSj62xF9UOT?2ZzC_WLVgk{u6+Mw}D}>H5Wk>#DKKXiaihFe{DD_dEZW%mX L{an^LB{Ts5DH1EJ diff --git a/actors/toad_player/custom_toad_eyes_center.rgba32.png b/actors/toad_player/custom_toad_eyes_center.rgba32.png index c95924d7e7d3aaa7669fb51f5cc3bd40cfa5ebee..2946ee60206e02248dbcd4da335bbd7909a2ddc7 100644 GIT binary patch delta 318 zcmV-E0m1&T2H66TB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000iZ z000iZ0XPLyBme*a?ny*JR9Hvtl`#&3FbqZA_5!SoJw`@)Etd95?2L5b0E`_OVS@oF z&9{QYK&m*EP^J1wKd~I=E06?8`Fl>j-*WW=FRyP9`JwRXWPiO7uai>{`*CrWWws~^ zmWz=~MdWvL;^ML_ZPPR?#4d+1DPliftue;db!}G=yIjg!i1Iu89vC$9Jku}?G))r= zvCHw8kSM>4@4+1nCM?Us>bj1qs-m`Sk$-SiJW+nzYlu_IxILmg&pGb&~Iuapt?Z6@&O-a7%03IUs|xz#|eU$afHg8Fx&~ ze#^kX8)M;%rZ zVBU&#)|zJ>y{DJ>N%gcSNprr`n_8LwVcoHKtM^=56_-ArJNItS%)cAnH$4#5uVt^| zmEOQB?|FoE>EoXTmmWXiHqiIDEy8?R@?6y<8=k{81`-^Jm!EU1@2yQaIkUz>=God9Go;+rSW z({pfnY{BQYc%q2Y@d_Kh7oU$R?VTs|?5y~MGtG7T^~)xyI8IC5@-;>>`a{9B$;Qnq zDp^Zk*Rscad2($VOT~WHbydE*A8f9AB5Lv4vVNz}vT0=t<1Qaf5`Z|nBFpx?QPiO< zYlAjo>*(oUf;Y_dF?+5!%B{I&DILsKN#mV*&mEg2v*u<`t8C`9yzgd z+cQ>H27g(~aqBA64qvu%gLMaUKWJC51g+qHXW04V)KA?=R^F1nC`QS&+{XV0g+J(f ztZ589_&vkE;cC*14`P4V)d|CU{blo;){_bOnmeXd6 UdjL}!6CUB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000iZ z000iZ0XPLyBme*aaY;l$R9Hvt(9sEiFbqY}h>Peb&f*BJ<_gZCBe;R)VG6|`TM_)Z z2OcSD384l6z~9=agJ<-to?VSh=b5gfZBd_8&r@^p98u>;-Z|5oQm^J|>+~Rxdb+Ds uG_Q%8XsbRV`a-4j>+imv2LJ%RW_AKnvnN&6Q0XH800003g+ literal 682 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2jg1B1E% zoMvK_VqgWzFaj|Lqcof?08*}BZ@L>uapt?Z6@&O-a7%03IUs|xz#|eU$afHg8Fx&~ zehW0@u&0Y-NCfBGDI4`%97WpRFH%qmYYEsH?eSuZ)}F?wg@XJIL2IwB(!9dOzd-P9 zSxMMoHKi~m$D`l#)6|}ydspIbdI& zaAEF#w>wSI89PnogV?I`E){%Seqnoj*JIV1T@`*JWxA>J!ZoFH^YrXP-%bwcaL=x~ zw!Y|RsM7T*m1h^a?-IJ$pycKG%Xhz$Y0Z4$a)q1s11?6&&N17>ZJA!V$B1=COJw;m z>yMF->$(l%gqQH2X10BCxQaJJ@e)U|>KO-76Me0xr<~(Hz4`Detih~HG@vN@S?`~q z^Ac~Tw(r@KucjZ<=oxfcEJ3zJv^}6*;r5{oCk|Bnc&f^_d%?B&2YFN0m2|Lb%f_{4 z&R`cUU{Nn%ynf-Wf^M{~QDm#{b_=&D>6g#mcFm9xUtm_b*I-AxRL)_(6B_+-H&wno z`z0^Qs$cEq&Zt|q^aJDZ0`^N5I@W5P!2;rondKjHu9K1)-Ps`KP^}M_VSADmw|CidD3CvsQ}@S!p@kY*5T>Lov&uBrM}>FKVLBruew(r3N9^Cj)2MSs03gIsE;jo?iWdbLZfA17L8$;bE#)KD9}@TSL8)>16uGWCVp=!N%FxSgKbC&AkH1fmBk z-kmSN@N8TVFJ$FAccAIje401n#J(ueWI~`2a+|})3*LF6JIM(%0%9!Li0`FDFFXLx zme=6A0u%m7o2!7>LApqel|U{v)cQ2-OAp7ABuSDaN&cIv`U6=5brWnDw$lIr002ov JPDHLkV1mm&pHTn+ literal 1083 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2jg1B1E% zoMvK_VqgWzFaj|Lqcof?08*}BZ@L>uapt?Z6@&O-a7%03IUs|xz#|eU$afHg8Fx&~ ze#^kX9OCKX7!twxHq6#1I8emy{lUe$0d*?p8&sm$dS;36NY4_eH@hoal2}r5{7C27 zgMsYscYWscOlDT=^HTXY`#{qKlZ1@{QBn6k*L=Tw`QEgDF@-IY=aj#>)Hk zMZspPn4-SEN=v}vl?nAK0-YD`ueszlFN(Wpg0_W3W3QC%Q`YLUDl*Fsa~1jOBy1O% zqxYxYdv8pJf>=i8V4VN@-c(7emm|H?1fomn#wAC>enR&R^^>gm+ zvM5gK@Vt{M)YQ>;Wr85P+h?g+WyO3ywSy)G}FzB>UH*?+#o!=Vr<2{IxW|Lg>Z?y(0y0Lgy*HH_i6msJP)M$B)q2C4#Yi zA3o^z25*lN(OCcQRl>rgj&GG+GEcTmDP#GNbmMU0y~|1E_33IiG=5*+$hd2w%u>Vu zQ<&n<{aF;gGxS%$8KESB(|t|n)|&aaUbm~Tmp*-asm|FY>6%v6%mA%)W+Cx+_)}DeOBJzj;lKZq}M( si~e=r$g-dKZT&~LmC9CsxdR<6zgc}cFcFyPD9_6bp00i_>zopr0KlNRuK)l5 diff --git a/actors/toad_player/custom_toad_eyes_down.rgba32.png b/actors/toad_player/custom_toad_eyes_down.rgba32.png index 565d29530718bc287a05a7cfc95de8b6ab5f1d52..a07fa184102b393fbea57b7726be5bb0e1996c7c 100644 GIT binary patch delta 334 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 RQtbc$002ovPDHLkV1kJdh3WtR literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2jg1B1E% zoMvK_VqgWzFaj|Lqcof?08*}BZ@L>uapt?Z6@&O-a7%03IUs|xz#|eU$afHg8Fx&~ ze#^kXC`N9&>oof^wN1##TEsn&bXe#5p6pV>2J-@0}!iu-iJ zRK0}a8_O=gOG;)^>Qqn(`?$BbeCBPHg54RZayIE@dC$+jx#P~$Wclwmi`O*pCybMC$6VzjX#Oe47tna`%znvuv)?wNUMB1>egH zE@sSFbT-X6;SBq_DAmxG?=~9KPv6{h`z>4ZL5FMCf2ZV3d%sjQUb6Q6)~BZ86`3DB zue0X9{vzgZJUTn-`MTxTCx5!sH9=SSrSY?74$sytUem0E5$^swZJPhzB+G9sO}{v$ z&p-aOZZf|}jOfKvrV2uJb{s!E7KP3K8Z%oU>a|DwBDM=pTK z*fpbfvz*mT>$BojdvZ*c#;s#~H_5X|dHv5v`X;s2GoSnVJdjSQR}?i^bcY+5&?ry8 N44$rjF6*2UngAiwG+O`w diff --git a/actors/toad_player/custom_toad_eyes_right.rgba32.png b/actors/toad_player/custom_toad_eyes_right.rgba32.png index a8160c17f814b4da06b014fcdf004f113a035072..e85e19e976ced3f3949d0dafe8d63e8f32828835 100644 GIT binary patch delta 321 zcmV-H0lxme2HXOWB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000iZ z000iZ0XPLyBme*a@kvBMR9Hvtl`#&3Fc1VU$p>iZl4p>PchMwYqNjAl11OV@5;`c5 zoZAB$gdx5HMT$pSvpVCI!8TCf?>SA^HLk4NXz9gzk5+|u7Jmj9mYoETng&&t42Yu0 zrfDi-kD3PWtdu1KvMjU47!f?z(C33HOJ(y z>qPKelRgi2vo2^BJkVg!FbtxqswmHMD$5e}r`+`&yIE_;5Ia@ib)qurJ}y{tE(uKp+qZ90bt^a*OE$ T&NGrc00000NkvXXu0mjfbFGP; literal 830 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfp2jg1B1E% zoMvK_VqgWzFaj|Lqcof?08*}BZ@L>uapt?Z6@&O-a7%03IUs|xz#|eU$afHg8Fx&~ ze#^kX6z=Kb7!twxHq6#v+EK*DUBuDxkrGRn_BmFel1yLbf9zL8UjATQxOdjHX;NHX z+EcB)O~RteFU-v}2okyJG4V~v@iUutSC!w}ym$4IL(0A1@7|t!bGv-Hbyrx$d+UJN zn;AKON$s+Cw!Tp4G1=kCQ&&g+Gp3U22^>Nld-hII=zF~9YL=!_njXu&INdXoia(k7 zevVte{Dg$%x1S0pyhHEgn0?OMK3m$r?OeIISk+p~X~ie*lvwq;Ee2pQk*ol>P z?aQ>bUN{}vV03zuPS*C@s|3`n=K39p;doYgRi%$}xAyt|n9#l3nK)^X!`bAtYLy&voDiAX(}>Y&@&Gn3nqDR60cZl7{1 z@7?(eWnWk<@l^N~9;f&@JUgvS!8UcHYs?+Ku1?kY(>`j6D6r(~+wT)Fyx#Horcm zqxl2b3jSScNl}j&_>Vs@pL@r_`+WM}HC+iYdJVTzJ~Tbx%xOq}P(H!!^aFmji7}S@ zo$VUgiuz_U9g~>aP=7G{gP@Ap!DY|HZsl%>;Zgs?`j4$Xt4Q#O-igkW=@%C5VgB>| zppwULu2&apx7hRvTsXgGPI1JQoEC=|rG0v330Id+jtbZLb0gPwY5YQlzDY`!6KWU! mke|13>zWc{>knMKB8sA1y>He6(;el>nZeW5&t;ucLK6TMm_7;s diff --git a/actors/toad_player/custom_toad_eyes_up.rgba32.png b/actors/toad_player/custom_toad_eyes_up.rgba32.png index 40426b27314ad7b5a4cfc803cc6ef5b8845cc47f..251d31a912a5d64a67f5bf5833d894318161f4d2 100644 GIT binary patch delta 331 zcmV-R0krV@2%USDUEj_fJ)+UpcgMT5ZrJUeVOC>u;7Db_i z5JvE**{vk9as(Rdx>iz3BX~C~Y)cf`IkKuM)wZqjz@vse+Y&`|&e5%&>#{5~jw8+U zYy^)Q_Dn|{(K#o#dTwZ1*VU-+dup17x~}uXchj{`bk6n|;uev9R#cXyDGb9v(=-{c zd3S8LWar@dU_>~iq<26olmUIr!5bPHf|5>wRwx77%?bVbl&kk-=X~``_>=zy48t%C d!!Tcj=mo|3=>y%M>Q?{&002ovPDHLkV1iE4mP`Nu literal 825 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 literal 0 HcmV?d00001 diff --git a/actors/toad_player/custom_toad_hair.rgba16.png b/actors/toad_player/custom_toad_hair.rgba16.png deleted file mode 100644 index 77ab835445ec286da9ce58a6fd169cd691631e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$pWAd^9Yfl<SBS9um*UFP7z zkaMa{PU3pYXP$=iV*v{z^%a>9l-f&gl6dAXyQ5+)|Ay+fS9OBUnC_ji?r_wnl=l}_ z#5wx=xU99GefWog`$3L|)GOWDpV!aPW^^jP5W?WMHrPGUIOpT7)!K|2{>3xR+MSj% zzd4~MqkrC=QAe4rI9i`+Goy?7-}OvO{I1^FTzNQOq4to*##@a3{qOIewtl-b+BI}y zpl5L!dxxR@UdDg-8ZR|xnoHX{?EJIko%DnQkQ62{jp00i_>zopr0HRu) AW&i*H diff --git a/actors/toad_player/custom_toad_spots.ia16.png b/actors/toad_player/custom_toad_spots.ia16.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d1310bc648579fc139ac73b10ea922db6b768a GIT binary patch literal 692 zcmV;l0!#ggP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940!c|kK~z{r&DYI} z6G0Tk@r?K}sHh0e!mWY}MPETTZru0;KHNNk8#iwB6%<_vx^90YvD$?8ZHF-7+!}L;Z=AO-iIII$Uv3_a6DWL*TbD~ zJ6sOuLth3yg}32pcoJTQ58-#{)lmVM++=sd{ctnv1!bUeEl^`5{qMr_@Gv|Mg6a)o zQ2@>4_ril9<)_2Yw?^8(1tr-Jk3w${eTIIMc292dTfxE`Iyt%57-MDAp__t?B@5E_OKAb!uOW zSLxlVE`goR_S)=lQ>ye{Sb~kK48WFXPj|4mPOZ|r-G1u~I8dBwt_u%|6~wFbZdC{1 zJhy*4)ut9t-sWgkmq0V&Ja=$7)us|Jp1jSmumo<@OgPUSse`(jCE~%0C-2UK)d9F! zC!?8go;y<4SqsMU;Kh@7=b`EVNE@Y-(M+h>_pnM3#u&?k7f;?D^#ve8ZIn(%Gx02_ z+n92=*BE1Y@Zx#MHZKO Date: Fri, 8 Dec 2023 23:32:33 -0600 Subject: [PATCH 5/7] Fix Toad's Cap Textures --- actors/toad_player/custom_toad_cap.ia16.png | Bin 693 -> 511 bytes actors/toad_player/custom_toad_spots.ia16.png | Bin 692 -> 692 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/actors/toad_player/custom_toad_cap.ia16.png b/actors/toad_player/custom_toad_cap.ia16.png index 16250d5883d54638ab38afa1936ce4d81df80359..f2b7649bf35edfc73e6e5bbacd162208c51c4b4b 100644 GIT binary patch delta 448 zcmV;x0YCn=1^)w(Nq@iq01m(bYSxJf0004$NklhVG<^f$+}td3?8`b3{393lQGG2=Sy@A*&TkH zvCRy84!;nt$1hU!QY8UCq*v)#dX%1|l?40Jk#sE0qyuSB`hSs40#NuxdXTQAE9p*} z;!L`b&ZQISP+A{^0Bd-Y?xm%~vn65-WAVtsgE<&@Bh4jizNr|CM>YfxO%aNpO4hVg zcw|HHfaP6c>VEU)R(Rowcf!6zV4btn zyuh0pk#PWaHGei4*0~pWQzP!Cb_Uqta+^#I@TNw@24H*jCaGaRLD<_pp+@!-{5j(Q zTyv^^$E5IId+vH$~Jo6_cO`M>zb#1c<3 q5w6FpX=-I<*(N|$iqh7n>%IZ8UdlMp5|4lY0000(p5Qix~lK3x}~p`{8QE4b=KLn_o=f_ zZ~cxI8`P1#>&7%C1LgD0{np-<%KN1n6Tq+VJ$w!y!>8~g(0{RTI-Cio!tt_KG3;vIa~`@!liH_oCpU7vMhj~;azwh9)-u@b@&kaGH^Cr3^&8A za5bC{M?GAr{PUd2CBz3wU_>#a6Q}&w}YU1gBS{+nfyW64O0FkD90+2 z_LD(L?u9#{H-Ct}`j|x8y}8Ms1PgD~$;q?E7|Vkf&wUQ>jY<2Ec<|!MyII74RR$nh zb@QEDfSm`|6fd5<&CzDH&VU_G&3xx`izjb$w5kKJxqsN^&*{aoYF)#ef}p1jR5SOO0^Oz7uYYW?>q;=zk2@6LV~pj&izn}n`U3Df$0#Qmhlv|O-TIy#l4p%EmIp7M z`#k>JBUz)39!eYO=NmhgmlBBdANoHgwaVw4`|>Lp^~FpHU{;O!wElq>i$8%X%>dFc R8wLOX002ovPDHLkV1k(_J=XvL diff --git a/actors/toad_player/custom_toad_spots.ia16.png b/actors/toad_player/custom_toad_spots.ia16.png index f5d1310bc648579fc139ac73b10ea922db6b768a..3e2d80f848f005474393763716209f5258196b0c 100644 GIT binary patch delta 21 dcmdnOx`lOuC)WW62EGG~S=Tx_HwGs%0RT^02Oa Date: Fri, 8 Dec 2023 23:42:30 -0600 Subject: [PATCH 6/7] Update characters.c --- src/game/characters.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/characters.c b/src/game/characters.c index 9a52b4402..cfe3b6763 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -1456,7 +1456,7 @@ const struct PlayerPalette gPalettePresets[PALETTE_PRESET_MAX] = { {{{ 0xd6, 0x35, 0x4d }, { 0xff, 0x8e, 0xb2 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x8e, 0xb2 }}}, // Bubblegum {{{ 0xb2, 0x28, 0x18 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x47, 0xc5, 0xff }}}, // Ice Mario {{{ 0x00, 0x98, 0x00 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x47, 0xc5, 0xff }}}, // Ice Luigi -{{{ 0xff, 0xff, 0xff }, { 0x4c, 0x2c, 0xd3 }, { 0xff, 0xff, 0xff }, { 0x68, 0x40, 0x1b }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xd5, 0xa1 }, { 0xff, 0x00, 0x00 }}}, // Toad +{{{ 0xff, 0xff, 0xff }, { 0x4c, 0x2c, 0xd3 }, { 0xff, 0xff, 0xff }, { 0x68, 0x40, 0x1b }, { 0x00, 0x00, 0x00 }, { 0xfe, 0xd5, 0xa1 }, { 0xff, 0x00, 0x00 }}}, // Toad }; enum AnimType { From 4f7da1288fc442be8f36b06ff5316a08721686a4 Mon Sep 17 00:00:00 2001 From: FluffaMario Date: Sat, 9 Dec 2023 14:05:19 -0600 Subject: [PATCH 7/7] It's better this way... --- actors/toad_cap/geo.inc.c | 4 +- actors/toad_cap/model.inc.c | 11 ++--- actors/toad_player/custom_toad_hair.ia16.png | Bin 813 -> 692 bytes actors/toad_player/custom_toad_spots.ia16.png | Bin 692 -> 578 bytes actors/toad_player/geo.inc.c | 42 +++++++++--------- actors/toad_player/geo_header.h | 12 ++--- actors/toad_player/model.inc.c | 37 +++++++-------- 7 files changed, 46 insertions(+), 60 deletions(-) diff --git a/actors/toad_cap/geo.inc.c b/actors/toad_cap/geo.inc.c index b95973b1f..704507611 100644 --- a/actors/toad_cap/geo.inc.c +++ b/actors/toad_cap/geo.inc.c @@ -15,7 +15,7 @@ const GeoLayout toads_cap_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1), - GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Cap_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), @@ -81,7 +81,7 @@ const GeoLayout toads_wing_cap_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1), - GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Cap_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5), GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Wing_Cap_Wings_mesh_layer_4), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/toad_cap/model.inc.c b/actors/toad_cap/model.inc.c index 25e5fd11e..5e9a4820a 100644 --- a/actors/toad_cap/model.inc.c +++ b/actors/toad_cap/model.inc.c @@ -378,14 +378,9 @@ Gfx mat_revert_toad_cap_metal[] = { Gfx mat_toad_cap_cap_base[] = { gsDPPipeSync(), - gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), gsSPCopyLightsPlayerPart(GLOVES), - gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_cap), - 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), gsSPEndDisplayList(), }; @@ -492,14 +487,14 @@ Gfx mat_revert_toad_cap_metal_wing_tip[] = { }; Gfx toad_cap_Cap_mesh_layer_1[] = { + gsSPDisplayList(mat_toad_cap_cap_base), + gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0), gsSPDisplayList(mat_toad_cap_toad_cap_inside), gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_1), gsSPEndDisplayList(), }; Gfx toad_cap_Cap_mesh_layer_5[] = { - gsSPDisplayList(mat_toad_cap_cap_base), - gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0), gsSPDisplayList(mat_toad_cap_cap_spots), gsSPDisplayList(toad_cap_Cap_mesh_layer_5_tri_0), gsSPEndDisplayList(), diff --git a/actors/toad_player/custom_toad_hair.ia16.png b/actors/toad_player/custom_toad_hair.ia16.png index b93cf7eb567fc70b351273e52e0f7bbb6d5980b3..cd797ee0f6cc15b032f7e4e56b9e16b7e77d11e2 100644 GIT binary patch delta 617 zcmV-v0+#))2DAl`R)0xJL_t(oN9C0*lEOd`MrT%m0|ycb4jf1%k}Gfw&cYRtTmgv# zi9~_}m+jY;P7PUpW`GJ}UsWn3Gui(7>z-aepU>Sl`N{8J!vtjQb~~F)Ci!D^r~nD< z8;yp$TrOF++pScH3RtaHuG8uG^< z0Ib(*hYL~?#1sK*wVH3WT5dQT=5Jo-p#YHC;N{|&76GL^u3oR}+|U@!mDn~e9tSA<+T^J%5g5%uq7x5h7Pn77IQY3{)7l z-wO`W0>X@OgSlXia2eEmG#cq1*?-gakZ1u+Me75h$e3qD0fUM$4bp7-%`;L;pcw;= zXkrL%$4k~T))-u}rpN3VNdmAH2uL{$gv@3$EepS?eN6U{BtX!t2oj!uT(HrMGvY*4 z_K+$-%VI!4Y_{54DY)~V{~xg=2_OKOh5-RLq%0ZFR;E~z1Ta`|fF2-VSO)B8EyaFF z60le-^iK8!EJOC@N-W7e@CY1;?SA8<0$$<23vliiSPMYx47jLM00000NkvXXu0mjf D8!r@$ delta 739 zcmV<90v!Fc1+4~kVq=2LsqtqzacUb zm&&X};!0iDfy-8PqY4gOdw+9gIfM|HB{>_>d(JRBZ)SOS?)%txpz+j*E(#!*FC-Hg{V&?q7@4Q34>2=Gt@Au zjG))+b=?;0Y`I(>lDY`b5&%C0i7;14jEH=5W>cwDZW@h7&=s8NVw@xZ)EllfjLLN9 zP~n+Xt5x>C*ndMWz*z!GlElgZg9^Drazu(`vVF9NUVyU%fGXimvUBsDLy?)Od(yZD z&U6ww*H!M^YW&gv{MP%o*u4noaJ*ixA+YZ-fs}BPz+f=rjzJKd|coPsT0dB0O z6iUtvBdTZ+TZ`Ozr_%}Oq{#l9bKp%tPLlk_auBL5teql^D|gHg^C*h=hS0o*$7J7! zHvu)pgnvrFpxO|+WTA6cpOxumXgznD&)ftysw+NsE7iC4Suk?|2)$T0xI34F@M zF~PkVAQ*^UE{-Q5dH^2&oV&u~`b&Tag7CN8Cn2T)Jp3hh&ZmN-0MRVG=H7&8{SDWK zBgVEo@UGMX-~rNHQ^E-?ny>b z1mLgL9Jo?`V}E26IRI0`K-P&q;_fB9+`BA;1270WNGr-ga_@3;aS8ZAHCj#Y2yk{q z0N!A#(Q0}-06(yy@E)g+mU|Zn2jD%;M#2_KuSi!4FZV8cLR z2;c+hBW3{)_pEL#0x&fUV*Atpn1;WGSg?FVE0ED{G zKPHwyczE}NWcyz~$s~uMe5dqxI>9{M{ty$~4M)cS5D@wdr-0D80}#v_6Ued7C&SSk z07=_5cix);^=`1V1i%GMd=7w^73w+_V3=Be!!v5L`2)3nzzt4HkSYKG002ovPDHLk FV1oJy?fd`$ delta 630 zcmV-+0*U>?1hfT^Nq@iq01m(bYSxJf0006>NklJ4I10L|q0!h;~?r^C>< zM%upxCD{*;LVs@%eTIIMc292dTfxE`Iyt%57-MDAp__t?B@5E`N47*L7-Ni&yF0sxE<@&Gy>t za8s)EURZ*Ss|>)FXis;rxK6FoyWM{43^-7nYOV_pi50}F^lnuL;5@f~JJqHZPu}Ke zRhK|B;XHS6IMt>SFP^;3v9JVg)J!vR>HtU^rIXQ2sM+_hN)W~v%YzqB-W~M?AVO`FPDV5FEU4R