SUPER STREET FIGHTER II TURBO / CPS-2

Two fighters.
More room.

Super Turbo, with a partner. Tag into a kick, fight side by side in Variable Cross, or call both supers. v3 adds a true expanded view and makes the handoffs more consistent.

ROM-free patches for your own clean World or Japan 940223 set. v2.1 stays available. This is a development preview.

WATCH / JAPANESE NARRATION · ENGLISH SUBTITLES

See the handoff. Follow the code.

Seven minutes, twenty seconds: real gameplay, a trip through the CPS-2 program, and the work behind 384 → 512. The film covers this two-player development preview and its remaining limits.

SSF2T TAG v3 · Japanese narration / English subtitlesYouTube ↗

01 / LEARN THREE INPUTS

Same buttons. Three ways in.

HP is heavy punch. HK is heavy kick. Quarter-circle directions follow the way your fighter is facing. Release HP and HK before another tag press.

TAG / NO FULL GAUGE REQUIRED

Bring your partner in.

HP + HK

The point jumps out. The partner flies toward the opponent with an entry kick. After a normal or special hits or is blocked, the tag can cancel its recovery once hitstop ends.

No whiff, super, air or throw tag cancel.

VARIABLE CROSS / FULL TWO-LEVEL GAUGE

Fight together.

↓ ↙ ← + HP + HK

Both fighters stay on screen while the TIME bar lasts. In two-player mode, one stick drives both fighters. Supers are free during Variable Cross.

TEAM SUPER / FULL TWO-LEVEL GAUGE

Call both supers.

↓ ↘ → + HP + HK

The partner begins the super sequence; the point follows the partner's flash. It uses the existing team-super spend rules.

EXPLAINER / TAG
A tag has an exit, an airborne entry, and a landingPress heavy punch and heavy kick together, release both before another tag. The incoming fighter is protected in the air; the protection ends on landing. The entry kick can be blocked.HP + HK → RELEASE → NEXT PRESSOUTINBLOCKPoint leavesAirborne protectionLanding ends protection
Press heavy punch and heavy kick together, release both before another tag. The incoming fighter is protected in the air; the protection ends on landing. The entry kick can be blocked. Illustration; animation starts only when requested.

02 / THE HANDOFF MATTERS

A smaller, more consistent v3.

  • Damage and defense survive the handoff. Tag, KO and partner creation retain the intended damage-level setup instead of losing it when an object is cleared.
  • Entry protection ends on landing. The airborne partner is protected; the entry kick can be blocked. Grounded play resumes normally.
  • Variable Cross changes the stage's colors. The background turns gray while either team is active. Fighters, HUD and effects keep their color.
  • Small character fixes. Cammy's Hooligan and Fei Long's Chicken Wing recognition, New Hawk's crouching MP head box, and Ken / New Sagat reversal-super selection. These are fixes, not a general rebalance.

The older character types and Akuma remain selectable. No Old Honda throw-tech change, new moves, pushblock or snapback is claimed.

Actual expanded v3 diagnostic frame: colorful fighters and HUD over a gray stage during Variable Cross.
Actual freeze4 v3 / S06 arcade diagnostic capture. The background changes; the fighters do not turn gray. This is a test capture, not new video footage.

INSIDE THE BOARD / 16 SHORT CHAPTERS

Follow a button press into the code.

Choose one question. See the cause, the code, and the result. The optional 3D board follows ROM03, ROM04 and ROM07 into the CPU, game memory and display.

Source-based logical illustration, not electrical telemetry. The A/B stack is a reference model; it is not a measured SSF2T board population.

1 / 16
Procedural CPS-2 reference board with the 68000 highlighted green and a clear code card showing the level-word handoff.

No animation or WebGL before you choose. The text chapters already work.

Text-first / board not loaded

01 / MAP

Seven windows. Three changed files.

CAUSE

A new game behavior needs code redirects and a place for extension routines.

CODE / SOURCE SUMMARY

03–09: seven fixed 512 KiB files
03 + 04: stock hooks and data edits
07: new code, tables and profile marker

Source: freeze4 output manifests / per-rom-change-map-v1.json

RESULT

The same-sized files contain different bytes. Graphics and audio ROM members are unchanged.

Inspect

EXACT BYTE COUNTS / WORLD 2P EXPANDED · OTHER PROFILES DIFFER

ROM03

Input, world and control hooks

sfxe.03c

164 changed bytes
of a 524,288-byte file

000000..07FFFF
ROM04

Character, camera and render hooks

sfxe.04a

158 changed bytes
of a 524,288-byte file

080000..0FFFFF
ROM07

TAG, VC, HUD and profile extension

sfxe.07

15,478 changed bytes
of a 524,288-byte file

200000..27FFFF
Browse all 16 questions

Default: World 2P expanded. Four-player download remains held. Stock-pace work is deferred to the next release. Use the matched install steps below.

03 / LOOK AT THE EDGES

384 → 512. Not a stretched image.

The expanded profile draws 64 more columns on each side of the original view: 512 × 224 instead of 384 × 224. With the CPS pixel aspect corrected, it displays at 16:9. Fighter geometry stays the same.

STANDARD / 384 × 224 / 4:3

Standard v3 view of stage 2, with the left hut and only part of the right spectators visible.
Actual standard buffer, displayed with corrected pixel aspect.

EXPANDED / 512 × 224 / 16:9

Expanded v3 view of the same stage fixture, showing 64 extra background columns at each edge and the same-sized fighters.
Actual expanded buffer. More stage is drawn at both edges.
EXPLAINER / WIDE
384 to 512: more stage on both sidesThe original 384 columns remain in the middle. Expanded adds 64 columns on the left and 64 on the right, for 512 total. This illustrates the viewport, not a larger stage boundary.SAME FIGHTERS. WIDER VIEW.+64ORIGINAL 384+64512 × 224 · corrected pixel aspect · 16:9
The original 384 columns remain in the middle. Expanded adds 64 columns on the left and 64 on the right, for 512 total. This illustrates the viewport, not a larger stage boundary. Illustration; animation starts only when requested.

The camera moves.

The camera and its clamps work with the wider viewport. The stage's own world boundaries stay the same.

The background keeps up.

Tile streaming and parallax cover the additional columns. HUD anchors and partner entry trajectories follow the expanded view.

Objects leave safely.

Projectile retirement follows the visible edges, with cleanup around the 60-slot object pool. This is not an unlimited projectile mode.

Choose the expanded ROM profile and matched S06 core, then reload the content. Changing a frontend aspect-ratio setting does not add these columns; geometry is not a live toggle.

04 / PICK THE EMULATOR FIRST

Two paths. Keep their filenames separate.

Both patch packages check your own clean input and create a separate output. Extract the package before running its installer. Never patch an earlier TAG output. No game ROM or decryption key is distributed.

FIGHTCADE / MAME · 2P STANDARD ONLY

Keep the original game's name.

Use the standard two-player patch for the regular 384-column view. Expanded and four-player profiles require the matched custom core.

2P standard patch ↓
  1. Start with your clean 940223 ZIP.ssf2t.zip (World), or ssf2xjr1.zip (Japan). Keep a backup outside the emulator folder.
  2. Run the standard installer.Windows: drag the ZIP onto the extracted .cmd. macOS/Linux: run the included Python patcher with your ZIP path.
  3. Rename only a copy of the output.ssf2t_tag_v3.zip → ssf2t.zip, or ssf2xjr1_tag_v3.zip → ssf2xjr1.zip.
  4. Put it in the emulator's ROM folder.Back up that folder's clean ZIP first. For the Japan clone, keep the clean parent ssf2t.zip alongside it for shared graphics and sound.
  5. Test locally before anything else.Offline core and MAME diagnostics are not proof of Fightcade online compatibility. Online play is unverified.
RETROARCH · 2P EXPANDED · macOS 26+ / ARM64

Use the matched S06 core.

This walkthrough uses World 2P expanded. The supplied binary targets macOS 26 or later on Apple Silicon. Older macOS versions and Windows/Linux binaries are not validated or included.

Matched S06 gameplay and replay footage is validated through the libretro harness. The existing local RetroArch 1.10.3 configuration did not successfully present the game; this GUI walkthrough remains unverified.

  1. Patch a clean full World set.Expanded inputs must include the full verified set, not just a compact clone.
  2. Run the extracted Python patcher.
    python3 ssf2t-tag-v3-2p-expanded-preview.py "/path/to/ssf2t.zip"
    The output is ssf2tw3.zip. Keep that exact filename.
  3. Load the supplied core.RetroArch → Load Core → fbneo_ssf2t_libretro.dylib. It is the SSF2T TAG v3 S06 core, not the stock FBNeo core.
  4. Load the patched content.Load Content → ssf2tw3.zip. Bind directions and all six attack buttons. Expanded content should display at 16:9.
  5. Use saves from this profile.Changing profile or program revision requires a reload and fresh saves. Earlier formats and mismatched content states are refused.
EXPLAINER / INSTALL
Your clean archive becomes a separate patched copyAn installer takes your own clean World or Japan archive and writes a new patched archive. RetroArch loads that copy with the matched S06 core. No game or key is supplied.CLEAN INPUT. SEPARATE OUTPUT.YOUR COPYssf2t.zipclean World 940223PATCH2P expandedPython or WindowsNEW COPYssf2tw3.zipload with S06 coreThe original stays yours. No ROM or key included.
An installer takes your own clean World or Japan archive and writes a new patched archive. RetroArch loads that copy with the matched S06 core. No game or key is supplied. Illustration; animation starts only when requested.

World or Japan? Here are the exact names.

The last column is for the matched RetroArch core. Standard Fightcade/MAME instead uses the original set name shown above.

SetProfilePatcher outputRetroArch content
World2P · standardssf2t_tag_v3.zipssf2tv3.zip
Japan2P · standardssf2xjr1_tag_v3.zipssf2xjv3.zip
World2P · expandedssf2tw3.zipsame name
Japan2P · expandedssf2xjw3.zipsame name
World4P · standard · heldssf2t4v3.zipsame name
World4P · expanded · heldssf2t4w3.zipsame name
What four-player mode will require · download held

P1 + P3 vs P2 + P4. Four-player profiles are World only, with standard or expanded view, and require the matched core and all four input ports. P3/P4 own each team's second member.

A fresh HP+HK press joins or challenges when that side is outside its human fight. During a fight, HP+HK tags. If a partner has no separate human owner, the first player's stick drives both fighters during Variable Cross.

The current four-player development archive has a known controller sampling issue affecting the combined HP+HK input. Its download is held until a separate correction is checked. These names explain the layout; they are not a release recommendation.

Download hashes and what is included

ssf2t-tag-v3-2p-standard-preview-patch.zip
161,140 bytes · SHA-256
91332ec7d864fb0bbecdefc853e9399294802c404a5a785c5942f59458f01201

ssf2t-tag-v3-2p-expanded-preview-patch.zip
162,888 bytes · SHA-256
92efd70d467f420cb78a5354650289300bb3105b1e1e2a5b7881d15e2833beeb

ssf2t-tag-v3-matched-core-macos-arm64-preview.zip
ec5085979e52f99ed7280b41e387a2588ae76a2ffe7f96061294f45f5513e574

Patch packages contain the Python patcher, Windows installer, patch specification and README. The separate core package contains the S06 binary validated through the libretro harness, rebuild recipe and licenses. It targets macOS 26 or later on Apple Silicon. No ROM, key or raw saved state is included.

05 / GET UNSTUCK

If something doesn't load.

The patcher rejects my ZIP.

Use a clean supported 940223 input with the required members and key already inside your own archive. Do not rename a patched output to hide its identity, remove the checks, or patch over v2.1. The refusal preserves your original.

RetroArch says the game is unknown.

Load the supplied S06 core, then use the exact content filename in the table. Standard 2P outputs need the RetroArch rename; expanded outputs do not. A stock FBNeo core does not know these custom drivers.

I selected 16:9 but the view is still cropped.

Load the expanded profile, not the standard ROM with a stretched frontend setting. Reload content after changing profiles. Only the expanded program and matched core draw 512 columns.

An old save refuses to load.

Make a new save with the matching program, profile and S06 core. Cross-profile, different-program and older-format refusals are intentional. Keep the old core and old saves together if you need v2.1.

I am on Windows or Linux.

The patchers are included, but the supplied custom core targets macOS 26 or later on ARM64. Standard 2P has the offline Fightcade/MAME path above. Expanded and 4P require a suitable custom core build; no tested Windows DLL or Linux shared object is supplied.

I am on an older macOS version.

The supplied Apple Silicon binary is built for macOS 26 or later. Older systems need a core rebuilt for their deployment target; that path is unverified. The standard 2P patch and its offline Fightcade/MAME route are separate from this custom-core download.

RetroArch opens a black window.

Check macOS 26 or later, the exact S06 core and the content filename above. Our existing RetroArch 1.10.3 configuration loaded the core module but did not present gameplay. Native frontend success remains unverified; include your app version, video driver and a verbose log when reporting this problem.

The game pace feels different.

That is a known limitation, not an installation error. Stock pace parity is deferred to the next release. Do not change emulator clocks to make this preview appear validated.

06 / KEEP YOUR PREVIOUS SETUP

v2.1 stays available.

The v3 development patch does not replace your existing files or require you to abandon the earlier preview. Keep each version in its own folder.

What the tests do and do not establish

The canonical v3/S06 diagnostics include all six original profiles, 48 seeded runs of 60,000 frames, and 11,904 paired completed-frame replays comparing serialized state, CPU, physical object banks, RAM, RGB and PCM. That replay scope uses 48 kHz, interpolation 1 and low-pass off. It does not establish arbitrary callback-time restores, rewind, rollback, online play or physical hardware behavior.

The later four-player input report is a separate functional limitation and holds its download despite those earlier checks. Competitive balance and full stock pace are not established. The private performance experiments are not the downloadable two-player build.

Historical v2 / four-player setup

This is the earlier v2 package, with its own core and filenames. It is separate from S06 and the held v3 four-player download. Keep versions in different folders; online play and native frontend behavior remain unverified.

  1. Extract the earlier v2 package.Its archive is ssf2t-tag-v2-retroarch.zip; do not try to load the package ZIP as a game.
  2. Put your own clean World set beside the launcher.Keep ssf2t.zip next to PLAY SSF2T TAG 4P.cmd. The supplied Windows launcher patches a separate ssf2t4p.zip and selects the earlier core.
  3. Keep the earlier content and core together.Manual loading uses ssf2t4p.zip and that package's SSF2T TAG core, not the S06 core supplied above. Linux uses its play_ssf2t_tag_4p.sh; the old package's build_core.sh is a source-build path, not a validated macOS binary.
  4. Assign four controllers.In RetroArch, open Settings → Input → RetroPad Binds and select a Device Index for each port. Ports 1 + 3 form one team; ports 2 + 4 form the other.

Windows installers have PowerShell 7 diagnostic coverage; native Windows PowerShell 5.1 and physical hardware remain unverified. The two-player downloads are development previews; four-player v3 downloads remain held.