<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/yuzu_cmd, 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-03T05:26:40+00:00</updated>
<entry>
<title>cli: exit successfully for --help and --version</title>
<updated>2026-11-03T05:26:40+00:00</updated>
<author>
<name>ShahadatTest</name>
<email>Shahadattgbd@gmail.com</email>
</author>
<published>2026-11-03T02:10:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=75fdcbdf2b0f30d2605ddf77eaa53550ac4c29f9'/>
<id>urn:sha1:75fdcbdf2b0f30d2605ddf77eaa53550ac4c29f9</id>
<content type='text'>
ApplyLaunchParams already prints the help or version text, but
SDL_AppInit then fell through to the "No ROM specified" check and
returned SDL_APP_FAILURE, so `eglantine-cli --help` and `--version`
logged a critical error and exited with a failure code. Return
SDL_APP_SUCCESS for those two options before the ROM check.

Tested: Windows and Linux CI builds; on Windows, --help and --version
exit with 0 and running without a ROM still exits with a failure.

AI disclosure: implemented with Claude and reviewed with Codex (AI
coding assistants).
(cherry picked from commit 6debe97d22)
</content>
</entry>
<entry>
<title>ldn: wait for the host's reply when joining a network</title>
<updated>2026-11-02T15:34:08+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-02T15:23:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=ff234849d6a41d2c2d29cf09408ac66e202d68e7'/>
<id>urn:sha1:ff234849d6a41d2c2d29cf09408ac66e202d68e7</id>
<content type='text'>
Connect slept for a second while holding packet_mutex, so the host's
SyncNetwork reply could not be handled until Connect had already
returned success in StationOpened. Players could see each other's
group and enter it, but never actually met.

Wait on a condition variable instead, accept the reply only from the
selected host and session, and fail after five seconds. Check packet
sizes and senders, stop duplicate joins from taking another station,
and seed session IDs so separate networks don't share one.

The SDL frontend never called Network::Init, so its multiplayer
option could not join a room. Initialize and shut down networking
around the core.

Assisted-by: Sol (implementation)
Assisted-by: Claude Opus 5.5 (code review)
</content>
</entry>
<entry>
<title>file_sys: add a deterministic NUP packer, Convert to NUP in Qt and eden-cli --pack-nup (#271)</title>
<updated>2026-11-02T07:39:49+00:00</updated>
<author>
<name>Jonas</name>
<email>104419015+jojo-chaechae@users.noreply.github.com</email>
</author>
<published>2026-11-02T07:39:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=926e7ac6af102956b08cc053d81527ec3be855a2'/>
<id>urn:sha1:926e7ac6af102956b08cc053d81527ec3be855a2</id>
<content type='text'>
* file_sys: add a NUP packer for loose dumps

Packs a loose dump (exefs/romfs, base/, updates/&lt;version&gt;/ and
dlc/&lt;titleid&gt;/&lt;n&gt;/) into a NUP v1 container with the aligned record
layout. Every package is kept, files are deduplicated by SHA-256 and
compressed with zstd unless that does not shrink them, and files over
256 MiB are stored raw.

Output is byte-identical on every platform: compression is
single-threaded with every frame parameter set explicitly, and zstd is
always bundled so all builds use the same version.

A low-storage mode deletes each source file once its extent is synced
and journaled, and an interrupted run resumes from the journal.

Assisted-by: Claude Opus 5.5 (wrote the packer, its EdenPack-free dump detection, the aligned record layout and the deterministic zstd setup; ran the Raiders and Donkey Kong Bananza packs and boot checks)

* tests: cover the NUP packer

Round-trips a dump through NupContainer, checks standalone updates, a
bare exefs/romfs dump, low-storage resume and overwrite rejection, and
pins the hash of a packed dump so changes to the output are deliberate.

Assisted-by: Claude Opus 5.5 (wrote the tests, including the pinned output hash)

* qt: add Convert to NUP to the game list

Shown for loose dumps. Asks for confirmation with the estimated space,
offers low-storage mode, runs in the background with progress and
cancel, and resumes an interrupted low-storage conversion.

Assisted-by: Claude Opus 5.5 (wrote the Convert to NUP action and its progress and resume handling)

* cli: add --pack-nup &lt;dump&gt; [out.nup]

Assisted-by: Claude Opus 5.5 (wrote the --pack-nup option)</content>
</entry>
<entry>
<title>eden-cli: set the window title from the main thread</title>
<updated>2026-10-31T22:16:44+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-10-31T00:47:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b8813c6797fc9cb00caa834b112668a7161e2b10'/>
<id>urn:sha1:b8813c6797fc9cb00caa834b112668a7161e2b10</id>
<content type='text'>
The titlebar timer runs on SDL's timer thread, and on macOS AppKit throws
when a window title is set from there, aborting eden-cli two seconds in.
The timer now only prepares the title; the main loop applies it.

Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)
</content>
</entry>
<entry>
<title>yuzu_cmd: skip kernel teardown when nothing was booted</title>
<updated>2026-10-30T14:35:24+00:00</updated>
<author>
<name>ZnOw01</name>
<email>ZnOw01@users.noreply.github.com</email>
</author>
<published>2026-10-30T14:35:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=75b707a90ac8610e3a7da277e9291fd2ba4a6b52'/>
<id>urn:sha1:75b707a90ac8610e3a7da277e9291fd2ba4a6b52</id>
<content type='text'>
SDL_AppQuit runs on every exit path, including the ones where SDL_AppInit
returned early: no ROM given, --help, or --version. The kernel only exists
once a title is loaded, so Pause() and ShutdownMainProcess() walk into an
uninitialized KernelCore and the process dies with SIGSEGV. The crash lands
before spdlog flushes, which is why --version printed nothing instead of a
version line.

Guard the teardown on System::IsPoweredOn(), and ignore the null appstate
SDL passes when SDL_AppInit never stored one.

Assisted-by: Claude (Anthropic) (diagnosed the crash and wrote the guard)
</content>
</entry>
<entry>
<title>Merge pull request #32 from givethesourceplox/nx2-open-file-limit</title>
<updated>2026-10-30T14:07:40+00:00</updated>
<author>
<name>Omar Mahboubi</name>
<email>166836773+omar-mahboubi@users.noreply.github.com</email>
</author>
<published>2026-10-30T14:07:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=0a778123e9dcdb4a484fac688ee1bf95837b4a34'/>
<id>urn:sha1:0a778123e9dcdb4a484fac688ee1bf95837b4a34</id>
<content type='text'>
yuzu_cmd: raise the open file limit on macOS and Linux</content>
</entry>
<entry>
<title>yuzu_cmd: give MoltenVK the view's CAMetalLayer</title>
<updated>2026-10-30T12:54:55+00:00</updated>
<author>
<name>givethesourceplox</name>
<email>272928635+givethesourceplox@users.noreply.github.com</email>
</author>
<published>2026-10-30T12:54:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=487d04f8edf641288c8023009600d5d306cad586'/>
<id>urn:sha1:487d04f8edf641288c8023009600d5d306cad586</id>
<content type='text'>
VkMetalSurfaceCreateInfoEXT needs the CAMetalLayer, not the NSView that
SDL_Metal_CreateView returns.

Assisted-by: Claude (Anthropic)
</content>
</entry>
<entry>
<title>yuzu_cmd: raise the open file limit on macOS and Linux</title>
<updated>2026-10-30T12:54:54+00:00</updated>
<author>
<name>givethesourceplox</name>
<email>272928635+givethesourceplox@users.noreply.github.com</email>
</author>
<published>2026-10-30T12:54:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9e4e58c8e54add0e9909de8a9cba2444d8314ee7'/>
<id>urn:sha1:9e4e58c8e54add0e9909de8a9cba2444d8314ee7</id>
<content type='text'>
Loose RomFS folders keep thousands of files open through the VFS
cache. macOS shells default to 256, so title 1 stopped loading at
"Too many open files". Raise it to 8192 like the Qt frontend and like
the Windows path here already does.

Assisted-by: Claude (Anthropic)
</content>
</entry>
<entry>
<title>eden-cli: use the entry point SDL provides in MSVC Release builds</title>
<updated>2026-10-30T00:49:49+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-29T23:50:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=42e9e37e081fc13348d9af70be74154fb1b58c57'/>
<id>urn:sha1:42e9e37e081fc13348d9af70be74154fb1b58c57</id>
<content type='text'>
src/CMakeLists.txt defines UNICODE for cl.exe (not clang-cl), and then
SDL's main implementation provides wmain instead of main. The forced
/ENTRY:mainCRTStartup made the documented MSVC Release build fail to
link eden-cli.exe (LNK2019: unresolved main); clang-cl builds, like
Eden's CI, were not affected. Use wmainCRTStartup for cl.exe.
</content>
</entry>
<entry>
<title>build: fixes for clang-cl</title>
<updated>2026-10-30T00:49:48+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-29T19:56:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=d327881c44ada520d6ea939af59bdd420906b99f'/>
<id>urn:sha1:d327881c44ada520d6ea939af59bdd420906b99f</id>
<content type='text'>
- (std::min)/(std::max) where windows.h's macros are visible
- LAMBDA_FORCEINLINE: always_inline under clang (clang-cl defines
  _MSC_VER but rejects [[msvc::forceinline]] on lambdas)
- ImageBase::FindView: find_if, as MSVC's STL takes its vectorized find
  for ImageViewInfo under clang-cl and fails a size assertion
- parentheses for -Wlogical-op-parentheses in the Ampere lowering
</content>
</entry>
</feed>
