• v1.2.3 9898cfde33

    rooferdev released this 2026-07-19 17:05:26 +00:00 | 0 commits to master since this release

    English

    Improved: cloud and sky ghosting with DLSS — now also with native-resolution 4K mods

    Two improvements in one:

    • Native-resolution configurations (emulator resolution 1x + an in-engine 4K render
      mod, e.g. TOTK Optimizer at 3840x2160): the DLSS motion-quality system was silently
      inactive
      in this configuration — clouds and sky ghosted exactly as raw DLSS. It now
      engages in every resolution configuration, scaled or native.
    • Camera zooms (aiming a bow, spyglass): the anti-transition protection used to mute
      the sky handling during every zoom, letting clouds ghost briefly in broad daylight. It
      now only triggers on real scene cuts (teleports, shrine transitions), never on zooms.

    Known behavior: during roughly the first minute after loading a save, some cloud
    ghosting can appear, fade, and come back while the system arms itself (it has to find the
    game's camera, its depth buffer, and build up motion history). It then settles for the
    rest of the session. This release is an improvement, not perfection — brief cloud
    ghosting can still occur in specific moments.

    Improved: black lines / dark frame echo during camera movement

    The recurring "thin black frame" some players saw while panning the camera had a real
    mechanism behind it: the game leaves a 2-pixel black border on its rendered image at
    scaled resolutions, and the DLSS history smears that border inward during camera motion —
    a dotted echo proportional to pan speed. The border is now repaired before DLSS ever sees
    the image. As a side effect, cloud trails that were fed by the same polluted history are
    also reduced.

    Fixed: crash when toggling fullscreen (F11) or resizing the window with DLSS active

    Toggling fullscreen or resizing while DLSS ran could crash the emulator (GPU errors on the
    swapchain recreation path). The recreation sequence was rebuilt — the old chain and its
    views now retire only once the display is done with them, and the acquire loop follows the
    Vulkan rules to the letter. Validated with hundreds of consecutive fullscreen toggles.

    New: Frame Generation self-recovery

    Frame Generation could silently stop injecting frames (display back to 1x, no error
    anywhere) until a fullscreen toggle happened to revive it. A watchdog now detects that
    state and applies the same remedy automatically within ~8 seconds. If you ever need to
    disable it: set the environment variable RYUJINX_DLSS_FG_WATCHDOG=0.

    Fixed: game list could come up empty after a crash

    If the emulator was killed or crashed at the exact moment it was saving its configuration,
    the config file could be truncated — and your game directories list came up empty on the
    next launch. Configuration files are now written atomically: a crash can no longer damage
    them.

    Fixed: changing DLSS settings could restart with a partial state

    Changing certain DLSS settings restarts the emulator; the restart could come back up with
    only part of the motion-quality profile applied (cloud ghosting returning, border fix
    lost). The full profile is now re-derived from scratch on every restart.

    Fixed: texture corruption with "Force mipmaps" + native-resolution 4K mods

    With the (off by default) Force mipmaps option enabled and an in-engine 4K render
    mod at native emulator resolution, procedural textures (shrine portals, some terrain)
    could show purple/rainbow corruption, most often around shrine transitions. Cause: mip
    levels were being generated behind small render targets the game redraws every frame. Such
    textures are now excluded automatically the moment the game renders into them. Art
    textures keep the full benefit of the option.

    Better diagnostics

    When the DLSS motion-quality system cannot run, it now says why in the log ("camera not
    paired", "depth not paired"...) instead of staying silent. If you report an issue, your
    log will tell us much more than before.

    Reminder — hardware requirements for DLSS

    A lot of reports boil down to this, so let's be explicit:

    • DLSS and DLAA require an NVIDIA RTX GPU (RTX 20 series or newer). They cannot
      work on GTX cards (10/16 series) — the hardware simply lacks the units DLSS runs on.
      This is an NVIDIA limitation, not something the fork can patch around.
    • Frame Generation requires an RTX 40 series or newer.
    • No RTX card? Use NIS (NVIDIA Image Scaling, included in this fork): it runs on any
      GPU and remains the recommended upscaler for GTX and non-NVIDIA cards.
    • A small number of RTX configurations still crash when DLSS activates; this is under
      active investigation — see the pinned diagnostic-build ticket if you are affected.

    Testing scope

    This release was built and validated on a single machine — Zelda TOTK and BOTW as main
    test games, both scaled and native-4K-mod configurations, plus a package-level test of
    the exact archives published here. Other
    GPUs, drivers and games may behave differently: if something regresses for you, open an
    issue with your log and it becomes tomorrow's fix.


    Français

    Amélioré : ghosting des nuages et du ciel avec DLSS — maintenant aussi avec les mods 4K en résolution native

    Deux améliorations en une :

    • Configurations en résolution native (résolution émulateur 1x + un mod de rendu 4K
      in-engine, ex. TOTK Optimizer en 3840x2160) : le système de qualité de mouvement DLSS
      était silencieusement inactif dans cette configuration — les nuages et le ciel
      ghostaient comme avec le DLSS brut. Il s'active désormais dans toutes les configurations
      de résolution, scalées ou natives.
    • Zooms de caméra (visée à l'arc, longue-vue) : la protection anti-transitions coupait
      le traitement du ciel pendant chaque zoom, laissant les nuages ghoster brièvement en
      plein jour. Elle ne se déclenche plus que sur les vraies coupures de scène (téléportations,
      transitions de sanctuaire), jamais sur les zooms.

    Comportement connu : pendant environ la première minute après le chargement d'une
    partie, un peu de ghosting de nuages peut apparaître, s'estomper et revenir pendant que le
    système s'arme (il doit trouver la caméra du jeu, son tampon de profondeur, et bâtir son
    historique de mouvement). Ensuite ça se stabilise pour le reste de la session. Cette
    version est une amélioration, pas la perfection — un bref ghosting de nuages reste
    possible dans certains moments précis.

    Amélioré : lignes noires / écho de cadre sombre pendant les mouvements de caméra

    Le fameux « cadre noir fin » que certains joueurs voyaient en tournant la caméra avait un
    vrai mécanisme derrière : le jeu laisse une bordure noire de 2 pixels sur son image aux
    résolutions scalées, et l'historique DLSS étale cette bordure vers l'intérieur pendant le
    mouvement — un écho pointillé proportionnel à la vitesse du pan. La bordure est désormais
    réparée avant que DLSS ne voie l'image. Effet de bord bienvenu : les traînées de nuages
    nourries par ce même historique pollué sont réduites elles aussi.

    Corrigé : plantage au passage plein écran (F11) ou au redimensionnement avec DLSS actif

    Basculer en plein écran ou redimensionner la fenêtre pendant que DLSS tournait pouvait
    faire planter l'émulateur (erreurs GPU sur le chemin de recréation du swapchain). La
    séquence de recréation a été rebâtie — l'ancienne chaîne et ses vues ne partent que quand
    l'affichage en a fini avec elles, et la boucle d'acquisition suit les règles Vulkan à la
    lettre. Validé avec des centaines de bascules plein écran consécutives.

    Nouveau : auto-récupération de la génération d'images (Frame Generation)

    La génération d'images pouvait s'arrêter en silence (affichage revenu à 1x, aucune erreur
    nulle part) jusqu'à ce qu'un passage plein écran la ressuscite par hasard. Un chien de
    garde détecte maintenant cet état et applique le même remède automatiquement en ~8
    secondes. Pour le désactiver au besoin : variable d'environnement
    RYUJINX_DLSS_FG_WATCHDOG=0.

    Corrigé : liste de jeux vide après un plantage

    Si l'émulateur était tué ou plantait au moment exact où il sauvegardait sa configuration,
    le fichier de config pouvait être tronqué — et votre liste de dossiers de jeux revenait
    vide au lancement suivant. Les fichiers de configuration sont désormais écrits de façon
    atomique : un plantage ne peut plus les abîmer.

    Corrigé : changer les réglages DLSS pouvait redémarrer avec un état partiel

    Changer certains réglages DLSS redémarre l'émulateur ; le redémarrage pouvait revenir avec
    seulement une partie du profil de qualité de mouvement appliquée (ghosting de nuages de
    retour, correctif de bordure perdu). Le profil complet est maintenant reconstruit de zéro
    à chaque redémarrage.

    Corrigé : corruption de textures avec « Forcer les mipmaps » + mods 4K en résolution native

    Avec l'option Forcer les mipmaps (désactivée par défaut) et un mod de rendu 4K
    in-engine en résolution émulateur native, des textures procédurales (portails de
    sanctuaire, certains terrains) pouvaient montrer une corruption mauve/arc-en-ciel, surtout
    autour des transitions de sanctuaire. Cause : des niveaux de mip étaient générés derrière
    de petites cibles de rendu que le jeu redessine chaque frame. Ces textures sont désormais
    exclues automatiquement dès que le jeu dessine dedans. Les textures d'art gardent tout le
    bénéfice de l'option.

    Meilleurs diagnostics

    Quand le système de qualité de mouvement DLSS ne peut pas tourner, il dit maintenant
    pourquoi dans le journal (« caméra non appariée », « profondeur non appariée »...) au lieu
    de rester muet. Si vous rapportez un problème, votre journal nous en dira beaucoup plus
    qu'avant.

    Rappel — matériel requis pour le DLSS

    Beaucoup de rapports se résument à ceci, alors soyons explicites :

    • Le DLSS et le DLAA exigent une carte NVIDIA RTX (série RTX 20 ou plus récente). Ils
      ne peuvent pas fonctionner sur les cartes GTX (séries 10/16) — le matériel n'a tout
      simplement pas les unités sur lesquelles le DLSS tourne. C'est une limite NVIDIA, pas
      quelque chose que le fork peut contourner.
    • La génération d'images (Frame Generation) exige une RTX série 40 ou plus récente.
    • Pas de carte RTX ? Utilisez NIS (NVIDIA Image Scaling, inclus dans ce fork) : il
      fonctionne sur n'importe quel GPU et reste l'upscaler recommandé pour les cartes GTX et
      non-NVIDIA.
    • Un petit nombre de configurations RTX plantent encore à l'activation du DLSS ; c'est en
      cours d'investigation active — voyez le ticket épinglé de build diagnostic si vous êtes
      concerné.

    Portée des tests

    Cette version a été bâtie et validée sur une seule machine — Zelda TOTK et BOTW comme
    jeux de test principaux, en configurations scalée et 4K natif avec mod, plus un test au
    niveau du paquet sur les archives exactes publiées ici. D'autres GPU, pilotes et jeux peuvent se comporter différemment : si quelque chose
    régresse chez vous, ouvrez un ticket avec votre journal et ça devient le correctif de
    demain.

    Downloads