You forgot that you can earn unfly by taking an eligible hit (i.e. a hit with midair recovery) with a point character (even a point character without flight mode), and unfly should carry over to the next character as long as you follow the rules for retaining unfly (e.g. avoiding normal jumping).
That was me that you were playing against! Haha I was just telling my friend we battled it out...I had no idea I was going to be in a video. Good stuff man, love your work.
12:10 My theory as to why unfly exists is a preventative mesure against characters being reset into unblockables like a guard break in common situations. In mvc2, normal jump state limits you to 1 air action in which no additional actions can be performed. So you can do normal or special attacks or block once. And because of this, a forced block in normal jump state leaves you unable to block (this is why guard break works on a mechanics level). Now imagine that for every air hit and every launcher and anti air. That would suck and there would be a lot of infinites based around unblockable resets that lock the victim out of any action. Their solution was to give characters something like a super jump state after being knocked into the air to let them fight on the way down, but only temporarily so the same normal jump rules kick in later. It also compensates for when someone stays in the air with flight. I think the way unflying is used now is unintended. It also explains why sim's unfly rate is double the rest of the cast cause they didn't want him running away and teleporting at the top of the screen timing out everyone.
@@semantik95 the only things I'm uncertain about are why would they make such a convoluted system instead of something more universal or elegant only to then remember that mvc2's engine is spaghetti coded together from a bunch of previous games and assets so this might have been a brute force solution to a lot of problems that like 99% of players wouldn't notice.
I think you're on the right track. The fact that the integer exists in memory to keep track of your air punches and kicks means that the developers had some intention to limit the amount of actions you could perform. This also explains why it's affected by certain divekicks, and why Dhalsim specifically has his counter drop by 2. He's a floaty character, and they probably anticipated some shenanigans could happen and tried to limit him This also points to the potential cause. If the integer being used to track is an unsigned 4 bit integer (commonly used in old game programs), it maxes out at 15. This is relevant because it means that you can get this number by triggering an overflow. Essentially, if the counter is at 0 and is decreased by one, it wraps around to the maximum value. I suspect the developers coded it so that your "unfly values" always go down when you get hit by those attacks (so that you can't counterattack mid air for example) and just didn't anticipate the situation if your value was already at zero and then decreased. This causes an overflow, so it wraps around to become the max value of 15.
Dhalsim double stacks is because he has short-range *and* long-range attacks macro'd to one input, so you're effectively doing BOTH ATTACKS every time you hit the button.
Ironman unfly infinite was the reason I'm both scared and impressed by Ironman and war machine players as the infinite is hard to pull off, yet they manage to pull it off.
The number 15 makes me think that this is potentially an underflow glich of some kind. 4 bits can represent numbers from 0 to 15, and I would guess your air actions are supposed to be set to 0 from those reset scenarios, but for some reason it gets set to -1 or something and it rolls over to 15. That or it's set to max on purpose and the bug is that landing doesn't reset your air actions.
I was finally able to do fly/unfly after practicing for weeks. I played mvc2 when it first came out back in 2000 at Family Fun arcade. If I only knew this mechanic back then, I would've won more matches. Now that I'm older, doing this hurt my wrist and fingers haha. It is really tasking on your hands. Haven't stopped playing since and won't stop.
I had no idea unfly worked exactly like that! I knew some things about it, like that a lot of people said you needed to get hit to start unfly-ing. I didn't realize there were punch & kick stocks for it and that you could get unfly from a normal string. That is really cool, thanks for the info jmcrofts! Marvel 2 is just a sick game in general! :D
I’m not super familiar with the roster, but the common variable between the moves that kill your unfly seems to be that they alter your movement or momentum in some way. Maybe something about the way those moves work checks or resets the memory where unfly lives.
"why does having this one value in memory allow you to do actions while you're in this unflying state?" prob because the devs at capcom wrote code that allows you to be actionable in a normally inactionable state if those memory values are non-zero like, yeah, this is one helluva unintuitive set of mechanics, but there's not really anything _off_ happening here other than _maybe_ them forgetting to 0 out your unfly normals when you fly from the ground. when you jump, you get 1 normal before the recovery state of certain moves that keep you airborne become inactionable. if you air tech or get put into the air after some knockdowns, you get 14 of one and 15 of the other, or 6 and 7 if you're dhalsim with your weird long normals. seemingly pulling off a chain was supposed to refund your normal jump normal, but it looks like it's bugged and the air normal used consumes it. also, using a move that covers the space diagonally below you immediately removes your unfly normals, presumably because that is an _exceptionally_ good angle for an attack to cover it's the sorta thing where it _does_ have some headscratching decisions put into it, but they very much feel like _decisions._ like it's jank and weird not because stuff is working in unexpected ways, but because everything is working exactly as it should and "exactly as it should" is according to some obscure and undocumented rules that probably could've used a second design pass or the like, but this _is_ a 2000s arcade game capcom made by dumping a bunch of assets they had lying around into a blender. you've covered plenty of the other design decisions made by the team that are just baffling in retrospect, and to me, this is clearly just another one to toss on the pile yet, still. it's the way it is for the exact same reason that pressing light punch causes your character to do a light punch
Seems like an integer undeflow/wraparound like at some point its gets sets to 0 and they substract 1 by mistake. They probably did some bit fiddling assigning 4 bits to Punches and 4 to Kicks to make a byte -> 2^4 = 16 [0-15]. The original reason for the counters to limit air actions (thats why it only sets it to 1 on jump). A readup on the counters in memory would be good if it exists
I dont think so- my expectation would be that would have different unfly moves remaining depending on how many you had when you got hit if it was wrapping
@@nosenseofhumor1 I think it might be triggered by the "air soft knockdown" triggering two "reset" functions; it gets sets to 0 and somebody in another function did -1 "to make sure" assuming it always is 1. This is all a supposition of course based on the fact that 15 is a very specific number! I might lookup this mod but I'm quite busy
I just want you to know that in your original SF6 Ryu ranked placements video I was the marisa in the 1st set and me and my friends still say "classic shoto gameplay" to this day.
my best guess is infinite unfly was how flight worked at first, then they decided to limit it with the unfly punch and kick values. those are different because they wanted you to use a mix of punches and kicks in flight combos and stuff. and they tried different ways of increasing the unfly values like resetting to 15 when you transition to neutral state or adding when you jump. but then they decided to make flight work like it does now without unfly, and an easy way to do it was to make those events set it to 0. but they forgot some of them (the ones that give unfly now), and since they never actually removed the unfly mechanic you can still use it when you get both values above 0.
Also, my understanding of unfly was *completely* different/limited in context. What I understood it to be was "an airblock reset," where during a soft knockdown from an airborne state or after a successful airblock, you could sweep the quarter-circle back, quickly tap the KK twice (to fly and then unfly), and regain your ability to airblock once you were put into a state where you normally couldn't, like after blocking on KO/drop-in.
This video honestly blew my mind. I've heard people talk about how weird unfly is in mvc2 - but i never realized why or bothered to look into it, assuming it was the same as unfly in mvc3. wow! lmaooooo this is melee levels of weird
Wish you would have shown off more of what you can actually do with sentinel over that long stretch of weird ways to activate and deactivate unfly. Either way this video is LOOOONG over due. Didn’t really know what is was about this whole time playing for years but I know people always brought up UNFLY.
I bet they intended for the soft knockdowns to substract 1 air move instead of giving 15. If the UK and UP values are stored 4-bit variables, subtracting 1 from 0 gives 15 for each.
15 is the nibble integer value 1111- looks like a garbage collection error. It wouldn’t be unusual for a variable to be wiped to some control value when disposed, just like it would usually be initialized to 0000. So I’m guessing getting hit collects the “remaining moves” variable and runs its disposal method on the memory, but an active pointer is still attached to the memory because the character is in the air. So instead of null we see a remaining moves of 1111 Did that make sense?
My guess is that there's certain hits that they wanted you to no longer have air actions or something like that so they had a variable called airActions or something and the code says "subtract 1 from airActions" and when the value is at zero, that underflows, and if it was a 4-bit variable, the value range for that as an unsigned integer (only positive numbers) would range from 0-15. so 0-1 makes it underflow to 15 and they probably intended to reset the value to 0 in certain situations (like hard knockdown) and missed adding code to reset it in the softer hits and air techs it would also explain the dr. doom divekick. it would be less that it consumes 15 on use, but more that they probably didn't want you to be able to do another air move after the divekick, so they just force set that value to 0 rather than do a subtraction. as for why dhalsim moves reduce the value by 2 each time...idk the thoughts i have here are just my expectations at a glance, this is my first time seeing the actual info behind it at all.
Saw the first couple of seconds of your video and thank the Lord you're talking about unfly I'm at the arcade right now but I promise you I'm going to study whatever you have to give on unfly and fly and all of that. Two decades in the game and just hearing about this a couple of years ago and still don't understand it😅 so thanks brother👍🏽
dude I grew up playing the original arcade almost every day at a local arcade vs. some VERY high level players (the street fighter real life world tour came through town) and even I still dont understand fly/unfly. What drives me crazy is the lack of push block and rolls modern players dont do. In some cases it can make you vulnerable yes, but there are specials, if you push block you get frame advantage and an opening.
@@werewolf74 yeah I can see where your coming from but honestly We All can fall victim to the lack of that mechanic use but I'm glad you pointed it out because it is greatly underutilized
I'm only 5 minutes in and already wondering how hard it would be to avoid giving a sentinel unfly for the entire match, just to see if they notice the difference.
I wonder if there's other fighting games waiting to be busted open like mvc2 has, I can't understand how they found any of these mechanics in the first place
Really wish this was a dhalsim vid. Im still trying to figure out wtf OC.HP is. I know its called (offensive crouch high punch) going off what little info i got on it, i just notice people lauch with him without needing to chain lp first
Anyone know the name of that arcade fighting game where it was scif-i with aliens and guys with chain saws and you could cut the other guy's arms off? Was in arcades around the same time as Samurai showdown.
lol when i was around 9 or 10 i had a 14-16 year old teach me how to fly i only played this in the arcade i love i'm able to play it now on my ps4 before now the last time i played mvc2 i was 14 at the arcade i suck now lol
In the original Marvel 2 console versions, If u want to pick 3 of the same character, you need to unlock all the alt colors of the game, now I dunno on that collection
Fight, Collect and Compete on Marvel Contest of Champions! Check it out here: marvelbattle.onelink.me/cPwS/rqmxewuo
You forgot that you can earn unfly by taking an eligible hit (i.e. a hit with midair recovery) with a point character (even a point character without flight mode), and unfly should carry over to the next character as long as you follow the rules for retaining unfly (e.g. avoiding normal jumping).
That was me that you were playing against! Haha I was just telling my friend we battled it out...I had no idea I was going to be in a video. Good stuff man, love your work.
12:10 My theory as to why unfly exists is a preventative mesure against characters being reset into unblockables like a guard break in common situations.
In mvc2, normal jump state limits you to 1 air action in which no additional actions can be performed. So you can do normal or special attacks or block once. And because of this, a forced block in normal jump state leaves you unable to block (this is why guard break works on a mechanics level). Now imagine that for every air hit and every launcher and anti air. That would suck and there would be a lot of infinites based around unblockable resets that lock the victim out of any action.
Their solution was to give characters something like a super jump state after being knocked into the air to let them fight on the way down, but only temporarily so the same normal jump rules kick in later. It also compensates for when someone stays in the air with flight.
I think the way unflying is used now is unintended. It also explains why sim's unfly rate is double the rest of the cast cause they didn't want him running away and teleporting at the top of the screen timing out everyone.
Actually brilliant. Good stuff
@@semantik95 the only things I'm uncertain about are why would they make such a convoluted system instead of something more universal or elegant only to then remember that mvc2's engine is spaghetti coded together from a bunch of previous games and assets so this might have been a brute force solution to a lot of problems that like 99% of players wouldn't notice.
I think you're on the right track. The fact that the integer exists in memory to keep track of your air punches and kicks means that the developers had some intention to limit the amount of actions you could perform. This also explains why it's affected by certain divekicks, and why Dhalsim specifically has his counter drop by 2. He's a floaty character, and they probably anticipated some shenanigans could happen and tried to limit him
This also points to the potential cause. If the integer being used to track is an unsigned 4 bit integer (commonly used in old game programs), it maxes out at 15. This is relevant because it means that you can get this number by triggering an overflow. Essentially, if the counter is at 0 and is decreased by one, it wraps around to the maximum value. I suspect the developers coded it so that your "unfly values" always go down when you get hit by those attacks (so that you can't counterattack mid air for example) and just didn't anticipate the situation if your value was already at zero and then decreased. This causes an overflow, so it wraps around to become the max value of 15.
Interesting idea
lmao bro you're overthinking it and giving the Mvc2 devs too much credit. The thing is they had zero clue what tf they were doing.
Love that when a game is old enough and loved enough, a bug that would get patched out in a modern game gets to be called a "mechanic"
5:55 JM’s locked-in face when he’s doing the Ironman combo
Dhalsim double stacks is because he has short-range *and* long-range attacks macro'd to one input, so you're effectively doing BOTH ATTACKS every time you hit the button.
Sentinel is a monster. It's like the Chun Li of Marvel games, always somewhere between really good and god tier.
I won't play anybody who uses that god tier character in a 30 year old game lol
@@NoName-cn3cp ratio IT'S MARVEL BABY
Ironic since Chun-Li sucks in this game
Sentinel is a god tier
you can slap him or storm on any team and it immediately becomes a top tier team
@unr34L- Haha, yeah, she does alright in some of the crossovers but they are not her better showings overall.
I thought I knew what unfly was using context, but I literally had no idea.
Ironman unfly infinite was the reason I'm both scared and impressed by Ironman and war machine players as the infinite is hard to pull off, yet they manage to pull it off.
The number 15 makes me think that this is potentially an underflow glich of some kind. 4 bits can represent numbers from 0 to 15, and I would guess your air actions are supposed to be set to 0 from those reset scenarios, but for some reason it gets set to -1 or something and it rolls over to 15. That or it's set to max on purpose and the bug is that landing doesn't reset your air actions.
I was finally able to do fly/unfly after practicing for weeks. I played mvc2 when it first came out back in 2000 at Family Fun arcade. If I only knew this mechanic back then, I would've won more matches. Now that I'm older, doing this hurt my wrist and fingers haha. It is really tasking on your hands. Haven't stopped playing since and won't stop.
I had no idea unfly worked exactly like that! I knew some things about it, like that a lot of people said you needed to get hit to start unfly-ing. I didn't realize there were punch & kick stocks for it and that you could get unfly from a normal string. That is really cool, thanks for the info jmcrofts! Marvel 2 is just a sick game in general! :D
He's pretty unfly for a white guy.
Purple*
*70s band starts to fade in as Anderson .Paak ad libs in the background*
I see what you're doing, but the FGC agreed that Sentinel was black way back in the 2000s.
@@YouGuessIGuess i think that has more to do with the demographics of the fgc than anything else
I’m not super familiar with the roster, but the common variable between the moves that kill your unfly seems to be that they alter your movement or momentum in some way. Maybe something about the way those moves work checks or resets the memory where unfly lives.
Been playing the game for 20+ years, know a lot about unfly, still learned a lot. Awesome video!
AYOOOO WHY SENTINEL GOT A CAMEL TOE 😂 I CANT UNSEE IT NOW LOL
I’ve been playing MvC2 since E3 2001. Today I learned something new. Thank you.
"why does having this one value in memory allow you to do actions while you're in this unflying state?" prob because the devs at capcom wrote code that allows you to be actionable in a normally inactionable state if those memory values are non-zero
like, yeah, this is one helluva unintuitive set of mechanics, but there's not really anything _off_ happening here other than _maybe_ them forgetting to 0 out your unfly normals when you fly from the ground. when you jump, you get 1 normal before the recovery state of certain moves that keep you airborne become inactionable. if you air tech or get put into the air after some knockdowns, you get 14 of one and 15 of the other, or 6 and 7 if you're dhalsim with your weird long normals. seemingly pulling off a chain was supposed to refund your normal jump normal, but it looks like it's bugged and the air normal used consumes it. also, using a move that covers the space diagonally below you immediately removes your unfly normals, presumably because that is an _exceptionally_ good angle for an attack to cover
it's the sorta thing where it _does_ have some headscratching decisions put into it, but they very much feel like _decisions._ like it's jank and weird not because stuff is working in unexpected ways, but because everything is working exactly as it should and "exactly as it should" is according to some obscure and undocumented rules that probably could've used a second design pass or the like, but this _is_ a 2000s arcade game capcom made by dumping a bunch of assets they had lying around into a blender. you've covered plenty of the other design decisions made by the team that are just baffling in retrospect, and to me, this is clearly just another one to toss on the pile
yet, still. it's the way it is for the exact same reason that pressing light punch causes your character to do a light punch
Seems like an integer undeflow/wraparound like at some point its gets sets to 0 and they substract 1 by mistake. They probably did some bit fiddling assigning 4 bits to Punches and 4 to Kicks to make a byte -> 2^4 = 16 [0-15]. The original reason for the counters to limit air actions (thats why it only sets it to 1 on jump). A readup on the counters in memory would be good if it exists
I dont think so- my expectation would be that would have different unfly moves remaining depending on how many you had when you got hit if it was wrapping
@@nosenseofhumor1 I think it might be triggered by the "air soft knockdown" triggering two "reset" functions; it gets sets to 0 and somebody in another function did -1 "to make sure" assuming it always is 1.
This is all a supposition of course based on the fact that 15 is a very specific number! I might lookup this mod but I'm quite busy
THANK YOU!!! ive been trying to figure out what the hell unfly is for weeks lol
This was very cool and informative. There is so much jank in old games and I’ll never fully understand it so videos like this are very helpful.
I wish I can square up in real life with everyone who uses top tier on MVC2.
I just want you to know that in your original SF6 Ryu ranked placements video I was the marisa in the 1st set and me and my friends still say "classic shoto gameplay" to this day.
Honestly one of the more informative on the subject! Good work!
Very many ideas why this is the case. I guess unfly isn’t really a glitch, just an unintended interaction.
I chuckled when you dropped americas favorite DHC during that first match.
my best guess is infinite unfly was how flight worked at first, then they decided to limit it with the unfly punch and kick values. those are different because they wanted you to use a mix of punches and kicks in flight combos and stuff. and they tried different ways of increasing the unfly values like resetting to 15 when you transition to neutral state or adding when you jump.
but then they decided to make flight work like it does now without unfly, and an easy way to do it was to make those events set it to 0. but they forgot some of them (the ones that give unfly now), and since they never actually removed the unfly mechanic you can still use it when you get both values above 0.
Also, my understanding of unfly was *completely* different/limited in context. What I understood it to be was "an airblock reset," where during a soft knockdown from an airborne state or after a successful airblock, you could sweep the quarter-circle back, quickly tap the KK twice (to fly and then unfly), and regain your ability to airblock once you were put into a state where you normally couldn't, like after blocking on KO/drop-in.
This video honestly blew my mind. I've heard people talk about how weird unfly is in mvc2 - but i never realized why or bothered to look into it, assuming it was the same as unfly in mvc3. wow! lmaooooo this is melee levels of weird
Thank you for this video. Always wondered what the heck folks were talking about!
Wish you would have shown off more of what you can actually do with sentinel over that long stretch of weird ways to activate and deactivate unfly. Either way this video is LOOOONG over due. Didn’t really know what is was about this whole time playing for years but I know people always brought up UNFLY.
I bet they intended for the soft knockdowns to substract 1 air move instead of giving 15. If the UK and UP values are stored 4-bit variables, subtracting 1 from 0 gives 15 for each.
15 is the nibble integer value 1111- looks like a garbage collection error. It wouldn’t be unusual for a variable to be wiped to some control value when disposed, just like it would usually be initialized to 0000. So I’m guessing getting hit collects the “remaining moves” variable and runs its disposal method on the memory, but an active pointer is still attached to the memory because the character is in the air. So instead of null we see a remaining moves of 1111
Did that make sense?
Amazing, thanks JM!
This is knowledge I dont even think the Gods of the Game were privy too😳. JMCrofts casually just dropped a mega bomb for MVC2.......24 years later 🤯
What controller were you using on the chun li third strike challange? such satisfying sound
Is that why Charlie can do a double flash kick in the air? Or can he just do that organically?
Charlie has no flight mode.
@@gngan you dont need flight to have unfly, its merely a state.
My guess is that there's certain hits that they wanted you to no longer have air actions or something like that so they had a variable called airActions or something and the code says "subtract 1 from airActions" and when the value is at zero, that underflows, and if it was a 4-bit variable, the value range for that as an unsigned integer (only positive numbers) would range from 0-15.
so 0-1 makes it underflow to 15 and they probably intended to reset the value to 0 in certain situations (like hard knockdown) and missed adding code to reset it in the softer hits and air techs
it would also explain the dr. doom divekick. it would be less that it consumes 15 on use, but more that they probably didn't want you to be able to do another air move after the divekick, so they just force set that value to 0 rather than do a subtraction.
as for why dhalsim moves reduce the value by 2 each time...idk the thoughts i have here are just my expectations at a glance, this is my first time seeing the actual info behind it at all.
Amazing journalism
Always love the mvc2 vids
Saw the first couple of seconds of your video and thank the Lord you're talking about unfly I'm at the arcade right now but I promise you I'm going to study whatever you have to give on unfly and fly and all of that.
Two decades in the game and just hearing about this a couple of years ago and still don't understand it😅 so thanks brother👍🏽
dude I grew up playing the original arcade almost every day at a local arcade vs. some VERY high level players (the street fighter real life world tour came through town) and even I still dont understand fly/unfly. What drives me crazy is the lack of push block and rolls modern players dont do. In some cases it can make you vulnerable yes, but there are specials, if you push block you get frame advantage and an opening.
@@werewolf74 yeah I can see where your coming from but honestly We All can fall victim to the lack of that mechanic use but I'm glad you pointed it out because it is greatly underutilized
Might be one of the longest sentences I’ve ever read on TH-cam.
I'm only 5 minutes in and already wondering how hard it would be to avoid giving a sentinel unfly for the entire match, just to see if they notice the difference.
No the most mysterious mechanic is probably fly screen.
In Sentinel's case........I think REfly is way more effective than UNfly.
But for everyone else's case it's the opposite.
I wonder if there's other fighting games waiting to be busted open like mvc2 has, I can't understand how they found any of these mechanics in the first place
Really wish this was a dhalsim vid. Im still trying to figure out wtf OC.HP is. I know its called (offensive crouch high punch) going off what little info i got on it, i just notice people lauch with him without needing to chain lp first
All the girls say I'm pretty unfly for a robot guy.
hi crofts ur cool
Did not know you can reg jump with unfly. Can you reg jump fly unfly block?
They unfly now? They unfly now.
Anyone know the name of that arcade fighting game where it was scif-i with aliens and guys with chain saws and you could cut the other guy's arms off? Was in arcades around the same time as Samurai showdown.
Time killers?
@@Augmintt Awesome. That's the one thanks!
Im waiting for the JM raid shadow legends ad or some wild rift rip off game.
probably their way of reducing infinites and cheese?
Promo code dont work
Same😢
Good
best fighting game defensive characters please
Another glitch to the list 🤣🤣
lol when i was around 9 or 10 i had a 14-16 year old teach me how to fly i only played this in the arcade i love i'm able to play it now on my ps4 before now the last time i played mvc2 i was 14 at the arcade i suck now lol
Is it me or your MCOC code dont work?
How did he pick cable 3 times?
It’s possible to do that in training mode
In the original Marvel 2 console versions, If u want to pick 3 of the same character, you need to unlock all the alt colors of the game, now I dunno on that collection
Why does it always look like Khaos has infinite a pecka tha peck
Hmm
weird
MVC2 Most Mysterious Mechanic is how hot Felicia is.
THIS 😈😈😈😈😈😈😈🤑🤑🤑🤑🤑🤑🤑🗿🗿🗿🗿🗿
Found Shane Dawson’s burner account
especially with the dark skin costume
Yuck, furries
Cammy and Psylocke entered the chat
Real ones remember the original title of the video
Dang what was the original title lol
@@bebop306 Mvc2s most mysterious mechanic
@@bebop306 he changed it back
@@RigbyIsTheManwell what was the changed title then?
@@erhanjpg1467something along the lines of “why unfly is the least understood mechanic”
any one can fight a guy that don't punch back marvel should be ashamed to have ur name attached booooooo.
Never heard of this before 🤯🤯
Thank goodness for youtube. Gamefaq forum walk so that TH-cam tutorials could run