X-MEN: CHILDREN OF THE ATOM · XCOTA TAG V5.6

X-Men.
Two on two.

Pick a partner. Tag into a combo. Bring both fighters on screen for Cross Over Fever.

V5.6 repairs Gambit’s crouching combos and low attacks, blocking against Rogue’s normals, Special’s Marrow meter-aura reset and Gambit KO cue. Choose the 13-fighter two-player edition or the 17-fighter RetroArch Special, with the original arcade menu intact.

V5.6 available Source-only builders

Actual XCOTA TAG V5 Special Duo with Gambit, Sabretooth and Marrow, native team HUD and original-game shadows.
Special Edition · actual four-fighter Duo, after the cut-in
13Fightcade fighters
17Special fighters
2editions
4Special players

01 / WHAT'S NEW

The arcade X-Men,
with more company.

THE ROSTER

More X-Men. Same arcade screen.

V5.6 repairs Gambit’s crouching-kick chain and low attacks. Special also repairs blocking against Rogue’s ordinary normals, the reproduced Marrow meter-aura reset and Gambit’s genuine KO cue. The tested V5.5 chains, cancels, dash and post-throw recovery carry forward. Both rosters keep their existing portraits, body previews and white frames.

The native 17-character Special menu, with Sabretooth's complete face and body preview.
Special Edition · actual Sabretooth character selection

ORIGINAL GAME ART

Their sprites. Their shadows.

The new fighters use art from their original games. Gambit, Rogue and Sabretooth have their original floor-shadow shapes; Marrow uses MVC2's soft shadow texture. The builders read these assets from your clean game files, then adapt them to XCOTA's engine.

Two Gambit costumes in the Fightcade build with original MVC1 floor-shadow art and measured source gray.
Fightcade Edition · Gambit's original MVC1 shadow

FROM FIGHT TO RESULT

A team HUD that follows the team.

Point and partner portraits follow the active fighters and their colors, including duplicate picks. Health bars stay visible through the winner, PERFECT and result sequence. The separate victory portrait screen clears the fight HUD.

A native PERFECT result with two Gambit costumes, matching source portraits and retained health bars.
Special Edition · duplicate Gambit result, with health bars retained

STAGES AND DIFFICULTY

Choose the stage. Earn the next opening.

V5.6 keeps Harder as the default and retains its CPU policy. Clearer outlined labels keep stage and difficulty choices readable on the original arcade menu. Its CPU policy uses delayed visible position and pose, legal attacks and earned meter with ordinary damage. Normal keeps the native brain. External testers will judge the difficulty target.

XCOTA TAG V5 match setup with stage selection and Normal or Harder difficulty.
V5.3 Special · actual stage and difficulty selection

02 / TEAM ACTIONS

Three chords. A different fight.

Two fighters a side. Your benched partner heals. Lose both fighters and the match is over.

01

Tag

MP + HK

Your partner flies in. Connected normals and specials can cancel into the tag.

02

Cross Over Fever

QCB + MP + HK

At Level Max, call both fighters in until TIME runs out. Special gives each fighter its own pad.

03

Combo Breaker

LK + MP

Spend one bar to stop a combo with a safe tech hop. Use only these two attack buttons.

QCF + MP + HK calls a team super only when both partners are among the ten original characters. Gambit, Rogue, Sabretooth, Marrow and bosses use their individual supers and Duo. The breaker is refused against a tracked X-Power.

03 / CHOOSE YOUR EDITION

Same team idea.
Two ways to play.

The four-player mode builds on the original XCOTA 4P work. V5 keeps the two-player edition within the stock core.

FIGHTCADE · TWO PLAYERS

Fightcade Edition

13 fighters. Two fighters per side.

  • Gambit replaces Akuma. Juggernaut and Magneto are selectable.
  • Uses the stock Fightcade-compatible core and ROM limits.
  • The final two-player ROM has been tested in MAME.
Builder inputsXCOTA + MVC1

X-Men: Children of the Atom and Marvel vs. Capcom.

Select two separate clean game ZIPs and drag them onto the builder together. Order does not matter.

XCOTA: Euro 950331. MVC1: Euro 980123.

Current download & setup

RETROARCH · FOUR PLAYERS

Special Edition

17 fighters. One pad per X-Man.

  • Gambit, Rogue, Sabretooth and Marrow join the native roster; Akuma stays.
  • Ports 1 + 3 are one team; ports 2 + 4 are the other.
  • The dedicated Special core travels with its builder.
Builder inputsXCOTA + MVC1 + XMvsSF + MVC2

X-Men: Children of the Atom, Marvel vs. Capcom, X-Men vs. Street Fighter and Marvel vs. Capcom 2.

Select four separate clean game ZIPs and drag them onto the builder together. Order does not matter.

XCOTA: Euro 950331. MVC1: Euro 980123. XMvsSF: Euro 961004, USA 961023 or Japan 961023 (xvsj.03k/xvsj.04k for Japan). MVC2: Naomi Export/Korea Rev A cartridge, with epr-23085a.ic11. Split XMvsSF clones need their clean parent for shared files.

Current download & setup

04 / DOWNLOAD & INSTALL

Build XCOTA TAG V5.6.

Download the builder for your edition. It reads your clean original games and creates a separate patched ROM.

FIGHTCADE / MAME · TWO PLAYERS

Drag both clean games together.

Get the V5.6 Windows installer

xcota-tag-v5.6-two-player.zip · 1.8 MB

  1. 1

    Extract xcota-tag-v5.6-two-player.zip into its own writable folder.

  2. 2

    Drag both clean game ZIPs together onto BUILD XCOTA V5.6.cmd.

  3. 3

    Load output/xmcota.zip with the existing XCOTA driver; MAME also needs the clean qsound_hle.zip BIOS in its ROM search path.

The builder checks both original ZIPs and leaves them untouched. Keep the generated name xmcota.zip. MAME also needs your clean qsound_hle.zip in its ROM search path; the builder does not distribute that BIOS.

Checksums & download history ↗

RETROARCH · FOUR PLAYERS

One download for four players.

Get the V5.6 RetroArch pack

xcota-tag-v5.6-retroarch.zip · 36 MB

  1. 1

    Download the corrected Special bundle and extract the entire ZIP into a new writable folder.

  2. 2

    Keep your four clean game ZIPs zipped. Select all four and drag them together onto BUILD V5.6 SPECIAL.cmd, in any order. After the build, find output/xmcotas4p.zip inside the builder folder.

  3. 3

    Run PLAY V5.6 SPECIAL.cmd. If needed, drag retroarch.exe onto that PLAY command. Use the included core; bind ports 1+3 versus 2+4.

Use the included XCOTA TAG core. HP + HK joins; there are no Start or Coin buttons. Keep the generated name xmcotas4p.zip.

Checksums & download history ↗
Your originals supply the art.

The source-only installers check the clean ZIPs, create a separate patched game and leave the inputs untouched. No game ROMs or keys are distributed. Fightcade needs two source games; Special needs all four listed above.

Extract the whole builder into a fresh folder.

Keep its README, sources and subfolders together. An older Special download rejected README.txt because its instructions changed after sealing; the corrected package seals the finished files. Re-download and extract the complete corrected bundle if that message appears, rather than mixing files from different versions.

Select the individual game ZIPs and drag them together. Special needs all four: XCOTA, MVC1, XMvsSF and MVC2. The current builder also reads one outer download ZIP containing the game ZIPs and wrapped game folders, with small desktop metadata ignored. Keep each game's ROM members and key together; supply the individual games rather than a complete ROM collection.

xmcota.zip and xmcota.key are the usual game names. “XCOTA” is the project's short label; you do not need to rename the clean game to xcota.zip. The builder checks the contents rather than the ZIP filename. A key file on its own cannot replace the complete clean game.

05 / CURRENT BUILD

V5.6 is available.

V5.6 repairs Gambit’s crouching chain and low attacks, blocking against Rogue’s ordinary normals, the reproduced Marrow Stinger meter-aura reset and Gambit’s genuine KO cue in Special. Tested V5.5 routes carry forward; keep Special with its matching core. Original menu art and Harder are retained. The unidentified original Marrow/Omega audio/invisibility report remains open.

  • In game: all 17 Special menu choices, source art and framed portraits.
  • In the downloads: source-only Windows-compatible builders and matching Special cores.

The original four-player testing carries forward. The final two-player ROM is checked in MAME. The 109 selected V5.5 gameplay checks carry forward alongside the new guard, aura and KO checks. The unidentified original Marrow/Omega audio/invisibility sequence remains open; complete donor-character parity is still unfinished.

Setup questions

Two-player edition

The V5 builder says a ROM is missing despite dragging both ZIPs.

Extract V5.6 into a fresh folder, then drag both clean game ZIPs together onto its BUILD command.

"must contain flat ROM members or one common folder prefix"

Extract the complete V5.6 package into a fresh folder. It reads the authenticated Euro parent from merged XCOTA/MVC1 archives and supports wrapped folders and small desktop metadata. Drag the individual game ZIPs together; no repacking is needed.

MAME: "Required ROM/disk images for the selected system are missing or incorrect"

Keep the clean qsound_hle.zip BIOS in MAME’s ROM search path with the generated xmcota.zip. A missing dl-1425.bin is a BIOS failure; the supplied local launcher includes both search folders.

FBNeo or Fightcade has controls for P1 and P2 only

For four players, use the RetroArch download in the next section.

It plays like the 1994 game: MP+HK doesn't tag

Back up the original, then put the patched file in the emulator's ROMs folder under the name xmcota.zip.

Online in Fightcade, your opponent sees the original game

Both players need it: each patches a clean xmcota.zip and puts the result in Fightcade's ROMs folder as xmcota.zip.

The builder refuses your ZIPs

Drop clean XCOTA Euro950331 and MVC1 Euro980123 together. Use the exact source sets named by this edition; the refusal identifies the mismatched member.

Your ROMs came from Fighting Collection or another revision

Use the exact clean source sets listed with the V5 builder. A different filename does not change the ROM revision.

Special Edition

Package source differs: README.txt

Download the complete corrected Special bundle and extract it into a fresh folder. Keep its README, sources, core and launcher together; do not edit the README or disable verification.

Content/core mismatch

Rebuild from the complete V5.6 bundle and load its included expanded core with output/xmcotas4p.zip. Keep the game and core from the same download; remove ROM-data overrides for this game.

"must contain flat ROM members or one common folder prefix"

Extract the complete V5.6 package into a fresh folder. It reads the authenticated Euro parent from merged XCOTA/MVC1 archives and supports wrapped folders and small desktop metadata. Drag the individual game ZIPs together; no repacking is needed.

ROM member is too large: xmcota.zip.

Use V5.6, which accepts a bounded container holding the individual game ZIPs. Keep each game ZIP intact.

Romset is unknown

Use the Special Edition core and its generated xmcotas4p.zip. Keep the generated filename.

The title bar says FB Alpha 2012 or has no XCOTA TAG Special Edition label

Select the dedicated Special core included with this release.

Port 3 and Port 4 controls are missing

Load xmcotas4p.zip with the Special Edition core, then bind four RetroPad ports.

One player's controller moves nobody

Assign a separate device to each RetroPad port; P1/P3 form one team and P2/P4 the other.

RetroArch lists xcota-tag-v5-retroarch.zip rather than the game

Extract the bundle, build from all four clean source ZIPs, then load the generated xmcotas4p.zip.

The launcher says the builder did not make xmcotas4p.zip

Drop clean XCOTA, MVC1, XMvsSF and MVC2 Naomi ZIPs together in any order. The refusal identifies the missing role or mismatched member.

The Special core is FinalBurn Neo (xcota subset) (XCOTA TAG Special Edition). A stock FinalBurn Neo or FB Alpha core does not replace it.

Watch the earlier V4 demonstration
XCOTA TAG v4YouTube ↗

Historical V4 demonstration, three minutes with chapters. It shows the earlier build and earlier controls. Use the V5 controls below; this video does not verify the V5 release. Music: Alpha Rivals (Trailer Mix) by morphus56k.

Development notes & earlier release history

V5.6 crouching combos, guard and reset repairs

Gambit’s crouching LK, MK and HK are now low attacks in both editions. Standing back takes the hit; down-back blocks it. The correction preserves the attack’s damage values, animation timing and hitstun properties.

The tested crouching LK→MK→HK chain now connects for three. Its medium kick uses XCOTA’s native recoil value that matches the measured MVC1 ground travel. The native game handles recovery and combo scaling. This adapts the source’s pushback to XCOTA; it does not copy MVC1’s entire per-frame trajectory.

Special repairs blocking against Rogue’s ordinary active normals. The same held-back inputs that previously took damage now reach native guard, retain health and award blocked-contact meter. Neutral inputs still take the hit, and whiffs award no contact meter. Source attack boxes and ownership checks still decide whether an attack is a real threat.

The reproduced Marrow Stinger reset against Omega Red on The Deep came from an uninitialized native meter aura reusing an old effect slot. Rogue, Sabretooth and Marrow now initialize their real XCOTA meter auras. The failing Marrow replay uses the same 1,647 input frames and continues through Stinger contact, effect retirement and normal recovery. Mirrored tag, naturally earned paid-Duo expiry and KO-to-partner checks cover the selected aura lifetimes. The original unidentified Marrow/Omega audio/invisibility report remains open.

Gambit’s genuine KO in Special now plays the stored MVC1 KO cue once on either side. Healthy tag and replacement arrivals do not add that cue. This does not establish complete imported voice or effect parity.

The tested V5.5 chains, legal buffered cancels, air and landing routes, Special dash, post-throw guard recovery and partner ownership are retained. Harder keeps the existing CPU policy and damage rules; external testers judge its difficulty. The character-select artwork, layout and white frames are intact.

The finite gameplay record, player build record and Windows compilation record separate real gameplay, clean-source conversion and generated Windows fixtures. Windows gameplay, physical four-controller sessions, online play and complete donor-character parity remain outside this finite acceptance.

Build and play V5.6

  1. Extract the whole matching builder into a new writable folder. Keep its README, sources, cores and subfolders together; do not overlay an older pack.
  2. Keep your clean game ZIPs intact. Two-player needs XCOTA Euro 950331 and MVC1 Euro 980123. Special needs those two plus XMvsSF Euro 961004, USA 961023 or Japan 961023, and MVC2 Naomi Export/Korea Rev A. A split XMvsSF clone also needs its clean parent for shared members.
  3. Select the required ZIPs together, in any order, and drop them onto BUILD XCOTA V5.6.cmd or BUILD V5.6 SPECIAL.cmd. Windows PowerShell 5.1 and inbox .NET are sufficient. Your clean ZIPs remain unchanged.
  4. Two-player creates output/xmcota.zip for the existing XCOTA driver. MAME also needs your clean qsound_hle.zip in its ROM search path. Special creates output/xmcotas4p.zip: use PLAY V5.6 SPECIAL.cmd or load it with this bundle’s matching expanded core. Bind 1/3 against 2/4.

Merged Euro parents, wrapped folders and a bounded outer ZIP holding the individual game ZIPs remain supported. Keep each game’s members and key inside its ZIP. If “Package source differs” appears, extract the whole current bundle again into a fresh folder. A “Content/core mismatch” means Special’s ROM and core do not belong together; rebuild from one complete matching bundle.

Retained V5.5 current-roster repair

The sections below record earlier releases. For today’s downloads, follow Build and play V5.6 above. Archived builders remain in the two-player history and Special history; use each archive’s matching commands.

V5.5 repairs the current fighters and keeps the original character-select artwork and layout. Gambit's tested close LP→MP→HP chain connects for three hits, and LP→LK→MP→MK→HP connects for five, in both editions and on both sides. The update preserves the existing crouching-HP launch into down→up and air LP→MP, including the tested descent, landing and subsequent control.

Motions entered during Gambit's hit pause now wait for his legal cancel point. The current attack keeps its animation and hit pause until the new move can commit; damage, hitstun and meter rules are retained. The card and staff routes have separate checks. A card that hits after the earlier combo ends is recorded as a follow-up, rather than counted as one continuous combo.

Special also repairs Gambit's forward dash freeze. Its source hop animation now advances through recovery and subsequent walking, attacks and jumping. The paid-partner checks continue through actual Duo expiry and control returning to the active fighter. The two-player edition's existing dash remains intact.

Marrow and Sabretooth now recover from the reproduced guard freeze after an ordinary Cyclops throw. On the published V5.4 build, a real blocked LP left each character frozen through 602 frames of released controls. Four mirrored V5.5 takes preserve that blocked contact, then continue through tags in both directions, real KOs and control of the healthy replacement. Marrow also faces the opponent correctly after returning from a tag. These guard checks occur after entry retires; they do not establish blocking on every first possible entry frame.

Healthy tags and KO-partner arrivals no longer add the extra defeated-character voice cue. Genuine native KO handling is retained. This removes the additional wrong cue; imported hurt/KO voices still have partial coverage and fallback behavior.

The expanded Special core now checks the supplied game's members before starting emulation. A mismatched older game/core pair, missing member or duplicate member is refused. Controller changes made while content is unloaded also wait until input is initialized, repairing the reproduced unload/reload crash. Keep the generated Special game and the included core from the same bundle.

The 69 retained native checks were rerun on the final build, alongside the new Gambit controls, four post-throw lifecycle takes and two mirrored voice sequences. Both clean-source builders reproduce the exact 21-member two-player and 30-member Special games. The finite check record and player build record identify the tested games and their scope.

The Windows inbox record covers package verification, source compilation and synthetic fixtures separately; it does not establish a Windows gameplay session.

The original Marrow/Omega Red audio/invisibility report still has no identified input sequence and remains open. Eight installed solo/Duo/tag/KO routes passed, but source jobs and captured audio alone do not establish every visible or audible lifetime. Full donor-character parity, Windows gameplay, four physical controllers and online sessions remain outside these checks.

Harder remains the default. V5.5 keeps the existing CPU policy and damage rules without difficulty tuning. External testers will judge the difficulty target. No new characters or artwork are added in this repair release.

Build and play V5.5

  1. For this archived release, download the complete V5.5 builder from the download history and extract it into a new writable folder. Keep its README, sources, cores and subfolders together.
  2. Leave your clean game ZIPs zipped. Two-player Gambit needs XCOTA Euro 950331 and MVC1 Euro 980123. Special needs all four games: those two, XMvsSF Euro 961004, USA 961023 or Japan 961023, and MVC2 Naomi Export/Korea Rev A. A split XMvsSF clone also needs its clean parent.
  3. Select the required game ZIPs together and drag the whole selection onto BUILD XCOTA V5.5.cmd or BUILD V5.5 SPECIAL.cmd, in any order. Windows PowerShell 5.1 and its built-in .NET are sufficient. Find the new game in the builder's output folder; the clean source ZIPs stay unchanged.
  4. For Special, use PLAY V5.5 SPECIAL.cmd or load output/xmcotas4p.zip with the matching core included in that bundle. Bind ports 1/3 against 2/4. Two-player uses output/xmcota.zip with the existing XCOTA driver. MAME also needs your clean qsound_hle.zip in its ROM search path.

Merged Euro XCOTA/MVC1 parents, wrapped folders and a bounded outer ZIP holding the individual game ZIPs remain supported. Keep each game's members and key inside its clean ZIP. xmcota.zip and xmcota.key are the usual names; renaming an incomplete archive or supplying a loose key cannot complete the game.

If “Package source differs” appears, extract the entire matching download into a fresh folder. If Special reports “Content/core mismatch”, rebuild from that bundle and load its included expanded core. These are separate checks; do not mix versions or disable validation. The revision tables and detailed troubleshooting below still apply.

Retained V5.4 gameplay update

V5.4 repairs Gambit combos in both editions and Special's ground-normal guard paths. Rogue and Sabretooth can enter XCOTA's native guard from their ordinary grounded movement states, and defenders can recognize committed Rogue, Sabretooth and Marrow normals before the first hit reaches them. The native game still decides guard direction, contact, damage, hitstop and recovery. The character-select artwork and layout stay as they are.

Gambit's connected crouching heavy punch now supports the tested launch into down→up and air LP→MP, producing a three-hit route in both editions. Six selected heavy-normal reaction records use XCOTA's native reactions; these are target adaptations. Special also repairs the light-normal chain ranks. These are specific move and recovery checks, not complete MVC1 behavior or audio parity.

Special also repairs Gambit's down→up super jump through the tested air LP/MP, apex, descent and landing routes. This repair is scoped to Gambit. The other three imported owners were checked through ordinary jumps and air LP/MP; these checks do not establish their super-jump support.

The final guard checks used fresh fights and ordinary controller inputs. Sixteen mirrored crouching-back checks proved real blocked contacts with health preserved and attacker meter gained. Four neutral/forward controls proved real hits with damage. All twenty recovered. These are checks of selected ground normals; standing-back, air, special, super and projectile guard coverage remains incomplete.

Across both editions, 69 selected native checks covered Gambit routes, guards, imported recovery, installed Marrow/Omega Red supers, original-cast team supers and tag cancels, paid Duo expiry, and duplicate Sabretooth routes. Two actual double-Sabretooth defeats proceeded through challenger selection into fresh matches. The original Marrow corruption report has no known input, team order or stage and remains open; the eight installed-route checks do not establish that every Marrow move is repaired. Duplicate simultaneous Duo and automatic return to selection are also outside the accepted scope.

The finite check record and finished-player build record identify the exact tested update. The previous 104-case throw grid remains historical evidence, rather than a new V5.4 rerun. Full donor-character animation, voice and effects parity, physical four-controller sessions and online sessions remain unfinished.

Windows PowerShell 5.1 also verified both complete package inventories and compiled all five two-player and thirty-four Special sources with generated fixtures. The Windows record is separate from the real clean-ROM conversions and native checks; it does not establish a Windows game session.

Harder remains the fresh-selection default. This update keeps the existing CPU policy and ordinary damage rules. External testers will judge the difficulty.

Build V5.4 from your clean games

  1. For this archived release, download the complete V5.4 builder from the download history and extract it into a new writable folder. Keep all its files and subfolders together.
  2. Leave your clean game ZIPs zipped. Two-player Gambit needs XCOTA Euro 950331 and MVC1 Euro 980123. Special needs all four games: those two, XMvsSF Euro 961004, USA 961023 or Japan 961023, and MVC2 Naomi Export/Korea Rev A. A split XMvsSF clone also needs its clean parent.
  3. Select the required game ZIPs together and drag the whole selection onto BUILD XCOTA V5.4.cmd or BUILD V5.4 SPECIAL.cmd, in any order. Windows PowerShell 5.1 and its built-in .NET are sufficient. Find the new game in the builder's output folder; your clean source ZIPs are unchanged.
  4. For Special, use PLAY V5.4 SPECIAL.cmd or load output/xmcotas4p.zip with the matching core included in that bundle. Bind ports 1/3 against 2/4. Two-player uses output/xmcota.zip with the existing XCOTA driver. MAME also needs clean qsound_hle.zip in its ROM search path.

Keep a generated game and its matching bundle together. Do not copy new files over an older builder. If package validation stops before checking your ROMs, extract the complete download into a fresh folder rather than disabling its checks. The revision tables and troubleshooting details below still apply.

Retained V5.3 gameplay update

V5.3 adds Gambit air-card and selected sound repairs, imported recovery fixes, an authentic Akuma health portrait, and clearer setup options. Its complete V5.3 builders remain in the download history; keep Special with its matching core. The original character-select artwork, portraits and white frames stay in place.

Harder is the fresh-selection default. Its hand-coded CPU policy chooses legal attacks, guard, throws and jumps from delayed visible position, height and pose. It earns meter and uses ordinary damage. Normal keeps the native brain, and choosing Normal survives another player joining. The policy covers the original native characters and the adapted stock Gambit; imported Special brains remain separate. External testers will judge the difficulty target. An “almost impossible” win-rate claim is not established.

Special passes 104 living ground-HP throw routes: every original thrower against Gambit, Rogue, Sabretooth and Marrow on both sides, through release, lying, get-up and subsequent walking, jumping and an air attack. Twelve selected repeated-throw KO routes also pass. The update repairs the observed Akuma turn, Wolverine held-animation, Sentinel release and Marrow paid-Duo entry freezes. Selected imported attacks, supers, tags, KO promotion and earned Duo expiry were retested on the combined game. Akuma's HUD face survives tags, Duo expiry, damage, KOs and results. These are finite checks, not every possible throw route or full donor-game parity.

Gambit's sound scope is three source clips in two-player and five in Special. This is partial voice/effect coverage. Four additional Special clips have source storage only; their playback is not enabled by this update. Stock Royal remains its bounded card-fan adaptation. Both clean-source builders reproduce the exact 21-member two-player and 30-member Special games without changing the input ZIPs. Windows PowerShell 5.1 verified the finished package files and compiled all five two-player and thirty-four Special sources with generated fixture checks. The Windows check record is separate from the full-ROM builds above and from a real Windows game session.

Build V5.3 from your clean games

  1. Extract the whole V5.3 builder into a new writable folder. Keep its README, sources and subfolders together. Do not overlay it on an older builder.
  2. Leave the clean game ZIPs zipped. Two-player needs XCOTA Euro 950331 and MVC1 Euro 980123. Special needs all four: those two games, XMvsSF Euro 961004, USA 961023 or Japan 961023, and MVC2 Naomi Export/Korea Rev A. A split XMvsSF clone also needs its clean parent for shared files.
  3. Drag the required games together onto BUILD XCOTA V5.3.cmd or BUILD V5.3 SPECIAL.cmd, in any order. Windows PowerShell 5.1 and inbox .NET are sufficient. The new game appears in the builder's output folder.
  4. For Special, run PLAY V5.3 SPECIAL.cmd or load its included matching core with output/xmcotas4p.zip. Bind ports 1/3 against 2/4. Two-player keeps output/xmcota.zip and the stock XCOTA driver. MAME also needs the clean qsound_hle.zip BIOS in its ROM search path.

If “Package source differs: README.txt” appears, extract the complete corrected download into a fresh folder. Keep the supplied README and launcher unchanged. The finished package checks all its files before building; this error happens before ROM validation.

Retained V5.2 release and gameplay repairs

V5.2 fixes problems visible in the first trailer capture. Gambit now uses his actual forward and backward walking frames, with the card and staff animations assigned to the correct moves. Special adds MVC1's charged card sprites, Royal Flush casting, release flash and catch/recovery sequence. The stock-size edition keeps its bounded card fan; it does not claim Special's expanded super art.

Sabretooth's normal rush now draws its source-qualified claw effects on real contact. Native recovery resumes after crouched hits, hits on the right-hand Duo partner, and Birdie's projectiles. Gambit partners also recover after opposing Royal Flush cards knock them down during four-player Duo. These are recovery repairs: the native game still owns damage, physics and get-up timing.

Imported recipients also recover from the verified charged-card and Cyclops beam hits, including lethal bench hits and a cached beam after Cyclops tags to Juggernaut. Paid partners regain the native fall and landing sequence on Mutant Hunting and Mojo World. The retained native routines still decide damage, hitstop, gravity, floor height, blink and retirement.

The Special core now supplies enough emulated instructions to finish each native frame during the four-fighter load. The change belongs to the dedicated Special driver. Native cut-in, round clock and Duo expiry keep their original update rules. This is an emulator instruction budget change, not a physical CPS-2 board overclock.

The existing character-select layout and original portrait frames are retained. Rebuild from the clean games with the new package; use the matching V5.2 Special core with its generated xmcotas4p.zip.

V5.2 also fixes the installer rejection “must contain flat ROM members or one common folder prefix.” It reads unique ROM names inside wrapped game folders, including Windows ZIP paths, and ignores small desktop metadata such as .DS_Store, AppleDouble files and Thumbs.db. The original member sizes and hashes still authenticate each clean game. Ambiguous duplicate names and changed ROM data are refused. Drop the individual game ZIPs together, rather than a complete emulator ROM collection.

Merged xmcota.zip and mvsc.zip archives are also supported when they contain the complete Euro parent at the top level and regional clones in their usual subfolders. The builder uses the verified parent members and leaves all clone files inside the original archives. Both reported merged sets have the same parent ROM bytes as the supplied Fightcade sets; no manual repacking is needed.

Build and play V5.2

October 5 Special installer correction: the earlier download could stop with “Package source differs: README.txt” before it examined your games. Its README was changed after its manifest was sealed. The corrected download seals the finished package, including its instructions and launchers. Re-download Special and extract it into a new folder. The generated game and matching cores are unchanged; an already working V5.2 game does not need rebuilding for this correction.

Choose your edition

EditionClean games you supplyGenerated gameWhere to play
Two-player Gambit builderXCOTA and MVC1output/xmcota.zipExisting XCOTA driver in FBNeo or MAME
RetroArch 4P Special bundleXCOTA, MVC1, XMvsSF and MVC2output/xmcotas4p.zipRetroArch with the matching core included in this bundle

Special retains Akuma and adds Gambit, Rogue, Sabretooth and Marrow. The two-player edition replaces Akuma with Gambit. Special needs four game ZIPs in total. The builder download supplies patch sources and cores; you supply all game data.

Use these clean game revisions

GameSupported revisionUsual ZIP name
X-Men: Children of the AtomEuro 950331, the Fightcade parentxmcota.zip
Marvel vs. CapcomEuro 980123mvsc.zip
X-Men vs. Street Fighter — Special onlyEuro 961004, USA 961023 or Japan 961023xmvsf.zip or a supported regional clone
Marvel vs. Capcom 2 — Special onlyNaomi Export/Korea Rev A cartridgemvsc2.zip

The MVC2 cartridge contains epr-23085a.ic11 (4 MiB), fourteen 8 MiB files numbered mpr-23048 through mpr-23061, and two 4 MiB files numbered mpr-23083 and mpr-23084, with their cartridge suffixes. The usual 52-file, 183,053,112-byte archive also includes Naomi BIOS and EEPROM files; those recognized extras are accepted and can stay in the ZIP. A console disc or CHD is a different format. File names and counts help identify a set; the builder also checks the actual member sizes and hashes.

Windows: build the game

  1. Download your chosen builder above. Extract the whole builder download into a new writable folder. Keep its files and subfolders together; run it from the extracted folder, not from inside the download ZIP.
  2. Keep your game ROM ZIPs zipped. For two-player Gambit, select xmcota.zip and mvsc.zip together. For Special, select all four game ZIPs together.
  3. Drag that entire selection onto BUILD XCOTA V5.2.cmd for two-player, or BUILD V5.2 SPECIAL.cmd for Special. Any order works. Windows PowerShell 5.1 and its built-in .NET do the build; no Python, SDK or compiler install is needed.
  4. Wait for “V5.2 gameplay repair built”. Open the builder folder's output subfolder to find your generated game. Your original game ZIPs are unchanged.

Merged XCOTA and MVC1 ZIPs with a complete Euro parent at the root and regional clone subfolders work without repacking. Wrapped game folders and small desktop metadata are accepted too. Drag the individual game ZIPs, rather than a complete emulator ROM collection. The usual name is xmcota.zip, with xmcota.key inside; “XCOTA” is this project's shorthand. Renaming a ZIP or supplying only a loose key does not supply the required clean game.

If using a split USA/Japan XMvsSF clone, keep its clean xmvsf.zip parent beside it, or include the parent in the same dropped selection. The parent supplies shared graphics and sound. Japan 961023 has xvsj.03k and xvsj.04k; catalog shortnames vary, so check the revision rather than the ZIP name alone.

RetroArch: play Special with its included core

  1. On Windows, run PLAY V5.2 SPECIAL.cmd from the extracted builder folder. If it cannot find RetroArch, drag your installed retroarch.exe onto that PLAY command, or pass the executable's full path.
  2. To launch manually, load cores/windows/fbneo_xcota_special_expanded_libretro.dll in RetroArch, then load output/xmcotas4p.zip as the content. For Apple silicon, use arm64 RetroArch with the included cores/mac/fbneo_xcota_special_expanded_libretro.dylib and the same generated game.
  3. Bind four RetroPad ports: ports 1 and 3 are one team; ports 2 and 4 are the other team. Each port controls its fighter in the four-player setup.

Special's expanded game needs this matching core. Standard FBNeo and the Fightcade executable use the two-player build. For two-player MAME play, put your clean qsound_hle.zip in MAME's ROM search path alongside generated xmcota.zip. Modified-game checksum warnings are expected there; missing dl-1425.bin means MAME cannot find the QSound BIOS.

If the builder stops

MessageWhat to do
Package source differs: README.txtRe-download the corrected Special bundle and extract it into a fresh folder. This was our package error, before ROM validation. Do not edit the README or disable checks.
Missing game or memberCheck that you dropped every required game and supplied a split clone's clean parent.
Member size or hash differsCheck the exact supported clean revision above. A renamed or already patched ZIP will not pass clean-source checks.
Different output already existsExtract into a fresh folder so the builder can create its own output without overwriting another build.
RetroArch cannot find or load the gameFinish the build first, then use the included matching Special core with output/xmcotas4p.zip.

V5.2 retains the V5.1 dropped-file, source-revision and output-identity fixes. Special normalizes four unused bytes after complete archived source records; this does not cut animation frames or change the imported move data.

V5 engineering notes

V5 has two editions. The stock-size two-player ROM keeps the existing emulator and replaces Akuma with MVC1 Gambit. RetroArch Special retains Akuma and adds Gambit, Rogue, Sabretooth and Marrow. The original XCOTA four-player controller foundation carries forward. The final imported attacks and paid-Duo recovery use the matching Special core and earned meter on its four fighter slots. The exact stock-compatible ROM is checked in MAME.

The menus use the existing character-select screen and original frame art. All thirteen stock-size choices fit in two centered rows. Special uses three centered rows for seventeen characters, with Akuma centered in the bottom row. Sabretooth's face and Marrow's complete portrait fit their boxes, and highlighted fighters display their original-game body sprites.

Controls: MP+HK tags; LK+MP deliberately breaks for one bar during hitstun; QCF+MP+HK starts a supported team super; QCB+MP+HK starts timed Duo at full Level Max. Duo spends the full gauge at entry, then keeps participating fighters at Level Max for free X-Powers until TIME expires. A connected grounded normal can cancel into team super or Duo when its meter and living-partner requirements are satisfied. Storm and Iceman keep their familiar commands. Team super requires both partners to be among the ten original X-Men. Imported fighters and bosses use their individual supers and Duo; their team-super mappings remain disabled. The slower clock and selectable stages are separate V5 changes. Whiff/block meter gain and Storm dash invulnerability retain their established behavior.

Stock-size ROM: fresh native MAME runs cover ordinary menu inputs, Gambit–Cyclops tags in both directions, genuine CPU damage, fresh Gambit attacks after hurt and KO promotion. The builder reproduces all twenty-one game files from clean XCOTA and MVC1 in Python, C#5 and PowerShell. Both players must use matching generated files and settings. No change to the current Fightcade core is needed.

Special characters: Rogue's thirteen native Drain families, six borrowed ground attack families and Goodnight Sugar; Sabretooth's rush, Birdie, grabs and supers; and Marrow's source specials, Bone Burst and Stinger are included. The final combination has representative native command, contact, recovery and paid-Duo expiry checks. Separate source-unit matrices cover both orientations, strengths, ownership and interruption. These are finite XCOTA adaptations; literal donor beam effects, voices, camera and complete move timing are not claimed. Final runs use ordinary software-pad inputs and earned meter, without fighter or health seeds. Gambit's source-qualified get-up returns through the original game's recovery routine after imported grabs. The original four-controller foundation carries forward.

Original-game shadows and colors: MVC1 and XMvsSF imports use their own shadow frames, size tiers, signed offsets and displayed palettes. Marrow uses MVC2's textured floor model, UVs, bilinear filtering and approximately half opacity, adapted to XCOTA's camera and scale. The source material darkens during a super while transparency stays near one-half; Special applies that finite rule during its Duo cut-in, then restores the normal color. This is an explicit XCOTA adaptation, not a claim of identical MVC2 camera or super timing.

The full observed lifetimes are:

PhaseWhat stays, and when it retires
FadeOriginal palette publication remains. Ten observed scenes retain visible source jobs at F222; complete fades retire them before a visible partial-gray ramp.
Tag and returnThe outgoing source identity retires; the returning fighter reacquires its own frames, floor and camera.
Incoming KO blinkNative hide/freeze flags suppress drawing while the source job survives. Visible drawing resumes when those flags clear.
Paid DuoEach active bench gets its own source job. Native expiry retires it when the fighter ID becomes FFFE.
Lethal bench KOReal damage, blink, hidden-body drawing, recovery and removal are recorded separately from ordinary expiry.
In-stage resultThe winner's source job and team health bars remain through winner and PERFECT messages.
Separate victorySource jobs and health bars retire on the separate victory screen.
Selection and resetNo stale source jobs or displayed source records remain. Later constructors reacquire normally.

The lifetime observations cover 67,863 video frames and 66,727 paired native draw/video frames. A separate lethal paid-bench replay covers both sides. Final character move additions do not retroactively broaden those receipts.

Gambit's ending is an original fan story inspired by X-Men '97, using original MVC1 poses and XCOTA text. Three authored panels and the native staff roll/GAMEOVER handoff have measured display checks on both winning sides. Those observations disclose thirteen ladder-progress bytes before the final match; they do not claim eight natural Arcade wins. V5.2 retained XCOTA's shared contact, menu and hurt sounds. V5.3's selected Gambit source clips are described above; they do not establish full donor voice coverage.

arXiv research and difficulty

Fighting-game difficulty research motivates measuring strategy and pressure alongside win rate. Real-time combat self-play research concerns a different game and does not establish this patch's strength. V5.3 uses a hand-coded policy, with delayed public observations in Harder, earned meter and ordinary damage. There is no learning model running inside the patch. Normal and the imported Special CPU paths are not covered by a universal reaction-delay claim. The default and menu controls pass; external testers judge the difficulty target.

The earlier V5 release used 72/96 boss damage floors and CPU resource grants. Its bounded two-contact checks are historical evidence for that earlier design, not proof of the new strategy's strength. The V5.3 policy removes those advantages from its owned CPU path. Local instruction-budget measurements, online desync, physical-controller play and original-board behavior remain separate scopes.

Later research: endless Danger Room stays in XCOTA's queue. XMvsSF-version Magneto/Juggernaut ports, original-board support and mobile support require separate feasibility work.

Historical V4.1 engineering notes and earlier controls

Historical V4.1 engineering notes

Try to tag your partner in arcade X-Men: Children of the Atom.

You can't. There is no partner. It's the game where Capcom's Marvel fighters start: the super jumps, the air combos, the meter. And it's strictly one on one. Marvel vs. Capcom put two fighters on each side three years later, on the same CPS-2 board.

So I put them in. Pick two X-Men. HP+HK tags your partner in the way Marvel vs. Capcom does it: your fighter leaps off your side of the screen and your partner flies in kicking. At Level Max, call your partner in beside you. And as of v4, cancel a hit into a tag, break a combo when you're alone on screen, and pick your colours with the button you pick your X-Man with, the six Marvel vs. Capcom 2 colours, the way my MvC1 six-colour patch does it.

v4.1: the reset on Genosha and Mutant Hunting

A tester playing in Fightcade reported that the game reset on two stages, Genosha and Mutant Hunting. None of the regression scripts did it, so I ran random fights in Fightcade's own emulator core: both players mashing, tagging, calling Cross Over Fever and team supers, with the gauges kept full and the health kept low so knockouts came often. One run in 82 reset: a knockout during Cross Over Fever on Genosha, and 87 frames later the board rebooted. The same inputs reset it every time.

Replayed with a write tap, the cause was plain. The game draws its combo counter and its messages (FIRST ATTACK, GOOD!) through a routine at $6CD54, which hands back the address of the display's records on the object layer. With a partner on screen only one fighter per side may use it, so v4 hooks it: the display that may not draw goes straight back to the routine's caller. But four callers ($5FFEA, $60040, $6020C, $60262) write one more record eight bytes past the address they get back, and v4 gave them none. They wrote through whatever the register still held. On Genosha that was P2's fighter, whose state index became $E039. The next jump through that index landed in a data table at $ACxx, the 68000 hit an instruction it doesn't have, and the exception handler restarted the game. Where the leftover address points depends on what ran just before: the testers met it on two stages, and the random fights found it once, on Genosha.

v4.1 gives the display that may not draw a scratch block instead: 64 bytes at $FFF780, in RAM the game never uses. The stock routine runs on it and hands it back, so the callers' records land there and nothing draws them. The fix is 20 bytes. The same inputs now play through the knockout and the win pose. In v4 those writes hit P2's fighter 8 times before the reset; on v4.1 the same inputs send all 368 of them into the scratch block.

Why do this to the first Marvel game?

Because it already had everything a tag game needs except the second fighter. The super jumps, the air combos, the X-Power meter and the big sprites are all here, and the engine even knows how to change a fighter's character in the middle of a round: its debug mode does it. What it doesn't have is a team, a way out of the screen, a way back in, or a HUD that says who's on the bench.

v1 was the tag. v2 and v3 put both X-Men on screen at once, with Cross Over Fever and team supers, and rebuilt the HUD the way Marvel vs. Capcom's works. v4 is the list from the people who played the previews.

What's new in v4

Wolverine's Berserker Barrage hitting Sentinel
A special that connects…
Wolverine leaping out of the Berserker Barrage toward his own edge after HP+HK
…cancels into the tag: HP+HK, and he leaps out.

Tag cancels. A normal or a special that hits or is blocked can cancel into the tag. The game marks a connected attack by setting bit 7 of the fighter's +$81, hit or block, and the tag checks that bit. A whiff can't cancel, and an X-Power can't either. The game treats an X-Power as a special (action $22), so the patch tells them apart itself: it watches for LP+MP+HP or LK+MK+HK inside the motion window and for the gauge being spent. The leap starts once the hit-stop is over.

Wolverine flying across the whole screen toward Sentinel, who stands at the far right
The partner flies at the opponent…
Wolverine's flying kick hitting Sentinel at the far right of the screen
…and the kick comes out when it's in reach.

Full-screen tags. In v3 the partner came in from the edge and its kick came out on a fixed frame, so it only hit an opponent standing close. Now the incoming partner flies at the opponent, wherever the opponent stands, and the kick comes out once it's in reach. The game's own jump still moves the fighter. While the entry is in the air, unhurt, and hasn't connected, the patch owns its X position and carries it at a speed worked out from the distance.

A second Wolverine, in the brown colours, flying in with a kick toward Cyclops
Wolverine tags Wolverine. Picked with two different buttons, the two wear their own colours.

The same X-Man twice. Double Wolverine is fine now. The select screen took only one of each before. If you pick both with the same button, the second one takes the next colours so you can tell them apart. When the same X-Man in the same colours would meet across the screen, the second one moves to the next colours, the game's own mirror rule.

The stage breaks. On Mutant Hunting and Mojo World the floor gives way during the fight. The stock code drops both point fighters to the new floor. A partner in play kept the old floor. That's the cross hyper "stuck in the ceiling" the testers saw, and Spiral "vanishing" on Mutant Hunting was the same thing. A hook inside the stage-fall routine now gives every live partner its point's new floor and drops it with them. A partner lying still is moved down by the same drop.

Cross Over Fever: Cyclops fires his Optic Blast and Wolverine attacks Storm over a calm sky of big X's, with a floor under their feet
Cross Over Fever: the X's scroll again, the colours change slowly, and the fighters stand on a floor.

The fever sky. The scrolling X's from v2 are back, drifting half a pixel a frame. The colours step round a slow wheel, one step every 15 frames. There's no strobe, and no white or black flash when a cut-in starts. A platform sits under the fighters' feet, drawn from three new scroll-layer tiles. The sky doesn't show until its tilemap is complete, eight blocks a frame.

The top-left HUD at four times size: Psylocke's bar, the benched Iceman's darker gold bar with its red part, and a green plus over his portrait
The HUD while Iceman heals on the bench: his bar is MvC1's darker gold, his red pulses, and green pluses rise over his portrait.

The HUD. The partner's bar is darker gold now (#BB9933, the colour Marvel vs. Capcom uses), so it no longer reads like a second point. While a benched partner heals, its red part pulses and green pluses rise over its portrait. POW moved down beside the X-Power gauges.

COMBO BREAKER

While you're being hit, press toward or back with HP or HK, the throw input, the way a throw tech works. It costs one bar of the X-Power gauge ($47 of $8E, the price of an X-Power). The combo stops on the spot. Both sides freeze for ten frames. You hop back, and you can't be hit for 40 frames. Every fighter of the other side in play drops what it was doing and hops back too. COMBO BREAKER slides across the middle of the screen with the super-flash sound.

COMBO BREAKER across the screen as Psylocke and Omega Red are pushed apart, Psylocke's 6-hit combo stopped
Psylocke's combo on Omega Red stops at six hits: COMBO BREAKER.
COMBO BREAKER over the fever sky: Silver Samurai, alone on his side, breaks the combo of Wolverine and Iceman, and both of them hop back
One X-Man can break a duo's combo. A duo can't break yours.

The rules are mine, and they're strict on purpose:

  • Only while you have one X-Man on screen. No breaker during your own Cross Over Fever, a team super, or while your partner is flying in or out.
  • Not while you're tagging, not against an X-Power, not for the CPU.
  • It needs the bar. With less than one bar, the input does what it always did.

The trade-off is the input. If you hold back and mash HP while you're being hit, you'll spend a bar. That's in the known limits below.

Six colours, one per button

Wolverine in six colours on the same frame of the same fight: stock yellow and blue, purple, green on the top row; brown, light blue, dark purple on the bottom row
Wolverine, the same frame in six takes. Top row LP · MP · HP, bottom row LK · MK · HK.

The button that confirms a pick sets that X-Man's colours, the same cabinet mapping as my MvC1 six-colour patch:

ButtonLPLKMPHPMKHK
Coloursthe game's ownMvC2 LKMvC2 HPMvC2 A1MvC2 HKMvC2 A2

Stock X-Men: Children of the Atom has no colour choice at all. Every fighter has one colour index, +$AF, and the only time it isn't 0 is when P2 picks P1's character. Then the select screen writes 1 and the game loads the mirror colours. The fighter palette loader at $313C reads a character's four body rows from a table at $3362 and adds $80 for the mirror. In v4, +$AF is an index from 0 to 5, and two hooks at $315A and $319E send the loader to a new table for 1 to 5. Each partner keeps its own colours through tags, and the HUD portraits wear them too.

Where the colours come from. Marvel vs. Capcom 2 has all thirteen of these X-Men, and its Dreamcast character files hold six colour banks each. A PLxx_DAT.BIN starts with sixteen little-endian section offsets. Section 2 opens with the six banks in the order LP, LK, HP, HK, A1, A2, each eight rows of sixteen ARGB4444 words. The Dreamcast's transparent pen is 0 and the CPS-2's is 15, so a CPS-2 row takes pens 1 to 15 as its pens 0 to 14.

Before trusting that reading, I checked it against something known to be right: the MvC1 six-colour patch carries Marvel vs. Capcom 2's Wolverine. Read this way, the banks match it pen for pen, 45 of 45 on all five banks.

Which row is which. An XMCOTA X-Man has four palette rows, and they don't all line up with MvC2's eight. So each character got a census before any colour was copied. Each XMCOTA row was matched against every MvC2 row. For the ten X-Men on the select grid, a MAME run of every special and X-Power also counted which rows their sprites actually draw with.

  • Most rows match exactly. Wolverine's first three rows, the bodies of Colossus, Spiral, Juggernaut and Sentinel, Iceman's ice, Silver Samurai's two body rows and two of Magneto's effect rows are the same colours in both games, so the other banks copy straight across.
  • Some are the same pens in MvC2's shades. Psylocke, Cyclops, Storm, Omega Red and Magneto's body rows differ by a step or two per pen, but every pen plays the same part. They copy straight across too.
  • Akuma doesn't match. XMCOTA drew its own Akuma, with six skin pens where MvC2 has five. Each of his colours takes the MvC2 pen closest to it and carries its own brightness over.
  • Psylocke has extra rows. She draws a lit copy of her body and two pink effect rows. The lit copy follows her new body colours, and the effect rows take the bank's matching effect colours by brightness.
  • Rows MvC2 keeps fixed stay as they are. Akuma's fireball is still orange in all six colours, as it is in MvC2.
All thirteen X-Men, each in six colours: Wolverine, Psylocke, Colossus, Cyclops, Storm, Iceman, Spiral, Silver Samurai, Omega Red, Sentinel, Juggernaut, Magneto and Akuma, columns LP, LK, MP, HP, MK, HK
All thirteen, every colour, from MAME. Juggernaut, Magneto and Akuma were put on the select through a test poke; the colours come from the pick buttons.

The flashes. Seven X-Men rewrite their own palette rows during moves: Colossus, Cyclops, Storm, Iceman, Spiral, Silver Samurai and Sentinel. Those writers put back the stock words, and for anything but colour 0 they put back the mirror's. So once a frame, just before the palette goes to the video hardware, the patch turns every stock word left in a point's four rows into its colour's word, and leaves alone any pen a flash has set to something else.

The first test of that was wrong in an instructive way. It sampled RAM at the end of a frame, and Colossus's writer runs every frame of his glow, after the upload and before the sample. So the RAM showed stock words while the screen showed his colours. The test now checks what matters: every stretch off his colours ends. The longest lasted 25 frames.

Four players

Four-player Cross Over Fever: 1P Wolverine and 3P Storm against 4P Cyclops, each marked with its player number
Four players: each X-Man answers to its owner's controller, in a tag, a duo or a team super.

P1 and P3 play against P2 and P4, and each X-Man stays on its own controller through tags, team supers, Cross Over Fever and knockouts. The four-player build samples all four controllers every frame into one input word per player at $FFF160, and each fighter reads its owner's word wherever it is: on point, in a duo, after a tag. Stock emulators give this game two players, so four players run in the XCOTA TAG RetroArch core: FinalBurn Neo's libretro core with a four-player xmcota4p added, which loads the patched sets by file name. The setup, from a clean xmcota.zip to four pads, is at the top of this page.

What stayed from v1 to v3

The XCOTA TAG HUD: the point's bar over the partner's with both names inside the bars, two portraits per side, and the X-Power gauge under them
Stock X-Men: Children of the Atom at the start of a round: one life bar per side
‹›
StockXCOTA TAG
Stock against XCOTA TAG. The point's bar, the partner's bar and the gauge stack in three stories, with the names inside the bars.
  • Two picks per side. The first pick starts the fight. 1: and 2: under your name show the team as you build it. If the select timer runs out, the game finishes your team for you.
  • HP+HK tags, standing, walking or crouching, or out of a connected hit. Your fighter leaps backward off your side of the screen, and your partner flies in with a flying kick, lands and says a line. The kick is a real attack.
  • Two X-Men on screen. At Level Max, QCB+HP+HK calls Cross Over Fever: your partner flies in, and one stick drives both X-Men until the TIME bar at the bottom runs out. X-Powers are free while it runs. QCF+HP+HK is a team super: your partner lands beside you and both X-Powers fire on the same frame. CPU teams do both.
  • Red health. Three tenths of every hit stays red on the bar, and a benched partner wins it back.
  • KO hand-off. If your point is knocked out while your partner stands, the partner flies in from the edge behind. One round per match. On time over, the team with more total health wins, bench included.
  • The CPU gets a partner for every stage opponent. Juggernaut and Magneto still fight alone.

How the tag works

The game already knew how to swap a fighter. The hardest question was whether the character in a fighter slot can be replaced in the middle of a round. The game answers it itself. Like the Marvel games in sudden-desu's write-up on CPS-2 debug switches, it keeps its debug features on the board. In this one a word at $000D24 unlocks them. One debug tool cycles a fighter's character during the fight:

014842  tst.b   $6E2B(a5)    ; debug flag, set at boot
0148C0  addq.w  #2,$50(a6)   ; next character id
0148D0  jsr     $9CA0        ; per-character init
0148D6  jsr     $9E62        ; health and position
0148DC  move.w  #2,$4(a6)    ; state: fighting
0148F4  jsr     $9ED8        ; animation 0,0
0148FA  jsr     $313C        ; palette

If the developers called $9CA0 mid-round, a tag can too. The swap keeps position and facing, calls the per-character init, restores what it clobbers, loads the incoming fighter's health from the team block, and sets the palette. It leaves $9E62 out on purpose, so the incoming fighter keeps its own health.

How Marvel vs. Capcom tags. Before building the tag I measured the one it imitates, in a clean Marvel vs. Capcom set in MAME, with both fighters' positions, states and sound commands recorded every frame. The point turns toward its own edge and a sound from its own set plays. The partner appears just past that edge 14 to 16 frames after the press, 60 to 70 pixels up, already in a flying kick. While the partner comes in, the point leaps up and backward off the screen. The partner lands about 40 frames after the press and says its line.

X-Men: Children of the Atom has one fighter structure per side in a regular match, so the patch plays the two halves back to back. The point leaps backward, 5 pixels a frame speeding up to 14, and can't be hit. The screen-edge clamp is skipped for it and the camera holds still. Once it's 56 pixels past the edge, 12 to 19 frames after the press, the partner is swapped in outside that edge in its own forward jump. Then the patch presses HK for it through the same input update a player's press goes through, so the character's own jumping HK comes out with its real hitbox and damage. The line waits for the landing: the jumping attack's whoosh cuts off a voice on the same side.

The bug the test matrix caught in v1

Two stock moves are HP+HK: Storm's flight and Iceman's Ice Avalanche. The routine that detects them, at $00CAEC, fires when both buttons changed within the last two frames, pressed or released. The first version of the leap left HP and HK in the input history, so on the frames after a tag the game still saw both buttons change: Storm took off, or Iceman dropped an avalanche, instead of leaving. The fix clears the input history during a tag. The build without the fix fails exactly the four scenarios where Storm or Iceman is the one leaving.

Where it lives in the ROM

Nearly all of the game's code sits below $090000. The first megabyte of program space is opcode-encrypted, and the program ROM mapped at $100000 is outside that range, with empty space from $13F73C up to $150000. The new code goes at $13F800: 26,378 bytes in v4.1, 8,320 of them the colour tables. Each of the 32 hooks is a short jsr into it, encrypted with the set's key for its address and checked by decrypting it back. The four-player build is 27,550 bytes with 34 hooks. The HUD's thin bars, the gold partner bar, the heal plus, the COMBO BREAKER letters, the outlined A-Z and the platform are new tiles in the blank end of graphics bank 1.

The patch's state lives at $FFF000–$FFF763, RAM the stock game never writes after boot. The partners' fighter slots sit at $FF3800 and $FF3C00, where a boot-to-versus soak saw no writes either. The USA, Japan and Phoenix sets share the Euro set's code at every hook site, so one payload serves all four, byte for byte.

What was tested, and what wasn't

  • 54 scripted scenarios per set, all four sets, on the v4.1 build: PASS, diagnostic tier. MAME 0.264 in a cloud container, not pinned. The checks read RAM every frame and the game's sound queue. They cover tags for every X-Man on both sides, a kick that connects, a tag after the sides crossed, KO hand-offs, the round ending mid-tag, time over, Cross Over Fever on each side and both at once, team supers, bench healing, and the whole v4 list. That's tag cancels on hit, block and a special, none on a whiff or an X-Power, the full-screen kick, COMBO BREAKER with and without a bar, refused in a duo and allowed against one, both stage falls, and the six colours through a tag, the mirror rule, a team of one X-Man twice, and Colossus's flashes.
  • Fightcade's own emulator, on each v4.1 installer output: PASS on xmcota, xmcotaj, xmcotar1d; 52 of 54 on xmcotau. I built Fightcade's FBNeo core headless from its source. On xmcotau, two scenarios start from the same scripted Berserker Barrage, and this core with that set turns it into a walk, so there's no special to cancel and no combo to break. The v3 build does the same, so it isn't a v4 change.
  • The v4.1 fix: the reset replay. The random fight that reset v4 in Fightcade's core plays through on v4.1. On v4 the stray writes land in P2's fighter and the game restarts at frame 5422; on v4.1 every one of them lands in the scratch block and nothing restarts.
  • Four players: PASS on both emulators, diagnostic. One script with the gauges poked full, run in MAME with the four-controller wiring and in Fightcade's core built with the four-controller profile, on the v4.1 installer's xmcota4p.zip. Four X-Men are picked, P1's Cross Over Fever goes live, P3's stick moves only P3's X-Man and P1's only P1's, and P2's tag brings P4's X-Man in on P4's stick. The RetroArch core loads xmcota4p.zip on Linux, and every button and direction of every port reaches the game, with no cross-talk. The Windows core does the same under Wine 9, in a small test host.
  • The launcher, under Wine 9's cmd, with a stand-in retroarch.exe: RetroArch found in its usual folder, in a folder dragged into the window and from its saved place; the game beside the launcher, in Downloads, renamed, or made from a clean xmcota.zip; the two-player file, no game at all, the download still zipped, and a custom cores folder.
  • All thirteen X-Men in all six colours, looked at in MAME, including Juggernaut, Magneto and Akuma through a test poke on the select.
  • Installer gate: 412 of 412. Every layout and refusal case runs through both the Python patcher and the Windows installer's own PowerShell, under PowerShell 7 on Linux. Accepted outputs match the MAME-tested builds byte for byte.
  • Not run: Windows PowerShell 5.1 on a Windows PC, the RetroArch core and the launcher on Windows itself, Fightcade online play, four physical controllers, and real hardware.

Known limits

HP+HK is also Storm's flight and Iceman's Ice Avalanche, so on the ground with a partner standing it tags instead. The game has no tag lines, so the partner says its round-win line. The COMBO BREAKER uses the throw input, so holding back and mashing HP while you're hit spends a bar. And Akuma's secret code on the select screen hasn't been tried with the patch.

Work note

I set the goal and the rules: two-on-two in a one-on-one game, one round, the first team to lose both fighters loses, and a partner for the CPU. I asked for the tag to leave and enter the screen the way Marvel vs. Capcom's does, for its HUD, and for v4's list. AI agents traced the engine, wrote the patch, the installers and the RetroArch core, built the test matrices and the video, and drafted this post from their measurements.

This is an unaffiliated fan modification. X-Men: Children of the Atom and its characters belong to their respective owners. The download contains patch data. You supply your own lawful game dump.

Community input · Next release

Help test XCOTA V5.2

Choose up to 3 priorities. No account needed.