A short link to a folder could not be imported: the listing's relative links were resolved against
the typed address instead of the one the redirect ended at. plat_http_get now reports the final
address. The PS5 backend follows Location headers itself, since sceHttp's automatic redirects do
not say where they land; the PC backend asks libcurl. The importer resolves listings against that
address and sends later range requests straight to it.
The URL helpers move from the launcher's listing code to src/platform/url.c so the PS5 backend can
resolve Location headers with them, and the upload server reuses url_file_name for file names.
Add games gets a first row, Send from PC or phone. Its screen runs a small HTTP server for as long
as it is open (port 9666, or the next one the sandbox allows) and shows the address as text and as
a QR code. The page it serves takes dropped files and whole folders, uploads them one at a time with
progress, and lists what the console did with each. Game WADs are moved into place, archives go
through the importer and are deleted afterwards, add-ons and other files are refused with a reason.
qrcodegen 1.8.0 joins the pinned third-party fetch, renamed to fetch-third-party.sh; the page is
embedded at build time by tools/embed-file.py. tools/send.py does what the page does, for console
tests with test/console-send.cfg.
Prompts used to ask for keys ("press y or n", "press y to quit", "press a key"). Text now carries
glyph characters for the face buttons, drawn in their PlayStation colours by both Doom's menu font
and the launcher, so prompts read "Cross yes, Circle no" and the launcher footers show the symbols
instead of X and O.
The first Read This! page shows the controller controls instead of id's keyboard help, and DOOM II
keeps its Read This! entry when the WAD has the graphic, so every game can show it.
DOOM now opens on a game list. The package bundles id's freely
distributable shareware DOOM1.WAD; players add The Ultimate DOOM, DOOM II,
TNT and Plutonia (or Freedoom) from their own files:
- copied into /data/homebrew/PPSA99666/wads, as WADs or inside ZIP, 7Z or
RAR archives, which are imported once at the next start;
- downloaded from an http:// or https:// link typed on the system
keyboard: a WAD, an archive, or a folder listing to pick from. Archives
are read in place over HTTP range requests, so a large solid 7Z needs no
room on the console beyond the game WADs it holds.
The console uses sceHttp/sceSsl and the IME dialog; the PC build uses
libcurl. Archives go through libarchive, liblzma and zlib, fetched pinned
and built for both targets, with large allocations taken from mmap.
Engine fixes that came with it: IdentifyVersion takes the launcher's
choice and sets gamemission, so TNT and Plutonia get their own level names
and finale texts; the sky check no longer gives The Ultimate DOOM the
DOOM II skies; saves are per game; widescreen full-screen pictures from the
2024 re-release are drawn centred instead of rejected.
The console test runner receives doom.log over the capture connection
instead of reading the kernel log.
id Software's original engine, made 64-bit clean, on a new platform layer:
VideoOut with tiled scanout, an AGC compute presenter, ScePad, AudioOut,
an OPL FM synth with a DMX-style MUS player, and a headless PC build for
testing. Ships Freedoom as the bundled game; id's own IWADs take priority.