MSH TAG v1.2 - four players in RetroArch
========================================

Four people, four Marvel heroes, on one PC or online. This download has everything except
RetroArch and your ROM: the MSH TAG core, the four-player installer and a launcher.

RetroArch's own FinalBurn Neo core reads two players for this game and doesn't know the
four-player set ("Romset is unknown"). The launcher always starts the MSH TAG core, so you
never pick a core yourself.

v1.2 allows standing or crouching guard against the automatic tag-entry attack and
keeps Hulk's connected crouching HP first strike in its launcher follow-up. It includes
the earlier v1.1 repairs and uses the same published MSH TAG core. Independent Windows,
RetroArch UI and four-physical-controller acceptance remain open; see TESTER_CHECKLIST.txt.


WINDOWS: START HERE
-------------------
1. Install RetroArch. It's free: https://www.retroarch.com > Download > Windows >
   Installer. Keep the folder it suggests (C:\RetroArch-Win64).

2. Unzip this download: right-click it > Extract All. RetroArch can't open the zip.

3. Put your clean Marvel Super Heroes ZIP in the extracted folder, next to
   PLAY MSH TAG 4P.cmd: msh.zip (the one Fightcade uses is fine, as long as it isn't
   patched), mshu.zip, msha.zip, mshjr1.zip or mshud.zip, with its key file inside.
   Also put your clean Marvel vs. Capcom ZIP (mvsc.zip) there if you have it: double
   teams then show Marvel vs. Capcom's meteor sky (read from your ZIP; nothing from it is
   in this download). Without it the stage stays.

4. Double-click PLAY MSH TAG 4P.cmd.
   The first time, it makes msh4p.zip (the four-player game) from your ZIP, finds
   RetroArch, copies the MSH TAG core into it and starts the game.
   If Windows says it protected your PC: More info > Run anyway.

5. Give each player a controller. Plug them all in first. In RetroArch press F1, then:
      Settings > Input > RetroPad Binds > Port 1 Controls > Device Index
   and pick player 1's pad. Do the same for Port 2, Port 3 and Port 4.
   Ports 1 and 3 are one team, ports 2 and 4 the other.
   Main Menu > Configuration File > Save Current Configuration keeps it.
   Press F1 again to go back to the game.

Next time, just double-click PLAY MSH TAG 4P.cmd.

Coming from v1 or v1.1: keep your clean ZIP next to PLAY MSH TAG 4P.cmd. The launcher sees that
your msh4p.zip was made by an earlier release, renames it msh4p_before_v1.2.zip and makes the v1.2 game.
Online, everyone needs the v1.2 msh4p.zip.


IN THE GAME
-----------
There are no coin or Start buttons: P1 and P2 press HP+HK to join. P1 and P2 pick their
team's two fighters. P3 plays P1's second pick and P4 plays P2's, wherever that fighter is:
coming in on a tag, fighting on point, or beside the point in a double team.
Whoever is on point tags with HP+HK; the teammate takes over the fighter that comes in.
Start is not available, so no taunt and no Infinity Gem cycling in the four-player game.

  RetroPad button   arcade button      on an Xbox pad
  Y                 light punch        X
  X                 medium punch       Y
  L                 heavy punch        LB
  B                 light kick         A
  A                 medium kick        B
  R                 heavy kick         RB
  L2                all three punches  LT
  R2                all three kicks    RT

Team moves (the gauge goes up to Level 3):
  HP+HK                         tag (also out of a normal or special that hit or was blocked)
  HP+HK while being hit         Counter Switch: 2 levels, or your red life and a tenth of your life
  B, DB, D + HP+HK when blocking crossover counter: 1 level
  L2 while blocking             push block (L2 is all three punches): free
  QCF + MP+MK                   snapback: 1 level
  QCB + HP+HK                   double team: 2 levels
  QCF + HP+HK                   team super: 2 levels
  HP+HK during a super          hyper tag: 1 more level


CHECK THAT IT'S THE RIGHT CORE
------------------------------
RetroArch's title bar, and the bottom line of its menu, say "(MSH TAG)". If they say
"FinalBurn Neo" without "(MSH TAG)", that's RetroArch's own core. Close RetroArch and start
with PLAY MSH TAG 4P.cmd.


IF SOMETHING'S WRONG
--------------------
"Romset is unknown"
    RetroArch's own core is running, or the game file was renamed. Start with
    PLAY MSH TAG 4P.cmd. The four-player game must be called msh4p.zip.

Ports 3 and 4 have nothing to map (every button shows ---)
    A two-player file is loaded (msh.zip or msh_tag_v1.2.zip). Four players need
    msh4p.zip, which the launcher makes.

One player's controller doesn't move anybody
    That port has no controller. Set its Device Index (step 5).

The launcher says the installer didn't make msh4p.zip
    Your ZIP isn't a clean 951024 set, it's already patched, or its key file is missing.
    The installer's own message says which.

The installer reports $005E38 (life bar tiles) on a clean retail ROM
    Download this pack (v1.2) and extract it into a fresh folder.
    The old v1 installer misread retail data tables and rejected valid ROMs. This
    pack corrects the table reads and checks, retaining every ROM identity check.
    Run its launcher on your clean original ZIP; that original is only read.

The launcher can't find RetroArch
    Drag retroarch.exe, or its folder, into the launcher's window and press Enter.
    It remembers the place.


WITHOUT THE LAUNCHER, AND ON LINUX AND MACOS
--------------------------------------------
1. Make msh4p.zip: drag your clean ZIP onto msh-tag-v1.2-4p-preview.cmd (Windows), or run
      python3 msh_tag_4p_patch.py /path/to/msh.zip
   Keep the name msh4p.zip.
2. Put the core in RetroArch: Main Menu > Load Core > Install or Restore a Core, and pick
   fbneo_mshtag_libretro.dll (Windows) or fbneo_mshtag_libretro.so (Linux). Copy
   fbneo_mshtag_libretro.info into RetroArch's info folder (Settings > Directory > Core
   Info shows where), so the core shows up under its name.
3. Load Core > Arcade (FinalBurn Neo - MSH TAG), then Load Content > msh4p.zip.

Linux: sh play_msh_tag_4p.sh does the same as the Windows launcher.
macOS: there's no ready-made macOS core yet. Open Terminal in the src folder and run
          sh build_core.sh
       It needs Xcode's command line tools (xcode-select --install). It builds
       fbneo_mshtag_libretro.dylib; put it next to play_msh_tag_4p.sh and run
          sh play_msh_tag_4p.sh


FOUR PLAYERS ONLINE
-------------------
Parsec (the easiest): one player hosts. The host sets everything up as above and shares
the screen with Parsec. The three guests connect with Parsec and plug in their pads;
Parsec gives each of them a pad on the host's PC. The host sets Port 1 to their own pad
and Ports 2, 3 and 4 to the guests' pads, then saves the configuration. Only the host
needs the core and the ROM. For the least delay: the host on a wired connection,
RetroArch fullscreen, Vsync on.

RetroArch netplay: everyone needs this same download and makes their own msh4p.zip. The
same clean ZIP always gives the same file; different sets (msh and mshu, say) give
different files, so agree on one set, and all make it with mvsc.zip or all without. Before joining, each player turns on Settings >
User Interface > Show Advanced Settings, then sets Settings > Network > Request Device to
YES for their own port only (P1 port 1, P3 port 3, and so on). The host uses Main Menu >
Netplay > Host; the others join from Netplay > Refresh Netplay Host List.


TWO PLAYERS
-----------
For two players use the two-player MSH TAG: it plays in Fightcade (msh.zip), in MAME,
and in this core.


WHAT'S IN THIS DOWNLOAD
-----------------------
  PLAY MSH TAG 4P.cmd            the Windows launcher: makes the game, installs the core,
                                 starts RetroArch with both
  msh-tag-v1.2-4p-preview.cmd      the four-player installer for Windows (the launcher runs it)
  msh_tag_4p_patch.py            the same installer in Python 3 (Linux, macOS, Windows)
  play_msh_tag_4p.sh             the launcher for Linux and macOS
  fbneo_mshtag_libretro.dll      the core for Windows (64-bit)
  fbneo_mshtag_libretro.so       the core for Linux (64-bit)
  fbneo_mshtag_libretro.info     its RetroArch info file (the name in Load Core)
  src/                           the core's source patch, the script that applies it, and
                                 build_core.sh
  FBNEO_LICENSE.txt              FinalBurn Neo's license, which applies to the core
No ROM data is included. The installer holds patch data and hashes, and checks that your
ZIP is a clean set before it writes anything.


TESTED -- October 1, 2026 (local diagnostics)
---------------------------------------------
The final v1.2 installers pass 19/19 fixture tests, including the optional sky,
plus all five real clean sets in both variants (10 cases). Python and PowerShell 7
on macOS produce identical members. All 43/45 dependency checks per set refuse
modified inputs, as do eight negative controls. Originals remain unchanged.

Native macOS MSH TAG core checks on the final Phoenix two-player build:
- Hulk: 220 standing/crouching, both-side, roster, guard, edge and whiff cases pass.
- Tag guard: 25 explicit expectations pass across 27 two/four-player probes;
  two roster whiffs are excluded from guard success claims. Ordinary jumping
  overheads remain, and independent P3 input remains available.
- Recorded v1.1 regressions pass again: nine quantitative scenarios plus visual
  K.O./DOUBLE K.O. review. Covers rounds, CPU beaten flag, draw/bench restoration,
  exiting-fighter KO, identity flags, shield colors, reflections and Soul Gem carry.

Final installed Euro four-player output: scripted logical ports 1-4 join, select,
tag out/back with correct ownership; first partners have empty gem slots and the
team inventory survives the slot swap. Double teams on both sides and all eight
TIME-bar checks pass. These runs use ordinary pad inputs and read-only RAM; the
MAME regression fixtures declare their setup writes. They are bounded diagnostics.

Still unverified: independent Windows/Fightcade installation, Windows PowerShell
5.1, cmd.exe and drag-and-drop, the Windows core on Windows, RetroArch UI and online
play, four physical controllers, and real hardware. USA/Asia/Japan have installer
coverage, not native gameplay coverage. No long-session soak is claimed here.
Fightcade flicker remains open: the linked old footage predates v1.1; the precise
reported moment, current build and display settings are unconfirmed. Start-based
taunt and gem cycling remain unavailable in 4P. See TESTER_CHECKLIST.txt.

The Windows/Linux core binaries and their source patch are unchanged from the
published v1 RetroArch package and checked against its RELEASE.json hashes.
Native diagnostics used a local macOS build of that MSH TAG core.


LICENSE
-------
FinalBurn Neo's license applies to the core (FBNEO_LICENSE.txt): free and non-commercial.
The source changes are in src/.
