sm64/map/title/Stitle.s

231 lines
6.7 KiB
ArmAsm

/********************************************************************************
Ultra 64 MARIO Brothers
title sequence module
Copyright 1996 Nintendo co., ltd. All rights reserved
April 11, 1996
********************************************************************************/
#define ASSEMBLER
#include "../../headers.h"
#define FADEOUT_TIME 190
.data
.align 2
.align 0
.globl SEQ_LogoSequence
.globl SEQ_TitleSequence
.globl SEQ_GmOverSequence
.globl SEQ_DebugSequence
/********************************************************************************/
/* */
/* Nintendo logo display sequence. */
/* */
/********************************************************************************/
SEQ_LogoSequence:
/*************** stage construction *********************************************/
seqInitStage()
seqLoadCode(DEMOCODE_START , _TCodeSegmentRomStart, _TCodeSegmentRomEnd)
seqLoadData(SEGMENT_PATHDATA, _PathSegmentRomStart, _PathSegmentRomEnd)
seqLoadPres(SEGMENT_STAGE1 , _TLogoSegmentRomStart, _TLogoSegmentRomEnd)
seqBeginConstruction()
seqBeginScene(1, RCP_NintendoLogo)
seqEndScene()
seqEndConstruction()
/*************** display Nintendo logo ******************************************/
seqOpenScene(1)
seqCProgram(TitleProcess, 0)
seqWait(75)
seqWipe(WIPE_FADE_OUT, 16, 0, 0, 0)
seqWait(16)
seqCloseScene(1)
seqDestroyStage()
seqWait(2)
seqChain(SEGMENT_DEMODATA, _TitleSegmentRomStart, _TitleSegmentRomEnd, SEQ_TitleSequence)
/********************************************************************************/
/* */
/* Title sequence. */
/* */
/********************************************************************************/
SEQ_TitleSequence:
/*************** stage construction *********************************************/
seqInitStage()
seqBlanking(1)
seqLoadCode(DEMOCODE_START , _TCodeSegmentRomStart, _TCodeSegmentRomEnd)
seqLoadFace(2)
seqLoadData(SEGMENT_PATHDATA, _PathSegmentRomStart, _PathSegmentRomEnd)
seqLoadText(SEGMENT_BACK , _TWallSegmentRomStart, _TWallSegmentRomEnd)
seqBeginConstruction()
seqBeginScene(1, RCP_MapTitle)
seqEndScene()
seqEndConstruction()
/*************** display mario face demo ***************************************/
seqWait(2)
seqBlanking(0)
seqOpenScene(1)
seqPlayMusic(NA_TITLE_BGM, 0)
seqWipe(WIPE_STAR_WIN_OPEN, 20, 0, 0, 0)
seqWait(20)
seqRunning(TitleProcess, 1)
seqTstJump(SEQ_EQ, 100, SEQ_ChainSelect)
seqTstJump(SEQ_EQ, 101, SEQ_ChainDebug )
seqJump(SEQ_ChainDemo)
/********************************************************************************/
/* */
/* Continue sequence. */
/* */
/********************************************************************************/
SEQ_GmOverSequence:
/*************** stage construction *********************************************/
seqInitStage()
seqBlanking(1)
seqLoadCode(DEMOCODE_START , _TCodeSegmentRomStart, _TCodeSegmentRomEnd)
seqLoadFace(3)
seqLoadData(SEGMENT_PATHDATA, _PathSegmentRomStart, _PathSegmentRomEnd)
seqLoadText(SEGMENT_BACK , _TWallSegmentRomStart, _TWallSegmentRomEnd)
seqBeginConstruction()
seqBeginScene(1, RCP_MapGmOver)
seqEndScene()
seqEndConstruction()
/*************** display mario face demo ***************************************/
seqWait(2)
seqBlanking(0)
seqOpenScene(1)
seqPlayMusic(NA_OVER_TITLE_BGM, 0)
seqWipe(WIPE_STAR_WIN_OPEN, 20, 0, 0, 0)
seqWait(20)
seqRunning(TitleProcess, 2)
seqTstJump(SEQ_EQ, 100, SEQ_ChainSelect)
seqTstJump(SEQ_EQ, 101, SEQ_ChainDebug )
seqJump(SEQ_ChainDemo)
/********************************************************************************/
/* */
/* Debug sequence. */
/* */
/********************************************************************************/
SEQ_DebugSequence:
/*************** stage construction *********************************************/
seqInitStage()
seqLoadData(SEGMENT_PATHDATA, _PathSegmentRomStart, _PathSegmentRomEnd)
seqLoadText(SEGMENT_BACK , _TWallSegmentRomStart, _TWallSegmentRomEnd)
seqLoadPres(SEGMENT_STAGE1 , _DebugSegmentRomStart, _DebugSegmentRomEnd)
seqLoadCode(DEMOCODE_START , _TCodeSegmentRomStart, _TCodeSegmentRomEnd)
seqBeginConstruction()
seqBeginScene(1, RCP_MapSelect)
seqEndScene()
seqEndConstruction()
/*************** display select screen ******************************************/
seqOpenScene(1)
seqPlayMusic(NA_TITLE_BGM, 0)
seqWipe(WIPE_FADE_IN, 16, 255, 255, 255)
seqWait(16)
seqRunning(TitleProcess, 3)
seqTstJump(SEQ_EQ, -1, SEQ_ChainLogo)
seqJump(SEQ_ChainGame)
/********************************************************************************/
/* Chain select */
/********************************************************************************/
SEQ_ChainSelect:
seqStopMusic(FADEOUT_TIME)
seqWipe(WIPE_FADE_OUT, 16, 255, 255, 255)
seqWait(16)
seqDestroyStage()
seqWait(2)
seqSetResult(16)
seqChain(SEGMENT_DEMODATA, _HmsSelectSegmentRomStart, _HmsSelectSegmentRomEnd, SEQ_SelectSequence)
/********************************************************************************/
/* Chain auto demo */
/********************************************************************************/
SEQ_ChainDebug:
seqWipe(WIPE_FADE_OUT, 16, 255, 255, 255)
seqWait(16)
seqDestroyStage()
seqWait(2)
seqChain(SEGMENT_DEMODATA, _TitleSegmentRomStart, _TitleSegmentRomEnd, SEQ_DebugSequence)
/********************************************************************************/
/* Chain game */
/********************************************************************************/
SEQ_ChainGame:
seqStopMusic(FADEOUT_TIME)
seqWipe(WIPE_FADE_OUT, 16, 255, 255, 255)
seqWait(16)
seqDestroyStage()
seqWait(2)
seqChain(SEGMENT_GAMEDATA, _GameSegmentRomStart, _GameSegmentRomEnd, SEQ_GameSequence)
/********************************************************************************/
/* Chain auto demo */
/********************************************************************************/
SEQ_ChainDemo:
seqWipe(WIPE_FADE_OUT, 16, 255, 255, 255)
seqWait(16)
seqDestroyStage()
seqWait(2)
seqChain(SEGMENT_GAMEDATA, _GameSegmentRomStart, _GameSegmentRomEnd, SEQ_GameSequence)
/********************************************************************************/
/* Chain title logo */
/********************************************************************************/
SEQ_ChainLogo:
seqStopMusic(FADEOUT_TIME)
seqWipe(WIPE_FADE_OUT, 16, 0, 0, 0)
seqWait(16)
seqDestroyStage()
seqWait(2)
seqChain(SEGMENT_DEMODATA, _TitleSegmentRomStart, _TitleSegmentRomEnd, SEQ_LogoSequence)