flieskiller
Smash Journeyman
- Joined
- Jan 3, 2013
- Messages
- 426
Originally made by the creator of the Crazy Mod, wParam, this mode played with Mr. Saturns dropped as a normal item with the new special condition: If the seconds in the game are at :x0 or x5 (like 50 seconds, or 45, or 40 etc.) and you hold a Mr. Saturn in your hands, you die instantly. In addition, if you throw a Mr. Saturn to a person and they doesn't hold an item, they'll catch it and go into sleep (with no duration, so wake up animation starts).
Documentation will arrive later.
Gecko and DOL available
DOL
Gecko (fixed by Achilles)
Documentation
Documentation will arrive later.
Gecko and DOL available
DOL
@0x28059C (starting function, branch from then a Saturn hits something)
4bd81254
@x1C10
7C0802A6 90010004
9421FFE8 BFA10008
7C7F1B78 80A3002C
83C50CF4 2C1E0000
41820034 83BE002C
811D1974 2C080000
40820024 7FE4FB78
7FC3F378 4808FC5D
7FC3F378 38800001
480be535 3C804170
909D1A4C 7FE3FB78
BBA10008 8001001C
38210018 7C0803A6
7C0802A6 4827ED44
@0x66f40 (for checking every frame)
4bf9a920
0x1C80
80C3002C 80E61974
2C070000 4182003C
8107002C 81080010
2C080007 4082002C
3CC08047 80C6B6C8
2C060000 4182001C
38E00005 7D063BD6
7D2839D6 7C093000
40820008 480cef04
7C0802A6 48065698
4bd81254
@x1C10
7C0802A6 90010004
9421FFE8 BFA10008
7C7F1B78 80A3002C
83C50CF4 2C1E0000
41820034 83BE002C
811D1974 2C080000
40820024 7FE4FB78
7FC3F378 4808FC5D
7FC3F378 38800001
480be535 3C804170
909D1A4C 7FE3FB78
BBA10008 8001001C
38210018 7C0803A6
7C0802A6 4827ED44
@0x66f40 (for checking every frame)
4bf9a920
0x1C80
80C3002C 80E61974
2C070000 4182003C
8107002C 81080010
2C080007 4082002C
3CC08047 80C6B6C8
2C060000 4182001C
38E00005 7D063BD6
7D2839D6 7C093000
40820008 480cef04
7C0802A6 48065698
C22839BC 00000011
7C0802A6 90010004
9421FFE8 BFA10008
7C7F1B78 80A3002C
83C50CF4 2C1E0000
4182004C 83BE002C
811D1974 2C080000
4082003C 3C808009
608448A8 7C8803A6
7FE4FB78 7FC3F378
4E800021 3C80800C
6084318C 7C8803A6
7FC3F378 38800001
4E800021 3C804170
909D1A4C 7FE3FB78
BBA10008 8001001C
38210018 7C0803A6
7C0802A6 00000000
C206A360 0000000C
80C3002C 80E61974
2C070000 41820048
8107002C 81080010
2C080007 40820038
3CC08047 80C6B6C8
2C060000 41820028
38E00005 7D063BD6
7D2839D6 7C093000
40820014 3D20800D
612940B8 7D2903A6
4E800420 7C0802A6
60000000 00000000
7C0802A6 90010004
9421FFE8 BFA10008
7C7F1B78 80A3002C
83C50CF4 2C1E0000
4182004C 83BE002C
811D1974 2C080000
4082003C 3C808009
608448A8 7C8803A6
7FE4FB78 7FC3F378
4E800021 3C80800C
6084318C 7C8803A6
7FC3F378 38800001
4E800021 3C804170
909D1A4C 7FE3FB78
BBA10008 8001001C
38210018 7C0803A6
7C0802A6 00000000
C206A360 0000000C
80C3002C 80E61974
2C070000 41820048
8107002C 81080010
2C080007 40820038
3CC08047 80C6B6C8
2C060000 41820028
38E00005 7D063BD6
7D2839D6 7C093000
40820014 3D20800D
612940B8 7D2903A6
4E800420 7C0802A6
60000000 00000000
Documentation
#Branch from 802839BC, when a Mr. Saturn hits a target by being thrown.
#Start
mflr r0
# Maybe it loads the player
stw r0,4(r1)
stwu r1,-24(r1)
stmw r29,8(r1)
#r31 is the item passed in
mr r31,r3
#r5 is the item-type
lwz r5,44(r3)
#r30 is the target of the thrown item
lwz r30,3316(r5)
#detects if the target exists (if it isn't an item)
cmpwi r30,0
#If doesn't exist, branch out and do nothing else
beq- 0x34
#Loads the character of the player
lwz r29,44(r30)
#Check if the character have an item
lwz r8,6516(r29)
cmpwi r8,0
#If they have no item, continue.
bne- 0x24
#Give them the item and branch to the function to give a character an item.
mr r4,r31
mr r3,r30
bl 0x8FC5C
#Then branch to the function to put a character to sleep
mr r3,r30
li r4,1
bl 0xBE534
#Also, set the sleep duration
lis r4,16752
stw r4,6732(r29)
#When it branches out, go through these. I'm not sure why it goes through that. Branches back to the initial function to go as normally.
mr r3,r31
lmw r29,8(r1)
lwz r0,28(r1)
addi r1,r1,24
mtlr r0
mflr r0
b 0x27ED44
2ND PART, FUNCTION TWO:
#Branches from 8006a360, a function executed every frame.
#Start of function. Loads the character of the player, then check if the player has an item.
lwz r6,44(r3)
lwz r7,6516(r6)
#If there is no item, abort
cmpwi r7,0
beq- 0x3C
#Check the item-type
lwz r8,44(r7)
lwz r8,16(r8)
#If it'S not Mr. Saturn, abort
cmpwi r8,7
bne- 0x2C
#Loads the seconds remaining in r6
lis r6,-32697
lwz r6,-18744(r6)
#If the seconds are at 0 (like if there is no time, or the match is over), branch out.
cmpwi r6,0
beq- 0x1C
#"Period of happening" = interval of checking if a player is dead?
li r7,5
#((int)(seconds / period) * period == seconds).In other words, if seconds are a modulo of 5 (the seconds divided by 5 is equal to 0)
divw r8,r6,r7
mullw r9,r8,r7
If the answer of the equation above is different from 0, branch out.
cmpw r9,r6
bne- 0x08
#Not out? Load death for the character, the function Ground Death
b 0xCEF04
#When the function is branched out, go here to resume the function ran at every frame.
mflr r0
b 0x65698
#Start
mflr r0
# Maybe it loads the player
stw r0,4(r1)
stwu r1,-24(r1)
stmw r29,8(r1)
#r31 is the item passed in
mr r31,r3
#r5 is the item-type
lwz r5,44(r3)
#r30 is the target of the thrown item
lwz r30,3316(r5)
#detects if the target exists (if it isn't an item)
cmpwi r30,0
#If doesn't exist, branch out and do nothing else
beq- 0x34
#Loads the character of the player
lwz r29,44(r30)
#Check if the character have an item
lwz r8,6516(r29)
cmpwi r8,0
#If they have no item, continue.
bne- 0x24
#Give them the item and branch to the function to give a character an item.
mr r4,r31
mr r3,r30
bl 0x8FC5C
#Then branch to the function to put a character to sleep
mr r3,r30
li r4,1
bl 0xBE534
#Also, set the sleep duration
lis r4,16752
stw r4,6732(r29)
#When it branches out, go through these. I'm not sure why it goes through that. Branches back to the initial function to go as normally.
mr r3,r31
lmw r29,8(r1)
lwz r0,28(r1)
addi r1,r1,24
mtlr r0
mflr r0
b 0x27ED44
2ND PART, FUNCTION TWO:
#Branches from 8006a360, a function executed every frame.
#Start of function. Loads the character of the player, then check if the player has an item.
lwz r6,44(r3)
lwz r7,6516(r6)
#If there is no item, abort
cmpwi r7,0
beq- 0x3C
#Check the item-type
lwz r8,44(r7)
lwz r8,16(r8)
#If it'S not Mr. Saturn, abort
cmpwi r8,7
bne- 0x2C
#Loads the seconds remaining in r6
lis r6,-32697
lwz r6,-18744(r6)
#If the seconds are at 0 (like if there is no time, or the match is over), branch out.
cmpwi r6,0
beq- 0x1C
#"Period of happening" = interval of checking if a player is dead?
li r7,5
#((int)(seconds / period) * period == seconds).In other words, if seconds are a modulo of 5 (the seconds divided by 5 is equal to 0)
divw r8,r6,r7
mullw r9,r8,r7
If the answer of the equation above is different from 0, branch out.
cmpw r9,r6
bne- 0x08
#Not out? Load death for the character, the function Ground Death
b 0xCEF04
#When the function is branched out, go here to resume the function ran at every frame.
mflr r0
b 0x65698
Last edited: