sm64

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

model.inc.c (7119B)


      1 // 0x07021E50 - 0x07021E68
      2 static const Lights1 ssl_seg7_lights_07021E50 = gdSPDefLights1(
      3     0x7f, 0x7f, 0x7f,
      4     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
      5 );
      6 
      7 // 0x07021E68 - 0x07021EE8
      8 static const Vtx ssl_seg7_vertex_07021E68[] = {
      9     {{{  -224,      0,   -224}, 0, {   990,    990}, {0xd6, 0xac, 0xac, 0xff}}},
     10     {{{   224,      0,    224}, 0, {     0,      0}, {0x2a, 0xac, 0x54, 0xff}}},
     11     {{{  -224,      0,    224}, 0, {     0,    990}, {0x99, 0xcd, 0x33, 0xff}}},
     12     {{{   224,      0,   -224}, 0, {   990,      0}, {0x67, 0xcd, 0xcd, 0xff}}},
     13     {{{  -224,    450,    224}, 0, {     0,    990}, {0xd6, 0x54, 0x54, 0xff}}},
     14     {{{   224,    450,   -224}, 0, {   990,      0}, {0x2a, 0x54, 0xac, 0xff}}},
     15     {{{  -224,    450,   -224}, 0, {   990,    990}, {0x99, 0x33, 0xcd, 0xff}}},
     16     {{{   224,    450,    224}, 0, {     0,      0}, {0x67, 0x33, 0x33, 0xff}}},
     17 };
     18 
     19 // 0x07021EE8 - 0x07021FE8
     20 static const Vtx ssl_seg7_vertex_07021EE8[] = {
     21     {{{   224,    450,   -224}, 0, {     0,      0}, {0x2a, 0x54, 0xac, 0xff}}},
     22     {{{  -224,      0,   -224}, 0, {   990,   2012}, {0xd6, 0xac, 0xac, 0xff}}},
     23     {{{  -224,    450,   -224}, 0, {   990,      0}, {0x99, 0x33, 0xcd, 0xff}}},
     24     {{{  -224,    450,    224}, 0, {     0,      0}, {0xd6, 0x54, 0x54, 0xff}}},
     25     {{{   224,      0,    224}, 0, {   990,   2012}, {0x2a, 0xac, 0x54, 0xff}}},
     26     {{{   224,    450,    224}, 0, {   990,      0}, {0x67, 0x33, 0x33, 0xff}}},
     27     {{{  -224,      0,    224}, 0, {     0,   2012}, {0x99, 0xcd, 0x33, 0xff}}},
     28     {{{  -224,    450,   -224}, 0, {     0,      0}, {0x99, 0x33, 0xcd, 0xff}}},
     29     {{{  -224,      0,   -224}, 0, {     0,   2012}, {0xd6, 0xac, 0xac, 0xff}}},
     30     {{{  -224,      0,    224}, 0, {   990,   2012}, {0x99, 0xcd, 0x33, 0xff}}},
     31     {{{  -224,    450,    224}, 0, {   990,      0}, {0xd6, 0x54, 0x54, 0xff}}},
     32     {{{   224,    450,    224}, 0, {     0,      0}, {0x67, 0x33, 0x33, 0xff}}},
     33     {{{   224,      0,    224}, 0, {     0,   2012}, {0x2a, 0xac, 0x54, 0xff}}},
     34     {{{   224,      0,   -224}, 0, {   990,   2012}, {0x67, 0xcd, 0xcd, 0xff}}},
     35     {{{   224,    450,   -224}, 0, {   990,      0}, {0x2a, 0x54, 0xac, 0xff}}},
     36     {{{   224,      0,   -224}, 0, {     0,   2012}, {0x67, 0xcd, 0xcd, 0xff}}},
     37 };
     38 
     39 // 0x07021FE8 - 0x07022040
     40 static const Gfx ssl_seg7_dl_07021FE8[] = {
     41     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, generic_09002000),
     42     gsDPLoadSync(),
     43     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     44     gsSPLight(&ssl_seg7_lights_07021E50.l, 1),
     45     gsSPLight(&ssl_seg7_lights_07021E50.a, 2),
     46     gsSPVertex(ssl_seg7_vertex_07021E68, 8, 0),
     47     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
     48     gsSP2Triangles( 4,  5,  6, 0x0,  4,  7,  5, 0x0),
     49     gsSPEndDisplayList(),
     50 };
     51 
     52 // 0x07022040 - 0x070220A8
     53 static const Gfx ssl_seg7_dl_07022040[] = {
     54     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07002800),
     55     gsDPLoadSync(),
     56     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     57     gsSPVertex(ssl_seg7_vertex_07021EE8, 16, 0),
     58     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
     59     gsSP2Triangles( 3,  6,  4, 0x0,  7,  8,  9, 0x0),
     60     gsSP2Triangles( 7,  9, 10, 0x0, 11, 12, 13, 0x0),
     61     gsSP2Triangles(11, 13, 14, 0x0,  0, 15,  1, 0x0),
     62     gsSPEndDisplayList(),
     63 };
     64 
     65 // 0x070220A8 - 0x07022170
     66 const Gfx ssl_seg7_dl_070220A8[] = {
     67     gsDPPipeSync(),
     68     gsDPSetCycleType(G_CYC_2CYCLE),
     69     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
     70     gsDPSetDepthSource(G_ZS_PIXEL),
     71     gsDPSetFogColor(0, 0, 0, 255),
     72     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
     73     gsSPSetGeometryMode(G_FOG),
     74     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_PASS2),
     75     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),
     76     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
     77     gsDPTileSync(),
     78     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),
     79     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
     80     gsSPDisplayList(ssl_seg7_dl_07021FE8),
     81     gsDPTileSync(),
     82     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),
     83     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
     84     gsSPDisplayList(ssl_seg7_dl_07022040),
     85     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
     86     gsDPPipeSync(),
     87     gsDPSetCycleType(G_CYC_1CYCLE),
     88     gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_NOOP2),
     89     gsSPClearGeometryMode(G_FOG),
     90     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
     91     gsSPEndDisplayList(),
     92 };
     93 
     94 // 0x07022170 - 0x070221B0
     95 static const Vtx ssl_seg7_vertex_07022170[] = {
     96     {{{  -229,    382,   -157}, 0, {     0,      0}, {0xff, 0xff, 0xff, 0xff}}},
     97     {{{  -229,     68,   -157}, 0, {     0,    990}, {0xff, 0xff, 0xff, 0xff}}},
     98     {{{  -229,     68,    157}, 0, {   990,    990}, {0xff, 0xff, 0xff, 0xff}}},
     99     {{{  -229,    382,    157}, 0, {   990,      0}, {0xff, 0xff, 0xff, 0xff}}},
    100 };
    101 
    102 // 0x070221B0 - 0x070221E8
    103 static const Gfx ssl_seg7_dl_070221B0[] = {
    104     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ssl_seg7_texture_07003800),
    105     gsDPLoadSync(),
    106     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    107     gsSPVertex(ssl_seg7_vertex_07022170, 4, 0),
    108     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    109     gsSPEndDisplayList(),
    110 };
    111 
    112 // 0x070221E8 - 0x070222A0
    113 const Gfx ssl_seg7_dl_070221E8[] = {
    114     gsDPPipeSync(),
    115     gsDPSetCycleType(G_CYC_2CYCLE),
    116     gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
    117     gsDPSetDepthSource(G_ZS_PIXEL),
    118     gsDPSetFogColor(0, 0, 0, 255),
    119     gsSPFogFactor(0x0E49, 0xF2B7), // This isn't gsSPFogPosition since there is no valid min/max pair that corresponds to 0x0E49F2B7
    120     gsSPSetGeometryMode(G_FOG),
    121     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
    122     gsSPClearGeometryMode(G_LIGHTING),
    123     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),
    124     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    125     gsDPTileSync(),
    126     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),
    127     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    128     gsSPDisplayList(ssl_seg7_dl_070221B0),
    129     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    130     gsDPPipeSync(),
    131     gsDPSetCycleType(G_CYC_1CYCLE),
    132     gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2),
    133     gsSPClearGeometryMode(G_FOG),
    134     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    135     gsSPSetGeometryMode(G_LIGHTING),
    136     gsSPEndDisplayList(),
    137 };