• 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 Nana Respawns After 20 Seconds

UnclePunch

Smash Ace
Joined
Nov 9, 2014
Messages
673

You can change the amount of time for Nana to respawn by changing the codeline "386004B0" to any number where 3860XXXX is the number of frames in hexadecimal to wait.

Code:
$Nana Respawns After 20 Seconds [UnclePunch]
040d5378 60000000
C206A37C 00000024
7C7F1B78 887F221F
5460D7FF 41820108
5460EFFE 41820100
887F000C 3D808003
618C2330 7D8903A6
4E800421 3C80803B
6084CDE0 1C030003
7C640214 88030002
2C000000 408200D0
807F0894 3C80BF80
60840000 7C032000
40820014 386004B0
907F2354 38600000
907F0894 807F2354
3863FFFF 907F2354
2C030000 40820098
887F000C 388100C0
38A100D0 3D808016
618C7638 7D8903A6
4E800421 887F000C
388100C0 3D808003
618C2D80 7D8903A6
4E800421 3D808022
618C4A80 7D8903A6
4E800421 D02100C4
887F000C 388100C0
3D808003 618C2768
7D8903A6 4E800421
38600000 881F221F
50601F38 981F221F
7FC3F378 3D80800D
618C4FF4 7D8903A6
4E800421 38600001
881F221F 50601F38
981F221F 7FE3FB78
8803221F 00000000
Code:
.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

.macro load reg, address
lis \reg, \address @h
ori \reg, \reg, \address @l
.endm

.macro loadf regf,reg,address
lis \reg, \address @h
ori \reg, \reg, \address @l
stw \reg,-0x4(sp)
lfs \regf,-0x4(sp)
.endm

.macro backup
stwu    r1,-0x100(r1)    # make space for 12 registers
stmw    r20,8(r1)    # push r20-r31 onto the stack
mflr r0
stw r0,0xFC(sp)
.endm

.macro restore
lwz r0,0xFC(sp)
mtlr r0
lmw    r20,8(r1)    # pop r20-r31 off the stack
addi    r1,r1,0x100    # release the space
.endm

.macro intToFloat reg,reg2
xoris    \reg,\reg,0x8000
lis    r18,0x4330
lfd    f16,-0x7470(rtoc)    # load magic number
stw    r18,0(r2)
stw    \reg,4(r2)
lfd    \reg2,0(r2)
fsubs    \reg2,\reg2,f16
.endm

.set ActionStateChange,0x800693ac
.set HSD_Randi,0x80380580
.set HSD_Randf,0x80380528
.set Wait,0x8008a348
.set Fall,0x800cc730

.set entity,31
.set player,30
.set playerdata,31

mr    r31,r3
lbz    r3, 0x221F (playerdata)

#Check If Dead
rlwinm.    r0, r3, 26, 31, 31
beq    exit

#Check If Subchar
rlwinm    r0, r3, 29, 31, 31
beq    exit

#Check If Follower
lbz    r3,0xC(playerdata)            #get slot
branchl    r12,0x80032330            #get external character ID
load    r4,0x803bcde0            #pdLoadCommonData table
mulli    r0, r3, 3            #struct length
add    r3,r4,r0            #get characters entry
lbz    r0, 0x2 (r3)            #get subchar functionality
cmpwi    r0,0x0            #if not a follower, exit
bne    exit

#Check If Frame 1 of Follower Sleep
lwz    r3,0x894(playerdata)
load    r4,0xbf800000
cmpw    r3,r4
bne    EveryFrame

FrameOne:
li    r3,1200        #20 seconds
stw    r3,0x2354(playerdata)
li    r3,0x0
stw    r3,0x894(playerdata)

EveryFrame:
#Subtract Frame
lwz    r3,0x2354(playerdata)
subi    r3,r3,0x1
stw    r3,0x2354(playerdata)

#Check If Timer is Up
cmpwi    r3,0x0
bne    exit

#Get Respawn Location
lbz    r3,0xC(playerdata)
addi    r4,sp,0xC0
addi    r5,sp,0xD0
branchl    r12,0x80167638

#Store Respawn Location
lbz    r3,0xC(playerdata)
addi    r4,sp,0xC0
branchl    r12,0x80032d80

#Get Camera Top Limit
branchl    r12,0x80224a80

#Store As Respawn Y
stfs    f1,0xC4(sp)

#Store Coordinates
lbz    r3,0xC(playerdata)
addi    r4,sp,0xC0
branchl    r12,0x80032768

#Temp Remove Follower Bit
li    r3,0x0
lbz    r0, 0x221F (playerdata)
rlwimi    r0, r3, 3, 28, 28
stb    r0, 0x221F (playerdata)

#Respawn Nana
mr    r3,player
branchl    r12,0x800d4ff4

#Set Follower Bit Back
li    r3,0x1
lbz    r0, 0x221F (playerdata)
rlwimi    r0, r3, 3, 28, 28
stb    r0, 0x221F (playerdata)

exit:
mr    r3,r31
lbz    r0, 0x221F (r3)            #original codeline
 
Top Bottom