]> vilimpoc.org git repositories - bl2-split/blobdiff - README.md
Simultaneous launch + CAPS mouse-wiggle banner, move windows after 30s; fix kill status message
[bl2-split] / README.md
index bf009c772380cfb79981d9897b11b1429baae718..0e9eed8cbf092297407b90d3a8dc3ebee24706fb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,6 +23,8 @@ their own controller, save, and screen. Tested on **Arch + KDE Plasma 6 (Wayland
   ```
   sudo pacman -S umu-launcher qt6-tools bubblewrap libarchive curl binutils
   ```
+- *Optional:* `gamemode` (+ `lib32-gamemode`) — the script runs each game under
+  `gamemoderun` if present (performance CPU governor while playing). Not required.
 - Two Xbox controllers (any two distinguishable pads).
 
 ## Setup
@@ -48,9 +50,11 @@ their own controller, save, and screen. Tested on **Arch + KDE Plasma 6 (Wayland
    ```
    ./bl2-splitscreen.sh run
    ```
-   With two monitors each game opens fullscreen on its own display; with one, they
-   tile side-by-side. In-game: **Player 1** *Play → host over LAN*; **Player 2**
-   *Play → Join → pick the LAN game*. `Ctrl-C` kills both.
+   Both instances launch at once. While they load, **wiggle the mouse** until both
+   reach the main menu (the script prints a loud reminder), and leave the windows
+   alone — after ~30 s the script moves each onto its screen (fullscreen per monitor
+   with two displays, side-by-side with one). In-game: **Player 1** *Play → host over
+   LAN*; **Player 2** *Play → Join → pick the LAN game*. `Ctrl-C` kills both.
 
 ## Commands
 
@@ -118,10 +122,22 @@ So another person clones the repo, forces Proton on their own BL2 in Steam, runs
   `rm p{1,2}/game/Binaries/Win32/steam_settings/configs.main.ini`
 - **They don't see each other on LAN:** Player 1 hosts first (the script staggers
   launches). Discovery uses `custom_broadcasts.txt` (localhost).
-- **The 2nd instance takes ages to reach the menu:** the two share a DXVK shader
-  cache (`dxvk-cache/`) so the 2nd reuses the 1st's shaders; the first-ever run
-  still compiles them. If it's still slow, raise the gap between launches so the 1st
-  is fully loaded before the 2nd starts: `STAGGER=45 ./bl2-splitscreen.sh run`.
+- **The 2nd instance is visible but stuck on the loading screen — and only advances
+  when you jiggle the mouse.** Root cause: BL2's `bPauseOnLossOfFocus=TRUE` — the
+  game **pauses itself whenever its window isn't focused**. In split-screen only one
+  window is focused at a time, so the unfocused instance freezes until an input event
+  wakes it. `setup`/`run` patch each prefix's `WillowEngine.ini` to
+  `bPauseOnLossOfFocus=FALSE` so every instance keeps running unfocused. (This was
+  *not* CPU scaling, entropy, or window occlusion — those were dead ends.) The
+  instances also share a DXVK shader cache so the 2nd reuses the 1st's compiled
+  shaders; `STAGGER=45` further separates their loads if a cold first run is slow.
+- **Two soundtracks at once:** each instance sets `bMuteAudioWhenNotInFocus=TRUE`, so
+  only the focused window plays audio — the sound follows whichever instance you're
+  focused on, instead of both playing together.
+- **In-game "Quit Borderlands 2 → Yes" does nothing / hangs:** the game's shutdown
+  path stalls under Goldberg (Steam-networking cleanup, worse with offline mode).
+  Don't use in-game Quit — close with **`./bl2-splitscreen.sh kill`** or **Ctrl-C**
+  in the run terminal (safe: you're at the menu, nothing is saving).
 - **Ctrl-C / kill left something running:** `./bl2-splitscreen.sh kill` tears down
   the whole game + Proton/Wine tree.
 - **A window won't sit on its monitor:** re-run `./bl2-splitscreen.sh tile`; raise