<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/qt_common/game_list/model.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-01T20:52:30+00:00</updated>
<entry>
<title>game_list: discover loose dumps without walking their RomFS payloads</title>
<updated>2026-11-01T20:52:30+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T18:37:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8e777214b02be0f254abdcc1adbc195e765e36a6'/>
<id>urn:sha1:8e777214b02be0f254abdcc1adbc195e765e36a6</id>
<content type='text'>
Defer RomFS construction, reuse one discovery result, omit recursive folder sizing, and release rows discarded by cancellation. Add scan suspension and regression coverage for extracted layouts and Unicode paths.

Assisted-by: Codex (implementation, selective integration and automated validation)
</content>
</entry>
<entry>
<title>boot Pokopia past audio init (Switch 2 heap limits, aud:u 1, stpl:u) (#77)</title>
<updated>2026-10-31T14:54:52+00:00</updated>
<author>
<name>Alex</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-10-31T14:54:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=ee2d55ee497c9467c8df82515165a21eac13fff5'/>
<id>urn:sha1:ee2d55ee497c9467c8df82515165a21eac13fff5</id>
<content type='text'>
* game_list: don't free the worker while it is processing events

OnPopulatingCompleted runs a nested event loop from inside
GameListWorker::ProcessEvents. If the directory watcher fires there, the
repopulate destroys the worker while ProcessEvents is still on the stack
and the next lock hits a freed mutex. Stop the worker synchronously but
free it with deleteLater, and stop ProcessEvents once it has been
replaced.

Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)

* Fix Switch 2 heap limits and game list reloads during emulation

- SetHeapSize rejected heaps of 8 GiB or more (Switch 1's MainMemorySizeMax),
  so Switch 2 titles that size their heap from the 12 GiB layout (Pokopia
  asks for 9.5 GiB) got ResultInvalidSize and aborted with 2001-0101. Allow
  up to the memory the active layout provides.
- Grow the 39-bit heap region from 8 to 16 GiB so such a heap fits.
- Skip watcher-driven game list reloads while a game runs: Repopulate calls
  CreateFactories, which replaces content providers the running game reads
  (segfault in ContentProviderUnion::GetEntry). Stopping emulation already
  repopulates the list.

Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)

* nx2: answer aud:u 1 with an IAudioOutManager

nn::audio::OpenAudioOut gets its manager from aud:u command 1 and calls
OpenAudioOut through slot 1 of the returned object. The auto stub
returned no object, so Pokopia jumped through a null vtable 5 s into boot
and never got past its first frame.

Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)

* nx2: add a stpl:u (stream play) stub with a user service

nn::streamplay::detail::GetUserService opens a session with stpl:u 0
and attaches a system event to the handle command 300 returns. The
generic missing-service stub returned no session, so Pokopia's first
nn::streamplay call jumped through null right after audio setup.

Assisted-by: Claude Opus 5.5 (code changes, debugging and commit message)</content>
</entry>
<entry>
<title>[qt] remove stale compat list setting (#4202)</title>
<updated>2026-07-12T18:24:35+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-07-12T18:24:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6295d235818c69f9466e282e099f6f588d13d9d9'/>
<id>urn:sha1:6295d235818c69f9466e282e099f6f588d13d9d9</id>
<content type='text'>
if we are REALLY going thru for removing the entire game compat list
subsystem, we ought to remove the setting itself

I kept this PR separate because we MAY want to introduce emuready
compatibility, so keeping the setting will keep compatibility with
older setting files from users...

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4202
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>[qt] nuke game compat list (again) (#4201)</title>
<updated>2026-07-12T07:32:11+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-07-12T07:32:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=7f85c6e2823d34bfa32cae6d52a44846f8553731'/>
<id>urn:sha1:7f85c6e2823d34bfa32cae6d52a44846f8553731</id>
<content type='text'>
we have no use for it
it's dead code
most of the time users just complain about how the list isn't updated
ok so what if we update it? great now its more noise added to the git, awesome
even if we constantly update it, we introduce new breakage that makes keeping
track of things extremely difficult

either we integrate with emuready (would violate self containment principles)

or we integrate with emuready in a similar fashion to eden news outlet
(where we cache the list with some TTL of like 60 mins or whatever)
that would be better respecting of "self containment" but would probably
require having a quick way to update the list additively, probably filtered to the user's
device instead of a global thing, and i dont think emuready has that granularity
nor we have the "connect this to that" for the api stuffs

another (which is what i propose here) is throw everything out of the window
until someone can come up with something better

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4201
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>[desktop] Clean up game list code, fix external watcher crash, and fix macOS flickering (#4106)</title>
<updated>2026-06-19T20:55:29+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-06-19T20:55:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=102d2545303daa926f39e5cf6518c6ce99c7918d'/>
<id>urn:sha1:102d2545303daa926f39e5cf6518c6ce99c7918d</id>
<content type='text'>
- Remove unnecessary icon update code (the UI reloads this stuff anyways); test on Windows please
- Cleaned up a bunch of duplicated/unused code within the game list
- Fix the game list constantly reloading on macOS
  * When you reconstruct the entire directory list on the watcher the directoryChanged signal fires on macOS--seems like a behavioral change that occurred somewhere in the 6.8 release cycle--and it would enter an infinite loop very quickly
  * To fix this, only the differences between the current and old watch list are accounted for on both ends.
  * Since this bug is now fixed, macOS uses Qt 6.11.1 now. Should theoretically improve our situation.
- Fix the external content watcher crashing; the worker would attempt to read files that didn't exist without any bounds since its cache was still pointing to that file.

This supersedes and replaces #4099.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4106
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[game_list] fix crash and flashing from the directory watcher (#4099)</title>
<updated>2026-06-16T14:20:02+00:00</updated>
<author>
<name>BoiledElectricity</name>
<email>james.dellamorte@gmail.com</email>
</author>
<published>2026-06-16T14:20:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=ce14fc91fb84c51650f57c059396756e1fc3c4cf'/>
<id>urn:sha1:ce14fc91fb84c51650f57c059396756e1fc3c4cf</id>
<content type='text'>
So the game list watcher could rebuild the content providers
(CreateFactories) while the populate worker was still scanning them, and
the worker would walk a torn-down RegisteredCache and segfault in
OpenFileOrDirectoryConcat. Fixed by stopping and joining the worker
before rebuilding.

On macOS the watcher also re-armed itself every populate. Re-adding the
same paths makes QFileSystemWatcher re-emit directoryChanged (the
FSEvent comes in async, so the blockSignals guard misses it), so it just
kept refreshing and the list flashed forever. Now it only re-arms when
the watched dirs actually changed.

Also null-guarded OpenFileOrDirectoryConcat so a torn-down cache cant
null-deref there.

Related: https://github.com/eden-emulator/Issue-Reports/issues/336
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4099
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[desktop] Rework game list to use MVP architecture (#4042)</title>
<updated>2026-06-02T02:08:24+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-06-02T02:08:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=cc8451f764979db23208dd5a55884cd62fd8b673'/>
<id>urn:sha1:cc8451f764979db23208dd5a55884cd62fd8b673</id>
<content type='text'>
Closes #3480

moves the game list model/worker/private stuff to qt_common for later
use in QML

- `qt_common/game_list/model.{cpp,h}` is the model
- `yuzu/game/game_{grid,tree}.*` are the views
- `yuzu/game/game_list.cpp` is the presenter

This was done very lazily in a manner that "works" while largely
maintaining existing structure as much as possible. Most of it is
copy-paste, with some bonus reworks/cleanups thrown in.

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