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:
– Windows performance: optimized memory-protection updates to search only the affected memory mappings instead of scanning from the beginning of the mapping table. In local Final Fantasy Resonance demo cinematic tests, average performance improved from approximately 16.5 to 29.9 FPS. These were not frame-identical benchmark windows; results depend on the game and hardware, and occasional long frames remain.
– Graphics compatibility: fixed inline indexed draws, addressing missing text in some game. Preserved interpolation arithmetic in depth-writing shaders to address striped or missing pixels observed in Final Fantasy Resonance.
– Vulkan stability: corrected query-report cleanup to prevent stale reports from writing into reused guest memory. Fixed resource-destruction ordering and a settings-lock interaction that could cause a deadlock.
– GPU command handling: improved handling of null buffer bindings and constant-buffer writes, avoiding several GPU-thread panics. Added regression coverage for command arguments split across submissions.
– Updates from Eden: incorporated further fixes across application and applet management, content handling, networking and SSL, controller handling, and graphics-buffer management.
– Windows window handling: fixed resizing after restoring a maximized window, without the earlier re-maximize/restore workaround.
– Interface: the software keyboard now follows the dark theme. Stop and exit confirmations initially focus Cancel to reduce accidental loss of unsaved progress.
– Testing and packaging: extended input recording and replay to Windows, including clean automated recording completion. Generic Linux AppImages now have a distinct name from Steam Deck packages.
Télécharger Ruzu v0.1.1 RC2 (48.6 Mo)
Site Officiel
En savoir plus…