mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-11 19:11:08 +00:00
105 lines
6.1 KiB
Markdown
105 lines
6.1 KiB
Markdown
# SteamDeck 0.1.4
|
|
|
|
**The main screen got its shape, the desktop can see the phone, the logs survive a crash, and the
|
|
file manager is Bannerlator's.** Install it over 0.1.3; same key, same runtime, nothing to
|
|
re-download.
|
|
|
|
---
|
|
|
|
## The desktop can see your files - and a ROMs folder
|
|
|
|
A file dialog inside the desktop (RPCS3's "Select Game Folder", say) showed only the runtime's own
|
|
tree. The phone's storage *was* mounted the whole time, at `/storage/emulated/0`; the dialogs
|
|
just could not show it - they list "Computer" from the mount table, where a proot bind never
|
|
appears, and open in the home folder, where nothing pointed at the phone.
|
|
|
|
The home folder now carries two entries every session: **`Storage`**, all of internal storage, and
|
|
**`ROMs`**, the folder chosen with the new **ROMs folder** tile - anywhere on the device, an SD
|
|
card included (it is a bind, not a link). Point an emulator at `/root/ROMs` once. Both are the
|
|
live folders: a save written next to a ROM lands on the phone.
|
|
|
|
## Files - Bannerlator's File Manager, whole
|
|
|
|
The **Files** tile is Bannerlator's File Manager carried over as it is: grid and list, sort,
|
|
search, multi-select, copy / cut / paste with conflict handling and a cancellable progress bar,
|
|
rename, delete, new folder, properties (read-only, hidden), favourites, and a locations rail with
|
|
every mounted card, Downloads, the ROMs folder and the session logs. Its pick mode is what chooses
|
|
the ROMs folder and imports a driver, in place of Android's document picker. Left out, because
|
|
they have no meaning without a Wine container: run, add to shortcuts, the C: / Z: drives and the
|
|
archive unpacker.
|
|
|
|
## A cog beside Play and beside Desktop
|
|
|
|
Everything that only matters for one mode moved behind that mode's cog - a settings window with
|
|
a rail of sections: **Display** (resolution up to 1080p by default, 900p, 720p or the panel's own;
|
|
the shape), **HDR**, the **runtime driver** for that mode, the **display driver**, **touch**, and
|
|
for Steam the on-screen controls and audio, for the desktop its renderer. The Graphics drivers and
|
|
Audio tiles are gone into them, and the main screen is a two-column grid: Play, Desktop and Start
|
|
offline on top, then Runtime · Desktop & apps · Frame generation · Compatibility tools ·
|
|
Performance · ROMs folder · Files · Session logs.
|
|
|
|
**HDR10 output** is a switch that is greyed out, with the reason, on a panel that does not list
|
|
HDR10. On, the compositor offers `wp_color_manager_v1` with BT.2020 + PQ and 10-bit buffers,
|
|
gamescope starts with `--hdr-enabled` and games get `DXVK_HDR=1`. The compositor decides this once,
|
|
when it starts, so like the display driver it applies after the app is fully closed and opened
|
|
again. Wired end to end; not yet seen on a device from this app.
|
|
|
|
## Logs that survive a crash, and a session that always starts
|
|
|
|
A session's folder used to be finished only at a clean stop; an app crash or an Android kill left
|
|
it half-written - a user saw the toast name a log that was not there. The folder is now finished
|
|
three ways: the ordinary stop; the app's own crash handler, which writes `crash-app.txt` and
|
|
finishes the folder before the process dies; and a sweep at the next app start for any folder
|
|
without its `.complete` marker (a native crash, a kill), which gets `ended-without-teardown.txt`
|
|
and Android's crash buffer. **Session logs** on the main screen turns the folder off (it then
|
|
lives in the cache and is deleted with the session).
|
|
|
|
The same user had to force-stop the app before every launch or nothing started: when the app dies,
|
|
proot, gamescope and Steam outlive it, holding the rootfs, the GPU and Steam's lock. Every session
|
|
start now kills whatever of ours is still running from before, and `app.log` lists it.
|
|
|
|
## Steam menu from the drawer
|
|
|
|
The in-session drawer has **Steam menu ◉** in Steam mode - the Guide button, for a device whose
|
|
own home button belongs to Android and a pad the client hides the on-screen controls for. (There is
|
|
no Quick Access chord on a non-Deck controller that I could confirm, so none is offered.)
|
|
|
|
---
|
|
|
|
## Everything from 0.1.3 and before is here
|
|
|
|
The client's network page · graphics drivers you can import and choose, per mode · Steam's overlay
|
|
restored and a competing client asked to stop · DirectAudio and the microphone · client and game
|
|
core masks · four session fixes · a folder of logs per session with credentials scrubbed · a path
|
|
for Adreno 710 / 720 / 722.
|
|
|
|
## If the client dies with nothing in its log
|
|
|
|
Android 12 and later kill the extra processes an app starts for itself, and a session is made of
|
|
dozens. Some phones have a **"restrict child processes"** switch in Developer options - turn it off.
|
|
Otherwise, once per device: `adb shell settings put global settings_enable_monitor_phantom_procs
|
|
false`. `device.txt` in every session folder records what your phone reports.
|
|
|
|
## Credits
|
|
|
|
- **maxjivi05 (Max)** - the gamescope runtime this is built on, the sandbox shims, the controller
|
|
work and the NetworkManager stand-in, from WinNative.
|
|
- **The412Banner** - the app, the Wayland compositor, the runtime plumbing, the Steam session 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.4.apk` - 20957823 bytes
|
|
`sha256 4b53ce6a937f2b51a5b9d2639ea32b816993e4f7b2dc33dd0f3198b81f21e9d2`
|
|
versionCode 5, built from `8e58e8e` by [run 35682844106](https://github.com/The412Banner/SteamDeck/actions/runs/35682844106).
|
|
Signed with the AOSP test key (v1 + v2 + v3), so it installs over 0.1.3 in place.
|