sm64

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

model.inc.c (12013B)


      1 // 0x070222A0 - 0x070222B8
      2 static const Lights1 ssl_seg7_lights_070222A0 = gdSPDefLights1(
      3     0x7f, 0x7f, 0x7f,
      4     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
      5 );
      6 
      7 // 0x070222B8 - 0x070223B8
      8 static const Vtx ssl_seg7_vertex_070222B8[] = {
      9     {{{  -306,      0,      0}, 0, {   486,    912}, {0x81, 0x00, 0x00, 0xff}}},
     10     {{{  -306,     78,   -188}, 0, {   172,      0}, {0xb7, 0x1a, 0x9d, 0xff}}},
     11     {{{  -306,    -77,   -188}, 0, {   798,      0}, {0xb7, 0xcc, 0xa7, 0xff}}},
     12     {{{  -306,    -77,   -188}, 0, {   172,      0}, {0xb7, 0xcc, 0xa7, 0xff}}},
     13     {{{  -306,   -188,    -77}, 0, {   798,      0}, {0xb7, 0x9d, 0xe6, 0xff}}},
     14     {{{  -306,     78,    189}, 0, {   172,      0}, {0xb7, 0x34, 0x59, 0xff}}},
     15     {{{  -306,    189,     78}, 0, {   798,      0}, {0xb7, 0x63, 0x1a, 0xff}}},
     16     {{{  -306,    189,     78}, 0, {   172,      0}, {0xb7, 0x63, 0x1a, 0xff}}},
     17     {{{  -306,    189,    -77}, 0, {   798,      0}, {0xb7, 0x59, 0xcc, 0xff}}},
     18     {{{  -306,    189,    -77}, 0, {   172,      0}, {0xb7, 0x59, 0xcc, 0xff}}},
     19     {{{  -306,     78,   -188}, 0, {   798,      0}, {0xb7, 0x1a, 0x9d, 0xff}}},
     20     {{{   307,     78,    189}, 0, {   798,      0}, {0x49, 0x1a, 0x63, 0xff}}},
     21     {{{   307,    -77,    189}, 0, {   172,      0}, {0x49, 0xcc, 0x59, 0xff}}},
     22     {{{   307,      0,      0}, 0, {   486,    912}, {0x7f, 0x00, 0x00, 0xff}}},
     23     {{{  -306,   -188,    -77}, 0, {   172,      0}, {0xb7, 0x9d, 0xe6, 0xff}}},
     24     {{{  -306,   -188,     78}, 0, {   798,      0}, {0xb7, 0xa7, 0x34, 0xff}}},
     25 };
     26 
     27 // 0x070223B8 - 0x070224B8
     28 static const Vtx ssl_seg7_vertex_070223B8[] = {
     29     {{{  -306,      0,      0}, 0, {   486,    912}, {0x81, 0x00, 0x00, 0xff}}},
     30     {{{  -306,   -188,     78}, 0, {   172,      0}, {0xb7, 0xa7, 0x34, 0xff}}},
     31     {{{  -306,    -77,    189}, 0, {   798,      0}, {0xb7, 0xe6, 0x63, 0xff}}},
     32     {{{  -306,    -77,    189}, 0, {   172,      0}, {0xb7, 0xe6, 0x63, 0xff}}},
     33     {{{  -306,     78,    189}, 0, {   798,      0}, {0xb7, 0x34, 0x59, 0xff}}},
     34     {{{   307,    189,     78}, 0, {   798,      0}, {0x49, 0x59, 0x34, 0xff}}},
     35     {{{   307,     78,    189}, 0, {   172,      0}, {0x49, 0x1a, 0x63, 0xff}}},
     36     {{{   307,      0,      0}, 0, {   486,    912}, {0x7f, 0x00, 0x00, 0xff}}},
     37     {{{   307,     78,   -188}, 0, {   798,      0}, {0x49, 0x34, 0xa7, 0xff}}},
     38     {{{   307,    189,    -77}, 0, {   172,      0}, {0x49, 0x63, 0xe6, 0xff}}},
     39     {{{   307,    -77,    189}, 0, {   798,      0}, {0x49, 0xcc, 0x59, 0xff}}},
     40     {{{   307,   -188,     78}, 0, {   172,      0}, {0x49, 0x9d, 0x1a, 0xff}}},
     41     {{{   307,   -188,     78}, 0, {   798,      0}, {0x49, 0x9d, 0x1a, 0xff}}},
     42     {{{   307,   -188,    -77}, 0, {   172,      0}, {0x49, 0xa7, 0xcc, 0xff}}},
     43     {{{   307,   -188,    -77}, 0, {   798,      0}, {0x49, 0xa7, 0xcc, 0xff}}},
     44     {{{   307,    -77,   -188}, 0, {   172,      0}, {0x49, 0xe6, 0x9d, 0xff}}},
     45 };
     46 
     47 // 0x070224B8 - 0x07022508
     48 static const Vtx ssl_seg7_vertex_070224B8[] = {
     49     {{{   307,    -77,   -188}, 0, {   798,      0}, {0x49, 0xe6, 0x9d, 0xff}}},
     50     {{{   307,     78,   -188}, 0, {   172,      0}, {0x49, 0x34, 0xa7, 0xff}}},
     51     {{{   307,      0,      0}, 0, {   486,    912}, {0x7f, 0x00, 0x00, 0xff}}},
     52     {{{   307,    189,    -77}, 0, {   798,      0}, {0x49, 0x63, 0xe6, 0xff}}},
     53     {{{   307,    189,     78}, 0, {   172,      0}, {0x49, 0x59, 0x34, 0xff}}},
     54 };
     55 
     56 // 0x07022508 - 0x070225F8
     57 static const Vtx ssl_seg7_vertex_07022508[] = {
     58     {{{  -306,    -77,   -188}, 0, {   990,   2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
     59     {{{   307,    -77,   -188}, 0, {   990,  -4120}, {0x49, 0xe6, 0x9d, 0xff}}},
     60     {{{   307,   -188,    -77}, 0, {     0,  -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
     61     {{{  -306,    -77,    189}, 0, {   990,   2012}, {0xb7, 0xe6, 0x63, 0xff}}},
     62     {{{   307,    -77,    189}, 0, {   990,  -4120}, {0x49, 0xcc, 0x59, 0xff}}},
     63     {{{   307,     78,    189}, 0, {     0,  -4120}, {0x49, 0x1a, 0x63, 0xff}}},
     64     {{{  -306,     78,    189}, 0, {     0,   2012}, {0xb7, 0x34, 0x59, 0xff}}},
     65     {{{  -306,   -188,     78}, 0, {   990,   2012}, {0xb7, 0xa7, 0x34, 0xff}}},
     66     {{{   307,    -77,    189}, 0, {     0,  -4120}, {0x49, 0xcc, 0x59, 0xff}}},
     67     {{{  -306,    -77,    189}, 0, {     0,   2012}, {0xb7, 0xe6, 0x63, 0xff}}},
     68     {{{   307,   -188,     78}, 0, {   990,  -4120}, {0x49, 0x9d, 0x1a, 0xff}}},
     69     {{{  -306,   -188,    -77}, 0, {   990,   2012}, {0xb7, 0x9d, 0xe6, 0xff}}},
     70     {{{   307,   -188,     78}, 0, {     0,  -4120}, {0x49, 0x9d, 0x1a, 0xff}}},
     71     {{{  -306,   -188,     78}, 0, {     0,   2012}, {0xb7, 0xa7, 0x34, 0xff}}},
     72     {{{   307,   -188,    -77}, 0, {   990,  -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
     73 };
     74 
     75 // 0x070225F8 - 0x070226E8
     76 static const Vtx ssl_seg7_vertex_070225F8[] = {
     77     {{{  -306,    189,     78}, 0, {   990,   2012}, {0xb7, 0x63, 0x1a, 0xff}}},
     78     {{{   307,    189,     78}, 0, {   990,  -4120}, {0x49, 0x59, 0x34, 0xff}}},
     79     {{{   307,    189,    -77}, 0, {     0,  -4120}, {0x49, 0x63, 0xe6, 0xff}}},
     80     {{{  -306,    -77,   -188}, 0, {   990,   2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
     81     {{{   307,   -188,    -77}, 0, {     0,  -4120}, {0x49, 0xa7, 0xcc, 0xff}}},
     82     {{{  -306,   -188,    -77}, 0, {     0,   2012}, {0xb7, 0x9d, 0xe6, 0xff}}},
     83     {{{  -306,     78,   -188}, 0, {   990,   2012}, {0xb7, 0x1a, 0x9d, 0xff}}},
     84     {{{   307,    -77,   -188}, 0, {     0,  -4120}, {0x49, 0xe6, 0x9d, 0xff}}},
     85     {{{  -306,    -77,   -188}, 0, {     0,   2012}, {0xb7, 0xcc, 0xa7, 0xff}}},
     86     {{{   307,     78,   -188}, 0, {   990,  -4120}, {0x49, 0x34, 0xa7, 0xff}}},
     87     {{{  -306,    189,    -77}, 0, {   990,   2012}, {0xb7, 0x59, 0xcc, 0xff}}},
     88     {{{   307,     78,   -188}, 0, {     0,  -4120}, {0x49, 0x34, 0xa7, 0xff}}},
     89     {{{  -306,     78,   -188}, 0, {     0,   2012}, {0xb7, 0x1a, 0x9d, 0xff}}},
     90     {{{   307,    189,    -77}, 0, {   990,  -4120}, {0x49, 0x63, 0xe6, 0xff}}},
     91     {{{  -306,    189,    -77}, 0, {     0,   2012}, {0xb7, 0x59, 0xcc, 0xff}}},
     92 };
     93 
     94 // 0x070226E8 - 0x07022728
     95 static const Vtx ssl_seg7_vertex_070226E8[] = {
     96     {{{  -306,     78,    189}, 0, {   990,   2012}, {0xb7, 0x34, 0x59, 0xff}}},
     97     {{{   307,     78,    189}, 0, {   990,  -4120}, {0x49, 0x1a, 0x63, 0xff}}},
     98     {{{   307,    189,     78}, 0, {     0,  -4120}, {0x49, 0x59, 0x34, 0xff}}},
     99     {{{  -306,    189,     78}, 0, {     0,   2012}, {0xb7, 0x63, 0x1a, 0xff}}},
    100 };
    101 
    102 // 0x07022728 - 0x070227F0
    103 static const Gfx ssl_seg7_dl_07022728[] = {
    104     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09002000),
    105     gsDPLoadSync(),
    106     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    107     gsSPLight(&ssl_seg7_lights_070222A0.l, 1),
    108     gsSPLight(&ssl_seg7_lights_070222A0.a, 2),
    109     gsSPVertex(ssl_seg7_vertex_070222B8, 16, 0),
    110     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  4, 0x0),
    111     gsSP2Triangles( 0,  5,  6, 0x0,  0,  7,  8, 0x0),
    112     gsSP2Triangles( 0,  9, 10, 0x0, 11, 12, 13, 0x0),
    113     gsSP1Triangle( 0, 14, 15, 0x0),
    114     gsSPVertex(ssl_seg7_vertex_070223B8, 16, 0),
    115     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  4, 0x0),
    116     gsSP2Triangles( 5,  6,  7, 0x0,  8,  9,  7, 0x0),
    117     gsSP2Triangles(10, 11,  7, 0x0, 12, 13,  7, 0x0),
    118     gsSP1Triangle(14, 15,  7, 0x0),
    119     gsSPVertex(ssl_seg7_vertex_070224B8, 5, 0),
    120     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  2, 0x0),
    121     gsSPEndDisplayList(),
    122 };
    123 
    124 // 0x070227F0 - 0x070228A8
    125 static const Gfx ssl_seg7_dl_070227F0[] = {
    126     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07002800),
    127     gsDPLoadSync(),
    128     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    129     gsSPVertex(ssl_seg7_vertex_07022508, 15, 0),
    130     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    131     gsSP2Triangles( 3,  5,  6, 0x0,  7,  8,  9, 0x0),
    132     gsSP2Triangles( 7, 10,  8, 0x0, 11, 12, 13, 0x0),
    133     gsSP1Triangle(11, 14, 12, 0x0),
    134     gsSPVertex(ssl_seg7_vertex_070225F8, 15, 0),
    135     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    136     gsSP2Triangles( 6,  7,  8, 0x0,  6,  9,  7, 0x0),
    137     gsSP2Triangles(10, 11, 12, 0x0, 10, 13, 11, 0x0),
    138     gsSP1Triangle( 0,  2, 14, 0x0),
    139     gsSPVertex(ssl_seg7_vertex_070226E8, 4, 0),
    140     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    141     gsSPEndDisplayList(),
    142 };
    143 
    144 // 0x070228A8 - 0x07022970
    145 const Gfx ssl_seg7_dl_070228A8[] = {
    146     gsDPPipeSync(),
    147     gsDPSetCycleType(G_CYC_2CYCLE),
    148     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
    149     gsDPSetDepthSource(G_ZS_PIXEL),
    150     gsDPSetFogColor(0, 0, 0, 255),
    151     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
    152     gsSPSetGeometryMode(G_FOG),
    153     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2),
    154     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),
    155     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    156     gsDPTileSync(),
    157     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
    158     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    159     gsSPDisplayList(ssl_seg7_dl_07022728),
    160     gsDPTileSync(),
    161     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
    162     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
    163     gsSPDisplayList(ssl_seg7_dl_070227F0),
    164     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    165     gsDPPipeSync(),
    166     gsDPSetCycleType(G_CYC_1CYCLE),
    167     gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_NOOP2),
    168     gsSPClearGeometryMode(G_FOG),
    169     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    170     gsSPEndDisplayList(),
    171 };
    172 
    173 // 0x07022970 - 0x070229B0
    174 static const Vtx ssl_seg7_vertex_07022970[] = {
    175     {{{  -183,     82,    193}, 0, {     0,    990}, {0xff, 0xff, 0xff, 0xff}}},
    176     {{{   184,     82,    193}, 0, {   990,    990}, {0xff, 0xff, 0xff, 0xff}}},
    177     {{{   184,    193,     82}, 0, {   990,      0}, {0xff, 0xff, 0xff, 0xff}}},
    178     {{{  -183,    193,     82}, 0, {     0,      0}, {0xff, 0xff, 0xff, 0xff}}},
    179 };
    180 
    181 // 0x070229B0 - 0x070229E8
    182 static const Gfx ssl_seg7_dl_070229B0[] = {
    183     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07003800),
    184     gsDPLoadSync(),
    185     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    186     gsSPVertex(ssl_seg7_vertex_07022970, 4, 0),
    187     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    188     gsSPEndDisplayList(),
    189 };
    190 
    191 // 0x070229E8 - 0x07022AA0
    192 const Gfx ssl_seg7_dl_070229E8[] = {
    193     gsDPPipeSync(),
    194     gsDPSetCycleType(G_CYC_2CYCLE),
    195     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
    196     gsDPSetDepthSource(G_ZS_PIXEL),
    197     gsDPSetFogColor(0, 0, 0, 255),
    198     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
    199     gsSPSetGeometryMode(G_FOG),
    200     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
    201     gsSPClearGeometryMode(G_LIGHTING),
    202     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),
    203     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    204     gsDPTileSync(),
    205     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),
    206     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    207     gsSPDisplayList(ssl_seg7_dl_070229B0),
    208     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    209     gsDPPipeSync(),
    210     gsDPSetCycleType(G_CYC_1CYCLE),
    211     gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2),
    212     gsSPClearGeometryMode(G_FOG),
    213     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    214     gsSPSetGeometryMode(G_LIGHTING),
    215     gsSPEndDisplayList(),
    216 };