• v1.2.6 a4fb32b727

    rooferdev released this 2026-08-13 20:08:25 +00:00 | 0 commits to master since this release

    English

    Fixed: the crash when changing the resolution scale during a game

    The previous release warned you about this, changing the scale while a game was running could take the graphics driver down with it. That warning is lifted.

    The cause was not the value being written, it was the order. Changing the scale rebuilds every render target, while frame generation is still holding resources declared with the old dimensions, and it only finds out at the next frame it presents. When the rebuild takes longer than one frame, there is no presentation in between, frame generation is never told, a synchronisation object is left unsignalled, and the driver resets the GPU about two seconds later. That is why it felt random, everything depended on the instant you clicked.

    Those two parallel paths are now a single sequence. The new scale is held back, frame generation is stopped first, and the scale is applied only once that is done. Tested over six minutes with frame generation on and eighteen scale changes back and forth across every step, no crash, no driver reset, and none of the early warning signs that used to show up one second before the failure.

    Fixed: the picture drifting with the camera at rest, and the ground losing sharpness while walking

    When you touched nothing, the image could still drift slightly. And while walking, the ground was less sharp than it should have been.

    Both came from the same place. The calculation that places each pixel from one frame to the next chained two matrix multiplications in single precision, with a division in the middle by a value that becomes tiny on distant points. It produced motion where the camera had not moved by a single bit, a fifth of a pixel at mid distance and up to two pixels far away. Measured with rigorously identical matrices, the output should have been zero, and it was not.

    The calculation is now a single multiplication, prepared in double precision. With the camera strictly still, the result is exactly zero. Verified by eye and by measurement on five games across four different engines.

    Fixed: ghosting and stretched scenery

    On some games the scenery stretched while moving, and ghost images settled in without ever clearing up.

    When an engine writes several valid cameras within the same frame, the queue saturates and ends up delivering a camera two frames old, alternating between two values. The result is a stable stretch that sets in and never leaves. At every presentation, the queue now advances to the most recent camera.

    Improved: the shaking of a character followed by the camera

    A character the camera follows stays almost still on screen while the whole world scrolls behind him. Frame generation took the spikes in the motion field at face value and deformed the character in alternation.

    Those spikes are now tamed, with a ceiling and a floor, without changing anything of what image reconstruction receives. The shaking is strongly reduced. Some of it remains on the top of the head and on what the character carries on his back, and work on that continues.

    Improved: the resolution slider stays inside the chosen mode

    The preset chosen in the menu is in charge, and the slider now picks a step inside that mode, from the first to the fourth, without ever spilling over into the neighbouring mode. Before, a fast mode pushed to its maximum could render almost as many pixels as your screen, under a label that promised the opposite.

    The twelve steps of the three modes were checked one by one. They meet to the pixel without overlapping. DLAA is not affected, it keeps working at the resolution the game draws by itself.

    Fixed: camera search, several games that got nothing from motion reconstruction now benefit from it

    Some games never found their camera, and the whole chain stayed idle without saying so. Four distinct causes were fixed: games that draw through a path we were not watching, games that store their camera in a late slot the search never reached, games whose camera is mathematically unusable and was elected anyway, and games that release their buffers along the way, which cut reconstruction off for the rest of the session.

    Several games that would not latch on now do, verified game by game.

    Fixed: the picture stretched when switching to fullscreen

    Switching to fullscreen while a game was running could leave the picture stretched, when the output size changed mid session. The chain now follows that change instead of keeping the old size.

    Removed: a settings checkbox that no longer controlled anything

    The advanced motion stack checkbox had no effect any more, since the settings it used to enable became permanent. Its text promised features that were already active, so it was removed rather than left to mislead.

    Fixed: startup with the --pptc command line option

    The emulator refused to start when launched with that option, because of a type error in the original code, the option was read as an enumeration when it is a simple yes or no. The defect came from the base emulator and is fixed here. It only concerns people who launch from a shortcut or a script.

    Improved: logs are quiet again

    Diagnostic counters were writing dozens of lines per minute while you played. They only served development. The log now keeps what tells you what is active on your machine, and the volume is five times smaller.

    A word about Xenoblade Chronicles 2

    On this game, raising the internal scale beyond the first step brings out thin bright lines on surfaces and along the edges of the picture when the camera turns. The threshold is sharp and reproducible. The first step, which is exactly the value recommended for the mode, is clean. If you see those lines on this game, bring the slider down one step.

    Requirements

    DLSS in all its modes, DLAA, Quality, Balanced and Performance, needs an NVIDIA RTX card, series 20 or newer. Frame Generation needs a series 40 or 50. Without an RTX card, NIS is included in this fork and runs on any GPU.

    The DLSS engine files are not in the package, they are NVIDIA proprietary files.


    Français

    Corrigé : le plantage quand on change la résolution en cours de partie

    La version précédente vous mettait en garde là-dessus, changer l'échelle pendant qu'un jeu tournait pouvait emporter le pilote graphique. Cet avertissement est levé.

    La cause n'était pas la valeur écrite, c'était l'ordre des opérations. Changer l'échelle reconstruit toutes les cibles de rendu, pendant que la génération d'images tient encore des ressources déclarées avec les anciennes dimensions, et elle ne l'apprend qu'à l'image suivante qu'elle présente. Quand la reconstruction dure plus d'une image, il n'y a pas de présentation entre les deux, la génération d'images n'est jamais prévenue, un objet de synchronisation reste sans signal, et le pilote réinitialise la carte deux secondes plus tard. C'est pour ça que ça semblait arriver au hasard, tout dépendait de l'instant du clic.

    Les deux chemins parallèles sont devenus une seule séquence. La nouvelle échelle est mise en attente, la génération d'images est coupée d'abord, et l'échelle n'est appliquée qu'une fois la coupure faite. Testé sur six minutes avec la génération d'images allumée et dix-huit changements d'échelle dans tous les sens, aucun plantage, aucune réinitialisation du pilote, et aucun des signes précurseurs qui apparaissaient une seconde avant la panne.

    Corrigé : l'image qui glissait caméra immobile, et le sol qui perdait sa netteté en marchant

    Quand vous ne touchiez à rien, l'image pouvait dériver légèrement. Et en marchant, le sol devenait moins net qu'il n'aurait dû.

    Les deux venaient du même endroit. Le calcul qui replace chaque pixel d'une image à l'autre enchaînait deux multiplications de matrices en précision simple, avec au milieu une division par une valeur qui devient minuscule sur les points lointains. Il en sortait du mouvement là où la caméra n'avait pas bougé d'un seul bit, un cinquième de pixel à mi-distance et jusqu'à deux pixels au loin. Mesuré avec des matrices rigoureusement identiques, la sortie aurait dû être zéro, elle ne l'était pas.

    Le calcul se fait maintenant en une seule multiplication, préparée en double précision. Caméra strictement immobile, le résultat est zéro exact. Vérifié à l'œil et à la mesure sur cinq jeux et quatre moteurs différents.

    Corrigé : les images fantômes et l'étirement du décor

    Sur certains jeux, le décor s'étirait en mouvement et des images fantômes s'installaient sans jamais se résorber.

    Quand un moteur écrit plusieurs caméras valides dans la même image, la file d'attente sature et finit par livrer une caméra vieille de deux images, qui alterne entre deux valeurs. Le résultat est un étirement stable, qui s'installe et ne part plus. À chaque présentation, la file défile maintenant jusqu'à la caméra la plus récente.

    Amélioré : le tremblement du personnage suivi par la caméra

    Un personnage que la caméra suit reste presque immobile à l'écran, alors que tout le décor défile derrière lui. La génération d'images croyait sur parole les pointes du champ de mouvement et déformait le personnage en alternance.

    Ces pointes sont maintenant apprivoisées, avec un plafond et un plancher, sans rien changer à ce que reçoit la reconstruction d'image. Le tremblement est fortement réduit. Il en subsiste un peu sur le dessus de la tête et sur ce que le personnage porte dans le dos, et le travail se poursuit là-dessus.

    Amélioré : le curseur de résolution reste dans le mode choisi

    Le preset choisi dans le menu commande, et le curseur choisit maintenant un échelon à l'intérieur de ce mode, du premier au quatrième cran, sans jamais déborder sur le mode voisin. Auparavant, un mode rapide poussé au maximum pouvait rendre presque autant de pixels que votre écran, sous une étiquette qui promettait le contraire.

    Les douze crans des trois modes ont été vérifiés un par un. Ils se touchent au pixel près sans se chevaucher. DLAA n'est pas concerné, il continue de travailler à la résolution que le jeu dessine lui-même.

    Corrigé : la recherche de caméra, plusieurs jeux qui n'en profitaient pas en profitent maintenant

    Certains jeux ne trouvaient jamais leur caméra, et toute la chaîne restait inactive sans le dire. Quatre causes distinctes ont été corrigées : les jeux qui dessinent par un chemin que nous ne regardions pas, ceux qui rangent leur caméra dans un emplacement tardif que la recherche n'atteignait jamais, ceux dont la caméra est mathématiquement inutilisable et se faisait quand même élire, et ceux qui libèrent leurs tampons en cours de route, ce qui coupait la reconstruction pour le reste de la partie.

    Plusieurs jeux qui n'accrochaient pas accrochent désormais, vérifié jeu par jeu.

    Corrigé : l'image étirée au passage en plein écran

    Passer en plein écran pendant qu'un jeu tournait pouvait laisser l'image étirée, quand la taille de sortie changeait en cours de partie. La chaîne suit maintenant ce changement au lieu de garder l'ancienne taille.

    Retiré : une case des réglages qui ne commandait plus rien

    La case de la pile de mouvement avancée n'avait plus d'effet depuis que les réglages qu'elle activait sont devenus permanents. Son texte promettait des fonctions déjà actives, elle a été retirée pour ne pas induire en erreur.

    Corrigé : le démarrage avec l'option --pptc

    L'émulateur refusait de démarrer quand on le lançait avec cette option en ligne de commande, à cause d'une erreur de type dans le code d'origine, l'option était lue comme une énumération alors que c'est un simple oui ou non. Le défaut venait de l'émulateur de base, il est corrigé ici. Ça ne concerne que ceux qui lancent depuis un raccourci ou un script.

    Amélioré : les journaux sont redevenus discrets

    Des compteurs de diagnostic écrivaient des dizaines de lignes par minute pendant que vous jouiez. Ils ne servaient qu'au développement. Le journal ne garde plus que ce qui dit ce qui est actif chez vous, et le volume a été divisé par cinq.

    Un mot sur Xenoblade Chronicles 2

    Sur ce jeu, monter l'échelle interne au-delà du premier cran fait apparaître de fines lignes claires sur les surfaces et sur les bords de l'image quand la caméra tourne. Le seuil est net et il est reproductible. Le premier cran, qui correspond exactement à la valeur recommandée pour le mode, est propre. Si vous voyez ces lignes sur ce jeu, redescendez le curseur d'un cran.

    Prérequis

    DLSS dans tous ses modes, DLAA, Qualité, Équilibré et Performance, demande une carte NVIDIA RTX, série 20 ou plus récente. La génération d'images demande une série 40 ou 50. Sans carte RTX, NIS est inclus dans ce fork et fonctionne sur n'importe quelle carte.

    Les fichiers du moteur DLSS ne sont pas dans le paquet, ce sont des fichiers propriétaires de NVIDIA.

    Downloads
  • v1.2.5 a4fb32b727

    rooferdev released this 2026-08-06 00:58:35 +00:00 | 0 commits to master since this release

    English

    Fixed: DLSS quality modes that would not turn on, or turned on without helping

    If you play on a screen larger than 1080p, or if you raised the resolution scale, DLSS could
    quietly fail to do its job. In the worst cases it did not turn on at all. In others it turned on
    but ran far below the quality its own name promised, so Quality looked closer to Ultra
    Performance.

    The cause is a window. For any output resolution, DLSS publishes a range of input resolutions it
    accepts, and a recommended value inside that range. When the game rendered above the top of that
    window, which happens quickly at 1440p or 4K with the scale raised, DLSS refused the frame.
    Nothing told you why.

    The emulator now reads that window at startup and brings the internal resolution back inside it,
    landing on the exact value DLSS recommends. On a 1440p screen with the scale at 3x, the internal
    resolution used to be asked for at 4099x2306, which DLSS rejects. It now lands at 1641x923, the
    recommended value to the pixel, and DLSS stays on.

    One thing it deliberately does not do: it never raises your resolution. If your internal
    resolution is below what DLSS would prefer, it is left alone. The scale is your setting, not
    mine, and raising it behind your back would cost you performance you did not ask to spend. This
    means that on a large screen with the scale on native, the picture handed to DLSS can be small,
    and fine distant detail can shimmer. If you see that, raising the resolution scale is what helps,
    and the fix above makes sure DLSS keeps working when you do.

    Fixed: vertical lines along the edges of the picture

    When the camera turned, thin vertical bands could appear down the sides of the screen. Pixels
    entering from outside the frame have no history behind them, and the fork was pulling all of them
    back onto the same column of pixels, which then repeated across the whole band.

    The strength of the correction now follows how far outside the frame each pixel actually sits.
    A pixel barely grazing the edge keeps its history, one that is clearly outside falls back on the
    current colour. There is no hard boundary left, so there is no visible band. The cost is that the
    outer edges look slightly softer while you turn. I tested this on Xenoblade Chronicles 2,
    Breath of the Wild and Ghostbusters Spirits Unleashed.

    Improved: the advanced motion stack checkbox

    The Advanced motion stack checkbox is still off by default and still experimental, but the
    trembling it could add on some games is fixed.

    When a game does not store its camera where we expect, the fork votes among memory locations to
    find it. One misleading location could win that vote and describe motion that does not exist, and
    the picture shook. That kind of candidate is now thrown out of the vote and barred for the rest of
    the session. On the game where I could measure it, the rejected location was claiming a camera
    movement more than thirty thousand times larger than the real one.

    A word of caution about the resolution scale

    If you change the resolution scale while a game is running, be careful. On my machine, switching
    to 3x mid game brought the graphics driver down. Native and 2x have never done that to me, but the
    action stays risky, because it rebuilds every render target while the game is still drawing. The
    safest habit is to set the scale from the menu, before you launch a game.

    Requirements

    DLSS in all its modes, DLAA, Quality, Balanced and Performance, needs an NVIDIA RTX card, RTX 20
    series or newer. Frame Generation needs an RTX 40 or 50 series. If you do not have an RTX card,
    NIS is included in this fork and runs on any GPU.

    The DLSS engine files are not in the package, because they are NVIDIA's proprietary DLLs and I
    will not redistribute them. What the package does ship is the dlss folder next to the
    executable, with NVIDIA's six Streamline files, which are MIT licensed. In that same folder you
    add your own, taken from a DLSS game you own: nvngx_dlss.dll for upscaling, nvngx_dlssg.dll
    for Frame Generation, which the NVIDIA driver usually provides already, and NvLowLatencyVk.dll
    if your driver does not.

    Known issue: Frame Generation still produces ghost images

    With Frame Generation enabled, ghost or "temporal" images can still appear, doubled edges and
    trails on moving content. Turning Frame Generation off removes them. This remains the number one
    thing being worked on: the generated frames are built from motion vectors we reconstruct, and
    those describe the camera better than they describe objects that move on their own. Clouds, title
    screens and anything drifting by itself are the hard cases. If ghosting bothers you more than the
    extra smoothness helps, set Frame Generation to Off in the graphics settings.

    Known issue: loading can hang on some games

    On some games, loading or the menu occasionally stops progressing. The picture keeps drawing, but
    the game stops advancing. Closing and reopening the emulator clears it. This is not solved yet:
    the freeze happens on the game's own side, and it predates the changes in this release.


    Français

    Corrigé : les modes de qualité DLSS qui ne s'activaient pas, ou qui s'activaient sans aider

    Si vous jouez sur un écran plus grand que le 1080p, ou si vous avez monté l'échelle de résolution,
    le DLSS pouvait discrètement ne pas faire son travail. Dans le pire des cas il ne s'activait pas
    du tout. Dans d'autres il s'activait, mais tournait très en dessous de la qualité que son nom
    promet, au point que Quality ressemblait davantage à Ultra Performance.

    La cause est une fenêtre. Pour une résolution de sortie donnée, le DLSS publie une plage de
    résolutions d'entrée qu'il accepte, et une valeur recommandée à l'intérieur. Quand le jeu rendait
    au dessus du haut de cette fenêtre, ce qui arrive vite en 1440p ou en 4K avec l'échelle montée, le
    DLSS refusait l'image. Rien ne vous disait pourquoi.

    L'émulateur lit maintenant cette fenêtre au démarrage et ramène la résolution interne à
    l'intérieur, en atterrissant sur la valeur exacte que le DLSS recommande. Sur un écran 1440p avec
    l'échelle en 3x, l'interne était demandé à 4099x2306, que le DLSS rejette. Il atterrit désormais à
    1641x923, la valeur recommandée au pixel près, et le DLSS reste actif.

    Une chose qu'il ne fait volontairement pas : il ne monte jamais votre résolution. Si votre
    résolution interne est en dessous de ce que le DLSS préférerait, on n'y touche pas. L'échelle est
    votre réglage, pas le mien, et la monter dans votre dos vous coûterait des performances que vous
    n'avez pas choisi de dépenser. Cela veut dire que sur un grand écran avec l'échelle en natif,
    l'image donnée au DLSS peut être petite, et les détails fins au loin peuvent scintiller. Si vous
    voyez ça, c'est de monter l'échelle de résolution qui aide, et le correctif ci dessus fait en
    sorte que le DLSS continue de fonctionner quand vous le faites.

    Corrigé : lignes verticales sur les bords de l'image

    Quand la caméra tournait, de fines bandes verticales pouvaient apparaître le long des côtés de
    l'écran. Les pixels qui entrent depuis l'extérieur du cadre n'ont pas d'historique derrière eux,
    et le fork les rabattait tous sur la même colonne de pixels, qui se répétait ensuite sur toute la
    bande.

    La force de la correction suit maintenant de combien chaque pixel sort réellement du cadre. Un
    pixel qui effleure le bord garde son historique, un pixel franchement à l'extérieur se rabat sur
    la couleur actuelle. Il n'y a plus de frontière nette, donc plus de bande visible. Le prix, c'est
    que les bords extérieurs paraissent légèrement plus doux pendant que vous tournez. Testé sur
    Xenoblade Chronicles 2, Breath of the Wild et Ghostbusters Spirits Unleashed.

    Amélioré : la case « pile de mouvement avancée »

    La case Advanced motion stack reste désactivée par défaut et reste expérimentale, mais le
    tremblement qu'elle pouvait ajouter sur certains jeux est corrigé.

    Quand un jeu ne range pas sa caméra là où on l'attend, le fork organise un vote entre plusieurs
    emplacements mémoire pour la retrouver. Un emplacement trompeur pouvait gagner ce vote et décrire
    un mouvement qui n'existe pas, et l'image tremblait. Ce genre de candidat est désormais écarté du
    vote et interdit pour le reste de la session. Sur le jeu où j'ai pu le mesurer, l'emplacement
    rejeté annonçait un mouvement de caméra plus de trente mille fois plus grand que le vrai.

    Une mise en garde sur l'échelle de résolution

    Si vous changez l'échelle de résolution pendant qu'un jeu tourne, faites le avec prudence. Chez
    moi, le passage en 3x en pleine partie a fait tomber le pilote graphique. Le natif et le 2x ne
    m'ont jamais fait ça, mais le geste reste risqué, parce qu'il reconstruit toute la mémoire
    graphique pendant que le jeu est en train de dessiner. Le plus sûr, c'est de régler l'échelle
    depuis le menu, avant de lancer votre jeu.

    Prérequis

    Le DLSS dans tous ses modes, DLAA, Quality, Balanced et Performance, exige une carte NVIDIA RTX,
    série 20 ou plus récente. La Frame Generation exige une RTX série 40 ou 50. Si vous n'avez pas de
    carte RTX, le NIS est inclus dans ce fork et fonctionne sur n'importe quel GPU.

    Les fichiers du moteur DLSS ne sont pas dans le paquet, parce que ce sont des DLL propriétaires de
    NVIDIA et que je ne les redistribue pas. Ce que le paquet contient, c'est le dossier dlss à côté
    de l'exécutable, avec les six fichiers Streamline de NVIDIA, sous licence MIT. Dans ce même
    dossier vous ajoutez les vôtres, pris dans un jeu DLSS que vous possédez : nvngx_dlss.dll pour
    la mise à l'échelle, nvngx_dlssg.dll pour la Frame Generation, que le pilote NVIDIA fournit
    généralement déjà, et NvLowLatencyVk.dll si votre pilote ne le fournit pas.

    Limite connue : la Frame Generation produit encore des images fantômes

    Avec la Frame Generation activée, des images fantômes ou « temporelles » peuvent encore
    apparaître, contours dédoublés et traînées sur ce qui bouge. Désactiver la Frame Generation les
    fait disparaître. Ça reste le chantier numéro un : les images générées sont construites à partir
    de vecteurs de mouvement que nous reconstruisons, et ceux ci décrivent mieux la caméra que les
    objets qui bougent d'eux mêmes. Les nuages, les écrans de titre et tout ce qui dérive tout seul
    sont les cas difficiles. Si les fantômes vous gênent plus que la fluidité supplémentaire ne vous
    apporte, mettez la Frame Generation sur Off dans les paramètres graphiques.

    Limite connue : le chargement peut se bloquer sur certains jeux

    Sur certains jeux, le chargement ou le menu cesse parfois d'avancer. L'image continue de
    s'afficher, mais le jeu n'avance plus. Fermer et rouvrir l'émulateur règle le problème. Ce n'est
    pas encore résolu : le blocage se produit du côté du jeu lui même, et il est antérieur aux
    changements de cette version.

    Downloads
  • v1.2.4 6634d3ef87

    rooferdev released this 2026-08-03 17:44:30 +00:00 | 1 commits to master since this release

    English

    I am shipping this update because I caught a bug I had introduced myself in v1.2.3, the
    one that turns the screen green in some games. It could in principle affect any game, so
    please take this update even if yours looked fine.

    One correction while I am at it: the black block artifacts some of you saw in
    motion-blur scenes, the ones I had described as a long-standing emulation defect and worked around by skipping the
    motion-blur pass, were caused by that same bug of mine. They were never an old emulator
    problem, they were mine. They are gone now, and the motion blur stays on.

    Fixed: green screen in several games

    Some games — several Unreal Engine titles among them — rendered their menus and videos
    correctly but showed a green (or corrupted) screen the moment 3D gameplay started. The
    cause was a real bug in this fork, introduced in v1.2.3: a constant used by the DLSS
    system was never delivered to the GPU when DLSS jitter was off, and every 3D shader ended
    up reading uninitialized memory. Depending on what the graphics driver had left in that
    memory, a game could look perfectly fine, glitch occasionally, or go fully green.

    The offending code has been removed: with jitter off — which is how this fork ships — the
    vertex shaders are now translated exactly as the base emulator does, so there is nothing
    left to corrupt. To be clear about what this is: we broke it, and we undid it.

    The same bug also produced black block artifacts in motion-blur scenes on this fork (that
    pass expands points into quads; hand it undefined vertex positions and it draws blocks).
    Those are gone too, and the motion blur no longer has to be disabled to avoid them.
    Verified on the previously-broken games. If a specific title still shows issues, it is a
    separate cause — please report it on the community.

    Every v1.2.3 user should take this update: the bug could in principle touch any
    game, even ones that appeared to work.

    New: DLSS Sharpening slider

    A DLSS Sharpening slider (0–100) in Settings → Graphics, right under Frame Generation.
    It applies the same contrast-adaptive sharpening used by the FSR filter, directly on the
    DLSS output — HDR is handled correctly and it costs almost nothing. 0 = off (the default;
    existing setups are unchanged). Around 25–40 is subtle; higher is noticeably crisper but
    can make halos and shimmer more visible in motion. Applied on the next launch, like the
    other DLSS settings.

    An experimental Advanced motion stack checkbox is also present, off by default. It
    improves camera tracking: it reads the camera even when a game stores it in an unusual place,
    it rejects misleading matrices such as sky or reflections, and it stops mistaking the game's
    own sampling jitter for real motion. It removes nothing from the image. It has only been
    tested on Xenoblade Chronicles 2, and it can add trembling in motion on other games, so leave
    it off unless you want to experiment.

    Requirements

    DLSS in all its modes — DLAA, Quality, Balanced and Performance — needs an NVIDIA RTX card,
    RTX 20 series or newer. Frame Generation needs an RTX 40 or 50 series. If you do not have an
    RTX card, NIS is included in this fork and runs on any GPU, and the green screen fix above
    matters to you either way.

    The DLSS engine files are not in the package, because they are NVIDIA's proprietary DLLs and I
    will not redistribute them. What the package does ship is the dlss folder next to the
    executable, with NVIDIA's six Streamline files, which are MIT licensed. In that same folder you
    add your own, taken from a DLSS game you own: nvngx_dlss.dll for upscaling, nvngx_dlssg.dll
    for Frame Generation, which the NVIDIA driver usually provides already, and NvLowLatencyVk.dll
    if your driver does not.

    Known issue: Frame Generation still produces ghost images

    With Frame Generation enabled, ghost or "temporal" images can still appear — doubled
    edges and trails on moving content. Turning Frame Generation off removes them. This
    is the number one thing being worked on right now: the generated frames are built from
    motion vectors we reconstruct, and those describe the camera better than they describe
    individual moving objects. If ghosting bothers you more than the extra smoothness helps,
    set Frame Generation to Off in the graphics settings.

    Known issue: loading can hang on some games

    On some games, loading (or the menu) occasionally stops progressing — the
    picture keeps drawing, but the game stops advancing. Closing and reopening the emulator
    clears it. We captured this live several times and it is not solved yet: the freeze
    happens on the game's own side, and it predates the changes in this release. If you hit
    it, closing and relaunching is the workaround for now.


    Français

    J'envoie cette mise à jour parce que j'ai attrapé un bug que j'avais moi-même introduit en
    v1.2.3, celui qui rend l'écran vert dans certains jeux. Il pouvait en principe toucher
    n'importe quel jeu, alors prenez la mise à jour même si le vôtre semblait correct.

    Une correction au passage : les blocs noirs que certains ont vus dans les scènes avec
    flou de mouvement, ceux que j'avais décrits comme un vieux défaut d'émulation et que je contournais en désactivant la passe de
    flou de mouvement, venaient du même bug — le mien. Ça n'a jamais été un problème ancien de
    l'émulateur, c'était moi. Ils sont partis, et le flou de mouvement reste actif.

    Corrigé : écran vert dans plusieurs jeux

    Certains jeux — plusieurs titres Unreal Engine notamment — affichaient correctement leurs
    menus et vidéos, mais montraient un écran vert (ou corrompu) dès que la 3D commençait.
    La cause était un vrai bug de ce fork, introduit en v1.2.3 : une constante du système
    DLSS n'était jamais livrée au GPU quand le jitter DLSS était éteint, et tous les shaders
    3D lisaient de la mémoire non initialisée. Selon ce que le pilote graphique avait laissé
    dans cette mémoire, un jeu pouvait sembler parfait, glitcher par moments, ou devenir
    entièrement vert.

    Le code fautif a été retiré : avec le jitter éteint — c'est ainsi que ce fork est livré —
    les vertex shaders sont désormais traduits exactement comme le fait l'émulateur de base,
    il n'y a donc plus rien à corrompre. Pour être clair sur ce que c'est : on l'avait cassé,
    on l'a défait.

    Le même bug produisait aussi les blocs noirs dans les scènes avec flou de mouvement sur ce
    fork (cette passe dilate des points en carrés ; donnez-lui des positions indéfinies, elle
    dessine des blocs). Ils disparaissent également, et il n'est plus nécessaire de désactiver
    le flou de mouvement pour les éviter. Vérifié sur les jeux qui étaient cassés. Si un titre
    précis montre encore des problèmes, c'est une cause distincte — signalez-le sur la
    communauté.

    Tous les utilisateurs de la v1.2.3 devraient prendre cette mise à jour : le bug
    pouvait en principe toucher n'importe quel jeu, même ceux qui semblaient fonctionner.

    Nouveau : curseur de netteté DLSS

    Un curseur DLSS Sharpening (0–100) dans Paramètres → Graphismes, juste sous la Frame
    Generation. Il applique la même netteté adaptative que le filtre FSR, directement sur la
    sortie DLSS — le HDR est géré correctement et le coût est négligeable. 0 = désactivé (le
    défaut ; les configurations existantes ne changent pas). Autour de 25–40 c'est subtil ;
    plus haut, c'est nettement plus croustillant mais les halos et le scintillement en
    mouvement deviennent plus visibles. Appliqué au prochain lancement, comme les autres
    réglages DLSS.

    Une case Advanced motion stack expérimentale est également présente, désactivée par
    défaut
    . Elle améliore le suivi de la caméra : elle lit la caméra même quand un jeu la range
    dans un endroit inhabituel, elle rejette les matrices trompeuses comme le ciel ou les reflets,
    et elle ne confond plus le tremblement d'échantillonnage du jeu avec du mouvement réel. Elle ne
    retire rien de l'image. Elle n'a été testée que sur Xenoblade Chronicles 2, et elle peut au
    contraire ajouter du tremblement en mouvement sur d'autres jeux, alors laissez-la éteinte sauf
    si vous voulez expérimenter.

    Prérequis

    Le DLSS dans tous ses modes — DLAA, Quality, Balanced et Performance — exige une carte NVIDIA
    RTX, série 20 ou plus récente. La Frame Generation exige une RTX série 40 ou 50. Si vous n'avez
    pas de carte RTX, le NIS est inclus dans ce fork et fonctionne sur n'importe quel GPU, et de
    toute façon le correctif de l'écran vert ci-dessus vous concerne.

    Les fichiers du moteur DLSS ne sont pas dans le paquet, parce que ce sont des DLL propriétaires
    de NVIDIA et que je ne les redistribue pas. Ce que le paquet contient, c'est le dossier dlss
    à côté de l'exécutable, avec les six fichiers Streamline de NVIDIA, sous licence MIT. Dans ce
    même dossier vous ajoutez les vôtres, pris dans un jeu DLSS que vous possédez :
    nvngx_dlss.dll pour la mise à l'échelle, nvngx_dlssg.dll pour la Frame Generation, que le
    pilote NVIDIA fournit généralement déjà, et NvLowLatencyVk.dll si votre pilote ne le fournit
    pas.

    Limite connue : la Frame Generation produit encore des images fantômes

    Avec la Frame Generation activée, des images fantômes ou « temporelles » peuvent encore
    apparaître — contours dédoublés et traînées sur ce qui bouge. Désactiver la Frame
    Generation les fait disparaître.
    C'est le chantier numéro un en ce moment : les images
    générées sont construites à partir de vecteurs de mouvement que nous reconstruisons, et
    ceux-ci décrivent mieux la caméra que les objets qui bougent individuellement. Si les
    fantômes vous gênent plus que la fluidité supplémentaire ne vous apporte, mettez la Frame
    Generation sur Off dans les paramètres graphiques.

    Limite connue : le chargement peut se bloquer sur certains jeux

    Sur certains jeux, le chargement (ou le menu) cesse parfois d'avancer — l'image
    continue de s'afficher, mais le jeu n'avance plus. Fermer et rouvrir l'émulateur règle le
    problème. Nous l'avons capturé en direct à plusieurs reprises et il n'est pas encore
    résolu
    : le blocage se produit du côté du jeu lui-même, et il est antérieur aux
    changements de cette version. Si ça vous arrive, fermer et relancer reste le contournement
    pour l'instant.

    Downloads
  • v1.2.3 9898cfde33

    rooferdev released this 2026-07-19 17:05:26 +00:00 | 2 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
  • v1.2.2 95106fcb4a

    rooferdev released this 2026-07-15 00:47:14 +00:00 | 7 commits to master since this release

    The Beast Roofer Edition 1.2.2, stability update

    A small update aimed at a startup crash some players reported when using DLSS on certain NVIDIA GPUs, where the emulator closed a few seconds after launching a game. We could not reproduce it on our own hardware, so this change is built from their logs. It should resolve it, but if DLSS was crashing for you, please try this version and tell us whether it helped.

    What changed

    • Startup no longer depends on a dedicated hardware queue that some NVIDIA GPUs were rejecting. If that queue is refused, the emulator now continues gracefully instead of closing. DLSS and Frame Generation keep working; one hardware accelerator (optical flow) is skipped and its work is done in software, which is not visible while playing.

    Help us confirm

    • Since we cannot reproduce the crash here, we cannot promise it is gone on every card. This version records the details we need in the log. If the emulator still closes when you enable DLSS, please send us your log so we can finish the fix.

    The Beast Roofer Edition 1.2.2, mise à jour de stabilité

    Petite mise à jour visant un plantage au démarrage signalé par certains joueurs avec le DLSS sur certaines cartes NVIDIA, où l'émulateur se fermait quelques secondes après le lancement d'un jeu. Nous n'avons pas pu le reproduire sur notre propre matériel, donc ce changement est bâti à partir de leurs journaux. Il devrait le résoudre, mais si le DLSS plantait chez vous, essayez cette version et dites-nous si ça a aidé.

    Ce qui change

    • Le démarrage ne dépend plus d'une file matérielle dédiée que certaines cartes NVIDIA refusaient. Si cette file est refusée, l'émulateur continue proprement au lieu de se fermer. Le DLSS et la Frame Generation continuent de fonctionner ; un accélérateur matériel (optical flow) est contourné et son travail est fait de façon logicielle, ce qui n'est pas visible en jeu.

    Aidez-nous à confirmer

    • Comme nous ne pouvons pas reproduire le plantage ici, nous ne pouvons pas promettre qu'il a disparu sur toutes les cartes. Cette version enregistre dans le journal les détails dont nous avons besoin. Si l'émulateur se ferme encore quand vous activez le DLSS, envoyez-nous votre journal pour qu'on termine le correctif.
    Downloads
  • v1.2.1 dd0b9872e1

    rooferdev released this 2026-07-14 02:00:28 +00:00 | 8 commits to master since this release

    The Beast Roofer Edition 1.2.1, stability update

    Maintenance update focused on stability, with minor fixes. Recommended for everyone.

    Fixed

    • Several crashes and freezes, including the long standing random crash when closing a game.
    • A GPU crash with Frame Generation in dynamic resolution games.
    • The crash when TAA and DLSS were enabled together.
    • The startup zoom and the black line with DLSS Quality.
    • The brief ghost image when a game starts.
    • Black lines during camera pans are greatly reduced.
    • Smoother gameplay: internal diagnostics are now fully disabled in normal play.
    • The DLSS and FG badges now reflect the real activity.

    Note

    The first session after the update recompiles shaders, performance settles after a few minutes.

    Resolution scale 2x and 4x are recommended with DLSS. 3x can still show a faint line, we are working on it.

    The Performance and Balanced modes can show a brief artifact when a game starts. A fix is planned for the next update.

    If a mod or optimizer already sets the game resolution (for example 4K in engine), keep Resolution Scale on Native and use DLAA.


    The Beast Roofer Edition 1.2.1, mise à jour de stabilité

    Mise à jour de maintenance axée sur la stabilité, avec des correctifs mineurs. Recommandée pour tous.

    Corrigé

    • Plusieurs plantages et gels, dont le vieux plantage aléatoire à la fermeture d'un jeu.
    • Un plantage GPU avec la Frame Generation dans les jeux à résolution dynamique.
    • Le plantage quand le TAA et le DLSS étaient activés ensemble.
    • Le zoom au démarrage et la ligne noire en DLSS Qualité.
    • La brève image fantôme au lancement d'un jeu.
    • Les lignes noires pendant les mouvements de caméra sont fortement réduites.
    • Jeu plus fluide : les diagnostics internes sont maintenant complètement désactivés en jeu normal.
    • Les pastilles DLSS et FG reflètent maintenant l'activité réelle.

    Note

    La première session après la mise à jour recompile les shaders, les performances se stabilisent après quelques minutes.

    Les échelles de résolution 2x et 4x sont recommandées avec le DLSS. La 3x peut encore montrer une fine ligne, nous y travaillons.

    Les modes Performance et Équilibré peuvent montrer un bref artefact au lancement d'un jeu. Un correctif est prévu dans la prochaine mise à jour.

    Si un mod ou un optimizer fixe déjà la résolution du jeu (par exemple 4K interne), gardez l'échelle de résolution sur Native et utilisez DLAA.

    Downloads
  • v1.2.0 2dfa89fb0a

    rooferdev released this 2026-07-12 04:10:22 +00:00 | 9 commits to master since this release

    The Beast Roofer Edition, DLSS update

    NVIDIA DLSS comes to The Beast Roofer Edition.

    This update brings a full DLSS pipeline to the Vulkan renderer, with real settings in the interface. Everything is optional, the default behavior stays 100 % stock.

    What you can enable in Settings, Graphics

    DLSS with four modes: DLAA (maximum quality), Quality, Balanced and Performance. The game renders at a lower internal resolution and DLSS reconstructs the image, big FPS gains at near native quality.

    Frame Generation (RTX 40 and 50 series): off, 2x or 3x. Extra generated frames for a display that is two or three times smoother.

    The DLSS model preset, your choice: K, M, L, J or F.

    Runtime mipmap generation: many Switch games stream their textures without mipmaps, which shimmers as soon as you upscale. The emulator builds the missing chains in memory, automatically, for any game. No pack, no files, nothing per game.

    Real motion vectors: the emulator computes camera accurate motion vectors and feeds them to DLSS and to Frame Generation, with dedicated handling for sky and clouds.

    A DLSS setting change applies when the application restarts: one click on Yes in the window that appears and it relaunches itself.

    An honest word

    I am not selling you a dream. All of this is still experimental. It works on my machine and on the games I tested, but every game is different and there is work left. If something looks wrong on your side, tell me, that is how this moves forward.

    Requirements and notes

    NVIDIA RTX GPU. Frame Generation needs an RTX 40 or 50 series card.

    The package ships the dlss folder, next to the executable, with NVIDIA's six Streamline files (MIT license): sl.interposer.dll, sl.common.dll, sl.dlss.dll, sl.dlss_g.dll, sl.pcl.dll and sl.reflex.dll.

    The DLSS engine DLLs are not included. In that same dlss folder, add, taken from a DLSS game you own: nvngx_dlss.dll for upscaling, nvngx_dlssg.dll for Frame Generation, and NvLowLatencyVk.dll if your driver does not already provide it.

    If a mod offers its own resolution or upscaling option (for example TOTK Optimizer), set it to native, 1x. One upscaler in the chain: the emulator and DLSS handle resolution.

    With Frame Generation and HDR both active, the display encoding switches automatically to PQ: same light, an encoding Frame Generation supports.

    Set graphics backend logging to None for full performance.

    Compatible with the HDR output from previous releases.

    Camera jitter

    We also got camera jitter working, the technique that shifts the image by a fraction of a pixel every frame so DLSS can reconstruct even more detail. It works, but it makes some distant textures shimmer, especially trees. I am still looking for the right way to fix that, so it ships disabled for now. If anyone has an idea, come talk to me.

    Note

    If you enable DLSS, set anti-aliasing to None (TAA and DLSS together can crash a game at launch, an automatic guard will come in a next version).

    In games with dynamic resolution, Frame Generation may disengage in Quality or Performance mode. Lock the game resolution if its mod allows it.


    The Beast Roofer Edition, mise à jour DLSS

    Le DLSS de NVIDIA arrive dans The Beast Roofer Edition.

    Cette mise à jour apporte un pipeline DLSS complet au moteur Vulkan, avec de vrais réglages dans l'interface. Tout est optionnel, le comportement par défaut reste 100 % d'origine.

    Ce que tu peux activer dans Réglages, Graphismes

    DLSS avec quatre modes : DLAA (qualité maximale), Quality, Balanced et Performance. Le jeu rend à une résolution interne réduite et DLSS reconstruit l'image, gros gains de FPS à qualité quasi native.

    Frame Generation (RTX série 40 et 50) : désactivée, 2x ou 3x. Des images supplémentaires générées pour un affichage deux ou trois fois plus fluide.

    Le preset du modèle DLSS, à ton choix : K, M, L, J ou F.

    Génération de mipmaps à la volée : beaucoup de jeux Switch streament leurs textures sans mipmaps, ce qui fourmille dès qu'on upscale. L'émulateur fabrique les chaînes manquantes en mémoire, automatiquement, pour n'importe quel jeu. Aucun pack, aucun fichier, rien de par jeu.

    Les vrais motion vectors : l'émulateur calcule des vecteurs de mouvement fidèles à la caméra et les fournit à DLSS et à la Frame Generation, avec un traitement dédié du ciel et des nuages.

    Un changement de réglage DLSS s'applique au redémarrage de l'application : un clic sur Oui dans la fenêtre qui apparaît et elle se relance toute seule.

    Un mot honnête

    Je ne vous vends pas un rêve. Tout ceci est encore expérimental. Ça fonctionne sur ma machine et sur les jeux que j'ai testés, mais chaque jeu est différent et il reste du travail. Si quelque chose cloche chez vous, dites le moi, c'est comme ça qu'on avance.

    Prérequis et notes

    GPU NVIDIA RTX. La Frame Generation demande une RTX série 40 ou 50.

    Le paquet fournit le dossier dlss, à côté de l'exécutable, avec les six fichiers Streamline de NVIDIA (licence MIT) : sl.interposer.dll, sl.common.dll, sl.dlss.dll, sl.dlss_g.dll, sl.pcl.dll et sl.reflex.dll.

    Les DLL du moteur DLSS ne sont pas incluses. Dans ce même dossier dlss, ajoutez, pris d'un jeu DLSS que vous possédez : nvngx_dlss.dll pour l'upscaling, nvngx_dlssg.dll pour la Frame Generation, et NvLowLatencyVk.dll si elle n'est pas déjà fournie par votre pilote.

    Si un mod propose sa propre résolution ou son propre upscale (par exemple TOTK Optimizer), réglez le sur natif, 1x. Un seul upscaler dans la chaîne : l'émulateur et DLSS s'occupent de la résolution.

    Avec la Frame Generation et le HDR actifs, l'encodage d'écran passe automatiquement en PQ : même lumière, encodage compatible avec la Frame Generation.

    Journalisation graphique sur Aucun pour les pleines performances.

    Compatible avec la sortie HDR des versions précédentes.

    Le jitter caméra

    On a aussi réussi le jitter caméra, la technique qui décale l'image d'une fraction de pixel à chaque frame pour que DLSS reconstruise encore plus de détail. Il fonctionne, mais il fait scintiller certaines textures au loin, surtout les arbres. Je cherche encore le bon moyen de régler ça, alors il est livré désactivé pour l'instant. Si quelqu'un a une idée, venez m'en parler.

    Note

    Si vous activez le DLSS, mettez l'anti-crénelage sur Aucun (le TAA et le DLSS ensemble peuvent faire planter le lancement d'un jeu, un garde-fou automatique arrivera dans une prochaine version).

    Dans les jeux à résolution dynamique, la Frame Generation peut se désactiver en mode Quality ou Performance. Verrouillez la résolution du jeu si son mod le permet.

    Downloads
  • v1.1.8 67eeaee025

    rooferdev released this 2026-06-29 23:23:52 +00:00 | 35 commits to master since this release

    🇬🇧 Experimental DLSS/DLAA fixes + easier setup

    • The DLSS runtime (Streamline, MIT) is now bundled — you no longer need to source it yourself. Just drop a nvngx_dlss.dll into the dlss/ folder (from any DLSS game; the app often finds one automatically). nvngx is NVIDIA-proprietary, so it can't be shipped — that one piece stays bring-your-own.
    • DLAA now actually activates (it previously did nothing).
    • Quality / upscaling: fixed a crash (ErrorDeviceLost from a fractional internal resolution).

    Still experimental — a rare crash may remain on some setups; report it on r/BeastRooferEdition with your log. DLSS is off by default; everything else is unchanged.


    🇫🇷 Corrections DLSS/DLAA expérimental + installation simplifiée

    • Le runtime DLSS (Streamline, MIT) est maintenant inclus — plus besoin d'aller le chercher. Déposez juste un nvngx_dlss.dll dans le dossier dlss/ (depuis n'importe quel jeu DLSS ; l'appli en trouve souvent un toute seule). Le nvngx est propriétaire NVIDIA, donc on ne peut pas le fournir — cette pièce reste « apportez la vôtre ».
    • DLAA s'active enfin (avant il ne faisait rien).
    • Quality / upscaling : crash corrigé (ErrorDeviceLost dû à une résolution interne fractionnaire).

    Toujours expérimental — un crash rare peut subsister ; signalez-le sur r/BeastRooferEdition avec votre log. DLSS désactivé par défaut ; le reste est inchangé.

    Downloads
  • v1.1.7 7ad098075c

    rooferdev released this 2026-06-29 04:15:19 +00:00 | 37 commits to master since this release

    🇫🇷 The Beast Roofer Edition v1.1.7

    Salut à tous, la v1.1.7 est dispo. Les nouveautés :

    • TAA natif (anti-crénelage temporel) : nouvelle option dans Paramètres > Graphismes > Anti-crénelage. Rendu doux, cinématographique, peu de scintillement, et ça marche sur toutes les cartes graphiques, sans fichier à ajouter. Meilleur en haute résolution interne.
    • NVIDIA DLSS / DLAA (expérimental, RTX uniquement, désactivé par défaut) : aucun fichier NVIDIA n'est inclus, pour des raisons légales. DLSS s'active en mode upscaling (quand le rendu interne est plus petit que ton écran) ; sur les configs déjà en haute résolution interne (gros packs 4K, résolution poussée), il reste inactif, et c'est normal. Pour l'activer : crée un dossier dlss à côté de Ryujinx.exe, télécharge le SDK Streamline public et copie les 3 fichiers du sous-dossier bin/x64/development/ dedans (pas ceux de bin/x64/). Le runtime DLSS est trouvé automatiquement dans tes jeux installés. Détails dans le README. C'est expérimental et pour utilisateurs avancés, ça peut être instable selon le jeu et la carte.

    Mise à jour : si tu es en v1.1.5 ou v1.1.6, l'app propose la mise à jour automatiquement. Tu peux aussi la télécharger ici : https://thebeastroofer-edition.com

    Comme toujours, c'est un fork perso, sous licence MIT, sans aucun fichier Nintendo ni propriétaire. Merci de l'essayer, vos retours sont les bienvenus.

    Intégration TAA / DLSS par The Roofer Dev (MIT). DLSS et DLAA sont des technologies NVIDIA. Projet indépendant, non affilié à NVIDIA.


    🇬🇧 The Beast Roofer Edition v1.1.7

    Hi everyone, v1.1.7 is now available. What's new:

    • Native TAA (Temporal Anti-Aliasing): a new option in Settings > Graphics > Anti-Aliasing. Soft, cinematic, low-flicker image, and it works on all GPUs with no extra files. It looks best at higher internal resolution scales.
    • NVIDIA DLSS / DLAA (experimental, RTX only, off by default): no NVIDIA files are included, for legal reasons. DLSS kicks in when upscaling (internal render smaller than your screen); on setups already at high internal resolution (large 4K packs, high resolution scale) it stays inactive, which is normal. To enable it: create a dlss folder next to Ryujinx.exe, download the public Streamline SDK and copy the 3 files from the bin/x64/development/ subfolder into it (not the ones in bin/x64/). The DLSS runtime is found automatically from your installed games. Details in the README. This is experimental and for advanced users; it may be unstable depending on the game and GPU.

    How to update: if you're on v1.1.5 or v1.1.6, the app offers the update automatically. You can also download it here: https://thebeastroofer-edition.com

    As always, this is a personal fork, MIT-licensed, with no Nintendo or proprietary files included. Thanks for trying it, feedback welcome.

    TAA / DLSS integration by The Roofer Dev (MIT). DLSS and DLAA are NVIDIA technologies. Independent project, not affiliated with NVIDIA.

    Downloads
  • v1.1.6 7ad098075c

    rooferdev released this 2026-06-26 22:38:15 +00:00 | 37 commits to master since this release

    The Beast Roofer Edition v1.1.6

    What's new

    • New scaling filter — NIS (NVIDIA Image Scaling): a crisp single-frame upscaler + sharpener — no shimmer, no ghosting. Ideal for weaker PCs. Options → Graphics → Scaling Filter → NIS.
    • New HDR slider — Highlight whitening: optionally eases the very brightest highlights toward white. Default 0 = identical to v1.1.5.

    Using NIS
    NIS looks best when the game renders close to your display resolution (it sharpens). The more it has to stretch, the softer it gets.

    • 1080p display → Resolution Scale = Native
    • 4K display → Resolution Scale = x2 (Native looks soft on a 4K screen)
    • Avoid x3 / x4 — the game renders larger than your screen, so NIS is skipped (and it's heavy).

    If you render above your display, NIS is safely skipped — no harm.

    NIS by NVIDIA, MIT-licensed.


    The Beast Roofer Edition v1.1.6 (Français)

    Nouveautés

    • Nouveau filtre de mise à l'échelle — NIS (NVIDIA Image Scaling) : agrandisseur + affineur net, image par image — aucun scintillement ni traînée. Idéal pour les PC modestes. Options → Graphismes → Filtre de mise à l'échelle → NIS.
    • Nouveau curseur HDR — Highlight whitening : désature légèrement, en option, les highlights les plus vifs vers le blanc. Défaut 0 = identique à v1.1.5.

    Utiliser NIS
    NIS est meilleur quand le jeu rend ≈ la résolution de ton écran (il affine). Plus il étire, plus c'est mou.

    • Écran 1080p → Échelle de résolution = Natif
    • Écran 4K → Échelle de résolution = x2 (Natif = trop mou en 4K)
    • Évite x3 / x4 — le jeu rend plus grand que l'écran → NIS est sauté (et c'est lourd).

    Rendre au-dessus de ton écran ignore NIS sans risque.

    NIS par NVIDIA, sous licence MIT.

    Downloads