• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Completed Skip Master Hand and Crazy Hand's Entry Cutscene

abysspartyy

Smash Cadet
Joined
May 11, 2015
Messages
55

Skips Master Hand and Crazy Hand's entry cutscene.

The codes work by checking the stage ID. If you are on the special final destination stage found when fighting MH/CH in classic mode (stage ID of 176), this code will not skip the cutscene. For all other stages/modes such as VS mode, it will skip the entry cutscene for the hands.

The codes also fix their facing direction. If you set their entry action states to something else without fixing their facing directions, sometimes they will face the opposite way.


$Skip Crazy Hand's Entry Cutscene [sushie]
C2155FE4 0000000A
2C0300FB 4182000C
2C0300B0 41820040
48000035 7C6802A6
C0230000 D03E002C
7FE3FB78 3D808015
618CBC88 7D8903A6
4E800421 3D808015
618C6000 7D8903A6
4E800420 4E800021
3F800000 00000000


$Skip Master Hand's Entry Cutscene [sushie]
C214FE28 0000000A
2C0300FB 4182000C
2C0300B0 41820040
48000035 7C6802A6
C0230000 D03E002C
7FE3FB78 3D808015
618C1018 7D8903A6
4E800421 3D808014
618CFE44 7D8903A6
4E800420 4E800021
BF800000 00000000


Code:
################################################################################
# Address: 8014fe28
# Codetype: Auto
# Annotation: Skip MH Entry Cutscene [Odante]
################################################################################

.macro branchl reg, address
lis \reg, \address @h
ori \reg,\reg,\address @l
mtctr \reg
bctrl
.endm

.macro branch reg, address
lis \reg, \address @h
ori \reg,\reg,\address @l
mtctr \reg
bctr
.endm

# Registers
.set REG_FighterData, 30
# Functions
.set FUNC_ASMasterHandWaitMove, 0x80151018
# Other constants
.set StageID_MasterHand_ClassicMode, 176 # 0xB0
.set StageID_MasterHand_EventMatch50, 251 # 0xFB

# Before injection...
# r3 contains current stage id

# Check for stage 251 (MH and CH Fight Final Dest. stage in Event 50)
cmpwi r3, StageID_MasterHand_EventMatch50 # original code line
beq- SkipCutscene # use custom skip if in event match # 50 (uses stage 251)
# Check if fighting the hands in the special final destinaion stage in classic mode
cmpwi r3, StageID_MasterHand_ClassicMode
beq- NormalEntry_Exit # do normal entry
# otherwise, skip the entry cutscene

# Free to use r3 now

SkipCutscene:
# Using a different action state for entry can make the hand face the wrong way
# so we must fix the facing direction!!!

# Load the correct facing direction constant
bl DirectionConst
mflr r3
lfs f1, 0x0(r3)
# Store it into the FighterData
stfs f1, 0x2C(REG_FighterData)

# Must restore r3 before branching
mr r3, r31

# Branch to a different action state to skip the cutscene
branchl r12, FUNC_ASMasterHandWaitMove

Exit:
branch r12, 0x8014fe44

DirectionConst:
blrl
.float -1

NormalEntry_Exit:

Code:
##############################
Ch No Entry Cutscene [Odante]
##############################

PatchBranchLink 0x80155fe4 {

        .macro branchl reg, address
            lis \reg, \address @h
            ori \reg,\reg,\address @l
            mtctr \reg
            bctrl
        .endm

        .macro branch reg, address
            lis \reg, \address @h
            ori \reg,\reg,\address @l
            mtctr \reg
            bctr
        .endm

        # Registers
        .set REG_FighterData, 30
        # Functions
        .set FUNC_ASCrazyHandWaitMove, 0x8015BC88
        # Other constants
        .set StageID_MasterHand_ClassicMode, 176 # 0xB0
        .set StageID_MasterHand_EventMatch50, 251 # 0xFB

        # Before injection...
        # r3 contains current stage id

        # Check for stage 251 (MH and CH Fight Final Dest. stage in Event 50)
        cmpwi r3, StageID_MasterHand_EventMatch50 # original code line
        beq- SkipCutscene # use custom skip if in event match # 50 (uses stage 251)
        # Check if fighting the hands in the special final destinaion stage in classic mode
        cmpwi r3, StageID_MasterHand_ClassicMode
        beq- NormalEntry_Exit # do normal entry
        # otherwise, skip the entry cutscene

        # Free to use r3 now

        SkipCutscene:
        # Using a different action state for entry can make the hand face the wrong way
        # so we must fix the facing direction!!!

        # Load the correct facing direction constant
        bl DirectionConst
        mflr r3
        lfs f1, 0x0(r3)
        # Store it into the FighterData
        stfs f1, 0x2C(REG_FighterData)

        # Must restore r3 before branching
        mr r3, r31

        # Branch to a different action state to skip the cutscene
        branchl r12, FUNC_ASCrazyHandWaitMove

        Exit:
        branch r12, 0x80156000

        DirectionConst:
        blrl
        .float 1

        NormalEntry_Exit:
}
 
Last edited:

abysspartyy

Smash Cadet
Joined
May 11, 2015
Messages
55
Fixed the wrong Exit address in Crazy Hand's code

Code:
##############################
Ch No Entry Cutscene [Sushie]
##############################

PatchBranchLink 0x80155fe4 {

#... omitted the other code ...

        Exit:
        branch r12, 0x80156000
}
 
Last edited:
Top Bottom