SSF2T CROSSOVER R52 - ANDROID ROM PATCHES
18 direct roster identities; TAG and Dramatic Battle; current R52 training builds

This folder supplies standard BPS patches and plain text instructions.
It contains no game ROM, CPS2 key, emulator, or complete modified ROM.
You supply your own matching clean World ssf2t.zip.
No command prompt, Python, or JSON editing is needed on your phone.

PATCHING AND PLAYING ARE SEPARATE STEPS
These ROMs require this project's matching custom FBNeo core, including its
18-roster and R52 training host behavior. Stock FBNeo/MAME/other stock cores
cannot provide that behavior. Use the release's matching Android arm64 core
and its RetroArch setup instructions. This patch pack alone is not an
Android gameplay certification. An 8 GB RAM / 256 GB storage phone's capacity
does not establish CPU/GPU speed or runtime compatibility.

EASIEST METHOD: PATCH THE WHOLE ZIP AS RAW BYTES
1. Extract this patch pack using your Android file manager. Keep your own
   game archive intact. Do not unzip, recompress, rename its members, or
   remove its key before this method.
2. Select your original clean ssf2t.zip in a BPS patcher that treats ZIP
   archives as raw files. Use the release's phone patcher if provided.
   Check the exact source size and SHA-256 in CHECKSUMS.txt. The original
   ZIP itself, including its ZIP headers and compression, must match.
3. Choose ONE patch:
      r52-tag-exact-clean-zip.bps       -> ssf2tmv4.zip
      r52-dramatic-exact-clean-zip.bps  -> ssf2tdbmv4.zip
   Apply it to the CLEAN source. To make the other mode, start again from
   your clean source. Do not apply one mode on top of the other.
4. Keep checksum validation enabled. A mismatch means stop; use the member
   fallback if your clean files are correct but the ZIP packaging differs.
5. Save/rename the result exactly as shown above, including .zip once.
   The output is already a complete ZIP archive. Do not ZIP it again.
   Verify its output SHA-256/size if your patcher supports this.
6. Load it using the matching custom core and the release's core guide.

The current general Rom Patcher JS website automatically unzips input ZIPs.
That website is suitable for the member fallback, not the whole-ZIP method.
Renaming a ZIP to .bin does not change its ZIP signature or prevent this.
Do not select one file inside the source archive for a whole-ZIP patch.

The canonical output ZIP is stored without compression (33,295,946 bytes).
It deliberately has a different archive hash from the compressed desktop
build. Every one of its 40 extracted files is byte-identical to the current
R52 build for that mode. Keep about 200 MB free for source, patches, output,
and file manager temporary copies; browser memory requirements are separate.

ALTERNATIVE: MEMBER FALLBACK
If the whole ZIP checksum differs, read member-fallback/INSTRUCTIONS.txt.
The fallback verifies individual clean ROM files, so a different ZIP order,
timestamp, or compression method does not matter. It takes more manual steps.

CHECKSUMS.txt lists the exact source, targets, patches, and extracted files.
VERIFICATION.txt explains what was tested and what remains untested.
