<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/core/file_sys/vfs/vfs_real.cpp, 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-01T18:26:25+00:00</updated>
<entry>
<title>Merge remote-tracking branch 'origin/fix/vfs-real-forget-closed-paths' into test/linux-all-prs</title>
<updated>2026-11-01T18:26:25+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-11-01T18:26:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=acc79592f1aa7954102f7f341dee147e4aea49aa'/>
<id>urn:sha1:acc79592f1aa7954102f7f341dee147e4aea49aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vfs_real: forget a path when its file is gone</title>
<updated>2026-11-01T17:18:19+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-11-01T17:18:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=eca63ccb1006fdec79f6392d38bd74739e1371df'/>
<id>urn:sha1:eca63ccb1006fdec79f6392d38bd74739e1371df</id>
<content type='text'>
The path cache holds weak references, but nothing erased an entry once
its file was destroyed, so every path ever opened stayed in the cache
until the filesystem was destroyed (title 1's loose RomFS: 206k paths,
24 MB of keys, kept after the game stops). The entry is erased when the
file's last reference is dropped, unless the path was opened again
meanwhile.

</content>
</entry>
<entry>
<title>vfs_real: keep only the path in a real file</title>
<updated>2026-11-01T17:15:01+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-11-01T17:15:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=22c50e7cab6628f0564d8cca614f4d147b02d238'/>
<id>urn:sha1:22c50e7cab6628f0564d8cca614f4d147b02d238</id>
<content type='text'>
A real file kept its path three times: the path, its parent's path, and
the path split into components, which only gave the file's name. A loose
RomFS keeps one real file alive per file while the game runs: title 1's
206k files took 160 MB, now 48 MB. The name and the parent path are
derived from the path when asked, so a directory no longer passes its
own path to the files it opens.
</content>
</entry>
<entry>
<title>vfs: keep the open-file cache below RLIMIT_NOFILE on Unix</title>
<updated>2026-10-29T20:14:59+00:00</updated>
<author>
<name>yvonne</name>
<email>github.inori@etake.nl</email>
</author>
<published>2026-10-29T20:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=467ec722581e7ad573491c5662bcd9544eadd2ed'/>
<id>urn:sha1:467ec722581e7ad573491c5662bcd9544eadd2ed</id>
<content type='text'>
The VFS cache allowed up to 8192 open files on Unix, and main() set the
soft RLIMIT_NOFILE to exactly 8192. With large loose romfs dumps (e.g.
~205k files) the cache could exhaust every descriptor, so unrelated
opens failed with EMFILE and games crashed on the failed loads.

Size the cache from the actual soft limit with 512 descriptors spare,
as is already done on Windows, and only raise the limit in main()
instead of also lowering higher limits down to 8192.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>vfs: keep the open-file cache below the CRT limit</title>
<updated>2026-10-28T09:55:09+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-28T09:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b8a2e9ef69a6abb44b0047575fcb3ed579533af1'/>
<id>urn:sha1:b8a2e9ef69a6abb44b0047575fcb3ed579533af1</id>
<content type='text'>
The real VFS kept up to 8192 host files open, which is also the most the
Windows C runtime allows (_setmaxstdio(8192)). A game read from a loose RomFS
folder fills that within minutes (title 4: ~7300 handles after 160 s); from
then on every other open failed with "too many files open" - its next scene
pack, its save file, the shader cache - and the game waited forever on the
load. Cap the cache 512 below _getmaxstdio() on Windows.
</content>
</entry>
<entry>
<title>[common] Use `std::make_unique_for_overwrite&lt;T&gt;` in ScratchBuffer, remove polyfill (#4432)</title>
<updated>2026-09-25T05:54:49+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-09-25T05:54:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=bebc19da3253f13ceb5abfe8560cdbdc32ea7d8a'/>
<id>urn:sha1:bebc19da3253f13ceb5abfe8560cdbdc32ea7d8a</id>
<content type='text'>
Original `make_unique_for_overwrite.h` is well defined acc. to standard https://en.cppreference.com/cpp/memory/unique_ptr/make_unique, but by now most libc++ supports the function, so no need for polyfill.

Test that this didn't break anything (for example, Megaman game that has video at the start), or anything using VIC/IPC.

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4432
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>[file_sys] Quick sandbox escape fix (#4223)</title>
<updated>2026-07-24T22:31:22+00:00</updated>
<author>
<name>Maufeat</name>
<email>sahyno1996@gmail.com</email>
</author>
<published>2026-07-24T22:31:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5b4c29b12393f9da26a55408ea179d4813ca2c45'/>
<id>urn:sha1:5b4c29b12393f9da26a55408ea179d4813ca2c45</id>
<content type='text'>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4223
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[nce, fs] tico support, fix FS bug that would nuke entire 'switch' folder (#4086)</title>
<updated>2026-07-23T19:59:55+00:00</updated>
<author>
<name>xbzk</name>
<email>xbzk@eden-emu.dev</email>
</author>
<published>2026-07-23T19:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b85f289048fc4ea3636761788e3126ab2e79d591'/>
<id>urn:sha1:b85f289048fc4ea3636761788e3126ab2e79d591</id>
<content type='text'>
Contains the minimal set of functionalities to allow tico installer succeed, and tico work normally EXCEPT for game launching (which me or someone else will investigate later)

First three commits are from PR 4012.

The other six, kinda dizzy to explain each one. All were implemented based on tico source, switchbrew and libnx.
Hopefully the commit messages will do.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4086
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
</content>
</entry>
<entry>
<title>[*] basic in-house cpp linting (#4039)</title>
<updated>2026-06-04T03:49:07+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-06-04T03:49:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=89199f4d279bff0c664fb9142b1945d0c6d93ee8'/>
<id>urn:sha1:89199f4d279bff0c664fb9142b1945d0c6d93ee8</id>
<content type='text'>
- add `#pragma once` to remainder files
- "correcter" defines (ANDROID), see https://groups.google.com/g/android-ndk/c/cf9_f1SLXls
- extra miscelly fixups

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4039
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[file_sys] Increase max file limit to 8192 (#4011)</title>
<updated>2026-05-25T16:53:47+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-05-25T16:53:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=4a11d5db2f0b3418fbf515a7b4e940665e465dd6'/>
<id>urn:sha1:4a11d5db2f0b3418fbf515a7b4e940665e465dd6</id>
<content type='text'>
Now hopefully the Redditors can get off my ass for five seconds

Signed-off-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4011
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
</feed>
