Ruzu est un émulateur Nintendo Switch écrit en Rust, développé comme une expérience visant à déterminer si l’IA, via des modèles de langage (LLM), pouvait réaliser le portage complet d’un projet logiciel de très grande taille de C++ vers Rust.
 

Le projet est basé sur le code de yuzu/Eden et représente environ 500 000 lignes de code portées exclusivement avec l’aide de LLM, sur une période d’environ six mois. L’objectif n’était pas simplement d’obtenir un programme fonctionnel, mais de conserver au maximum la structure du projet original, avec une correspondance entre les fichiers et les différentes parties du code C++ et Rust.
 

 
Ruzu intègre notamment un kernel HLE avec ordonnanceur, fibres, IPC et services, un processeur de commandes GPU, un recompilateur de shaders et un JIT. La recompilation dynamique du code ARM est assurée par rdynarmic, un portage Rust de Dynarmic, avec des backends natifs x86-64 et ARM64. Le projet comprend également rxbyak, un portage Rust de Xbyak pour la génération de code machine x86-64.
 
L’émulateur est déjà capable de démarrer et d’exécuter des jeux commerciaux, avec l’objectif affiché d’atteindre les performances de l’implémentation C++ originale. Le projet reste toutefois en développement.
 
Ruzu dispose également d’un frontend graphique ainsi que d’un frontend en ligne de commande, et peut être compilé sous Windows, Linux, macOS et plusieurs systèmes BSD.
 
Les changements sont:
– Home Menu and applets: improved startup, launching installed applications, firmware-specific application information, and document loading. Fixed menu-focus issues. Home Menu compatibility remains experimental.
– Gamescope and controller navigation: added in-window menus and dropdowns to avoid clipped or hidden popups. Improved navigation throughout the interface, fixed SDL axis-direction handling, and prevented navigation from interfering with control configuration.
– Compatibility and stability: expanded system-service coverage with updates from Eden, corrected service-session ownership and cleanup, and fixed recursive locking during web-applet completion.
– Rendering (Vulkan): incorporated upstream display-composition updates. macOS Vulkan builds now use a pinned, Eden-compatible patched MoltenVK. The experimental Metal backend gains depth/stencil fixes, compiled shader-library reuse, and improved diagnostics.
– Rendering (Metal): The (not so) experimental Metal backend gains depth/stencil fixes, compiled shader-library reuse, and improved diagnostics.
– Packaging and testing: Steam Deck packages can now be built without executing Zen 2 binaries on the host; the resulting AppImage remains Zen 2-targeted. Extended input recording and replay for reproducible interface testing.

 

Télécharger Ruzu v0.1.0 (48.4 Mo)

Site Officiel

En savoir plus…