github suyu-emu/suyu-main v0.0.12
suyu v0.0.12

latest releases: v0.1.4, v14.1.0, v14.0.1...
one month ago

suyu v0.0.12

Hybrid exports can now complete the final Windows link and return safely to JIT
when generated code changes. The Windows download includes a matched build kit,
and standalone games include their matching Control metadata.

Portable exports configure their host build for Release and normalize Windows
paths. Windows release builds use the VS 2022 toolset baseline. The kit records
its producer compiler version and rejects an older toolchain with an upgrade
message before compilation.

Hybrid exports that build and launch reliably

Hybrid exports now recover when a generated module fails compilation or exceeds
Windows executable size limits: the affected module uses Dynamic JIT while the
remaining native modules stay compiled. The export still fails if it cannot
produce the genuine Hybrid executable. Strict Static AOT retains strict failure
behavior.

When a game changes translated code, Hybrid returns to JIT before executing stale
instructions. This fixes the early TOTK guard abort. Re-export existing games
to regenerate their code and executable; updating suyu alone does not repair an
older standalone package.

Generated C is packed into translation units capped at 32 MiB, alongside the
existing block-count limit. All emitted instructions are retained. A single block
larger than the cap occupies its own unit. This reduces compiler memory pressure
for large games.

Standalone exports now include and register the game's small matching Control
metadata. This fixes Xenoblade Chronicles 3 initializing to a black screen and
preserves the Control version for an explicitly selected update. Malformed,
unreadable or mismatched metadata fails with an error before game initialization.
Windows installed-data lookup also respects a valid process APPDATA directory.

Windows downloads include the export build kit

The Windows ZIP includes matched, relocatable host link inputs for Hybrid and
Static AOT exports. A separate suyu source checkout and configured host build are
no longer required. Keep the export-build-kit directory beside suyu.

Building an executable still requires an installed MSVC x64 C++ toolchain
(updated VS 2022 17.14 / toolset 14.44, or newer),
Windows SDK, CMake and Ninja
. LLVM/Clang is optional. The bundled kit uses the
default ABI 6 recompiler features; customized feature configurations require a
matching source build. Personal game files, keys and firmware are not included.

Faster Vulkan pipeline setup

Drivers reporting fast graphics pipeline library support reuse compiled pipeline
parts and link initial pipelines quickly, then optimize in the background. Other
drivers retain the previous path; Android keeps it by default. If a supported
driver has rendering problems, disable Use graphics pipeline libraries in
Vulkan settings. Other loading work can still cause pauses.

Verification

Standalone Windows Hybrid exports were launched without the original game
container as an argument. The CI-produced Windows ZIP was also used to relink
Odyssey's four native modules and run that package for six minutes, followed by
a three-minute camera-input test.

Game Scripted runtime check Observed result
Super Mario Odyssey 6 minutes staged, 6 minutes from CI kit, plus 3 minutes with camera input Cap Kingdom scene; all four native modules active; clean exits
Xenoblade Chronicles 3 10 minutes Everblight Plain gameplay; clean exit
The Legend of Zelda: Tears of the Kingdom Two 6-minute runs Opening cave gameplay; clean exits; oversized main module uses JIT

These are opening-gameplay smoke tests, not full playthroughs or a guarantee for
every game, driver or hardware configuration. The recompiler smoke variants,
coverage loop, module selection, source partitioning, Control-version selection,
Windows data-path resolution and build-kit relocation/rejection checks passed.
The final code also passed all eight platform/source preflight jobs for Linux,
Windows, macOS, Android and libretro. Tagged binaries are produced by the release
workflow only after every required platform build succeeds.

Don't miss a new suyu-main release

NewReleases is sending notifications on new releases.