• 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!

Character Data Research Thread

Eeveecario

Smash Apprentice
Joined
Dec 2, 2014
Messages
198
Location
Tuxtla Gutiérrez, Chiapas
NNID
Eeveecario
Thank you both for answering, It's crystal clear now.

What I was meaning @ Indigo Jeans Indigo Jeans as from lower to higher frames was, in the example code I mentioned above, frames were from lower to higher.
But data from smash attacks, data frames weren't like that, so I got confused.

But you're right, I missed to see the Synchronous and Asynchronous event calls, my bad.

Thanks for your cooperation! (And sorry for the double post earlier)
 
Joined
May 3, 2009
Messages
7,190
Ah alright, I see. Yeah in general, consecutive asynch timers will have increasing values because they dictate what happens along a timeline. So a whole game data section can span, say, 30F. If asynch timer=F6, and is then followed only by unk_170, then that means that unk_170 "happens" ON F6. If after unk_170 there is asynch timer=F18 followed by some hitboxes, then those hitboxes happen ON F18. Then say we have synch timer=F5 followed by TerminateAllHitboxes. That means that 5F AFTER the previous "action" (in this case, hitboxes on F18), ALL hitboxes generated before this timer are terminated. In this case you count the frame the previous action "happened" towards the synch timers countdown

1F - F18 - hitboxes generated
2F - F19 - hitboxes active
3F - F20 - hitboxes active
4F - F21 - hitboxes active
5F - F22 - last frame hitboxes active

Now, after 5F have passed, the synch timer's actions occur. In this case, TerminateAllHitboxes. So that means that on the sixth frame from the frame hitboxes were generated, they are gone

Basically

Duration = SynchTimerValue
Active Frames = (AsynchTimerValue + SynchTimerValue) - 1
Hitbox in (the first frame hitboxes are no longer active) = AsynchTimerValue + SynchTimerValue

This is a liiiittle confusing, so if you still need help, please dont hesitate to ask me! Or anybody else in this thread!
 
Last edited:

Eeveecario

Smash Apprentice
Joined
Dec 2, 2014
Messages
198
Location
Tuxtla Gutiérrez, Chiapas
NNID
Eeveecario
Ok... Lemme see if I get it correctly. Using the code of Lucario's FTilt as reference:
Code:
def game_58():
    AsynchronousTimer_0D0(Frame=12.000000, )
    Hitbox_02D(ID=0x0, GID=0x0, Bone=0x0, Damage=4.000000, Angle=0x50, KBG=0x64, WKB=0x14, BKB=0x0, Size=4.000000, Z=0.000000, Y=6.000000, X=8.500000, 0x15, 0x0, 1.000000, 1.000000, 0x1, 0x1, 0x0, 0x0, 0x16, 0x3, 0x1, 0x4, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 6.000000, 3.000000, )
    AsynchronousTimer_0D0(Frame=15.000000, )
    Hitbox_02D(ID=0x0, GID=0x1, Bone=0x0, Damage=6.000000, Angle=0x169, KBG=0x5F, WKB=0x0, BKB=0x32, Size=3.000000, Z=0.000000, Y=6.000000, X=14.000000, 0x15, 0x0, 1.000000, 1.000000, 0x0, 0x0, 0x0, 0x1, 0x16, 0x3, 0x1, 0x4, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 6.000000, 5.000000, )
    AsynchronousTimer_0D0(Frame=17.000000, )
    RemoveAllHitboxes_014()
    End_196()
We can conclude:
| F-Tilt
Start up at frame | 12
Fully extended & Small aura burst at frame | 15
Active frames | 5 (F12 ~ F17)
Hitboxes removed at frame | 17
Completes on frame | ... F17? (Doesn't mention, I don't think you're able to act after F17)

There's only one hurtbox generated (instantiated twice, but 1 at a time due to the same ID).
Am I right?
 
Last edited:
Joined
May 3, 2009
Messages
7,190
Mastercore doesnt give cooldown frames atm, only hitbox data and in theory startup for everything.

Yeah, its the same hitbox, but it changes rather than getting generated twice

Hit on: F12
Active Frames: F12-F16 (5F)
Change on: F15
Hitbox 0
Base Damage: 4% > 6%
Base Angle: 80 (I think hex 50 is decimal 80?) > 361
KBG: 100 > 95
WKB: 20 > 0
BKB: 0 > 50
Attribute: Aura
Priority: Normal > Transcend​

Keep in mind that mastercore gives BASE damages. So the damage values you see for Lucario are for 75% Lucario (Aura = x1)

This means that connecting within the first 3F of the hitbox results in a fixed knockback attack that can clank. Connecting with the last 2F results in a scaling knockback transcendent attack. Lucario's FTilt can hit twice though, right?
 
Last edited:

Thinkaman

Moderator
Moderator
Joined
Aug 26, 2007
Messages
6,535
Location
Madison, WI
NNID
Thinkaman
3DS FC
1504-5749-3616
There's only one hurtbox generated (instantiated twice, but 1 at a time due to the same ID).
Am I right?
It ends at a time specified in the animation files (data we do not have), which is probably around 45 frames.
 
Last edited:

Eeveecario

Smash Apprentice
Joined
Dec 2, 2014
Messages
198
Location
Tuxtla Gutiérrez, Chiapas
NNID
Eeveecario
Mastercore doesnt give cooldown frames atm, only hitbox data and in theory startup for everything.

Yeah, its the same hitbox, but it changes rather than getting generated twice

Hit on: F12
Active Frames: F12-F16 (5F)
Change on: F15
Hitbox 0
Base Damage: 4% > 6%
Base Angle: 80 (I think hex 50 is decimal 80?) > 361
KBG: 100 > 95
WKB: 20 > 0
BKB: 0 > 50
Attribute: Aura
Priority: Normal > Transcend​

Keep in mind that mastercore gives BASE damages. So the damage values you see for Lucario are for 75% Lucario (Aura = x1)

This means that connecting within the first 3F of the hitbox results in a fixed knockback attack that can clank. Connecting with the last 2F results in a scaling knockback transcendent attack. Lucario's FTilt can hit twice though, right?
Oh right, Active frames are F12~F16 (Not F17).
And a lot of properties, but what exactly means "WKB" and "BKB"?
Lucario's FTilt can hit twice though, right?
Yeah, it does, but the damage is either 4% or 6%, they don't stack together on the same hit. (I might be wrong).
And

It ends at a time specified in the animation files (data we do not have), which is probably around 45 frames.
OK, supposing that the animation ends on frame 45, and active frames end on F17, that doesn't mean Ftilt is cancel-able after F17. Right? (Or it's hard to find due to the missing info?)
 
Last edited:

Thinkaman

Moderator
Moderator
Joined
Aug 26, 2007
Messages
6,535
Location
Madison, WI
NNID
Thinkaman
3DS FC
1504-5749-3616
OK, supposing that the animation ends on frame 45, and active frames end on F17, that doesn't mean Ftilt is cancel-able after F17. Right? (Or it's hard to find due to the missing info?)
If Lucario f-tilt could be interrupted on/after frame 17, this game would be unplayable.
 
Last edited:

Thinkaman

Moderator
Moderator
Joined
Aug 26, 2007
Messages
6,535
Location
Madison, WI
NNID
Thinkaman
3DS FC
1504-5749-3616
It's possible to check if the full IASA time of any ground move in the game is less than certain thresholds by doing them away from someone doing a slow startup move, and seeing if it can hit you before you can shield.

26 - Villager fsmash
31 - Ike fsmash
34 - Hyper Voice
40 - Warlock Thrust
42 - Dedede fsmash
53 - Falcon Punch
58 - Dashing Falcon Punch
63 - Warlock Blade
68 - Mighty Falcon Punch
70 - Warlock Punch
81 - Ganon utilt
94 - Wakie Wakie
 

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
OH right I found something, I didn't see it here and I forgot to share it. Don't get excited though
Luigi's down taunt is found under 1AB whether or not this applies to other character's taunts I can't tell, but considering the files that appear before it you could infer that it may indeed be the same
 

somen00b

Smash Rookie
Joined
Dec 24, 2011
Messages
2
I'd love to help with this. Maybe 1 day this research could even turn into the next gen's version of brawl hacks. However it would be easier for me to jump into this if some of the pros could share their techniques and more importantly, what programs and tools do they use to test changes to these values.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
There are no tools to test changes :D
[13:25:57] --> somen00b (mibbit@pool-71-174-55-238.bstnma.fios.verizon.net) has joined #smash4
[13:26:32] <somen00b> wow, I never thought I'd get to actually talk to a master like you dantarion
[13:27:11] <somen00b> I've been searching the internet trying to find out how people are getting info like the data found here:
[13:27:20] <somen00b> http://opensa.dantarion.com/wiki/Events_(SSB4-3DS)
[13:27:57] <somen00b> since I'd like to try and use my skills with hex editing to made moveset edits for smash 3ds
[13:28:45] <somen00b> I was wondering if you would be willing to share/recommend any tools for me
[13:31:24] <-- somen00b (mibbit@pool-71-174-55-238.bstnma.fios.verizon.net) has quit (Quit: http://www.mibbit.com ajax IRC Client)
Toomai seems to be editing that page based on info from my dumps and this thread, which is also taking info from my dumps, which are at http://opensa.dantarion.com/s4/mastercore2/
 
Last edited:

somen00b

Smash Rookie
Joined
Dec 24, 2011
Messages
2
Do you at least have something that can view the file structure of the rom and hopefully extract/insert parts of it like wiiscrubber did for brawl? If so, what program is that?
 
Last edited:
Joined
May 3, 2009
Messages
7,190
Okay so not to toot my own horn but I was SORT OF right about unk_1C9, unk_1CA, and unk_18F. In Villager's Dash Attack, DTilt, and FSmash, they relate to when the article "leaves" Villager and begins it's hitbox/sound/gfx/expression data.

I guess it should have been obvious to me before, seeing as FSmash doesn't hit on F5, and Dash Attack definitely doesn't hit on F2. In addition to this, my previous observation on F9 being the frame Villager pulls the weed in DTilt basically confirms this, as that is the frame that hitboxes come out and the unknown occurs.

I looked at those three attacks frame by frame thanks to @Croi's frame data thread and the gifs therein.

My assumptions for Dash Attack
-F2: flower pot appears (is generated)
-F14: flower pot is released, or something similar

In the gifs (which were recorded @60fps for frame data)
-F2: flower pot appears
-F14: first frame flower pot is free of Villager's hands

However, following my suspicions, the game should then move on to murabito_flowerpot subaction-001 on F12. If that were to happen, then the move should hit on F12, since there are no timers before the hitboxes. However, Croi's frame data shows it as hitting on F17. HOWEVER, the attack was started so that the frame in question would occur a good distance away from the sandbag, and I know from experience that dash attack can connect much earlier than the gif suggests.

So next, I looked at FSmash

My assumptions
-F2: bowling ball appears (is generated)
-F20: bowling ball is released, or something similar

In the gif
-F2: bowling ball appears
-F20: ??

The bowling ball and Villager's hands are obscured by the sandbag. My theory, though, had it that on F20, the game would move on to murabito_bowlingball subaction-001 and go from there. Within the data, there is an asynchronous timer generating hitboxes on F5. So per my assumptions, the frame map would look something like this:

Real Frame | murabito subaction-05F Frame | murabito_bowlingball subaction-001 Frame
0: Input | - | -
1 | 1 | -
2 | 2: Generate murabito_bowlingball | -
3 | 3 | -
4 | 4 | -
... | ... | ...
19 | 19: Begin smash charge window | -
20 | 20: unk_1C9(0x2, ) - goto murabito_bowlingball subaction-001 | 0
21 | - | 1
22 | - | 2
23 | - | 3
24 | - | 4
25 | - | 5: Generate Hitbox_02B(etc etc)

So I would think it hits on real F25 - and in the gif, it did. In addition, in DTilt, the weed would be fully pulled/released on F9, along with hitbox generation. In the gif, these actions do indeed occur on F9.

The only issue with this though, is that in FSmash, the frame that unk_1C9(0x2, ) occurs counts as an input frame, and is thus treated as F0. You just add the asynch timer value for when it occurs with the first asynch timer value in the bowling ball's file to find when the action occurs. F20 + F5 = F25. However, with DTilt, this isn't the case. The actions are concurrent with the article release bit (or whatever it would be called). I suppose this is because the game doesn't have to goto another script or file?

With dash attack, since there are no timers before the hitboxes, I would suppose they would occur on the same frame as the article release, meaning it would be a "true" F0 action. Then again, the game might still treat it the way it treats ZSS's jab. The article release frame is still counted as a regular input frame, so the attack hits on real F15?

Actually maybe not. Looking at usmash, article release occurs on F14, so goto murabito_firework F14. Then there is a synchronous timer generating hitboxes after 3F. If F14 is not counted as an input frame, and thus counts towards the synchronous timer,

SF1 - F14 - goto murabito_firework
SF2 - F15
SF3 - F16
SFE - F17 - first hit

SF = synchronous frame, SFE = synchronous frames end. When I examined Croi's gif, the first explosive hit is in fact on F17, if you ignore the hitlag frames from the setup hit when counting. So then I suppose dash attack does hit on real F14? And the article release frame is only counted as an input frame when dealing with asynchronous timers?

All in all at worst frame data will be off by literally 1F.

Also I guess these unknowns are better referred to as begin_article_data?
 
Last edited:

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
Okay so not to toot my own horn but I was SORT OF right about unk_1C9, unk_1CA, and unk_18F. In Villager's Dash Attack, DTilt, and FSmash, they relate to when the article "leaves" Villager and begins it's hitbox/sound/gfx/expression data.
interesting
def game_228():
AsynchronousTimer_0D0(Frame=6.000000, )
unk_1C9(0x1, )
End_196()
so this has to do with when the article is leaving the subject and starts doing its own thing?
 
Joined
May 3, 2009
Messages
7,190
That's the idea, for Villager anyway. What character is this? Is that really all that's in the game data?
 

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
@ Indigo Jeans Indigo Jeans
pit, I've been suspecting this as part of his arrows for some time now.
now this file
def game_20E():
AsynchronousTimer_0D0(Frame=17.000000, )
unk_0E0(0x0, )
End_196()
I know this is Luigi's fireball, but unlike pit, luigi never holds/charges his projectile he just releases it. Think I'm gonna take a quick look at samus specials
also tell my cat to quit rolling on my keyboard
 
Last edited:
Joined
May 3, 2009
Messages
7,190
Yeah, I'm going to hazard a guess and say that those unknowns I was talking about that begin an articles effects are only used for articles that remain anchored to the character without necessarily beginning their effects. So like for example, most of Villager's articles are anchored for a certain amount of time before they become active. Luigi's fireball, however, isn't really anchored I think. On the other hand, I believe Link's Boomerang will use this.

Edit: Actually, since Boomerang would probably be difficult to find, let me check Mega Man's DAir
 
Last edited:
Joined
May 3, 2009
Messages
7,190
Okay so Mega Man does not have any flags or bits or whatever that would seem to serve a similar function to the ones I've described in Villager.

HOWEVER he does have some strange usages for unk_16F and unk_170 that I don't recall seeing elsewhere. Aside from (0xD, 2100, ) for setting and removing landing lag, he also has (0x0, 2100, ). Maybe this is related to decreasing vertical movement? unk_170(0x0, 2100, ) is set the same frame that landing lag is set, and unk_16F(0x0, 2100, ) is set the same frame that the article is generated. And as far as I can tell, downwards movement decreases around F5 or so, and you resume normal acceleration around the same time the hard knuckle is launched. These are within subaction-06C (DAir). Within rockman_hardknuckle subaction-000, he also has unk_170(0x5, 0x2000, ) set on F3 (real F26). This is the same frame the initial hitbox changes to an aerial-target-only spike and a separate ground-target-only htbox is generated, though I'm not sure what this could be for.

Edit: so in subaction-001 of hardknuckle you can find unk_18B(0x4, ) set on F1, but its all there is in that section of game data (aside from end_196 ofc). Dunno what this is though since hardknuckles article generation ID is apparently 5 (DAir has unk_0E0(0x5, ))
 
Last edited:

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
Okay so Mega Man does not have any flags or bits or whatever that would seem to serve a similar function to the ones I've described in Villager.

HOWEVER he does have some strange usages for unk_16F and unk_170 that I don't recall seeing elsewhere. Aside from (0xD, 2100, ) for setting and removing landing lag, he also has (0x0, 2100, ). Maybe this is related to decreasing vertical movement? unk_170(0x0, 2100, ) is set the same frame that landing lag is set, and unk_16F(0x0, 2100, ) is set the same frame that the article is generated. And as far as I can tell, downwards movement decreases around F5 or so, and you resume normal acceleration around the same time the hard knuckle is launched. These are within subaction-06C (DAir). Within rockman_hardknuckle subaction-000, he also has unk_170(0x5, 0x2000, ) set on F3 (real F26). This is the same frame the initial hitbox changes to an aerial-target-only spike and a separate ground-target-only htbox is generated, though I'm not sure what this could be for.

Edit: so in subaction-001 of hardknuckle you can find unk_18B(0x4, ) set on F1, but its all there is in that section of game data (aside from end_196 ofc). Dunno what this is though since hardknuckles article generation ID is apparently 5 (DAir has unk_0E0(0x5, ))
I wish I could say I follow >.<, I'll probably check my notes later and read up on hard knuckle
I did take a look at link, then remembered I had some class work I needed to do, edit: sorry for the late post on this
I suspect this one to be boomerang
def game_227():
AsynchronousTimer_0D0(Frame=5.000000, )
unk_0E0(0x2, )
AsynchronousTimer_0D0(Frame=27.000000, )
unk_1C9(0x2, )
End_196()
his other specials are also interesting
suspect bow
def game_20F():
unk_0E0(0x0, )
unk_0E0(0x1, )
AsynchronousTimer_0D0(Frame=18.000000, )
unk_170(0x10, 0x2100, )
End_196()
and suspected bomb pull
def game_22F():
AsynchronousTimer_0D0(Frame=14.000000, )
unk_18F(0x2, )
End_196()
 
Last edited:

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
unk_0E0, unk_0E5 seems to be spawning objects/projectiles

so to elaborate:
another suspected pit's arrows (the kid has over 700 files what do you want from me QQ)
def game_210():
AsynchronousTimer_0D0(Frame=7.000000, )
unk_0E0(0x1, ) <-- generate arrow
End_196()
megaman fsmash
def game_5F():
AsynchronousTimer_0D0(Frame=10.000000, )
unk_170(0x1B, 0x2100, )
AsynchronousTimer_0D0(Frame=19.000000, )
unk_0E0(0x4, ) <-- generate giant bug zapper
End_196()
and in the case of
megaman dair
def game_6C():
AsynchronousTimer_0D0(Frame=5.000000, )
unk_170(0xD, 0x2100, )
unk_170(0x0, 0x2100, )
AsynchronousTimer_0D0(Frame=23.000000, )
unk_0E0(0x5, ) <-- generate fist
unk_16F(0x0, 0x2100, )
AsynchronousTimer_0D0(Frame=55.000000, )
unk_16F(0xD, 0x2100, )
End_196()
it could be that the projectile can't be held onto during the charge/wind up/starting lag or has not spawned yet so only 0E0, 0E5 are used
secondly back to link's
suspect arrow
def game_20F():
unk_0E0(0x0, ) <-- generate bow
unk_0E0(0x1, ) <-- generate arrow
AsynchronousTimer_0D0(Frame=18.000000, )
unk_170(0x10, 0x2100, )
End_196()
link doesn't run the hell around town with his bow does he? (I'd check the link frame data file, but it's late and I'm tired) This would be spawning both bow and arrow
and back to suspect link bomb
def game_22F():
AsynchronousTimer_0D0(Frame=14.000000, )
unk_18F(0x2, )
End_196()
this may actually be the release of the arrow it would overlap with how pit's bow has separate files for spawn and releasing arrows. so going back to @ Indigo Jeans Indigo Jeans 's original post it could fully be object release
Actually on second thought because of where this is in link's files it must either be related to bomb or boomerang

Lastly I could only find one two (link bombs atm) examples where 0E0, 0E5 did not generate articles (I have yet to look more places)
Villager Uair/trollnips
def game_6B():
AsynchronousTimer_0D0(Frame=6.000000, )
unk_170(0xD, 0x2100, )
unk_0B4(0x11000004, 0x0, 0x1, )
unk_0C1(0x1D, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=8.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=5.200000, Z=0.000000, Y=20.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x1, 0x3, 0x1, 0x9, )
unk_0BD(0x21, )
unk_0B4(0x11000004, 0x0, 0x2, )
unk_0C1(0x1D, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=10.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=6.500000, Z=0.000000, Y=20.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x2, 0x1, 0x3, 0x1, 0x9, )
unk_0BD(0x1B, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=13.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=7.500000, Z=0.000000, Y=20.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x2, 0x1, 0x3, 0x1, 0x9, )
SynchronousTimer_20B(Frame=2.000000, )
unk_0B4(0x11000004, 0x0, 0x1, )
unk_0C1(0x1D, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=4.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=3.800000, Z=0.000000, Y=18.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x0, 0x1, 0x3, 0x1, 0x9, )
unk_0BD(0x21, )
unk_0B4(0x11000004, 0x0, 0x2, )
unk_0C1(0x1D, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=5.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=4.500000, Z=0.000000, Y=18.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x0, 0x1, 0x3, 0x1, 0x9, )
unk_0BD(0x1B, )
Hitbox_026(ID=0x0, GID=0x0, Bone=0x0, Damage=6.000000, Angle=0x55, KBG=0x64, WKB=0x0, BKB=0x1E, Size=4.800000, Z=0.000000, Y=18.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x1, 0x3, 0x1, 0x9, )
AsynchronousTimer_0D0(Frame=32.000000, )
RemoveAllHitboxes_014()
AsynchronousTimer_0D0(Frame=39.000000, )
unk_16F(0xD, 0x2100, )
End_196()
maybe I can work on this more tomorrow
and crap I didn't make it in time for the nightly back up
 
Joined
May 3, 2009
Messages
7,190
Yeah, I covered unk_0E0, unk_0E5, and other stuff in this post already :( Article generation unknowns have also been discussed before then, too.

A lot of Villager's attacks that use articles don't use those unknowns. UAir, DAir, UTilt, and FTilt specifically.

Regarding unk_18F, it is used in Villager's DTilt and FTilt. In DTilt it "unanchors" the weed, which is called by unk_0E5. Idk what it does in FTilt since it is set a couple of frames after Villager has visually put away the umbrella and I believe a few frames after the FAF. It does seem like it would fit for Link's bomb pull though. Maybe F14 is the frame the bomb becomes active, even while held? Like when you hit Link while he's holding his bomb, and it explodes.

Edit: looking at the subaction you suspect is arrow, it has unk_170 set on F18. unk_170 is normally for state transitions I think, so that might be the earliest the arrow can be released and becomes active?
 
Last edited:

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
Yeah, I covered unk_0E0, unk_0E5, and other stuff in this post already :( Article generation unknowns have also been discussed before then, too.
gotta go smother myself to death
Regarding unk_18F, it is used in Villager's DTilt and FTilt. In DTilt it "unanchors" the weed, which is called by unk_0E5. Idk what it does in FTilt since it is set a couple of frames after Villager has visually put away the umbrella and I believe a few frames after the FAF. It does seem like it would fit for Link's bomb pull though. Maybe F14 is the frame the bomb becomes active, even while held? Like when you hit Link while he's holding his bomb, and it explodes.
I think unk_18F will be a little harder to pin down
I'll try to find some more examples to work with later
A lot of Villager's attacks that use articles don't use those unknowns. UAir, DAir, UTilt, and FTilt specifically.
Ftilt does use a unk_0E0, it's like the first thing in that file. His U tilt though is really weird, I wish I could see a frame by frame
 
Joined
May 3, 2009
Messages
7,190
Oh whoops, you're right. I was thinking of FTilt in terms of it not having a file in mastercore, ha ha.

You can!

http://smashboards.com/threads/villager-frame-data.369088/

http://ezgif.com/split

Copy the gif URLs and paste them into the field, then hit split. Each gif frame corresponds to 1 in game frame. In UTilt, the stick is generated on F1 (the gifs include the single input frame at the beginning, which doesn't technically count towards an attack).
 

Furret

Long Body Pokémon
Joined
Dec 5, 2014
Messages
3,477
Location
MO
Oh whoops, you're right. I was thinking of FTilt in terms of it not having a file in mastercore, ha ha.

You can!

http://smashboards.com/threads/villager-frame-data.369088/

http://ezgif.com/split
good taste in gif editor I use the same one
so I checked a few characters but Jr. was the only one where I found anything
Bowser Jr. Uair
def game_6B():
unk_0E1(0x0, )
AsynchronousTimer_0D0(Frame=2.000000, )
unk_170(0xD, 0x2100, )
AsynchronousTimer_0D0(Frame=6.000000, )
Hitbox_029(ID=0x0, GID=0x0, Bone=0x19, Damage=10.000000, Angle=0x44, KBG=0x64, WKB=0x0, BKB=0x1E, Size=3.000000, Z=0.000000, Y=0.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x0, 1.000000, 0.000000, )
Hitbox_029(ID=0x1, GID=0x0, Bone=0x19, Damage=10.000000, Angle=0x44, KBG=0x64, WKB=0x0, BKB=0x1E, Size=3.000000, Z=0.000000, Y=6.000000, X=2.500000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x0, 6.000000, -3.500000, )
SynchronousTimer_20B(Frame=4.000000, )
Hitbox_029(ID=0x0, GID=0x0, Bone=0x19, Damage=6.500000, Angle=0x44, KBG=0x50, WKB=0x0, BKB=0x1E, Size=3.000000, Z=0.000000, Y=0.000000, X=0.000000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x0, 1.000000, 0.000000, )
Hitbox_029(ID=0x1, GID=0x0, Bone=0x19, Damage=6.500000, Angle=0x44, KBG=0x50, WKB=0x0, BKB=0x1E, Size=3.000000, Z=0.000000, Y=6.000000, X=2.500000, Element=0x0, Tripping=0x0, Hitlag=1.000000, SDI=1.000000, unk_=0x1, unk_=0x1, ShieldDamage=0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x0, 6.000000, -3.500000, )
SynchronousTimer_20B(Frame=4.000000, )
RemoveAllHitboxes_014()
AsynchronousTimer_0D0(Frame=16.000000, )
unk_16F(0xD, 0x2100, )
AsynchronousTimer_0D0(Frame=37.000000, )
unk_18F(0x0, )
End_196()
Bowser Jr. D Special
def game_25A():
unk_0E1(0x0, )
AsynchronousTimer_0D0(Frame=23.000000, )
unk_18F(0x0, )
End_196()
Bowser jr. attack out of U special
def game_26E():
unk_0E1(0x0, )
AsynchronousTimer_0D0(Frame=8.000000, )
Hitbox_02B(ID=0x0, GID=0x0, Bone=0x0, Damage=15.000000, Angle=0x169, KBG=0x5A, WKB=0x0, BKB=0x32, Size=6.500000, Z=0.000000, Y=8.000000, X=-12.000000, 0x0, 0x0, 1.200000, 1.000000, 0x1, 0x1, 0x0, 0x2, 0x2, 0x3, 0x1, 0x9, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, )
Hitbox_02D(ID=0x1, GID=0x0, Bone=0x0, Damage=10.000000, Angle=0x169, KBG=0x5A, WKB=0x0, BKB=0x32, Size=3.000000, Z=0.000000, Y=8.000000, X=-10.000000, 0x0, 0x0, 1.200000, 1.000000, 0x1, 0x1, 0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 8.000000, -3.000000, )
AsynchronousTimer_0D0(Frame=9.000000, )
RemoveAllHitboxes_014()
AsynchronousTimer_0D0(Frame=13.000000, )
Hitbox_02B(ID=0x0, GID=0x0, Bone=0x0, Damage=15.000000, Angle=0x169, KBG=0x5A, WKB=0x0, BKB=0x32, Size=6.500000, Z=0.000000, Y=8.000000, X=12.500000, 0x0, 0x0, 1.200000, 1.000000, 0x1, 0x1, 0x0, 0x2, 0x2, 0x3, 0x1, 0x9, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, )
Hitbox_02D(ID=0x1, GID=0x0, Bone=0x0, Damage=10.000000, Angle=0x169, KBG=0x5A, WKB=0x0, BKB=0x32, Size=3.000000, Z=0.000000, Y=8.000000, X=10.000000, 0x0, 0x0, 1.200000, 1.000000, 0x1, 0x1, 0x0, 0x1, 0x2, 0x3, 0x1, 0x9, 0x3F, 0x0, 0xF, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 8.000000, 3.000000, )
AsynchronousTimer_0D0(Frame=14.000000, )
RemoveAllHitboxes_014()
AsynchronousTimer_0D0(Frame=35.000000, )
unk_18F(0x0, )
End_196()
I hope these files help because I really am not finding a pattern in the use of 18F. Because unless it's starting an event on an article, I've got nothing
 
Joined
May 3, 2009
Messages
7,190
Man, no posts in a week?!

Like I said 18F seems to set when an article starts doing stuff or gets "unanchored", but not always?

In Bowser Jr's UAir and attack out of Abandon Ship, I'm guessing F37 / F35 are when the hammer gets put away. For Mechakoopa, it's probably either when it completely leaves the Clown Car, allows hitboxes to activate (touching it before F23 means it doesn't hit + detonate, touching it F23 onwards means it does), or both.

Also, probably not applicable to this thread, but idk where else to put it. On the frame that a replay match ends (the frame where the "GAME" sequence begins), inputs are accepted and acted on. In one replay, the match ended as I was falling down from a short hop. The first time, I inputted back+A, and Rosalina did a BAir. The second time, I inputted up+A, and she did an UAir. Sort of interesting I think.
 
Last edited:

Sammi Husky

Smash Apprentice
Joined
May 13, 2014
Messages
88
I disagree.
Also, new stuff is coming.
http://pastebin.com/y3Cd1SmQ
I also disagree..and..wish i seen this thread earlier...

Dant, i remember you asking me if my tool rebuilt files yet. I released a beta version a good while ago that can rebuild files completely.. I'll just..quote what i said in a previous thread before i seen this one.. whoops >.> The biggest thing, is that people can help define commands in the text files, and the editor now can define tooltip descriptions, similar to other programming IDE.

Nothing really to add to this thread in terms of frame data, however, i do think it is worth noting that i released a tool some time ago (albeit a beta tool) that can interpret, display, edit, and completely rebuild the animcmd files. You can read more about it in the link below, as well as a download and link to source code. The tool only can open 3ds files right now, but that's just because the 3ds uses little endian byte ordering, while the wiiu still uses a big endian processor. I'll update it tonight or tomorrow to open both, hopefully.
https://gbatemp.net/threads/release-sm4shcommand.378245/

The main reason i believe it is relevant to this thread, is that some research seems to be going on here in terms of deciphering the commands. This tool, similar to PSA, includes text files that will allow you to expand and edit the command dictionary. As a community, i believe that it is very important not only as a means of recording frame data but as a way to further understand the game to expand these dictionaries the best we can.
 

Amazing Ampharos

Balanced Brawl Designer
Writing Team
Joined
Jan 31, 2008
Messages
4,582
Location
Kansas City, MO
So, uh, if we can rebuild files with changed stuff in them, is there any way to get those files in-game? I'm not exactly at the front of the curve on the 3ds scene, but that's very interesting.
 

Sammi Husky

Smash Apprentice
Joined
May 13, 2014
Messages
88
So, uh, if we can rebuild files with changed stuff in them, is there any way to get those files in-game? I'm not exactly at the front of the curve on the 3ds scene, but that's very interesting.
Well, assuming one can repack their rom and run it via one of the methods available on 3ds, then it should be possible. I haven't tested though so i can't promise anything. The only thing really that would need to be done still is to repack the dt/ls files sm4sh uses, then repack the rom and run..but there isn't a public tool to repack the dt and ls files yet. Being able test changes in game would be a big breakthrough in researching what commands actually do.

It may also be possible to inject the changed files into ram instead of rebuilding and running the rom, but i haven't researched that very much.
 

Ffamran

The Smooth Devil Mod
Joined
Aug 25, 2014
Messages
14,629
I don't know if this was asked already, but I want some clarification on reading Jabs. So, Falco's Jab 1 is frames 2-4, Jab 2 is 3-5, Rapid Jab has 4 hits listed and they're probably the minimum amounts of hits at frames 2-6, 7-11, 12-16, 17-21, and Jab Finisher at frames 5-6. Given Jab 1 has "Enables transition to next jab state on real frame 8", Jab 2 has "Enables transition to next jab state on real frame 17" and Jab Finisher hits on frame 5 and just comes out after Rapid Jab, then Falco's Jab combo would be frames 2-4, 8-10, 17-20, 21-25, 26-30, 31-35, and 39-40?

Samus's Jab combo is easier since it's just two hits. Jab 1 is frames 3-4 which "Enables transition to next jab state on real frame 12" and Jab 2 is frames 6-9. This would mean that her Jab combo would be frames 3-4 and 12-15, right?

Link's Jab 1 is 7-8 which "Enables transition to next jab state on real frame 10", Jab 2 is 6-7 which "Enables transition to next jab state on real frame 10", and Jab 3 is 6-10. So, his Jab combo would be 7-8, 10-11, and 14-18?

I just got into data research thanks to @BJN39, @ Indigo Jeans Indigo Jeans , @TTTTTsd, @Macchiato, and @ Furret Furret , so I'm new to this and I've messed up... a lot.

I feel bad about giving out misinformation now...
 

Kofu

Smash Master
Joined
Apr 2, 2009
Messages
4,609
Location
The caffeine-free state
NNID
Atoyont
3DS FC
1521-4492-7542
I think Falco's jabs would have hitboxes on frames 2-4, 11-13, and then frame 27 would he the start of the rapid jab. If the transition to jab two from jab one is on frame 8, and jab two's hitbox comes out on frame 3, then it would come out 3 frames after the transition, or frame 11.

But I'm a novice at this too, I could be wrong as well. :bee:
 
Joined
May 3, 2009
Messages
7,190
Real Frame | Jab 1 | Jab 2 | Rapid Jab Loop | Rapid Jab End
1 | 1 | | |
2 | 2 - hit | | |
3 | 3 - hit | | |
4 | 4 - hit | | |
5 | 5 - gone | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 - enable jab 2 | 1 | |
9 | | 2 | |
10 | | 3 - hit | |
11 | | 4 - hit | |
12 | | 5 - hit | |
13 | | 6 - gone | |
14 | | 7 | |
15 | | 8 | |
16 | | 9 | |
17 | | 10 - enable rapid jab loop | 1 |
18 | | 11 | 2 - hit |
19 | | 12 | 3 |
20 | | 13 | 4 |
21 | | 14 | 5 |
22 | | 15 | 6 |
23 | | 16 | 7 - hit |
24 | | 17 - enable next jab (jab 1 probably) | 8 |
25 | | | 9 |
26 | | | 10 |
27 | | | 11 |
28 | | | 12 - hit |
29 | | | 13 |
30 | | | 14 |
31 | | | 15 |
32 | | | 16 |
33 | | | 17 - hit, enable button release, enable rapid jab end | 1 - end last rapid jab hitbox
34 | | | | 2
35 | | | | 3
36 | | | | 4
37 | | | | 5 - hit
38 | | | | 6 - hit
39 | | | | 7 -end
Check my post on jab bits cause I dont wanna re-explain :(

Character Data Research Thread

Disclaimer: I'm actually not entirely sure if a jab action begins on the frame it is enabled as long as the requirements are met. Also, due to the funky nature of rapid jab loops, I'm not sure how long each hit lasts, or if it even hits on the frame it is called (which I still labeled a hit frame anyway, whoops). unk_20D is set when the button is released, so the earliest it is set is on the frame that the fourth rapid jab loop hit is called. As soon as it is set, rapid jab end is enabled, but again, idk if rapid jab end begins as soon as button is released or what.

Edit: I'm not so sure about when unk_20D happens now. I went into training and held the button on hit to initiate falco's rapid jab loop. Releasing after hit 1 and before hit 2 resulted in 5 hits. I would have expected this to occur only if I had released after hit 4? Since mastercore has 20D set on the "same frame" as hit 4.
 
Last edited:

Ffamran

The Smooth Devil Mod
Joined
Aug 25, 2014
Messages
14,629
Have you tried holding down the button for Jab since I get 4 Rapid Jabs out of that? Also, apparently Falco's Rapid Jab doesn't "true" combo. So, I bet it might be the 17 enable frame that's causing it since if it was after an enable frame 10, it should true combo.

Welp, time to edit all of this... AGAIN.
 
Last edited:

Lavani

Indigo Destiny
Joined
Oct 24, 2014
Messages
7,256
I think the next jab in the sequence comes out 1 frame after the transition is enabled. Looking at recordings I'm seeing Falco jab2 start on 9f and Link's start 11f.
 
Joined
May 3, 2009
Messages
7,190
I held the button down on hit to jab transition on the first frame possible. I'm not surprised it doesn't true combo to be honest. I doubt that the bit set on F17 is for rapid jab... that and, like I said in my post, it seems that bits with the same set requirements go in the order that they occur in a hitbox. Both unk_170 0xD and 0x11 occur in jab two, the first being enable next jab, and the second being enable rapid jab loop. Both can be set if the button is held on hit, but since 0x11 occurs before 0xD in the hitbox rapid jab takes priority.

0xD requires button press on whiff but allows hold on hit, so thinking about it now it probably is to transition to jab 1.
 
Last edited:

Ffamran

The Smooth Devil Mod
Joined
Aug 25, 2014
Messages
14,629
Yeah, I tested it and did Jab 1, Jab 2 to Jab 1, Jab 2 and the pause was about as long as Side Smash while Rapid Jab seemed more like the 18-22 frame thing. WHY ARE JABS SO COMPLICATED?! *continues to edit stuff*

So, Samus's Jab combo is probably Jab 1 at 3-4 then Jab 2 at 17-20 because Jab 2 starts on frame 6-9, but it only transitions after frame 12 from Jab 1, right? Please tell me I'm right... *goes slam head on desk*

Edit: Dummy can't read his own data.
 
Last edited:
Top Bottom