Commit Graph
10207 Commits
Author SHA1 Message Date
XairRrR 074c229c7f fix(agc): reload a sampled depth plane the guest wrote since its surface was bound
A depth plane with the 64 KiB Z swizzle reloads the units the guest
wrote (SyncFromMemory) when its surface is bound as a depth target, but
sampling the plane through the surface skipped that check and read the
host image. A title that copies depth into the plane with a buffer copy
and samples it before drawing into it again read the depth from before
the copy.

PPSA05684 copies its depth pre-pass into a second depth target with a
buffer copy kernel and samples that copy at once to build the
half-resolution depth its volumetric fog and dust read; only later does
it bind the target. The fog used the previous frame's depth, so a
silhouette followed every moving character through fog and dust.

Sampling a single-sample plane through its surface now runs the same
reload first. agc_driver_depth_plane_sampling gains a case that draws a
plane, writes the guest memory under it and samples it; it reads the
drawn depth without the change.

AI-assisted: yes
2026-10-29 21:04:38 +01:00
Adrià 4add0c41c4 Merge pull request #12570 from rooklz/fix/rtc-precise-local-far-tick
fix(libSceRtc): reject far-future ticks before precise local time conversion
2026-10-29 21:00:47 +01:00
Dean 420b6a064e Merge pull request #12621 from Ragbie/fix/windows-defer-needed-runtime-modules
fix(relinker): defer the runtime modules another deferred module needs on Windows
2026-10-30 08:49:48 +13:00
Adrià 3443fd2ec8 Merge pull request #11727 from camezaro-intc/fix/ampr-command-buffer-expansion
fix(libSceAmpr): dynamically expand command buffer capacity on append
2026-10-29 20:35:27 +01:00
Adrià 1578380f6e Merge pull request #12210 from XairRrR/fix/agc-stencil-plane-buffer-coherence
fix(agc): keep stencil planes coherent with guest memory
2026-10-29 20:35:20 +01:00
Adrià 1e5d28ad2c Merge pull request #12523 from johnohhh1/fix/freetype-security-2.15.0
fix(deps): update FreeType to 2.15.0
2026-10-29 20:35:14 +01:00
Adrià 61fd1f5636 Merge pull request #12535 from LuPetro/fix/rtc-local-clock-range
fix(libSceRtc): check current tick before local time conversion
2026-10-29 20:35:07 +01:00
Adrià 40a8faf90a Merge pull request #12528 from legendary-cookie/test/font-outline-buffer
test(libSceFont): cover the renderer outline buffer size, reset and policy
2026-10-29 20:35:00 +01:00
Adrià 43332e5f3b Merge pull request #11865 from ionut27001/fix/libkernel-sched-own-pid
fix(libkernel): sched_getparam reads out-of-range priorities, sched_setparam EPERM outside 256-767, own pid on the main thread
2026-10-29 20:34:52 +01:00
Adrià 7b8217b768 Merge pull request #12975 from xXPBSXx/docs-agc-ps4-degamma
docs(agc): say what shadPS4 and fpPS4 do for FORCE_DEGAMMA on PS4
2026-10-29 20:34:34 +01:00
Adrià 8e6f17c952 Merge pull request #12961 from KernelPanicNT/docs/mrw-names-missing-on-device
docs(debt): record MetadataReaderWriter names a device module does not resolve
2026-10-29 20:34:27 +01:00
Adrià 0535f87695 Merge pull request #12929 from xXPBSXx/docs/videoout-open-busy-sources
docs(debt): name what the emulators do when a video bus is opened twice
2026-10-29 20:34:21 +01:00
Adrià e94551f91a Merge pull request #12734 from Elma7e/feat/screenshot-drc-and-vsh-capture
docs(libSceScreenShot): record aerolib IPC signatures for DRC parameters and VSH capture
2026-10-29 20:34:15 +01:00
Dean Galvin d38514c546 Merge branch 'main' into salvage/libc-internal-9498 2026-10-30 08:17:22 +13:00
Dean af4e595327 Merge pull request #11762 from oneandonlydean/salvage/small-exports-9541
feat(prx): declare 34 PS5 JSON, AudioOut, AudioIn and Sdma exports
2026-10-30 08:13:52 +13:00
Dean b23f3e59b0 Merge pull request #11748 from oneandonlydean/salvage/libc-internal-9665
feat(libSceLibcInternal): declare 149 PS5 3.20 round six exports
2026-10-30 08:12:50 +13:00
Dean Galvin 75fd07f2d3 docs(libc): record that the licence notices are comments required by upstream 2026-10-30 07:45:55 +13:00
Oscar45397andClaude Opus 5.5 c720a286f7 fix(agc): accept TRUNC_COORD on unnormalized samplers
An S# with FORCE_UNNORMALIZED and TRUNC_COORD was refused. TRUNC_COORD
is already accepted and not applied for normalized coordinates; the
unnormalized path now does the same, and the debt entry covers both.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:32:45 +01:00
Kyon d2ec748f20 feat(libSceLibcInternal): declare 308 callable exports 2026-10-29 18:22:22 +00:00
Kyon 5f0a76db68 feat(libSceIpmi): declare 3 callable exports 2026-10-29 18:20:40 +00:00
Kyon 38715d5610 feat(libSceVideoOut): declare 184 callable exports 2026-10-29 18:15:41 +00:00
Kyon d34a434072 feat(ulobjmgr): declare 2 callable exports 2026-10-29 18:13:43 +00:00
frankea adf43f1f4d feat(libSceAcm): encode sceAcm_ConvReverb_SharedInput jobs 2026-10-29 14:09:40 -04:00
Kyon eda34c7326 feat(libSceContentSearch): declare 2 callable exports 2026-10-29 18:08:48 +00:00
zaryabzip 6c02d185dc feat(libkernel_sys): forward sceKernelGetUpdVersion to sysKernelGetUpdVersion as firmware 13.42 does
Firmware 13.42's sceKernelGetUpdVersion runs the same code as
sysKernelGetUpdVersion, which is already implemented.
2026-10-29 23:07:26 +05:00
GiannisandClaude Opus 5.5 151625b9d2 fix(tools): check sources whose compile command runs through cmake -E env
CMake writes a launcher that sets environment variables as a leading
`cmake -E env NAME=VALUE ... <launcher> <compiler>`, as the AGC
execution tests' ccache launcher does. check_compile took cmake for the
compiler, inserted -fsyntax-only before -E and dropped -E as a
preprocessing option, so every such source failed with
"CMake Error: Unknown argument". Keep the env prefix (NAME=VALUE,
--unset=, --modify and --) and rewrite only the command after it;
reject its other options and a prefix without a command.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:55:22 +02:00
Kyon 016587c83e feat(libCprm): declare 35 callable exports 2026-10-29 17:55:10 +00:00
Kyon c5456b2ece feat(libSceWebRtc): declare 5 callable exports 2026-10-29 17:51:20 +00:00
Kyon 813c1ecd02 feat(libSceJxrParser): declare 1 callable exports 2026-10-29 17:48:07 +00:00
Kyon 8ffc6eb9f1 feat(libScePngParser): declare 1 callable exports 2026-10-29 17:47:56 +00:00
Kyon a6b15d86d2 feat(libSceGifParser): declare 1 callable exports 2026-10-29 17:47:45 +00:00
Kyon c8ba92b899 feat(libSceTextToSpeech): declare 2 callable exports 2026-10-29 17:44:55 +00:00
Eduardo Ruiz 56d02ac97a docs(remoteplay): keep the debt entries under the length limit 2026-10-29 18:44:39 +01:00
Kyon 141f7c407d feat(libSceDiscMap): declare 2 callable exports 2026-10-29 17:44:18 +00:00
Kyon 915bf4955f feat(libSceBemp2sys): declare 2 callable exports 2026-10-29 17:43:54 +00:00
Kyon c71dac4bc5 feat(libSceIme): declare 2 callable exports 2026-10-29 17:43:43 +00:00
AdriàandClaude Sonnet 5.5 1ed07de320 test(libSceAudioOut): assert the blocking push level, not elapsed time; note destroy during a push is unsupported
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 18:43:12 +01:00
JJenkxandClaude Opus 5.5 db14f7a49d fix(libkernel): keep sceKernelRaiseException pending on a suspended thread on Windows
On Windows, sceKernelRaiseException threw for a thread created suspended
and not resumed yet. FreeBSD libthr starts such a thread with signals
blocked and restores its mask on resume, so the signal stays pending and
is delivered on that thread once it runs.

The raise is now recorded in the thread's pendingException with a
compare-exchange, and the thread exchanges it for -1 when it leaves the
creation wait and delivers it to itself before its start routine. Both
sides use one atomic, so a raise racing a resume is either taken by the
thread or, after it started, delivered as for a running thread. Raises
while pending are merged, as for a standard signal.

guest_pthread_create_suspended now runs the deferred-delivery case on
every host, with a second raise while the thread is suspended.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 13:39:50 -04:00
ntamas94andClaude Opus 5.5 ad8bd09342 fix(ngs2): answer PS4 voice state errors as measured in libSceNgs2
On a PS4 firmware 10.71 console, libSceNgs2.sprx answers
sceNgs2VoiceGetState with 0x804A0054 for a state size below 4 before it
resolves the voice and 0x804A0300 for an invalid voice, and
sceNgs2VoiceGetStateFlags writes 0 and returns 0x804A0300 for an invalid
voice. The libSceNgs2 target now does the same; libSceNgs2.native keeps
the PS5 module values.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:28:42 +01:00
KernelPanicNT 03fc7bbca3 feat(libSceLibcInternal): handle every __opendir2 flag
Follow FreeBSD 11.4's __opendir2: __DTF_READALL or __DTF_SKIPREAD
returns NULL with errno unchanged, and every other value opens the
directory as opendir does, since the remaining flags only act on union
mounts and whiteout entries.
2026-10-29 17:28:13 +00:00
xXPBSXxandClaude Sonnet 5.5 e4bbf01c5c docs(agc): say what shadPS4 and fpPS4 do for FORCE_DEGAMMA on PS4
A new entry next to the FORCE_DEGAMMA entry. shadPS4 converts the filtered texel of every non-sRGB format to linear and fpPS4 documents the bit as applied after filtering regardless of format; here a forcing sampler reads the texture through its sRGB view, so the conversion happens before filtering, for formats that are not sRGB and not on a fixed list. PS4 (GCN) behaviour only; nothing is claimed about the console.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 18:26:05 +01:00
KernelPanicNT 404a879c75 docs(debt): record MetadataReaderWriter names a device module does not resolve
Measured as a payload process on a device, dlsym on the dlopen handle
returns null for the 17 libSceMetadataReaderWriter names already listed
as not exported, while the other 22 names in Export.cpp resolve. The same
holds for the four Initialize, ReadMetadata, WriteMetadata and
ExtractThumbnail names in libSceGvMp4Parser and libSceJpegParser, whose
Finalize names resolve.
2026-10-29 17:22:20 +00:00
Kyon 73eb1de642 feat(libSceNpWebApi2): declare 4 callable exports 2026-10-29 17:19:08 +00:00
Kyon 92d5cac112 feat(libSceCamera): declare 4 callable exports 2026-10-29 17:17:56 +00:00
MarcZX10 f49b753ec2 docs(debt): record that APS5_GAME_MODE makes no request on Windows
Windows keeps the timer-resolution opt-out in Time.cpp; nothing else is
requested or measured.
2026-10-29 17:16:53 +00:00
MarcZX10 a17b8e9f3e docs(debt): record that the macOS Game Mode itself is not requested
Only an activity is held; whether the system treats the title as a game is
unmeasured.
2026-10-29 17:16:53 +00:00
MarcZX10 14c5870127 docs(debt): record that the macOS activity backend was never run on macOS
The option values, the message casts and the effect on a title are
unverified.
2026-10-29 17:16:52 +00:00
MarcZX10 65417fb3f9 docs(debt): record the GameMode ABI source and that no daemon was run
The backend was tested only against fixture libraries.
2026-10-29 17:16:52 +00:00
MarcZX10 2488eec39f docs(debt): record the Linux exits that skip the GameMode release
An immediate exit and a crash end the request through the daemon, whose
delay is unmeasured.
2026-10-29 17:16:52 +00:00
MarcZX10 a1ac026ee4 docs(debt): record that APS5_GAME_MODE is off by default because its effect is unmeasured
Say why auto is not the default and that the benefit of on is unmeasured.
2026-10-29 17:16:52 +00:00