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:
– Recent files: recently opened games are now remembered between sessions.
– Smoother game-list loading: directories remain hidden while scanning. Only the final filtered list is displayed, avoiding briefly showing empty system directories.
– Windows focus handling: adjusted the shutdown sequence to restore Ruzu’s main window after stopping a game, without intentionally taking focus back if you switched to another application.
– Clock accuracy: fixed guest-clock initialization and synchronization with the host clock, addressing incorrect in-game dates.
– Vulkan: added persistent caching for shared graphics pipelines and periodic saving of per-game pipeline caches.
– Graphics compatibility: improvements to multisampled images, depth/stencil conversions, sampler handling, and SGSR scaling.
– macOS (Metal) – alpha: added readback support for multisampled color images.
– Emulation: fixes to single-core CPU scheduling and system-service state management, plus expanded hardware Opus decoder capacity.
– Build support: fixed Windows compilation issues, added Debian packaging, and improved CachyOS support.
Télécharger Ruzu v0.0.7 (48.2 Mo)
Site Officiel
En savoir plus…