6634d3ef87
Removes a bug introduced in v1.2.3: the DLSS clip-space jitter block was emitted into every vertex shader and read the Position output before writing it. Reading an unwritten output is undefined, so vertex positions could come out as garbage - whole 3D passes landing nowhere (the green screen reported on GYLT, Ghostbusters, Blair Witch and others) and the black block artifacts in Xenoblade Chronicles 2's motion-blur pass, which had been mistaken for a long-standing emulation defect and worked around by disabling the effect. With jitter off - how this fork ships - the vertex epilogue is now identical to the base emulator again, and the motion blur no longer needs to be disabled. CodeGenVersion bumped so existing shader caches are rebuilt. Also adds a DLSS sharpening slider (0-100, off by default) and an experimental advanced motion stack checkbox (off by default).
140 lines
8.1 KiB
Markdown
140 lines
8.1 KiB
Markdown
# Release notes v1.2.4 — The Beast Roofer Edition (EN + FR)
|
||
|
||
_Pour la page de release Gitea. Bilingue (règle du fork). Sans jargon interne._
|
||
|
||
---
|
||
|
||
## 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 in Xenoblade Chronicles 2, 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 (GYLT, Ghostbusters: Spirits Unleashed, and others)
|
||
|
||
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
|
||
is validated on one engine family only and can add trembling in motion elsewhere — leave
|
||
it off unless you want to experiment.
|
||
|
||
### 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: Xenoblade Chronicles 2 can hang while loading
|
||
|
||
On Xenoblade Chronicles 2, 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 dans Xenoblade Chronicles 2, 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 (GYLT, Ghostbusters: Spirits Unleashed, et d'autres)
|
||
|
||
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 n'est validée que sur une famille de moteur et peut au contraire ajouter du
|
||
tremblement en mouvement ailleurs — laissez-la éteinte sauf si vous voulez expérimenter.
|
||
|
||
### 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 : Xenoblade Chronicles 2 peut se bloquer au chargement
|
||
|
||
Sur Xenoblade Chronicles 2, 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.
|