MVC1 CROSS FEVER — FOUR-PLAYER V2.2 PREVIEW

Four players in arcade Marvel vs. Capcom: ports 1 and 3 against ports 2 and 4,
on one PC or online through RetroArch's netplay. It is separate from DHC and
from XMvsSF 3v3 + DHC.

WHAT V2.2 CHANGES

- Online play works. v2.1's core named itself with 35 characters; RetroArch
  sends a core's name to the other players in 32 bytes, so every player who
  joined was refused as "a different core". The v2.2 core is named
  FBNeo (MVC1 Cross Fever 4P).
- The core comes with its .info file, and PLAY.cmd (Windows) or play.py
  (macOS/Linux) installs both into RetroArch's own cores and info folders.
  RetroArch's Netplay host list only matches a room to an installed core
  that has an .info file.
- PLAY.cmd finds RetroArch by itself in the usual folders and remembers it.
- For online play it turns on RetroArch's relay server and the public room
  list, and asks your name once, in RetroArch's own settings (retroarch.cfg;
  the first time it keeps a copy as retroarch.cfg.before-cross-fever).
  v2.1 passed these as extra settings for one launch only; RetroArch drops
  those when a host starts or a player joins.
- The game patch is the same as v2.1's (and v2's game). An mvsc4p.zip you
  already built with v2.1 is the same game; you can copy it into this
  package's output folder with its .receipt.json file, or build it again.

WHAT YOU NEED

- Your clean MVC1 Europe 980123 set, mvsc.zip, with its original mvsc.key.
  If you play MvC1 on Fightcade, it is in Fightcade's ROMs folder:
  Fightcade\emulator\fbneo\ROMs\mvsc.zip. Your file is only read.
- RetroArch, free from https://www.retroarch.com. It is not included.
  Everyone in an online game should use the same RetroArch version.
- Windows 10/11 x64, macOS 26+ on Apple silicon, or Linux x64.

INSTALL (ONE TIME)

1. Extract this package into a new folder you can write to.
2. Windows: drag your mvsc.zip onto BUILD.cmd. No Python is needed.
   macOS/Linux: python3 install.py /path/to/your/mvsc.zip
   This makes output/mvsc4p.zip and its receipt. It refuses to overwrite an
   existing output; extract the package again to build again. Python needs a
   disk with hard links (APFS, ext4, NTFS), not exFAT/FAT or a network share.
3. Windows: double-click PLAY.cmd. macOS/Linux: python3 play.py
   If Windows says it protected your PC, choose More info, then Run anyway.
   The first time it asks your name for online play. It installs the core
   into RetroArch and starts the game; RetroArch's title bar names the core:
   FBNeo (MVC1 Cross Fever 4P). Use PLAY.cmd (or play.py) every time, with
   RetroArch closed.

CONTROLLERS

Online, each player sets up only their own controller, as Port 1:
Settings > Input > RetroPad Binds > Port 1 Controls.
On one PC, give four controllers different Device Index values for ports 1-4.
Quick Menu > Controls shows this game's buttons. Default RetroPad buttons:
    Y = LP     X = MP     L = HP
    B = LK     A = MK     R = HK
Start and Select/Coin do nothing in this game: it runs in free play.

    HP+HK               join (at the title or character select), and tag
    QCF+HP+HK           Team Hyper
    QCB+HP+HK           Duo (at least two bars)

P1 and P2 choose the first fighters; P3 and P4 choose the partners. Each
fighter stays on its own player's controller.

PLAY ONLINE WITH FOUR PEOPLE

Everyone builds their own mvsc4p.zip from their own clean mvsc.zip and starts
the game with PLAY.cmd (or play.py). In RetroArch, F1 opens and closes the menu
and Backspace goes back. To change your name later: Settings > User > Username.

Host (player 1):
  Main Menu > Netplay > Host. "Use Relay Server" is already on: pick the
  Relay Server Location closest to all four players, then Start Netplay Host.
  A Server Password is optional; the others then type it to join. If Windows
  asks whether RetroArch may use the network, allow it.
Everyone else:
  Main Menu > Netplay > Refresh Netplay Host List, then pick the host's room,
  "Internet (Relay): <host's name>". RetroArch says "You have joined as player N".
  The first to join is player 2, the second player 3, the third player 4.
  Teams: player 1 and player 3 against player 2 and player 4.
Then everyone presses HP+HK at the title.

If the room is not listed, refresh again after a few seconds, and check that
the host's Use Relay Server is on. If picking the room does nothing, that
player's RetroArch was not started with PLAY.cmd: quit RetroArch and start it
again with PLAY.cmd. "A netplay peer is running a different core" means
someone is still on v2.1 or a stock core.

WHAT WAS TESTED

- RetroArch 1.22.2 (built for Linux) with this package's Linux core and
  play.py: four RetroArch users on one machine, each with their own package,
  game build and settings. The host used Netplay > Host > Start Netplay Host
  through a relay; the three others joined from Netplay > Refresh Netplay Host
  List and became players 2, 3 and 4. In the fight each player's controls moved
  only their own fighter, also after tags (3P and 4P markers). The lobby and
  relay ran locally (a stand-in for RetroArch's lobby server, and libretro's
  netplay-tunnel-server), not on the public servers.
- v2.1's core in the same test: every joining player was refused.
- The Windows DLL in a small libretro host under Wine 9: the same 3,000 frames
  of a scripted four-player start as the Linux core, picture for picture.
- PLAY.cmd's script: 20 cases under PowerShell 7 (on Linux): finding
  RetroArch and its folders, the settings file, the name, and refusals.
- Not tested: Windows itself (PowerShell 5.1, RetroArch for Windows), macOS,
  the public lobby and relay servers, internet latency, four physical
  controllers, real hardware. Please report what you find.
  Details: TEST_RESULTS.json.

REPORT A RESULT

Include the package version, operating system, RetroArch version, the player
numbers RetroArch gave, and the exact message or action that failed.

SOURCE AND CREDITS

The core is FinalBurn Neo for libretro at commit
aceeebed9e7edc8a28652365a064baee9a16e274 with this project's mvsc4p driver,
its four-controller declaration (shared with XCOTA TAG) and the core name.
FBNeo's license and the corresponding source download accompany this package.
No game ROM, decryption key or save state is distributed.

RetroArch guides:
https://docs.libretro.com/guides/netplay-getting-started/
https://docs.libretro.com/guides/input-and-controls/
