From 2560edf0cf2bfc7521e45781bdb42a8caef8332f Mon Sep 17 00:00:00 2001 From: The412Banner Date: Tue, 22 Sep 2026 23:17:28 -0400 Subject: [PATCH] 0.1.5 notes --- docs/releases/0.1.5.md | 132 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 docs/releases/0.1.5.md diff --git a/docs/releases/0.1.5.md b/docs/releases/0.1.5.md new file mode 100644 index 000000000..99807b2f5 --- /dev/null +++ b/docs/releases/0.1.5.md @@ -0,0 +1,132 @@ +# SteamDeck 0.1.5 + +**A new front end, settings that open where they are, the client's frames back on a flagship, a +new icon and three themes in its colours, and the first pull requests from a second pair of +hands.** Install it over 0.1.4; same key, same runtime, nothing to re-download. + +--- + +## ๐Ÿงญ The front end + +The main screen is a rail and a pane. The rail lists what can be launched โ€” **Steam** and its +installed games, **Desktop** and its emulators and *their* games โ€” and **Setup** under them, every +category folded when the app opens so the rail is three headers and their counts. The pane shows +the chosen thing with its launch button, its art, and a shelf of the rest. A session left in the +background is the first thing on the rail, with a pulse, and tapping it goes back in. + +It moves: the selection is one pill that glides between rows, lists unfold with their children +staggering in, a page change cascades the new page in row by row over a blurred wash of its own +art, tiles lift and shine under the pad, the launch button sweeps a sheen and squashes on press, +and the session rises over the front end and sinks back. Every duration follows the system's +animator scale, so "no animations" in developer options snaps all of it. โœ… Seen on a Pocket FIT +and a Fold. + +**Emulators launch from the rail, under gamescope, with their games.** The ROMs folder is scanned +per system (one level of subfolders, PS3 game folders, RPCS3's own installed games by their +PARAM.SFO with their icons), and each game launches straight in. โœ… God of War II HD booted in RPCS3 +from the rail, ~40 fps on the FIT โ€” the first emulator game from the app. The desktop's own Steam +launchers hand a game to the app's Steam session (โš ๏ธ the hand-off itself is not yet proven). + +## ๐ŸŽ›๏ธ Settings without a pop-up + +The cog's window and the Performance dialog are pages in the pane: one row per setting, its value +in a chip, and a small faded menu that opens right under the chip. One menu at a time; the page +dims while it is open; the back key, the rail and the page's own Back all leave it. **Steam** and +**Desktop** each have a Settings entry in the rail that lights while its page shows. Frame +generation, Session logs, Start offline and Theme open their menu right on their rail row. + +The **session drawer** is the same rows and menus, sliding in from the right: Now (HUD, frame +generation, touch, the virtual pad, keyboard, the client's menu) and Next session (display shape, +FEX preset, compatibility tools), with Send to background and Stop at the end. + +## ๐ŸŽจ The icon, and themes in its colours + +A new launcher icon (Kurt's), and the same mark in the rail and on the loading screen. Three +themes under Setup โ€บ Theme, in the icon's black, white and blue: **Paper on black** (the default โ€” +white is the primary, the blue is the small signal for rules, rings and dots), **Icon blue**, and +**Electric navy**. A change applies at once. + +## โšก Run as a game, and the client's frames back + +- The app is declared a **game** to Android, with a game-mode config that welcomes Performance + mode and refuses the OS-side frame-rate cap and resolution downscaling โ€” the interventions that + make a regular flagship's Big Picture crawl while a gaming phone's does not. The session window + asks for **sustained performance mode**, the panel's **fastest display mode** at its size, tells + GameManager it is in gameplay, and opens an **ADPF hint session** over the compositor thread fed + with each presented frame's interval. One `perf:` line in the session log says what took. +- **The client's GPU process stops dying on its way up.** libpci picks its procfs backend because + the app can read `/proc/bus/pci`, then dies on the devices file inside it, which Android denies; + Chromium loads libpci in its GPU process, so after a few tries CEF drew the whole interface on + the CPU. An empty file bound over that path at session start answers the scan truthfully. + (WinNative, maxjivi05: 44 โ†’ 85 fps in the Big Picture library on a OnePlus 15.) โœ… Big Picture at + 117โ€“118 fps on both panels of a 120 Hz Fold, Adreno 830. +- **Client interface** switches on the Performance page: threaded GL, lazy descriptors and no GL + error checks, all on by default; **Steam Deck mode** (`-steamdeck -steamos3`) off by default, + since the client then expects Deck hardware. What is in effect is in the device report. +- **720p by default** for the client and the desktop; a cap you chose still wins. +- **FEXCore presets** for the x86 games the client launches, Bannerlator's table carried over: + Stability, Compatibility, Intermediate, Performance, Performance + TSO, Extreme, Extreme + TSO, + Extreme-gn, Denuvo. The default is FEX's own defaults, which is what every session ran on before. +- The guest gets the device's **time zone** (the client's clock and logs were UTC). +- A device without an Adreno GPU is told **before** the runtime download that a session would be + sound over a black screen. +- The app's own libraries are **16 KB-aligned** (Android 15 devices). โš ๏ธ Six prebuilt PulseAudio + libraries are still 4 KB-only and need a rebuild. + +## ๐Ÿ•น๏ธ On-screen controls: sticks, and the bars + +A **left and a right stick** beside the d-pad, a base and a knob that follows the finger, writing +the pad's thumb axes the way a physical stick does. The controls **take the bars** beside or under +the picture when the panel letterboxes it โ€” a Fold's side bars, a square panel's bottom band โ€” +and only overlay the picture when there are none wide enough. โš ๏ธ Not yet tried in a game. + +## ๐Ÿค From Kurt (xXJSONDeruloXx) + +- The **hardware Back button** reaches the app and opens the drawer instead of going into Steam + as Select. โœ… Verified on an AYN Thor. +- The **launcher icon**. +- **Local build and deploy helpers**: a Docker build for the preload libraries, a local release + build with signing, an ADB install helper. + +Every pull request against main now builds by itself and gets one comment kept current: mergeable +or the conflicting hunks, and a failed build's compiler errors. The README lists the contributors +and a ledger of their pull requests that a workflow keeps. + +## ๐Ÿ”ง Smaller + +The file manager and the picker stay in landscape ยท a session's log folder goes with it when it +ends and the next session gets its own ยท a replaced session's exit no longer ends the one that +replaced it ยท the desktop page says "Linux desktop environment" ยท the Kotlin compiler's session +files are ignored. + +--- + +## โš ๏ธ Carried over โ€” still open + +The desktop โ†’ Steam hand-off and the sticks are untested on a device. A stick click is not yet +offered. VAC-protected games report insecure. Games that ship only a Linux build won't start. + +## Credits + +- **maxjivi05 (Max)** โ€” the gamescope runtime this is built on, the sandbox shims, the controller + work, the NetworkManager stand-in and the libpci fix, from WinNative. +- **Kurt Himebauch (xXJSONDeruloXx)** โ€” the launcher icon, the hardware Back fix, the local build + helpers. +- **The412Banner** โ€” the app, the Wayland compositor, the runtime plumbing, the Steam session, the + front end and the File Manager (from Bannerlator). +- **Winlator (brunodev85)** โ€” the audio stack, the gamepad model and the shape of a session. +- **Vauzi (Vauzi-17/710)** โ€” the Adreno 710/720/722 device entries the experimental driver carries. + +Frame generation: **Win-FG** is built in; **LSFG** uses the shader chain from *your own copy* of +Lossless Scaling, read on device and never redistributed, on groundwork from **lsfg-vk (PancakeTAS)**. + +GPL-3.0. gamescope, Mesa, Turnip, Xwayland, labwc, LXQt, PulseAudio, proot and Arch Linux ARM are +their own authors'. **Not affiliated with Valve** โ€” Steam, Proton and Steam Deck are Valve's, and no +Valve software is redistributed here: the client is fetched from Valve's own manifest on your device. + +--- + +**APK** `SteamDeck-0.1.5.apk` โ€” 21093959 bytes +`sha256 85b4295431ddea6f35025959864f3fbb47ad238693e146405ac0fe6ae87504f1` +versionCode 6, built from `d2f4a84` by [run 35813465422](https://github.com/The412Banner/SteamDeck/actions/runs/35813465422). +Signed with the AOSP test key (v1 + v2 + v3), so it installs over 0.1.4 in place.