Dean
f03f724901
Merge pull request #14368 from roboterspinne/docs/usage-import-audit-strict-options
...
docs(usage): list --strict-stubs and --strict-providers in the import audit options
2026-11-02 11:45:06 +13:00
Dean
8d16af3c57
Merge pull request #11137 from kaiffeetasse/contrib/8624-sdk-syscall6-inline-stub
...
fix(relinker): trap the inlined SDK __syscall6 stubs
2026-11-02 10:49:26 +13:00
Dean Galvin
d6f1eccfe2
revert(agc): keep driver pipeline caches and costly compute pipeline binaries across updates ( #13931 )
...
This reverts commit d8b60b46ed , reversing
changes made to d94fad17de .
2026-11-02 08:24:24 +13:00
liskeee and Claude Opus 5.5
5c1cac4112
fix(agc): disable pipeline binaries with outdated wrapping layers
...
Check the enabled layers before querying pipeline binary features. A
validation or gfxreconstruct layer older than Vulkan 1.3.294 wraps
handles but passes the extension's commands to the driver unchanged, so
keep the driver pipeline cache path there and when enumeration fails.
Cover the layer decisions with a fake enumerator.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-01 11:56:07 +01:00
liskeee and Claude Opus 5.5
f1b0dbbf5d
fix(agc): retain driver cache fallback after binary capture failures
...
A costly build whose binaries cannot be extracted or stored, and a
rejected capture build, now leave a capture-failure marker, so later
runs build that recipe through the driver cache instead of repeating a
capture build with a null pipeline cache. Lowering the time threshold
does not retry these markers; a driver change does. Existing
below-threshold markers stay compatible and retryable.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-01 11:56:06 +01:00
liskeee and Claude Opus 5.5
0c572f1c25
feat(agc): persist costly compute pipeline binaries
...
Capture costly compute builds and restore matching recipes after checking
full recipes, driver fingerprints and Vulkan compatibility keys. Add size
and time thresholds, opt-out, atomic persistence and corruption/rejection
fallback.
Remember below-threshold recipes in separate files so competing decisions
cannot overwrite captured binaries. Prefer saved binaries and retry
capture when the time threshold is lowered.
Cover compatibility, fallback, deterministic competing writers and
cross-process capture, restore and corruption.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-01 11:56:06 +01:00
liskeee and Claude Opus 5.5
8413207b8e
fix(agc): preserve driver pipeline caches across source updates
...
Keep driver blobs outside source-version cleanup and import compatible
legacy caches. Persist equal-size content changes and retry incomplete
snapshots without replacing the previous file.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-01 11:56:06 +01:00
Adrià
e67cc81869
Merge pull request #13926 from dr-hoseyn/feat/relinker-dry-run
...
feat(relinker): validate conversions without writing outputs
2026-11-01 11:50:43 +01:00
roboterspinne
7e896cac7b
docs(usage): list --strict-stubs and --strict-providers in the import audit options
2026-11-01 10:48:21 +01:00
Adrià
e3642ec3fe
Merge pull request #13912 from LeandroLP23/feat/progress-weekly-activity
...
feat(tools): show library functions implemented per day and in the last week
2026-11-01 09:40:10 +01:00
MarcZX10
9f06873420
docs(usage): add the FPS LIMIT line to the overlay's detailed page
2026-11-01 01:49:57 +00:00
MarcZX10
9149a5a426
docs(usage): say how the frame limit meets flip pacing and the present modes
...
The limit only lowers the rate below the output's refresh, delays no title
that is already slower, does not burst after a stall, sleeps then spins,
handles window events between flips, can show uneven refresh counts under
fifo, and is a host choice.
2026-11-01 01:49:57 +00:00
MarcZX10
52522eabc3
docs(usage): document ANYPS5_FPS_LIMIT
...
States the accepted range, that the title's flip completes at the limited
rate and that the title is not told, that 0, empty and unset mean no limit,
and that any other value stops the game at its first flip with an error that
names the variable.
2026-11-01 01:49:57 +00:00
Kai Laue
537c76fc9b
fix(relinker): trap the inlined SDK __syscall6 stubs
...
Recognize the inlined __syscall6 wrappers of ps5-payload-dev SDK libc/mount.c (mount, nmount, unmount) under --trap-sdk-syscall-stubs, with the four-byte syscall number immediate masked so an SDK build that renumbers the call still matches. The three wrappers differ in argument preparation, so each sequence is matched separately.
Observed in ftpsrv v0.21.1 (0x709a, 0x70ec, 0x713c) and websrv v0.35 (0xae6a, 0xaebc, 0xaf0c). Related: issue #8624 , open draft PR #8729 covers mount only.
2026-11-01 01:17:20 +01:00
MarcZX10
c1a477bfad
docs(user): point the vibration section of INPUT_MAPPING at the identification pulse
2026-11-01 00:04:38 +01:00
MarcZX10
3d4260ea80
docs(user): describe the controller identification pulse in USAGE
...
Adds the ANYPS5_PAD_IDENTIFY section after the vibration strength
section: the modes, the pattern per player, the quiet window, what
happens when the game rumbles, the ANYPS5_RUMBLE scale, the no-rumble
and keyboard cases, the invalid-value error, and that the pulses are a
host-side choice that has not been measured on hardware.
2026-11-01 00:04:38 +01:00
Adrià
0836dfdf4f
Merge pull request #13701 from MarcZX10/feat/psn-unavailable-dialogs
...
feat(libSceIme): show a notice when PSN-only system dialogs open
2026-10-31 21:05:21 +01:00
Adrià
3197f0ad06
Merge pull request #13705 from MarcZX10/fix/pad-port0-connected-state
...
feat(libScePad): report port 0 as connected only while its controller is present, opt-in with ANYPS5_PAD_PORT0_STATE
2026-10-31 20:50:35 +01:00
dr-hoseyn
b2343e91ec
feat(relinker): add conversion dry runs
2026-10-31 16:29:20 +03:30
LeandroLP23 and Claude Opus 5.5
b799c1bfe3
feat(tools): show library functions implemented per day and in the last week
...
The libraries badge divides implemented by declared functions, so it drops
whenever a pull request declares many throwing exports at once, even while
implementations land daily. The history page now draws the daily change in
implemented functions, and a new badge-week.svg reports the gain over the
last 7 days, linked from the README status row.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-31 13:32:08 +01:00
Adrià
4a9b259564
Merge pull request #13622 from MarcZX10/feat/host-free-space
...
feat(libSceSaveData.native): report the host volume's room to save mounts, opt-in with ANYPS5_FREE_SPACE
2026-10-31 11:03:16 +01:00
MarcZX10
441a3eaef9
Merge remote-tracking branch 'upstream/main' into fix/pad-port0-connected-state
2026-10-31 06:53:56 +00:00
Adrià
2121f2a4c5
Merge pull request #13593 from MarcZX10/docs/user-2
...
docs(readme): unsupported states throw a C++ exception, usually runtime_error
2026-10-31 07:30:39 +01:00
Adrià
3d1330179a
Merge pull request #13586 from MarcZX10/docs/user-1
...
docs(usage): document APS5_OUTPUT_RESOLUTION and three undocumented switches
2026-10-31 05:59:47 +01:00
MarcZX10
5b7ba8484a
Merge remote-tracking branch 'upstream/main' into feat/host-free-space
...
# Conflicts:
# core/libs/prx/libSceSaveData.native/Export.cpp
2026-10-31 00:26:47 +00:00
MarcZX10
7c6e12bd6f
docs: say that an empty ANYPS5_FREE_SPACE is unset on Windows
2026-10-30 23:49:25 +00:00
MarcZX10
bad2156d2c
docs(user): state when an invalid ANYPS5_FREE_SPACE stops the title
2026-10-30 23:49:17 +00:00
MarcZX10
68a4689e62
Merge remote-tracking branch 'upstream/main' into fix/pad-port0-connected-state
2026-10-30 23:46:32 +00:00
Adrià
93f5331fd7
Merge pull request #13463 from notHaze/feat/configurable-mouse-stick
...
feat(input): add configurable mouse stick target
2026-10-30 22:50:29 +01:00
MarcZX10
7fd8859608
docs(USAGE): describe the PSN dialog notice
...
Add a section on ANYPS5_PSN_DIALOGS: which dialogs finish silently without
PlayStation Network, what show displays, how the notice takes input and how
often it appears, and what the other values do.
2026-10-30 18:49:59 +00:00
MarcZX10
731ce62e45
docs(user): explain ANYPS5_FREE_SPACE for save data
2026-10-30 18:48:57 +00:00
Adrià
d09e7a46e9
fix(libScePad): resolve the merge with ShowPadStatus in the volume actions
2026-10-30 16:29:56 +01:00
MarcZX10
1b6f64dac9
docs(usage): describe the host volume, mute and focus mute
...
States that it is a host control and not a console behaviour, the steps and the curve, the bypass at the default, what is and is not covered, the stderr feedback, and the two variables.
2026-10-30 16:29:55 +01:00
MarcZX10
6a7f01c6ec
docs(input): say that hotkeys stay out of the pad and that shared keys trigger both
...
The configuration file does not reject a key bound to two actions, so the volume hotkeys follow the rule of the existing ones.
2026-10-30 16:29:55 +01:00
MarcZX10
0f216bfc97
docs(input): add the volume and mute keys to the default bindings table
...
F5, F6 and F8 are used by no other default binding.
2026-10-30 16:29:55 +01:00
MarcZX10
b640ca66a3
docs(input): name the volume and mute actions
...
VolumeDown, VolumeUp and ToggleMute join the supported actions with their default keys and the keyboard-only rule.
2026-10-30 16:29:55 +01:00
Florent Combet
26d36e9645
feat(input): add configurable mouse stick target
2026-10-30 15:41:51 +01:00
MarcZX10
093761c2ec
docs(readme): unsupported states throw a C++ exception, usually runtime_error (zh-CN)
...
Old claim: "Unsupported or unexpected states strictly throw std::runtime_error.
what() is printed to stderr and the process terminates."
What the code does: the code throws several exception types, not only
std::runtime_error. For example the input mapping throws std::invalid_argument
for a stick deadzone out of range, and an unimplemented export throws
std::runtime_error. An exception that nothing catches reaches the libc
terminate handler, which prints the exception's what() and aborts.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/InputMapping.cpp#L272
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1020
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1022
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/exception/Runtime.cpp#L76
2026-10-30 14:10:30 +00:00
MarcZX10
01a228e9d0
docs(readme): unsupported states throw a C++ exception, usually runtime_error (ru)
...
Old claim: "Unsupported or unexpected states strictly throw std::runtime_error.
what() is printed to stderr and the process terminates."
What the code does: the code throws several exception types, not only
std::runtime_error. For example the input mapping throws std::invalid_argument
for a stick deadzone out of range, and an unimplemented export throws
std::runtime_error. An exception that nothing catches reaches the libc
terminate handler, which prints the exception's what() and aborts.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/InputMapping.cpp#L272
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1020
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1022
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/exception/Runtime.cpp#L76
2026-10-30 14:10:30 +00:00
MarcZX10
69ca5e661f
docs(readme): unsupported states throw a C++ exception, usually runtime_error (pt-BR)
...
Old claim: "Unsupported or unexpected states strictly throw std::runtime_error.
what() is printed to stderr and the process terminates."
What the code does: the code throws several exception types, not only
std::runtime_error. For example the input mapping throws std::invalid_argument
for a stick deadzone out of range, and an unimplemented export throws
std::runtime_error. An exception that nothing catches reaches the libc
terminate handler, which prints the exception's what() and aborts.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/InputMapping.cpp#L272
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1020
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1022
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/exception/Runtime.cpp#L76
2026-10-30 14:10:28 +00:00
MarcZX10
686c2f8aab
docs(readme): unsupported states throw a C++ exception, usually runtime_error (es)
...
Old claim: "Unsupported or unexpected states strictly throw std::runtime_error.
what() is printed to stderr and the process terminates."
What the code does: the code throws several exception types, not only
std::runtime_error. For example the input mapping throws std::invalid_argument
for a stick deadzone out of range, and an unimplemented export throws
std::runtime_error. An exception that nothing catches reaches the libc
terminate handler, which prints the exception's what() and aborts.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/InputMapping.cpp#L272
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1020
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/General.cpp#L1022
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libc/src/exception/Runtime.cpp#L76
2026-10-30 14:10:27 +00:00
MarcZX10
ad071aa08f
docs(usage): document APS5_NO_WGI for Windows controllers
...
Old claim: none; the variable was not documented in USAGE.md.
What the code does: in the VideoOutDriver constructor, on Windows only, the
DirectInput hint is always set to "0" and, when APS5_NO_WGI is present (an
empty value counts), SDL_HINT_JOYSTICK_WGI is set to "0" as well. Other
platforms do not read the variable.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp#L303
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp#L307
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp#L308
2026-10-30 14:09:30 +00:00
MarcZX10
b6655a0650
docs(usage): document APS5_NO_PAD_INPUT, which ignores keyboard and mouse
...
Old claim: none; the variable was not documented in USAGE.md.
What the code does: PadInput reads the variable (presence only, so an
empty value counts) and returns before any keyboard or mouse event is
handled. Keyboard and mouse bindings, the mouse stick and the window requests
(F11 fullscreen, F12 screenshot, F10 overlay) are all taken after that return,
so they stop too. Controller input and APS5_PAD_INPUT_FILE commands are not
on this path.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/PadInput.cpp#L318
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/PadInput.cpp#L321
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/PadInput.cpp#L326
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/PadInput.cpp#L328
2026-10-30 14:09:28 +00:00
MarcZX10
58b18a971e
docs(usage): document ANYPS5_DISPLAY_INDEX for the window's display
...
Old claim: none; the variable was not documented in USAGE.md.
What the code does: initialDisplayIndex() returns 0 when the variable is
unset and otherwise parses it with strtol; the value must be the index of a
connected display (SDL_GetNumVideoDisplays()), and an empty value fails the
same check. The window is created with SDL_WINDOWPOS_CENTERED_DISPLAY of that
index. The error is "DisplayWindow: ANYPS5_DISPLAY_INDEX is not a connected
display index".
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/DisplayWindow.cpp#L28
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/DisplayWindow.cpp#L79
2026-10-30 14:09:27 +00:00
MarcZX10
eeb8b8b50a
docs(usage): APS5_OUTPUT_RESOLUTION is the only host resolution override
...
Old claim: "AnyPS5 does not currently provide a global render-resolution
override", and APS5_OUTPUT_RESOLUTION was not documented.
What the code does: when APS5_OUTPUT_RESOLUTION is set to <width>x<height>,
configuredResolution() maps it to the 1080p class (width below 3840 and
height below 2160) or the 2160p class, and GetDisplayResolution() returns that
instead of the class of the display's current mode. outputStatus() reports
that value as the resolution of the video output status. An empty value is
unset; any other value that is not two positive integers joined by x or X
throws an error that names the variable.
Permalinks at b1b5353cfc :
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp#L54
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/VideoOutDriver.cpp#L526
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVideoOut/src/Output.cpp#L24
2026-10-30 14:09:27 +00:00
MarcZX10
bfc7bbea94
docs(input): say that keyboard and mouse need a controller in controller mode
...
Points from the input mapping page to the controller connection section for
the rule that keyboard and mouse input reaches Player 1 only while a
controller is bound there under ANYPS5_PAD_PORT0_STATE=controller.
2026-10-30 14:03:09 +00:00
MarcZX10
fbbbeae15e
docs(usage): describe ANYPS5_PAD_PORT0_STATE and the controller connection
...
Adds a section on the default behaviour, the controller mode and its 500 ms
hold, the rule for keyboard and mouse, the values accepted, and that only
port 0 and user 0 follow the controller.
2026-10-30 14:03:09 +00:00
Adrià
cc7b82ac6f
Merge pull request #12702 from MarcZX10/feat/overlay-pad-status
...
feat(overlay): show controller status on demand or on connect, disconnect and battery drop
2026-10-30 13:05:28 +01:00
Dean
dad4f21493
Merge pull request #13064 from milescoviello/fix/agc-reclaim-before-budget-host
...
fix(agc): release texture cache entries before a budget-full allocation goes to host memory
2026-10-30 22:19:50 +13:00
Adrià
a36ff7f47e
Merge pull request #12584 from Biologisten/fix/audio-pad-speaker-mute
...
feat(audio): add controller speaker fallback override
2026-10-30 07:12:28 +01:00