EVO Player v0.3.0
Pre-release
Pre-release
The player starts from the console now, and tells you what changed.
New
- A home-screen tile. EVO Player registers a Media-category title and
appears in the console's own Media row, so it starts from the controller.
Until now launching meant opening a browser on a second device to reach the
websrv launcher. The tile is titleEVOP10001on loopback port 9056,
deliberately distinct from ProsperoPlayer'sPRSP10001/9055 so both can be
installed on the same console; nothing here touches upstream's registration.
Build and install with./scripts/build-media-tile.sh --install. - The uninstaller ships with it, and is built first. Sony usually hides
Options → Delete for Media hosts, so removal is--uninstall, or the
one-shotEVOPlayer_UninstallTile.elfwhen the launcher is not resident.
It is built before the launcher, unconditionally, so the way back exists
before it is needed. - A changelog in the app, under About. Release notes per version with the
emphasis inverted the way the other informational rows work — the change is
what you came to read, soNEW/FIXEDsteps back. - A real application icon, generated by
tools/gen_app_icon.pyfrom vector
shapes using the same signed-distance rasteriser as the UI icons. The
repository previously had no EVO icon at all, so packaging fell back to a
1×1 placeholder and the Media launcher carried upstream's branded artwork. ./scripts/update-console.sh— rebuilds and updates both install paths
in one command.
Fixed
- The Media launcher's Makefile could never have worked. It depended on
assets/ProsperoPlayer.elfwhile the source embedsassets/EVOPlayer.elf,
somakefailed on a missing prerequisite. A missing player now explains
itself instead of surfacing as an assembler error about a file it cannot
open. - The tile and the development install no longer fight over one directory.
The launcher embeds the player and rewrites it on every launch; with both
pointing at/data/homebrew/EVOPlayerthe tile silently overwrote whatever
install-homebrew.shhad just pushed, with nothing to say which binary had
actually started. The tile's copy lives at/data/evoplayer/app, and
uninstalling the tile no longer deletes the development install. uiviewreported version 0.0.2 for every render, because the version was
hardcoded intools/uiview.shrather than read fromVERSION. Its About
fixture had also drifted from the real screen.- Installing the tile never returned.
prospero-deployis
socat -t 9999999, which waits for the far end to close, and elfldr does not
close while the payload it spawned is alive. The launcher is resident by
design — that is what serves the tile's deeplink — so the deploy ran until it
was killed, long after the payload was up. Console deploys are bounded now
(--timeout, default 90s), andtimeout's exit 124 is reported as what it
actually means: still resident, detached.
Known gaps
- The launcher is a payload, so it must be re-injected after every jailbreak;
the tile stays registered but does nothing without it. Autoload is the
answer, and is the exploit host's job rather than this repository's. - The tile embeds the player whole, so the launcher payload is player-sized
(~34 MB) and updating the tile means re-injecting all of it. PP_VERSIONin the launcher is a separate constant fromVERSION.
Install
- Jailbreak the console (12.70) and start
ps5-payload-elfldr. - Deploy ps5-payload-websrv.
- Extract the homebrew zip to a USB stick as
/homebrew/EVOPlayer/,
or copy it to/data/homebrew/EVOPlayer/over FTP. - Launch it from
http://<ps5>:8080/index.html.
EVOPlayer-*.elf is the bare payload. Note that sending it with
elfldr alone runs it headless — it needs the homebrew launcher to
get a display plane. See the README.
Requirements
- PS5 on firmware 12.70, jailbroken (re-run after every reboot)
- A USB stick for media
Verification
Built reproducibly in CI from the pinned toolchain (clang 18.1.3,
PS5 Payload SDK v0.42, FFmpeg 7.0.1). CI has no console, so these
binaries are not hardware-tested. Checksums in SHA256SUMS.txt.
Licensed GPL-3.0-or-later. Derived from ProsperoPlayer; see NOTICE.