Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

133

Downloads of v 2.5.0:

6

Last Update:

18 Nov 2024

Published Date:

18 Nov 2024

Package Maintainer(s):

Software Author(s):

  • Deco

Tags:

dlss nvidia gaming update-tool

DLSS Updater

(Maintainer responded, waiting for review/Maintainer update)

  • 1
  • 2
  • 3

2.5.0 | Updated: 18 Nov 2024

Downloads:

133

Downloads of v 2.5.0:

6

Published:

18 Nov 2024

Maintainer(s):

Software Author(s):

  • Deco

DLSS Updater 2.5.0

(Maintainer responded, waiting for review/Maintainer update)

Legal Disclaimer: Neither this package nor Chocolatey Software, Inc. are affiliated with or endorsed by Deco. The inclusion of Deco trademark(s), if any, upon this webpage is solely to identify Deco goods or services and not for commercial purposes.

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Resulted in Flagged as a Warning:

At least one file within this package has between 5 and 10 detections

Details
IMPORTANT

This version is in moderation and has not yet been approved. This means it doesn't show up under normal search.

  • Until approved, you should consider this package version unsafe - it could do very bad things to your system (it probably doesn't but you have been warned, that's why we have moderation).
  • This package version can change wildly over the course of moderation until it is approved. If you install it and it later has changes to this version, you will be out of sync with any changes that have been made to the package. Until approved, you should consider that this package version doesn't even exist.
  • You cannot install this package under normal scenarios. See How to install package version under moderation for more information.
  • There are also no guarantees that it will be approved.
WARNING

There are versions of this package awaiting moderation (possibly just this one). See the Version History section below.

DecoUK (maintainer) on 18 Nov 2024 17:56:45 +00:00:

User 'DecoUK' (maintainer) submitted package.

chocolatey-ops (reviewer) on 18 Nov 2024 19:41:36 +00:00:

dlss-updater has passed automated validation. It may have or may still fail other checks like testing (verification).
NOTE: No required changes that the validator checks have been flagged! It is appreciated if you fix other items, but only Requirements will hold up a package version from approval. A human review could still turn up issues a computer may not easily find.

Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • In the ReleaseNotes element of the nuspec file a potentially invalid Url has been found. Recommendation is to fix this URL More...
  • In the Description element of the nuspec file a potentially invalid Url has been found. Recommendation is to fix this URL More...
  • The iconUrl should be added if there is one. Please correct this in the nuspec, if applicable. More...
Suggestions

Suggestions are either newly introduced items that will later become Guidelines or items that are don't carry enough weight to become a Guideline. Either way they should be considered. A package version can be approved without addressing Suggestion comments.

  • The nuspec has been enhanced to allow more information related to the software. More... Please consider adding one or more of the following to the nuspec, if available:
    • docsUrl - points to the location of the wiki or docs of the software
    • mailingListUrl - points to the forum or email list group for the software
    • bugTrackerUrl - points to the location where issues and tickets can be accessed
    • projectSourceUrl - points to the location of the underlying software source
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Binary files (.exe, .msi, .zip) have been included. The reviewer will ensure the maintainers have distribution rights. More...
  • The PackageSourceUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...
  • The LicenseUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...
  • The ProjectUrl element in the nuspec file should be a valid Url. The reviewer will ensure the specified Url is valid. More...

chocolatey-ops (reviewer) on 18 Nov 2024 19:56:44 +00:00:

dlss-updater has passed automated package testing (verification). The next step in the process is package scanning.
Please visit https://gist.github.com/choco-bot/be0c4388c7f461aae419655bec3a4132 for details.
This is an FYI only. There is no action you need to take.

chocolatey-ops (reviewer) on 18 Nov 2024 22:32:51 +00:00:

dlss-updater has been flagged as part of automated virus scanning.
Package virus scanning found that at least 1 file within, or downloaded by, the package has between 6 and 10 VirusTotal detections associated with it.
This package version cannot be approved without an exemption from a Moderator.

DecoUK (maintainer) on 19 Nov 2024 03:00:15 +00:00:

No comments to make other than this reconciles changes from the old package version.

Description

DLSS Updater is a utility that automatically updates DLSS (Deep Learning Super Sampling) DLLs for games across multiple platforms including Steam, EA Play, Ubisoft, Epic Games, GOG, and Battle.net. It simplifies the process of keeping your games up-to-date with the latest DLSS improvements. Note that this package does not contain malware, it is a limitation of Pyinstaller with the binary not being signed, please see https://github.com/pyinstaller/pyinstaller/issues/6754#issuecomment-1100821249 for more details.


tools\DLSS_Updater.exe
md5: 3DF480587D22FB34232C7185DECF4334 | sha1: 200C49761F28D3FA04B27F5DEF77ED9D4589E691 | sha256: E39C72F36B1896C144F1F7F1BBE0FDC1DBEA5D69ED8D3B583DA07C024419236D | sha512: 275BF05F5882AE13E03B3FFB91446D482F49F3A1500D4337B437CC0CD1B9FCB1CB3E7FF19AAC4F20FBBC3BC621BBDFCE8AD801F2C4215E7B9246CDF376504E34
tools\VERIFICATION.TXT
VERIFICATION
Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.

This package is published by the DLSS Updater Project itself. The binaries are 
identical to those published in the GitHub releases section.

Project URL: https://github.com/Recol/DLSS-Updater
Releases: https://github.com/Recol/DLSS-Updater/releases

To verify the binaries:

1. Download the official release from the GitHub releases page
2. Generate a checksum using Get-FileHash in PowerShell
   Get-FileHash DLSS_Updater.exe -Algorithm SHA256
3. Compare the checksum with the one provided in the release notes or in this file

Alternatively, you can use the verification methods provided by GitHub to ensure
the release you're downloading matches the source code at the tagged commit.

Note: This file will be updated with each release to include the specific
checksum for the current version. Always refer to the VERIFICATION.txt
included in the package for the most up-to-date verification information.

Checksum (SHA256) for DLSS_Updater.exe: E39C72F36B1896C144F1F7F1BBE0FDC1DBEA5D69ED8D3B583DA07C024419236D
tools\_internal\api-ms-win-core-console-l1-1-0.dll
md5: 854560AB49893FC0EB1C3D2ADE1E11FB | sha1: 5B131B6154D0C56ABFB5EAD12BBB5E82E3F2CCC8 | sha256: 79E4EDF3FF63A7B1B279DC6352594F4512E0789A3D5E80CD4A34A68129DF4161 | sha512: F641C944D05B849652715D95FEA2E4431056D0AABA00D28E7D1502C522E66799D1CF277C3442446D940F6FA1A285BB0F2999085D1DCC660BB730AFF37DE2BB79
tools\_internal\api-ms-win-core-datetime-l1-1-0.dll
md5: F51A025B8C1A2146847DF21CB0B4136A | sha1: 45DC4A50C0C2A9B32DDAC679D705E7501D95E8E1 | sha256: 9600F43772639BA115FC7F45B1EDD775B31BBCB7202FA87C78490383DAA7030C | sha512: 3CD225F2CE1B91B7DC4C27E144CC97A36F997C0A0259395EB9EA9F57471FBA589855B810B5D5326FDCCD5C9E9CF06D889B758E374D389CBDCBD89601B17DE545
tools\_internal\api-ms-win-core-debug-l1-1-0.dll
md5: E1DFEB517A691FD91247CFBE4349B41D | sha1: 5263D1F6D103DDF18A0590B41FFC582D61F4362B | sha256: 43533C66AE70709723E12BC80F047644D68B0282ABC76B4C952461EE8554C8E2 | sha512: F5271BC1B8BD387A46F0FF5103D4C468C0B458D2F1DC0CBACE0F7A568EBD0B9C8D0414D961118687CE1A7876E28D82ED531CCA95DD1661F208FDFDD4223FEADB
tools\_internal\api-ms-win-core-errorhandling-l1-1-0.dll
md5: B7EA2415828AB7E8234EE71CC1274312 | sha1: D053DF9B9CC701978D159E48A9F5422A275220C9 | sha256: BE358D7F9A80C56125C872D98469D470C962EB89A87FE7C3EEB2813AB691F162 | sha512: AF26B547F31080E359002B1A1FA71D76A2BD4771B1C5AA9584D8B0D64911D889A8AF8BD46D80FC36A9AD2F5E04881ED0A640C8AAB7F0A1D729B5032D84B98664
tools\_internal\api-ms-win-core-fibers-l1-1-0.dll
md5: 401B34BE80C11C38783E1DDB47799779 | sha1: 0AD8F38BBBD41CEB5CAA6E2B44D308FA4707CF1D | sha256: 772372F20239899FB25D1A72E0210D729A9AC9CCE8E036922592405BCDD9D287 | sha512: BC596988318D2877DBE52AAAC19470E61F441F61620EC6D72B8025B427D7772AFE802BFE1DFB83A29A8A9F1BF79F22812DD4688253037FB1C5D0139381AB92F9
tools\_internal\api-ms-win-core-fibers-l1-1-1.dll
md5: 8F12F2B949081422329527DE9F752C52 | sha1: E69A417535258F9D7CBB762171D76D218F58F6AA | sha256: 8FCAE6D9A2A43FAAFB9B78D22CCE9CD2B4589952A81F713CF26E6DCA0C198C6C | sha512: A985086B592363103B786E57E623945F316B34E10A34D12FA47E385DB0C999B8F143FC7D8DB19220A1FE2D7E1AA63FBEFC4052D95D7311357C6CA234CC360F42
tools\_internal\api-ms-win-core-file-l1-1-0.dll
md5: 13B7840BDD7312959FD2F134CAF81B04 | sha1: 85E9D1981596F8D8F1584F89FF7243B02CB91787 | sha256: 57A24B7D585BA98AB0DFF395C62525F10F498BF0BE4871ADC8C805B997D7368A | sha512: 2C9573413D842A0956F914AAEEF25280F6AFA145B30E79E40B1CAAA62B482C26438283AFC08BAD568D500AC98E009AA85290F0B9DB0C226829E9A8D9CA10617B
tools\_internal\api-ms-win-core-file-l1-2-0.dll
md5: D2F264B9F61BBBEA858CCA1F1A85FFF4 | sha1: 98903EA36BC421969360018EE953D5E293C8651E | sha256: 00AF59B43E70769D1CB516FF9A83A6E11D27D44889B18B498D10E2E5EB2846FA | sha512: A5B0056FCE6E6B40EA95FF5DF451C91864A963DB3A97781729C9816BA72C1BEA92EB1AC9AD7BE33F79FC9299CD10BFC5B074B7BDC0DD049F40019BBEDD1B3916
tools\_internal\api-ms-win-core-file-l2-1-0.dll
md5: 9C4AA976FBBA6EE469DB69F3268E0EE0 | sha1: FBC510424960D4D6CA8959AB8A79ED7E0106D894 | sha256: B8EE3713B2FAC086263084EB76C91906F1773EBE427ED012CC5AC77CFA506BFE | sha512: D134D8B876507616D7B6D97421014D61D04AD82785CBBF7F9DFB44D1E3361410B4590613A2D7D4F4683533FFAF099B88FDF505F1B8C578FD933394187DD17388
tools\_internal\api-ms-win-core-handle-l1-1-0.dll
md5: 2F9076385FCE7A50D921C2C04CE82357 | sha1: 19D86416DFB12B3FD03DBF5DD23ACBD7ABA39E98 | sha256: 0069D044789AE935144AB20AFA81947E523F7879E72781C6352060F182F16C22 | sha512: ACA0F1CEA0737967760D2E1D967CECB8CDDA36D6CC729064643CD662313C626CCE546210D6F12F653248AA5D6B9991A1BD64D0785257369CECAE3DE1AE67734E
tools\_internal\api-ms-win-core-heap-l1-1-0.dll
md5: 7893D219F6BDA4BEAFE1937FFC026386 | sha1: 6A80B511FEF91031F707266DD358AFD5D624737D | sha256: 95767FD45416F86B2A16BF50E971F39A9F64A680F6CDF1D6BDA9C64E633FFF6C | sha512: 24A3617E3B2FC2810D06A92813591E1C5F475C47648971D9D158120D96A9504D5EA3FB24F6AE2A9770A0034EFCA374FD1F1A8E0C944A32D201CB617BDA01B096
tools\_internal\api-ms-win-core-interlocked-l1-1-0.dll
md5: E8745CE7467509E4B59522DE48EEF43E | sha1: 9A1058A7124D87FD6EA02442C1BA5D68F86A86A6 | sha256: 6E65A8482E9867A16F9E6398335139500C6D5E2F56A232FDD33F7F46541488BE | sha512: 97F5451494B1969806C010DD552A79556960D9B095CB245DA83554A53B004885111CC39A53F0466EFDB0E5F1F69B2990D19CE126F529E5F79A0DD0AD2E7EE672
tools\_internal\api-ms-win-core-kernel32-legacy-l1-1-1.dll
md5: B4A768285A5F30DB0FEC2114714D4CE0 | sha1: FD6DFC23C36D09123AF87075C5130BA87E2FD81B | sha256: 569618315C6B659BC5FB0799A0A2480371425570E7F195395B5159BA12257EFA | sha512: 2B45ABCC9EDF1A712D9F5C291A992FA198472D679A66EEDD211DB22836051DAE1FEB6235FF839F4B7A3365D3B010EB6E7AEF369D4D404CF1B9043867923E4347
tools\_internal\api-ms-win-core-libraryloader-l1-1-0.dll
md5: 3205ABC6AFC72E7D9D78D6BB736068CB | sha1: F14C3809E15DC1A39BA4B815D8B2784C3B451464 | sha256: 6614E8C94F8D2E48417EE9EC2155DFC2D8DD7BD6B78C89617ACE90CB851114D2 | sha512: 1C9C61157D745A6948C941371F1C0CE3DB32CEFEA8F9FD5797628D6C461650F765C3EDEDE13F337F04C8317EA256AC06D7520EDBE9FBED1F777455B4CF0BE909
tools\_internal\api-ms-win-core-localization-l1-2-0.dll
md5: E1877632019BB32967C40767AFF863B6 | sha1: 2268935F0C872FEED067C3C17C70E5092CE301A1 | sha256: D1ECD2C21DF1D7B130BA0F1A1D99FB8866727BFFB3862883618A2CF545659DF8 | sha512: 98E620CE28B776DC6D2B39FA043B1E96555F641263E7254510587DFAD9EBFBDDEF0558756035657BA10C7B800B72A322589725FFCCCCC4EC5847D20E7A74023F
tools\_internal\api-ms-win-core-memory-l1-1-0.dll
md5: 740DD1CB6EC07DF5E43A2CBE3B66DD80 | sha1: E39493FD219C57F50D47119E94AEE7C8BBC3863B | sha256: 03A723BCBCC88604015B66C85589AFB5FD0A9F0E3F012160DCCA5F4AC0762B49 | sha512: 620F7743FE187B455C94177BE4FE133500F94566E79402F60B0ECC7AD11BF3350E6425839692E0C7C5A4F5159DF64C240314F1EDB7496BDE48B5590E43D0564D
tools\_internal\api-ms-win-core-namedpipe-l1-1-0.dll
md5: 9E4398814CE476F2554DC43EDB07DDBB | sha1: DB1C663354D219F9E95E4CA1B604CB77237716CD | sha256: 3C6ECC4E2284B19B8E0E673318FF9CC29F45041B2A0EA2705A8A8048D9276BA0 | sha512: BB7DB2BA4DC62B3497F36F2E58FF122665A76AB94AFFC6EE2E5E491052D8EBF389773CFCFBE262A4D00539EFABFA983BB68EEB8D70BD8E14F69093FE882BB81E
tools\_internal\api-ms-win-core-processenvironment-l1-1-0.dll
md5: 0055F1424D58A9AFE0D3362BC27DC2E3 | sha1: 568343A6830CDC9C74F9C0FC4743A35B086C53A5 | sha256: 541BAC07D88E28DDAEF0A0392EF3EBFD513A161D0923A9F361671C54F362D341 | sha512: 1D43913D9525D9B8C3C46DBAF57BF26EF251A377B000B4F3DF09226F6B529971069D4199B69206C6839925E4D02C5729C046C49A3D77E0E5165B6EDDD2AADE96
tools\_internal\api-ms-win-core-processthreads-l1-1-0.dll
md5: 17D9AC28553C5404D110BCDB6FAE4D90 | sha1: EA7B17476BE37D30EE2D7DCC818161FAE3157947 | sha256: E714FFDE0C79FAFE8067C86BCDF4EBB522AF00F741F655B074F46518557FF149 | sha512: 447660319AD9CB652C712C9ACDA67E9378F2D2DC5695A44DC24BC13E6B1359F97C86742FC3EA9649A9C0C9A105800E7F50F5C0D34984692DE95CA2D69E3D50CA
tools\_internal\api-ms-win-core-processthreads-l1-1-1.dll
md5: 774DE3D2577B4F6E50CC9CBE01069D03 | sha1: 8CBD24E84DCCB39630FD327744AB98DBA22489C9 | sha256: 94A70E7CD72242E29E0D0ECA78A2474AA1CC5CD529E29DCC62F680A61D47D6A6 | sha512: F89CE01766882082467EFC18BD9D236D7F3F56EE09E287D41413FF870A0B81135BEFD896F3B26FBC6D214BE795C0C06611B9B3BA9546FE1802C2C9E1FC5E27ED
tools\_internal\api-ms-win-core-profile-l1-1-0.dll
md5: CF1C69D66B674DA34801FA8791CCAA5F | sha1: EEA39A5948F576D319846606E8A23FDBD17D4547 | sha256: 9EAA28A9F953E852739B70703EF804F36DB33EE0CED4A37322F5DB656B1C42B9 | sha512: 4DCCB8582052C60ECF0D0BB3C70C0FB6963A4F9890DBB319010F10AE0C7D543EBCE6D8CE9B05FFDE38D1AB2ED37B2008ABF2812874724615CC02115B3A861AA7
tools\_internal\api-ms-win-core-rtlsupport-l1-1-0.dll
md5: 0986D5C7A8D89000C279B99843686783 | sha1: C7B5347C0B0A4800CAE0E2C37F96900213D60CA0 | sha256: EB8CE6EF361CB823257C9C837D046E7048C2C1FE52A25A12C5FDDB0034CF9FCE | sha512: 43A1F154AEB3C13D4C8C4C2E182BCCD7CAE8CB4643B86C480B2C9D9914E38057D13806BC406F38A00686CD0B8BE66BFF8FB4102AD1F728F079EDA998D57DCFB1
tools\_internal\api-ms-win-core-string-l1-1-0.dll
md5: 20291E55EB1C1866A3EAF252416DF69B | sha1: AA9D246B2EE7401BCB4746A71404EA0BF483029A | sha256: 634F1E2EEC066FE2F74A25F507CA37D1D979B982CF944975D1488E0435B86AD2 | sha512: 3406D33B48CA997A895D7A3EB6EF9DA8DBDC2B89D517409A9475B80EC95D18E274D4314A164CC306960CBBC848653D79F6E4B13425208E2B790CCCA5154236B6
tools\_internal\api-ms-win-core-synch-l1-1-0.dll
md5: BCE65FACD640D4B35ADB187DC1BE7180 | sha1: DFA96ADC02501F9CC0F88BA16441C47225477E34 | sha256: 50C78541FD07BC271B49259BF4D56E8885461371BF0852DD75E99E824BD4E754 | sha512: 8BF30C64D708835C246A44F5640805EA60D2577F472F6D0C56DDF66C10A33D8E0488E79B0A53C60BEFC5C0A583734220BF957FB66DD4D181320D8589D65A576E
tools\_internal\api-ms-win-core-synch-l1-2-0.dll
md5: 447AC6ACDE90CD2EE991885103E10742 | sha1: E674908B19BDC62EA02F3D53C2A7A5D05990D774 | sha256: 359C5D1221CFAB34B70D4F55E178CCD93F54A6DE3DA39C7472D67E7E330E300E | sha512: 59F429B5BC95F67B0192CC70209AA79B2001694778E84241582D9E3A20D065B087428ABA52EB4246E13755CE0D56DF20CE6FBA465CDE3F96D05ECBF486162B53
tools\_internal\api-ms-win-core-sysinfo-l1-1-0.dll
md5: ABCBE7F6DCCEEA80952092957F797A80 | sha1: 0543160EA20803E535ABC83064C86C1AEFB19556 | sha256: 154B5470E4E265AD29248A571686F6AAFCCEF9A8B2435A8633A70328C10BB371 | sha512: 2DF2A33C67BDB657F8BD1D4D01C6FFB93A82D998DDF034156DC57DB6CD45C72CAD6B1E18403C3EEF2FEC74F6094FB6EB6FF4E2643BAA03E122CB9C2F5EEBEEEC
tools\_internal\api-ms-win-core-sysinfo-l1-2-0.dll
md5: 7368E728C3648ED5A0F2582BD27EB583 | sha1: 4A92D740358468502D23BB18B463FC293D388D47 | sha256: 6D2A9C5745238EB4FC922652C72542703CFFF79A20DA2ABF18DC4A77618D75D7 | sha512: FC42442A3DEE5EBBCC4355C6498BBFEF9531CB427662DA929EF82A83A7667CA4B4976B0C688FC5D01DABEBFBDAD028C4D8EB04749DC9A6DE83D892A6377F9A6A
tools\_internal\api-ms-win-core-timezone-l1-1-0.dll
md5: EB7F8FE591DA1E09DE7594CC02772003 | sha1: 7D2F19EAAEA6CFDBC46BC302ED5ED2231CADC837 | sha256: F1061607D0DFE38C2585F22CEB326154C2CB1AC37761DF75E186F2D5D11B42B6 | sha512: 75B76CFE3899E45F9A0DCA67DC099531700CCEB06FD9CE209F641AF190C4CD6B96AF110E8C816E44BD194A8C109A1E85160A94DA633C49104A392EDB5BFE8E65
tools\_internal\api-ms-win-core-util-l1-1-0.dll
md5: D7B9B90357F4A2653ABB303BB78668DA | sha1: 52D4EAB0B938BB977EE8BF160844AC94C297FDC2 | sha256: AC72CD7713DA51EDF0B57616ED57326286A4F85DE8C1443EF60379DB9E3887F5 | sha512: BC034BED3A82F1A47207D02DDCE9F232F82110FB1A2B12EC1EBD468AF4A64E7DC547AA06ADADBD3993320FF5EDB0BE357CC7B4396160433E0ED5EDFF42D53B20
tools\_internal\api-ms-win-crt-conio-l1-1-0.dll
md5: 4B511048C52E62714D4AE8BF4D686DB7 | sha1: 2FFE23C3494E1930BB8BA9DC85BA7AFD50458A79 | sha256: 81CC477B01B8A2EB82E0EE21E9113604006A97281A95091823839335661569E6 | sha512: 328877E54FE0EF1A4A4AFFDEB11E19A064974ED28693C6DB9869025957F24AE2000FF39D1D1E03F804E2FB52323BBD3EF15BE4F99F0F1196A58F85FD4875A1EE
tools\_internal\api-ms-win-crt-convert-l1-1-0.dll
md5: BFBACEB27C68C53FD04488BB46AFE11E | sha1: 610F0CBDF9994B818FD518A99F559913370773D2 | sha256: F16030942224F62B1BC3D5EDA63AF0C07C12E9AF60F4EF5A29A84E9706CB3E23 | sha512: 12BDBC7F6631B02350FF0C519BA2BF14CC75C624485C67BCFA1AEF3D2DDFF4ACC6D17EDFDEBBBBD20BA95F14342F7874D8345567FC2478554FAAB03534C8EC68
tools\_internal\api-ms-win-crt-environment-l1-1-0.dll
md5: CBE0B9FBB04ADAFB76CC0D50BA1B2D1A | sha1: 40C0D5674248949A0128949C12443A72957D2CA8 | sha256: 34E9A4FFE038E13BCADBEC9A783896B3A67988B42D6353CE70D8987A0BF5E888 | sha512: BE1186E5C2AAA3A9E23E8D3F14FDF332FBBB292C81FCD75208D990FFB5D173D9ADBA41F49814DE1AB275388B228C9AC5D1EB72FD5AFCD35B39B1DD3CCA959464
tools\_internal\api-ms-win-crt-filesystem-l1-1-0.dll
md5: 15DA941B5AD1BDDF76B8F09F359AA1B6 | sha1: EA95E65EDB63AA2A6FE4BB365EA3F3BC995A4DF3 | sha256: 4F5FAF054747FD8D9A202B31BB8F687FD369C47F82AD5860DCBF7A58D2CF924F | sha512: F4936BE1EA8ABF6B89B7C26DB6C48ABBE4498A48B32382EBE74D5DFA6AC34D3B8CF6FFDCABBFE3403F3ABB19ABEC4486C39F52838CDD85BB04E8CD8E049A566F
tools\_internal\api-ms-win-crt-heap-l1-1-0.dll
md5: DB4FEA844F77012D7DB0D0923AACBBAD | sha1: 8A8A99B1F392A02AAB29EF35E8207DB3C47E930C | sha256: 0F885499CC169A02E409445D5307FCE784295F165DCB6A8E178733C789D4526A | sha512: DE5851C4043F6BF00D9EF1B30BB9DEFD4AB70FFE62605B0D602F364A2DBACF86C2DFE9C43D60BCDA57F0254E358644518D67C9133DE0D49FD795E3D4912924B8
tools\_internal\api-ms-win-crt-locale-l1-1-0.dll
md5: 8AB373179221F08C7A7F44CADAC328CA | sha1: F06818BF5CDA974D3D99456B13921B22C6470B8D | sha256: 0DFE9BE5FEF238A9EBA4D4F03B5989389373CC8D82B03D2C34D17800655BFABF | sha512: 90591B6E4A43FC8790D4F9063E5FCA2BA8076082E3A1EB00DCFF37DA1EAFF62A209699EDA000B079C2EF0EBCEAF1231CEC197800CEAD99A5912DD4AAFDF2F3C9
tools\_internal\api-ms-win-crt-math-l1-1-0.dll
md5: 5387082EFCDD2E6C6BE7ED8A88E03005 | sha1: 7078D27B3F64E49FCF2B70DA4B904A10BC14C473 | sha256: 5A4D354626564C6CDC7D28475B6342CF79025E9E4DF0F4B43DD835BEEA42A548 | sha512: 82446BBDD1B6C1459E0A034C1C031B817794B94A67FC093D63D8A644C66A9B7039AB8CBDF5383198BE66388CF91FDBBB47A9521658EAF83783970B7C2803B305
tools\_internal\api-ms-win-crt-process-l1-1-0.dll
md5: 8B22CA474685E79ABA401635419F69A4 | sha1: F6BD165297FDCE1324FFC001111D3DD18FB115CE | sha256: D95C89D8F1DCBCADB3CCC28877B66BE769A4351D4E0173F4A192128EE3D7DD51 | sha512: 6FA3A5CA83A6349B6F3C5DC31426E171816AFE1D49D4DA5E06ED20D31CEA62374D40B7E66A5929F24777DC2B107DADE2D4F6AA1D5E0BA0174C51E903A98166C9
tools\_internal\api-ms-win-crt-runtime-l1-1-0.dll
md5: 820662FEF00AF503E207218ECD67765E | sha1: FC30F9477BE473EE9F9A59A4A19BC93A835A04AA | sha256: 1A460B02EBD56AC03F5117BF3CAB74B3C83845B454881745C71818AFE55286E3 | sha512: 0C9E0BC655FE102C6F1E2AF24C38B3EBBA6284F6C21E5352304408822F3B0785530A8A97FA30850483CB05B3443EFAAB0D19E637C576497852AA094576E7EA1F
tools\_internal\api-ms-win-crt-stdio-l1-1-0.dll
md5: 2428B2DC3EF3F8E811BB0F425794C33C | sha1: F5ADF8A7E069B6331CF31DCBE105F5BB11D2BA09 | sha256: 5723612D49C760AD13CADC7857B417145406D55D0011ED55E2894F4B3BC7D4E3 | sha512: 06C30ED1FF841CCA96A18FACF2FB337066642364B2A4799301E01E022ECF110BC6FE015D8C4DA9275238DCC034FBE3B034ECC9552BA229DBDA7BA2111E22AADE
tools\_internal\api-ms-win-crt-string-l1-1-0.dll
md5: 5847CF91E8DF22423AF0F194FBC1C8AC | sha1: 1F349445DCFBE959EC44FCC2E487FC63D249F988 | sha256: 6AF625152090F685F05AD2B03F0739296D13A09C56A91A8F08461C6A22309D43 | sha512: 81EA5AEFD5B64E206B1A671FE1A22D908AD55A6DB5894018BD779A3F4F73E8358070B8DDB27B7C534F965238E364AF60C6E92B73AE07E19445822A947CFAF89B
tools\_internal\api-ms-win-crt-time-l1-1-0.dll
md5: 111DF391E83DC74F0A66C11817ABAA6A | sha1: 7BDEAC1CDD5B06FAAF20D113A239C4FFE73D2610 | sha256: EDC8849CFB5BC3D946FB0C4B86A7788A2A04D113C44E5773243C0ABF7DCA543F | sha512: 5ACAA477B10BDDC4CAEA85C0D725832124765A044E8416ADA66161278E9DDF293CA8D4AC8DCDC6622A6920B9DB7E6A62D306B7FB67DCAD1CBC9BA37F32A6BD36
tools\_internal\api-ms-win-crt-utility-l1-1-0.dll
md5: A26EE6BD274CB850636742F9A5879193 | sha1: 154FAC323F50A8CF0FA730AFA1D3A58F4B06126A | sha256: BDFEABCBFE6F9E5305F2B39F14E6819E725FEAABA14A9372DDADB9408F99757F | sha512: 845E4A06D4E7E08EA13DB32AD619D9B4726E8A62F8D52D261816F917D3C78DCB76297979FD0C6B446ADDCC93B5D48D499CD4C5734E4BC325166F42A8F18F7400
tools\_internal\base_library.zip
md5: BED03063E08A571088685625544CE144 | sha1: 56519A1B60314EC43F3AF0C5268ECC4647239BA3 | sha256: 0D960743DBF746817B61FF7DD1C8C99B4F8C915DE26946BE56118CD6BEDAEBDC | sha512: C136E16DB86F94B007DB42A9BF485A7C255DCC2843B40337E8F22A67028117F5BD5D48F7C1034D7446BB45EA16E530F1216D22740DDB7FAB5B39CC33D4C6D995
tools\_internal\dlss_updater\auto_updater.py
import os
import sys
import json
import shutil
import zipfile
import subprocess
import time
from urllib import request
from urllib.error import URLError
from packaging import version
from dlss_updater.version import __version__
from dlss_updater.logger import setup_logger

logger = setup_logger()

GITHUB_API_URL = "https://api.github.com/repos/Recol/DLSS-Updater/releases/latest"


def auto_update():
    logger.info("Checking for updates...")
    latest_version, download_url = check_for_updates()

    if latest_version:
        logger.info("New version available: %s", latest_version)
        user_input = input(
            "Do you want to download and install the update? (y/n): "
        ).lower()

        if user_input == "y":
            logger.info("Downloading update...")
            new_exe_path = download_update(download_url)
            if new_exe_path:
                logger.info("Update downloaded successfully.")
                logger.info(
                    "The application will now close and update. It will restart automatically."
                )
                perform_update(new_exe_path)
                return True
    else:
        logger.info("No updates available. You have the latest version.")

    return False


def check_for_updates():
    try:
        with request.urlopen(GITHUB_API_URL) as response:
            latest_release = json.loads(response.read().decode())
        latest_version = latest_release["tag_name"].lstrip("V")

        if version.parse(latest_version) > version.parse(__version__):
            return latest_version, latest_release["assets"][0]["browser_download_url"]
        else:
            return None, None
    except URLError as e:
        logger.error(f"Error checking for updates: {e}")
        return None, None


def download_update(download_url):
    try:
        update_dir = os.path.join(os.path.dirname(sys.executable), "update")
        os.makedirs(update_dir, exist_ok=True)
        update_zip = os.path.join(update_dir, "update.zip")
        request.urlretrieve(download_url, update_zip)

        with zipfile.ZipFile(update_zip, "r") as zip_ref:
            zip_ref.extractall(update_dir)

        os.remove(update_zip)

        # Look for the new executable in the update directory
        new_exe = None
        for root, dirs, files in os.walk(update_dir):
            for file in files:
                if file.lower() == "dlss_updater.exe":
                    new_exe = os.path.join(root, file)
                    break
            if new_exe:
                break

        if new_exe:
            logger.info(f"Found new executable: {new_exe}")
            return new_exe
        else:
            logger.error("Error: New executable not found in the update package.")
            return None
    except Exception as e:
        logger.error(f"Error downloading update: {e}")
        if os.path.exists(update_dir):
            shutil.rmtree(update_dir)
        return None


def update_script(current_exe, new_exe):
    # Wait for the original process to exit
    time.sleep(2)

    try:
        # Replace the old executable with the new one
        os.remove(current_exe)
        shutil.move(new_exe, current_exe)

        # Clean up the update directory
        update_dir = os.path.dirname(new_exe)
        shutil.rmtree(update_dir)

        # Start the updated executable
        subprocess.Popen([current_exe], creationflags=subprocess.CREATE_NEW_CONSOLE)
        
        # Log the update completion
        with open(os.path.join(os.path.dirname(current_exe), "update_log.txt"), "w") as f:
            f.write(f"Update completed at {time.ctime()}. New executable started.")
        
    except Exception as e:
        # Log the error
        with open(os.path.join(os.path.dirname(current_exe), "update_error_log.txt"), "w") as f:
            f.write(f"Error during update process at {time.ctime()}: {str(e)}")


def perform_update(new_exe_path):
    current_exe = sys.executable

    # Start the update process
    subprocess.Popen(
        [sys.executable, __file__, "update", current_exe, new_exe_path],
        creationflags=subprocess.CREATE_NO_WINDOW,
    )

    # Exit the current process
    sys.exit(0)


if __name__ == "__main__":
    if len(sys.argv) > 1 and sys.argv[1] == "update":
        update_script(sys.argv[2], sys.argv[3])
tools\_internal\dlss_updater\config.ini
[LauncherPaths]
steampath = 
eapath = 
epicpath = 
gogpath = 
ubisoftpath = 
battledotnetpath = 

tools\_internal\dlss_updater\config.py
import os
import sys


def resource_path(relative_path):
    """Get absolute path to resource, works for dev and for PyInstaller"""
    try:
        # PyInstaller creates a temp folder and stores path in _MEIPASS
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)


LATEST_DLL_VERSIONS = {
    "nvngx_dlss.dll": "3.8.10.0",
    "nvngx_dlssg.dll": "3.17.10.0",
    "nvngx_dlssd.dll": "3.17.10.0",
}

LATEST_DLL_PATHS = {
    "nvngx_dlss.dll": resource_path(os.path.join("latest_dll", "nvngx_dlss.dll")),
    "nvngx_dlssg.dll": resource_path(os.path.join("latest_dll", "nvngx_dlssg.dll")),
    "nvngx_dlssd.dll": resource_path(os.path.join("latest_dll", "nvngx_dlssd.dll")),
}
tools\_internal\dlss_updater\constants.py
DLL_TYPE_MAP = {
    "nvngx_dlss.dll": "DLSS DLL",
    "nvngx_dlssg.dll": "DLSS Frame Generation DLL",
    "nvngx_dlssd.dll": "DLSS Ray Reconstruction DLL",
}
tools\_internal\dlss_updater\dlss_updater.log
 
tools\_internal\dlss_updater\logger.py
import logging
import sys
from pathlib import Path


def setup_logger(log_file_name="dlss_updater.log"):
    logger = logging.getLogger("DLSSUpdater")

    # Check if the logger has already been configured
    if not logger.handlers:
        logger.setLevel(logging.DEBUG)

        log_file_path = (
            Path(sys.executable).parent / log_file_name
            if getattr(sys, "frozen", False)
            else Path(__file__).parent / log_file_name
        )

        # Create handlers
        console_handler = logging.StreamHandler(sys.stdout)
        file_handler = logging.FileHandler(log_file_path, encoding="utf-8")

        # Create formatter and add it to handlers
        log_format = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
        console_handler.setFormatter(log_format)
        file_handler.setFormatter(log_format)

        # Add handlers to the logger
        logger.addHandler(console_handler)
        logger.addHandler(file_handler)

        # Prevent propagation to avoid duplicate logs
        logger.propagate = False

    return logger


# Usage example
if __name__ == "__main__":
    logger = setup_logger()
    logger.info("This is a test log message")
    logger.info("This is a test logger.info message with an argument: %s", "test arg")
tools\_internal\dlss_updater\scanner.py
import os
from pathlib import Path
from .whitelist import is_whitelisted
import asyncio
from dlss_updater.logger import setup_logger

logger = setup_logger()


def get_steam_install_path():
    try:
        import winreg

        key = winreg.OpenKey(
            winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Valve\Steam"
        )
        value, _ = winreg.QueryValueEx(key, "InstallPath")
        return value
    except (FileNotFoundError, ImportError):
        return None


def get_steam_libraries(steam_path):
    library_folders_path = Path(steam_path) / "steamapps" / "libraryfolders.vdf"
    if not library_folders_path.exists():
        return [Path(steam_path) / "steamapps" / "common"]

    libraries = []
    with library_folders_path.open("r") as file:
        lines = file.readlines()
        for line in lines:
            if "path" in line:
                path = line.split('"')[3]
                libraries.append(Path(path) / "steamapps" / "common")
    return libraries


async def find_dlss_dlls(library_paths, launcher_name):
    dll_names = ["nvngx_dlss.dll", "nvngx_dlssg.dll", "nvngx_dlssd.dll"]
    dll_paths = []
    for library_path in library_paths:
        for root, _, files in os.walk(library_path):
            for dll_name in dll_names:
                if dll_name.lower() in [f.lower() for f in files]:
                    dll_path = os.path.join(root, dll_name)
                    logger.debug(f"Checking DLL: {dll_path}")
                    if not await is_whitelisted(dll_path):  # Use await here
                        logger.info(
                            f"Found non-whitelisted DLSS DLL in {launcher_name}: {dll_path}"
                        )
                        dll_paths.append(dll_path)
                    else:
                        logger.info(
                            f"Skipped whitelisted game in {launcher_name}: {dll_path}"
                        )
            await asyncio.sleep(0)  # Yield control to allow other tasks to run
    return dll_paths


def get_user_input(prompt):
    user_input = input(prompt).strip()
    return None if user_input.lower() in ["n/a", ""] else user_input


async def get_ea_games():
    ea_path = get_user_input(
        "Please enter the path for EA games or press Enter to skip: "
    )
    if ea_path is None:
        logger.info("EA games path skipped.")
        return []
    ea_games_path = Path(ea_path)
    if not ea_games_path.exists():
        logger.info(f"Invalid path for EA games: {ea_games_path}")
        return []
    logger.info(f"EA games path set to: {ea_games_path}")
    return [ea_games_path]


def get_ubisoft_install_path():
    try:
        import winreg

        key = winreg.OpenKey(
            winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Ubisoft\Launcher"
        )
        value, _ = winreg.QueryValueEx(key, "InstallDir")
        return value
    except (FileNotFoundError, ImportError):
        return None


async def get_ubisoft_games(ubisoft_path):
    ubisoft_games_path = Path(ubisoft_path) / "games"
    if not ubisoft_games_path.exists():
        return []
    return [ubisoft_games_path]


async def get_epic_games():
    epic_path = get_user_input(
        "Please enter the path for Epic Games or press Enter to skip: "
    )
    if epic_path is None:
        return []
    epic_games_path = Path(epic_path)
    if not epic_games_path.exists():
        logger.info("Invalid path for Epic Games.")
        return []
    return [epic_games_path]


async def get_gog_games():
    gog_path = get_user_input(
        "Please enter the path for GOG games or press Enter to skip: "
    )
    if gog_path is None:
        return []
    gog_games_path = Path(gog_path)
    if not gog_games_path.exists():
        logger.info("Invalid path for GOG games.")
        return []
    return [gog_games_path]


async def get_battlenet_games():
    battlenet_path = get_user_input(
        "Please enter the path for Battle.net games (Note: Please ensure you have the launcher opened first) or press Enter to skip: "
    )
    if battlenet_path is None:
        return []
    battlenet_games_path = Path(battlenet_path)
    if not battlenet_games_path.exists():
        logger.info("Invalid path for Battle.net games.")
        return []
    return [battlenet_games_path]


async def find_all_dlss_dlls():
    logger.info("Starting find_all_dlss_dlls function")
    all_dll_paths = {
        "Steam": [],
        "EA Launcher": [],
        "Ubisoft Launcher": [],
        "Epic Games Launcher": [],
        "GOG Launcher": [],
        "Battle.net Launcher": [],
    }

    # Steam
    logger.info("Checking Steam...")
    steam_path = get_steam_install_path()
    if steam_path:
        steam_libraries = get_steam_libraries(steam_path)
        all_dll_paths["Steam"] = await find_dlss_dlls(steam_libraries, "Steam")

    # EA
    logger.info("Checking EA...")
    ea_games = await get_ea_games()
    if ea_games:
        ea_dlls = await find_dlss_dlls(ea_games, "EA Launcher")
        all_dll_paths["EA Launcher"].extend(ea_dlls)

    # Ubisoft
    logger.info("Checking Ubisoft...")
    ubisoft_path = get_ubisoft_install_path()
    if ubisoft_path:
        ubisoft_games = await get_ubisoft_games(ubisoft_path)
        all_dll_paths["Ubisoft Launcher"] = await find_dlss_dlls(
            ubisoft_games, "Ubisoft Launcher"
        )

    # Epic Games
    logger.info("Checking Epic Games...")
    epic_games = await get_epic_games()
    if epic_games:
        all_dll_paths["Epic Games Launcher"] = await find_dlss_dlls(
            epic_games, "Epic Games Launcher"
        )

    # GOG
    logger.info("Checking GOG...")
    gog_games = await get_gog_games()
    if gog_games:
        all_dll_paths["GOG Launcher"] = await find_dlss_dlls(gog_games, "GOG Launcher")

    # Battle.net
    logger.info("Checking Battle.net...")
    battlenet_games = await get_battlenet_games()
    if battlenet_games:
        all_dll_paths["Battle.net Launcher"] = await find_dlss_dlls(
            battlenet_games, "Battle.net Launcher"
        )

    # Remove duplicates
    logger.info("Removing duplicates...")
    unique_dlls = set()
    for launcher in all_dll_paths:
        all_dll_paths[launcher] = [
            dll
            for dll in all_dll_paths[launcher]
            if str(dll) not in unique_dlls and not unique_dlls.add(str(dll))
        ]

    logger.info("find_all_dlss_dlls function completed")
    return all_dll_paths
tools\_internal\dlss_updater\updater.py
import os
import shutil
import pefile
from dlss_updater.config import LATEST_DLL_VERSIONS, LATEST_DLL_PATHS
from pathlib import Path
import stat
import time
import psutil
import asyncio
from packaging import version
from .logger import setup_logger
from .constants import DLL_TYPE_MAP


logger = setup_logger()


def parse_version(version_string):
    # Replace commas with dots and remove any trailing zeros
    cleaned_version = ".".join(version_string.replace(",", ".").split(".")[:3])
    return version.parse(cleaned_version)


def get_dll_version(dll_path):
    try:
        with open(dll_path, "rb") as file:
            pe = pefile.PE(data=file.read())
            for fileinfo in pe.FileInfo:
                for entry in fileinfo:
                    if hasattr(entry, "StringTable"):
                        for st in entry.StringTable:
                            for key, value in st.entries.items():
                                if key == b"FileVersion":
                                    return value.decode("utf-8").strip()
    except Exception as e:
        logger.error(f"Error reading version from {dll_path}: {e}")
    return None


def remove_read_only(file_path):
    if not os.access(file_path, os.W_OK):
        logger.info(f"Removing read-only attribute from {file_path}")
        os.chmod(file_path, stat.S_IWRITE)


def restore_permissions(file_path, original_permissions):
    os.chmod(file_path, original_permissions)


def is_file_in_use(file_path, timeout=5):
    start_time = time.time()
    while time.time() - start_time < timeout:
        try:
            with open(file_path, "rb"):
                return False  # File is not in use
        except PermissionError:
            for proc in psutil.process_iter(["pid", "name", "open_files"]):
                try:
                    for file in proc.open_files():
                        if file.path == file_path:
                            logger.error(
                                f"File {file_path} is in use by process {proc.name()} (PID: {proc.pid})"
                            )
                            return True
                except (psutil.NoSuchProcess, psutil.AccessDenied):
                    pass
        time.sleep(0.1)  # Short sleep to prevent CPU overuse
    logger.info(f"Timeout reached while checking if file {file_path} is in use")
    return True  # Assume file is NOT in use if we can't determine otherwise to prevent hanging conditions


def normalize_path(path):
    return os.path.normpath(path)


async def create_backup(dll_path):
    backup_path = dll_path.with_suffix(".dlsss")
    try:
        await asyncio.to_thread(shutil.copy2, dll_path, backup_path)
        logger.info(f"Created backup: {backup_path}")
        return backup_path
    except Exception as e:
        logger.error(f"Failed to create backup for {dll_path}: {e}")
        return None


async def update_dll(dll_path, latest_dll_path):
    dll_path = Path(normalize_path(dll_path)).resolve()
    latest_dll_path = Path(normalize_path(latest_dll_path)).resolve()
    logger.info(f"Checking DLL at {dll_path}...")

    # Determine DLL type
    dll_type = DLL_TYPE_MAP.get(dll_path.name.lower(), "Unknown DLL type")

    original_permissions = os.stat(dll_path).st_mode

    try:
        existing_version = get_dll_version(dll_path)
        latest_version = get_dll_version(latest_dll_path)

        if existing_version and latest_version:
            existing_parsed = parse_version(existing_version)
            latest_parsed = parse_version(latest_version)

            logger.info(
                f"Existing version: {existing_version}, Latest version: {latest_version}"
            )

            if existing_parsed < parse_version("2.0.0"):
                logger.info(
                    f"Skipping update for {dll_path}: Version {existing_version} is less than 2.0.0 and cannot be updated."
                )
                return False, None, dll_type

            if existing_parsed >= latest_parsed:
                logger.info(
                    f"{dll_path} is already up-to-date (version {existing_version})."
                )
                return False, None, dll_type
            else:
                logger.info(f"Update needed: {existing_version} -> {latest_version}")
                logger.info("Preparing to update...")

        # Check if the target path exists
        if not dll_path.exists():
            logger.error(f"Error: Target DLL path does not exist: {dll_path}")
            return False, None, dll_type

        # Check if the latest DLL path exists
        if not latest_dll_path.exists():
            logger.error(f"Error: Latest DLL path does not exist: {latest_dll_path}")
            return False, None, dll_type

        # Ensure the target directory is writable
        if not os.access(dll_path.parent, os.W_OK):
            logger.error(
                f"Error: No write permission to the directory: {dll_path.parent}"
            )
            return False, None, dll_type

        # Create backup
        logger.info("Creating backup...")
        backup_path = await create_backup(dll_path)
        if not backup_path:
            logger.info(f"Skipping update for {dll_path} due to backup failure.")
            return False, None, dll_type

        logger.info("Checking file permissions...")
        remove_read_only(dll_path)

        logger.info("Checking if file is in use...")
        retry_count = 3
        while retry_count > 0:
            if not await asyncio.to_thread(is_file_in_use, str(dll_path)):
                break
            logger.info(
                f"File is in use. Retrying in 2 seconds... (Attempts left: {retry_count})"
            )
            await asyncio.sleep(2)
            retry_count -= 1

        if retry_count == 0:
            logger.info(
                f"File {dll_path} is still in use after multiple attempts. Cannot update."
            )
            restore_permissions(dll_path, original_permissions)
            return False, None, dll_type

        logger.info("Starting file copy...")
        await asyncio.to_thread(shutil.copyfile, latest_dll_path, dll_path)
        logger.info("File copy completed.")

        # Restore original permissions
        restore_permissions(dll_path, original_permissions)

        logger.info(
            f"Successfully updated {dll_path} from version {existing_version} to {latest_version}."
        )
        return True, backup_path, dll_type
    except Exception as e:
        logger.error(f"Error updating {dll_path}: {e}")
        restore_permissions(dll_path, original_permissions)
        return False, None, dll_type
tools\_internal\dlss_updater\utils.py
import os


def find_file_in_directory(directory, filename):
    for root, _, files in os.walk(directory):
        if filename in files:
            return os.path.join(root, filename)
    return None
tools\_internal\dlss_updater\version.py
__version__ = "2.2.6"
tools\_internal\dlss_updater\whitelist.py
import os
import csv

# import shutil
import asyncio
from io import StringIO
from urllib.request import urlopen
from urllib.error import URLError

# from pathlib import Path
from dlss_updater.logger import setup_logger

# import win32file
# import win32con
# from watchdog.observers import Observer
# from watchdog.events import FileSystemEventHandler

logger = setup_logger()

WHITELIST_URL = (
    "https://raw.githubusercontent.com/Recol/DLSS-Updater-Whitelist/main/whitelist.csv"
)


# class WarframeDLLHandler(FileSystemEventHandler):
#     def __init__(self, dll_path, backup_path):
#         self.dll_path = dll_path
#         self.backup_path = backup_path

#     def on_modified(self, event):
#         if event.src_path == self.dll_path:
#             logger.info(f"Detected modification attempt on {self.dll_path}")
#             shutil.copy2(self.backup_path, self.dll_path)
#             win32file.SetFileAttributes(
#                 self.dll_path,
#                 win32con.FILE_ATTRIBUTE_READONLY | win32con.FILE_ATTRIBUTE_SYSTEM,
#             )
#             logger.info(f"Restored and protected {self.dll_path}")


async def fetch_whitelist():
    try:
        with urlopen(WHITELIST_URL) as response:
            csv_data = StringIO(response.read().decode("utf-8"))
        reader = csv.reader(csv_data)
        return set(row[0].strip() for row in reader if row and row[0].strip())
    except URLError as e:
        logger.error(f"Failed to fetch whitelist: {e}")
        return set()
    except csv.Error as e:
        logger.error(f"Failed to parse whitelist CSV: {e}")
        return set()


WHITELISTED_GAMES = asyncio.run(fetch_whitelist())


# def create_symlink(src, dst):
#     try:
#         win32file.CreateSymbolicLink(dst, src, 1 if os.path.isdir(src) else 0)
#         return True
#     except Exception as e:
#         logger.error(f"Failed to create symlink: {e}")
#         return False


# async def protect_warframe_dll(dll_path):
#     dll_path = Path(dll_path).resolve()
#     backup_dir = dll_path.parent / "DLSS_Updater_Backup"
#     backup_path = backup_dir / dll_path.name

#     async def _protect():
#         try:
#             logger.info(f"Attempting to protect Warframe DLL: {dll_path}")

#             # Create backup directory if it doesn't exist
#             backup_dir.mkdir(exist_ok=True)
#             logger.info(f"Backup directory created/verified: {backup_dir}")

#             # Backup original DLL if not already done
#             if not backup_path.exists():
#                 await asyncio.to_thread(shutil.copy2, dll_path, backup_path)
#                 logger.info(f"Backed up original DLL to: {backup_path}")

#             # Replace with our updated DLL (assuming it's in LATEST_DLL_PATHS)
#             latest_dll = LATEST_DLL_PATHS.get(dll_path.name.lower())
#             if latest_dll:
#                 await asyncio.to_thread(shutil.copy2, latest_dll, dll_path)
#                 logger.info(f"Replaced DLL with updated version: {dll_path}")

#             # Set file attributes
#             await asyncio.to_thread(
#                 win32file.SetFileAttributes,
#                 str(dll_path),
#                 win32con.FILE_ATTRIBUTE_READONLY | win32con.FILE_ATTRIBUTE_SYSTEM,
#             )
#             logger.info(f"Set DLL as read-only and system file: {dll_path}")

#             # Set up file watcher
#             event_handler = WarframeDLLHandler(str(dll_path), str(backup_path))
#             observer = Observer()
#             observer.schedule(event_handler, str(dll_path.parent), recursive=False)
#             observer.start()
#             logger.info(f"File watcher set up for: {dll_path}")

#             return True

#         except Exception as e:
#             logger.error(f"Failed to protect Warframe DLL: {e}")
#             return False

#     return await _protect()


async def is_whitelisted(game_path):
    logger.debug(f"Checking whitelist for: {game_path}")
    path_parts = game_path.lower().split(os.path.sep)

    for game in WHITELISTED_GAMES:
        game_words = game.lower().split()
        logger.debug(f"Checking against whitelisted game: {game}")

        if all(word in " ".join(path_parts) for word in game_words):
            logger.info(f"Whitelist match found: {game} in {game_path}")

            # # Special handling for Warframe
            # if "warframe" in game.lower():
            #     logger.info(f"Applying protection to Warframe DLSS DLL: {game_path}")
            #     protected = await protect_warframe_dll(game_path)
            #     if protected:
            #         logger.info(
            #             f"Successfully protected Warframe DLSS DLL: {game_path}"
            #         )
            #     else:
            #         logger.warning(f"Failed to protect Warframe DLSS DLL: {game_path}")
            #     return False  # Allow updating Warframe DLL

            return True  # Whitelist match for other games

    logger.debug(f"No whitelist match found for: {game_path}")
    return False
tools\_internal\dlss_updater\__init__.py
from .scanner import get_steam_install_path, get_steam_libraries, find_dlss_dlls
from .updater import update_dll
from .whitelist import is_whitelisted
from .version import __version__
from .config import LATEST_DLL_PATHS
from .auto_updater import auto_update
from .logger import setup_logger
from .constants import DLL_TYPE_MAP

__all__ = [
    "get_steam_install_path",
    "get_steam_libraries",
    "find_dlss_dlls",
    "update_dll",
    "is_whitelisted",
    "__version__",
    "LATEST_DLL_PATHS",
    "auto_update",
    "setup_logger",
    "DLL_TYPE_MAP",
]
tools\_internal\latest_dll\nvngx_dlss.dll
md5: AED94E7029846C356882DB166B824F5E | sha1: A9E38894E3D017722A4B6458BB9F36ED3419CCE8 | sha256: 89621E11738494356511604AE726F21C1BED1869735CC8949E9DDC8A8C2FD817 | sha512: F647943DD10B4C890D1B0E2A93FEF334F1F53E6BDDB96CFCCDBC4E9429AE4AB7017048675EB82BFE80C30BBD4F46CC5976777A1718311D746DEE81719D7A2A4B
tools\_internal\latest_dll\nvngx_dlssd.dll
md5: FDFAC845AB72D509A24EA2C16A1619C4 | sha1: 079166CF150BB7D3DAA37AF3055A82D9F9512AD2 | sha256: 9D18B5A5506910FE17BC4F032C56CB00CF1C3D622C5C8B04798E67463D6006A5 | sha512: FA70756CC253E2DEB0B63800A2E55D894FD728B04E86812E5AD26A4ED45EC004C19B8ABD9ED510D024D37E0BF6636A32A81BA34349550F3E0AF1D88094DCB4A3
tools\_internal\latest_dll\nvngx_dlssg.dll
md5: 69E9F9DC32D0AEF4E7C986E2339A0E52 | sha1: 5D710B40D8C6583F13C476F6560E5D99580E3E1A | sha256: 0F018D0811C4A05EF6302E0065BEF8C54E6562358DEB5BE6BFB45DB3DF0A8343 | sha512: B009A90BB1AD0DA46F478589C78B30A4090F957EA48B5432E67B77A3AA4CD0B7E683AF4AE82AE73B9526084D3DDFBA1A652C83718A0E044D1A3325F07CC3F996
tools\_internal\libcrypto-3.dll
md5: 123AD0908C76CCBA4789C084F7A6B8D0 | sha1: 86DE58289C8200ED8C1FC51D5F00E38E32C1AAD5 | sha256: 4E5D5D20D6D31E72AB341C81E97B89E514326C4C861B48638243BDF0918CFA43 | sha512: 80FAE0533BA9A2F5FA7806E86F0DB8B6AAB32620DDE33B70A3596938B529F3822856DE75BDDB1B06721F8556EC139D784BC0BB9C8DA0D391DF2C20A80D33CB04
tools\_internal\libffi-8.dll
md5: 0F8E4992CA92BAAF54CC0B43AACCCE21 | sha1: C7300975DF267B1D6ADCBAC0AC93FD7B1AB49BD2 | sha256: EFF52743773EB550FCC6CE3EFC37C85724502233B6B002A35496D828BD7B280A | sha512: 6E1B223462DC124279BFCA74FD2C66FE18B368FFBCA540C84E82E0F5BCBEA0E10CC243975574FA95ACE437B9D8B03A446ED5EE0C9B1B094147CEFAF704DFE978
tools\_internal\libssl-3.dll
md5: 4FF168AAA6A1D68E7957175C8513F3A2 | sha1: 782F886709FEBC8C7CEBCEC4D92C66C4D5DBCF57 | sha256: 2E4D35B681A172D3298CAF7DC670451BE7A8BA27C26446EFC67470742497A950 | sha512: C372B759B8C7817F2CBB78ECCC5A42FA80BDD8D549965BD925A97C3EEBDCE0335FBFEC3995430064DEAD0F4DB68EBB0134EB686A0BE195630C49F84B468113E3
tools\_internal\pefile-2023.2.7.dist-info\INSTALLER
 
tools\_internal\pefile-2023.2.7.dist-info\LICENSE
 
tools\_internal\pefile-2023.2.7.dist-info\METADATA
tools\_internal\pefile-2023.2.7.dist-info\RECORD
 
tools\_internal\pefile-2023.2.7.dist-info\top_level.txt
ordlookup
pefile
peutils
tools\_internal\pefile-2023.2.7.dist-info\WHEEL
 
tools\_internal\psutil-6.1.0.dist-info\INSTALLER
 
tools\_internal\psutil-6.1.0.dist-info\LICENSE
 
tools\_internal\psutil-6.1.0.dist-info\METADATA
tools\_internal\psutil-6.1.0.dist-info\RECORD
 
tools\_internal\psutil-6.1.0.dist-info\REQUESTED
 
tools\_internal\psutil-6.1.0.dist-info\top_level.txt
psutil
tools\_internal\psutil-6.1.0.dist-info\WHEEL
 
tools\_internal\psutil\_psutil_windows.pyd
md5: 49AC12A1F10AB93FAFAB064FD0523A63 | sha1: 3AD6923AB0FB5D3DD9D22ED077DB15B42C2FBD4F | sha256: BA033B79E858DBFCBA6BF8FB5AFE10DEFD1CB03957DBBC68E8E62E4DE6DF492D | sha512: 1BC0F50E0BB0A9D9DDDAD31390E5C73B0D11C2B0A8C5462065D477E93FF21F7EDC7AA2B2B36E478BE0A797A38F43E3FBEB6AAABEF0BADEC1D8D16EB73DF67255
tools\_internal\pyexpat.pyd
md5: B34CA0FCD5E0E4F060FE211273AC2946 | sha1: F7E978EB8ADDA4BF74739EF71901E0E3AA12EA8C | sha256: B6670D91A76E9F00609752AB19AAE0B1EBE00D24D9D8D22068989BBB24D0AA44 | sha512: 010774770DD5C4355C336ECE7BFB729D2E616BBA62BFB9961324D3B314396F1F535B5ADF50621BFC0517C03587C912568E19602173A43F297A5F638AA9296500
tools\_internal\python3.dll
md5: 2E2BB725B92A3D30B1E42CC43275BB7B | sha1: 83AF34FB6BBB3E24FF309E3EBC637DD3875592A5 | sha256: D52BACA085F88B40F30C855E6C55791E5375C80F60F94057061E77E33F4CAD7A | sha512: E4A500287F7888B1935DF40FD0D0F303B82CBCF0D5621592805F3BB507E8EE8DE6B51BA2612500838D653566FAD18A04F76322C3AB405CE2FDBBEFB5AB89069E
tools\_internal\python312.dll
md5: B243D61F4248909BC721674D70A633DE | sha1: 1D2FB44B29C4AC3CFD5A7437038A0C541FCE82FC | sha256: 93488FA7E631CC0A2BD808B9EEE8617280EE9B6FF499AB424A1A1CBF24D77DC7 | sha512: 10460C443C7B9A6D7E39AD6E2421B8CA4D8329F1C4A0FF5B71CE73352D2E9438D45F7D59EDB13CE30FAD3B4F260BD843F4D9B48522D448310D43E0988E075FCB
tools\_internal\release_notes.txt
Version 2.2.4:
Minor updates to the Chocolatey package description.
Detached the whitelist to a separate repository so new versions do not need to be downloaded for an update.
Updates to associated documentation.
Experimental support for bytecode optimisation with PyInstaller.

Version 2.2.5:
Add experimental code for handling of Warframe and removed from the whitelist, it is disabled for now.
Performance improvements for whitelist matches.
Minor bug fixes.
Increase bytecode optimisation to level 2 to decrease file sizes.

Version 2.2.6:
Nvidia DLSS DLL updated to version 3.8.10.0 from the release driver 556.14.

tools\_internal\select.pyd
md5: 7E871444CA23860A25B888EE263E2EAF | sha1: AA43C9D3ABDB1AABDA8379F301F8116D0674B590 | sha256: DCA5E6D39C5094CE599143CB82F6D8470F0C2A4CE4443499E73F32ED13333FD0 | sha512: 2E260D3123F7CA612901513B90FE40739E85248DA913297D4CCA3B2EBD398D9697880D148830E168E474EBFC3D30EDE10668C7316ED7668F8B39DA7BCA59E57D
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\INSTALLER
 
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\LICENSE
 
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\METADATA
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\RECORD
 
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\REQUESTED
 
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\top_level.txt
importlib_metadata
tools\_internal\setuptools\_vendor\importlib_metadata-8.0.0.dist-info\WHEEL
 
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\entry_points.txt
[console_scripts]
wheel=wheel.cli:main

[distutils.commands]
bdist_wheel=wheel.bdist_wheel:bdist_wheel

tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\INSTALLER
 
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\LICENSE.txt
MIT License

Copyright (c) 2012 Daniel Holth <[email protected]> and contributors

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\METADATA
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\RECORD
 
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\REQUESTED
 
tools\_internal\setuptools\_vendor\wheel-0.43.0.dist-info\WHEEL
 
tools\_internal\ucrtbase.dll
md5: CCE9B64D0F98C2370A2DA82AA9A501E0 | sha1: 0121A2B000B9A0B3F3B6660B39536FE8D72BA222 | sha256: 5D69CCE34D22D26BC6DCB4C3E58DBAE83346EB3EA203CB80769AD4C077424C96 | sha512: 66553C524CA07C537D0E7B18EA35AE0B9218D1ADF076726D4EA9071B5EC546FFD87BC6EFB55671109041A9AA007F7E0F59462341F365E448BE9071D714B6A6F9
tools\_internal\unicodedata.pyd
md5: 098CC6AD04199442C3E2A60E1243C2DC | sha1: 4C92C464A8E1E56E1C4D77CD30A0DA474A026AAF | sha256: 64A162D6B11BA10CB11509F3CC445F17BEB7ACFD064F030B4D59FAA1C9894B29 | sha512: 73C28488B42A0BC2F0D2861FED3F5DCCCF8959CE19D3121C13C998DB496F2822DEB40F36F86240C8D3954FD2DC2BA5D63C8A125B62324DCD92FB6C8BA49FF170
tools\_internal\VCRUNTIME140.dll
md5: 862F820C3251E4CA6FC0AC00E4092239 | sha1: EF96D84B253041B090C243594F90938E9A487A9A | sha256: 36585912E5EAF83BA9FEA0631534F690CCDC2D7BA91537166FE53E56C221E153 | sha512: 2F8A0F11BCCC3A8CB99637DEEDA0158240DF0885A230F38BB7F21257C659F05646C6B61E993F87E0877F6BA06B347DDD1FC45D5C44BC4E309EF75ED882B82E4E
tools\_internal\VCRUNTIME140_1.dll
md5: 68156F41AE9A04D89BB6625A5CD222D4 | sha1: 3BE29D5C53808186EBA3A024BE377EE6F267C983 | sha256: 82A2F9AE1E6146AE3CB0F4BC5A62B7227E0384209D9B1AEF86BBCC105912F7CD | sha512: F7BF8AD7CD8B450050310952C56F6A20B378A972C822CCC253EF3D7381B56FFB3CA6CE3323BEA9872674ED1C02017F78AB31E9EB9927FC6B3CBA957C247E5D57
tools\_internal\_asyncio.pyd
md5: E74E8B37BD359F581F368BA092EED90E | sha1: E6BDC3494DBC5D4AE0434BF4DC3B2952E4827F18 | sha256: 184FC13677C7856E7A8B31DFE79CE68DCEA10CDF83A205DE2B0D5497FB0FFDF3 | sha512: 29D33593758945A02844E1333ED99D66A0E42EB7E8D0C881197F05D4EC9DAD3F1BB490739BC2D64EA9451F4BBBFCC05089A57A7AA1EC22C4091C7EDD604B7F7C
tools\_internal\_bz2.pyd
md5: FE499B0A9F7F361FA705E7C81E1011FA | sha1: CC1C98754C6DAB53F5831B05B4DF6635AD3F856D | sha256: 160B5218C2035CCCBAAB9DC4CA26D099F433DCB86DBBD96425C933DC796090DF | sha512: 60520C5EB5CCC72AE2A4C0F06C8447D9E9922C5F9F1F195757362FC47651ADCC1CDBFEF193AE4FEC7D7C1A47CF1D9756BD820BE996AE145F0FBBBFBA327C5742
tools\_internal\_ctypes.pyd
md5: 302DDF5F83B5887AB9C4B8CC4E40B7A6 | sha1: 0AA06AF65D072EB835C8D714D0F0733DC2F47E20 | sha256: 8250B4C102ABD1DBA49FC5B52030CAA93CA34E00B86CEE6547CC0A7F22326807 | sha512: 5DDC2488FA192D8B662771C698A63FAAF109862C8A4DD0DF10FB113AEF839D012DF58346A87178AFF9A1B369F82D8AE7819CEF4AAD542D8BD3F91327FEACE596
tools\_internal\_decimal.pyd
md5: 82321FB8245333842E1C31F874329170 | sha1: 81ABB1D3D5C55DB53E8ACA9BDF74F2DEC0ABA1A3 | sha256: B7F9603F98EF232A2C5BCE7001D842C01D76ED35171AFBD898E6D17FACF38B56 | sha512: 0CF932EE0D1242EA9377D054ADCD71FDD7EC335ABBAC865E82987E3979E24CEAD6939CCA19DA63A08E08AC64FACE16950EDCE7918E02BFC7710F09645FD2FA19
tools\_internal\_elementtree.pyd
md5: 57130733D8CBD090BE211B8A193BED34 | sha1: 040B499728E76DADDA6AD8D05B18729A0E7B639C | sha256: C07F2827542A392FDE5FA9FE4D079C41D108C2B36C53C4035D1209F67C73E8D2 | sha512: 848CA9236850C8FFB84CB9F50E8746B687032AD6E28832D7E1E955778AB6EEDE98E610CE4F40CDBDBA967937668A77B6C50E5280518D8721E55FBC5E720D1908
tools\_internal\_hashlib.pyd
md5: 0ABFEE1DB6C16E8DDAFF12CD3E86475B | sha1: B2DDA9635EDE4F2841912CC50CB3AE67EEA89FE7 | sha256: B4CEC162B985D34AB768F66E8FA41ED28DC2F273FDE6670EEACE1D695789B137 | sha512: 0A5CAE4E3442AF1D62B65E8BF91E0F2A61563C2B971BBF008BFB2DE0F038EE472E7BFCC88663DC503B2712E92E6A7E6A5F518DDAB1FAB2EB435D387B740D2D44
tools\_internal\_lzma.pyd
md5: E3E7E99B3C2EA56065740B69F1A0BC12 | sha1: 79FA083D6E75A18E8B1E81F612ACB92D35BB2AEA | sha256: B095FA2EAC97496B515031FBEA5737988B18DEEE86A11F2784F5A551732DDC0C | sha512: 35CBC30B1CCDC4F5CC9560FC0149373CCD9399EB9297E61D52E6662BB8C56C6A7569D8CFAD85AEB057C10558C9352AE086C0467F684FDCF72A137EADF563A909
tools\_internal\_multiprocessing.pyd
md5: 4DAA82AAFC49DD75DAEA468CC37EF4B0 | sha1: CBF05ABC0EB9A6529AA01955D5FEAC200E602C89 | sha256: A197F3485BBE30B3A1612EA2198CEF121AF440BA799FD6CBF0AD3493150DF3CA | sha512: 473CAA70EC832B645296EBA3DA2DC0BBFC90DF15281A9DE612A2FEBF10B7E86D7F20F1C265C7BE693BC0D25E11D3D2904F4C2B1039A81AE0E192CFCA625408D5
tools\_internal\_overlapped.pyd
md5: B89FCA6EDBA418768147E455085F7CC7 | sha1: 5D41E0990E19EE0D131B4FE8C6AC5B7371D1F83E | sha256: 2AF91C5AB6F05C4BE357B93673920ECCF3EBCAD5E5EC6B0A7B53EF94A5FEAAD7 | sha512: A6BD8D62FB1FBEBBFA9FEE9037EFFBCBBB48BFA2E6C8B398E036C0BD5F402A4B1C0BF0AD8D80585FE501E00D7FE21B387A0F0E05AD2FCDF3AEB248010CB3F1BE
tools\_internal\_queue.pyd
md5: 941A3757931719DD40898D88D04690CB | sha1: 177EDE06A3669389512BFC8A9B282D918257BF8B | sha256: BBE7736CAED8C17C97E2B156F686521A788C25F2004AAE34AB0C282C24D57DA7 | sha512: 7CFBA5C69695C492BF967018B3827073B0C2797B24E1BD43B814FBBB39D1A8B32A2D7EF240E86046E4E07AA06F7266A31B5512D04D98A0D2D3736630C044546E
tools\_internal\_socket.pyd
md5: 632336EEEAD53CFAD22EB57F795D5657 | sha1: 62F5F73D21B86CD3B73B68E5FAEC032618196745 | sha256: CE3090FFF8575B21287DF5FC69AE98806646FC302EEFADF85E369AD3DEBAD92B | sha512: 77965B45060545E210CDB044F25E5FD68D6A9150CAF1CAD7645DBAFCF1CE8E1CCBDF8436FBDCBF5F9C293321C8916E114DE30ED8897C7DB72DF7F8D1F98DFB55
tools\_internal\_ssl.pyd
md5: EEA3E12970E28545A964A95DA7E84E0B | sha1: C3CCAC86975F2704DABC1FFC3918E81FEB3B9AC1 | sha256: 61F00B0543464BBA61E0BD1128118326C9BD0CDC592854DD1A31C3D6D8DF2B83 | sha512: 9BD5C83E7E0AB24D6BE40A31AC469A0D9B4621A2A279A5F3AB2FC6401A08C54AEC421BC9461AED533A0211D7DBDA0C264C5F05AEB39138403DA25C8CDA0339E6
tools\_internal\_uuid.pyd
md5: 48C6CCA2FDC2EC83FA0771D92BF1D72F | sha1: 723A8BB6E715616DA003D7C658CF94FB129CD091 | sha256: 869361ADF2BE930E5C8B492FA2116DC0D0EDCCBF2C231D39C859CE320BE27B31 | sha512: 42FDCA831E8398638C06CD54186C63CB434DA78234A23D80E0F400C64D4E0E4EF8FA307D115B3775B4F97248BD3CE498D764C6BEFE11B078EC9FCDD270E8F324
tools\_internal\_wmi.pyd
md5: FDA7D7AADA1D15CAB2ADD2F4BD2E59A1 | sha1: 7E61473F2AD5E061EF59105BF4255DBE7DB5117A | sha256: B0ED1C62B73B291A1B57E3D8882CC269B2FCBB1253F2947DA18D9036E0C985D9 | sha512: 95C2934A75507EA2D8C817DA7E76EE7567EC29A52018AEF195FAC779B7FFB440C27722D162F8E416B6EF5D3FD0936C71A55776233293B3DD0124D51118A2B628

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
DLSS Updater 2.5.0 6 Monday, November 18, 2024
Responded
DLSS Updater 2.2.6 12 Thursday, November 14, 2024
Responded

This package has no dependencies.

Discussion for the DLSS Updater Package

Ground Rules:

  • This discussion is only about DLSS Updater and the DLSS Updater package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or DLSS Updater, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus