Superjump Install in Marvel Vs. Capcom 2:

Last updated April 20, 2019
(this will probably be updated with videos and pictures at some point)

Superjump install is a practical way to avoid guard breaks in MVC2. Normally when you come in, you are in normal jump mode. In MVC2, this means you can only block 1 consecutive blockstring without a gap. This is why you get guard broken. You also only can do 1 normal chain, or 1 special/super. On the other hand, superjump mode doesn't limit you like that, but normally you are stuck in normal jump mode on incoming.
An excellent detailed explanation of jump mechanics is here, provided by Joo.
Superjump install lets your character enter the screen in superjump mode after a snapout or a character dying, allowing you to block or sometimes even punish guard break attempts.

What's the basic way to set this up?

The simplest setup is:
Do a super with a tiger knee / instant air input so fast that you don't leave the ground. Then DHC to any super. For example with Cable, you can do D, DF, F, UF ~ PP (2369~PP for numpad notation fans), then DHC. You have to cancel the superjump startup to the super without leaving the ground. The window to do that cancel is roughly 3 frames with almost every character. If you've ever done Cable's instant air hyper viper beam too quickly and not left the ground, there's a good chance you did this glitch on accident.
Then, when the character comes back in, they will be in superjump state. Note: if you call that character's assist, they will lose superjump install. Your other assist is fine to call.

Does this only work with supers?

You can also do this with alpha counters and raw tags, more on this is below, but first some other explanation is required.

Does this work with every super?

No. It seems to not work with any of Commando's supers, Hail Storm, Megaman's drill super or Psylocke's punch super.
It has been confirmed to work with Lightning Storm, Ground Hyper Viper, Time Flip, Hyper Sentinel Force, Sentinel's ball super, Psylocke's butterflies, Ouroboros, Tempest, and Hyper Megaman.
Many characters and moves have still not been tested.
The super you DHC to does not matter though, only the leaving character's super matters.

How difficult is the input?

I have bad enough execution to where I chose to main Megaman instead of a top tier, and I can do it like 80% of the time on day 1 of finding it.

Why does this work?

The game keeps track of superjump mode separately for each character. Superjump mode gets turned off when you are at neutral on the ground or are normal jumping. Normally when you DHC from an air super, your character turns off superjump mode when they touch the ground before leaving.
When you superjump, the superjump mode gets activated before you actually leave the ground. Many animations do not turn off the superjump mode, so it's only when you go back to neutral it gets turned off. Or, as mentioned, when you touch the ground from a regular superjump DHC. So, if you are on the ground already when you DHC, you never "land", so you never lose superjump mode. If you can leave the screen while it is on, you keep it.
The one exception is if the character leaves by getting snapped, then that character's superjump mode gets turned off. This is also why calling the assist makes the character lose superjump mode.
However, this means that other animations other than supers can be superjump installed. Anything that cancels superjump startup without either explicitly setting you in normal jump mode or leaving the ground should work.

What if I superjump install into a special, then cancel that to a super?

Works, as long as the special or super isn't one of the ones that erases SJ install, or puts you airborne. Has been confirmed with disruptor into tempest, and hypergrav into tempest. Some specials erase SJ install.

So, raw tags?

Yes. First off, If you do it by D, U ~ tag, in that 3 frame window before you leave the ground, the leaving character will be superjump installed.
I found the input for this harder than for supers or specials.

Alpha counter?

Yes. In MVC2, like all the old generation non-CPS3 Capcom Fighters, if there is anything on the screen, and you press back, you will enter a preblock or proximity block animation. This animation cancels superjump startup and leaves you on the ground (this is why it seems hard to superjump when theres projectiles on the screen for example.). So if you input a backwards superjump with something on screen already, you will enter preblock. It's just a simple D, UB, and hold B.
Preblock can be superjump installed that way, and the superjump install carries over into regular blocking. So if you alpha counter from blocking after that, your leaving character will remain superjump installed. This is easiest to do against projectiles.
So the input is:
First, D,UB before you are in blockstun but there is an an enemy attack on the screen;
Second, block something by holding back;
Third, then alpha counter that blockstun.

Wait, what else does preblock carry SJ install into then?

So far, we've confirmed that this also works if you:
- SJ install preblock, then raw tag
- SJ install preblock, do normals, then cancel them to raw tag
- SJ install preblock, do normals, then super
- SJ install preblock, do normals, then special, then super
These are all pretty easy to do.

Wait, so if it works with preblock then normals, why doesn't it just work with normals?

It does not work for normals because you can't cancel superjump startup with normals. You need something that actually keeps you on the ground first.

How practical is this?

Very practical.
It's easy enough to input, especially with preblock. Not being able to call that character's assist is an annoying limitation, but some notable characters dont have good assists (Strider). Against a 5 bar cable I would often trade an assist to be safe against guard breaks. Historically, Fanatiq got top 8 at evo without an assist 1 button (one button dash cheating aside). Chris Matrix said he was already finding practical ways to work the SJ install DHC into combos.
Also, you can do the glitch anyway, then change your mind, it just gives you more choices.

How will this affect the game's strategy?

Bit of a mystery. Seems like it benefits some characters with subpar assists like Strider, Megaman, Spiral and Omega Red more than others. Assuming it works with Spiral and Omega Red, I'm not sure anyone has tested yet. It's not very useful for assist-only characters like Psylocke. It probably hurts Cable and Iron Man the most since they are the most reliant on guard breaks.
I suspect Magneto can benefit quite a bit from using it. There's many situations or matchups where you don't want disruptor assist much. He has a great starter special and super to do it with (hypergrav and tempest). Magneto also has a 2 frame air normal with j.LK so he will have an easier time pressing stuff after a blocked guard break attempt. Magneto loves doing guard breaks to other characters, but he doesn't rely on them to mix you up on incoming.
It might not shake the tier list up very much, because maybe God Tiers can use it the best? Nobody knows.
Funnily enough, Megaman has a 1 frame air light punch.

What systems has this been confirmed to work on?

DC and PS2 for sure, don't know if anyone has tried PS3 / 360. I assume it works there too.

What's with the name?

There's a history of tricks that carry over state from one animation to another being called an "install". The Guilty Gear series has had a similar technique called "jump install" for many years. The stored y-boost trick is based on the same principle and has already been referred to as "superjump install y-boost" sometimes. There is a full explanation of y-boost provided by Joo. The explanation of stored y-boost / superjump install y-boost is here in the same video at 3:31.

Does superjump install have any other properties?

If you SJ install Rogue's 236P punches special, and the last uppercut hits after she leaves the ground, it will cause flying screen despite being the ground version of the move. We haven't found anything else this works with, but there may be new combo routes.
Also, normally, Cammy has a not very relevant bug where she can't do the ground version of Cannon Drill into her QCB+PP (214PP) Maximum Cammy super twice in a row, or after doing a normal jump special. But if she superjump installs ground cannon drill, she can always do the super in that situation.

Might this glitch have some effect in other older Marvel games?

Maybe, I suspect that the mechanics should be similar, MVC2 is based on the same source code, dating back to SF2.

Any other open questions about this?

Not sure if you can carry SJ install over in animations you dont cancel: If you do a special on the first possible frame after a SJ install special, do you keep it on the 2nd special?

How did y'all find this? (warning: technical stuff)

I'm anotak. I've been working with Mountainmanjed to reverse engineer the game in general. Magnetro has been using a memory editor as well to understand the system better for combo videos. Between all of us, the notable tools we've used to gather the information to figure this out are:
- actual dreamcasts
- emulators like Mame, Demul, PCSX2RR and Retroarch with the Reicast core
- Cheat Engine's memory editor
- Mame's debugger
- Radare2
- a specialized disassembler and assembler I've written for the SH-4 (Dreamcast/Naomi main processor). the source code for this will be uploaded eventually.
- the excellent videos Preppy has recorded over the years
- Autohotkey
- programmable controllers

Chris Matrix linked me this video recorded by Preppy in 2007 (Here's a download link from Preppy's excellent website, if you don't like Youtube).
At 17:00, Justin Wong, as player 1 Storm, does the glitch by accident when DHCing out to Cyclops. When Justin's Cyclops and Sentinel dies, at 17:12, his Storm comes in and does jump attacks after blocking what would have been Sanford Kelly's guard break.
This video remained a mystery for 12 years.

I talked to Magnetro, he said he and Joo had tried several things with no luck. He gave detailed useful explanations of the things he had ruled out. At first we were focusing on Cyclops's super, or how he got hit.
So I had the thought that somehow Storm kept superjump mode from when she left. So I tracked down the superjump mode variable using some of these tools mentioned. It's a single byte located at the offset +0x1FC in the character memory structures. The value of it is 00 when normal jumping or at neutral on the ground, 01 on the way up from a superjump and 02 on the way down. As far as I can tell, the only difference between 01 and 02 is that some characters use a different sprite on the way down.
Using the memory editor, I noticed that if I set the number to 01 or 02, it stayed when the character comes in. But getting snapped out while superjumping set it to 0 when the snapped character touched the edge of the screen. DHCing from a superjump also set it to 0 when the character landed. For a while I was trying many different ways to do a superjumping air DHC, with no luck on keeping superjump state set to 01 or 02.
I noticed if I set it to 01 or 02 while Storm was standing on the ground, it immediately set back to 00. So for a while I was convinced that in the video, it had something to do with landing and doing it immediately on the ground, bypassing landing frames. I couldn't get that to work either. I still wonder if there's something to that though.
Then I tried to set the variable on in the memory editor while doing a ground lightning storm, and then did the DHC, and noticed it kept the variable. Suddenly I remembered an old Street Fighter 4 glitch/trick: if you do a special or super/ultra in that game by cancelling jump startup to it, the move gains some throw invincibility. Don't know if they patched that out by USF4 or anything, I had stopped playing it. Anyway, it gave me the idea that maybe the superjump state can get set on jump startup, and carry over, like cvs2's Roll Cancel glitch.
It was just a matter of executing it and looking at the memory editor to see if the number carried over. I got it on the second try. Then afterward I tested it, and I got storm to do j.HP twice in the same incoming, and knew I had success. I then tested a DHC setup with Hyper Megaman, using an Autohotkey script on P2 to do a snapout and try to guard break me. I managed to block it or do normals after airblocking.
I let others know what I had found at this point. Chris Matrix reported back that it was working for him with many other supers.
At some point I realized it didn't work after calling that character as an assist.
I had the idea to try raw tag, and then preblock into raw tag. Magnetro was the one that had the idea to do alpha counter out of that preblock into block. We sort of both came up with the thought of doing normals into it out of preblock.

I feel like over the years I've seen people do this by accident more than once but just nobody knew what happened. I'm not surprised it took decades to find it though, as the cause and effect are so distant from each other in time. The setup looks visually the same as a regular super dhc, alpha counter, or raw tag. And then you have to have not called assist, and then actively try to do something that you think is impossible (act after guard break). I bet more than once someone did it on accident and the other player just assumed they messed up the guard break. Without the memory editor I doubt I would've ever come close to figuring it out.

It's worth noting that the normal jump action limit is 3 different variables in the character memory structure:
- offset +0x1d4, 1 byte, is the super/special move limit. if you're normal jumping, and it's not 0, you can't do specials. Most specials set it to 1 if done when normal jumping, and it gets reset when you go through jump startup again. it also affects some character specific stuff like Ruby Heart's ball special/super. it's used to keep you from doing lightning attack more than once jump.
- offset +0x1d6, 1 byte, this is the limiter on normals. when you startup a normal jump, this gets set to 17. If it is less than 17, you cant do normals or block. When you do a chain ending in a kick, it subtracts 16 from it, and 1 if your chain ended in a punch. When you get air reset, it gets set to 255. this is the source of the notorious unfly glitch.
- offset +0x210, 1 byte. this is the cause of guard breaks. It's set to 00 when you start a jump, then 01 once you block something. Once it's set, you cant do normals or block during a normal jump. I had always assumed that it would be shared with the normal jumping action counter (the previous mentioned +0x1d6), but it isn't! It's difficult to tell, but the fact that this is a separate value makes me suspect that guard break was something that Capcom created on purpose. I can't figure out any other reason for it.


- Anotak: wrote this, found the actual way to do it but,
None of this would've been possible without:
- Magnetro: provided a ton of resources about the game on his website and youtube channel over the years. The stuff he told me he and Joo tested related to that video was very helpful for me. He also has been doing some memory viewing in order to learn about the engine. He's been very helpful in me and Jed's work on figuring out the game.
- Mountainmanjed: did so much work on figuring out this game's assembly code, and the character memory structure.
- Joo: created tons of resources and videos about the game. As well as the already-mentioned stuff with Magnetro.
- Chris Matrix: showing me the video, doing more testing on supers.
- Preppy: The video of Justin doing the glitch on accident wouldn't exist without him. He traveled to like every tournament, recorded so much footage in an era before Youtube or Twitch, or big sponsorship money. He uploaded it to his website for all to see. The fighting game community owes him a huge debt.

- Other Thanks:
Insanius, Dantarion, Paxtez, Labryz and others who contributed with the recent general effort to figure out the code and data behind MVC2. Also Eidrian, Mike Z, SupaBuu, Stiltman, and Skitz for previous research into the game's data files or mechanics.