Skip to content

Proposal: make DLSSNR runtime and MFG Unlock opt-in, drop the modified-build hash - #6

Closed
ApolloF wants to merge 1 commit into
mainfrom
feat/opt-in-risky-components
Closed

ApolloF wants to merge 1 commit into
mainfrom
feat/opt-in-risky-components

Conversation

@ApolloF

@ApolloF ApolloF commented Oct 4, 2026

Copy link
Copy Markdown
Owner

This is a proposal, waiting on the owner's decision. It is the recommended option from the 2026-10 release and legal audit, prepared so it's ready if you choose it. Close it if you go another way. Not legal advice.

Why

Two features invite a DMCA or trademark complaint, and they're the most likely reason for a takedown or a store rejection:

  • DLSSNR: the app is built around the leaked, unreleased DLSS 5 runtime (nvngx_dlssnr.dll). It also shipped a SHA-256 table that whitelisted a modified NVIDIA build, which reads as the app endorsing a tampered NVIDIA binary.
  • MFG Unlock was installed by default. It patches NVIDIA frame generation to lift the RTX 50-only restriction. Installing it by default makes the app the delivery mechanism.
  • The UI and README also said DLSS-only swaps are "safe with anti-cheat". No one can promise that.

The app never redistributed either file, and that stays true. This PR goes further: the app no longer pushes either one, and the claims are now accurate.

What changes

1. Opt-in, off by default

  • New Settings → General → Unofficial components toggle, off by default. Turning it on shows a plain-language warning that has to be confirmed:
    • the files come from unofficial sources;
    • they may break games or trip anti-cheat;
    • the user is responsible.
  • While it's off:
    • DLSSNR and MFG Unlock are never installed or updated, in the app, in Update all and through the Seaglass add-on;
    • MFG Unlock isn't looked up on GitHub;
    • the header shows "off".
  • The per-component "install in new installs" defaults are now off and only take effect after opting in.

Existing users

  • Settings from 1.5.x are migrated once (SettingsVersion 0 → 2).
  • Anyone who already has either component keeps the option on, so nothing stops working. "Has" means an imported nvngx_dlssnr.dll, or an imported or downloaded MFG Unlock.
  • Everyone else starts with it off.
  • Both groups see a one-time notice explaining the change.
  • Nothing is uninstalled silently. With the option off, games that already have the files keep them (the rows show "opted out"), and an installed DLSSNR runtime stays enabled in OptiScaler.ini. Uninstall still removes everything.

2. Hash table removed, replaced by an Authenticode check

  • ComponentStore.KnownDlssNr is gone.
  • Core/Authenticode.cs runs WinVerifyTrust (offline, no revocation fetch) and requires the signer to be NVIDIA Corporation.
  • Any other file, including a modified build, shows as unverified. Settings adds: "installed because you turned on unofficial components".
  • The help text no longer names the modified compat build, and the About credits no longer mention it.

3. Wording

  • "safe with anti-cheat" / "DLSS-only swaps are safe" now reads: lower risk, but not guaranteed. The new text names the risks (anti-cheat can block the game or its online modes, no vendor promises against bans) and points to the NVIDIA app's driver-level override.
  • MFG Unlock is labelled unofficial and opt-in wherever the UI recommends it.

4. docs/NAMING.md

  • Five names without NVIDIA marks, each checked against winget, GitHub and a web search, with collisions noted.
  • Top two: Shimsmith (no hits anywhere) and Swapwright (one 0-star DeFi repo).
  • Nothing is renamed.

Tests

dotnet build and dotnet test: 77/77 pass (56 existing + 21 new), Debug and Release. New tests:

  • UnofficialComponentsTests:
    • default-off settings and first run;
    • opted-out installs leave both components out, even with per-component defaults on;
    • opted-out games keep their files but aren't updated;
    • migration for upgrades with DLSSNR imported, with MFG downloaded, and with neither;
    • migration runs only once;
    • the notice stays pending until shown;
    • MFG Unlock isn't resolved when opted out;
    • Authenticode: an unsigned file and a Microsoft-signed file are both unverified, and only NVIDIA Corporation counts as the signer.
  • InstallerTests.Update_OptedOutOfUnofficial_LeavesInstalledOnesWorking.

I also launched the app with fresh app data. It starts normally, and the log shows "MFG Unlock off". The Settings layout was not checked visually.

Overlap with #4 and #5

Both merge cleanly with this branch, with no textual conflicts. A test merge of this branch + #5 + #4 builds, and all 118 tests pass. I left one AppSettings comment unchanged ("OptiScaler-NR (the main purpose)") because it sits inside #5's diff context. It can be reworded after #5 merges.

Not in this PR (audit follow-ups)

  • LICENSE
  • the rename itself
  • a "not affiliated with NVIDIA" notice
  • replacing the NVIDIA-green theme
  • Authenticode checks for the downloaded nvngx_dlss*.dll / sl.*.dll
  • PR CI

Proposal pending the owner's decision.

- New "Unofficial components" setting, off by default. Turning it on
  needs a plain-language warning confirmed. While it is off, the DLSSNR
  runtime and MFG Unlock are never installed or updated, and MFG Unlock
  isn't even looked up on GitHub.
- Existing users: settings from 1.5.x are migrated once. Anyone who
  already has either component (imported DLSSNR, imported or downloaded
  MFG Unlock) keeps it on. Everyone gets a one-time notice. Opting out
  never removes files from games, and an installed DLSSNR runtime stays
  enabled in OptiScaler.ini.
- Remove the SHA-256 table that whitelisted the NVIDIA original and a
  modified DLSSNR build. Replace it with an Authenticode check: the file
  must carry a valid NVIDIA Corporation signature, anything else shows
  as unverified.
- Reword "safe with anti-cheat" claims in the UI and README, and stop
  pointing at the modified compat build.
- docs/NAMING.md: five name candidates without NVIDIA marks, checked
  against winget, GitHub and the web.
@ApolloF

ApolloF commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

Closing: this app is mainly for the owner's own use, and they want DLSS 5 / MFG Unlock and the known-build hash detection to keep working exactly as they do now. The branch is kept for reference.

@ApolloF ApolloF closed this Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant