sm64

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

model.inc.c (26605B)


      1 // Amp
      2 
      3 ALIGNED8 static const Texture dAmpElectricityTexture[] = {
      4 #include "actors/amp/amp_electricity.rgba16.inc.c"
      5 };
      6 
      7 ALIGNED8 static const Texture dAmpEyesTexture[] = {
      8 #include "actors/amp/amp_eyes.rgba16.inc.c"
      9 };
     10 
     11 ALIGNED8 static const Texture dAmpBodyTexture[] = {
     12 #include "actors/amp/amp_body.rgba16.inc.c"
     13 };
     14 
     15 ALIGNED8 static const Texture dAmpMouthTexture[] = {
     16 #include "actors/amp/amp_mouth.rgba16.inc.c"
     17 };
     18 
     19 static const Vtx dAmpElectricityVertices[] = {
     20     {{{   224,      0,    -89}, 0, {     0,    480}, {0xff, 0xff, 0xff, 0xff}}},
     21     {{{   187,    149,      0}, 0, {   223,   1078}, {0xff, 0xff, 0xff, 0xff}}},
     22     {{{   224,      0,     90}, 0, {   479,    478}, {0xff, 0xff, 0xff, 0xff}}},
     23     {{{   187,   -148,      0}, 0, {   224,   -122}, {0xff, 0xff, 0xff, 0xff}}},
     24     {{{   224,      0,    -89}, 0, {     0,    478}, {0xff, 0xff, 0xff, 0xff}}},
     25 };
     26 
     27 const Gfx dAmpElectricitySubDl[] = {
     28     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpElectricityTexture),
     29     gsDPLoadSync(),
     30     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
     31     gsSPVertex(dAmpElectricityVertices, 5, 0),
     32     gsSP2Triangles( 0,  1,  2, 0x0,  2,  3,  4, 0x0),
     33     gsSPEndDisplayList(),
     34 };
     35 
     36 const Gfx dAmpElectricityDl[] = {
     37     gsDPPipeSync(),
     38     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
     39     gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
     40     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),
     41     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
     42     gsDPTileSync(),
     43     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 4, G_TX_NOLOD),
     44     gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
     45     gsSPDisplayList(dAmpElectricitySubDl),
     46     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
     47     gsDPPipeSync(),
     48     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
     49     gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
     50     gsSPEndDisplayList(),
     51 };
     52 
     53 static const Vtx dAmpEyeVertices[] = {
     54     {{{    68,     72,    158}, 0, {     0,      0}, {0xff, 0xff, 0xff, 0xff}}},
     55     {{{   -27,    -71,    164}, 0, {   990,    990}, {0xff, 0xff, 0xff, 0xff}}},
     56     {{{    68,    -71,    158}, 0, {   990,      0}, {0xff, 0xff, 0xff, 0xff}}},
     57     {{{   -27,     72,    164}, 0, {     0,    990}, {0xff, 0xff, 0xff, 0xff}}},
     58 };
     59 
     60 const Gfx dAmpEyeSubDl[] = {
     61     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpEyesTexture),
     62     gsDPLoadSync(),
     63     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     64     gsSPVertex(dAmpEyeVertices, 4, 0),
     65     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
     66     gsSPEndDisplayList(),
     67 };
     68 
     69 const Gfx dAmpEyeDl[] = {
     70     gsDPPipeSync(),
     71     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
     72     gsSPClearGeometryMode(G_LIGHTING),
     73     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),
     74     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
     75     gsDPTileSync(),
     76     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),
     77     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
     78     gsSPDisplayList(dAmpEyeSubDl),
     79     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
     80     gsDPPipeSync(),
     81     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
     82     gsSPSetGeometryMode(G_LIGHTING),
     83     gsSPEndDisplayList(),
     84 };
     85 
     86 static const Vtx dAmpMouthVertices[] = {
     87     {{{   -29,     72,    164}, 0, {     0,      0}, {0xff, 0xff, 0xff, 0xff}}},
     88     {{{  -124,    -71,    121}, 0, {   990,    990}, {0xff, 0xff, 0xff, 0xff}}},
     89     {{{   -29,    -71,    164}, 0, {   990,      0}, {0xff, 0xff, 0xff, 0xff}}},
     90     {{{  -124,     72,    121}, 0, {     0,    990}, {0xff, 0xff, 0xff, 0xff}}},
     91 };
     92 
     93 const Gfx dAmpMouthSubDl[] = {
     94     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpMouthTexture),
     95     gsDPLoadSync(),
     96     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
     97     gsSPVertex(dAmpMouthVertices, 4, 0),
     98     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
     99     gsSPEndDisplayList(),
    100 };
    101 
    102 const Gfx dAmpMouthDl[] = {
    103     gsDPPipeSync(),
    104     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
    105     gsSPClearGeometryMode(G_LIGHTING),
    106     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),
    107     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    108     gsDPTileSync(),
    109     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),
    110     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    111     gsSPDisplayList(dAmpMouthSubDl),
    112     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    113     gsDPPipeSync(),
    114     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    115     gsSPSetGeometryMode(G_LIGHTING),
    116     gsSPEndDisplayList(),
    117 };
    118 
    119 static const Vtx dAmpBodyVertices[] = {
    120     {{{   -39,    -39,      0}, 0, {     0,    990}, {0xff, 0xff, 0xff, 0xff}}},
    121     {{{    40,     40,      0}, 0, {   990,      0}, {0xff, 0xff, 0xff, 0xff}}},
    122     {{{   -39,     40,      0}, 0, {     0,      0}, {0xff, 0xff, 0xff, 0xff}}},
    123     {{{    40,    -39,      0}, 0, {   990,    990}, {0xff, 0xff, 0xff, 0xff}}},
    124 };
    125 
    126 const Gfx dAmpBodySubDl[] = {
    127     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dAmpBodyTexture),
    128     gsDPLoadSync(),
    129     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    130     gsSPVertex(dAmpBodyVertices, 4, 0),
    131     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    132     gsSPEndDisplayList(),
    133 };
    134 
    135 const Gfx dAmpBodyDl[] = {
    136     gsDPPipeSync(),
    137     gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
    138     gsSPClearGeometryMode(G_LIGHTING),
    139     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),
    140     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    141     gsDPTileSync(),
    142     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),
    143     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    144     gsSPDisplayList(dAmpBodySubDl),
    145     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    146     gsDPPipeSync(),
    147     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    148     gsSPSetGeometryMode(G_LIGHTING),
    149     gsSPEndDisplayList(),
    150 };
    151 
    152 /**
    153  * Everything beyond this point is unused, and seems to be an attempt at a 3D modelled
    154  * amp. The model and attempt are overall slightly buggy, with misread lights and a slightly
    155  * broken model.
    156  */
    157 
    158 UNUSED static const Lights1 dAmpUnused3DLights = gdSPDefLights1(
    159     0x33, 0x3f, 0x00,
    160     0xcf, 0xff, 0x00, 0x28, 0x28, 0x28
    161 );
    162 
    163 UNUSED static const Vtx dAmpUnused3DVtx01[] = {
    164     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    165     {{{   240,   -160,      0}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    166     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    167     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    168     {{{   240,    160,      0}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    169     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    170 };
    171 
    172 UNUSED static const Vtx dAmpUnused3DVtx02[] = {
    173     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    174     {{{   240,   -160,      0}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    175     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    176     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    177     {{{   240,    160,      0}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    178     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    179 };
    180 
    181 UNUSED static const Vtx dAmpUnused3DVtx03[] = {
    182     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    183     {{{   240,   -160,      0}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    184     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0x00}}},
    185     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    186     {{{   240,    160,      0}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    187     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0xff}}},
    188 };
    189 
    190 UNUSED static const Vtx dAmpUnused3DVtx04[] = {
    191     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0x00}}},
    192     {{{   240,    160,      0}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0x00}}},
    193     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0x1e, 0x00, 0x00}}},
    194     {{{   280,      0,     35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0xff}}},
    195     {{{   240,   -160,      0}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0xff}}},
    196     {{{   280,      0,    -35}, 0, {     0,      0}, {0x7b, 0xe2, 0x00, 0xff}}},
    197 };
    198 
    199 UNUSED static const Vtx dAmpUnused3DVtx05[] = {
    200     {{{  -184,    -54,    -54}, 0, {     0,      0}, {0x8b, 0xde, 0xde, 0x00}}},
    201     {{{  -184,    -76,      0}, 0, {     0,      0}, {0x8b, 0xd0, 0x00, 0x00}}},
    202     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    203     {{{  -141,   -100,   -100}, 0, {     0,      0}, {0xa6, 0xc1, 0xc1, 0xff}}},
    204     {{{  -141,   -141,      0}, 0, {     0,      0}, {0xa6, 0xa7, 0x00, 0xff}}},
    205     {{{   -76,   -130,   -130}, 0, {     0,      0}, {0xd0, 0xae, 0xae, 0xff}}},
    206     {{{   -76,   -184,      0}, 0, {     0,      0}, {0xd0, 0x8b, 0x00, 0xff}}},
    207     {{{     0,   -141,   -141}, 0, {     0,      0}, {0x00, 0xa7, 0xa7, 0xff}}},
    208     {{{     0,   -200,      0}, 0, {     0,      0}, {0x00, 0x81, 0x00, 0xff}}},
    209     {{{    76,   -130,   -130}, 0, {     0,      0}, {0x30, 0xae, 0xae, 0xff}}},
    210     {{{    76,   -184,      0}, 0, {     0,      0}, {0x30, 0x8b, 0x00, 0xff}}},
    211     {{{   141,   -100,   -100}, 0, {     0,      0}, {0x5a, 0xc1, 0xc1, 0xff}}},
    212     {{{   141,   -141,      0}, 0, {     0,      0}, {0x5a, 0xa7, 0x00, 0xff}}},
    213     {{{   184,    -54,    -54}, 0, {     0,      0}, {0x75, 0xde, 0xde, 0xff}}},
    214     {{{   184,    -76,      0}, 0, {     0,      0}, {0x75, 0xd0, 0x00, 0xff}}},
    215     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    216 };
    217 
    218 UNUSED static const Vtx dAmpUnused3DVtx06[] = {
    219     {{{  -184,      0,    -76}, 0, {     0,      0}, {0x8b, 0x00, 0xd0, 0xff}}},
    220     {{{  -184,    -54,    -54}, 0, {     0,      0}, {0x8b, 0xde, 0xde, 0x00}}},
    221     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    222     {{{  -141,      0,   -141}, 0, {     0,      0}, {0xa6, 0x00, 0xa7, 0xff}}},
    223     {{{  -141,   -100,   -100}, 0, {     0,      0}, {0xa6, 0xc1, 0xc1, 0xff}}},
    224     {{{   -76,      0,   -184}, 0, {     0,      0}, {0xd0, 0x00, 0x8b, 0xff}}},
    225     {{{   -76,   -130,   -130}, 0, {     0,      0}, {0xd0, 0xae, 0xae, 0xff}}},
    226     {{{     0,      0,   -200}, 0, {     0,      0}, {0x00, 0x00, 0x81, 0xff}}},
    227     {{{     0,   -141,   -141}, 0, {     0,      0}, {0x00, 0xa7, 0xa7, 0xff}}},
    228     {{{    76,      0,   -184}, 0, {     0,      0}, {0x30, 0x00, 0x8b, 0xff}}},
    229     {{{    76,   -130,   -130}, 0, {     0,      0}, {0x30, 0xae, 0xae, 0xff}}},
    230     {{{   141,      0,   -141}, 0, {     0,      0}, {0x5a, 0x00, 0xa7, 0xff}}},
    231     {{{   141,   -100,   -100}, 0, {     0,      0}, {0x5a, 0xc1, 0xc1, 0xff}}},
    232     {{{   184,      0,    -76}, 0, {     0,      0}, {0x75, 0x00, 0xd0, 0xff}}},
    233     {{{   184,    -54,    -54}, 0, {     0,      0}, {0x75, 0xde, 0xde, 0xff}}},
    234     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    235 };
    236 
    237 UNUSED static const Vtx dAmpUnused3DVtx07[] = {
    238     {{{  -184,     54,    -54}, 0, {     0,      0}, {0x8b, 0x22, 0xde, 0xff}}},
    239     {{{  -184,      0,    -76}, 0, {     0,      0}, {0x8b, 0x00, 0xd0, 0x00}}},
    240     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    241     {{{  -141,    100,   -100}, 0, {     0,      0}, {0xa6, 0x3f, 0xc1, 0xff}}},
    242     {{{  -141,      0,   -141}, 0, {     0,      0}, {0xa6, 0x00, 0xa7, 0xff}}},
    243     {{{   -76,    130,   -130}, 0, {     0,      0}, {0xd0, 0x52, 0xae, 0xff}}},
    244     {{{   -76,      0,   -184}, 0, {     0,      0}, {0xd0, 0x00, 0x8b, 0xff}}},
    245     {{{     0,    141,   -141}, 0, {     0,      0}, {0x00, 0x59, 0xa7, 0xff}}},
    246     {{{     0,      0,   -200}, 0, {     0,      0}, {0x00, 0x00, 0x81, 0xff}}},
    247     {{{    76,    130,   -130}, 0, {     0,      0}, {0x30, 0x52, 0xae, 0xff}}},
    248     {{{    76,      0,   -184}, 0, {     0,      0}, {0x30, 0x00, 0x8b, 0xff}}},
    249     {{{   141,    100,   -100}, 0, {     0,      0}, {0x5a, 0x3f, 0xc1, 0xff}}},
    250     {{{   141,      0,   -141}, 0, {     0,      0}, {0x5a, 0x00, 0xa7, 0xff}}},
    251     {{{   184,     54,    -54}, 0, {     0,      0}, {0x75, 0x22, 0xde, 0xff}}},
    252     {{{   184,      0,    -76}, 0, {     0,      0}, {0x75, 0x00, 0xd0, 0xff}}},
    253     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    254 };
    255 
    256 UNUSED static const Vtx dAmpUnused3DVtx08[] = {
    257     {{{  -184,     76,      0}, 0, {     0,      0}, {0x8b, 0x30, 0x00, 0xff}}},
    258     {{{  -184,     54,    -54}, 0, {     0,      0}, {0x8b, 0x22, 0xde, 0x00}}},
    259     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    260     {{{  -141,    141,      0}, 0, {     0,      0}, {0xa6, 0x59, 0x00, 0xff}}},
    261     {{{  -141,    100,   -100}, 0, {     0,      0}, {0xa6, 0x3f, 0xc1, 0xff}}},
    262     {{{   -76,    184,      0}, 0, {     0,      0}, {0xd0, 0x75, 0x00, 0xff}}},
    263     {{{   -76,    130,   -130}, 0, {     0,      0}, {0xd0, 0x52, 0xae, 0xff}}},
    264     {{{     0,    200,      0}, 0, {     0,      0}, {0x00, 0x7f, 0x00, 0xff}}},
    265     {{{     0,    141,   -141}, 0, {     0,      0}, {0x00, 0x59, 0xa7, 0xff}}},
    266     {{{    76,    184,      0}, 0, {     0,      0}, {0x30, 0x75, 0x00, 0xff}}},
    267     {{{    76,    130,   -130}, 0, {     0,      0}, {0x30, 0x52, 0xae, 0xff}}},
    268     {{{   141,    141,      0}, 0, {     0,      0}, {0x5a, 0x59, 0x00, 0xff}}},
    269     {{{   141,    100,   -100}, 0, {     0,      0}, {0x5a, 0x3f, 0xc1, 0xff}}},
    270     {{{   184,     76,      0}, 0, {     0,      0}, {0x75, 0x30, 0x00, 0xff}}},
    271     {{{   184,     54,    -54}, 0, {     0,      0}, {0x75, 0x22, 0xde, 0xff}}},
    272     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    273 };
    274 
    275 UNUSED static const Vtx dAmpUnused3DVtx09[] = {
    276     {{{  -184,     54,     54}, 0, {     0,      0}, {0x8b, 0x22, 0x22, 0xff}}},
    277     {{{  -184,     76,      0}, 0, {     0,      0}, {0x8b, 0x30, 0x00, 0x00}}},
    278     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    279     {{{  -141,    100,    100}, 0, {     0,      0}, {0xa6, 0x3f, 0x3f, 0xff}}},
    280     {{{  -141,    141,      0}, 0, {     0,      0}, {0xa6, 0x59, 0x00, 0xff}}},
    281     {{{   -76,    130,    130}, 0, {     0,      0}, {0xd0, 0x52, 0x52, 0xff}}},
    282     {{{   -76,    184,      0}, 0, {     0,      0}, {0xd0, 0x75, 0x00, 0xff}}},
    283     {{{     0,    141,    141}, 0, {     0,      0}, {0x00, 0x59, 0x59, 0xff}}},
    284     {{{     0,    200,      0}, 0, {     0,      0}, {0x00, 0x7f, 0x00, 0xff}}},
    285     {{{    76,    130,    130}, 0, {     0,      0}, {0x30, 0x52, 0x52, 0xff}}},
    286     {{{    76,    184,      0}, 0, {     0,      0}, {0x30, 0x75, 0x00, 0xff}}},
    287     {{{   141,    100,    100}, 0, {     0,      0}, {0x5a, 0x3f, 0x3f, 0xff}}},
    288     {{{   141,    141,      0}, 0, {     0,      0}, {0x5a, 0x59, 0x00, 0xff}}},
    289     {{{   184,     54,     54}, 0, {     0,      0}, {0x75, 0x22, 0x22, 0xff}}},
    290     {{{   184,     76,      0}, 0, {     0,      0}, {0x75, 0x30, 0x00, 0xff}}},
    291     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    292 };
    293 
    294 UNUSED static const Vtx dAmpUnused3DVtx10[] = {
    295     {{{  -184,      0,     76}, 0, {     0,      0}, {0x8b, 0x00, 0x30, 0xff}}},
    296     {{{  -184,     54,     54}, 0, {     0,      0}, {0x8b, 0x22, 0x22, 0x00}}},
    297     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    298     {{{  -141,      0,    141}, 0, {     0,      0}, {0xa6, 0x00, 0x59, 0xff}}},
    299     {{{  -141,    100,    100}, 0, {     0,      0}, {0xa6, 0x3f, 0x3f, 0xff}}},
    300     {{{   -76,      0,    184}, 0, {     0,      0}, {0xd0, 0x00, 0x75, 0xff}}},
    301     {{{   -76,    130,    130}, 0, {     0,      0}, {0xd0, 0x52, 0x52, 0xff}}},
    302     {{{     0,      0,    200}, 0, {     0,      0}, {0x00, 0x00, 0x7f, 0xff}}},
    303     {{{     0,    141,    141}, 0, {     0,      0}, {0x00, 0x59, 0x59, 0xff}}},
    304     {{{    76,      0,    184}, 0, {     0,      0}, {0x30, 0x00, 0x75, 0xff}}},
    305     {{{    76,    130,    130}, 0, {     0,      0}, {0x30, 0x52, 0x52, 0xff}}},
    306     {{{   141,      0,    141}, 0, {     0,      0}, {0x5a, 0x00, 0x59, 0xff}}},
    307     {{{   141,    100,    100}, 0, {     0,      0}, {0x5a, 0x3f, 0x3f, 0xff}}},
    308     {{{   184,      0,     76}, 0, {     0,      0}, {0x75, 0x00, 0x30, 0xff}}},
    309     {{{   184,     54,     54}, 0, {     0,      0}, {0x75, 0x22, 0x22, 0xff}}},
    310     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    311 };
    312 
    313 UNUSED static const Vtx dAmpUnused3DVtx11[] = {
    314     {{{  -184,    -54,     54}, 0, {     0,      0}, {0x8b, 0xde, 0x22, 0xff}}},
    315     {{{  -184,      0,     76}, 0, {     0,      0}, {0x8b, 0x00, 0x30, 0x00}}},
    316     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    317     {{{  -141,   -100,    100}, 0, {     0,      0}, {0xa6, 0xc1, 0x3f, 0xff}}},
    318     {{{  -141,      0,    141}, 0, {     0,      0}, {0xa6, 0x00, 0x59, 0xff}}},
    319     {{{   -76,   -130,    130}, 0, {     0,      0}, {0xd0, 0xae, 0x52, 0xff}}},
    320     {{{   -76,      0,    184}, 0, {     0,      0}, {0xd0, 0x00, 0x75, 0xff}}},
    321     {{{     0,   -141,    141}, 0, {     0,      0}, {0x00, 0xa7, 0x59, 0xff}}},
    322     {{{     0,      0,    200}, 0, {     0,      0}, {0x00, 0x00, 0x7f, 0xff}}},
    323     {{{    76,   -130,    130}, 0, {     0,      0}, {0x30, 0xae, 0x52, 0xff}}},
    324     {{{    76,      0,    184}, 0, {     0,      0}, {0x30, 0x00, 0x75, 0xff}}},
    325     {{{   141,   -100,    100}, 0, {     0,      0}, {0x5a, 0xc1, 0x3f, 0xff}}},
    326     {{{   141,      0,    141}, 0, {     0,      0}, {0x5a, 0x00, 0x59, 0xff}}},
    327     {{{   184,    -54,     54}, 0, {     0,      0}, {0x75, 0xde, 0x22, 0xff}}},
    328     {{{   184,      0,     76}, 0, {     0,      0}, {0x75, 0x00, 0x30, 0xff}}},
    329     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    330 };
    331 
    332 UNUSED static const Vtx dAmpUnused3DVtx12[] = {
    333     {{{  -184,    -76,      0}, 0, {     0,      0}, {0x8b, 0xd0, 0x00, 0xff}}},
    334     {{{  -184,    -54,     54}, 0, {     0,      0}, {0x8b, 0xde, 0x22, 0x00}}},
    335     {{{  -200,      0,      0}, 0, {     0,      0}, {0x81, 0x00, 0x00, 0x00}}},
    336     {{{  -141,   -141,      0}, 0, {     0,      0}, {0xa6, 0xa7, 0x00, 0xff}}},
    337     {{{  -141,   -100,    100}, 0, {     0,      0}, {0xa6, 0xc1, 0x3f, 0xff}}},
    338     {{{   -76,   -184,      0}, 0, {     0,      0}, {0xd0, 0x8b, 0x00, 0xff}}},
    339     {{{   -76,   -130,    130}, 0, {     0,      0}, {0xd0, 0xae, 0x52, 0xff}}},
    340     {{{     0,   -200,      0}, 0, {     0,      0}, {0x00, 0x81, 0x00, 0xff}}},
    341     {{{     0,   -141,    141}, 0, {     0,      0}, {0x00, 0xa7, 0x59, 0xff}}},
    342     {{{    76,   -184,      0}, 0, {     0,      0}, {0x30, 0x8b, 0x00, 0xff}}},
    343     {{{    76,   -130,    130}, 0, {     0,      0}, {0x30, 0xae, 0x52, 0xff}}},
    344     {{{   141,   -141,      0}, 0, {     0,      0}, {0x5a, 0xa7, 0x00, 0xff}}},
    345     {{{   141,   -100,    100}, 0, {     0,      0}, {0x5a, 0xc1, 0x3f, 0xff}}},
    346     {{{   184,    -76,      0}, 0, {     0,      0}, {0x75, 0xd0, 0x00, 0xff}}},
    347     {{{   184,    -54,     54}, 0, {     0,      0}, {0x75, 0xde, 0x22, 0xff}}},
    348     {{{   200,      0,      0}, 0, {     0,      0}, {0x7f, 0x00, 0x00, 0xff}}},
    349 };
    350 
    351 UNUSED static const Vtx dAmpUnused3DVtx13[] = {
    352     {{{   -37,     90,    205}, 0, {     0,      0}, {0xcc, 0x00, 0x73, 0x00}}},
    353     {{{  -129,     90,    163}, 0, {     0,      0}, {0xcc, 0x00, 0x73, 0x00}}},
    354     {{{  -129,    -90,    163}, 0, {     0,      0}, {0xcc, 0x00, 0x73, 0x00}}},
    355     {{{   -37,    -90,    205}, 0, {     0,      0}, {0xcc, 0x00, 0x73, 0xff}}},
    356 };
    357 
    358 UNUSED static const Vtx dAmpUnused3DVtx14[] = {
    359     {{{   112,     -7,    182}, 0, {     0,      0}, {0x4c, 0xd8, 0x5c, 0x00}}},
    360     {{{    66,   -139,    162}, 0, {     0,      0}, {0x4c, 0xd8, 0x5c, 0x00}}},
    361     {{{   175,    -77,     98}, 0, {     0,      0}, {0x4c, 0xd8, 0x5c, 0x00}}},
    362 };
    363 
    364 UNUSED static const Vtx dAmpUnused3DVtx15[] = {
    365     {{{    63,     90,    198}, 0, {     0,      0}, {0x08, 0x00, 0x7e, 0x00}}},
    366     {{{   -35,     90,    205}, 0, {     0,      0}, {0x08, 0x00, 0x7e, 0x00}}},
    367     {{{   -35,    -90,    205}, 0, {     0,      0}, {0x08, 0x00, 0x7e, 0x00}}},
    368     {{{    63,    -90,    198}, 0, {     0,      0}, {0x08, 0x00, 0x7e, 0xff}}},
    369 };
    370 
    371 UNUSED const Gfx dAmpUnused3DElectricDl1[] = {
    372     gsSPLight(&dAmpUnused3DLights.l, 1),
    373     gsSPLight(&dAmpUnused3DLights.a, 2),
    374     gsSPVertex(dAmpUnused3DVtx01, 6, 0),
    375     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    376     gsSPEndDisplayList(),
    377 };
    378 
    379 UNUSED const Gfx dAmpUnused3DElectricDl2[] = {
    380     gsSPLight(&dAmpUnused3DLights.l, 1),
    381     gsSPLight(&dAmpUnused3DLights.a, 2),
    382     gsSPVertex(dAmpUnused3DVtx02, 6, 0),
    383     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    384     gsSPEndDisplayList(),
    385 };
    386 
    387 UNUSED const Gfx dAmpUnused3DElectricDl3[] = {
    388     gsSPLight(&dAmpUnused3DLights.l, 1),
    389     gsSPLight(&dAmpUnused3DLights.a, 2),
    390     gsSPVertex(dAmpUnused3DVtx03, 6, 0),
    391     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    392     gsSPEndDisplayList(),
    393 };
    394 
    395 UNUSED const Gfx dAmpUnused3DElectricDl4[] = {
    396     gsSPLight(&dAmpUnused3DLights.l, 1),
    397     gsSPLight(&dAmpUnused3DLights.a, 2),
    398     gsSPVertex(dAmpUnused3DVtx04, 6, 0),
    399     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    400     gsSPEndDisplayList(),
    401 };
    402 
    403 UNUSED const Gfx dAmpUnused3DModelDl[] = {
    404     //! Vertex interpreted as light
    405     gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
    406     gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
    407     gsSPVertex(dAmpUnused3DVtx05, 16, 0),
    408     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    409     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    410     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    411     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    412     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    413     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    414     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    415     gsSPVertex(dAmpUnused3DVtx06, 16, 0),
    416     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    417     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    418     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    419     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    420     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    421     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    422     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    423     gsSPVertex(dAmpUnused3DVtx07, 16, 0),
    424     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    425     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    426     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    427     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    428     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    429     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    430     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    431     gsSPVertex(dAmpUnused3DVtx08, 16, 0),
    432     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    433     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    434     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    435     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    436     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    437     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    438     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    439     gsSPVertex(dAmpUnused3DVtx09, 16, 0),
    440     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    441     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    442     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    443     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    444     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    445     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    446     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    447     gsSPVertex(dAmpUnused3DVtx10, 16, 0),
    448     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    449     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    450     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    451     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    452     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    453     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    454     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    455     gsSPVertex(dAmpUnused3DVtx11, 16, 0),
    456     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    457     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    458     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    459     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    460     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    461     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    462     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    463     gsSPVertex(dAmpUnused3DVtx12, 16, 0),
    464     gsSP2Triangles( 0,  1,  2, 0x0,  1,  0,  3, 0x0),
    465     gsSP2Triangles( 1,  3,  4, 0x0,  4,  3,  5, 0x0),
    466     gsSP2Triangles( 4,  5,  6, 0x0,  6,  5,  7, 0x0),
    467     gsSP2Triangles( 6,  7,  8, 0x0,  8,  7,  9, 0x0),
    468     gsSP2Triangles( 8,  9, 10, 0x0, 10,  9, 11, 0x0),
    469     gsSP2Triangles(10, 11, 12, 0x0, 12, 11, 13, 0x0),
    470     gsSP2Triangles(12, 13, 14, 0x0, 14, 13, 15, 0x0),
    471     gsSPEndDisplayList(),
    472 };
    473 
    474 UNUSED const Gfx dAmpUnused3DElectricDl5[] = {
    475     //! Vertex interpreted as light
    476     gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
    477     gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
    478     gsSPVertex(dAmpUnused3DVtx13, 4, 0),
    479     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    480     gsSPEndDisplayList(),
    481 };
    482 
    483 UNUSED const Gfx dAmpUnused3DElectricDl6[] = {
    484     //! Vertex interpreted as light
    485     gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
    486     gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
    487     gsSPVertex(dAmpUnused3DVtx14, 3, 0),
    488     gsSP1Triangle( 0,  1,  2, 0x0),
    489     gsSPEndDisplayList(),
    490 };
    491 
    492 UNUSED const Gfx dAmpUnused3DElectricDl7[] = {
    493     //! Vertex interpreted as light
    494     gsSPLight((const u8*)dAmpUnused3DVtx01 + 0x8, 1),
    495     gsSPLight((const u8*)dAmpUnused3DVtx01, 2),
    496     gsSPVertex(dAmpUnused3DVtx15, 4, 0),
    497     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    498     gsSPEndDisplayList(),
    499 };