<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/yuzu, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-11-03T18:06:59+00:00</updated>
<entry>
<title>yuzu: bound the zip directory reads in the DLSS download</title>
<updated>2026-11-03T18:06:59+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:56:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f9d0c802e8e4e71644bf4b7e6cceca8e6df22464'/>
<id>urn:sha1:f9d0c802e8e4e71644bf4b7e6cceca8e6df22464</id>
<content type='text'>
The central-directory parser trusted each entry's name, extra and comment lengths and the Zip64
extra field's length, so a malformed directory could make it read past the downloaded buffer. The
data comes from NVIDIA's GitHub release over TLS and the saved files are signature-checked, so the
risk is low.

Stop with an error when an entry runs past the directory, and read Zip64 fields only inside their
record.

Found by CodeRabbit review.

Assisted-by: Claude Opus 5.5 (implementation)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core, yuzu: write NVIDIA DLSS file paths to logs as UTF-8</title>
<updated>2026-11-03T18:06:59+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:56:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f4f076fe447b2ddc158fcc12ee81ed2af2aecad7'/>
<id>urn:sha1:f4f076fe447b2ddc158fcc12ee81ed2af2aecad7</id>
<content type='text'>
The Streamline start-up and DLSS download code formatted paths with std::filesystem::path::string(),
which on MSVC converts to the active code page and throws when a character has no mapping there,
for example a user name in another script under %APPDATA%. The start-up log runs inside the
renderer's constructor, which only catches vk::Exception, so such a user would crash at game start
with the setting on.

Use Common::FS::PathToUTF8String for every path in these logs and messages.

Found by CodeRabbit review.

Assisted-by: Claude Opus 5.5 (implementation)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>yuzu: show NVIDIA's DLSS files in the Graphics tab and fetch them from NVIDIA</title>
<updated>2026-11-03T17:33:16+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:13:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=98cc44dadd7ab4b63cf0685360ac50738e8e5c3e'/>
<id>urn:sha1:98cc44dadd7ab4b63cf0685360ac50738e8e5c3e</id>
<content type='text'>
Under the NVIDIA DLSS checkbox, a panel says whether the Streamline loader and DLSS were found and
which versions, with "Open Folder" and a link to NVIDIA's Streamline releases. When files are
missing, "Download from NVIDIA" takes only those files out of NVIDIA's Streamline 2.14.16 release
zip on GitHub with HTTP range requests (about 1 MB for the loader, 32 MB with DLSS, of the 276 MB
zip), after showing the Streamline and DLSS licence texts from the release for acceptance. Each
file's CRC and signature are checked before it is saved to the user folder's "streamline" folder.

Assisted-by: Claude Opus 5.5 (implementation)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core: NVIDIA DLSS through NVIDIA Streamline in place of a game's DLSS</title>
<updated>2026-11-03T17:33:16+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:13:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=63e87a22c60394bc4f427ee5f8d6ddbce7b0ac7f'/>
<id>urn:sha1:63e87a22c60394bc4f427ee5f8d6ddbce7b0ac7f</id>
<content type='text'>
Adds a Graphics setting, "Use NVIDIA DLSS in place of a game's DLSS" (nvidia_dlss, off by
default). When it is on, in Windows builds configured with EGLANTINE_STREAMLINE_SDK, the
evaluation Eglantine already replaces with FSR 3.1 goes to NVIDIA DLSS on GeForce RTX cards, with
the same inputs (colour, depth, motion vectors, jitter). When DLSS can't run, FSR 3.1 runs as
before.

Only Streamline's MIT-licensed headers are compiled in; nothing of NVIDIA's is linked or shipped.
At run time Eglantine looks for sl.interposer.dll in the user folder's "streamline" folder (or
EDEN_STREAMLINE_DIR, or "streamline" next to the executable), checks its Streamline signature and
starts Streamline with manual hooking. Streamline's plugins come from that folder or the NVIDIA
app's downloads. DLSS itself is nvngx_dlss.dll in the same folder, else the newest DLSS 310 or
later that the NVIDIA app has downloaded, checked for NVIDIA's Authenticode signature and copied
as streamline/nvidia-app/nvngx_dlss.dll. Like other tools that call DLSS outside a game, it uses
its own fixed project id with the custom engine type.

- Preset K for all modes (EDEN_NX2_DLSS_PRESET overrides it): the default Performance model (M)
  and L draw thin dark horizontal lines in some frames at 2x resolution scale; K doesn't.
- HDR input with auto exposure; the mode follows the render/output ratio.
- Buffer device address stays enabled when DLSS needs it, for DLSS only.
- The upscaler waits for the device instead of submitting when it is destroyed: by then the
  game's channels are released, and a submit read the state tracker's stale flags (a crash when
  stopping a game).

With the setting off, or in builds without the SDK path (the setting is hidden there), nothing
changes.

Testing: Windows 11, RTX 5080, Fire Emblem: Fortune's Weave docked at 1x (720p -&gt; 1440p) and 2x
(1440p -&gt; 2880p), CLI runs and GUI play, stopping and restarting games with DLSS on. Not tested on
other GPUs or games.

Assisted-by: Claude Opus 5.5 (implementation, debugging)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>nx2: improve save data handling for titles with missing NACP sizes to redirect the user to the correct save location</title>
<updated>2026-11-03T00:23:50+00:00</updated>
<author>
<name>kraibse</name>
<email>33869366+kraibse@users.noreply.github.com</email>
</author>
<published>2026-11-02T18:34:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=890dc1e6c7d8828b2d994371854692d5b28783ee'/>
<id>urn:sha1:890dc1e6c7d8828b2d994371854692d5b28783ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>qt: ask about the recommended MKW settings only when booting MKW</title>
<updated>2026-11-02T23:26:58+00:00</updated>
<author>
<name>Jonas</name>
<email>baguettegamerofficial2020@gmail.com</email>
</author>
<published>2026-11-02T22:56:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=e996661b99f4102f35e2aea596a67646afb127b0'/>
<id>urn:sha1:e996661b99f4102f35e2aea596a67646afb127b0</id>
<content type='text'>
The prompt showed at every startup whatever game was launched, and Yes
overwrote the global settings for every title. Ask on the first MKW boot
of a session instead and apply the preset to that session only.
</content>
</entry>
<entry>
<title>Merge pull request #334 from snowstormxd/codex/upstream-mkw-test</title>
<updated>2026-11-02T22:36:01+00:00</updated>
<author>
<name>Jonas</name>
<email>104419015+jojo-chaechae@users.noreply.github.com</email>
</author>
<published>2026-11-02T22:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8362c44ff835d7be73d2adad9ce3e2d4467a6aeb'/>
<id>urn:sha1:8362c44ff835d7be73d2adad9ce3e2d4467a6aeb</id>
<content type='text'>
MKW performance improvements</content>
</entry>
<entry>
<title>settings: default to ScaleForce and FXAA</title>
<updated>2026-11-02T21:14:39+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-02T21:14:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=405adb698e5ed76b1252fec41d3cb8780d1e6a49'/>
<id>urn:sha1:405adb698e5ed76b1252fec41d3cb8780d1e6a49</id>
<content type='text'>
Include both filters in the accepted MKW preset and verify defaults and saved-preference overrides.

Assisted by Codex.
</content>
</entry>
<entry>
<title>settings: restore the recommended MKW settings prompt</title>
<updated>2026-11-02T20:51:10+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-02T20:51:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b75ea7bcba60b70349274747cca04549908797bd'/>
<id>urn:sha1:b75ea7bcba60b70349274747cca04549908797bd</id>
<content type='text'>
Apply accepted settings visibly and save them, then reapply after per-game configuration. Include handheld mode.

Assisted by Codex.
</content>
</entry>
<entry>
<title>frontend: bound the wait for the emulation thread at shutdown</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T16:22:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=a3d67c14c86f57ec12787db0b8bb058ec8b5f73c'/>
<id>urn:sha1:a3d67c14c86f57ec12787db0b8bb058ec8b5f73c</id>
<content type='text'>
426f120ee8 dropped the 10 s wait and terminate() fallback when stopping
emulation, and ShutdownGame and closeEvent now wait for the emulation
thread with no limit. If the thread hangs (for example a GPU or present
deadlock), stopping a game, switching games or quitting never completes.

Keep the asynchronous teardown, but once the thread has been asked to
stop, give it 10 s and then terminate it and finish cleanup, as before.
ShutdownGame's nested event loop gets the same bound. A terminated
thread is logged as an error.

Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
</content>
</entry>
</feed>
