Commit Graph

4390 Commits

Author SHA1 Message Date
Adrià b65d6b71be
Merge pull request #1190 from MichonGoddijn231849/feat/flat-shared-private-apertures
feat(recompiler): FLAT addresses in the shared and private apertures reach LDS and scratch
2026-10-11 00:18:33 +02:00
Adrià 3c46fa6f4a
Merge pull request #3078 from MarcZX100/codex/carry-3048-fcntl
feat(libkernel): implement sceKernelFcntl
2026-10-11 00:15:30 +02:00
Adrià a883f22f1c
Merge pull request #1157 from alfalfa-star/perf/agc-dma-copy-host-memory
perf(agc): sync only the source for DMA_DATA copies into host-only memory
2026-10-11 00:14:46 +02:00
Adrià 2b831510be
Merge pull request #3080 from MarcZX100/codex/carry-3071
feat(libSceAmpr): implement Dinkumware thread helpers
2026-10-11 00:07:57 +02:00
Adrià Franch df25847fca fix(test): pass the gpu argument to GuestAllocations::Add in FlatApertures 2026-10-11 00:06:53 +02:00
Michon f4f05d2e6a fix(recompiler): flat apertures are 4 GB windows; an aperture access past the end is dropped whole
Measured on RDNA2 (gfx1035) in review:
- the shared and private apertures are 4 GB windows (the gfx9+ layout of kfd_flat_memory.c), so a flat
  address routes by its whole high dword, 0x80000000 or 0x70000000, not by its top 16 bits;
- a dword or short access whose last byte is past the end of LDS reads 0 or writes nothing as a whole;
  multi-dword accesses are checked per dword.
The aperture test gets rows that straddle and pass the end of LDS; the TechnicalDebt line names the
public source of the layout and keeps only the PS5's base values as inferred.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 00:06:44 +02:00
Michon 41144bea53 fix(recompiler): multi-dword FLAT stores route the shared and private apertures
Main's StoreAddressU32x2..x4 (one BDA lookup per wide store, b95842597) bypassed the aperture routing:
a flat_store_dwordx2 into the shared aperture went to BDA at 0x8000000000000000 and LDS kept its old
value. The wide store now stores each component through the aperture like the 32-bit store, and keeps
the single BDA lookup outside the apertures.

The aperture test's V# word 3 is 0x31016fac (OOB_SELECT 3, raw), as in main's other execution tests:
with OOB_SELECT 0 its output buffer read as out of range after #639, which was the failure reported on
four drivers.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 00:06:44 +02:00
Michon c35f29b6be fix(recompiler): every FLAT access kind routes the shared and private apertures; table test
Sub-dword stores and unaligned dword accesses go byte-wise; 32- and 64-bit FLAT atomics
route to LDS (64-bit under the workgroup lock), scratch (read-modify-write) or BDA.
agc_driver_flat_apertures covers them in 121 rows, with mixed-address waves and wave64.
The aperture bases and the unmodelled operands 235-238 are listed as inferred.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 00:06:43 +02:00
Michon 6a1301f329 feat(recompiler): FLAT addresses in the shared and private apertures reach LDS and scratch
A compute FLAT access whose address has the console's shared aperture in its high dword (0x8000xxxx)
reads or writes the workgroup's LDS at its low dword, and one in the private aperture (0x7000xxxx)
the lane's scratch; other addresses stay guest memory through BDA. GTA V's ray traversal keeps its
stack in LDS and spills it to scratch through such addresses; treated as guest memory the pushes were
lost and the traversal never ended (device lost). An execution test round-trips both apertures.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 00:06:34 +02:00
David 9902f137af feat(libkernel): implement sceKernelFcntl
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit f0c649704dbf0b84077c29ea914e0e4799714fe1)
2026-10-11 00:06:02 +02:00
Adrià 0de1dfdff8
Merge pull request #3046 from MarcZX100/codex/libc-secure-format-scan-3032
feat(libc): implement vsnprintf_s and vsscanf_s
2026-10-11 00:05:28 +02:00
Adrià 61a85df9d4
Merge pull request #2865 from babyhuey/feat/posixforwebkit-arc4random-buf
feat(libScePosixForWebKit): implement arc4random_buf
2026-10-11 00:05:00 +02:00
Adrià 685905b67c
Merge pull request #3006 from babyhuey/feat/libsceaudioin-init
feat(libSceAudioIn): export sceAudioInInit
2026-10-11 00:04:53 +02:00
Adrià b680612fbb
Merge pull request #2967 from babyhuey/feat/libscelibcinternal-utime
feat(libSceLibcInternal): implement guest utime
2026-10-11 00:03:19 +02:00
Adrià d3f9dd07e6
Merge pull request #2968 from babyhuey/feat/libc-hostname
feat(libc): implement guest gethostname
2026-10-11 00:02:54 +02:00
Adrià Franch fddcb00a40 fix(libSceAmpr): give _Thrd_sleep the console signature and move its TechnicalDebt line
The title's libc.prx _Thrd_sleep takes a second xtime* (remaining) and returns int.
The TechnicalDebt entry no longer sits at the end of its section.
2026-10-11 00:01:46 +02:00
Adrià ecafb64f28
Merge pull request #3083 from MarcZX100/codex/carry-3077-wide-conversions
feat(libc): implement Dinkumware wide conversion exports
2026-10-11 00:01:31 +02:00
David b446119c76 feat(libSceAmpr): implement the Dinkumware thread, sleep and spin lock exports
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 00:01:28 +02:00
Adrià d9dc6614e0
Merge pull request #3081 from MarcZX100/codex/carry-1578-flockfile
feat(libc): implement flockfile and funlockfile
2026-10-11 00:00:53 +02:00
Adrià dc105f8abf
Merge pull request #2973 from babyhuey/feat/libkernel-rwlockattr
feat(libkernel): implement pthread_rwlockattr_init and pthread_rwlockattr_destroy
2026-10-10 23:53:36 +02:00
Adrià bdfcf3d75d
Merge pull request #2932 from AchrafReyani/feat/libc-atol-atoll
feat(libc): implement atol and atoll
2026-10-10 23:53:28 +02:00
Adrià c051e83c4e
Merge pull request #3005 from babyhuey/feat/libkernel-preadv
feat(libkernel): implement preadv and pwritev
2026-10-10 23:52:58 +02:00
Adrià Franch db2743e377 docs(technical-debt): describe the vsnprintf_s/vsscanf_s constraint behaviour as implemented 2026-10-10 23:52:18 +02:00
MarcZX100 4d537755e9 test(libc): cover vsscanf_s capacity limits 2026-10-10 23:52:11 +02:00
pushkarreddyy e251de849d feat(libc): implement vsnprintf_s and vsscanf_s
(cherry picked from commit 4ca866ea3b989da6947ad110f4d6c7f4efbe27c8)
2026-10-10 23:52:11 +02:00
Adrià 5a8844676c
Merge pull request #2995 from CnRJay/feat/agc-branch-patch-target-0300
feat(agc): implement sceAgcBranchPatchSetThenTarget_0300 and SetElseTarget_0300
2026-10-10 23:52:01 +02:00
Hannah Lyons 92c9296ae3 feat(libc): implement flockfile and funlockfile
(cherry picked from commit d32eaf181aadf79efc4199b22591f1f5f228d00c)
2026-10-10 21:49:58 +00:00
David 51fca3cec3 feat(libc): implement _WStoul, _Iswctype and swscanf_s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 23:44:00 +02:00
David 63cce467e7 fix(libc): stop strtol at a 0x prefix without hex digits on Windows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 23:40:19 +02:00
Dean 262c031692
Merge pull request #2907 from oneandonlydean/carry/libkernel-reserved-range-hint
fix(libkernel): map non-fixed hints inside a reserved range in place
2026-10-11 09:26:41 +13:00
Dean 3da4c3b665
Merge pull request #2653 from oneandonlydean/up2/descriptor-web-blocks
fix(recompiler): split descriptor webs whose Phis sit in different blocks
2026-10-11 09:26:31 +13:00
Hannah Lyons 6f1ef27953 feat(libSceAudioIn): export sceAudioInInit 2026-10-10 16:25:50 -04:00
Hannah Lyons 0c2d85238b feat(libkernel): implement preadv and pwritev 2026-10-10 16:21:56 -04:00
Dean 56fb1b3b95
Merge pull request #2923 from MarcZX100/fix/hw-oracle-wave64-batch
fix(hw-oracle): batch wave64 probes into 512-row dispatches
2026-10-11 09:16:41 +13:00
Dean 7c83d020f9
Merge pull request #2937 from oneandonlydean/up3/vertex-barrier
fix(shader): drop s_barrier in vertex programs that share nothing between waves
2026-10-11 09:16:31 +13:00
Dean b8284f667f
Merge pull request #2936 from oneandonlydean/up3/emulated-compare-array-on-2d
fix(shader): give an emulated comparison of a 2D-array access a plain 2D mode
2026-10-11 09:16:22 +13:00
Dean b8a083b253
Merge pull request #2946 from SleglJan/fix/libSceSharePlay-null-heap
fix(libSceSharePlay): accept a null heap in sceSharePlayInitialize
2026-10-11 09:13:01 +13:00
Dean 7db7c9f908
Merge pull request #2919 from XairRrR/feat/libscevoice-mute-flag
feat(libSceVoice): track the port mute flag
2026-10-11 09:12:51 +13:00
Dean 94416bd6ad
Merge pull request #2764 from Get-fix/fix/audioout-ex-exports
fix(audio): export the sceAudioOutEx bitstream port functions
2026-10-11 09:12:41 +13:00
Dean 6c008c180e
Merge pull request #2935 from AchrafReyani/feat/libkernel-siglongjmp
feat(libkernel): implement siglongjmp
2026-10-11 09:09:18 +13:00
Dean ea6661cce8
Merge pull request #2934 from AchrafReyani/feat/libc-nextafterf
feat(libc): implement nextafterf
2026-10-11 09:09:09 +13:00
Dean 230ce25b97
Merge pull request #2933 from AchrafReyani/feat/libc-llroundf
feat(libc): implement llroundf
2026-10-11 09:09:00 +13:00
Chad 402bc1cdfc feat(agc): implement sceAgcBranchPatchSetThenTarget_0300 and SetElseTarget_0300 2026-10-10 15:05:43 -05:00
Dean a2cc109e64
Merge pull request #2931 from AchrafReyani/feat/libc-isinf
feat(libc): implement __isinf
2026-10-11 09:05:37 +13:00
Dean 43d2a7c4c0
Merge pull request #2911 from MarcZX100/codex/fix-libc-rename-win-errors-2403-latest
fix(libc): match FreeBSD rename errors on Windows
2026-10-11 09:02:14 +13:00
Dean 0ed05471e5
Merge pull request #2899 from MarcZX100/codex/mutexattr-prioceiling-2689
feat(libkernel): implement mutex priority ceiling attributes
2026-10-11 09:02:05 +13:00
Dean 97d347cf33
Merge pull request #2897 from LeandroLP23/feat/libkernel-pthread-sigmask
feat(libkernel): implement pthread_sigmask
2026-10-11 09:01:55 +13:00
Dean 1f6a7aa404
Merge pull request #2263 from jweidenh/fix/overlap-dependencies-without-colon
fix(tools): honor dependency declarations without a colon
2026-10-11 09:01:46 +13:00
Dean a8d24c7e44
Merge pull request #2910 from AchrafReyani/fix/unlink-readonly
fix(libkernel): unlink read-only files on Windows
2026-10-11 08:58:25 +13:00
Dean 17d73d7fe7
Merge pull request #2896 from MarcZX100/fix/avplayer-autostart-race
fix(avplayer): keep title-started playback running
2026-10-11 08:58:15 +13:00