mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-22 00:22:29 -05:00
From mihawk-99/PS5_RetroArch#34 (Martin Pham). A forwarder, a small app
with a home screen tile of its own, starts the title with --rom <file>
[--core <core>] [--exit-after-game] (each also as --x=<value>). On a
launch that names no mode, src/frontend_mode_ps5.cpp takes it as game
mode takes a frontend's request: the content (absolute, or inside
/app0/content/ and never above it) and the core are checked by
ps5_game_check, RetroArch starts with -L, and afterwards the title
opens as from the home screen, or closes with --exit-after-game.
Without --core the playlists choose, else the one core whose info file
lists the extension (Genesis Plus GX for the Mega Drive extensions both
Sega cores list) or, for a folder, the one core that opens folders. A
refusal goes to trace.txt and the launch goes on as from the home
screen; a handover's --ps5-mode wins over --rom.
Changed from the pull request: its README examples and test fixtures no
longer name games and use the ES-DE folder names content/ has now; one
header comment is moved to its declaration. Its line-ending rewrites of
the PowerShell scripts are dropped (they are gone, 8f14452), and its
GitHub workflow is parked in parked/github-build-workflow, with what
would finish it at the top of build.yml: it cannot run here, and it
does not fetch PS5_MihawkGen, which the frontend compiles now.
To prove it on a console, whose control payload launches without
arguments: the relaunch test takes its restarts' arguments from the
lines after the arm line, and tools/run-title.sh --relaunch-arg writes
them.
Evidence: tests/frontend_mode_ps5_test.cpp (parsing, paths, cores by
playlist, extension and folder, refusals, after the game);
tests/relaunch_ps5_test.cpp (arguments carried; a control character or
a ninth argument arms nothing). Gates: format, unit (204), build
(staged cores reused), integration, evidence PASS. Console: with this
series' deploy.
37 lines
1.8 KiB
Bash
37 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# libmicrohttpd's release tarball for tools/build-webui-http.sh, put where it looks
|
|
# (.deps/webui), so the build does not depend on ftp.gnu.org answering a CI runner. GNU's
|
|
# server first, then Ubuntu's archive, whose orig tarball is the same file; either is checked
|
|
# against the script's own pin (version, hash) and kept in CI_DOWNLOADS.
|
|
#
|
|
# .github/scripts/seed-microhttpd.sh
|
|
set -euo pipefail
|
|
root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)
|
|
script=$root/tools/build-webui-http.sh
|
|
version=$(sed -n 's/^version=\([0-9.]*\)$/\1/p' "$script")
|
|
hash=$(sed -n 's/^hash=\([0-9a-f]\{64\}\)$/\1/p' "$script")
|
|
[[ -n $version && -n $hash ]] || { echo "seed-microhttpd: no version or hash in $script" >&2; exit 2; }
|
|
target=$root/.deps/webui/libmicrohttpd-$version.tar.gz
|
|
check() { printf '%s %s\n' "$hash" "$1" | sha256sum --check --strict --status 2>/dev/null; }
|
|
if check "$target"; then
|
|
echo "==> [microhttpd] $target is libmicrohttpd $version"
|
|
exit 0
|
|
fi
|
|
cache=${CI_DOWNLOADS:-$HOME/.cache/ps5-retroarch-ci}/libmicrohttpd-$version.tar.gz
|
|
mkdir -p "$(dirname -- "$cache")" "$(dirname -- "$target")"
|
|
if ! check "$cache"; then
|
|
for url in "https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-$version.tar.gz" \
|
|
"http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmicrohttpd/libmicrohttpd_$version.orig.tar.gz"; do
|
|
if curl --fail --location --retry 3 --connect-timeout 30 --silent --show-error \
|
|
-o "$cache.download" "$url" && check "$cache.download"; then
|
|
mv -- "$cache.download" "$cache"
|
|
echo "==> [microhttpd] from $url"
|
|
break
|
|
fi
|
|
rm -f -- "$cache.download"
|
|
done
|
|
fi
|
|
printf '%s %s\n' "$hash" "$cache" | sha256sum --check --strict
|
|
cp -- "$cache" "$target"
|