Tools: Find ARM64 builds in update-dispatcher.py, fix headless_bench.py options

update-dispatcher.py only knew x64 paths, so on Windows-on-ARM it regenerated from a stale x64
build. headless_bench.py handed the options after -- to argparse's REMAINDER, which newer
Pythons treat as more binaries.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-10-11 10:33:30 +02:00
1 parent c51daff839
commit e0f2060cd5
2 files changed
+18 -7

No files matched your search

+11 -5
View File
@@ -219,7 +219,7 @@ def report(game, binaries, results):
else:
delta = ' (%+.2f%%)' % (100.0 * (med / base[k] - 1.0))
value = ('%.2fs' % med) if k in ('wall', 'cpu') else ('%.4g' % med)
cols.append('%s %s%s ±%.1f%%' % (k, value, delta, spread / 2))
cols.append('%s %s%s +-%.1f%%' % (k, value, delta, spread / 2))
print(' %-28s %s' % (os.path.basename(os.path.dirname(b)) + '/' + os.path.basename(b), ' '.join(cols)))
@@ -235,10 +235,16 @@ def main():
parser.add_argument('--graphics', default='software', help='backend (default software)')
parser.add_argument('--memstick', help='memory stick directory, for firmware modules (see docs/debugging.md)')
parser.add_argument('--allow-battery', action='store_true', help='run even on battery power')
parser.add_argument('extra', nargs=argparse.REMAINDER, help='after --: more PPSSPPHeadless options')
args = parser.parse_args()
if args.extra and args.extra[0] == '--':
args.extra = args.extra[1:]
parser.epilog = 'Anything after -- is passed on to PPSSPPHeadless.'
# Split off the PPSSPPHeadless options ourselves: argparse.REMAINDER after a nargs='+' positional
# hands them to the binaries instead on newer Pythons.
argv = sys.argv[1:]
extra = []
if '--' in argv:
extra = argv[argv.index('--') + 1:]
argv = argv[:argv.index('--')]
args = parser.parse_args(argv)
args.extra = extra
games = list(args.game)
if args.games:
+7 -2
View File
@@ -14,11 +14,16 @@
# already wired into every build system, so no further steps are needed.
import os
import platform
import subprocess
import sys
# Same search list test.py uses to find a headless build.
CANDIDATES = [
# Same search list test.py uses to find a headless build. The machine's own architecture comes first:
# an x64 build runs on Windows-on-ARM too, and may be a stale one.
CANDIDATES = ([
"Windows/ARM64/Debug/PPSSPPHeadless.exe",
"Windows/ARM64/Release/PPSSPPHeadless.exe",
] if platform.machine().lower() in ("arm64", "aarch64") else []) + [
"Windows/x64/Debug/PPSSPPHeadless.exe",
"Windows/x64/Release/PPSSPPHeadless.exe",
"Windows/Debug/PPSSPPHeadless.exe",