Commit Graph
202 Commits
Author SHA1 Message Date
Adrià 5b2654a28b Merge pull request #6771 from XairRrR/fix/pipeline-cache-version
fix(agc): keep the Vulkan pipeline cache file with its shader cache version
2026-10-20 11:07:49 +02:00
Adrià 7faab0aea9 Merge pull request #4891 from dantdmdarealguy/feat/screenshot-hotkey
feat(agc,videoout): save the displayed frame as a PNG with a screenshot key
2026-10-20 10:40:02 +02:00
Ethan Barcus a8e06fb008 Merge branch 'main' into feat/trace-bench-fields 2026-10-20 02:57:23 -05:00
dantdmdarealguy e3125e43af feat(agc,videoout): save the displayed frame as a PNG with a screenshot key
F12 (the new Screenshot input action) requests a capture of the next
presented display buffer. The presenter records it with the existing
APS5_DUMP_FRAMES GPU readback at full resolution, and the frame dump
writer thread encodes it with decoder_png into anyps5-screenshots/
beside the executable, or ANYPS5_SCREENSHOTS.
2026-10-20 00:28:39 -05:00
Adrià 965dc2d78c Merge pull request #7298 from eliyarson/feat/videoout-telemetry
feat(videoout): write pad and present telemetry to APS5_VIDEOOUT_TELEMETRY_DIR
2026-10-19 20:40:04 +02:00
Adrià e90a1d1802 Merge pull request #7685 from MarcZX10/codex/docs-vr-support-limitations
docs: explain current VR support limitations
2026-10-19 19:38:39 +02:00
Adrià a2071e1609 Merge pull request #7592 from CPritch/docs/usage-app0-symlinks
docs(usage): say that app0 must not contain symbolic links on Linux
2026-10-19 19:35:42 +02:00
MarcZX10 2a7e1b46eb docs: explain current VR support limitations 2026-10-19 14:43:14 +00:00
Adrià 3647fcc68a Merge pull request #7370 from klosixgaming-arch/docs/system-fonts-boot
docs(usage): say what happens without system fonts and where to get them
2026-10-19 15:42:02 +02:00
Eli Yarson b8607f4ced feat(videoout): write pad and present telemetry to APS5_VIDEOOUT_TELEMETRY_DIR
APS5_VIDEOOUT_TELEMETRY_DIR=<directory> appends one JSON object per line to <directory>/videoout.jsonl: a contract line for the run (commit and pid), a pad line whenever the published pad state changes in its buttons, sticks, L2 or R2, a present line after the first present and every 30 after that with the count and rate the window title shows, and a drops line with the number of lines the writer discarded, reported every ten seconds while it grows and once at a normal exit. A bounded queue of 4096 lines and one writer thread batch the file, so neither the present nor the input path waits for it; a pad change that the full queue refused stays pending for a later publish, and the frame count moves from UpdateTitle's function-static to DisplayWindow so the input path can name the present it belongs to.

Without the variable no file is opened and no thread is started: a present or an input update costs one call that checks a guard variable and returns null.
2026-10-19 15:27:49 +02:00
Adrià Franch c8cc0380d0 docs(usage): move display resolution section below the relinker paragraphs it was splitting from Runtime layout 2026-10-19 14:48:42 +02:00
MarcZX100 4c3fca7e66 docs(usage): explain video output resolution 2026-10-19 14:48:42 +02:00
David a29f7d0799 docs(relinker): describe --macos-fixed-base 2026-10-19 10:32:50 +02:00
eth-j17andClaude Opus 5.5 ca4303a155 feat(trace): record host, title and per-frame benchmark data
The summary line names the CPU, its thread count, physical memory and,
with param.json, the title ID, name and content version.

APS5_TRACE_BENCH=1 with APS5_TRACE_SUMMARY_EVERY rewrites
aps5-bench-<commit>-<pid>.json.gz at each interval with the time between
every two presents, so reports can be recomputed and checked from raw
frame times. param.json's contentVersion is read when present.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 01:01:13 -05:00
klosixgaming-arch 4e50cece90 docs(usage): say what happens without system fonts and where to get the substitutes
The paragraph said a game shows no text without the font files. A title that asserts on the sceFontOpenFontSet result stops at boot instead, so say both, and say where the Noto Sans substitutes come from.
2026-10-19 03:15:13 +00:00
XairRrR 907c9cd1b6 fix(agc): keep the Vulkan pipeline cache file with its shader cache version
The pipeline cache file lived in the shader cache root and every run
merged its pipelines into it, so pipelines built from SPIR-V of earlier
recompiler versions were never dropped. The file only grew (965 MB for
PPSA05684 after a few recompiler changes) and the driver loads all of
it into host memory at device creation.

The file now sits in the directory of the current shader cache source
version, next to the variants it was built from.

AI-assisted: yes
2026-10-19 03:53:56 +02:00
EdouardSenceandClaude Opus 5.5 d71853cf25 feat(pad): add a Shake input that swings the reported motion while held
Some titles stop on a prompt to shake the controller, which keyboard players
and controllers without motion sensors cannot answer. While the Shake input is
held (X by default), the composed pad state reports motion with the
acceleration and angular velocity flipping sign every 50 ms; a controller's own
sensor data is used otherwise.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 01:16:53 +02:00
Adrià eb1a15b5cc Merge pull request #6314 from eliyarson/feat/relinker-game-patches
feat(relinker): add conversion-time game patches
2026-10-19 00:37:51 +02:00
Adrià 8a456334f6 Merge pull request #6240 from ArjenS-LA/fix/guest-registry-weak-imports
fix(relinker): preserve weak imports in guest module registries
2026-10-19 00:06:30 +02:00
AlxcBTW f0ec9bd2a0 Merge remote-tracking branch 'origin/main' into pr/input-analog-keys 2026-10-18 22:27:23 +02:00
Dean effb7d2d5a Merge pull request #7498 from AlxcBTW/pr/input-slow-mice
fix(libScePad): smooth a slow-reporting mouse over its measured report interval
2026-10-19 09:22:19 +13:00
Dean ce396a5d41 Merge pull request #7497 from AlxcBTW/pr/input-default-l2
feat(libScePad): bind L2 to R and the first mouse side button
2026-10-19 09:22:11 +13:00
Dean 65b0ad288b Merge pull request #7496 from AlxcBTW/pr/input-capture-hotkey
feat(libScePad): toggle mouse capture with F7 beside the middle button
2026-10-19 09:21:58 +13:00
Adrià fd58ca321e Merge pull request #6190 from devavijitsingh/feat/web-batch-conversion
feat(web): convert multiple app ZIPs as one bundle
2026-10-18 22:18:18 +02:00
Eli Yarson 346b0a92ca feat(relinker): add conversion-time game patches
A per-game relinker-patches.toml (or --patches) replaces verified bytes in
the input executable and bundled modules before conversion. Entries are
checked against the expected bytes and against every in-place writer,
the ELF header range and relocation targets. An <output-stem>.patches.toml
manifest records the applied entries, and --verify-patches checks an input
or a converted output. With no patch file the output is unchanged.
2026-10-18 14:57:13 -03:00
Dean c3591adf97 Merge pull request #7510 from AlxcBTW/pr/crash-stack-words-v4
feat(libc): dump the faulting thread's stack words in Windows crash reports
2026-10-19 06:52:21 +13:00
AlxcBTW 5dbdd6b797 Merge main into pr/input-analog-keys 2026-10-18 18:51:35 +02:00
Karim Masmoudi 57e52c1f03 fix(relinker): report processor 0 from RDTSCP under --to-rosetta
Rosetta sets RDTSCP's ECX to its constant TSC_AUX, 0xAAAAAAAB, which is
not a processor index. --to-rosetta already makes RDPID return processor
0 for the same reason, so code reading the processor through RDTSCP saw
a different value from code reading it through RDPID.

--to-rosetta now moves RDTSCP into an optional stub that runs the
instruction unchanged and then loads 0 into ECX with a MOV, which
leaves the counter in EDX:EAX and the flags as they were. A site with no
movable instruction after it for the jump is kept, as for RDPID. The
Intel target and a plain relink are unchanged.
2026-10-18 18:27:15 +02:00
CPritch 94b9432d01 docs(usage): say that app0 must not contain symbolic links on Linux 2026-10-18 17:05:49 +01:00
Yunus Shaikh 0172d28496 Merge main into feat/videoout-performance-overlay 2026-10-18 05:08:24 -07:00
AlxcBTW 127ee82f02 feat(libc): dump the faulting thread's stack words in Windows crash reports
APS5_CRASH_STACK_BYTES=<n> prints n bytes of stack words from rsp after the
stack return address candidates, then eight words at every distinct stack word
that points at readable, non-executable memory outside the thread's stack.
Off when the variable is unset, empty or 0.
2026-10-18 12:20:10 +02:00
AlxcBTW 06ca6a066b fix(libScePad): smooth a slow-reporting mouse over its measured report interval 2026-10-18 11:00:03 +02:00
AlxcBTW 367d46e480 feat(libScePad): bind L2 to R and the first mouse side button 2026-10-18 11:00:02 +02:00
AlxcBTW 53af7be7ee feat(libScePad): toggle mouse capture with F7 beside the middle button 2026-10-18 11:00:02 +02:00
AlxcBTW 438e1baa3e feat(libScePad): ramp keyboard-driven triggers over TriggerRampMs 2026-10-18 11:00:01 +02:00
AlxcBTW 64a9979268 feat(libScePad): ramp keyboard sticks over KeyboardRampMs 2026-10-18 11:00:01 +02:00
AlxcBTW a0f14cdf14 feat(libScePad): tilt keyboard sticks partially while a modifier key is held 2026-10-18 11:00:01 +02:00
Dean 883cb1ac52 Merge pull request #6231 from ArjenS-LA/fix/explicit-homebrew-module-directories
fix(relinker): allow explicit module directories without standard folders
2026-10-18 18:58:22 +13:00
Dean 66e71b63d1 Merge pull request #5390 from hugodearaujo/feat/agc-sparse-unaligned-import
feat(agc): import shared ranges whose backing offset is not 64 KiB aligned
2026-10-18 18:22:50 +13:00
Dean Galvin 489c64ecb5 Merge main into fix/explicit-homebrew-module-directories 2026-10-18 17:43:12 +13:00
thuanquangandClaude Opus 5.5 a7499e072f fix(relinker): skip a dumper's backup copy of a module beside the module
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:41:02 +07:00
Dean c4fea909a5 Merge pull request #7335 from EagleBearerYS/prep/np-trophies-part2
feat(libSceNpTrophy2,libSceNpUniversalDataSystem): record trophy unlocks and statistics
2026-10-18 15:58:22 +13:00
Dean 199e2ceb2f Merge pull request #7262 from EagleBearerYS/prep/np-trophies
feat(libSceNpTrophy2): report the title's trophy data from trophyNN.ucp
2026-10-18 15:00:53 +13:00
Dean 97c37af020 Merge pull request #6239 from ArjenS-LA/fix/audit-named-homebrew-imports
fix(tools): audit ordinary homebrew import names
2026-10-18 12:57:29 +13:00
Yunus Shaikh be9ade0f01 docs: say which posted trophy unlocks are refused and what stops a title
USAGE.md describes the refused posted unlocks and their log line, and
says that the icon queries and a damaged or unwritable unlock or
statistics file stop the game with an error. The debt entries of
libSceNpTrophy2 and libSceNpUniversalDataSystem no longer say that any
posted id is stored. Both USAGE.md and the libSceNpTrophy2 entry say
that without trophy data the platinum is not unlocked when the other
trophies are.
2026-10-17 23:29:24 +00:00
Yunus Shaikh 75ca9e469a docs: describe trophy statistics in USAGE 2026-10-17 23:29:17 +00:00
Yunus Shaikh 42ddbdf89e docs: describe trophy unlocks in USAGE 2026-10-17 23:28:50 +00:00
Yunus Shaikh 61e12c75fd docs: describe trophy data in USAGE 2026-10-17 23:26:06 +00:00
Yunus Shaikh 2a3946dbb0 Merge main into feat/videoout-performance-overlay
Main adds StorageTextureCacheBudget where this branch adds the public
LargestDeviceLocalHeap wrapper, in both the header and the source.
Keep both.
2026-10-17 15:57:45 -07:00
Dean c756343a89 Merge pull request #7255 from klosixgaming-arch/patch-1
docs(playgo): PPSA03490 needs APS5_PLAYGO_UNLISTED_CHUNKS=absent
2026-10-18 10:39:04 +13:00