Commit Graph
10 Commits
Author SHA1 Message Date
rijads 1ac421aa82 Follow redirects to folder links and resolve the listing where they land
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.
2026-10-04 15:30:51 +02:00
rijads 93814c3e95 Send games from a PC or phone browser, with a QR code on screen
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.
2026-10-04 15:25:39 +02:00
rijads 652cfd6007 Name DualSense buttons in prompts and show the controls on Read This!
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.
2026-10-04 14:55:19 +02:00
rijads a62377c80e TODO: controller wording in prompts and a DualSense help screen 2026-10-04 09:31:00 +02:00
rijads 59bad37ea7 Keep param.json and the icon in sce_sys/; contentVersion 01.000.001
The homebrew catalog reads contentVersion from sce_sys/param.json in the repository at the release tag; consoles compare it to find updates.
v1.0.1
2026-10-03 18:04:33 +02:00
rijads a8c5b63ae0 Add TODO: add-on WADs and folder links behind redirects 2026-10-03 18:01:55 +02:00
rijads fd94326e88 Real DOOM logo as the home-screen icon; reset line for console tests
The icon is the shareware WAD's own M_DOOM logo scaled 3x on black. The reset plan line deletes the app's saved data for a first-run state.
v1.0.0
2026-10-03 17:41:55 +02:00
rijads 674f88487d Launcher with game import; ship the shareware episode instead of Freedoom
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.
2026-10-03 17:36:15 +02:00
rijads 9a0c226c42 Normalize line endings to LF
Twenty files had been committed with CRLF endings. .gitattributes now keeps text files LF.
2026-10-03 17:35:54 +02:00
rijads 61c14ce8a2 Native DOOM for PS5 from id's linuxdoom-1.10 source
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.
2026-10-03 15:55:50 +02:00