Commit Graph
2114 Commits
Author SHA1 Message Date
Dean Galvin 4492567a14 Merge branch 'main' 2026-11-06 13:07:38 +13:00
Dean ea07ec82d3 Merge pull request #14143 from malekaifa/fix/hw-oracle-extra-tail-offset
fix(hw-oracle): keep extra offset stable across dispatches
2026-11-06 12:17:43 +13:00
Dean aa493b4eac Merge pull request #15186 from Noxy-HNR/claude/nk-sqlite
feat(libSceNKWebKitRequirements): implement the SQLite exports
2026-11-06 12:16:38 +13:00
Dean b5294ca036 Merge pull request #14314 from MarcZX10/fix/pr-intake-reopen-label
fix(ci): remove the open PR limit label when a reopened pull request is allowed
2026-11-06 12:15:53 +13:00
Adrià b3189fd745 Merge pull request #13996 from MarcZX10/fix/registration-scripts-traceback
fix(tools): report --scripts outside a git checkout as a usage error
2026-11-05 20:14:35 +01:00
Adrià 957d4efc68 Merge pull request #13957 from MarcZX10/fix/debt-split-keep-text
fix(tools): keep a debt file's note and sub-headings when debt_split rewrites it
2026-11-05 20:14:17 +01:00
LeandroLP23andClaude Opus 5.5 ee1e48f2dd feat(tools): start DOOM (PPSA99666) so title runs play its built-in demos
One cross on the port's launcher starts the shareware episode, whose
attract loop then plays the WAD's recorded demos: the same gameplay on
every run, without a wall-time input timeline.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 17:18:49 +01:00
LeandroLP23andClaude Opus 5.5 5d423bfb7b feat(tools): queue a per-title controller timeline in title runs
A title's pad entry in titles.json holds a pad_timeline.py timeline;
each run points APS5_PAD_INPUT_FILE at the work directory and queues it
after_s seconds after start, so titles that wait on their start screen
reach gameplay. Celeste Classic (PPSA59322) starts a game and moves.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 16:09:29 +01:00
Dean Galvin 9aa2ae1d06 Merge branch 'main' 2026-11-06 00:31:19 +13:00
Dean 67fb4064d6 Merge pull request #14132 from malekaifa/prime-d/fix-atrac9-test-discovery-20261031
test(tools): support atrac9 patch discovery
2026-11-05 22:03:21 +13:00
Dean 58c7e35438 Merge pull request #12771 from StoneDC/b40/fuzz-seed-manifest
feat(tools): describe relinker fuzz corpus seeds as JSON
2026-11-05 22:03:03 +13:00
Dean 95624d3507 Merge pull request #12877 from StoneDC/b41/audit-strict-partial
feat(tools): optionally reject partially implemented imports
2026-11-05 21:50:24 +13:00
Dean a4a4cb959a Merge pull request #12875 from StoneDC/b41/catalog-json
feat(tools): emit structured patch catalog validation
2026-11-05 21:50:20 +13:00
Dean ee4deb21a9 Merge pull request #15085 from JJenkx/windows/annotate-module-timeout
test(tools): run each annotate_module case as its own test
2026-11-05 21:46:52 +13:00
Dean 58d7fbd786 Merge pull request #14305 from MarcZX10/ci/compile-slot-fail-without-flock
fix(ci): stop compile_slot.sh retrying forever when flock or a slot file is unavailable
2026-11-05 21:46:23 +13:00
Dean 2238042b81 Merge pull request #15705 from oneandonlydean/rr/pr3-gpu
feat(run-report): count milestones, frames, GPU and shader diagnostics
2026-11-05 21:24:14 +13:00
Dean 1fe3ee8d1a Merge pull request #14235 from oneandonlydean/rr/pr2-writer
feat(run-report): write the run report when a game ends
2026-11-05 21:24:09 +13:00
Dean 6d83f43053 Merge pull request #15209 from veosett/codex/audit-dump-protect-relinker
fix(tools): protect audit_dump relinker from JSON output
2026-11-05 17:00:35 +13:00
Dean 41eee370ea Merge pull request #12159 from Queuse/codex/fix-host-test-dependency-inputs
fix(ci): follow host test dependency inputs
2026-11-05 13:12:28 +13:00
Dean a992b80376 Merge pull request #12806 from rooklz/fix/build-web-symlink-loop
fix(tools): report build_web symlink-loop build dir as usage error
2026-11-05 12:30:33 +13:00
Dean bfd14d1260 Merge pull request #15375 from JJenkx/fix/ci-guest-wrapper-owner-20261103
fix(ci): build owners of wrappers around selected guest tests
2026-11-05 12:28:37 +13:00
Dean ac2296d4bc Merge pull request #12395 from pushkarreddyy/test/annotate-module-objdump-skip
test(tools): skip annotate_module CLI alias test when GNU objdump is unavailable
2026-11-05 11:31:12 +13:00
Dean 622255da5e Merge pull request #12011 from pushkarreddyy/fix/audit-dump-json-destination-validation
fix(tools): validate json report destination before staging in audit_dump
2026-11-05 11:30:52 +13:00
Dean 9f35c937da Merge pull request #13837 from CodingBreadd/test/check-skips-decode-utf8
test(tools): decode check_skips test output as UTF-8
2026-11-05 09:00:46 +13:00
Dean 793515e6e4 Merge pull request #13417 from dr-hoseyn/fix/ab-split-truncated-programs
fix(tools): avoid zeroing unlisted GPU program timings
2026-11-05 09:00:41 +13:00
Dean 54b7a65c70 Merge pull request #13239 from MalikTalha03/fix/tools-tests-windows-store-python-executable
fix(tools): stop relying on sys.executable as a readable or spawnable file in tests
2026-11-05 09:00:36 +13:00
Dean 0c78920e52 Merge pull request #15164 from Ducengarth/fix/env-reference-table-rows
fix(tools): count only table rows as documented in env_reference
2026-11-05 08:20:42 +13:00
Dean 13201e8df4 Merge pull request #15717 from tikD1337/codex/trace-wait-ancestry
perf(tools): reuse wait ancestry when digesting trace slices
2026-11-05 08:18:46 +13:00
pushkarreddyy 4ba25362c0 fix(tools): resolve json report destination before validating parent directory in audit_dump 2026-11-04 23:15:21 +05:30
pushkarreddyy d1c1fbaa6b fix(tools): sequence directory checks after dump overlap in audit_dump 2026-11-04 23:15:21 +05:30
pushkarreddyy 67f253f7c2 fix(tools): validate json report destination before staging in audit_dump 2026-11-04 23:15:20 +05:30
pushkarreddyy 96cecd3991 test(tools): cover json directory and missing parent rejection in audit_dump 2026-11-04 23:15:20 +05:30
pushkarreddyy 0f6036e876 test(tools): skip annotate_module CLI alias test when GNU objdump is unavailable 2026-11-04 23:14:50 +05:30
Dean 9ab6a281ea Merge pull request #11860 from rooklz/fix/input-mapper-settings-roundtrip
fix(tools): round-trip input mapping settings in the input mapper
2026-11-05 06:36:17 +13:00
Dean c7eae98ba6 Merge pull request #7264 from LeandroLP23/feat/tools-title-run
feat(tools): run titles repeatably and report their outcome
2026-11-05 06:33:49 +13:00
Dean Galvinandrooklz 02e5fbda82 test(tools): skip the build_web symlink-loop test without symlink support
Apply review request from 2026-11-01: catch (NotImplementedError, OSError) around only the two symlink_to calls and report an unavailable capability through skipTest, so the test no longer raises PermissionError before the subprocess starts on hosts without symlink privilege. The subprocess and the exit-code, message and no-traceback assertions stay outside the catch; the production change is untouched.

Co-authored-by: rooklz <[email protected]>
2026-11-04 23:26:39 +13:00
Tikhon Ulyanov 7c9de0ff29 perf(tools): reuse wait ancestry when digesting trace slices 2026-11-04 10:25:28 +01:00
Dean Galvin 0003ec72c7 Merge rr/pr2-writer into rr/pr3-gpu 2026-11-04 20:21:16 +13:00
Dean Galvin b5f5c7fd1f Merge branch 'main' into rr/pr2-writer 2026-11-04 20:19:15 +13:00
Dean 6092b0e81a Merge pull request #12767 from StoneDC/b40/history-date-window
feat(tools): select progress history by UTC date
2026-11-04 19:26:55 +13:00
Cesar MoraandClaude Opus 5.5 cd4549d0cc fix(libs): ship mimalloc's licence and document the inherited preload
The release archives carry mimalloc's binaries on Linux and Windows, so
they now also carry its MIT licence as libs/licenses/mimalloc.txt, and
packaging fails without it. USAGE.md and ENVIRONMENT.md say that
APS5_MIMALLOC and LD_PRELOAD stay set after the restart and state the
memory cost measured with it, and the restart's debt entry says that
only the log-file copy is handed back before execv.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_015W3M6NbYpmwWkzkL8YNLaF
2026-11-03 23:18:32 -06:00
Cesar MoraandClaude Opus 5.5 468c07712c feat(libs): let relinked Linux games opt into mimalloc
With APS5_MIMALLOC set, libkernel restarts the title with
libmimalloc.so from libs/ first in LD_PRELOAD, as it does on macOS
with DYLD_INSERT_LIBRARIES. The macOS restart becomes one
implementation with platform pieces (MimallocRestart.cpp): on Linux
the executable is the target of /proc/self/exe and the arguments
those of /proc/self/cmdline. The restart is a priority 101
constructor, so it runs before libkernel's other initializers. It
gives the standard streams back from an ANYPS5_LOG_FILE copy before
execv, which also fixes the macOS restart under that variable, and
refuses a path the preload list cannot hold.

The build copies libmimalloc.so beside the libraries except in ASan
and TSan builds, the Linux release archives ship it, and the restart
tests run on Linux too, with a new case for ANYPS5_LOG_FILE.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_015W3M6NbYpmwWkzkL8YNLaF
2026-11-03 23:18:20 -06:00
LeandroLP23andClaude Opus 5.5 6c88e69f07 fix(tools): show the first non-empty error of a title's failed runs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 e5b4e22aba fix(tools): report an unreadable last frame and lock a title's work directory
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 39b52ea6c0 test(tools): skip the window placement test without a desktop shell
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 72264c25bd fix(tools): relink Ruffle, VLC and XPSemu at the default base
#9332 made 0x400000 the default base of Windows executables, as #8973
did on Linux, so the three titles that read their GOT at that base no
longer need fixed_base in titles.json: with a plain relink their guest
image starts at 0x400000 and all three render.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 5e4007fd30 fix(tools): keep title names out of the catalog and refuse a malformed param.json title ID
titles.json no longer takes a name: a run is labelled with the package's
own param.json title name. discover() checks the param.json titleId with
the same pattern as the catalog keys, since it names the work directory
that prepare() empties.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 0a4d3a908e fix(tools): label a title run with the commit of the build's source tree
The report took the commit of the checkout holding title_run.py, which
is wrong when --build points at another checkout. The source directory
now comes from the build's CMakeCache.txt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 3abbf5459b fix(tools): check titles.json items and drop the unused input field
A non-string env value or relink flag passed validation and stopped the
batch when the title started. List and env items must now be strings, a
param.json without titleId names its file, and the input field, which
nothing ran, is no longer accepted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00
LeandroLP23andClaude Opus 5.5 d94dc23467 fix(tools): treat EPERM from a title's process group as still exiting
On macOS, killpg on a group whose processes are all exiting fails with
EPERM instead of ESRCH, which made alive(), close() and kill() raise and
end the batch. The SessionTests failure showed up on macOS runners.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 23:04:46 +01:00