Punkline
Dr. Frankenstack
- Joined
- May 15, 2015
- Messages
- 423
Made a note in the Crazy Hand thread that I'd post a WIP of this when I had something interesting.
@Achilles1515 @Ampers @Tater @tatatat0 Tyadran Guesmu @Itaru @MagicScrumpy
This is an extension of the existing subaction event 5C (IASA flag)
The original syntax is barren; just an opcode that tells the system to set a flag.
I’ve added 4 new features to this event in a way that preserves its original functionality.
These shouldn't change much, but more may be added to it later:
5C xx FLAG - IASA flag toggle
5D xx ASID - IASA function override
5E xx ASID - Animation interrupt function override
5F EE ASID - Force immediate action state transition
---
You may use this new syntax (in Crazy Hand!) to set interrupt logic for moves with a single line of data, and you can use it to transition into action states in a way that allows you to pair the new state with unique subaction event data that it doesn't normally go with.
If used in a way that extends the space available for subaction events, it's very easy to chain several action state changes over the course of a single (large) subaction read.
I'll post some examples soon.
@Achilles1515 @Ampers @Tater @tatatat0 Tyadran Guesmu @Itaru @MagicScrumpy
This is an extension of the existing subaction event 5C (IASA flag)
The original syntax is barren; just an opcode that tells the system to set a flag.
I’ve added 4 new features to this event in a way that preserves its original functionality.
These shouldn't change much, but more may be added to it later:
5C xx FLAG - IASA flag toggle
FLAG - IASA flag -- 0 flags the IASA bit on (default 5C behavior) -- not-0 flags the IASA bit off
5D xx ASID - IASA function override
ASID - 11-bit ASID for defining a specific IASA function
-- makes IASA logic match another action state by ID
5E xx ASID - Animation interrupt function override
ASID - 11-bit ASID for defining a specific animation interrupt
-- set the logic to match another action state by ID
5F EE ASID - Force immediate action state transition
EE - number of events to continue reading from the old action state. (ignores timer events, but counts them)
bit 0x8000 of ASID - a flag that tells the new action state to only use subaction events from the old action state
-- these events are read after the transition, but before the new subaction event data is read; all in 1 frame.
ASID - 11-bit ASID for action state transition. New action state starts on frame 0.bit 0x8000 of ASID - a flag that tells the new action state to only use subaction events from the old action state
-- using this flag will cause EE to be ignored.
---
You may use this new syntax (in Crazy Hand!) to set interrupt logic for moves with a single line of data, and you can use it to transition into action states in a way that allows you to pair the new state with unique subaction event data that it doesn't normally go with.
If used in a way that extends the space available for subaction events, it's very easy to chain several action state changes over the course of a single (large) subaction read.
I'll post some examples soon.
Code:
-==-
Custom Subaction Event -- Actionstate Logic
Adds the ability to change IASA and animation interrupt logic from the default 5C syntax.
Also allows for forcing new action state transitions.
5C - IASA flag toggle
5D - IASA function override
5E - Animation interrupt function override
5F - Force new action state
[Punkline]
Version -- DOL Offset ------ Hex to Replace ---------- ASM Code
1.02 ----- 0x80071960 --- 98032218 -> Branch
80A40008 80A50000
54A501BF 41A20024
7C0802A6 90010004
9421FFF8
bl <EX5C_parseExtension>
38210008 80010004
7C0803A6 48000008
98032218 00000000
<EX5C_parseExtension>
7C0802A6 90010004
9421FF80 BC610008
7C7F1B78 80840008
54BB47BF 54BC863E
54BD053E 41820108
83DF0018 7C1DF040
41800010 7C1EE850
83DF0020 4800000C
7FA0EB78 83DF001C
54002834 7FDE0214
281B0001 418200CC
281B0002 418200B8
7C9E2378 3BDE0004
54BB8FFE 7FA4EB78
807F0000 3D808008
618CCFAC 7D8803A6
4E800021 281B0000
4182000C 93DF03EC
480000A8 83BF03EC
93DF03EC 281C0000
41820060 807F03EC
28030000 41820054
48000045 7C0802A6
90010004 9421FFC8
DBE10030 DBC10028
BF610014 C3C288D4
D3DF03E4 3BBF03E4
837F0000 3FE0803C
63FF06E8 C3C288D8
3D808007 618C32EC
7D8803A6 4E800021
3B9CFFFF 4BFFFFA0
3BBDFFFC C00288D8
D01F03E4 93BF03EC
48000028 837E000C
937F21A0 4800001C
837E0010 937F219C
48000010 8B7F2218
737B007F 9B7F2218
B8610008 38210080
80010004 7C0803A6
4E800020
Code:
$Custom Subaction Event -- Action State Logic 1.0 [Punkline]
C2071960 00000031
80A40008 80A50000
54A501BF 41A20024
7C0802A6 90010004
9421FFF8 4800001D
38210008 80010004
7C0803A6 48000158
98032218 48000150
7C0802A6 90010004
9421FF80 BC610008
7C7F1B78 80840008
54BB47BF 54BC863E
54BD053E 41820108
83DF0018 7C1DF040
41800010 7C1EE850
83DF0020 4800000C
7FA0EB78 83DF001C
54002834 7FDE0214
281B0001 418200CC
281B0002 418200B8
7C9E2378 3BDE0004
54BB8FFE 7FA4EB78
807F0000 3D808008
618CCFAC 7D8803A6
4E800021 281B0000
4182000C 93DF03EC
480000A8 83BF03EC
93DF03EC 281C0000
41820060 807F03EC
28030000 41820054
48000045 7C0802A6
90010004 9421FFC8
DBE10030 DBC10028
BF610014 C3C288D4
D3DF03E4 3BBF03E4
837F0000 3FE0803C
63FF06E8 C3C288D8
3D808007 618C32EC
7D8803A6 4E800021
3B9CFFFF 4BFFFFA0
3BBDFFFC C00288D8
D01F03E4 93BF03EC
48000028 837E000C
937F21A0 4800001C
837E0010 937F219C
48000010 8B7F2218
737B007F 9B7F2218
B8610008 38210080
80010004 7C0803A6
4E800020 00000000
Code:
#Custom Subaction Event -- Action State Logic 0.1 [Punkline]
#ASM is for MCM, use labels to assemble in ASM<>Wiird
#@80071960: stb r0, 0x2218(r3) (storing modified IASA flag for normal attacks)
#r5-12, cr0, are safe; LR is not safe
#r3 == internal player data pointer
#r4 == player event data
#--this injection simply checks if the original syntax is used (blank) and if not, runs the code
lwz r5, 0x8(r4)
lwz r5, 0(r5)
rlwinm. r5, r5, 0, 6, 31 #mask out opcode, check if remaining argument is == 0
beq+ default #if it is (5C000000) then just use the default instruction
#else, branch link into standalone function that adds new parse features to vanilla event 5C
mflr r0
stw r0, 0x4(sp)
stwu sp, -0x8(sp)
bl <EX5C_parseExtension> #standalone function, can work with labels in gecko code
addi sp, sp, 0x8
lwz r0, 0x4(sp)
mtlr r0
b return
default:
stb r0, 0x2218(r3)
return: #from injection code
.long 0x00000000
/*EX5C_parseExtension
r3 == internal player data pointer
r4 == player event table -- only used to continue reading event data after action state transition
r5 == incoming event data -- this is what's actually interpreted.
--You can pass r5 from other codes outside of the subaction event system. the opcode is ignored.
This adds the following extra capabilities to the 5C event:
-- can toggle IASA flag on or off
-- can override IASA function pointer with new logic
-- can override animation interrupt function pointer with new logic
-- can force an action state transition in a way that continues reading subaction events from the old action state (before the next frame)
Functionality is determined by a 2-bit ID checked in the passed r5 value. See other comments for more details behind the syntax*/
mflr r0
stw r0, 0x4(sp)
stwu sp, -0x80(sp)
stmw r3, 0x8(sp) #keep the context safe while we potentially go crazy with registers
mr r31, r3
lwz r4, 0x8(r4)
rlwinm. r27, r5, 8, 30, 31 #r27 = extracted 2-bit function id
rlwinm r28, r5, 16, 24, 31 #r28 = extracted 8-bit AA (determined by function)
rlwinm r29, r5, 0, 20, 31 #r29 = extracted 11-bit BBBB (determined by function) (5 leftmost bits are ignored in hword, can be used as flags)
beq- option5C #if id is 0 (5C) then input was a non-0 argument for the default 5C syntax.
#else, we're going to find the move logic from the input ASID in r29
lwz r30, 0x18(r31) #ASID division between common/character dependent moves
cmplw r29, r30 #is input ID < threshold? (usually 0x155)
blt- commonASID
uncommonASID:
sub r0, r29, r30 #uncommon ASIDs use their own 0-based character move index
lwz r30, 0x20(r31) #if ASID >= (0x155) then load uncommon move table
b loadMoveData
commonASID:
mr r0, r29
lwz r30, 0x1C(r31) #if ASID < (0x155) then load common move table
loadMoveData:
rlwinm r0, r0, 5, 0, 26 #shift left 5 (1 = 32)
add r30, r30, r0 #r30 = pointer to move data (from ASID)
cmplwi r27, 1
beq option5D #if id is 1 (5D) then the syntax is used to override IASA logic.
cmplwi r27, 2
beq option5E #if id is 2 (5E) then the syntax is used to override animation interrupt logic.
#else, id is 3 (max 2-bit range) if id is 3 (5F) then use syntax to force an immediate action state transition.
option5F: /*force action state transition
5F AA BBBB
AA - 8-bit number of events to continue reading without timer events post-transition
BBBB - 11-bit ASID ID
flag - bit 0x8000 of BBBB is a flag that tells the new action state to use the old subaction event data. Ignores AA
-- this option is complicated by the fact that changing an action state cuts off the remaining subaction event data from the state it came from.
-- with the AA argument, you can specify a number of subaction events to read before returning to handle the new action state's subaction event data.
-- see the SSBM Data sheet for more info on actionstate IDs*/
mr r30, r4 #use the passed event pointer in r4
addi r30, r30, 0x4 #r30 = next event from old subaction event data (passed in r4)
rlwinm r27, r5, 17, 31, 31 #r27 = subaction event override flag. If true, the old subaction events will continue in new action state
#first, pass the id over to the aerial attack transition function to force an action state
mr r4, r29 #pass the ID
lwz r3, 0(r31) #pass external player data pointer
lis r12, 0x8008
ori r12, r12, 0xcfac #pointer to function
mtlr r12
blrl #change action state
#now that the action state has transitioned, subaction event data from the previous state is gone
#so we take advantage of the fact that we still have the pointer in a saved register and continue reading event data.
#the number of events that we read is determined by the parsed AA value, stored in r28. A value of 00 reads no extra events
cmplwi r27, 0
beq- storeNewData
storeOldData:
stw r30, 0x3EC(r31) #if subaction event override flag was detected, just continue the old event data
b return
storeNewData: #otherwise, we're going to attempt to sandwich as much data specified by AA between states
lwz r29, 0x3EC(r31) #r29 = new data start
stw r30, 0x3EC(r31) #set event pointer to continue reading our old data
eventReadLoop:
cmplwi r28, 0 #if AA value is 0, then exit loop
beq- exitLoop
lwz r3, 0x3EC(r31)
cmplwi r3, 0 #if event pointer contains no data, exit loop
beq- exitLoop
#else, read a single event and decrement AA by -1
bl returnFromEventRead #set up the lr to continue our event reading loop
mflr r0 #reconstruct the prolog of the SAEvent parsing loop function
stw r0, 0x4(sp)
stwu sp, -0x38(sp)
stfd f31, 0x30(sp)
stfd f30, 0x28(sp)
stmw r27, 0x14(sp)
lfs f30, -0x772C(rtoc)
stfs f30, 0x3E4(r31) #set event timer to 1.0
#reconstruct context for our intrusive branch
addi r29, r31, 0x3E4 #r29 = pointer to player data offset 0x3E4
lwz r27, 0(r31) #r27 = external player data pointer
lis r31, 0x803c
ori r31, r31, 0x06e8 #r31 = 803C06E8 (lookup table for player events)
lfs f30, -0x7728(rtoc) #f30 = 0
#branch into player event parsing loop
lis r12, 0x8007
ori r12, r12, 0x32ec #this is a very specific part of the subaction event parsing loop
mtlr r12 #branching here with non-0 float in internal player data offset 0x3E4 will read a single event
returnFromEventRead:
blrl #a super tricky blrl
#a return from here has collapsed the above stack frame
decrementAA:
subi r28, r28, 1 #else, decrement AA by -1 and read a single event
b eventReadLoop
exitLoop:
subi r29, r29, 4 #the hook context will try and move this on return, so correct for it
lfs f0, -0x7728(rtoc)
stfs f0, 0x3E4(r31) #set event timer back to 0
stw r29, 0x3EC(r31) #set event pointer back to new data start
b return
#end of option5F
option5E: /*override animation interrupt logic
5E xx BBBB
BBBB - 11-bit ASID -- looks up animation interrupt associated with this ASID*/
lwz r27, 0xC(r30) #this is where we make use of that r30 calculation
stw r27, 0x21A0(r31) #apply target animation interrupt to 0x21A0 playerThinkAnimation blrl
b return
option5D: /*override IASA logic
5E xx BBBB
BBBB - 11-bit ASID -- looks up IASA associated with this ASID*/
lwz r27, 0x10(r30) #target IASA pointer
stw r27, 0x219C(r31) #apply to 0x219C playerThinkController blrl
b return
option5C: /*toggle off IASA flag
5C xx BBBB
BBBB - 11-bit flag; if not 0 then this extension turns off the IASA flag bit in the middle of an action state
r27 and r28 are freed up
-- the following is executed only if the function ID was 0 (5C) and the argument was not equal to 0
-- so 0 = IASA flag toggled on, !0 = IASA flag toggled off */
lbz r27, 0x2218(r31)
andi. r27, r27, 0x7F #bit 0x80 is the IASA flag, so mask it out
stb r27, 0x2218(r31) #store it, like the original instruction does
return: #from standalone function
lmw r3, 0x8(sp)
addi sp, sp, 0x80
lwz r0, 0x4(sp)
mtlr r0
blr
Here are a bunch of IDs that may be used:
Code:Known Common Action State IDs-- These IDs are the same for each player character movset. Copied from the SSBM Data Sheet: ID Name Description 0000 DeadDown Standard downward death 0001 DeadLeft Standard leftward death 0002 DeadRight Standard rightward death 0003 DeadUp Upward death used in 1P "Team Kirby", etc. 0004 DeadUpStar Standard Star KO 0005 DeadUpStarIce Star KO while encased in ice (Freezie) 0006 DeadUpFall 64-esque front fall, unused, I believe 0007 DeadUpFallHitCamera 0008 DeadUpFallHitCameraFlat 0009 DeadUpFallIce 000A DeadUpFallHitCameraIce 000B Sleep "Nothing" state, probably - it is the state Shiek/Zelda is in when their counterpart is the one currently playing 000C Rebirth Entering on halo 000D RebirthWait Waiting on halo 000E Wait Standing state 000F WalkSlow 0010 WalkMiddle 0011 WalkFast 0012 Turn 0013 TurnRun 0014 Dash 0015 Run 0016 RunDirect 0017 RunBrake 0018 KneeBend Pre-jump animation 0019 JumpF First jump forward 001A JumpB First jump backward 001B JumpAerialF Aerial jump forward 001C JumpAerialB Aerial jump backward 001D Fall Falling straight down 001E FallF Falling with forward DI 001F FallB Falling with backward DI 0020 FallAerial Falling after the second jump 0021 FallAerialF Falling after the second jump with forward DI 0022 FallAerialB Falling after the second jump with backward DI 0023 FallSpecial Special fall after UpB or airdodge 0024 FallSpecialF Special fall with forward DI 0025 FallSpecialB Special fall with backward DI 0026 DamageFall Tumbling 0027 Squat Going from stand to crouch 0028 SquatWait Crouching 0029 SquatRv Going from crouch to stand 002A Landing Landing state, can be cancelled 002B LandingFallSpecial Landing from special fall 002C Attack11 Standard attack 1 002D Attack12 Standard attack 2 002E Attack13 Standard attack 3 002F Attack100Start Start of a looping standard attack 0030 Attack100Loop Middle of a looping standard attack 0031 Attack100End End of a looping standard attack 0032 AttackDash Dash attack 0033 AttackS3Hi High Ftilt 0034 AttackS3HiS High-mid Ftilt 0035 AttackS3S Mid Ftilt 0036 AttackS3LwS Low-mid Ftilt 0037 AttackS3Lw Low Ftilt 0038 AttackHi3 Uptilt 0039 AttackLw3 Downtilt 003A AttackS4Hi High Fsmash 003B AttackS4HiS High-mid Fsmash 003C AttackS4S Mid Fsmash 003D AttackS4LwS Low-mid Fsmash 003E AttackS4Lw Low Fsmash 003F AttackHi4 Upsmash 0040 AttackLw4 Downsmash 0041 AttackAirN Nair 0042 AttackAirF Fair 0043 AttackAirB Bair 0044 AttackAirHi Uair 0045 AttackAirLw Dair 0046 LandingAirN Landing during Nair 0047 LandingAirF Landing during Fair 0048 LandingAirB Landing during Bair 0049 LandingAirHi Landing during Uair 004A LandingAirLw Landing during Dair 004B DamageHi1 004C DamageHi2 004D DamageHi3 004E DamageN1 004F DamageN2 0050 DamageN3 0051 DamageLw1 0052 DamageLw2 0053 DamageLw3 0054 DamageAir1 0055 DamageAir2 0056 DamageAir3 0057 DamageFlyHi 0058 DamageFlyN 0059 DamageFlyLw 005A DamageFlyTop 005B DamageFlyRoll 005C LightGet Picking up an item 005D HeavyGet Picking up a heavy item (barrel) 005E LightThrowF Throwing items at standard speed 005F LightThrowB 0060 LightThrowHi 0061 LightThrowLw 0062 LightThrowDash 0063 LightThrowDrop 0064 LightThrowAirF 0065 LightThrowAirB 0066 LightThrowAirHi 0067 LightThrowAirLw 0068 HeavyThrowF 0069 HeavyThrowB 006A HeavyThrowHi 006B HeavyThrowLw 006C LightThrowF4 Throwing items at Smash speed 006D LightThrowB4 006E LightThrowHi4 006F LightThrowLw4 0070 LightThrowAirF4 0071 LightThrowAirB4 0072 LightThrowAirHi4 0073 LightThrowAirLw4 0074 HeavyThrowF4 0075 HeavyThrowB4 0076 HeavyThrowHi4 0077 HeavyThrowLw4 0078 SwordSwing1 Beam sword swings 0079 SwordSwing3 007A SwordSwing4 007B SwordSwingDash 007C BatSwing1 Home Run Bat swings 007D BatSwing3 007E BatSwing4 007F BatSwingDash 0080 ParasolSwing1 Parasol swings 0081 ParasolSwing3 0082 ParasolSwing4 0083 ParasolSwingDash 0084 HarisenSwing1 Fan swings 0085 HarisenSwing3 0086 HarisenSwing4 0087 HarisenSwingDash 0088 StarRodSwing1 Star Rod swings 0089 StarRodSwing3 008A StarRodSwing4 008B StarRodSwingDash 008C LipStickSwing1 Lip's Stick swings 008D LipStickSwing3 008E LipStickSwing4 008F LipStickSwingDash 0090 ItemParasolOpen 0091 ItemParasolFall 0092 ItemParasolFallSpecial 0093 ItemParasolDamageFall 0094 LGunShoot Raygun shots 0095 LGunShootAir 0096 LGunShootEmpty 0097 LGunShootAirEmpty 0098 FireFlowerShoot 0099 FireFlowerShootAir 009A ItemScrew 009B ItemScrewAir 009C DamageScrew 009D DamageScrewAir 009E ItemScopeStart 009F ItemScopeRapid 00A0 ItemScopeFire 00A1 ItemScopeEnd 00A2 ItemScopeAirStart 00A3 ItemScopeAirRapid 00A4 ItemScopeAirFire 00A5 ItemScopeAirEnd 00A6 ItemScopeStartEmpty 00A7 ItemScopeRapidEmpty 00A8 ItemScopeFireEmpty 00A9 ItemScopeEndEmpty 00AA ItemScopeAirStartEmpty 00AB ItemScopeAirRapidEmpty 00AC ItemScopeAirFireEmpty 00AD ItemScopeAirEndEmpty 00AE LiftWait 00AF LiftWalk1 00B0 LiftWalk2 00B1 LiftTurn 00B2 GuardOn 00B3 Guard Holding shield 00B4 GuardOff 00B5 GuardSetOff Shield stun 00B6 GuardReflect 00B7 DownBoundU The "failed to tech" bounce, facing up 00B8 DownWaitU Laying on ground facing up 00B9 DownDamageU Getting hit laying on ground facing up 00BA DownStandU 00BB DownAttackU Get up attack from ground face up 00BC DownFowardU 00BD DownBackU 00BE DownSpotU 00BF DownBoundD The "failed to tech" bounce, facing down 00C0 DownWaitD 00C1 DownDamageD Lying on the ground 00C2 DownStandD Neutral getup 00C3 DownAttackD 00C4 DownFowardD 00C5 DownBackD 00C6 DownSpotD 00C7 Passive Neutral tech 00C8 PassiveStandF Forward tech 00C9 PassiveStandB Backward tech 00CA PassiveWall Wall tech 00CB PassiveWallJump Walljump tech/plain walljump 00CC PassiveCeil Ceiling tech 00CD ShieldBreakFly 00CE ShieldBreakFall 00CF ShieldBreakDownU 00D0 ShieldBreakDownD 00D1 ShieldBreakStandU 00D2 ShieldBreakStandD 00D3 FuraFura Shield-break tottering 00D4 Catch Grab 00D5 CatchPull Successfully grabbing a character - pulling them in 00D6 CatchDash 00D7 CatchDashPull 00D8 CatchWait Grabbing and holding a character 00D9 CatchAttack Pummel 00DA CatchCut When opponent breaks of a character's grab 00DB ThrowF 00DC ThrowB 00DD ThrowHi 00DE ThrowLw 00DF CapturePulledHi 00E0 CaptureWaitHi 00E1 CaptureDamageHi 00E2 CapturePulledLw Becoming grabbed 00E3 CaptureWaitLw When grabbed 00E4 CaptureDamageLw Pummeled 00E5 CaptureCut Grab release 00E6 CaptureJump 00E7 CaptureNeck 00E8 CaptureFoot 00E9 EscapeF 00EA EscapeB 00EB Escape 00EC EscapeAir airdodge 00ED ReboundStop 00EE Rebound 00EF ThrownF 00F0 ThrownB 00F1 ThrownHi 00F2 ThrownLw 00F3 ThrownLwWomen 00F4 Pass Drop through platform 00F5 Ottotto Ledge teeter 00F6 OttottoWait 00F7 FlyReflectWall 00F8 FlyReflectCeil 00F9 StopWall 00FA StopCeil 00FB MissFoot 00FC CliffCatch Catching the ledge 00FD CliffWait Hanging on the ledge 00FE CliffClimbSlow Climbing the ledge, >100% 00FF CliffClimbQuick Climbing the ledge, <100% 0100 CliffAttackSlow Ledge attack, >100% 0101 CliffAttackQuick Ledge attack, <100% 0102 CliffEscapeSlow Ledge roll, >100% 0103 CliffEscapeQuick Ledge roll, <100% 0104 CliffJumpSlow1 0105 CliffJumpSlow2 0106 CliffJumpQuick1 0107 CliffJumpQuick2 0108 AppealR Taunt right 0109 AppealL Taunt left 010A ShoulderedWait 010B ShoulderedWalkSlow 010C ShoulderedWalkMiddle 010D ShoulderedWalkFast 010E ShoulderedTurn 010F ThrownFF 0110 ThrownFB 0111 ThrownFHi 0112 ThrownFLw 0113 CaptureCaptain 0114 CaptureYoshi 0115 YoshiEgg 0116 CaptureKoopa 0117 CaptureDamageKoopa 0118 CaptureWaitKoopa 0119 ThrownKoopaF 011A ThrownKoopaB 011B CaptureKoopaAir 011C CaptureDamageKoopaAir 011D CaptureWaitKoopaAir 011E ThrownKoopaAirF 011F ThrownKoopaAirB 0120 CaptureKirby 0121 CaptureWaitKirby 0122 ThrownKirbyStar 0123 ThrownCopyStar 0124 ThrownKirby 0125 BarrelWait 0126 Bury 0127 BuryWait 0128 BuryJump 0129 DamageSong 012A DamageSongWait 012B DamageSongRv 012C DamageBind 012D CaptureMewtwo 012E CaptureMewtwoAir 012F ThrownMewtwo 0130 ThrownMewtwoAir 0131 WarpStarJump 0132 WarpStarFall 0133 HammerWait 0134 HammerWalk 0135 HammerTurn 0136 HammerKneeBend 0137 HammerFall 0138 HammerJump 0139 HammerLanding 013A KinokoGiantStart Super/Poison mushroom states 013B KinokoGiantStartAir 013C KinokoGiantEnd 013D KinokoGiantEndAir 013E KinokoSmallStart 013F KinokoSmallStartAir 0140 KinokoSmallEnd 0141 KinokoSmallEndAir 0142 Entry Warp in at beginning of match. 0143 EntryStart 0144 EntryEnd 0145 DamageIce 0146 DamageIceJump 0147 CaptureMasterhand 0148 CapturedamageMasterhand 0149 CapturewaitMasterhand 014A ThrownMasterhand 014B CaptureKirbyYoshi 014C KirbyYoshiEgg 014D CaptureLeadead 014E CaptureLikelike 014F DownReflect 0150 CaptureCrazyhand 0151 CapturedamageCrazyhand 0152 CapturewaitCrazyhand 0153 ThrownCrazyhand 0154 BarrelCannonWait
Code:Known Uncommon Action State IDs-- These IDs are unique for each player character movset: -Mario/Dr Mario Ground ASID Air ASID Description 157 158 B - all 159 15a sideB - all 15b 15c upB - all 15d 15e downB - all -Luigi Ground ASID Air ASID Description 155 156 B - all 157 15d sideB - startup 158 15e sideB - charge --- 15f sideB - movement 15a --- sideB - land --- 160 sideB - hit 15b 161 sideB - launch 15c 162 sideB - misfire 163 164 upB - all 165 166 downB - all -Bowser Ground ASID Air ASID Description 155 158 B - startup 156 159 B - fire 157 15a B - recovery 15b 161 sideB - "klaw" 15c 162 sideB - capture startup 15d 163 sideB - capture bite 15e 164 sideB - capture wait 15f 165 sideB - throw (forward) 160 166 sideB - throw (back) 167 168 upB - all 169 --- downB - ground start --- 16a downB - air drop 16b --- downB - landing -Peach Ground ASID Air ASID Description 16d 16f B - counter 16e 170 B - riposte 162 165 sideB - startup 163 166 sideB - recovery --- 168 sideB - attack --- 167 sideB - hit 169 16b upB - jump --- 171 upB - open parasol --- 172 upB - float 160 --- downB - pluck -Yoshi Ground ASID Air ASID Description 15a 15f B - grab 15b 160 B - catch 15d 162 B - egg 164 168 sideB - startup --- 169 sideB - roll air idle? 165 16a sideB - roll 166 --- sideB - change direction 167 16b sideB - recovery 16c 16d upB - all 16e --- downB - ground startup --- 170 downB - air drop 16f --- downB - landing -Donkey Kong Ground ASID Air ASID Description 171 176 B - startup 172 177 B - charge 173 178 B - cancel 174 179 B - attack 175 17a B - attack full 17b 17c sideB - all 17d 17e upB - all 17f --- downB - startup 180 --- downB - ground slap 181 --- downB - recovery -CFalcon/GDorf Ground ASID Air ASID Description 15b 15c B - all 15d 15f sideB - dash 15e 160 sideB - attack 161 162 upB - startup --- 163 upB - catch --- 164 upB - dive 165 167 downB - kick 166 16a downB - ground kick recovery 168 169 downB - air kick recovery 16b --- downB - ground kick wall -Fox/Falco Ground ASID Air ASID Description 155 158 B - startup 156 159 B - shoot 157 15a B - recovery 15b 15e sideB - startup 15c 15f sideB - dash 15d 160 sideB - recovery 161 162 upB - startup 163 164 upB - dash 165 166 upB - recovery 168 16d downB - startup 169 16e downB - shield wait 16a 16f downB - reflect 16b 170 downB - recovery 16c 171 downB - turn -Ness Ground ASID Air ASID Description 156 --- USmash - normal smash 157 --- USmash - charge 158 --- USmash - charged smash 159 --- DSmash - normal smash 15a --- DSmash - charge 15b --- DSmash - charged smash 15c 160 B - startup 15d 161 B - charge 15e 162 B - attack delay 15f 163 B - recovery 164 165 sideB - all 166 16a upB - startup 167 16b upB - control 168 16c upB - recovery 169 16d upB - dash 16f 174 downB - startup 170 175 downB - shield 171 176 downB - absorb 172 177 downB - recovery Ice Climbers Ground ASID Air ASID Description 155 156 B - all 157 159 sideB - single 158 15a sideB - double 15b 160 upB - summon 15c 161 upB - throw 15d 162 upB - jump 15e 163 upB - (single) throw 15f 164 upB - (single) jump 165 166 downB - all -Kirby Ground ASID Air ASID Description --- 155 jump 2 --- 156 jump 3 --- 157 jump 4 --- 158 jump 5 --- 159 jump 6 161 173 B - startup 162 174 B - vacuum cleaner 163 175 B - recovery 164 176 B - capture 166 178 B - fat startup 167 179 B - fat idle 168 --- B - fat walk startup 169 --- B - fat walk 16a --- B - fat run 16b --- B - fat turn around 16c --- B - fat jump startup 16d --- B - fat jump 16e --- B - fat land 16f --- B - swallow 171 --- B - spit 17f 180 sideB - all 181 185 upB - startup --- 186 upB - rise/fall 184 187 upB - landing 189 18c downB - startup 18a 18d downB - stone 18b 18e downB - recovery -Samus Ground ASID Air ASID Description 155 156 bomb jump 157 15b B - startup 158 --- B - charge 159 --- B - cancel 15a 15c B - shoot 15d 15f sideB - Homing 15e 160 sideB - Power 161 162 upB - all 163 164 downB - all -Zelda Ground ASID Air ASID Description 155 156 B - all 157 15a sideB - startup 158 15b sideB - charge 159 15c sideB - attack 15d 160 upB - startup 15e 161 upB - movement 15f 162 upB - recovery 163 165 downB - transform out 164 166 downB - transform back -Sheik Ground ASID Air ASID Description 155 159 B - startup 156 15a B - charge 157 15b B - cancel 158 15c B - throw 15d 160 sideB - startup 15e 161 sideB - chain 15f 162 sideB - recovery 163 166 upB - startup 164 167 upB - movement 165 168 upB - recovery 169 16b downB - transform out 16a 16c downB - transform back -Link/Young Link Ground ASID Air ASID Description 158 15b B - startup charge 159 15c B - fully charged 15a 15d B - shoot 15e 161 sideB - throw 15f 162 sideB - catch 160 163 sideB - throw (empty) 164 165 upB - all 166 167 downB - all -Pikachu/Pichu Ground ASID Air ASID Description 155 156 B - all 157 15c sideB - startup 158 15d sideB - charge 15a 15e sideB - landing/air movement --- 15f sideB - falling 15b 160 sideB - launch 161 164 upB - startup 162 165 upB - movement 163 166 upB - recovery 167 16b downB - startup 168 16c downB - lightning call 169 16d downB - lightning hit 16a 16e downB - recovery -Jigglypuff Ground ASID Air ASID Description --- 155 jump 2 --- 156 jump 3 --- 157 jump 4 --- 158 jump 5 --- 159 jump 6 15a 162 B - startup (face right) 15b 163 B - startup (face left) 15c 164 B - charge 15d 165 B - full charge 15e 166 B - roll forward 15f --- B - change direction 160 168 B - recovery (face right) 161 169 B - recovery (face left) --- 16a B - float after attack 16b 16c sideB - all 16d 16e upB - all (face left) 16f 170 upB - all (face right) 171 172 downB - all (face left) 173 174 downB - all (face right) -Mewtwo Ground ASID Air ASID Description 155 15a B - startup 156 15b B - charge 157 15c B - full charging 158 15d B - recovery 159 15e B - attack 15f 160 sideB - all 161 164 upB - startup 162 165 upB - movement 163 166 upB - recovery 167 168 downB - all -Game and Watch Ground ASID Air ASID Description 156 --- Rapid Jab - start 157 --- Rapid Jab - loop 158 --- Rapid Jab - end 161 162 B - all 163 16c sideB - 1 164 16d sideB - 2 165 16e sideB - 3 166 16f sideB - 4 167 170 sideB - 5 168 171 sideB - 6 169 172 sideB - 7 16a 173 sideB - 8 16b 174 sideB - 9 175 176 upB - all 177 17a downB - bucket wait 178 17b downB - bucket catch 179 17c downB - bucket attack -Marth/Roy Ground ASID Air ASID Description 155 159 B - startup 156 15a B - charge (loop) 157 15b B - attack 158 15c B - attack (full) 15d 166 sideB - hit 1 15e 167 sideB - hit 2 (up) 15f 168 sideB - hit 2 160 169 sideB - hit 3 (up) 161 16a sideB - hit 3 162 16b sideB - hit 3 (down) 163 16c sideB - hit 4 (up) 164 16d sideB - hit 4 165 16e sideB - hit 4 (down) 16f 170 upB - all 171 173 downB - counter 172 174 downB - riposte
Last edited: