Files
the-beast-roofer-edition/docs/RELEASE-NOTES-v1.2.4.md
T
rooferdev 6634d3ef87 The Beast Roofer Edition v1.2.4
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).
2026-08-03 13:44:30 -04:00

140 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (0100) 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 2540 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** (0100) 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 2540 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.