/*************************************************************************************************** Convert from NINGEN (mario_hat_only) ****************************************************************************************************/ static Vtx vtx_mario_hat_only_0[] = { { 33, 35, 118, 0, 728, 758, 48, 38, 110, 255}, { 96, 22, 45, 0, 1240, 876, 72, -92, 49, 255}, { 71, 101, 113, 0, 1028, 148, 85, 22, 91, 255}, { 0, 110, 143, 0, 460, 68, 0, 52, 115, 255}, { -31, 35, 118, 0, 206, 762, -48, 38, 111, 255}, { -70, 101, 113, 0, -106, 158, -85, 22, 91, 255}, { -95, 22, 46, 0, -302, 890, -88, -71, 56, 255}, }; static Vtx vtx_mario_hat_only_1[] = { { -66, 2, 139, 0, 0, 0, -80, -69, 69, 255}, { 0, 0, 163, 0, 0, 0, 0, -70, 105, 255}, { -31, 35, 118, 0, 0, 0, -48, 38, 111, 255}, { -32, 17, 109, 0, 0, 0, 0, -125, -16, 255}, { 33, 17, 109, 0, 0, 0, -5, -124, -22, 255}, { -95, 22, 46, 0, 0, 0, -88, -71, 56, 255}, { -101, 10, -7, 0, 0, 0, -40, -119, 17, 255}, { -70, 101, 113, 0, 0, 0, -85, 22, 91, 255}, { -135, 70, 23, 0, 0, 0, -124, 21, 16, 255}, { -125, 38, -45, 0, 0, 0, -115, -20, -47, 255}, { -86, 1, -60, 0, 0, 0, -50, -116, -10, 255}, { -41, 144, 64, 0, 0, 0, -36, 121, 0, 255}, { -76, 84, -60, 0, 0, 0, -43, 110, -45, 255}, { 136, 70, 22, 0, 0, 0, 123, 22, 16, 255}, { 71, 101, 113, 0, 0, 0, 85, 22, 91, 255}, { 96, 22, 45, 0, 0, 0, 72, -92, 49, 255}, { 42, 144, 64, 0, 0, 0, 43, 118, 13, 255}, { 136, 70, 22, 0, 0, 0, 123, 22, 16, 255}, { 76, 84, -60, 0, 0, 0, 42, 108, -49, 255}, { 103, 10, -6, 0, 0, 0, 66, -106, 18, 255}, { 126, 38, -46, 0, 0, 0, 115, -20, -48, 255}, { 71, 101, 113, 0, 0, 0, 85, 22, 91, 255}, { 96, 22, 45, 0, 0, 0, 72, -92, 49, 255}, { 67, 2, 139, 0, 0, 0, 80, -70, 68, 255}, { 33, 17, 109, 0, 0, 0, -5, -124, -22, 255}, { 33, 35, 118, 0, 0, 0, 48, 38, 110, 255}, { 86, 1, -60, 0, 0, 0, 32, -122, -2, 255}, { 0, 0, 163, 0, 0, 0, 0, -70, 105, 255}, { -31, 35, 118, 0, 0, 0, -48, 38, 111, 255}, { 53, 0, -118, 0, 0, 0, 44, -75, -91, 255}, { 49, 62, -139, 0, 0, 0, 50, 73, -90, 255}, { -76, 84, -60, 0, 0, 0, -43, 110, -45, 255}, { -41, 144, 64, 0, 0, 0, -36, 121, 0, 255}, { 76, 84, -60, 0, 0, 0, 42, 108, -49, 255}, { 0, 110, 143, 0, 0, 0, 0, 52, 115, 255}, { 42, 144, 64, 0, 0, 0, 43, 118, 13, 255}, { -70, 101, 113, 0, 0, 0, -85, 22, 91, 255}, { 71, 101, 113, 0, 0, 0, 85, 22, 91, 255}, { 49, 62, -139, 0, 0, 0, 50, 73, -90, 255}, { 126, 38, -46, 0, 0, 0, 115, -20, -48, 255}, { -52, 0, -118, 0, 0, 0, -46, -99, -63, 255}, { -49, 62, -138, 0, 0, 0, -50, 26, -113, 255}, { 53, 0, -118, 0, 0, 0, 44, -75, -91, 255}, { -125, 38, -45, 0, 0, 0, -115, -20, -47, 255}, { 86, 1, -60, 0, 0, 0, 32, -122, -2, 255}, { -86, 1, -60, 0, 0, 0, -50, -116, -10, 255}, { 86, 1, -60, 0, 0, 0, 32, -122, -2, 255}, { -86, 1, -60, 0, 0, 0, -50, -116, -10, 255}, { -52, 0, -118, 0, 0, 0, -46, -99, -63, 255}, { 33, 17, 109, 0, 0, 0, -5, -124, -22, 255}, { -32, 17, 109, 0, 0, 0, 0, -125, -16, 255}, { -101, 10, -7, 0, 0, 0, -40, -119, 17, 255}, { 96, 22, 45, 0, 0, 0, 72, -92, 49, 255}, { 103, 10, -6, 0, 0, 0, 66, -106, 18, 255}, { 53, 0, -118, 0, 0, 0, 44, -75, -91, 255}, }; static Gfx gfx_mario_hat_only_0[] = { gsSPVertex(&vtx_mario_hat_only_0[0], 7, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 3, 4, 0, 0), gsSP1Triangle( 3, 5, 4, 0), gsSP1Triangle( 2, 3, 0, 0), gsSP1Triangle( 5, 6, 4, 0), gsSPEndDisplayList() }; static Gfx gfx_mario_hat_only_1_draw0[] = { gsSPVertex(&vtx_mario_hat_only_1[0], 16, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 3, 4, 1, 0), gsSP1Triangle( 3, 1, 0, 0), gsSP1Triangle( 3, 5, 6, 0), gsSP1Triangle( 3, 0, 5, 0), gsSP1Triangle( 5, 7, 8, 0), gsSP1Triangle( 5, 8, 6, 0), gsSP1Triangle( 0, 2, 5, 0), gsSP1Triangle( 6, 9,10, 0), gsSP1Triangle( 8, 9, 6, 0), gsSP1Triangle(11, 8, 7, 0), gsSP1Triangle( 8,12, 9, 0), gsSP1Triangle(12, 8,11, 0), gsSP1Triangle(13,14,15, 0), gsSPVertex(&vtx_mario_hat_only_1[16], 15, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 3, 4, 1, 0), gsSP1Triangle( 4, 2, 1, 0), gsSP1Triangle( 5, 1, 0, 0), gsSP1Triangle( 1, 6, 3, 0), gsSP1Triangle( 6, 7, 8, 0), gsSP1Triangle( 9, 7, 6, 0), gsSP1Triangle(10, 4, 3, 0), gsSP1Triangle( 9,11, 7, 0), gsSP1Triangle( 7,11, 8, 0), gsSP1Triangle(12,11, 9, 0), gsSP1Triangle(13,14, 4, 0), gsSPVertex(&vtx_mario_hat_only_1[31], 15, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 1, 3, 4, 0), gsSP1Triangle( 5, 3, 1, 0), gsSP1Triangle( 1, 4, 2, 0), gsSP1Triangle( 4, 3, 6, 0), gsSP1Triangle( 0, 2, 7, 0), gsSP1Triangle( 8, 7, 2, 0), gsSP1Triangle( 9,10,11, 0), gsSP1Triangle(12,10, 9, 0), gsSP1Triangle( 7,10, 0, 0), gsSP1Triangle(10, 7,11, 0), gsSP1Triangle( 0,10,12, 0), gsSP1Triangle(11, 8,13, 0), gsSP1Triangle(14,12, 9, 0), gsSPEndDisplayList() }; static Gfx gfx_mario_hat_only_1_draw1[] = { gsSPVertex(&vtx_mario_hat_only_1[46], 9, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 3, 4, 5, 0), gsSP1Triangle( 6, 3, 5, 0), gsSP1Triangle( 7, 6, 5, 0), gsSP1Triangle( 0, 7, 5, 0), gsSP1Triangle( 0, 5, 1, 0), gsSP1Triangle( 2, 8, 0, 0), gsSPEndDisplayList() }; static Gfx gfx_mario_hat_only_1[] = { gsSPDisplayList(gfx_mario_hat_only_1_draw0), gsSPLight((&light_mario[5].l[0]),1 ), gsSPLight((&light_mario[5].a ),2 ), gsSPDisplayList(gfx_mario_hat_only_1_draw1), gsSPEndDisplayList() }; /*************************************************************************************************** Convert from NINGEN (hat_wing_only) ****************************************************************************************************/ static Vtx vtx_hat_wing_only_0[] = { { 199, 247, -55, 0, 990, 0, 89, -19, 88, 255}, { 131, 274, 20, 0, 0, 0, 89, -19, 88, 255}, { 69, 71, 38, 0, 0, 2012, 89, -19, 88, 255}, { 199, 247, -55, 0, 990, 0, 88, -18, 88, 255}, { 69, 71, 38, 0, 0, 2012, 88, -18, 88, 255}, { 138, 44, -37, 0, 990, 2012, 88, -18, 88, 255}, { -137, 44, -37, 0, 990, 2012, -88, -18, 88, 255}, { -68, 71, 38, 0, 0, 2012, -88, -18, 88, 255}, { -198, 247, -55, 0, 990, 0, -88, -18, 88, 255}, { -68, 71, 38, 0, 0, 2012, -89, -19, 88, 255}, { -130, 274, 20, 0, 0, 0, -89, -19, 88, 255}, { -198, 247, -55, 0, 990, 0, -89, -19, 88, 255}, }; static Vtx vtx_hat_wing_only_1[] = { { 268, 219, -132, 0, 990, 0, 89, -19, 87, 255}, { 199, 247, -55, 0, 0, 0, 89, -19, 87, 255}, { 138, 44, -37, 0, 0, 2012, 89, -19, 87, 255}, { 207, 16, -114, 0, 990, 2012, 89, -19, 87, 255}, { -206, 16, -114, 0, 990, 2012, -89, -19, 87, 255}, { -137, 44, -37, 0, 0, 2012, -89, -19, 87, 255}, { -267, 219, -132, 0, 990, 0, -89, -19, 87, 255}, { -198, 247, -55, 0, 0, 0, -89, -19, 87, 255}, }; static Gfx gfx_hat_wing_only_0[] = { gsSPVertex(&vtx_hat_wing_only_0[0], 12, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 3, 4, 5, 0), gsSP1Triangle( 6, 7, 8, 0), gsSP1Triangle( 9,10,11, 0), gsSPEndDisplayList() }; static Gfx gfx_hat_wing_only_1[] = { gsSPVertex(&vtx_hat_wing_only_1[0], 8, 0), gsSP1Triangle( 0, 1, 2, 0), gsSP1Triangle( 0, 2, 3, 0), gsSP1Triangle( 4, 5, 6, 0), gsSP1Triangle( 5, 7, 6, 0), gsSPEndDisplayList() }; static Gfx gfx_wing_only_common_init[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), gsSPClearGeometryMode(G_SHADING_SMOOTH|G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, 7, 0, 0,0,0, 0,0,0), gsSPTexture(0xffff,0xffff, 0, 0, G_ON), gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 0, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP|G_TX_NOMIRROR, 6, G_TX_NOLOD), gsSPLight((&light_mario[2].l[0]),1 ), gsSPLight((&light_mario[2].a ),2 ), gsSPEndDisplayList() }; static Gfx gfx_wing_only_common_reset[] = { gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH|G_CULL_BACK), gsSPEndDisplayList() }; /* -------------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------------- */ /* ==================================================================================== : Hat data. ======================================================================================= */ Gfx RCP_hat_only[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, 7, 0, 0,0,0, 0,0,0), gsSPTexture(0xffff,0xffff, 0, 0, G_ON), gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 0, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD), gs_Tani_LoadTextureImage2(m_mark_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 7), gsSPLight((&light_mario[1].l[0]),1 ), gsSPLight((&light_mario[1].a ),2 ), gsSPDisplayList(gfx_mario_hat_only_0), gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPDisplayList(gfx_mario_hat_only_1), gsSPEndDisplayList() }; /* ==================================================================================== : Metal hat data. ======================================================================================= */ Gfx RCP_metal_hat_only[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsDPLoadTextureBlock(mario_env_txt, 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((0x07c0*2), 0x07c0, 0, G_TX_RENDERTILE, G_ON), gsSPLight((&light_mario[2].l[0]),1), gsSPLight((&light_mario[2].a),2), gsSPDisplayList(gfx_mario_hat_only_0), gsSPDisplayList(gfx_mario_hat_only_1_draw0), gsSPDisplayList(gfx_mario_hat_only_1_draw1), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture((0x07c0*2), 0x07c0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList() }; /* ==================================================================================== : Wing data for hat. ======================================================================================= */ Gfx RCP_wing_only[] = { gsSPDisplayList(gfx_wing_only_common_init), gs_Tani_LoadTextureImage2(h_wing0_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7), gsSPDisplayList(gfx_hat_wing_only_0), gs_Tani_LoadTextureImage2(h_wing1_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7), gsSPDisplayList(gfx_hat_wing_only_1), gsSPDisplayList(gfx_wing_only_common_reset), gsSPEndDisplayList() }; /* ==================================================================================== : Metal wing data for metal hat. ======================================================================================= */ Gfx RCP_metal_wing_only[] = { gsSPDisplayList(gfx_wing_only_common_init), gs_Tani_LoadTextureImage2(h_metal_wing0_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7), gsSPDisplayList(gfx_hat_wing_only_0), gs_Tani_LoadTextureImage2(h_metal_wing1_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7), gsSPDisplayList(gfx_hat_wing_only_1), gsSPDisplayList(gfx_wing_only_common_reset), gsSPEndDisplayList() };