github gauthierpiarrette/highball v0.9.38
Highball 0.9.38 (beta)

pre-release4 hours ago

A game's recipe settings now apply to that game only.

A recipe could set an environment variable for a game, and until now that variable reached every program in the environment. The Sims' recipe sets one its Vulkan renderer needs, and on the Wine 11 engines that same variable stopped DXVK's Direct3D 9 from drawing for every other game in the environment (Half-Life 2 never showed a window, Five Nights at Freddy's never drew). Six other recipes set variables the same way. Now a game recipe's variable is carried by that game's launches and nothing else, on Steam and on Epic. An environment that already has such a variable from an earlier version moves it to the game the next time that game is played, and the activity log says so. Launcher recipes keep their environment-wide settings, since those are for the client and what it starts.

Steam restarts when the client was started for a game with different variables, so the next game never inherits them.

On the Wine 11 engines r11 and r12, a Direct3D 9 game in the DXMT or D3DMetal mode now uses Wine's own Direct3D instead of DXVK's, which on that tree ran Half-Life 2 at 17 fps where Wine's own gives 131, and Five Nights at Freddy's at 40 where the default engine gives 76. The engine says so in its manifest and engines already installed pick the rule up on the next start. The DXVK mode itself is unchanged, so a game that needs DXVK's Direct3D 9, like CS:GO Legacy, keeps it.

Frame generation can use a Lossless Scaling copy from anywhere. A button under the frame generation setting picks its lsfg-vk.dll, for example from a CrossOver bottle, so Steam and Lossless Scaling need not be installed a second time in Highball. It records the same LSFGM_DLL_PATH the environment editor accepts by hand, and Clear removes it.

A game's page lists, under Advanced, the variables its fix scoped to it, so what a game gets on top of the environment's own settings is visible.

A DLL override typed into the environment variables box, winhttp=n,b or mfplat=, is pointed out under the box, with a button that moves it into the DLL overrides field where Wine reads it. Two reports in one day had one in the wrong box.

A new dependency, Controllers through SDL, switches Wine's controller driver to SDL only, for a gamepad a game does not recognise or that shows up twice. It sets the two registry values an Elden Ring player found by hand (highball-db#228).

ContractVille runs on the Wine 11 engine and never leaves its loading screen on the Wine 10 one, so its database fix names the Wine 11 engine and DXMT, and Highball offers the engine on Play (highball#202).

The library can show the Steam games you own, not only the installed ones. Switch the Installed chip off to see them, and Install on such a game hands it to Steam's own install dialog. The default view is unchanged. Thanks to zxkevinxz for the contribution (#205).

Don't miss a new highball release

NewReleases is sending notifications on new releases.