Sonic the Fighters (Switch)
Sonic the Fighters
About the project
Sonic the Fighters es un videojuego de lucha desarrollado por Sega-AM2 para máquinas arcade. Emplea gráficos en 3D y cuenta con personajes y escenarios de la saga Sonic como luchadores.
3 versions of Sonic the Fighters
You're viewing: Sonic the Fighters (Switch)
Official project information
Sonic the Fighters — Nintendo Switch Port
Sonic the Fighters NX is an unofficial Nintendo Switch port built on m2-hle2, bringing SEGA's Model 2 arcade fighter to Switch with native controller support, widescreen presentation, audio, and Switch-specific rendering work.
The original arcade title screen and character-selection flow are preserved, with an in-game pause toggle and a more accessible, rebalanced Super Sonic transformation.
No game ROM is included in this repository or the release package. You must provide your own compatible, lawfully obtained
sfight.zip. The ROM stays on your SD card and is loaded at runtime; it is never embedded in the NRO by this build.
Features
- Native Nintendo Switch homebrew application based on the m2-hle2 emulator core.
- Original arcade title screen, character selection, and progression.
- Widescreen support with an option to return to the original presentation.
- Switch controller mappings and native audio output.
- Switch-focused renderer, texture-upload, and loading optimizations.
- Pause and resume during gameplay with the Minus (−) button.
- One-button Hyper Mode input using ZR.
- Super Sonic available after collecting seven Chaos Emeralds, from stage 8 onward.
- Rebalanced Super Sonic defense: reduced damage while retaining normal knockout behavior.
- External SD-card ROM loading with clear missing/invalid-ROM messages.
- Homebrew Menu icon and ROM-free build/release packaging.
How to Install
- Download the release archive and extract it to the root of your SD card.
- Place your own compatible
sfight.zipinswitch/sonic_fighters_nx/. - Open the Homebrew Menu in application mode (title takeover) and launch Sonic the Fighters NX.
The required files are:
| File | Location on the SD card |
|---|---|
| Application | SD:/switch/sonic_fighters_nx/sonic_fighters_nx.nro |
| Game ROM | SD:/switch/sonic_fighters_nx/sfight.zip |
If installing a standalone NRO, copy it into that folder and rename it to sonic_fighters_nx.nro.
Keep the ROM archive named exactly sfight.zip and leave it zipped. The application always looks in the path above, regardless of where it was launched from. Missing, empty, or incompatible archives display an error explaining the required location; B or Plus (+) exits that screen.
When upgrading from an older build, replace the old NRO with the external-ROM version and add the ROM separately. No game-data download or extraction is performed by the application.
Controls
| Action | Switch input |
|---|---|
| Movement | Left stick / D-pad |
| Punch | B |
| Kick | A |
| Guard | Y |
| Hyper Mode command | ZR |
| Start | Plus (+) |
| Pause / Resume | Minus (−), during gameplay |
| Exit application | ZL + ZR + Plus (+) |
Press Plus (+) at the original title screen to begin an arcade game.
The Hyper shortcut sends the original command using the fighter's facing direction and airborne state. The game's normal activation conditions and barrier cost still apply. Holding ZR does not repeatedly activate it.
In-game Pause
Press Minus (−) during a match to freeze the game in place. The current frame remains visible with a small PAUSED indicator. Press Minus again to continue from the same point.
The emulated game, match timer, and audio are paused together. Pause is available during gameplay; the title screen and character selection keep their original behavior.
Super Sonic
Play as Sonic, defeat the first seven arcade opponents, and collect all seven Chaos Emeralds. From stage 8, activate a valid Hyper Mode command with ZR or the original button combination to transform into Super Sonic. The transformation is also available in stages 9 and 10.
The original no-loss, no-continue, and Metal Sonic second-round restrictions have been removed. Stage 7 still activates ordinary Hyper Mode; other playable characters do not transform into Super Sonic.
Super Sonic is powerful, but can still be defeated. Incoming damage is reduced to one quarter of the normal amount, rounded up. A hit that deals 20 damage to normal Sonic deals 5 to Super Sonic. Positive hits always deal at least 1 damage, and reaching zero health still causes a knockout.
Outgoing damage is unchanged. CPU, attract-mode, and versus transformation rules retain the original behavior.
Notes
- Real Nintendo Switch hardware is the main target; the maintainer has reported the external-ROM build working on Switch.
- No fixed-FPS or overclock requirement is claimed by this release.
- Logging is disabled by default. L + R + Y toggles performance logging.
- Compact-renderer logs are written to
SD:/switch/sonic_fighters_nx/standalone-v083.log; the compatibility renderer usesstandalone-v083-compat.log.
Optional diagnostic combinations:
| Input | Action |
|---|---|
| L + R + Right stick click | Toggle widescreen / original presentation |
| L + R + Left stick click | Toggle loading pacing |
| L + R + B | Toggle partial / full HUD uploads |
| L + R + Minus (−) | Toggle shade caching; does not trigger pause |
| L + R + X | Toggle flat-texture diagnostic |
How to Build
A configured devkitPro / devkitA64 environment is required, together with:
libnxswitch-mesa- Git, Make, Bash, AWK, and Python 3
For a new checkout, run from this repository's root:
bash build.sh
The script downloads the emulator core into .upstream/m2-hle2 at revision:
1b27dd32d39b316f856f43b477df069b52ce4d17
It initializes the required miniz and sokol submodules and builds the default compact renderer. The output is:
.upstream/m2-hle2/dist/switch/sonic_fighters_nx_standalone_v083.nro
To use an existing m2-hle2 checkout instead:
bash build_standalone_v083.sh ../m2-hle2
The result is written to ../m2-hle2/dist/switch/sonic_fighters_nx_standalone_v083.nro. The existing checkout is kept at its current revision; the script reports a warning if it differs from the tested baseline.
Alternative renderer builds:
# Compatibility renderer
bash build_standalone_v083.sh ../m2-hle2 compat
# Both renderer variants
bash build_standalone_v083.sh ../m2-hle2 both
A game ROM is not required to build. Legacy RomFS folders and embedding flags are ignored. Each completed NRO is checked for embedded RomFS before it is copied to the output directory.
Create a Release Archive
After building and testing the NRO:
bash package_release.sh ../m2-hle2/dist/switch/sonic_fighters_nx_standalone_v083.nro
This creates:
release/sonic_fighters_nx_v083_external_rom.zip
release/sonic_fighters_nx_v083_external_rom.zip.sha256
The archive contains the NRO in the expected SD-card layout, English documentation, and dependency notices. It excludes sfight.zip. The GitHub Actions workflow checks source files and script syntax without requiring a ROM.
Credits
- biggestsonicfan and the m2-hle2 contributors — the emulator core and groundwork that made this port possible.
- SEGA / AM2 — Sonic the Fighters and the original characters, artwork, and music.
- devkitPro and libnx contributors — the Switch development toolchain and platform support.
- Mesa and Nouveau contributors — the graphics stack used by the Switch renderer.
- Andre Weissflog / sokol contributors — rendering and utility libraries.
- miniz contributors — ZIP archive support.
Nintendo Switch port and Switch-specific adaptations by Bora Eskicioğlu / BESK.
Original Project
This port builds on m2-hle2:
https://github.com/biggestsonicfan/m2-hle2
Please credit and support the original project and its contributors alongside this Switch port.
Legal and License Status
This is an unofficial fan project with no affiliation with or endorsement from SEGA or Nintendo. Sonic the Fighters, Sonic characters, the application artwork, and related trademarks belong to their respective rights holders.
No game ROM archive is supplied, downloaded, or bundled with the NRO. Users must obtain the required game data lawfully and supply it themselves.
At the pinned revision, m2-hle2 has not selected a license for its first-party code. This repository therefore does not label the entire project as MIT, GPL, or another blanket license. Dependency license texts are retained separately.
See LICENSE_STATUS.md and THIRD_PARTY_NOTICES.md for the recorded licensing status and attributions.
