<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/tools, 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>debugger: monitor handles lists each handle's type and service event name</title>
<updated>2026-10-28T16:31:45+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-28T16:31:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=db57ec047ba0e0fd73224b86736a4b40d425b802'/>
<id>urn:sha1:db57ec047ba0e0fd73224b86736a4b40d425b802</id>
<content type='text'>
gdbrsp.py gains raw and monitor commands.
</content>
</entry>
<entry>
<title>nx2: notes on the recurring worker-thread crash; gdbrsp waits without a timeout</title>
<updated>2026-10-28T14:49:26+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-28T14:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=704cee406ac9d0a6ef9dfa6ea719d4b198b1f6d4'/>
<id>urn:sha1:704cee406ac9d0a6ef9dfa6ea719d4b198b1f6d4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>nx2: read debug switches once; key scripts from a file</title>
<updated>2026-10-28T11:47:45+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-28T11:47:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=32d876ded1aefc52f839d65570e3e3c43ec04415'/>
<id>urn:sha1:32d876ded1aefc52f839d65570e3e3c43ec04415</id>
<content type='text'>
Several debug switches were read with std::getenv on every macro call, QMD,
semaphore write or draw. The UCRT getenv locks and scans the environment,
thousands of times a frame; a long EDEN_NX2_KEY_SCRIPT made title 4 crawl
at 2 fps. Each is now read once. EDEN_NX2_KEY_SCRIPT=@&lt;file&gt; reads the
script from a file. gdbrsp.py gains 'hits' (log registers, frame chain and
object words at breakpoints, following the stopped thread).
</content>
</entry>
<entry>
<title>Switch 2: native memory/images, GPU-accessible attribute, TSG subcontexts, syncpoint shim</title>
<updated>2026-10-27T23:30:20+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T23:30:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f32b430326af86bd956f3d49d1bf7b6a1b9c5e31'/>
<id>urn:sha1:f32b430326af86bd956f3d49d1bf7b6a1b9c5e31</id>
<content type='text'>
- gsv 111/112/114/423/429/430/314/315/435 track native memory and images with
  real ids (meanings from changes.patch); 1510/435 use its block-linear layout.
- svc 0x80 sets a real GpuAccessible (0x20) memory attribute (from changes.patch).
- Characteristics report TSG subcontexts (flag 22, 64 per TSG at 0xb4); NvRm
  otherwise allows one subcontext and a second NVN queue fails its setup.
- Syncpoint shim: flag 26, address-space ioctl 0xB, and GPU reads of the shim
  page return guest syncpoint values (scheme from changes.patch).
- EDEN_NX2_IPC_TRACE also logs TIPC commands; gdbrsp.py watch/mem improvements.
</content>
</entry>
<entry>
<title>Switch 2 GPU memory handles and mappings at requested addresses</title>
<updated>2026-10-27T21:39:54+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T21:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=4af363d798adf3b906fcfa5cba37ec9304f27dab'/>
<id>urn:sha1:4af363d798adf3b906fcfa5cba37ec9304f27dab</id>
<content type='text'>
nx2:gpu 101 (CreateGpuAccessibleMemory) returns real GpuMemoryHandles; 211
(NormalMapGpuMemory4K) maps handle+offset at the requested GPU address,
including sparse regions, through Nx2GpuMemoryRegistry::MapAt (SMMU ranges are
reused). 102/213/214 complete through their job-slot events. gdbrsp.py waits
for a real thread before driving the stub and gains a write-watch op. Notes
record the current stop: an NVN command buffer with no command memory.
</content>
</entry>
<entry>
<title>Switch 2: window image sizes, queue semaphores, built-in fonts, memory budget</title>
<updated>2026-10-27T21:04:06+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T21:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=dce3adbc4cae486e2f3c080b995669d6db5ef58f'/>
<id>urn:sha1:dce3adbc4cae486e2f3c080b995669d6db5ef58f</id>
<content type='text'>
- gsv 1510 CalculateRequirements: block-linear size/alignment for window images.
- nvhost-gpu: Switch 2 channel event 7 is a real (unsignalled) event.
- Puller mirrors NVN2 queue semaphore releases into the page the CPU and GPU
  wait on (the first two-page nx2:gpu region); EDEN_NX2_METHOD_TRACE logs methods.
- pl:u 2000/2010 GetBuiltInFontSharedMemory/GetBuiltInFontData serve plain TTF
  copies of the shared fonts.
- Switch 2 processes count the alias region in their max memory, so the game's
  nninitStartup heap (total - 6.3 GiB) has room for its sound heap.
- gdbrsp.py: interrupt, threads, selthread, hits, continue_async, sleep.
</content>
</entry>
<entry>
<title>nvdrv: Switch 2 GetEngineInfo, TSG flag, Ampere object classes, channel ioctl passthrough</title>
<updated>2026-10-27T19:54:37+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T19:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=81cff29955cd1130ae83ec658adf5e6cd0264399'/>
<id>urn:sha1:81cff29955cd1130ae83ec658adf5e6cd0264399</id>
<content type='text'>
Once an nx2 NvRm identifies itself (0xD0-byte characteristics), nvhost-gpu and
nvhost-ctrl-gpu answer unknown ioctls with a logged input echo instead of
NotImplemented, ctrl-gpu reports GR + async-copy engines, and Ampere class numbers
(and class 0) map onto Eden's Maxwell object slots. gdbrsp.py gains trace/flow/
breakwhen/fp helpers.
</content>
</entry>
<entry>
<title>nvdrv: Switch 2 GPU address-space layout; gpu 33/203</title>
<updated>2026-10-27T18:57:51+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T18:57:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=58e1e35e1026d1a3eac87a82a22ac28bdbea8dc3'/>
<id>urn:sha1:58e1e35e1026d1a3eac87a82a22ac28bdbea8dc3</id>
<content type='text'>
- AllocAsEx from Switch 2 NvRm passes flags 5, no big page size, range
  [0x8000000, 0xC000000000) and split 0 (small pages only). Treat split 0
  as small pages up to the end, keep a 4 GiB big-page region after it, and
  give that allocator an absolute limit (Eden's length-as-limit breaks once
  the split is past the region length).
- gpu TIPC 33 returns a count, 203 a kind plus a VA range used by
  nn::gpu::sdk::CreateGpuAddressSpace.
- gdbrsp.py: unbreak, step, breaklr, unbreakpc, fp (frame walk), trace.
</content>
</entry>
<entry>
<title>tools/nx2: minimal GDB remote client for Eden's gdbstub</title>
<updated>2026-10-27T18:13:03+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-27T18:13:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=645d2bf92be1bebf46ac783e87c0e9b12a2dfc70'/>
<id>urn:sha1:645d2bf92be1bebf46ac783e87c0e9b12a2dfc70</id>
<content type='text'>
</content>
</entry>
</feed>
