sm64

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

model.inc.c (12625B)


      1 // 0x07022DA8 - 0x07022DC0
      2 static const Lights1 ssl_seg7_lights_07022DA8 = gdSPDefLights1(
      3     0x7f, 0x7f, 0x7f,
      4     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
      5 );
      6 
      7 // 0x07022DC0 - 0x07022E80
      8 static const Vtx ssl_seg7_vertex_07022DC0[] = {
      9     {{{   512,      0,   -511}, 0, {  3034,  -1054}, {0x2a, 0x54, 0xac, 0xff}}},
     10     {{{  -511,    -50,   -511}, 0, { -1052,  -1054}, {0xd6, 0xac, 0xac, 0xff}}},
     11     {{{  -511,      0,   -511}, 0, { -1052,  -1054}, {0x99, 0x33, 0xcd, 0xff}}},
     12     {{{   512,    -50,   -511}, 0, {  3034,  -1054}, {0x67, 0xcd, 0xcd, 0xff}}},
     13     {{{   512,      0,    512}, 0, {  3034,   3032}, {0x67, 0x33, 0x33, 0xff}}},
     14     {{{   512,    -50,    512}, 0, {  3034,   3032}, {0x2a, 0xac, 0x54, 0xff}}},
     15     {{{  -511,    -50,    512}, 0, { -1052,   3032}, {0x99, 0xcd, 0x33, 0xff}}},
     16     {{{  -511,      0,    512}, 0, { -1052,   3032}, {0xd6, 0x54, 0x54, 0xff}}},
     17     {{{  -511,      0,    512}, 0, { -1052,   2010}, {0xd6, 0x54, 0x54, 0xff}}},
     18     {{{   512,      0,   -511}, 0, {  3034,  -2076}, {0x2a, 0x54, 0xac, 0xff}}},
     19     {{{  -511,      0,   -511}, 0, { -1052,  -2076}, {0x99, 0x33, 0xcd, 0xff}}},
     20     {{{   512,      0,    512}, 0, {  3034,   2010}, {0x67, 0x33, 0x33, 0xff}}},
     21 };
     22 
     23 // 0x07022E80 - 0x07022F70
     24 static const Vtx ssl_seg7_vertex_07022E80[] = {
     25     {{{   512,    256,   -511}, 0, { -4118,      0}, {0x21, 0x65, 0xbd, 0xff}}},
     26     {{{   512,    205,   -511}, 0, { -4118,    480}, {0x43, 0x9b, 0xdf, 0xff}}},
     27     {{{  -511,    205,   -511}, 0, {  6100,    480}, {0xdf, 0x9b, 0xbd, 0xff}}},
     28     {{{   512,    256,    512}, 0, { -4630,      0}, {0x43, 0x65, 0x21, 0xff}}},
     29     {{{   512,    205,   -511}, 0, {  5590,    478}, {0x43, 0x9b, 0xdf, 0xff}}},
     30     {{{   512,    256,   -511}, 0, {  5590,      0}, {0x21, 0x65, 0xbd, 0xff}}},
     31     {{{   512,    205,    512}, 0, { -4630,    480}, {0x21, 0x9b, 0x43, 0xff}}},
     32     {{{  -511,    256,    512}, 0, { -4118,      0}, {0xdf, 0x65, 0x43, 0xff}}},
     33     {{{   512,    205,    512}, 0, {  6100,    478}, {0x21, 0x9b, 0x43, 0xff}}},
     34     {{{   512,    256,    512}, 0, {  6100,      0}, {0x43, 0x65, 0x21, 0xff}}},
     35     {{{  -511,    205,    512}, 0, { -4118,    480}, {0xbd, 0x9b, 0x21, 0xff}}},
     36     {{{  -511,    256,   -511}, 0, { -4630,      0}, {0xbd, 0x65, 0xdf, 0xff}}},
     37     {{{  -511,    205,    512}, 0, {  5590,    478}, {0xbd, 0x9b, 0x21, 0xff}}},
     38     {{{  -511,    256,    512}, 0, {  5590,      0}, {0xdf, 0x65, 0x43, 0xff}}},
     39     {{{  -511,    205,   -511}, 0, { -4630,    480}, {0xdf, 0x9b, 0xbd, 0xff}}},
     40 };
     41 
     42 // 0x07022F70 - 0x07023060
     43 static const Vtx ssl_seg7_vertex_07022F70[] = {
     44     {{{  -460,    256,   -460}, 0, { -4118,      0}, {0x21, 0x65, 0x43, 0xff}}},
     45     {{{  -460,    205,   -460}, 0, { -4118,    478}, {0x43, 0x9b, 0x21, 0xff}}},
     46     {{{   461,    205,   -460}, 0, {  5078,    478}, {0xdf, 0x9b, 0x43, 0xff}}},
     47     {{{   512,    256,   -511}, 0, { -4118,      0}, {0x21, 0x65, 0xbd, 0xff}}},
     48     {{{  -511,    205,   -511}, 0, {  6100,    480}, {0xdf, 0x9b, 0xbd, 0xff}}},
     49     {{{  -511,    256,   -511}, 0, {  6100,      0}, {0xbd, 0x65, 0xdf, 0xff}}},
     50     {{{   461,    256,    461}, 0, { -4118,      0}, {0xdf, 0x65, 0xbd, 0xff}}},
     51     {{{  -460,    205,    461}, 0, {  5078,    480}, {0x21, 0x9b, 0xbd, 0xff}}},
     52     {{{  -460,    256,    461}, 0, {  5078,      0}, {0x43, 0x65, 0xdf, 0xff}}},
     53     {{{   461,    205,    461}, 0, { -4118,    478}, {0xbd, 0x9b, 0xdf, 0xff}}},
     54     {{{  -460,    256,    461}, 0, { -3606,      0}, {0x43, 0x65, 0xdf, 0xff}}},
     55     {{{  -460,    205,    461}, 0, { -3606,    480}, {0x21, 0x9b, 0xbd, 0xff}}},
     56     {{{  -460,    205,   -460}, 0, {  5588,    478}, {0x43, 0x9b, 0x21, 0xff}}},
     57     {{{  -460,    256,   -460}, 0, {  5588,      0}, {0x21, 0x65, 0x43, 0xff}}},
     58     {{{   461,    256,   -460}, 0, {  5078,      0}, {0xbd, 0x65, 0x21, 0xff}}},
     59 };
     60 
     61 // 0x07023060 - 0x07023150
     62 static const Vtx ssl_seg7_vertex_07023060[] = {
     63     {{{   512,    256,    512}, 0, {  6100,  -5142}, {0x43, 0x65, 0x21, 0xff}}},
     64     {{{  -460,    256,    461}, 0, {  5588,   4564}, {0x43, 0x65, 0xdf, 0xff}}},
     65     {{{  -511,    256,    512}, 0, {  6100,   5076}, {0xdf, 0x65, 0x43, 0xff}}},
     66     {{{   461,    256,   -460}, 0, { -4628,      0}, {0xbd, 0x65, 0x21, 0xff}}},
     67     {{{   461,    205,    461}, 0, {  4566,    480}, {0xbd, 0x9b, 0xdf, 0xff}}},
     68     {{{   461,    256,    461}, 0, {  4566,      0}, {0xdf, 0x65, 0xbd, 0xff}}},
     69     {{{   461,    205,   -460}, 0, { -4628,    478}, {0xdf, 0x9b, 0x43, 0xff}}},
     70     {{{  -511,    205,   -511}, 0, { -4118,   6098}, {0xdf, 0x9b, 0xbd, 0xff}}},
     71     {{{  -460,    205,    461}, 0, { -3608,  -3610}, {0x21, 0x9b, 0xbd, 0xff}}},
     72     {{{  -511,    205,    512}, 0, { -4118,  -4120}, {0xbd, 0x9b, 0x21, 0xff}}},
     73     {{{   512,    205,   -511}, 0, {  6100,   6098}, {0x43, 0x9b, 0xdf, 0xff}}},
     74     {{{  -460,    205,   -460}, 0, { -3608,   5588}, {0x43, 0x9b, 0x21, 0xff}}},
     75     {{{   461,    205,   -460}, 0, {  5590,   5588}, {0xdf, 0x9b, 0x43, 0xff}}},
     76     {{{   461,    205,    461}, 0, {  5590,  -3610}, {0xbd, 0x9b, 0xdf, 0xff}}},
     77     {{{   512,    205,    512}, 0, {  6100,  -4120}, {0x21, 0x9b, 0x43, 0xff}}},
     78 };
     79 
     80 // 0x07023150 - 0x070231D0
     81 static const Vtx ssl_seg7_vertex_07023150[] = {
     82     {{{   512,    256,   -511}, 0, { -4118,  -5142}, {0x21, 0x65, 0xbd, 0xff}}},
     83     {{{   461,    256,    461}, 0, {  5588,  -4632}, {0xdf, 0x65, 0xbd, 0xff}}},
     84     {{{   512,    256,    512}, 0, {  6100,  -5142}, {0x43, 0x65, 0x21, 0xff}}},
     85     {{{  -511,    256,    512}, 0, {  6100,   5076}, {0xdf, 0x65, 0x43, 0xff}}},
     86     {{{  -460,    256,   -460}, 0, { -3606,   4566}, {0x21, 0x65, 0x43, 0xff}}},
     87     {{{  -511,    256,   -511}, 0, { -4118,   5076}, {0xbd, 0x65, 0xdf, 0xff}}},
     88     {{{  -460,    256,    461}, 0, {  5588,   4564}, {0x43, 0x65, 0xdf, 0xff}}},
     89     {{{   461,    256,   -460}, 0, { -3606,  -4632}, {0xbd, 0x65, 0x21, 0xff}}},
     90 };
     91 
     92 // 0x070231D0 - 0x07023268
     93 static const Gfx ssl_seg7_dl_070231D0[] = {
     94     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_0900A800),
     95     gsDPLoadSync(),
     96     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     97     gsSPLight(&ssl_seg7_lights_07022DA8.l, 1),
     98     gsSPLight(&ssl_seg7_lights_07022DA8.a, 2),
     99     gsSPVertex(ssl_seg7_vertex_07022DC0, 12, 0),
    100     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    101     gsSP2Triangles( 4,  3,  0, 0x0,  1,  3,  5, 0x0),
    102     gsSP2Triangles( 4,  5,  3, 0x0,  1,  5,  6, 0x0),
    103     gsSP2Triangles( 2,  1,  6, 0x0,  2,  6,  7, 0x0),
    104     gsSP2Triangles( 7,  6,  5, 0x0,  7,  5,  4, 0x0),
    105     gsSP2Triangles( 8,  9, 10, 0x0,  8, 11,  9, 0x0),
    106     gsSPEndDisplayList(),
    107 };
    108 
    109 // 0x07023268 - 0x070233A8
    110 static const Gfx ssl_seg7_dl_07023268[] = {
    111     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09001000),
    112     gsDPLoadSync(),
    113     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    114     gsSPVertex(ssl_seg7_vertex_07022E80, 15, 0),
    115     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    116     gsSP2Triangles( 3,  6,  4, 0x0,  7,  8,  9, 0x0),
    117     gsSP2Triangles( 7, 10,  8, 0x0, 11, 12, 13, 0x0),
    118     gsSP1Triangle(11, 14, 12, 0x0),
    119     gsSPVertex(ssl_seg7_vertex_07022F70, 15, 0),
    120     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    121     gsSP2Triangles( 6,  7,  8, 0x0,  6,  9,  7, 0x0),
    122     gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0),
    123     gsSP1Triangle( 0,  2, 14, 0x0),
    124     gsSPVertex(ssl_seg7_vertex_07023060, 15, 0),
    125     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    126     gsSP2Triangles( 3,  6,  4, 0x0,  7,  8,  9, 0x0),
    127     gsSP2Triangles(10, 11,  7, 0x0,  7, 11,  8, 0x0),
    128     gsSP2Triangles(10, 12, 11, 0x0,  9,  8, 13, 0x0),
    129     gsSP2Triangles( 9, 13, 14, 0x0, 14, 12, 10, 0x0),
    130     gsSP1Triangle(14, 13, 12, 0x0),
    131     gsSPVertex(ssl_seg7_vertex_07023150, 8, 0),
    132     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    133     gsSP2Triangles( 2,  1,  6, 0x0,  3,  6,  4, 0x0),
    134     gsSP2Triangles( 5,  4,  7, 0x0,  5,  7,  0, 0x0),
    135     gsSP1Triangle( 0,  7,  1, 0x0),
    136     gsSPEndDisplayList(),
    137 };
    138 
    139 // 0x070233A8 - 0x07023458
    140 const Gfx ssl_seg7_dl_070233A8[] = {
    141     gsDPPipeSync(),
    142     gsDPSetCycleType(G_CYC_2CYCLE),
    143     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
    144     gsDPSetDepthSource(G_ZS_PIXEL),
    145     gsDPSetFogColor(0, 0, 0, 255),
    146     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
    147     gsSPSetGeometryMode(G_FOG),
    148     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2),
    149     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),
    150     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    151     gsDPTileSync(),
    152     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),
    153     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    154     gsSPDisplayList(ssl_seg7_dl_070231D0),
    155     gsSPDisplayList(ssl_seg7_dl_07023268),
    156     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    157     gsDPPipeSync(),
    158     gsDPSetCycleType(G_CYC_1CYCLE),
    159     gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_NOOP2),
    160     gsSPClearGeometryMode(G_FOG),
    161     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    162     gsSPEndDisplayList(),
    163 };
    164 
    165 // 0x07023458 - 0x07023558
    166 static const Vtx ssl_seg7_vertex_07023458[] = {
    167     {{{  -485,      0,   -485}, 0, {    96,    990}, {0xff, 0xff, 0xff, 0xff}}},
    168     {{{  -485,    205,    486}, 0, {  9804,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    169     {{{  -485,      0,    486}, 0, {  9804,    990}, {0xff, 0xff, 0xff, 0xff}}},
    170     {{{   486,      0,    486}, 0, {  9804,    990}, {0xff, 0xff, 0xff, 0xff}}},
    171     {{{  -485,      0,    486}, 0, {    96,    990}, {0xff, 0xff, 0xff, 0xff}}},
    172     {{{  -485,    205,    486}, 0, {    96,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    173     {{{   486,    205,    486}, 0, {  9804,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    174     {{{   486,      0,    486}, 0, {    96,    990}, {0xff, 0xff, 0xff, 0xff}}},
    175     {{{   486,    205,    486}, 0, {    96,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    176     {{{   486,    205,   -485}, 0, {  9804,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    177     {{{   486,      0,   -485}, 0, {  9804,    990}, {0xff, 0xff, 0xff, 0xff}}},
    178     {{{  -485,      0,   -485}, 0, {  9804,    990}, {0xff, 0xff, 0xff, 0xff}}},
    179     {{{   486,    205,   -485}, 0, {    96,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    180     {{{  -485,    205,   -485}, 0, {  9804,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    181     {{{   486,      0,   -485}, 0, {    96,    990}, {0xff, 0xff, 0xff, 0xff}}},
    182     {{{  -485,    205,   -485}, 0, {    96,  -1054}, {0xff, 0xff, 0xff, 0xff}}},
    183 };
    184 
    185 // 0x07023558 - 0x070235C0
    186 static const Gfx ssl_seg7_dl_07023558[] = {
    187     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09008800),
    188     gsDPLoadSync(),
    189     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    190     gsSPVertex(ssl_seg7_vertex_07023458, 16, 0),
    191     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    192     gsSP2Triangles( 3,  5,  6, 0x0,  7,  8,  9, 0x0),
    193     gsSP2Triangles( 7,  9, 10, 0x0, 11, 12, 13, 0x0),
    194     gsSP2Triangles(11, 14, 12, 0x0,  0, 15,  1, 0x0),
    195     gsSPEndDisplayList(),
    196 };
    197 
    198 // 0x070235C0 - 0x07023678
    199 const Gfx ssl_seg7_dl_070235C0[] = {
    200     gsDPPipeSync(),
    201     gsDPSetCycleType(G_CYC_2CYCLE),
    202     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
    203     gsDPSetDepthSource(G_ZS_PIXEL),
    204     gsDPSetFogColor(0, 0, 0, 255),
    205     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
    206     gsSPSetGeometryMode(G_FOG),
    207     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
    208     gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
    209     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),
    210     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    211     gsDPTileSync(),
    212     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),
    213     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    214     gsSPDisplayList(ssl_seg7_dl_07023558),
    215     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    216     gsDPPipeSync(),
    217     gsDPSetCycleType(G_CYC_1CYCLE),
    218     gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2),
    219     gsSPClearGeometryMode(G_FOG),
    220     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    221     gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
    222     gsSPEndDisplayList(),
    223 };