Capcom and SNK spent years teaching us to expect the impossible matchup. Marvel vs. Capcom crossed comics and Street Fighter. Capcom vs. SNK crossed companies. SNK then reversed the billing with SVC Chaos and rebuilt Capcom characters for Neo Geo. But that branch ended after one game, leaving its beautiful version of Zero stranded on SNK hardware.
This experiment finishes the trip the companies never made: SVC Zero now occupies Mega Man's slot in CPS-2 Marvel vs. Capcom. Highlight Mega Man, enter the match, and the HUD says ZERO—with a new portrait—while an expanded Zero body vocabulary runs through movement, normals, specials, and three super presentations.
That sentence needs one load-bearing qualifier. The imported body animations are Zero's; the mechanics are still Mega Man's. His command recognizer, collision boxes, damage, helper objects, effects, meter rules, and audio remain beneath the replacement. This is a deep ROM-resident animation and identity bridge, not yet a native SVC combat transplant.
Blueprint: define the rooms before moving any bytes
A character is not one blob. It is a small house of connected systems: identity, art, animation, controls, movement, collision, combat, effects, audio, capacity, and proof. Calling the body sprite “the port” is like calling framed lumber a finished home.
The blueprint below prevents that category error. Blue means translated presentation, gold means a working donor system underneath, cyan means verified identity, and gray is unfinished native work.
Exhibit 1
Every mapped route draws Zero; every combat route still resolves through Mega Man
Status by layer in the current CPS-2 build. ‘Donor’ is functional behavior, not missing behavior.
| route | body animation | commands + state | collision + damage | effects + sound |
|---|---|---|---|---|
| idle + movement | bridged | donorMega Man state machine | donor | donor |
| 10 normal routes | bridged | donor | donor | donor |
| 2 special routes | bridged | donor | donor | donor |
| 3 hyper routes | bridged39 unique Zero source frames | donorall three inputs execute | donor | donor |
| HUD identity | verifiedZERO banner + portrait | pending | pending | pending |
So, are normals and supers functional? Yes at the donor-mechanics layer. The inputs reach real MvC attack and hyper states, collision and damage occur, meter is consumed, effects spawn, and the round continues. No at the native-Zero layer. Spiral Shot does not yet run SVC's projectile logic, and Ultimate Saber does not yet carry SVC's exact boxes, damage, meter cost, or cancel rules. The article will not blur those two answers.
Foundation: prove the source and size the lot
The source archives are treated as evidence before they are treated as material. The supplied SVC set contains 13 cartridge files and 88.5 MiB unpacked; the Neo Geo BIOS is verified separately and excluded from character payload comparisons. Stock MvC totals 44.25 MiB. The expanded target makes 85.25 MiB addressable across program, graphics, samples, and sound CPU data.
Exhibit 2
Expansion closes 41 MiB of the capacity gap, mostly by matching graphics and samples
Uncompressed addressable payload by role, MiB. Totals describe room, not compatibility.
- SVC Chaos / Neo Geo88.50 MiB6416
- MvC / stock CPS-244.25 MiB328
- MvC / expanded target85.25 MiB+41.0 vs stock6416
Exhibit 3
The expanded target reaches SVC's graphics and sample scale, but not its program/data ceiling
X = graphics MiB; Y = 68000 program/data MiB; bubble = sample MiB.
The visualization grammar comes from reviewing McKinsey's UK FDI analysis and global FDI report: numbered exhibits, a takeaway as the title, direct labels, muted context, one highlighted comparison, and the methodology under the marks. The colors and components remain this site's own.
Framing: make Zero the right shape and color
Neo Geo and CPS-2 both targeted 4:3 cabinets, but their source rasters are not the same width. SVC art is authored against a 320×224 raster; MvC uses 384×224. Copying pixels one-for-one makes Zero look five-sixths too narrow. The converter expands X by 6:5, never Y, with nearest-neighbor sampling so the source pixel edges survive.
The first build also gave Zero the wrong palette. Two causes overlapped: forcing fighter $20
after selection could leave another character's live palette in RAM, and Mega Man has identical
palette copies in alternate tables. The final path enters through the real Mega Man cursor and
replaces every exact copy of the six body palettes. Readback verifies 17 patched palette sites.
Exhibit 4
The super pass expanded Zero's visual vocabulary by 49% and the tile payload by 57%
Before/after measurements from the same builder and source sheet.
- unique imported frames+39 / +48.8%first bridge80with supers119
- unique CPS-2 tiles+1,190 / +56.9%first bridge2,093with supers3,283
- source action families+3 / +17.6%first bridge17mapped now20
Wiring: grow animation instead of squeezing it into the donor
The SF3 Ken work showed why a donor must be scaffolding, not a cage. Fifteen Ken actions require 323 source records where Gambit's donor chains provide 104—a 3.1× mismatch. Jump alone is 51 source frames against two donor records. Replacing only art would throw away the source timing and poses.
Zero uses the same expansion principle. Sprite lists begin in the new program/data window and the authored animation chains follow in a separate region. Thirty donor entry points now redirect into those longer chains: 17 base routes plus 13 internal hyper subchains.
- 1stock program ROM — full$00000000–$003FFFFF · 4.00 MB4 MiB
- 2imported sprite lists$00500000–$0055FFFF · 384.0 KBZero lists begin at $500000
- 3expanded animation/data$00560000–$005FFFFF · 640.0 KB30 chain redirects
- 4object RAM$00708000–$0070FFFF · 32.0 KB
- 5video RAM$00900000–$0092FFFF · 192.0 KB
- 6work RAM$00FF0000–$00FFFFFF · 64.0 KB
- Anew flat read/fetch window$00500000 · marker
Exhibit 5
Supers now account for one-third of Zero's 119-frame imported vocabulary
Unique source frames used by the current mapped routes.
- Zero / current CPS-2 bridge119 frames292639
Plumbing: commands, hits, meter, and the truth about the supers
The recorder fills Mega Man's real meter, enters authentic MvC motions, and lets the game advance its normal state machine. The three pairings are a presentation crosswalk, not a claim that the games share move logic:
| MvC donor route that executes | Zero body vocabulary presented | What is verified |
|---|---|---|
| Hyper Mega Man | Spiral Shot | command, meter, donor state, effects, expanded Zero subchains |
| Rush Drill | Ultimate Saber | command, meter, donor state, contact rules, expanded Zero subchains |
| Beat Plane | Cyber Elf Force | command, meter, donor state, movement/effects, expanded Zero subchains |
All standing and crouching normals are mapped the same way: imported Zero poses sit over working Mega Man hit logic. This makes the build playable and testable while keeping the remaining native logic work visible.
The user-facing question—does SVC Zero hit harder than MvC Mega Man, SF3 Ken, MvC2 Cable, Dark Sakura, or Shuma—is exactly the right question. A raw damage byte is not the answer: life maxima, combo scaling, chip rules, hitstop, stun, screen width, and meter economies differ. The coverage matrix marks those systems as donor because a normalized, pinned cross-game harness has not yet produced source-Zero combat measurements. A polished guess would be worse than an explicit gap.
The future comparison contract is already fixed: isolated hit, full-life reset, same spacing, damage as percent of full life, motion as screen-widths per second, hitstop in frames and milliseconds, and provenance attached to every mark. That is when the damage and defense charts become evidence rather than decoration.
Finish work: ZERO belongs on the HUD

The banner reuses Capcom's own alphabet instead of approximating it: Z from Zangief, E and R from Captain America, O from Morrigan. Two light tiles and two dark tiles cover the point and assist states. Zero's cropped SVC face becomes four CPS-2 portrait tiles. The builder reads all eight written tiles back, checks both name-record aliases, decrypts the portrait table again, and fails if any path differs.




Inspection: compare this build with the other imports
Same-board ports are not the same problem as cross-hardware ports. Dark Sakura and Shuma could reuse CPS-2 conventions. Cable crossed from Dreamcast/NAOMI PowerVR data. Ken crossed from CPS-3 character RAM and 8bpp art. Zero crosses both company and hardware presentation grammars while the engine underneath still has to be replaced deliberately.
- Zero current mapped body3,283CPS-2 tiles
119 unique frames; supers included
- all stock free tiles5,649CPS-2 tiles
fragmented; no one bank held the full pool
- Dark Sakura9,520CPS-2 tiles
- Shuma-Gorath11,587CPS-2 tiles
- Cable seated codes14,095CPS-2 tiles
Punch list: what remains before calling Zero native
- Replace Mega Man's command and state dispatch with Zero's complete SVC move vocabulary.
- Translate boxes, damage, guard, hitstop, stun, cancels, meter, projectiles, and child objects.
- Allocate Zero-native QSound cues and verify them without aliasing a stock fighter.
- Finish select, versus, continue, win, alternate-palette, and side/facing identity surfaces.
- Run the normalized comparison battery against MvC controls, Ken, Cable, Sakura, and Shuma.
- Merge the isolated bank allocation into the shared roster ledger and regress every stock path.
The foundation, frame, wiring, and visible finish now stand. The plumbing is functional because Mega Man still supplies it; the next construction phase replaces those pipes one system at a time. That boundary is not a footnote. It is the most interesting part of discovering what a fighting game character actually is when the same person has to live in another arcade architecture.