The fourth installment of the hitbox series covers the five Marvel games on CPS-2: X-Men Children of the Atom, Marvel Super Heroes, X-Men vs. Street Fighter, Marvel Super Heroes vs. Street Fighter, and the first Marvel vs. Capcom.
In the Marvel games there can be up to two hitting boxes and four hittable boxes for a single animation frame, one more of each than available in previous games. It’s not common for all four blue boxes to be used at once, but many attacks have two red boxes. Usually they serve to smooth out the attack area but some attacks hit in opposite directions at once.
The vulnerability area of hovery characters bobs up and down along with the sprites during their idle animations. The extra height can make them more prone to jump-ins, but they always drift down before up when idling. (Ironically, the drifting doesn’t happen during flight mode.) Very low attacks miss COTA Storm at the highest point of her idling.
In COTA, reeling characters had animation-specific hitboxes, like in SF2. After that, their vulnerability during reeling is the same as their idle animation, except for tall characters like Magneto and Juggernaut.
Psylocke seems to be the only one in COTA, and possibly the whole series, with hitboxes that follow the dizzy animation.
Wolverine’s pushbox doesn’t go very low during his slide, and it doesn’t get very high up during Drill Claw. After COTA, these moves won’t pass each other although the sprites appear to miss. It’s shown here in MSH.
Likewise, Dhalsim’s pushbox doesn’t get off the ground during his dash and he can’t be slid under, as shown in XSF.
Tag-in attacks have better hitboxes than the regular attacks that they resemble. At left is MvC Captain Commando’s tag-in kick opposite his jumpback roundhouse.
COTA Sentinel had some moves that didn’t make it into MvC2. Shown here is the the j.HK (left) and sj.D+HP dive
COTA Iceman with Ice Fist has increased range on his punches. Less obviously, they also get extra active frames.
COTA Storm has invincibility in some strange situations: during flight startup and while dashing.
Gem activation in MSH hits nearby for one or two frames and gets several invincible frames before and after. It takes a move with good startup invincibility, like Spider Man’s Spider Sting, to beat it.
MSH Blackheart with Reality gem is invisible but still vulnerable as normal. Captain America with Power gem is invincible for all the rising parts (but not the falling parts) of the powered-up Stars and Stripes.
MvC Jin’s Dynamite looks like it hits in all directions but it misses the back area. His extended taunt only hits where the flame is, but an opponent with fat hitboxes can lean into it.
MvC Venom Web takes up the whole screen.
Two more kinds of boxes are revealed if you press Lua hotkey 5. If the yellow box touches the opponent’s white box, you can perform a normal ground or air throw. The red boxes only hit blue boxes and yellow boxes only interact with white boxes. While yellow attacks are always unblockable throws, red attacks are generally blockable except for a few like Shuma-Gorath’s Chaos Dimension grab and Magneto’s Hyper Grav.
In XSF and later, for some characters, your throw range during a normal jump (left) is more in front, and during a super jump (right) it’s more below.
XSF Zangief’s Final Atomic Buster beats Juggernaut Headcrush.
Rogue’s stolen SPD has less range than Zangief’s. On the other hand, her Raging Demon is better than Akuma’s.
COTA Colossus’s OTG grab (D+MP) works as a throw. As you can see, this is the maximum range against a fallen Omega Red. The OTG grabs of Juggernaut and Sentinel work the same way.
During MSF Hulk’s forward dash, his throw vulnerability is grossly elongated vertically. Since he is still on the ground he cannot be grabbed by air throws, but Zangief’s air SPD is an exception.
Even though MSF Dan’s yellow box is way forward during Otoko Michi, it gets outgrabbed by Norimaro’s grab super because Dan’s blue box is exposed.
MvC special partners are projectiles and have hittable blue boxes like any other projectile. The same goes for CapCom’s fighters and Strider’s robot pets.
A projectile doesn’t have to have a vulnerability box to be negated, as long as its attack box hits another projectile’s blue box. For example, Spider Man’s Web Ball has a blue box but Web Throw doesn’t. Therefore, WB-WB and WB-WT negations are possible, but two Web Throw strings pass through one another. Quite a lot of projectiles have no vulnerability, including MSH Blackheart’s Heart of Darkness and Dr. Doom’s Molecular Shield.
Marvel introduced beams, a special kind of projectile attack. There are two types.
Some beams send a stream of projectile objects gushing from the source like a fire hose. It’s not just a large number of independent projectiles because there’s a limit to how many of them can hit, and throwing opposing projectiles against the beam reduces the number of hits. COTA Cyclops’s LP Optic Blast and Iceman’s MP Ice Beam can fully negate each other in this way.
The other kind of beam has attack boxes strewn along the length of the beam that don’t actually move. Anything in the path of the beam gets hit, even if another target is in front. The number of hits does not decrease if an opposing projectile is negated, and may increase if the target has a wide vulnerability area.
Some beams of this type have vulnerability boxes (Ryu Shinkuu Hadoukens, post-COTA Cyclops beams) while others don’t (Iron Man/War Machine beams, Morrigan Soul Eraser). It doesn’t seem to make any effective difference, and in any case they can’t be negated without one or both players getting hurt.
Cyclops’s Super Optic Blast (the aimable one) is a beam of the first type but after COTA the boxes come out so fast that it’s tricky to negate it without someone getting hit, moreso when you have two of them, as shown here in MSF. (Strangely enough if you try two at once in XSF the first one disappears. See Maj’s gallery for more on Optic Blasts.)
The big blue box in front of XSF Bison’s Psycho Crusher negates any non-beam projectiles, such as the Gambit’s Royal Flush. The box was taken away in MSF.
But boxes don’t tell the whole story. There’s nothing to indicate that Captain America should be invincible to projectiles during Hyper Charging Star (also in MvC2), or that Megaman should be invincible to everything during Rush Drill. They still get hit, but don’t get hurt.
Some selected version changes:
Wolverine’s Tornado Claw (which lost startup invulnerability) and Hulk’s Gamma Crush in MSH and MSF.
The shoto Hurricane Kicks, both ground and air, could hit on both the front and back swing in XSF. In MSF they can only hit in front. The recovery on Chun-Li’s Senretsu Kyaku also lost its invulnerability, though that was changed in the last (961023) version of XSF.
In every game after COTA, guard-canceling counters can be performed at the cost of a super stock. Counters in MSH and XSF grant invincible active frames even when the moves they look like don’t. However, in MSF and MvC you only get a few frames, so it’s not always safe, especially if you countered a projectile.
Charlie/Shadow and Zangief/Mech Zangief perform simultaneous Variable Counters in XSF and MSF, showing the loss of invincibility. Notice how Somersault Shell has both projectile and direct hitting components.
The Force Field of COTA and MSH Magneto removes his vulnerability and replaces it with that of the shield. The blue area also effectively serves as a pushbox. Not even a long reaching attack like Juggernaut’s girder can hit him.
On the other hand the Force Field in XSF (and the LK version in MvC2) is a catch counter with a large, brief hit area. It doesn’t break super armor though, so Magneto still eats the Juggernaut Punch.
The hitboxes in Marvel are a little different from the other CPS-2 games. Besides the additional red and blue box and the white box, the throw range is actually one of the attack boxes but with a certain bit set that makes it unblockable. All attack and hit computations are handled by these boxes. In the non-Marvel games, throw ranges were usually hardcoded into the game’s program, which makes it hard to show them with boxes.
The pushboxes don’t have single byte IDs like the others, but depend directly on the character and the stance. Furthermore, the location of the pushbox data is not indicated by a pointer but is hardcoded. Fortunately it’s the same for all characters, though it differs between game revisions. For example, the 980112 and 980123 versions of MvC have different pushbox bases. This had to be checked for every ROM version. Similarly, there’s no one pair of memory addresses that say where the camera position is. They depend on the stage. So that had to be determined for every stage in every game.
The projectiles are also different because there’s nothing in their memory space to indicate whether they are active. Instead, the script refers to a list of pointers, one for each player, to tell which projectiles to draw. This was a setback at first when I didn’t know what to do but it’s actually a little more efficient this way.
Many thanks to felineki for the initial research on MSF, and to Battousai, error1 and Maj for ideas and feedback, and to Xenozip for his demo videos: