Commit Graph
324 Commits
Author SHA1 Message Date
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
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à 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
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
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 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 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
Adrià e4f5516fd6 Merge pull request #12974 from MarcZX10/feat/host-game-mode
feat(libkernel): opt-in host game mode request (APS5_GAME_MODE)
2026-10-30 06:36:04 +01:00
MarcZX10 9ae43837fe docs(usage): state what runs while the pad status panel is hidden
The overlay section said the presentation does nothing for a hidden
panel. Each present and each video-out loop pass still takes a lock and
reads the clock to see whether the panel is wanted; with
ANYPS5_PAD_STATUS unset or 0 and no F9 press no controller state is
read, and the panel knows the controllers only from the first F9 press.
2026-10-30 05:55:09 +01:00
MarcZX10 886277c54b docs(usage): describe the controller status panel
The overlay section gains the panel: what a line shows (player slot,
controller type, SDL's battery class), that it is never permanent (4 s
after the last trigger), what triggers it (the ShowPadStatus key, and
with ANYPS5_PAD_STATUS=1 connects, disconnects, replacements and
battery drops), where it sits, that the system keyboard has priority,
and that battery readings depend on SDL, the operating system and the
controller.
2026-10-30 05:55:08 +01:00
Adrià 84e114e4eb Merge pull request #12715 from MarcZX10/feat/log-to-file
feat(libc): copy the runtime log into a file with ANYPS5_LOG_FILE
2026-10-30 05:51:34 +01:00
Adrià 0c9c5db748 Merge pull request #12690 from MarcZX10/feat/host-system-report
feat(agc): host system report and an actionable missing-Vulkan-feature message
2026-10-30 02:52:18 +01:00
milescovielloandClaude Opus 5.5 e2c1c305ff fix(agc): release texture cache entries before a budget-full allocation goes to host memory
DeviceMemoryType placed an image or device buffer in host memory up front
when VK_EXT_memory_budget showed the device-local heap without room, so the
texture-cache release that a driver refusal gets never ran. It now asks the
caches for the allocation plus the heap's overage first and keeps the
device-local type when they release that much, or when the budget read again
has room.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:05:44 +00:00
Adrià 7a225bb303 Merge pull request #12686 from MarcZX10/feat/pad-rumble-intensity
feat(libSceVideoOut): add ANYPS5_RUMBLE to scale or turn off host controller vibration
2026-10-29 23:46:17 +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
MarcZX10 6bc9493c8e docs(usage): describe APS5_GAME_MODE
Say that it is off by default, what it asks for on Linux and macOS, that
GameMode's own configuration decides what changes, that Windows needs no
request, and how on, auto and invalid values behave.
2026-10-29 17:15:39 +00:00
Adrià 5454cd2e45 Merge pull request #11130 from imellag/perf/macos-mimalloc
feat(libs): let relinked macOS games opt into mimalloc
2026-10-29 12:58:23 +01:00
Dean 59d7cff571 Merge pull request #12263 from WhiteAssassins/feat/patch-catalog-validator
feat(tools): validate complete patch catalogs offline
2026-10-29 23:52:34 +13:00
Adrià f88c86bf6c Merge pull request #12262 from tkcm01/test/agc-overlay-commit-macos
test(agc): expect no commit charge on macOS
2026-10-29 07:45:08 +01:00
Adrià d9d07db7e5 test(libc): serialise the writers of each stream in the ANYPS5_LOG_FILE concurrency test
A pipe write is atomic only up to PIPE_BUF, 512 bytes on macOS, so three threads writing 3 KB lines into one pipe interleaved before the copy read them.
2026-10-29 05:57:30 +01:00
MarcZX10 a39bd37b21 docs(usage): describe saving the runtime log to a file with ANYPS5_LOG_FILE
State what the file receives and what it does not, that it is appended to
and has no size limit, the startup error for an unopenable path, line
atomicity and the ordering between the two streams, what a crash or kill
leaves, the cost of two threads and two pipes, the child-process and
load-exec cases, and that the Windows path was not run.
2026-10-29 05:57:24 +01:00
dantdmdarealguy df6354b0a8 docs(usage): drop the Linux execute permission sentence from --autorun
The relinker writes every Linux and macOS output with execute permission since ab94ee21d7, as the running section already says, so the --autorun row no longer attributes it to --autorun.
2026-10-28 21:19:30 -05:00
MarcZX10 6079276693 docs(usage): list the Vulkan items a GPU must offer and what the failure message says
Names each required extension and feature, and the one message that a
GPU lacking them gets: the GPU, its driver and Vulkan version, every
missing item, the other devices ANYPS5_GPU can select.
2026-10-29 02:07:11 +00:00
MarcZX10 693451271b docs(usage): say what the host report leaves out
Lists the forms that are replaced (paths, URLs, MAC addresses, the account,
host and home directory names) and warns that the values of the listed
variables are printed as set.
2026-10-29 02:07:11 +00:00
MarcZX10 8b66d79994 docs(usage): describe ANYPS5_HOST_REPORT and the sections of the host report
Says when it prints, that an invalid value stops the start, the order and
content of each section, what unavailable and the CPU check line mean, and
that the shader cache size counts at most 200000 files.
2026-10-29 02:07:11 +00:00
MarcZX10 c1fbba97ef docs(usage): describe the controller vibration strength setting
Explain ANYPS5_RUMBLE, which vibration paths it covers and which it leaves alone, and that it is a host-side comfort setting with no console counterpart.
2026-10-29 02:06:36 +00:00
Biologisten 315050d000 fix(audio): reject invalid APS5_PAD_SPEAKER_FALLBACK_DB values and read the gain once
A set-but-invalid value, including an empty one, a non-finite number, a
number outside -60 to 0 or trailing text, stops the title with an error
naming the variable and the value instead of silently keeping 0 dB. The
gain is parsed once when the AudioOut2 context is created, kept in the
context and passed to the mix loop, so the audio thread never reads the
environment.

The one-read rule is pinned end to end: a play that changes the variable
to a value that would stop the title after the context was created keeps
the parsed fold and never re-reads the environment.
2026-10-29 00:16:16 +01:00
Biologisten 84b5542fdc feat(audio): add controller speaker fallback override
Add APS5_PAD_SPEAKER_FALLBACK_DB for AudioOut2 controller-speaker ports
folded into the main mix when no controller speaker is present. The
default 0 dB keeps the existing unity mix; mute removes the fallback
copy so a title's own main-port copy is heard instead.
2026-10-29 00:16:16 +01:00
Evrim Cicek 74abb8ce1c fix(relinker): defer the runtime modules another deferred module needs on Windows 2026-10-29 02:09:01 +03:00
Dean d0e4b8a9dc Merge pull request #11623 from dantdmdarealguy/docs/usage-windows-base-0x400000
docs(usage): give 0x400000 as the Windows executable's preferred base
2026-10-29 12:07:48 +13:00
WhiteAssassins c6c35d1a53 fix(tools): reject duplicate catalog keys and nested patches 2026-10-28 12:54:06 -04:00
Emanuele 4c75091972 feat(libs): let relinked macOS games opt into mimalloc 2026-10-28 14:50:31 +01:00
Adrià 3b24c4739e Merge pull request #12092 from MarcZX10/docs/usage-macos-crash-report-import-audit
docs: correct the macOS modules, crash report threads and import_audit module statements in the usage guide
2026-10-28 14:47:27 +01:00
WhiteAssassins 1d7bdd81ca fix(tools): gate catalog validator test on Python 3.11 2026-10-28 02:18:26 -04:00
WhiteAssassins 9765806d88 feat(tools): validate complete patch catalogs offline 2026-10-28 01:50:51 -04:00
tkcm01andClaude Opus 5.5 c3814cb7a4 test(agc): expect no commit charge on macOS
ReadCommitCharge reads /proc/meminfo outside Windows, and macOS has no
/proc, so it returns nothing there and page 2 leaves the commit part of
its COMMIT line out, as it does for any source the run doesn't have.
The statistics test required a reading on every system, and the page 2
sampler test required the first sample to hold one.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 01:47:29 -04:00
Dean Galvin 97f1d41a2c Revert "Merge pull request #10809 from frankea/fix/direct-memory-12gib"
This reverts commit 780b33aea3, restoring the 13824 MiB direct memory pool.

With the pool at 12288 MiB, Astro Bot (PPSA21564) can no longer load its
level: DirectMemoryAllocator asserts "Can't allocate direct memory" for a
64 MB VideoPlayerTexture with 12228 of 12288 MB in use, then the process
faults about 26 s in (2 of 2 runs, RTX 4090, Linux, main cccdaa2734).
The same tree with only this merge reverted runs the full 150 s with no
direct memory assert (2 of 2 runs).
2026-10-28 15:45:26 +13:00