Commit Graph
20967 Commits
Author SHA1 Message Date
Dean 8cc3be6e2b Merge pull request #9098 from EagleBearerYS/perf/libc-collect-without-region-query
perf(libc): read private write watches per allocation without a region query
2026-10-27 14:57:16 +13:00
Dean e55c69f1fd Merge pull request #8927 from ionut27001/fix/videoout-cursor-flip-status
fix(libSceVideoOut): answer the cursor, flip status and pending-flip calls as measured on a PS5
2026-10-27 14:57:01 +13:00
Dean 37c6b4bc25 Merge pull request #8077 from 0xcrstn/ufc6/descriptor-web-fold
fix(shader): split descriptor webs whose paths fold or hold invalid arms
2026-10-27 14:56:47 +13:00
Himansh Raj 1220ef8556 test(relinker): check that codesign leaves the macOS entry stub intact 2026-10-27 07:26:38 +05:30
Dean d1de04f943 Merge pull request #7484 from AlxcBTW/pr/robust-loads
perf(recompiler): leave the descriptor-range comparison out of direct buffer loads when the device zeroes past the range
2026-10-27 14:56:32 +13:00
Dean 630211a866 Merge pull request #6612 from milescoviello/feat/tess-geometry
feat(agc): draw tessellation followed by an NGG geometry stage
2026-10-27 14:56:18 +13:00
Dean 8b2ae8a578 Merge pull request #6249 from Ondra97/codex/fix-copy-alias-byte-coverage
fix(agc): preserve all bytes in image-backed buffer copies
2026-10-27 14:56:03 +13:00
al3w0f205 25a0e0c4fe test(libkernel): cover double close and invalid file descriptor rejection in sceKernelClose 2026-10-26 20:39:44 -05:00
al3w0f205 3b5e611b36 test(libkernel): cover null thread handle and mask validation in thread affinity 2026-10-26 20:39:19 -05:00
al3w0f205 f3303edc0d test(libkernel): cover null pointer and invalid clock id in clock gettime and getres 2026-10-26 20:38:45 -05:00
Danigamer05 218e9c7e4e feat(libc): add standard count-ones functions 2026-10-27 02:38:24 +01:00
roboterspinne de3c2d9536 fix(relinker): refuse red-zone leaves without a frame pointer that push or pop
In a leaf without a frame pointer, --frame-red-zone lowers RSP after
the prologue and adds the shift to every RSP operand in the body,
assuming RSP does not move between the prologue and the exits. It
refused explicit RSP arithmetic but not opcode-encoded pushes and pops,
so after "push rax" in the body the read of the pushed slot at [rsp]
became [rsp+0x10], a red-zone slot, and "pushfq; and qword [rsp], -2;
popfq" changed that slot instead of the saved flags. Such a leaf now
keeps its red zone and is reported as "push or pop inside the body":
push and pop of a register, push imm, push r/m, pop r/m, pushf, popf
and push or pop of fs or gs outside the exits. The pops of an exit
still frame, and leaves with a frame pointer, whose RSP operands are
already refused, still frame when they push and pop.
2026-10-27 02:36:47 +01:00
Dean 27ad7244d2 Merge pull request #11290 from frankea/fix/draw-index-indirect-multi-tags
fix(agc): bracket sceAgcDcbDrawIndexIndirectMulti with the console's tag markers
2026-10-27 14:28:45 +13:00
Dean d0bf428a45 Merge pull request #9906 from TheSovietWaffle/fix/recompiler-stencil-replay-helper-free-ballots
fix(recompiler): let optional-body merges reach ballots that helper lanes cannot contribute to
2026-10-27 14:28:31 +13:00
Dean a83ebf95ea Merge pull request #11306 from frankea/fix/agc-tag-marker-headers
fix(agc): write libSceAgc's tag markers with the console's header flags
2026-10-27 14:27:49 +13:00
Dean 82358b124e Merge pull request #10976 from slick-daddy/perf/redundant-sort-hotpath
chore(shader): skip redundant sort/unique on single-element otherReads
2026-10-27 14:27:18 +13:00
Dean 7d1ed9bb1e Merge pull request #8879 from MarcZX10/codex/masked-select-single-pass
perf(shader): stop masked-select elimination after one analysis pass
2026-10-27 14:26:37 +13:00
al3w0f205 260454d8b9 test(libkernel): cover invalid usec and bad descriptor validation in futimes 2026-10-26 20:11:55 -05:00
al3w0f205 de459c7ed8 test(libSceNet): cover bad file descriptor rejection in socket close 2026-10-26 20:09:44 -05:00
dantdmdarealguy b6a16bfbbb docs(debt): drop the stale ApRp stub note from libSceNetCtl
The eleven sceNetCtlApRp* exports return 0 as their firmware bodies do
since db2575839 (#8307); none of them is a stub any more, so the
sentence saying their stub bodies are unchanged no longer describes a
gap.
2026-10-26 20:08:22 -05:00
Dean e2d457be34 Merge pull request #11312 from xXPBSXx/carry/6531-pad-input
fix(tools): normalize pad input output encoding and validate target path
2026-10-27 14:07:02 +13:00
Dean c610af2957 Merge pull request #11275 from malekaifa/fix/oracle-hip-output-alias
fix(hw-oracle): protect HIP inputs from output aliases
2026-10-27 14:06:32 +13:00
Dean 38cda53b52 Merge pull request #11160 from p3n1cillin/claude/audioout-padspk-volume
fix(libSceAudioOut): declare sceAudioOutSetPadSpkVolume as PSBox calls it
2026-10-27 14:05:56 +13:00
MarcZX10 da573bb3a3 fix(libSceNpTus): give sceNpTusCreateNpTitleCtx its signature in the public header
main declares it with an empty parameter list in Api.hpp, which conflicts with the definition.
2026-10-27 01:05:54 +00:00
MarcZX10 34e039ab3e docs(libSceNpTus): record the single-source shadPS4 signatures of the declared stubs 2026-10-27 01:05:41 +00:00
MarcZX10 5e1fc33a26 feat(libSceNpTus): declare a stub with its shadPS4 signature
They still throw through NotImplemented_nid_no_patch; only the parameter
lists change. The only source is shadPS4's PS4 prototypes; nothing is measured on a PS5.
2026-10-27 01:05:41 +00:00
Dean 59872bbfc4 Merge pull request #11015 from plexerPK/fix/advisor-symlink-loop
fix(tools): reject cyclic patch advisor paths per entry
2026-10-27 14:05:19 +13:00
Dean ade24e2f19 Merge pull request #10931 from MarcZX10/marc/fix-progress-small-delta
fix(tools): show a headline progress change that rounding would hide
2026-10-27 14:04:38 +13:00
Danigamer05 762556eb2d feat(libc): implement signed 32-bit minimum value helper 2026-10-27 01:58:48 +01:00
Danigamer05 5f08cbf1b3 feat(libc): implement unsigned 32-bit maximum 2026-10-27 01:58:47 +01:00
Danigamer05 4b911d7bae feat(libc): implement signed 64-bit maximum 2026-10-27 01:58:46 +01:00
Danigamer05 80bc31bb6c feat(libc): implement signed 64-bit minimum 2026-10-27 01:58:45 +01:00
Danigamer05 be750a1f38 feat(libc): implement unsigned 32-bit minimum 2026-10-27 01:58:44 +01:00
Danigamer05 7792cff8ef feat(libc): implement unsigned 64-bit maximum 2026-10-27 01:58:43 +01:00
al3w0f205 3a701b0350 test(libkernel): cover null pointer and invalid type validation in mutex attributes 2026-10-26 19:58:31 -05:00
al3w0f205 c3267a8b1b test(libSceAudio3d): cover terminate when uninitialized and positive reserved parameter 2026-10-26 19:57:37 -05:00
al3w0f205 e66943d28a test(libSceFont): cover invalid font handle in font scale slant and dpi getters 2026-10-26 19:56:47 -05:00
al3w0f205 0bbbb0bc8d test(libSceFont): cover parameter validation in sceFontDestroyLibrary and sceFontMemoryTerm 2026-10-26 19:55:55 -05:00
al3w0f205 cf2bfcb8e5 test(libSceFont): cover invalid font handle in effect weight and scale setters 2026-10-26 19:55:02 -05:00
al3w0f205 d1e47bdbde test(libSceCesCs): cover null source buffer rejection in mbc conversions 2026-10-26 19:53:59 -05:00
al3w0f205 2f67ef6d06 test(libSceCesCs): cover null source and destination checks in Japanese conversions 2026-10-26 19:53:17 -05:00
cabreira97 887d6bc760 docs(readme): sync translations with current README
Compatibility now points only to the Game bring-up discussions, and Disclaimer gains the paragraph on Sony affiliation and trademarks.
2026-10-26 21:53:10 -03:00
al3w0f205 2eda942a42 test(libSceCesCs): cover null source and profile checks in utf16 and utf32 sbc conversions 2026-10-26 19:52:18 -05:00
cabreira97 f589a5c5ec docs(readme): add pt-BR, es, zh-CN and ru translations
Translations live in docs/user/ and the English README links to them with a language selector at the top.
2026-10-26 21:51:44 -03:00
al3w0f205 d18c3ba169 test(libSceCesCs): cover null source buffer in utf16 and utf32le conversions 2026-10-26 19:51:19 -05:00
al3w0f205 2de6a9f947 test(libSceCamera): cover out-of-range channel rejection in settings getters and setters 2026-10-26 19:50:03 -05:00
al3w0f205 7f3c05b5b8 test(libSceCdlgG2P): cover reopen and null parameter behavior in finished dialog state 2026-10-26 19:48:57 -05:00
p3nicillinandClaude Opus 5.5 563844efe0 feat(libkernel_sys): implement sceKernelGetCpumodeGame and sceKernelSetCpumodeGame
ProsperoEden declares the setter with the mode as its argument and the
getter with an int output, and measured on a PS5 that modes 0 and 1 are
accepted, 2 to 7 return 0x80020016 and 1 is the default. Both threw as
discovered stubs. Other modes and a null output throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 00:44:24 +00:00
MarcZX10 c2e8c2130b docs(libSceNpUtility): drop the duplicate Net* entry and the stub it replaced from the old lists
sceNpLookupCreateTitleCtxA has its own entry now, and sceNpLookupNetAbortRequest and sceNpLookupNetCensorComment were listed twice.
2026-10-27 00:29:59 +00:00
JJenkxandClaude Opus 5.5 1add0a5859 fix(libc): follow the console's rand, srand and rand_r
rand and rand_r both used FreeBSD's do_rand (Park and Miller on
state % 0x7ffffffe + 1, minus one), so rand returned values up to
0x7ffffffd and rand(), rand_r() and every seeded sequence differed
from the console. The libc.prx that titles ship (the same code in the
copies of PPSA13934, PPSA07923 and PPSA05916, read from disassembly)
uses two different generators:

- rand steps a 64-bit state, initially 1, as
  state * 0x5851F42D4C957F2D + 1 and returns (state >> 32) & 0x3FFFFFFF,
  so its results stay at or below 0x3FFFFFFF. srand stores the seed
  zero-extended as that state.
- rand_r is the minimal standard generator, state * 16807 modulo
  2^31 - 1 on the signed 32-bit state (1 gives 16807, 282475249,
  1622650073), and a zero state becomes 0x2AE1B767.

guest_math now expects those results: the rand_r chain from 1, the
zero and 0x7FFFFFFF states, rand after srand(1), srand(0) and
srand(0xFFFFFFFF), and rand's range over 1000 calls. Its previous
checks expected FreeBSD's values and rand matching rand_r.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 20:22:30 -04:00