You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
level documentation hmc and intro
This commit is contained in:
@@ -152,7 +152,7 @@ const GeoLayout hmc_geo_000850[] = {
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07014C00),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014E48),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0702, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_TOXIC_MAZE_MIST, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -189,7 +189,7 @@ const GeoLayout hmc_geo_000938[] = {
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701A080),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701A400),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0702, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_TOXIC_MAZE_MIST, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -210,8 +210,8 @@ const GeoLayout hmc_geo_000998[] = {
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0701, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(0x0702, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_DORRIE_POOL_WATER, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_TOXIC_MAZE_MIST, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -231,7 +231,7 @@ const GeoLayout hmc_geo_000A18[] = {
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0701, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_DORRIE_POOL_WATER, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -249,7 +249,7 @@ const GeoLayout hmc_geo_000A88[] = {
|
||||
GEO_ASM( 0, geo_painting_update),
|
||||
GEO_ASM( PAINTING_ID(0, 0), geo_painting_draw),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0701, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_DORRIE_POOL_WATER, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -267,7 +267,7 @@ const GeoLayout hmc_geo_000AE8[] = {
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07021BA0),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070228A0),
|
||||
GEO_ASM( 0, geo_movtex_pause_control),
|
||||
GEO_ASM(0x0701, geo_movtex_draw_water_regions),
|
||||
GEO_ASM(HMC_MOVTEX_DORRIE_POOL_WATER, geo_movtex_draw_water_regions),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RETURN(),
|
||||
};
|
||||
@@ -289,7 +289,7 @@ const GeoLayout hmc_geo_000B48[] = {
|
||||
|
||||
// 0x0E000B90
|
||||
const GeoLayout hmc_geo_000B90[] = {
|
||||
GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
|
||||
GEO_NODE_SCREEN_AREA(10, SCREEN_CENTER_X, SCREEN_CENTER_Y, SCREEN_CENTER_X, SCREEN_CENTER_Y),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -302,7 +302,7 @@ const GeoLayout hmc_geo_000B90[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA_FRUSTUM_WITH_FUNC(45, 100, 12800, geo_camera_fov),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA(16, 0, 2000, 6000, 0, 0, 0, geo_camera_main),
|
||||
GEO_CAMERA(CAMERA_MODE_FREE_ROAM, 0, 2000, 6000, 0, 0, 0, geo_camera_main),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(18, geo_switch_area),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -326,7 +326,7 @@ const GeoLayout hmc_geo_000B90[] = {
|
||||
GEO_BRANCH(1, hmc_geo_000B48), // 0x0E000B48
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RENDER_OBJ(),
|
||||
GEO_ASM(0, geo_envfx_main),
|
||||
GEO_ASM(ENVFX_MODE_NONE, geo_envfx_main),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 0x0702B86C - 0x0702B8E0
|
||||
const Trajectory hmc_seg7_trajectory_0702B86C[] = {
|
||||
const Trajectory hmc_seg7_trajectory_checkerboard_platform[] = {
|
||||
TRAJECTORY_POS(0, /*pos*/ 1272, 2000, 5120),
|
||||
TRAJECTORY_POS(1, /*pos*/ 1272, 2000, 3500),
|
||||
TRAJECTORY_POS(2, /*pos*/ 1800, 2100, 3000),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 0x0702B65C - 0x0702B6E0
|
||||
const Collision hmc_seg7_collision_0702B65C[] = {
|
||||
const Collision hmc_seg7_collision_grill_door[] = {
|
||||
COL_INIT(),
|
||||
COL_VERTEX_INIT(0x8),
|
||||
COL_VERTEX(410, 0, 51),
|
||||
|
||||
@@ -80,10 +80,10 @@ extern const Collision hmc_seg7_collision_level[];
|
||||
extern const MacroObject hmc_seg7_macro_objs[];
|
||||
extern const RoomData hmc_seg7_rooms[];
|
||||
extern const Collision hmc_seg7_collision_elevator[];
|
||||
extern const Collision hmc_seg7_collision_0702B65C[];
|
||||
extern const Collision hmc_seg7_collision_grill_door[];
|
||||
extern const Collision hmc_seg7_collision_controllable_platform[];
|
||||
extern const Collision hmc_seg7_collision_controllable_platform_sub[];
|
||||
extern const Trajectory hmc_seg7_trajectory_0702B86C[];
|
||||
extern const Trajectory hmc_seg7_trajectory_checkerboard_platform[];
|
||||
extern const struct MovtexQuadCollection hmc_movtex_dorrie_pool_water[];
|
||||
extern const struct MovtexQuadCollection hmc_movtex_toxic_maze_mist[];
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
// 0x0E0002D0
|
||||
const GeoLayout intro_geo_splash_screen[] = {
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_CENTER_X, SCREEN_CENTER_Y, SCREEN_CENTER_X, SCREEN_CENTER_Y),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -32,9 +32,12 @@ const GeoLayout intro_geo_splash_screen[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA_FRUSTUM(45, 128, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000),
|
||||
GEO_CAMERA(CAMERA_MODE_NONE, 0, 0, 3200, 0, 0, 0, 0x00000000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_intro_super_mario_64_logo),
|
||||
#if defined(HD_INTRO_TEXTURES) && defined(FLOOMBAS)
|
||||
GEO_RENDER_OBJ(),
|
||||
#endif
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -48,7 +51,7 @@ const GeoLayout intro_geo_splash_screen[] = {
|
||||
|
||||
// 0x0E00035C
|
||||
const GeoLayout intro_geo_mario_head_regular[] = {
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_CENTER_X, SCREEN_CENTER_Y, SCREEN_CENTER_X, SCREEN_CENTER_Y),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -72,7 +75,7 @@ const GeoLayout intro_geo_mario_head_regular[] = {
|
||||
#if ENABLE_RUMBLE
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_intro_rumble_pak_graphic),
|
||||
GEO_ASM(INTRO_CONTEXT_NORMAL, geo_intro_rumble_pak_graphic),
|
||||
GEO_CLOSE_NODE(),
|
||||
#endif
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -81,7 +84,7 @@ const GeoLayout intro_geo_mario_head_regular[] = {
|
||||
|
||||
// 0x0E0003B8
|
||||
const GeoLayout intro_geo_mario_head_dizzy[] = {
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_CENTER_X, SCREEN_CENTER_Y, SCREEN_CENTER_X, SCREEN_CENTER_Y),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -105,7 +108,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = {
|
||||
#if ENABLE_RUMBLE
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_intro_rumble_pak_graphic),
|
||||
GEO_ASM(INTRO_CONTEXT_GAME_OVER, geo_intro_rumble_pak_graphic),
|
||||
GEO_CLOSE_NODE(),
|
||||
#endif
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -114,7 +117,7 @@ const GeoLayout intro_geo_mario_head_dizzy[] = {
|
||||
|
||||
// 0x0E000414
|
||||
const GeoLayout intro_geo_debug_level_select[] = {
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
|
||||
GEO_NODE_SCREEN_AREA(0, SCREEN_CENTER_X, SCREEN_CENTER_Y, SCREEN_CENTER_X, SCREEN_CENTER_Y),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ZBUFFER(0),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -127,7 +130,7 @@ const GeoLayout intro_geo_debug_level_select[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA_FRUSTUM(45, 128, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_CAMERA(0, 0, 0, 1200, 0, 0, 0, 0x00000000),
|
||||
GEO_CAMERA(CAMERA_MODE_NONE, 0, 0, 1200, 0, 0, 0, 0x00000000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -230, 300, 0, debug_level_select_dl_07000858),
|
||||
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -120, 300, 0, debug_level_select_dl_07001100),
|
||||
|
||||
@@ -3318,64 +3318,114 @@ const Gfx intro_seg7_dl_main_logo[] = {
|
||||
};
|
||||
|
||||
// 0x0700B420 - 0x0700B460
|
||||
static const Vtx intro_seg7_vertex_0700B420[] = {
|
||||
{{{ 96, 42, -1}, 0, { 0, 512}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 224, 42, -1}, 0, { 4096, 512}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 224, 58, -1}, 0, { 4096, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 96, 58, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
static const Vtx intro_seg7_vertex_copyright[] = {
|
||||
#ifdef HD_INTRO_TEXTURES
|
||||
{{{ 80, 60, -1}, 0, { 0, 0}, {0x00, 0xff, 0xf7, 0xff}}}, // 0
|
||||
{{{ 240, 60, -1}, 0, {256<<5, 0}, {0x00, 0xff, 0xf7, 0xff}}}, // 1
|
||||
|
||||
{{{ 80, 48, -1}, 0, { 0, 16<<5}, {0x00, 0xff, 0xff, 0xff}}}, // 2
|
||||
{{{ 240, 48, -1}, 0, {256<<5, 16<<5}, {0x00, 0xff, 0xff, 0xff}}}, // 3
|
||||
|
||||
{{{ 80, 36, -1}, 0, { 0, 32<<5}, {0x00, 0x7f, 0xff, 0xff}}}, // 4
|
||||
{{{ 240, 36, -1}, 0, {256<<5, 32<<5}, {0x00, 0x7f, 0xff, 0xff}}}, // 5
|
||||
#else
|
||||
{{{ 96, 58, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, // 0
|
||||
{{{ 224, 58, -1}, 0, {128<<5, 0}, {0xff, 0xff, 0xff, 0xff}}}, // 1
|
||||
{{{ 96, 42, -1}, 0, { 0, 16<<5}, {0xff, 0xff, 0xff, 0xff}}}, // 2
|
||||
{{{ 224, 42, -1}, 0, {128<<5, 16<<5}, {0xff, 0xff, 0xff, 0xff}}}, // 3
|
||||
#endif
|
||||
};
|
||||
|
||||
// 0x0700B460 - 0x0700B4A0
|
||||
static const Vtx intro_seg7_vertex_0700B460[] = {
|
||||
{{{ 268, 180, -1}, 0, { 0, 512}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 284, 180, -1}, 0, { 544, 512}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 284, 196, -1}, 0, { 544, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
static const Vtx intro_seg7_vertex_trademark[] = {
|
||||
#ifdef HD_INTRO_TEXTURES
|
||||
{{{ 268, 192, -1}, 0, { 0, 0}, {0x00, 0xff, 0xf7, 0xff}}}, // 0
|
||||
{{{ 284, 192, -1}, 0, { 64<<5, 0}, {0x00, 0xff, 0xf7, 0xff}}}, // 1
|
||||
|
||||
{{{ 268, 184, -1}, 0, { 0, 32<<5}, {0x00, 0xff, 0xff, 0xff}}}, // 2
|
||||
{{{ 284, 184, -1}, 0, { 64<<5, 32<<5}, {0x00, 0xff, 0xff, 0xff}}}, // 3
|
||||
|
||||
{{{ 268, 176, -1}, 0, { 0, 64<<5}, {0x00, 0x7f, 0xff, 0xff}}}, // 4
|
||||
{{{ 284, 176, -1}, 0, { 64<<5, 64<<5}, {0x00, 0x7f, 0xff, 0xff}}}, // 5
|
||||
#else
|
||||
{{{ 268, 196, -1}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, // 0
|
||||
{{{ 284, 196, -1}, 0, { 544, 0}, {0xff, 0xff, 0xff, 0xff}}}, // 1
|
||||
{{{ 268, 180, -1}, 0, { 0, 512}, {0xff, 0xff, 0xff, 0xff}}}, // 2
|
||||
{{{ 284, 180, -1}, 0, { 544, 512}, {0xff, 0xff, 0xff, 0xff}}}, // 3
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef HD_INTRO_TEXTURES
|
||||
// 0x0700B4A0 - 0x0700B4A2
|
||||
ALIGNED8 static const Texture intro_seg7_texture_copyright[] = {
|
||||
#include "levels/intro/made_with_hackersm64.custom.i4.inc.c"
|
||||
};
|
||||
// 0x0700C4A0 - 0x0700D4A0
|
||||
ALIGNED8 static const Texture intro_seg7_texture_trademark[] = {
|
||||
#include "levels/intro/tm.custom.i4.inc.c"
|
||||
};
|
||||
#else
|
||||
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
// 0x0700B4A0 - 0x0700B4A2
|
||||
ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = {
|
||||
ALIGNED8 static const Texture intro_seg7_texture_copyright[] = {
|
||||
#include "levels/intro/2_eu_copyright.rgba16.inc.c"
|
||||
};
|
||||
|
||||
#else
|
||||
// 0x0700B4A0 - 0x0700B4A2
|
||||
ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = {
|
||||
#include "levels/intro/made_with_hackersm64.custom.rgba16.inc.c"
|
||||
ALIGNED8 static const Texture intro_seg7_texture_copyright[] = {
|
||||
#include "levels/intro/2_copyright.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_EU)
|
||||
// 0x0700C4A0 - 0x0700D4A0
|
||||
ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = {
|
||||
ALIGNED8 static const Texture intro_seg7_texture_trademark[] = {
|
||||
#include "levels/intro/3_eu_tm.rgba16.inc.c"
|
||||
};
|
||||
#elif defined(VERSION_SH)
|
||||
ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = {
|
||||
ALIGNED8 static const Texture intro_seg7_texture_trademark[] = {
|
||||
#include "levels/intro/3_sh_tm.rgba16.inc.c"
|
||||
};
|
||||
#else
|
||||
// 0x0700C4A0 - 0x0700D4A0
|
||||
ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = {
|
||||
ALIGNED8 static const Texture intro_seg7_texture_trademark[] = {
|
||||
#include "levels/intro/3_tm.rgba16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
// 0x0700C6A0 - 0x0700C790
|
||||
const Gfx intro_seg7_dl_copyright_trademark[] = {
|
||||
gsDPPipeSync(),
|
||||
#ifdef HD_INTRO_TEXTURES
|
||||
gsDPSetCombineMode(G_CC_MODULATEFADE, G_CC_MODULATEFADE),
|
||||
#else
|
||||
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
|
||||
#endif
|
||||
gsDPSetTextureFilter(G_TF_POINT),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
|
||||
gsDPLoadTextureBlock(intro_seg7_texture_0700B4A0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 4, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_0700B420, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
|
||||
gsDPLoadTextureBlock(intro_seg7_texture_0700C4A0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_0700B460, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
#ifdef HD_INTRO_TEXTURES
|
||||
gsDPLoadTextureBlock_4b(intro_seg7_texture_copyright, G_IM_FMT_I, 256, 32, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), 0, 8, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_copyright, 6, 0),
|
||||
gsSP2Triangles( 0, 3, 1, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 2, 5, 3, 0x0, 2, 4, 5, 0x0),
|
||||
|
||||
gsDPLoadTextureBlock_4b(intro_seg7_texture_trademark, G_IM_FMT_I, 64, 64, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), 0, 6, 6, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_trademark, 6, 0),
|
||||
gsSP2Triangles( 0, 3, 1, 0x0, 0, 2, 3, 0x0),
|
||||
gsSP2Triangles( 2, 5, 3, 0x0, 2, 4, 5, 0x0),
|
||||
#else
|
||||
gsDPLoadTextureBlock(intro_seg7_texture_copyright, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 7, 4, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_copyright, 4, 0),
|
||||
gsSP2Triangles( 0, 3, 1, 0x0, 0, 2, 3, 0x0),
|
||||
|
||||
gsDPLoadTextureBlock(intro_seg7_texture_trademark, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(intro_seg7_vertex_trademark, 4, 0),
|
||||
gsSP2Triangles( 0, 3, 1, 0x0, 0, 2, 3, 0x0),
|
||||
#endif
|
||||
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
||||
BIN
levels/intro/made_with_hackersm64.custom.i4.png
Normal file
BIN
levels/intro/made_with_hackersm64.custom.i4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@@ -13,6 +13,7 @@
|
||||
#include "levels/scripts.h"
|
||||
#include "levels/menu/header.h"
|
||||
|
||||
#include "actors/common0.h"
|
||||
#include "actors/common1.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
@@ -22,15 +23,44 @@
|
||||
#include "config.h"
|
||||
#include "game/print.h"
|
||||
|
||||
#include "game/object_list_processor.h"
|
||||
|
||||
const LevelScript level_intro_splash_screen[] = {
|
||||
INIT_LEVEL(),
|
||||
#ifdef SKIP_TITLE_SCREEN
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_mario_head_regular, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ SEGMENT_MENU_INTRO, _introSegmentRomStart, _introSegmentRomEnd, level_intro_mario_head_regular, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
#endif
|
||||
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
|
||||
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
|
||||
LOAD_YAY0(/*seg*/ 0x07, _intro_segment_7SegmentRomStart, _intro_segment_7SegmentRomEnd),
|
||||
LOAD_GODDARD(),
|
||||
LOAD_BEHAVIOR_DATA(),
|
||||
LOAD_LEVEL_DATA(intro),
|
||||
#if defined(HD_INTRO_TEXTURES) && defined(FLOOMBAS)
|
||||
LOAD_COMMON0(),
|
||||
|
||||
// Load "Super Mario 64" logo
|
||||
ALLOC_LEVEL_POOL(),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_GOOMBA, goomba_geo),
|
||||
AREA(/*index*/ 1, intro_geo_splash_screen),
|
||||
OBJECT(/*model*/ MODEL_GOOMBA, /*pos*/ -570, -480, 1500, /*angle*/ 0, 50, 0, /*behParam*/ BP(0x18, 0x00, 0x10, 0x0B), /*beh*/ bhvFloombaStartup),
|
||||
OBJECT(/*model*/ MODEL_GOOMBA, /*pos*/ 570, -480, 1500, /*angle*/ 0, -50, 0, /*behParam*/ BP(0x18, 0x00, 0x90, 0x0B), /*beh*/ bhvFloombaStartup),
|
||||
END_AREA(),
|
||||
FREE_LEVEL_POOL(),
|
||||
|
||||
// Start animation
|
||||
LOAD_AREA(/*area*/ 1),
|
||||
|
||||
CALL(/*arg*/ LVL_INTRO_PLAY_ITS_A_ME_MARIO, /*func*/ lvl_intro_update),
|
||||
CALL(/*arg*/ 0, /*func*/ load_mario_area),
|
||||
|
||||
JUMP_LINK_PUSH_ARG(75),
|
||||
UPDATE_OBJECTS(),
|
||||
SLEEP(/*frames*/ 1),
|
||||
JUMP_N_TIMES(),
|
||||
TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0x00, 0x00, 0x00),
|
||||
JUMP_LINK_PUSH_ARG(16),
|
||||
UPDATE_OBJECTS(),
|
||||
SLEEP(/*frames*/ 1),
|
||||
JUMP_N_TIMES(),
|
||||
#else
|
||||
// Load "Super Mario 64" logo
|
||||
ALLOC_LEVEL_POOL(),
|
||||
AREA(/*index*/ 1, intro_geo_splash_screen),
|
||||
@@ -44,21 +74,21 @@ const LevelScript level_intro_splash_screen[] = {
|
||||
SLEEP(/*frames*/ 75),
|
||||
TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0x00, 0x00, 0x00),
|
||||
SLEEP(/*frames*/ 16),
|
||||
CMD2A(/*unk2*/ 1),
|
||||
#endif
|
||||
UNLOAD_AREA(/*area*/ 1),
|
||||
CLEAR_LEVEL(),
|
||||
SLEEP(/*frames*/ 2),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_mario_head_regular, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ SEGMENT_MENU_INTRO, _introSegmentRomStart, _introSegmentRomEnd, level_intro_mario_head_regular, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
};
|
||||
|
||||
const LevelScript level_intro_mario_head_regular[] = {
|
||||
|
||||
INIT_LEVEL(),
|
||||
BLACKOUT(/*active*/ TRUE),
|
||||
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
LOAD_GODDARD(),
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
LOAD_MARIO_HEAD(/*loadHeadID*/ REGULAR_FACE),
|
||||
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
|
||||
LOAD_YAY0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_yay0SegmentRomStart, _title_screen_bg_yay0SegmentRomEnd),
|
||||
LOAD_BEHAVIOR_DATA(),
|
||||
LOAD_TITLE_SCREEN_BG(),
|
||||
|
||||
ALLOC_LEVEL_POOL(),
|
||||
AREA(/*index*/ 1, intro_geo_mario_head_regular),
|
||||
@@ -71,7 +101,7 @@ const LevelScript level_intro_mario_head_regular[] = {
|
||||
SET_MENU_MUSIC(/*seq*/ SEQ_MENU_TITLE_SCREEN),
|
||||
TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_STAR, /*time*/ 20, /*color*/ 0x00, 0x00, 0x00),
|
||||
SLEEP(/*frames*/ 20),
|
||||
#else
|
||||
#else
|
||||
BLACKOUT(/*active*/ FALSE),
|
||||
#endif
|
||||
CALL_LOOP(/*arg*/ LVL_INTRO_REGULAR, /*func*/ lvl_intro_update),
|
||||
@@ -83,12 +113,12 @@ const LevelScript level_intro_mario_head_regular[] = {
|
||||
const LevelScript level_intro_mario_head_dizzy[] = {
|
||||
INIT_LEVEL(),
|
||||
BLACKOUT(/*active*/ TRUE),
|
||||
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
|
||||
LOAD_GODDARD(),
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
LOAD_MARIO_HEAD(/*loadHeadID*/ DIZZY_FACE),
|
||||
#endif
|
||||
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
|
||||
LOAD_YAY0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_yay0SegmentRomStart, _title_screen_bg_yay0SegmentRomEnd),
|
||||
LOAD_BEHAVIOR_DATA(),
|
||||
LOAD_TITLE_SCREEN_BG(),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
|
||||
AREA(/*index*/ 1, intro_geo_mario_head_dizzy),
|
||||
@@ -109,9 +139,9 @@ const LevelScript level_intro_mario_head_dizzy[] = {
|
||||
|
||||
const LevelScript level_intro_entry_level_select[] = {
|
||||
INIT_LEVEL(),
|
||||
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
|
||||
LOAD_YAY0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_yay0SegmentRomStart, _title_screen_bg_yay0SegmentRomEnd),
|
||||
LOAD_YAY0(/*seg*/ 0x07, _debug_level_select_yay0SegmentRomStart, _debug_level_select_yay0SegmentRomEnd),
|
||||
LOAD_BEHAVIOR_DATA(),
|
||||
LOAD_TITLE_SCREEN_BG(),
|
||||
LOAD_YAY0(/*seg*/ SEGMENT_LEVEL_DATA, _debug_level_select_yay0SegmentRomStart, _debug_level_select_yay0SegmentRomEnd),
|
||||
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
|
||||
ALLOC_LEVEL_POOL(),
|
||||
|
||||
@@ -136,8 +166,8 @@ const LevelScript script_intro_file_select[] = {
|
||||
SLEEP(/*frames*/ 16),
|
||||
CLEAR_LEVEL(),
|
||||
SLEEP(/*frames*/ 2),
|
||||
SET_REG(/*value*/ 16),
|
||||
EXIT_AND_EXECUTE(/*seg*/ 0x14, _menuSegmentRomStart, _menuSegmentRomEnd, level_main_menu_entry_file_select),
|
||||
SET_REG(/*value*/ START_LEVEL),
|
||||
EXIT_AND_EXECUTE(/*seg*/ SEGMENT_MENU_INTRO, _menuSegmentRomStart, _menuSegmentRomEnd, level_main_menu_entry_file_select),
|
||||
};
|
||||
|
||||
const LevelScript script_intro_level_select[] = {
|
||||
@@ -145,7 +175,7 @@ const LevelScript script_intro_level_select[] = {
|
||||
SLEEP(/*frames*/ 16),
|
||||
CLEAR_LEVEL(),
|
||||
SLEEP(/*frames*/ 2),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_level_select, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ SEGMENT_MENU_INTRO, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_level_select, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
};
|
||||
|
||||
const LevelScript script_intro_main_level_entry_stop_music[] = {
|
||||
@@ -158,7 +188,7 @@ const LevelScript script_intro_main_level_entry[] = {
|
||||
SLEEP(/*frames*/ 16),
|
||||
CLEAR_LEVEL(),
|
||||
SLEEP(/*frames*/ 2),
|
||||
EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry),
|
||||
EXIT_AND_EXECUTE(/*seg*/ SEGMENT_GLOBAL_LEVEL_SCRIPT, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry),
|
||||
};
|
||||
|
||||
const LevelScript script_intro_splash_screen[] = {
|
||||
@@ -167,5 +197,5 @@ const LevelScript script_intro_splash_screen[] = {
|
||||
SLEEP(/*frames*/ 16),
|
||||
CLEAR_LEVEL(),
|
||||
SLEEP(/*frames*/ 2),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_splash_screen, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
EXIT_AND_EXECUTE_WITH_CODE(/*seg*/ SEGMENT_MENU_INTRO, _introSegmentRomStart, _introSegmentRomEnd, level_intro_splash_screen, _introSegmentBssStart, _introSegmentBssEnd),
|
||||
};
|
||||
|
||||
BIN
levels/intro/tm.custom.i4.png
Normal file
BIN
levels/intro/tm.custom.i4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 830 B |
Reference in New Issue
Block a user