sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

model.inc.c (9148B)


      1 // Clam Shell
      2 
      3 // Unreferenced light group
      4 UNUSED static const Lights1 clam_shell_lights_unused1 = gdSPDefLights1(
      5     0x1b, 0x23, 0x30,
      6     0x6d, 0x8f, 0xc3, 0x28, 0x28, 0x28
      7 );
      8 
      9 // Unreferenced light group
     10 UNUSED static const Lights1 clam_shell_lights_unused2 = gdSPDefLights1(
     11     0x18, 0x28, 0x38,
     12     0x60, 0xa2, 0xe2, 0x28, 0x28, 0x28
     13 );
     14 
     15 // 0x05000030
     16 ALIGNED8 static const Texture clam_shell_seg5_texture_05000030[] = {
     17 #include "actors/clam_shell/clam_shell.rgba16.inc.c"
     18 };
     19 
     20 // 0x05000830
     21 ALIGNED8 static const Texture clam_shell_seg5_texture_05000830[] = {
     22 #include "actors/clam_shell/clam_shell_mouth.rgba16.inc.c"
     23 };
     24 
     25 // 0x05001030
     26 static const Lights1 clam_shell_seg5_lights_05001030 = gdSPDefLights1(
     27     0x66, 0x66, 0x66,
     28     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
     29 );
     30 
     31 // 0x05001048
     32 static const Vtx clam_shell_seg5_vertex_05001048[] = {
     33     {{{   728,   -261,      0}, 0, {   480,    566}, {0x00, 0x7e, 0xf5, 0xff}}},
     34     {{{   -10,      2,   -131}, 0, {   580,      0}, {0xff, 0xff, 0xff, 0xff}}},
     35     {{{   404,    -50,   -528}, 0, {   886,    318}, {0xf5, 0x7e, 0x00, 0xff}}},
     36     {{{   404,    -50,    529}, 0, {    72,    318}, {0x00, 0x7f, 0x00, 0xff}}},
     37     {{{  1083,   -106,    435}, 0, {   144,    838}, {0xa8, 0xa8, 0x16, 0xff}}},
     38     {{{   777,    -25,    658}, 0, {   -26,    604}, {0xff, 0xff, 0xff, 0xff}}},
     39     {{{  1087,   -154,      0}, 0, {   480,    842}, {0x38, 0x71, 0x00, 0xff}}},
     40     {{{  1214,     19,      0}, 0, {   480,    940}, {0xa7, 0xa7, 0x00, 0xff}}},
     41     {{{   -10,      2,    132}, 0, {   378,      0}, {0x00, 0x81, 0x00, 0xff}}},
     42     {{{  1083,   -106,   -434}, 0, {   814,    838}, {0x31, 0x63, 0x3d, 0xff}}},
     43     {{{   777,    -25,   -657}, 0, {   984,    604}, {0xff, 0xff, 0xff, 0xff}}},
     44 };
     45 
     46 // 0x050010F8
     47 static const Vtx clam_shell_seg5_vertex_050010F8[] = {
     48     {{{  1087,   -154,      0}, 0, {   480,    816}, {0x38, 0x71, 0x00, 0xff}}},
     49     {{{  1214,     19,      0}, 0, {   480,    906}, {0xa7, 0xa7, 0x00, 0xff}}},
     50     {{{  1083,   -106,   -434}, 0, {   168,    814}, {0x31, 0x63, 0x3d, 0xff}}},
     51     {{{   728,   -261,      0}, 0, {   480,    560}, {0x00, 0x7e, 0xf5, 0xff}}},
     52     {{{   -10,      2,    132}, 0, {   574,     34}, {0x00, 0x81, 0x00, 0xff}}},
     53     {{{   404,    -50,    529}, 0, {   856,    328}, {0x00, 0x7f, 0x00, 0xff}}},
     54     {{{  1083,   -106,    435}, 0, {   790,    814}, {0xa8, 0xa8, 0x16, 0xff}}},
     55     {{{   777,    -25,    658}, 0, {   948,    594}, {0xff, 0xff, 0xff, 0xff}}},
     56     {{{   777,    -25,   -657}, 0, {    10,    594}, {0xff, 0xff, 0xff, 0xff}}},
     57     {{{   404,    -50,   -528}, 0, {   102,    328}, {0xf5, 0x7e, 0x00, 0xff}}},
     58     {{{   -10,      2,   -131}, 0, {   384,     34}, {0xff, 0xff, 0xff, 0xff}}},
     59 };
     60 
     61 // 0x050011A8 - 0x05001238
     62 const Gfx clam_shell_seg5_dl_050011A8[] = {
     63     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030),
     64     gsDPLoadSync(),
     65     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     66     gsSPLight(&clam_shell_seg5_lights_05001030.l, 1),
     67     gsSPLight(&clam_shell_seg5_lights_05001030.a, 2),
     68     gsSPVertex(clam_shell_seg5_vertex_05001048, 11, 0),
     69     gsSP2Triangles( 0,  1,  2, 0x0,  3,  0,  4, 0x0),
     70     gsSP2Triangles( 4,  5,  3, 0x0,  4,  0,  6, 0x0),
     71     gsSP2Triangles( 6,  7,  4, 0x0,  3,  8,  0, 0x0),
     72     gsSP2Triangles( 6,  0,  9, 0x0,  2, 10,  9, 0x0),
     73     gsSP2Triangles( 9,  7,  6, 0x0,  9,  0,  2, 0x0),
     74     gsSP1Triangle( 8,  1,  0, 0x0),
     75     gsSPEndDisplayList(),
     76 };
     77 
     78 // 0x05001238 - 0x050012B8
     79 const Gfx clam_shell_seg5_dl_05001238[] = {
     80     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000830),
     81     gsDPLoadSync(),
     82     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     83     gsSPVertex(clam_shell_seg5_vertex_050010F8, 11, 0),
     84     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
     85     gsSP2Triangles( 6,  3,  5, 0x0,  5,  7,  6, 0x0),
     86     gsSP2Triangles( 0,  3,  6, 0x0,  6,  1,  0, 0x0),
     87     gsSP2Triangles( 2,  8,  9, 0x0,  9, 10,  3, 0x0),
     88     gsSP2Triangles( 9,  3,  2, 0x0,  3, 10,  4, 0x0),
     89     gsSP1Triangle( 2,  3,  0, 0x0),
     90     gsSPEndDisplayList(),
     91 };
     92 
     93 // 0x050012B8 - 0x05001320
     94 const Gfx clam_shell_seg5_dl_050012B8[] = {
     95     gsDPPipeSync(),
     96     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
     97     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),
     98     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
     99     gsDPTileSync(),
    100     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),
    101     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    102     gsSPDisplayList(clam_shell_seg5_dl_050011A8),
    103     gsSPDisplayList(clam_shell_seg5_dl_05001238),
    104     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    105     gsDPPipeSync(),
    106     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    107     gsSPEndDisplayList(),
    108 };
    109 
    110 // 0x05001320
    111 static const Lights1 clam_shell_seg5_lights_05001320 = gdSPDefLights1(
    112     0x66, 0x66, 0x66,
    113     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
    114 );
    115 
    116 // 0x05001338
    117 static const Vtx clam_shell_seg5_vertex_05001338[] = {
    118     {{{   260,      0,      0}, 0, {   480,    600}, {0xf5, 0x7e, 0x07, 0xff}}},
    119     {{{  -531,     -1,    132}, 0, {   580,     -8}, {0x00, 0x81, 0x00, 0xff}}},
    120     {{{  -124,    -74,    529}, 0, {   886,    304}, {0xff, 0xff, 0xff, 0xff}}},
    121     {{{   692,    -45,      0}, 0, {   480,    932}, {0x81, 0x00, 0x00, 0xff}}},
    122     {{{   556,   -160,   -434}, 0, {   144,    828}, {0x00, 0x81, 0x00, 0xff}}},
    123     {{{   248,    -68,   -657}, 0, {   -26,    590}, {0x00, 0x00, 0x81, 0xff}}},
    124     {{{  -124,    -74,   -528}, 0, {    72,    304}, {0xff, 0xff, 0xff, 0xff}}},
    125     {{{   248,    -68,    658}, 0, {   984,    590}, {0x0f, 0x7d, 0x0f, 0xff}}},
    126     {{{   556,   -160,    435}, 0, {   814,    828}, {0x00, 0x00, 0x7f, 0xff}}},
    127     {{{  -531,     -1,   -131}, 0, {   378,     -8}, {0x00, 0x81, 0x00, 0xff}}},
    128 };
    129 
    130 // 0x050013D8
    131 static const Vtx clam_shell_seg5_vertex_050013D8[] = {
    132     {{{   556,   -160,    435}, 0, {   790,    796}, {0x00, 0x00, 0x7f, 0xff}}},
    133     {{{   248,    -68,    658}, 0, {   948,    568}, {0x0f, 0x7d, 0x0f, 0xff}}},
    134     {{{   260,      0,      0}, 0, {   480,    576}, {0xf5, 0x7e, 0x07, 0xff}}},
    135     {{{   692,    -45,      0}, 0, {   480,    896}, {0x81, 0x00, 0x00, 0xff}}},
    136     {{{   556,   -160,   -434}, 0, {   168,    796}, {0x00, 0x81, 0x00, 0xff}}},
    137     {{{  -124,    -74,    529}, 0, {   856,    292}, {0xff, 0xff, 0xff, 0xff}}},
    138     {{{  -124,    -74,   -528}, 0, {   102,    292}, {0xff, 0xff, 0xff, 0xff}}},
    139     {{{   248,    -68,   -657}, 0, {    10,    568}, {0x00, 0x00, 0x81, 0xff}}},
    140     {{{  -531,     -1,    132}, 0, {   574,     -8}, {0x00, 0x81, 0x00, 0xff}}},
    141     {{{  -531,     -1,   -131}, 0, {   384,     -8}, {0x00, 0x81, 0x00, 0xff}}},
    142 };
    143 
    144 // 0x05001478 - 0x050014F8
    145 const Gfx clam_shell_seg5_dl_05001478[] = {
    146     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030),
    147     gsDPLoadSync(),
    148     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    149     gsSPLight(&clam_shell_seg5_lights_05001320.l, 1),
    150     gsSPLight(&clam_shell_seg5_lights_05001320.a, 2),
    151     gsSPVertex(clam_shell_seg5_vertex_05001338, 10, 0),
    152     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  0, 0x0),
    153     gsSP2Triangles( 4,  5,  0, 0x0,  0,  5,  6, 0x0),
    154     gsSP2Triangles( 0,  7,  8, 0x0,  2,  7,  0, 0x0),
    155     gsSP2Triangles( 8,  3,  0, 0x0,  0,  9,  1, 0x0),
    156     gsSP1Triangle( 6,  9,  0, 0x0),
    157     gsSPEndDisplayList(),
    158 };
    159 
    160 // 0x050014F8 - 0x05001568
    161 const Gfx clam_shell_seg5_dl_050014F8[] = {
    162     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000830),
    163     gsDPLoadSync(),
    164     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    165     gsSPVertex(clam_shell_seg5_vertex_050013D8, 10, 0),
    166     gsSP2Triangles( 0,  1,  2, 0x0,  2,  3,  0, 0x0),
    167     gsSP2Triangles( 2,  4,  3, 0x0,  2,  1,  5, 0x0),
    168     gsSP2Triangles( 6,  7,  2, 0x0,  2,  7,  4, 0x0),
    169     gsSP2Triangles( 8,  9,  2, 0x0,  2,  9,  6, 0x0),
    170     gsSP1Triangle( 5,  8,  2, 0x0),
    171     gsSPEndDisplayList(),
    172 };
    173 
    174 // 0x05001568 - 0x050015D0
    175 const Gfx clam_shell_seg5_dl_05001568[] = {
    176     gsDPPipeSync(),
    177     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    178     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),
    179     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    180     gsDPTileSync(),
    181     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),
    182     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    183     gsSPDisplayList(clam_shell_seg5_dl_05001478),
    184     gsSPDisplayList(clam_shell_seg5_dl_050014F8),
    185     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    186     gsDPPipeSync(),
    187     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    188     gsSPEndDisplayList(),
    189 };