Dynamic FPS intégré, surcharge CPU réduite et correctifs GPU AMD : comment Lichii nx2 (Builds 83 à 93) accélère l’émulation Switch 2 sur PC

Moins de quarante-huit heures après les premiers essais de Zelda Ocarina of Time à 60 FPS sous Lichii Build 75 avec une GeForce RTX 5080, l’émulateur expérimental open-source C++ dédié à la Nintendo Switch 2 vient de franchir un palier technique majeur sur PC. Entre le 6 et le 7 novembre 2026, le développeur principal zortos293 et plusieurs contributeurs issus de la scène d’émulation ont publié coup sur coup les révisions Build 83 (5a50f50), Build 88 (55532f2) et Build 93 (09b78bd). Au programme de cette salve de correctifs : l’intégration native du mod Dynamic FPS, la refonte de la synchronisation mémoire CPU/GPU issue de la branche Frizti et la résolution de nombreux bugs de shaders sous l’API Vulkan.
Dynamic FPS activé par défaut et optimisations CPU Frizti dès la Build 88
Lors du lancement initial du remake Switch 2 de The Legend of Zelda : Ocarina of Time sur PC, le principal point noir résidait dans la gestion rigide de la vitesse du jeu : dès que le processeur saturait en extérieur entre 20 et 29 images par seconde, toute l’action d’Hyrule tournait au ralenti sans l’ajout manuel d’un patch externe. À compter de la Build 88 (fusionnée via les pull requests #194 et #240), Lichii nx2 intègre nativement le mod Dynamic FPS conçu par le développeur Dark (issu du projet amont Eglantine) et adapté par Frizti.
Désormais activée par défaut dans le menu Add-Ons sous l’intitulé Dynamic FPS (built-in), cette fonction découple la logique interne du moteur de la fréquence d’images tout en vérifiant automatiquement l’intégrité de l’exécutable, le stockage du temporisateur (timer-storage) et l’absence de conflit avec d’éventuels mods installés par l’utilisateur. Les mainteneurs recommandent de conserver le paramètre d’horloge processeur (CPU Clock) sur Normal plutôt que d’activer les modes Boost ou Overclock, ces derniers modifiant le registre temporel utilisé par le patch. En complément, l’option Max Resolution (built-in) ajoutée dès la Build 83 désactive à la volée la réduction de définition dynamique interne du titre.
Pour faire tomber le goulot d’étranglement processeur qui bridait les scènes ouvertes comme la Forêt Kokiri, l’équipe a également fusionné les optimisations d’architecture mémoire de la branche Frizti et du profil perf9 :
- Mise en cache des liaisons de tampons de stockage (Cached storage-buffer bindings) : au lieu de verrouiller les threads et de parcourir la table des pages mémoire du GPU émulé à chaque appel de dessin (draw call), l’émulateur conserve en mémoire les liaisons SSBO tant que l’adresse sous-jacente ne change pas.
- Transferts directs des banques d’uniformes (Direct native uniform-bank uploads) : le suivi lourd par protection de pages mémoire hôte sur les banques constantes de 64 Kio rafraîchies à chaque trame est remplacé par une copie directe en tâche de fond vers la carte graphique.
- Cache Vulkan v53 et décompression parallèle : la compilation des modules de shaders Vulkan et la décompression (unswizzling) des textures natives sont déportées sur des travailleurs d’arrière-plan bornés, tandis que la génération d’images AMD FSR 3 (désactivée par défaut) corrige son historique temporel et son interpolation de mouvement.
Sur une configuration milieu de gamme réunissant un processeur AMD Ryzen 7 5800X3D, une carte graphique NVIDIA GeForce RTX 4070 (12 Go) et 32 Go de DDR4-3200 CL16 sous Windows 11 (pilote NVIDIA 621.01), les relevés mis en ligne par la chaîne Games Hub Benchmarks illustrent l’écart net de fluidité apporté par les optimisations Frizti et la gestion dynamique du framerate, tandis que les architectures à mémoire 3D V-Cache récentes comme le Ryzen 7 9800X3D maintiennent beaucoup plus aisément le cap des 60 FPS.

AMD Ryzen 7 9800X3D (8 Cœurs / 16 Threads)
- Architecture Zen 5 avec 96 Mo de cache L3 3D V-Cache de 2e génération
- Fréquence Boost jusqu'à 5,2 GHz sur socket AM5 (DDR5)
- Idéal pour absorber la traduction de shaders et les appels SSBO en émulation C++
- Compatible Windows 11 et Linux (Ubuntu 24.04 / Fedora 40 / Arch)

Végétation restaurée, correctifs GPU AMD Radeon et décodeur AV1 dans la Build 93
En marge de la cadence d'images, les révisions Build 83 et Build 93 s'attaquent aux anomalies visuelles qui obligeaient jusque-là les joueurs à rejeter manuellement certains hachages de shaders. Dans Ocarina of Time, l'extension des tables de pointeurs en lecture seule permet enfin aux shaders d'herbe et de végétation d'accéder à leurs données d'instance sans disparaître. Le suivi du tampon d'éclairage ambiant du ciel (sky-ambient buffer tracking) restaure la colorimétrie d'Hyrule, le bug de registre de mesh-shader qui rendait les encadrements de portes fluorescents est éliminé, et la réinitialisation des requêtes d'occlusion supprime les flashs blancs d'une image. En parallèle de l'avancée des projets de recompilation native PC d'Ocarina of Time sans émulateur, d'autres titres exclusifs Nintendo Switch 2 profitent de ces avancées : les crashs de copie depth-stencil dans Star Fox sont corrigés, la cadence de présentation de Mario Kart World est réalignée et Donkey Kong Bananza attend désormais sa trame active par défaut pour éviter toute corruption de tampon.

Publiée dans la soirée du 6 novembre, la Build 93 (09b78bd) cible plus particulièrement les cartes graphiques AMD Radeon et la conformité Vulkan grâce aux travaux des contributeurs mja00 (Matt Artist), jpkto, persluffy-cl, jonmakegames, Selevet et sharkiix :
- Correction des écrans noirs et blocages sur GPU AMD (PR
#273et#295) : la gestion des retours imbriqués (nested-return) qui plongeait la scène 3D dans le noir sur Radeon est résolue. Sur le pilote Vulkan propriétaire d'AMD, les opérations de fragment shuffle basculent sur un repli broadcast, les accès SSBO 64 bits et 128 bits mal alignés sont découpés en mots de 32 bits, et l'optimisation pilote est désactivée sur deux compute shaders précis (EFF3CCBE1438679DetF9EA14A22394F5B1) responsables de blocages de compilation de plusieurs minutes. - Décodage vidéo AV1 et profil de performance initial (PR
#284et#314) : le correctif du décodeur AV1 x86-64 (porté par Duck912 depuis Eglantine #675) rejoint le code source pour assurer la lecture des cinématiques Switch 2, tandis que toute nouvelle installation crée automatiquement un profil global optimisé (affûtage FSR 1 adouci, mode GPU Fast, décodage vidéo GPU et compilation asynchrone des shaders). - Rapports de compatibilité communautaires et limites connues (PR
#303) : un outil optionnel accessible par clic droit (Submit compatibility report) permet d'envoyer ses retours d'exécution vers le portail officiellichii.zortos.me. L'équipe précise que le voile atmosphérique résiduel (haze) en extérieur, certaines textures noires sur Radeon, le scintillement de l'interface, l'audio des cinématiques et le gel initial du chargement de shaders sous Linux restent en cours d'analyse.
Mon banc d'essai (avec le regard de Chaya sur le code)
Arthur « Heimdall » (Hardware) : Précisons-le d'emblée par souci de transparence : nous n'avons pas exécuté de copie extraite du jeu sur notre banc de test interne. Sur le plan purement matériel, ce qui me frappe dans la trajectoire entre la Build 75 et la Build 93, c'est que ces correctifs ciblent exactement le goulet d'étranglement processeur que nous pointions lors des premiers relevés sur RTX 5080. Tant que le voile atmosphérique, l'audio des cinématiques AV1 et la synchronisation Vulkan sur les cartes Radeon ne seront pas intégralement réglés, la Nintendo Switch 2 conservera évidemment une longueur d'avance en matière de confort immédiat. Mais comme mon domaine reste le silicium et le banc d'essai matériel, j'ai demandé à Chaya, notre développeuse et spécialiste IA, d'inspecter directement le code source des commits déployés sur GitHub.
Le regard de Chaya (Dev & IA) : « En épluchant le code C++ des pull requests #194, #240, #273 et #295 de Frizti et zortos293, on comprend vite pourquoi le gain de performances est aussi brutal. À l'heure où beaucoup de projets open-source s'appuient sur des assistants IA pour générer du code à la chaîne, l'optimisation de la PR #240 ne doit rien au hasard ni à du code généré à l'aveugle : remplacer une protection mémoire page par page sur des banques de 64 Kio par un cache d'adresses GPU invalidé uniquement sur écriture de registre exige une maîtrise pointue de l'architecture bas niveau. Les diffs sont courts, propres, sans bricolage superflu. C'est du très beau travail d'ingénierie logicielle. »
Retrouvez Pro-Gamer en priorité sur Google
Ajoutez pro-gamer.fr à vos sources préférées pour retrouver nos guides et actus directement dans votre flux Google Discover et vos résultats de recherche.














