Skip to content

Latest commit

 

History

History
118 lines (66 loc) · 13.4 KB

GUIDE.md

File metadata and controls

118 lines (66 loc) · 13.4 KB

Console Mode guide

Details that don't fit in the README.

English · Português (Brasil) · Español · Deutsch · Français · Русский

Modes and restore

Mode On exit
Steam Big Picture Automatic restore (app stays in the tray)
Playnite fullscreen Automatic restore (app stays in the tray)
Xbox mode Manual — use Restore now, the tray menu, or reopen the window
Custom app Automatic restore when the app (or the process you chose to watch) closes

If the app closes or the PC shuts down in the middle of a session, the next time Console Mode opens (also at Windows sign-in, if it starts with Windows) it restores everything the session changed: displays, audio, RTSS, desktop icons and the pointer, and says so.

Custom app opens any .exe you pick (RetroArch, another launcher…) from its own folder, with optional arguments, and moves its window to the game screen. The session ends a few seconds after that process closes. You can add as many as you like: each one is a tile on Home with its program's icon (+ Add app at the end of the row), and System changes or removes the selected one. If the exe only starts another program and exits (a launcher stub), Console Mode follows that program by itself; Process to watch is only needed when it guesses wrong (type the real program's process name there). If the watched process never shows up, the session stays until you end it (hold Start + Select, the session menu or the tray).

Browser (JoyChromium) is pinned in the session menu, right under the ControlFS file explorer: JoyChromium, the team's TV browser driven with a controller, opens full screen over the game on the session screen. If it isn't installed, the first press downloads its newest release (checked against GitHub's SHA-256) and installs it, and the next press opens it. Going back to the PC while it's still open takes it out of full screen and leaves it as a window, tabs and all.

You can also restore anytime from the tray (Restore setup / Show window). With black overlays, ESC dismisses the curtains.

The session menu has two ways out. Back to the PC ends the session and puts screens, resolution, HDR, audio and the FPS limit back as they were; the app stays in the tray. Exit Console Mode does the same and then closes the app, so the controller shortcuts stop until you open it again. The first time the menu opens, it offers a tour that explains each option; to see it later, press Y (△ on PlayStation) or F1 in the menu, or use System → App → Session menu tour.

The menu also works outside console mode, to use the PC from the couch without starting anything: with Console Mode open (even just in the tray), the menu shortcut, the tray icon or consolemode://menu opens it on the game screen, if it is on, or on the primary one. There you can switch windows, change the volume, resolution, audio output and HDR, open ControlFS and JoyChromium, hide the pointer and drive the mouse with the controller. What you change stays that way until changed again, since there is no session to undo; the FPS limit and counter only show in a session. If the shortcut gets in the way in a game, turn off System → Controller → Session menu outside console mode (the tray still opens the menu).

The Task View shortcut does from the controller what Win + Tab does: it opens Windows' Task View with all your open windows, in a session or not. While it is open, the D-pad or the left stick picks a window (holding repeats), A opens it and B closes the view; the shortcut again closes it too. It comes on as Select + X; change it or turn it off in System → Controller → Controller shortcut for Task View (the Xbox button alone works too, held, if it isn't the open-Console-Mode shortcut). The first three times, a notice shows the buttons before the view opens, since nothing shows on top of it. With an Xbox controller, Windows itself moves the selection; with a PlayStation controller, which Windows doesn't understand there, Console Mode does (turn off Move around Task View with a PlayStation controller if you use DS4Windows or Steam Input and moves repeat).

The interface

Console Mode has one interface, made like a console's: it fills the screen and works with an Xbox or PlayStation controller, the mouse or the keyboard (click a tab or use Page Up / Page Down; Enter and Esc work as A and B). The first time you open it, a guided tour walks through the tabs, the launchers, the play button, the screens, the quick settings and the controller shortcuts; each stop moves on by itself once there has been time to read it (the bar under the card shows how long is left), A goes on at once, B skips it. To see it again: System → App → Tutorial. While the app loads it shows an opening with its logo and an entrance sound; any button skips it, now and then it is, as a surprise, one inspired by the Xbox 360 or the PS4, with that console's sound; System → App picks a style (which ends the surprises), plays it right away, and turns it off, or just its sound.

Home puts your launchers in a row at the top (Steam Big Picture, Playnite, Xbox mode): A on one picks what opens, and Play now below starts it. The + tile at the end adds an app of your own; on one of those, ☰ (OPTIONS on PlayStation) or a right click opens its menu, with Remove from Home. The line under the name says where you will play and what changes (audio, resolution, FPS, HDR, VRR); the round button next to Play now opens Session, with the screens and quick settings.

The System tab lists its categories on the left (Gaming display, When entering console mode, Controller, TV, Optional extras, App, Shortcut, help, and data, More apps from the developer). Moving over a category shows its options on the right; A or right goes into them, and B or left goes back to the categories.

In System → Controller, choose the button layout: Automatic, Xbox or PlayStation. The preview and shortcut labels follow the choice, which is saved when you close the app. This changes the displayed symbols; the controller's inputs keep their existing mapping.

The System tab holds every setting, including controller shortcuts, Playnite, custom FPS, the FPS counter's layout, the custom app's arguments, the diagnostics report and the data folder. The values stay saved after restarting the app.

Open the shortcut action you want to configure, choose Set or Change, hold the desired combination on one controller and release the buttons. Remove disables that shortcut. During capture, controller buttons do not navigate the interface; use Cancel or Esc to stop capture. Outside capture, B leaves the editor. Address and custom FPS fields accept keyboard input.

When returning from Big Picture, Send Steam to the tray when going back to the PC closes the client window while keeping Steam running. With the option off, the desktop client is left open. Steam windows are left alone when a game is running or its state cannot be checked.

Changing the main display can make Windows reshuffle the desktop icons. Put desktop icons back in place (on by default) saves where they are before the session and puts them back after the desk is restored. It does nothing when the desktop's Auto arrange icons is on, since Windows lays them out itself then.

Move the mouse pointer out of the way (on by default): when the launcher shows up on the TV, the pointer goes to the bottom-right corner of the game screen, and again a few seconds later because Steam recenters it while Big Picture opens. Going back to the PC puts it back where it was. Hiding the pointer altogether is still a choice in the session menu.

Wake the PC with the controller lets the Xbox Wireless Adapter, the Bluetooth radio or a wired controller wake the PC from sleep with the controller's center button. Turn on asks Windows for administrator permission and ticks Allow this device to wake the computer on those devices. It can't wake a PC that is shut down or hibernating, and some PCs cut power to Bluetooth while asleep. Together with Enter when a controller connects, the PC wakes straight into console mode.

Per-game profiles give each Steam game its own resolution, HDR, FPS limit and audio output. With the game running, open the session menu and pick Game profile → Save the current settings for…: whatever the game screen uses at that moment is saved. Next time that game starts during a session, Console Mode applies it, and when the game closes the screen goes back to how it was. The game is detected from Steam, whether it was opened from Big Picture, Playnite or the Xbox app. The saved profiles are listed in System → When entering console mode → Per-game profiles, where you can delete them.

Local control API

consolemode:// links fire and forget. Tools that need an answer — a remote-control agent running as a Windows service, a Stream Deck plugin showing whether console mode is on — can use the named pipe \\.\pipe\ConsoleMode.Control while the app is running: send one JSON line, get one back.

→ {"cmd":"status"}          // or "start", "stop", "show"
← {"ok":true,"active":true,"restoring":false,"mode":"xboxMode","version":"1.5.0"}

start, stop and show do exactly what the matching consolemode:// link does, then reply once the app has settled (ok:false with an error if console mode didn't start or the restore didn't finish). status only reads. Only the signed-in user and LocalSystem can connect; nothing is exposed to the network.

Optional extras

HDR

Enable HDR on the focus monitor while console mode is active. It is turned back off (or restored) when you exit.

VRR

Console Mode can toggle the Windows VRR optimize setting. For best results, also enable VRR / G-SYNC / FreeSync in your GPU control panel (NVIDIA or AMD).

FPS limit (RTSS)

Cap the global frame rate while console mode runs (helpful on a 60 Hz TV). Requires RTSS installed and running. The previous limit is restored when you exit.

Limitations

  • Multi-monitor layouts vary; on some setups restore may need a second try from the tray
  • Xbox mode does not detect when fullscreen ends — restore manually
  • The FPS limit is global (RTSS limitation), not per display
  • The WinUI 3 build currently requires Windows to compile (net8.0-windows)

Troubleshooting

Desktop layout did not restore

Open the tray menu and choose Restore setup. If the layout still looks wrong, choose Restore setup again after Windows finishes applying the monitor change. You can also reopen the window from the tray and restore manually.

Audio stayed on the previous output

Check that the target output is connected and available in Windows before starting console mode. For HDMI/TV outputs, reconnecting the cable and starting the mode again may be necessary.

The controller shows up but does nothing (DualSense / DualShock)

Open System → Shortcut, help, and data → Test controller: it shows live what Windows delivers from each pad. If the reading stays empty while you press buttons, Steam is most likely capturing the pad (Steam running with PlayStation support in Steam Input turns it into keyboard/mouse on the desktop). Close Steam, or turn off PlayStation support in Steam Input, and test again. If the reading still shows nothing, use Copy diagnostics and paste it into the feedback form.

HDR or VRR did not change

Confirm that the focus monitor supports the feature and that HDR is enabled in Windows. For VRR, also enable G-SYNC or FreeSync in the GPU control panel when applicable.

Build from source (Windows)

Requires Visual Studio 2022 with the Windows application development workload, or the .NET 8 SDK plus the Windows App SDK.

# Downloads rtss-cli, then builds both packages
.\build\Publish-ConsoleMode.ps1 -Version 1.4.0

Output: dist\ConsoleMode-Portable-x64.exe and dist\ConsoleMode-Setup-x64.exe (the installer needs Inno Setup 6: winget install JRSoftware.InnoSetup). Open ConsoleMode.sln to debug.

To release, merge the release PR into main, then run Actions → Release → Run workflow on main with the version (like 1.4.0, or 1.4.0-beta.2 for a pre-release) and publish ticked: the workflow creates the tag and the GitHub release, builds both files and publishes them, and the app picks them up as an update. Without "publish" it only builds and uploads the files as an artifact. Pushing a v* tag still works and does the same. With draft ticked too, the release is created as a draft: only the repository's maintainers see it, the app offers nothing, nothing goes to winget and the tag isn't created yet, so the files can be tried first; publishing the draft on GitHub makes it a normal release (and sends a stable one to winget). legacy takes a branch (release/1.7-legacy) to build and attach to the same release as ConsoleModeLegacy-*.exe: Console Mode 1.6.2's interfaces, frozen, which the update check never offers.

The previous PowerShell + WPF implementation (1.2 and earlier) lives on the legacy branch and is not used by the WinUI app.