跳到正文

SNO2207

WindowSmash

Experimental Windows x64 native porting toolkit for Super Smash Bros. Ultimate: static AArch64 recompilation, a D3D11 runtime, and Local Wireless relay netplay.

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

这篇是英文原文

下面正文是项目自己的英文 README。想读全文就用浏览器自带的整页翻译: Chrome / Edge 点地址栏右侧的翻译图标,或用右键菜单里的「翻译成中文」; 手机浏览器一般在菜单里。

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

Super Smash Bros. Ultimate as a native Windows program, built on your own PC from your own copy of the game.

Setup guide · Playing · Multiplayer · DLC & unlocks · Game updates · Linux · How it works


[!IMPORTANT] This source code does not contain the game. It has no game files, keys or firmware. You need your own copy of Super Smash Bros. Ultimate, dumped from your own Nintendo Switch. WindowSmash builds a Windows program from that copy, on your PC.

Contents

  • What is WindowSmash?
  • What you need
  • Install and play
  • Controls
  • Play with friends
  • All guides
  • Project status
  • How it works
  • Getting help
  • For developers
  • Legal

What is WindowSmash?

A Nintendo Switch and a Windows PC have different kinds of processors, so a Switch game can’t run on a PC as it is. An emulator solves that by translating the game while you play. WindowSmash translates it once, ahead of time: it turns the game’s code into C, compiles that into an ordinary Windows program, and adds a runtime that gives the game what it expects from a Switch: graphics, sound, controllers, files and networking.

The game itself still comes from your files. This repository holds only the translator (the recompiler) and the runtime.

What you get

  • Up to eight controllers: Xbox, PlayStation, Switch Pro and most others, plus the keyboard.
  • Windowed, borderless or full screen, always 16:9, with settings for G-Sync and FreeSync monitors.
  • Online play through Local Wireless: rooms appear for every player in the online lobby, and nobody has to set up their router.
  • Your DLC fighters, and a tool that unlocks the base-game roster on your own save.
  • Any game version, including 13.0.5 with Kazuya and Sora, and several versions side by side.
  • An experimental Linux version, built from the same source.

What you need

Requirement
ComputerA Windows 10 or Windows 11 PC, 64-bit.
ProcessorOne with AVX2: an Intel Core i3, i5, i7 or i9 of the 4th generation (2013) or newer, or any AMD Ryzen. Most Pentium and Celeron processors don’t have it.
GraphicsAny graphics card or chip that supports DirectX 11, with an up-to-date driver.
Memory16 GB recommended.
Free spaceAbout 60 GB on the drive WindowSmash goes on, plus room for your game files (about 17 GB).
Your game filesSuper Smash Bros. Ultimate from your own Switch, with your console’s keys and firmware. Any version should work; 11.0.0 and 13.0.5 have been tested. The setup guide lists exactly which files.
Two free toolsPython and Visual Studio Community. The setup guide shows how to install them.
TimeAbout an hour of your own time, plus 30 minutes to a few hours of waiting while your PC builds the game.

Install and play

Follow the setup guide. It goes step by step, and no programming knowledge is needed: you copy each command from the guide and paste it.

The whole journey at a glance:

StepWhat happensYour time
1Check your PC can run the game.5 minutes
2Gather your game files into three folders.10 minutes
3Install two free tools, Python and Visual Studio.30 minutes, mostly waiting
4Download WindowSmash and install its helpers.5 minutes
5Prepare the game. Paste a few commands that take what’s needed from your files.15 minutes
6Build the game. Paste one command, then wait while your PC translates the game.30 minutes to a few hours
7Play. Double-click Play SSBU.bat.

Steps 5 and 6 can also run in one go: after downloading WindowSmash, double-click Build WindowSmash.bat (how).

Start the setup guide →

Already know your way around? The short version

You need Windows 10/11 x64, Python 3.14 as python, and Visual Studio 2022 or newer with Desktop development with C++ and C++ Clang tools for Windows. The example paths are your game files in D:\MyDump, your keys in D:\MyKeys and your firmware in D:\MyFirmware.

git clone https://github.com/SNO2207/WindowSmash.git
cd WindowSmash
python -m pip install -r requirements.txt
python tools/nca.py exefs "D:\MyDump\program.nca" --keys "D:\MyKeys" --out dump/exefs
Get-ChildItem D:\MyFirmware\*.nca | ForEach-Object { python tools/nca.py romfs-get $_.FullName --keys D:\MyKeys --match .bfttf --flat --out D:\MyDump\fonts 2>$null }
& ".\Configure Game Data.bat"    # asks for your patched, unencrypted romfs.bin and D:\MyDump\fonts
python tools/arc.py nro
python tools/recomp.py all dump/exefs --out build --jobs 16
& ".\Play SSBU.bat"

The setup guide’s reference section covers DLC, SDL3 for controllers, the audio and video codecs, and the folder layout.

Controls

Plug in a controller and press a button: each pad becomes the next free player, up to eight. The keyboard plays as player 1.

Switch buttonKeyboard
Left stickArrow keys
A / B / X / YZ / X / C / V
L / RA / S
ZL / ZRQ / W
+ / −Enter / Backspace
Right stickI J K L
KeyWhat it does
F1Show or hide the overlay (frame rate, online status).
F2Show more details, including the connected pads.
F3Take a screenshot (saved in the screenshots folder).
F11 or Alt+EnterSwitch between a window and full screen.

[!NOTE] Buttons go by position, as on a Switch controller. On an Xbox controller, the right-hand button (B) is the Switch’s A. To use the printed letters instead, or to remap anything, see Playing: controllers. PlayStation, Switch Pro and most other pads need SDL3, which step 12 of the setup guide adds.

Play with friends

WayForHow
Online lobby (the default)Anyone, anywhereDouble-click Play SSBU.bat, open Local Wireless in the game, then create a room or pick one from Rooms List.
Lobby codeFriends only, through the online lobbyEveryone adds the same code to online_server.txt. Only players with that code see your rooms.
Private roomA group with one hostThe host runs Host SSBU Netplay.bat; the others run Join SSBU Netplay.bat and type the host’s address.

Everyone needs the same game version, and each PC uses its own save. The multiplayer guide walks through each way and what to do when a room doesn’t show up.

All guides

GuideRead it to
Setup guideinstall WindowSmash and build the game, step by step.
Playingchange the controls or the window, and find saves, screenshots and problem reports.
Multiplayerplay with other people online or in a private room.
DLC and unlocksuse your DLC, or unlock every base-game fighter on your save.
Game updatesapply an update file, such as 13.0.5, as a version of its own.
Several versionskeep more than one game version and choose one when you start.
Linuxbuild and run the experimental Linux version.
Runtime packagesset up a ready-built runtime package with your own game data.
How it worksunderstand the recompiler, the runtime and every tool.
Third-party noticessee attributions and licenses.

Project status

WindowSmash is experimental. Menus and matches run and Local Wireless connects, but much of it hasn’t been tested widely yet.

AreaWhere it stands
Game versionsAny version should work. 11.0.0 is the most tested. 13.0.5 has been checked through its menus and full roster, its matches less so. Other versions haven’t been tried.
CPU and loadingThe game’s code is translated to C ahead of time; fighter modules are compiled too and loaded when the game asks for them.
GraphicsDirect3D 11. Shaders compile the first time each is used, so a new effect can hitch once. Prepare Shaders.bat can compile them ahead of time.
ControllersUp to eight players on most pads, plus the keyboard. Testing with real pads has been limited so far.
DisplayWindowed, borderless or full screen, kept 16:9, with pacing for fixed-refresh and variable-refresh monitors.
Audio and moviesMusic needs libopus and movies need libvpx, both optional when building.
DLCThe DLC fighters your version has: 11.0.0 has them up to Pyra/Mythra; Kazuya came with 12.0.0 and Sora with 13.0.0.
MultiplayerThe online lobby (with direct connections) and private rooms work. Complete matches between two PCs, and the whole roster online, haven’t been fully verified.
LinuxExperimental, cross-compiled from the same source and drawn through DXVK on Vulkan.

There is no connection to Nintendo’s online service, no claim of general Switch compatibility, and no verified performance target.

How it works

flowchart LR
    A[Your game's code] --> B[Recompiler: ARM64 and NEON to C]
    B --> C[Clang: Windows x64]
    C --> D[ssbu.exe on your PC]
    E[WindowSmash runtime] --> D
    F[Your game data and fonts] --> D
    D --> G[Direct3D 11, SDL3 and Windows]

The recompiler finds every function in the game’s ARM64 code and writes it out as C. Clang compiles that C for Windows, and it is linked with the runtime, which stands in for the parts of the Switch the game talks to. The game’s graphics commands go to Direct3D 11, its shaders are translated to HLSL, and its Local Wireless traffic travels over the internet through a relay.

The technical guide explains each part: the CPU model, function discovery, symbol binding, the services, the graphics path, shader compilation, the network protocol, save handling, and every tool in tools/.

Getting help

When something goes wrong, first look at If something goes wrong in the setup guide. To report a problem, open an issue and include:

  • the game version, your Windows version, and your graphics card and driver version;
  • which WindowSmash you have (the date you downloaded it, or the output of git rev-parse --short HEAD);
  • what you did, what you expected, and what happened instead;
  • after a crash or a freeze, the .txt report from the reports\ folder, and the end of build\play.log.

[!WARNING] Logs and reports can contain your folder names, player names and internet addresses. Read them before posting. A crash report’s .dmp file contains part of the game’s memory: share it only privately, with someone who asked for it. Never post game files, keys, saves or generated game code in issues or pull requests.

For developers

Run the source-only tests. They use made-up data, need no game files, and don’t start the game:

python -m pip install -r requirements-dev.txt
python -m unittest discover -s tests -v

The game-backed instruction and function tests are in the technical guide.

FolderContents
runtime/The native runtime: services, graphics, input, audio, networking.
tools/The recompiler, game-file readers, launch helpers and diagnostic tools.
tests/Source-only tests.
third_party/License texts of third-party code.
docs/These guides.

Everything generated or personal stays out of Git: build/, dump/, deps/, save/, version folders such as v13.0.5/, caches, captures, reports and local bundles.

No project-wide license has been chosen for the WindowSmash source yet; see the third-party notices for the parts that have their own. Super Smash Bros. Ultimate and related names belong to their respective owners. WindowSmash is an independent project and is not affiliated with or endorsed by Nintendo.

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。