Commit Graph
295 Commits
Author SHA1 Message Date
xXJsonDeruloXx 9f4a841eb6 Add Steam and QAM touch controls 2026-09-22 23:05:29 -04:00
The412Banner 9b034fcbb2 Merge remote-tracking branch 'origin/main' into feat/frontend-motion 2026-09-22 23:02:38 -04:00
The412Banner 81cf964168 front end: every category starts folded when the app opens 2026-09-22 22:55:38 -04:00
The412Banner b5158210a9 themes: every screen colour comes from the palette; Setup › Theme switches at once 2026-09-22 22:49:21 -04:00
github-actions[bot] d1602710a8 README: contributions ledger 2026-09-23 02:44:16 +00:00
The412Banner ec1453831d themes: the icon's colours three ways, chosen under Setup › Theme, Paper on black by default
Palette (ui/Theme.kt): background, surfaces, lines, type, a primary with its gradient partner,
and a separate signal colour for rules, rings, dots and the eyebrow - the blue in every theme,
while the primary is white in Paper and blue in the other two. Every colour the screens used to
hard-code (the purple gradient end, the green, the two line greys) now comes from the palette,
so a change under Setup applies at once, and the session drawer and the file manager pick the
saved theme up when they open.
2026-09-22 22:43:55 -04:00
github-actions[bot] c63af629ac README: contributions ledger 2026-09-23 02:43:13 +00:00
Kurt Himebauch 916b1d46fc Merge pull request #5 from The412Banner/build/local-build-deploy 2026-09-22 22:42:59 -04:00
github-actions[bot] 7df694fe49 README: contributions ledger 2026-09-23 02:32:10 +00:00
xXJsonDeruloXx 071289b56e Add reproducible local build and deploy helpers 2026-09-22 22:31:10 -04:00
The412Banner eca355016c logo: the app's in-app mark is the new launcher icon (its two layers composed and cut to the launcher's circle), in the rail and the loading screen 2026-09-22 22:26:14 -04:00
github-actions[bot] 0053d12407 README: contributions ledger 2026-09-23 02:16:54 +00:00
Kurt Himebauch 4d6ee985b9 Merge pull request #4 from The412Banner/update-app-icon 2026-09-22 22:16:47 -04:00
github-actions[bot] 94d74d35db README: contributions ledger 2026-09-23 02:15:33 +00:00
xXJsonDeruloXx d6a157578d Update app launcher icon 2026-09-22 22:15:06 -04:00
The412Banner 0b9f3106fe gitignore: the Kotlin compiler's session files 2026-09-22 21:54:33 -04:00
The412Banner 17c75bf671 PROGRESS_LOG: pull-request CI and the contributions ledger 2026-09-22 21:46:47 -04:00
github-actions[bot] d6a9c2ed90 README: contributions ledger 2026-09-23 01:44:05 +00:00
Kurt Himebauch 9931dc13a7 Merge pull request #3 from The412Banner/fix/session-back-key-routing 2026-09-22 21:43:54 -04:00
github-actions[bot] 4a3d5a7d66 README: contributions ledger 2026-09-23 01:40:36 +00:00
The412Banner 38df1e8141 CI: full history for the pull-request merge (the depth expression came out shallow), and git's own words when a merge cannot start 2026-09-22 21:40:22 -04:00
xXJsonDeruloXx ac2cfc1266 Fix session hardware back routing 2026-09-22 21:39:54 -04:00
The412Banner e228eca65e CI: pull requests build on pull_request_target (a conflicting one never fires pull_request); README: contributors and a ledger of their pull requests kept by a workflow 2026-09-22 21:38:40 -04:00
The412Banner 6eddda9808 CI: the pull-request report — mergeable or the conflicting hunks, and a failed build's errors, as one comment kept current
A pull request is checked out at its own head and merged onto main by the job itself: clean,
and the merged result is what gets built; conflicting, and the files and every conflicting hunk
go into the run summary and the comment, and nothing is built. The Gradle log is kept, and a
failed build's compiler errors (paths shortened) and Gradle's own 'What went wrong' are quoted
back. One comment per pull request, rewritten on every push; fork pull requests, whose token is
read-only, get the same text in the run summary.
2026-09-22 21:23:53 -04:00
The412Banner 45ca3c95c1 CI: a pull request against main builds itself (Bannerlator's PR check, in this one workflow)
Every push to the pull request rebuilds it and cancels the build it replaces (the concurrency
group is already per ref, and a pull request's ref is its own); a draft waits until it is
marked ready. The apk comes back as the run's artifact.
2026-09-22 21:19:41 -04:00
The412Banner e0dd8b8c59 on-screen controls: two sticks beside the d-pad, and the controls take the bars beside or under the picture
A left and a right stick (a base and a knob that follows the finger, clamped) write the pad's
thumb axes the way a physical stick does, and only while they own them, so a physical pad's
sticks are not zeroed by a tap on A. The layout follows where the compositor letterboxes the
picture: on a wide panel showing 16:9 the clusters go in the side bars, on a squarer panel
showing a wide picture they go in the bottom band, and only when neither bar is wide enough do
they overlay the picture as before. The activity hands the picture rectangle over whenever the
surface or the output size changes.
2026-09-22 20:41:14 -04:00
The412Banner 95cd642745 tonight's Bannerlator Linux fixes carried over: the client's GPU process gets its frames back, client-interface switches, Deck mode, a GPU gate before the download
- libpci: an empty file bound over /proc/bus/pci/devices, created at session start, so
  Chromium's GPU process stops dying on its way up and CEF stops falling back to SwiftShader
  (WinNative deff1ac6 via Bannerlator 8fb668d1: 44 -> 85 fps in the Big Picture library on a
  OnePlus 15; not measured here yet).
- Client interface, as toggles on the Performance page and lines in the device report:
  mesa_glthread, ZINK_DESCRIPTORS=lazy (now on by default) and MESA_NO_ERROR on; Steam Deck
  mode (-steamdeck -steamos3, the script builds the line) off.
- A non-Adreno device is told before the runtime download that a session would be sound over a
  black screen, and may still go ahead.

Not carried: Bannerlator's proot fixes live in its proot source, which this repo does not
build (the runtime tarball ships its own); its apk-proot -i guard is moot here (the apk carries
no proot); its session-log head keep is moot (Steam's logs are copied whole).
2026-09-22 20:12:54 -04:00
The412Banner 96d453e370 PROGRESS_LOG: r7 on main, r8 drawer + FEX presets 2026-09-22 18:51:32 -04:00
The412Banner 90ff23aea4 session: back key no longer knows the frame-generation dialog 2026-09-22 18:46:47 -04:00
The412Banner 63cde17bf4 session drawer in the front end's dress + FEX presets + landscape file manager
The drawer Back opens over a session slides in from the right and uses the same rows and
anchored menus as the settings pages: 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. Steam-only rows show only in a Steam session.

FEXCore presets, Bannerlator's table carried over (core/FexPreset): a Games row in the Steam
settings page and the drawer; the chosen preset's FEX_* variables go into the Steam session's
environment so the games the client launches inherit them. Default = FEX's own defaults, which
is what every session ran on before.

The file manager and the picker stay in landscape like the rest of the app.
2026-09-22 18:44:12 -04:00
The412Banner af3f377dfd front end: Setup rows join the rail's tracked column (the pill can reach Performance); the session drawer keeps its frame-generation dialog 2026-09-22 18:31:13 -04:00
The412Banner 8dd36b794e settings without a pop-up: pages in the pane with anchored menus under each value; frame generation, logs and offline open in place on the rail
The cog's settings window and the Performance dialog become pages in the front end's pane:
one row per setting, its value in a chip, and a small faded menu that opens under the chip
(SettingsWidgets: AnchoredMenu on a Popup with its own position provider, MenuItem, ValueChip,
Choice/Toggle/Multi/Action rows). One menu at a time; the page dims while it is open; the back
key, the rail and the page's Back all leave it. Steam and Desktop each get a Settings entry in
the rail that lights while its page shows, as does Performance under Setup. Frame generation,
Session logs and Start offline open their menu right on their rail row; the frame-generation
dialog is gone.
2026-09-22 18:28:33 -04:00
The412Banner 39272cf0f2 front end: Setup folds like Steam and Desktop (open until the runtime is installed); the desktop page says 'Linux desktop environment'; the emulator help link moves above the grid it was hiding 2026-09-22 18:10:19 -04:00
The412Banner 1ba803b1d5 session: the guest gets the device's time zone (the client's clock and logs were UTC) 2026-09-22 18:05:27 -04:00
The412Banner dab34d1ba9 PROGRESS_LOG: 720p default, builds r3/r4 2026-09-22 17:57:37 -04:00
The412Banner fb2a3d4dd8 session: the desktop caps at 720p by default too 2026-09-22 17:53:43 -04:00
The412Banner d1ced8706f session: the Steam client's display caps at 720p by default (desktop stays 1080); a chosen cap still wins 2026-09-22 17:49:29 -04:00
The412Banner 5d8fadec65 PROGRESS_LOG: motion front end + run-as-a-game builds r1/r2 2026-09-22 17:45:05 -04:00
The412Banner 546c063b0c game_mode_config: the attribute is allowGameDownscaling 2026-09-22 17:40:43 -04:00
The412Banner 06e67cd7d5 session: run as a game — game category + game_mode_config, sustained performance mode, fastest display mode, ADPF hint session on the compositor thread, 16 KB-aligned libraries
The manifest now declares the app a game (appCategory, isGame) with a game_mode_config that
welcomes Performance mode and refuses the OS-side FPS cap and resolution downgrade — 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 and the panel's fastest mode at its size,
tells GameManager it is in gameplay, and opens a PerformanceHintManager session over the
compositor thread fed with each presented frame's interval against the panel's period. All
version-guarded (6/7/12/13); the session log carries one 'perf:' line saying what took.

The app's own libraries link with 16 KB-aligned LOAD segments (loads unchanged on 4 KB kernels).
Six prebuilt PulseAudio libraries under jniLibs are still 4 KB-only and need a rebuild.
2026-09-22 17:39:04 -04:00
The412Banner 7ddfb57610 front end: qualify the play badge's AnimatedVisibility (the Column scope stole the overload) 2026-09-22 17:30:03 -04:00
The412Banner 19514c32b8 front end: motion system — gliding rail selection, unfolding sub-lists, page cascades, lifting tiles, session rise
The rail's selection is one pill that springs between rows; sub-lists unfold with
their children staggering in. A page change sinks the old page out and cascades the
new one in row by row over a blurred wash of the selection's own art. Tiles lift,
ring and shine when the pad lands on them and pop a play badge; the launch button
sweeps a sheen on focus and squashes on press. The session activity rises over the
front end and sinks back on finish. Every duration follows the system animator
scale, so 'no animations' in developer options snaps everything.
2026-09-22 17:27:25 -04:00
The412Banner d343b6f859 PROGRESS_LOG: checkpoint after the front-end merge 2026-09-22 14:52:13 -04:00
The412Banner 36cde7d1af docs: the front end and the first emulator game proven (README ledger, PROGRESS_LOG) 2026-09-22 13:32:57 -04:00
The412Banner 703f73610f The game's arguments reach the run-mode session
The activity forwarded mode, program and the Steam extras to the service and dropped
EXTRA_PROGRAM_ARGS, so RPCS3 opened with no game. device.txt names run mode too.
2026-09-22 13:23:45 -04:00
The412Banner 496ab5787a The game's arguments reach the run-mode session
The activity forwarded mode, program and the Steam extras to the service and dropped
EXTRA_PROGRAM_ARGS, so RPCS3 opened with no game. device.txt names run mode too.
2026-09-22 13:22:47 -04:00
The412Banner 7645db94d1 Front end: emulator tiles are square 2026-09-22 12:41:37 -04:00
The412Banner 6462b9b4d6 Front end: PS3 games as they really are on disk, and RPCS3's installed games
The scan goes one folder deeper (a dump comes as a folder named for the game with the image
inside), treats a folder with PS3_GAME as a disc, drops the ".dec" suffix, and lists what RPCS3
has installed on its own HDD (dev_hdd0/game/<ID> with a PARAM.SFO title, ICON0 art and an EBOOT
to boot) - a PSN package installed through RPCS3 is not in the ROMs folder at all.
2026-09-22 12:20:17 -04:00
The412Banner 4836558658 Front end: focus outline for pad navigation, art 25% larger, each emulator's own icon
The emulators' icons are bundled (the runtime keeps them as Papirus SVGs the app cannot draw):
the projects' own from their repositories, PPSSPP's from the runtime, RetroArch's flat icon
from libretro's assets. ROM tiles carry their emulator's icon.
2026-09-22 12:05:05 -04:00
The412Banner 78a7629eaa Front end: game art at 40% of the first cut 2026-09-22 11:52:16 -04:00