#include #include "sm64.h" #include "surface_terrains.h" #include "moving_texture_macros.h" #include "level_misc_macros.h" #include "macro_preset_names.h" #include "special_preset_names.h" #include "textures.h" #include "make_const_nonconst.h" // 0x07000000 - 0x07000018 static const Lights1 lights_menu_save_button = gdSPDefLights1( 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 ); // 0x07000018 - 0x07000818 ALIGNED8 static const u8 texture_menu_stone[] = "levels/menu/main_menu_seg7.00018.rgba16"; // 0x07000818 - 0x07001018 ALIGNED8 static const u8 texture_menu_dark_stone[] = "levels/menu/main_menu_seg7.00818.rgba16"; // 0x07001018 - 0x07002018 ALIGNED8 static const u8 texture_menu_mario_save[] = "levels/menu/main_menu_seg7.01018.rgba16"; // 0x07002018 - 0x07003018 ALIGNED8 static const u8 texture_menu_mario_new[] = "levels/menu/main_menu_seg7.02018.rgba16"; // 0x07003018 - 0x07003118 static const Vtx vertex_menu_save_button_borders[] = { {{{ -163, -122, 0}, 0, { 0, 990}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ 163, -122, 0}, 0, { 990, 990}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 96, 820}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ 122, -81, 30}, 0, { 862, 820}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -163, -122, 0}, 0, { 0, 990}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 96, 820}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -163, 122, 0}, 0, { 0, 0}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -122, 81, 30}, 0, { 96, 138}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -122, 81, 30}, 0, { 96, 138}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 122, 81, 30}, 0, { 862, 138}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 163, 122, 0}, 0, { 990, 0}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ -163, 122, 0}, 0, { 0, 0}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 122, 81, 30}, 0, { 862, 138}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 122, -81, 30}, 0, { 862, 820}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 163, -122, 0}, 0, { 990, 990}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 163, 122, 0}, 0, { 990, 0}, {0x4a, 0x00, 0x66, 0xff}}}, }; // 0x07003118 - 0x07003158 static const Vtx vertex_menu_save_button_front[] = { {{{ 122, 81, 30}, 0, { 2012, 0}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ -122, 81, 30}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 122, -81, 30}, 0, { 2012, 990}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ -122, -81, 30}, 0, { 0, 990}, {0x00, 0x00, 0x7f, 0xff}}}, }; // 0x07003158 - 0x070031A0 static const Gfx dl_tex_block_menu_save_button_base[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsSPClearGeometryMode(G_SHADING_SMOOTH), 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), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), 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), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x070031A0 - 0x07003218 static const Gfx dl_vertex_menu_save_button_borders[] = { gsSPLight(&lights_menu_save_button.l, 1), gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_borders, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 5, 7, 6, 0x0), gsSP2Triangles( 8, 9, 10, 0x0, 11, 8, 10, 0x0), gsSP2Triangles(12, 13, 14, 0x0, 15, 12, 14, 0x0), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x07003218 - 0x07003258 static const Gfx dl_vertex_menu_save_button_front[] = { gsSPVertex(vertex_menu_save_button_front, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), gsSPEndDisplayList(), }; // 0x07003258 - 0x07003298 static const Vtx vertex_menu_save_button_back[] = { {{{ 163, -122, 0}, 0, { 0, 990}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -163, -122, 0}, 0, { 990, 990}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 163, 122, 0}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 0}, {0x00, 0x00, 0x81, 0xff}}}, }; // 0x07003298 - 0x070032E0 static const Gfx dl_tex_block_menu_save_button_back[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsSPClearGeometryMode(G_SHADING_SMOOTH), 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), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), 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), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x070032E0 - 0x07003330 static const Gfx dl_vertex_menu_save_button_back[] = { gsSPLight(&lights_menu_save_button.l, 1), gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_back, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), gsSPEndDisplayList(), }; // 0x07003330 - 0x07003380 const Gfx dl_menu_mario_save_button_base[] = { gsSPDisplayList(dl_tex_block_menu_save_button_base), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_stone), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_vertex_menu_save_button_borders), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_mario_save), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_vertex_menu_save_button_front), gsSPEndDisplayList(), }; // 0x07003380 - 0x070033D0 const Gfx dl_menu_mario_new_button_base[] = { gsSPDisplayList(dl_tex_block_menu_save_button_base), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_stone), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_vertex_menu_save_button_borders), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_mario_new), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_vertex_menu_save_button_front), gsSPEndDisplayList(), }; // 0x070033D0 - 0x07003400 const Gfx dl_menu_save_button_back[] = { gsSPDisplayList(dl_tex_block_menu_save_button_back), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_dark_stone), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_vertex_menu_save_button_back), gsSPEndDisplayList(), }; // 0x07003400 - 0x07003450 const Gfx dl_menu_save_button_fade_back[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_SHADING_SMOOTH), gsSPLight(&lights_menu_save_button.l, 1), gsSPLight(&lights_menu_save_button.a, 2), gsSPVertex(vertex_menu_save_button_back, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0), gsDPPipeSync(), gsSPSetGeometryMode(G_SHADING_SMOOTH), gsSPEndDisplayList(), }; // 0x07003450 - 0x07003468 static const Lights1 lights_menu_main_button = gdSPDefLights1( 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 ); // 0x07003468 - 0x07003468 ALIGNED8 static const u8 texture_menu_erase[] = "levels/menu/main_menu_seg7.03468.rgba16"; // 0x07003C68 - 0x07003C68 ALIGNED8 static const u8 texture_menu_copy[] = "levels/menu/main_menu_seg7.03C68.rgba16"; // 0x07004468 - 0x07004468 ALIGNED8 static const u8 texture_menu_file[] = "levels/menu/main_menu_seg7.04468.rgba16"; // 0x07004C68 - 0x07004C68 ALIGNED8 static const u8 texture_menu_score[] = "levels/menu/main_menu_seg7.04C68.rgba16"; // 0x07005468 - 0x07005468 ALIGNED8 static const u8 texture_menu_sound[] = "levels/menu/main_menu_seg7.05468.rgba16"; // 0x07005C68 - 0x07005D68 static const Vtx vertex_menu_main_button_group1[] = { {{{ -163, -122, 0}, 0, { 990, 0}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 862, 138}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 990}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ -133, 92, 10}, 0, { 894, 862}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ -133, -92, 10}, 0, { 894, 96}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ -133, 92, 10}, 0, { 894, 862}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 133, -92, 10}, 0, { 64, 96}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -133, -92, 10}, 0, { 894, 96}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 133, 92, 10}, 0, { 64, 862}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 133, 92, 10}, 0, { 64, 862}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ -133, 92, 10}, 0, { 894, 862}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ 143, -102, 0}, 0, { 32, 54}, {0xa7, 0x00, 0xa7, 0xff}}}, {{{ 133, 92, 10}, 0, { 64, 862}, {0xa7, 0x00, 0xa7, 0xff}}}, {{{ 143, 102, 0}, 0, { 32, 904}, {0xa7, 0x00, 0xa7, 0xff}}}, }; // 0x07005D68 - 0x07005E68 static const Vtx vertex_menu_main_button_group2[] = { {{{ 143, -102, 0}, 0, { 32, 54}, {0xa7, 0x00, 0xa7, 0xff}}}, {{{ 133, -92, 10}, 0, { 64, 96}, {0xa7, 0x00, 0xa7, 0xff}}}, {{{ 133, 92, 10}, 0, { 64, 862}, {0xa7, 0x00, 0xa7, 0xff}}}, {{{ 133, 92, 10}, 0, { 64, 862}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ 143, 102, 0}, 0, { 32, 904}, {0x00, 0xa7, 0xa7, 0xff}}}, {{{ -143, -102, 0}, 0, { 926, 54}, {0x00, 0x59, 0xa7, 0xff}}}, {{{ 133, -92, 10}, 0, { 64, 96}, {0x00, 0x59, 0xa7, 0xff}}}, {{{ 143, -102, 0}, 0, { 32, 54}, {0x00, 0x59, 0xa7, 0xff}}}, {{{ -133, -92, 10}, 0, { 894, 96}, {0x00, 0x59, 0xa7, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ -133, -92, 10}, 0, { 894, 96}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ -143, -102, 0}, 0, { 926, 54}, {0x59, 0x00, 0xa7, 0xff}}}, {{{ 163, 122, 0}, 0, { 0, 990}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 990}, {0x00, 0x00, 0x81, 0xff}}}, }; // 0x07005E68 - 0x07005F48 static const Vtx vertex_menu_main_button_group3[] = { {{{ 163, 122, 0}, 0, { 0, 990}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 143, 102, 0}, 0, { 32, 904}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -143, 102, 0}, 0, { 926, 904}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 143, -102, 0}, 0, { 32, 54}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 163, -122, 0}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 990}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -143, -102, 0}, 0, { 926, 54}, {0x00, 0x00, 0x81, 0xff}}}, {{{ -163, -122, 0}, 0, { 990, 0}, {0x00, 0x00, 0x81, 0xff}}}, {{{ 163, -122, 0}, 0, { 0, 0}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ 122, -81, 30}, 0, { 96, 138}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 862, 138}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 862, 138}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -122, 81, 30}, 0, { 862, 820}, {0xb6, 0x00, 0x66, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 990}, {0xb6, 0x00, 0x66, 0xff}}}, }; // 0x07005F48 - 0x07006038 static const Vtx vertex_menu_main_button_group4[] = { {{{ -122, 81, 30}, 0, { 862, 820}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ -122, -81, 30}, 0, { 862, 138}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 122, -81, 30}, 0, { 96, 138}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ -163, -122, 0}, 0, { 990, 0}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ 163, -122, 0}, 0, { 0, 0}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -122, -81, 30}, 0, { 862, 138}, {0x00, 0xb6, 0x66, 0xff}}}, {{{ -122, 81, 30}, 0, { 862, 820}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 122, 81, 30}, 0, { 96, 820}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 163, 122, 0}, 0, { 0, 990}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ -163, 122, 0}, 0, { 990, 990}, {0x00, 0x4a, 0x66, 0xff}}}, {{{ 122, 81, 30}, 0, { 96, 820}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 163, 122, 0}, 0, { 0, 990}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 122, 81, 30}, 0, { 96, 820}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 163, -122, 0}, 0, { 0, 0}, {0x4a, 0x00, 0x66, 0xff}}}, {{{ 122, -81, 30}, 0, { 96, 138}, {0x4a, 0x00, 0x66, 0xff}}}, }; // 0x07006038 - 0x07006150 static const Gfx dl_vertex_menu_main_button[] = { gsSPLight(&lights_menu_main_button.l, 1), gsSPLight(&lights_menu_main_button.a, 2), gsSPVertex(vertex_menu_main_button_group1, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(vertex_menu_main_button_group2, 16, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0), gsSP2Triangles(10, 11, 12, 0x0, 13, 14, 15, 0x0), gsSPVertex(vertex_menu_main_button_group3, 14, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 0, 4, 3, 0x0, 5, 2, 6, 0x0), gsSP2Triangles( 5, 6, 7, 0x0, 6, 3, 4, 0x0), gsSP2Triangles( 6, 4, 7, 0x0, 8, 9, 10, 0x0), gsSP1Triangle(11, 12, 13, 0x0), gsSPVertex(vertex_menu_main_button_group4, 15, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 9, 6, 8, 0x0), gsSP2Triangles(10, 0, 2, 0x0, 11, 12, 13, 0x0), gsSP1Triangle(12, 14, 13, 0x0), gsSPEndDisplayList(), }; // 0x07006150 - 0x07006198 static const Gfx dl_tex_block_menu_main_button[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsSPClearGeometryMode(G_SHADING_SMOOTH), 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), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), 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), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x07006198 - 0x070061C8 static const Gfx dl_menu_main_button[] = { gsSPDisplayList(dl_vertex_menu_main_button), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_SHADING_SMOOTH), gsSPEndDisplayList(), }; // 0x070061C8 - 0x070061F8 const Gfx dl_menu_erase_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_erase), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x070061F8 - 0x07006228 const Gfx dl_menu_copy_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_copy), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x07006228 - 0x07006258 const Gfx dl_menu_file_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_file), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x07006258 - 0x07006288 const Gfx dl_menu_score_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_score), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x07006288 - 0x070062B8 const Gfx dl_menu_sound_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_sound), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x070062B8 - 0x070062E8 const Gfx dl_menu_generic_button[] = { gsSPDisplayList(dl_tex_block_menu_main_button), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_stone), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(dl_menu_main_button), gsSPEndDisplayList(), }; // 0x070062E8 - 0x07006328 static const Vtx vertex_menu_hand[] = { {{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 32, 0, 0}, 0, { 1984, 1984}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 32, 32, 0}, 0, { 1984, 0}, {0x00, 0x00, 0x7f, 0xff}}}, {{{ 0, 32, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}}, }; // 0x07006328 - 0x07006B28 ALIGNED8 static const u8 texture_menu_idle_hand[] = "levels/menu/main_menu_seg7.06328.rgba16"; // 0x07006B28 - 0x07007328 ALIGNED8 static const u8 texture_menu_grabbing_hand[] = "levels/menu/main_menu_seg7.06B28.rgba16"; // 0x07007328 - 0x070073A0 static const Gfx dl_menu_hand[] = { gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), gsDPSetRenderMode(G_RM_AA_TEX_EDGE, G_RM_AA_TEX_EDGE2), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), 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), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 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), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(vertex_menu_hand, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; // 0x070073A0 - 0x070073B8 const Gfx dl_menu_idle_hand[] = { gsDPPipeSync(), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_idle_hand), gsSPBranchList(dl_menu_hand), }; // 0x070073B8 - 0x070073D0 const Gfx dl_menu_grabbing_hand[] = { gsDPPipeSync(), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_grabbing_hand), gsSPBranchList(dl_menu_hand), }; // 0x0700D108 - 0x0700D160 const Gfx dl_menu_ia8_text_begin[] = { gsDPPipeSync(), gsDPSetTexturePersp(G_TP_NONE), gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetRenderMode(G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2), gsDPSetTextureFilter(G_TF_POINT), gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 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), gsDPTileSync(), gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 1, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 3, G_TX_NOLOD, G_TX_CLAMP, 3, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x0700D160 - 0x0700D1A0 const Gfx dl_menu_ia8_text_end[] = { gsDPPipeSync(), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetEnvColor(255, 255, 255, 255), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), }; UNUSED static const u64 menu_unused_1 = 0; // 0x0700D1A8 - 0x0700E1A8 ALIGNED8 static const u8 texture_menu_course_upper[] = "levels/menu/main_menu_seg7.0D1A8.rgba16"; // 0x0700E1A8 - 0x0700F1A8 ALIGNED8 static const u8 texture_menu_course_lower[] = "levels/menu/main_menu_seg7.0E1A8.rgba16"; // 0x0700F1A8 - 0x0700F1E8 static const Vtx vertex_menu_course_upper[] = { {{{ -32, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ 32, 0, 0}, 0, { 4032, 1984}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ 32, 32, 0}, 0, { 4032, 0}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ -32, 32, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0x00}}}, }; // 0x0700F1E8 - 0x0700F228 static const Vtx vertex_menu_course_lower[] = { {{{ -32, -32, 0}, 0, { 0, 1984}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ 32, -32, 0}, 0, { 4032, 1984}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ 32, 0, 0}, 0, { 4032, 0}, {0x00, 0x00, 0x7f, 0x00}}}, {{{ -32, 0, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0x00}}}, }; // 0x0700F228 - 0x0700F2F8 const Gfx dl_menu_rgba16_wood_course[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), gsDPSetRenderMode(G_RM_AA_TEX_EDGE, G_RM_AA_TEX_EDGE2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_course_upper), 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), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 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), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(vertex_menu_course_upper, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_course_lower), 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), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 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), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(vertex_menu_course_lower, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; // 0x0700F2F8 - 0x0700F328 const Collision main_menu_seg7_collision[] = { COL_INIT(), COL_VERTEX_INIT(0x4), COL_VERTEX( 8192, -1000, -8192), COL_VERTEX(-8192, -1000, -8192), COL_VERTEX(-8192, -1000, 8192), COL_VERTEX( 8192, -1000, 8192), COL_TRI_INIT(SURFACE_DEFAULT, 2), COL_TRI(0, 1, 2), COL_TRI(0, 2, 3), COL_TRI_STOP(), COL_END(), };