<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/core/hle/kernel/k_scheduler.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-09-16T22:28:37+00:00</updated>
<entry>
<title>[k_scheduler] fix for libc++ that lazily initializes mutexes (#4447)</title>
<updated>2026-09-16T22:28:37+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-09-16T22:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=90aafeedc1d980849894f5bf251313db95594e8a'/>
<id>urn:sha1:90aafeedc1d980849894f5bf251313db95594e8a</id>
<content type='text'>
`__m_` is nullptr when `unlock();` is called, so `try_lock();` will force materialization of the backing mutex.

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/4447
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[video_core, hle] remove redundant parent references in system structs (#3908)</title>
<updated>2026-06-23T04:31:25+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-06-23T04:31:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3aa0d462598beb2021308eee1d757d74fe33b312'/>
<id>urn:sha1:3aa0d462598beb2021308eee1d757d74fe33b312</id>
<content type='text'>
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-authored-by: maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)</title>
<updated>2026-03-12T17:29:15+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-03-12T17:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=395613b01f918b559f0a3b1718c78f81987c49d4'/>
<id>urn:sha1:395613b01f918b559f0a3b1718c78f81987c49d4</id>
<content type='text'>
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual

I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.

there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file

now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: DraVee &lt;chimera@dravee.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[core/hle] use boost::container::small_vector&lt;&gt; instead of std::set&lt;&gt; of dummy threads (#3025)</title>
<updated>2025-12-31T16:31:12+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-12-31T16:31:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8f430d25a66d5db63b8174925c7c45d7073760d0'/>
<id>urn:sha1:8f430d25a66d5db63b8174925c7c45d7073760d0</id>
<content type='text'>
2048 bytes of static storage (128 threads) is more than enough for most applications

Highly hit or miss (most likely miss) - check with TOTK beforehand, should bring perf stuff to Android; in theory

Signed-off-by: lizzie lizzie@eden-emu.dev
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3025
Reviewed-by: DraVee &lt;dravee@eden-emu.dev&gt;
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[hle, kernel] Add support for FW21 and kernel changes (#3004)</title>
<updated>2025-11-16T21:15:09+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-11-16T21:15:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=7d239df065dc344c29d8c277835db9fef81e37d9'/>
<id>urn:sha1:7d239df065dc344c29d8c277835db9fef81e37d9</id>
<content type='text'>
- Adapts kernel changes from atmosphere for firmware 21.0.0.
- Fixes launch error of firmware 21.0.0 applets.
- Adds new commands for `prepo` (New `SaveSystemReport` &amp; `SaveSystemReportWithUser`).
- Adds new commands for `IReadOnlyApplicationControlDataInterface` (cmd 19; incomplete!)
- Adds `{12010, nullptr, "SetButtonConfigLeft"},` undocumented IHidServer.
- Adds new commands for `ngc:u` (`Mask2` and `Check2`)
- Adds new commands for system settings server (GetHttpAuthConfig) for webapplet
- Removes incompatible firmware popup warning.

Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored by: maufeat sahyno1996@gmail.com

Co-authored-by: crueter &lt;crueter@eden-emu.dev&gt;
Co-authored-by: JPikachu &lt;jpikachu.eden@gmail.com&gt;
Co-authored-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3004
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>core: refactor emulated cpu core activation</title>
<updated>2023-12-04T15:37:16+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-11-28T19:30:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3d5c6a73cba80a58363a59ece4cd60c101d8b516'/>
<id>urn:sha1:3d5c6a73cba80a58363a59ece4cd60c101d8b516</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kernel: update KProcess</title>
<updated>2023-10-22T00:03:41+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-10-21T20:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=62e106dbe8e55e59a6a3c00f3bae2bb898ea54cb'/>
<id>urn:sha1:62e106dbe8e55e59a6a3c00f3bae2bb898ea54cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixes and workarounds to make UBSan happier on macOS</title>
<updated>2023-07-15T19:00:28+00:00</updated>
<author>
<name>comex</name>
<email>comexk@gmail.com</email>
</author>
<published>2023-07-01T22:00:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=85d77f636c7ab28ea67c4c303f5d85b063ceed73'/>
<id>urn:sha1:85d77f636c7ab28ea67c4c303f5d85b063ceed73</id>
<content type='text'>
There are still some other issues not addressed here, but it's a start.

Workarounds for false-positive reports:

- `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`,
  because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp)
  of how big it thinks objects can be, specifically when dealing with
  offset-to-top values used with multiple inheritance.  Hopefully this
  doesn't have a performance impact.

- `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks
  is UB even though it at least arguably isn't.  See the link in the
  comment for more information.

Fixes for correct reports:

- `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to
  avoid UB from pointer overflow (when pointer arithmetic wraps around
  the address space).

- `KScheduler::Reload`: `thread-&gt;GetOwnerProcess()` can be `nullptr`;
  avoid calling methods on it in this case.  (The existing code returns
  a garbage reference to a field, which is then passed into
  `LoadWatchpointArray`, and apparently it's never used, so it's
  harmless in practice but still triggers UBSan.)

- `KAutoObject::Close`: This function calls `this-&gt;Destroy()`, which
  overwrites the beginning of the object with junk (specifically a free
  list pointer).  Then it calls `this-&gt;UnregisterWithKernel()`.  UBSan
  complains about a type mismatch because the vtable has been
  overwritten, and I believe this is indeed UB.  `UnregisterWithKernel`
  also loads `m_kernel` from the 'freed' object, which seems to be
  technically safe (the overwriting doesn't extend as far as that
  field), but seems dubious.  Switch to a `static` method and load
  `m_kernel` in advance.
</content>
</entry>
<entry>
<title>core_timing: Use CNTPCT as the guest CPU tick</title>
<updated>2023-06-08T01:44:42+00:00</updated>
<author>
<name>Morph</name>
<email>39850852+Morph1984@users.noreply.github.com</email>
</author>
<published>2023-04-23T04:01:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=2856fadaa016c6fe378c5ac377aedec156131803'/>
<id>urn:sha1:2856fadaa016c6fe378c5ac377aedec156131803</id>
<content type='text'>
Previously, we were mixing the raw CPU frequency and CNTFRQ.
The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
</content>
</entry>
<entry>
<title>kernel: use KTypedAddress for addresses</title>
<updated>2023-03-22T13:35:16+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-03-18T01:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=156516e399b2ce2823f1d117c2800b5756edf4ce'/>
<id>urn:sha1:156516e399b2ce2823f1d117c2800b5756edf4ce</id>
<content type='text'>
</content>
</entry>
</feed>
