After initialization, sceContentDeleteByPath and sceContentDeleteById threw a bare logic_error for every valid call, so progress.py counted them as done. No source gives the console's error for content that is not in the library, so the valid calls now go through NotImplemented_nid_no_patch. The NOT_INITIALIZED and argument errors before it are unchanged.
sceNpEntitlementAccessAbortRequest and sceNpEntitlementAccessDeleteRequest threw a bare logic_error on every call, so progress.py counted them as done. The library keeps no request table, and no source gives their behaviour, so both now go through NotImplemented_nid_no_patch. Their check moves from guest_offline_imports to the library's own guest_entitlements test.
Seven pending add-content exports take dlc_emu's prototypes and the
answers dlc_emu gives for content it does not know, after the
library's initialization guard: NOT_FOUND for the entitlement-id mount
and enqueue, the Sp enqueue and Shrink; DRM_NO_ENTITLEMENT for the
entitlement-id info; 0 entries for the IRO-tag list; PFT flag 0.
A padded label answers PARAMETER from SDK 0x03500000. dlc_emu checks
the padding at every SDK while the done label calls gate it, so Sp and
Shrink throw for a padded label below 0x03500000.
No source establishes whether the console keeps the callback table of
sceNetCtlRegisterCallbackForLibIpcInt, UnregisterCallbackForLibIpcInt and
CheckCallbackForLibIpcInt apart from the NpToolkit one or shares it. The
three throw again, as on main, and their table, test and debt entry go.
The entry was over the 1000-character limit the conventions check
warns about. Same content, tighter wording.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Crimson Desert (PPSA25286) draws with VGT_SHADER_STAGES_EN 0x60212d:
local, hull, domain and NGG geometry stages, the hull halves merged in one
registered type-3 program, the domain and geometry halves in one type-2
program. The domain half runs as the tessellation evaluation stage and
captures each vertex's ESGS item, and a mesh shader runs the geometry half
on the captured items.
Registered type-3 merged hulls come from #6679; this adds 16-bit LDS
reads and writes in tessellation stages, which Crimson Desert's merged
hull uses.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds sceNpLookupAbortRequest, sceNpLookupCreateAsyncRequest,
sceNpLookupPollAsync, sceNpLookupWaitAsync, sceNpLookupSetTimeout,
sceNpWordFilterSetTimeout and sceNpWordFilterWaitAsync on the offline
request model. Waits block on a condition variable that request
completion, abort and deletion signal.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
sceHttpGetRegisteredCtxIds writes the libnet memory pool id and the SSL
context id the context was created with, in the order of its recovered
prototype. With no live context it returns BEFORE_INIT and for an
unknown or terminated id INVALID_ID, as sceHttpGetMemoryPoolStats does;
a null output throws.
InitStart returns SIGNED_OUT, as sceNpBandwidthTestInitStartDownload and
InitStartUpload do, so no test is ever started, and
ShutdownWithDetailedInfo returns INVALID_ARGUMENT and writes nothing, as
sceNpBandwidthTestShutdown does. Neither reads an argument.
Remove the system-mode throw cases in GuestVrTracker2.cpp that tested
modes 1000 and 1001 throwing. Allocate a fresh temporary directory
atomically in EnterApplicationRoot without clobbering existing paths.
Update the debt entry without citing a source.
Assisted-by: Antigravity:gemini-3.8-flash-medium
The ten IpcInt getters and callback forms forward to sceNetCtlGetState,
GetStateV6, GetResult, GetResultV6, GetInfo, GetInfoV6 and the IPv4 and
IPv6 callback registration, whose recovered argument registers they
share. The three ForLib calls keep a fourth table of eight callbacks with
the register, unregister and dispatch the NpToolkit forms use. Both are
recorded as unmeasured in the debt file.
Draw a glyph from sceFontGenerateCharGlyph through the sceFontRenderCharGlyphImage rasterizer at the glyph's own scale, with the renderer argument checked as sceFontBindRenderer checks it and the style frame argument, else the surface's frame, applied as surface frames are. The horizontal and vertical forms place the image like their character forms. The three functions build on RenderCodeWithStyle and ApplyStyleFrame from the previous commit and move out of Unimplemented.cpp.
The check that refuses leaves without pushes that push or pop also refused
`push rbp; mov rbp, rsp` leaves without other pushes, whose `pop rbp` it
counted, since rbp is not in their list of pushes. A unit test and an
execution test now cover such a leaf with a 4-byte prologue and a 2-byte
exit. The debt entry also notes that the check refuses shrink-wrapped leaves
whose later pushes and pops balance.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
libSceImeBackend only re-exported libSceIme, so a title that imports
the backend's own functions did not load. Declare the 22 that such a
title imports, without parameters: their signatures and behaviour are
not established, so each call throws through NotImplemented_nid_no_patch.
Co-Authored-By: Claude <[email protected]>
The font-set record path still throws in production, but the test no
longer asserts it: tests cover implemented behaviour only. The null-output
check on a font-set handle stays. The outline profile debt entry states
the gap without naming a source.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
log1p returned the host's log1p, whose last bit differs from the titles'
copy on Windows on 24,477,433 of 320 million random arguments. The titles'
copy is FreeBSD msun's s_log1p.c, and it sets EDOM at msun's NaN return,
for arguments below -1, -inf and negative NaNs, but not for log1p(-1).
log1p now computes that algorithm and sets EDOM there.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
--frame-red-zone replaces a leaf's prologue and each exit with a 5-byte jump
to a stub, so it skipped leaves whose pushes or pop-and-ret exit were shorter
than that, and leaves with neither pushes nor an allocation. A short prologue
now takes in the straight-line instructions after it and a short exit those
before it, re-encoded in the stub with the moved displacement. Widening stops
at branches, rets, RIP-relative instructions, pushes and pops, and the leaf is
skipped when a branch targets the instructions taken in or the first
instruction of a widened prologue, or when a leaf without pushes pushes or
pops.
Co-Authored-By: Claude Opus 5.5 <[email protected]>