Skip to content

About

Unofficial guide and scripts for running the No Hesi mod for Assetto Corsa on Linux under Proton

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

No Hesi on Linux

An unofficial guide and scripts for running the No Hesi mod for Assetto Corsa under Proton. This project isn't affiliated with or supported by No Hesi, Kunos Simulazioni or Custom Shaders Patch (CSP).

What works

No Hesi Launcher, including its Steam connection ✅ Works
Joining public servers with Quick Play ✅ Works
Encrypted No Hesi cars and maps ✅ Works on Proton 10, not on Proton Experimental
DualSense controller ✅ Works with some setup
Score submission and leaderboards ❌ HUD says "You're playing offline" (details)

You can drive on the servers, but your scores aren't saved. This is the one big problem still open, and help is welcome.

How far this is tested

This has run on one machine: CachyOS with KDE on Wayland, a Radeon RX 9070 XT with Mesa 26.2.5, Steam's Proton 10.0, launcher 1.0.10 and CSP 0.2.11.

  • Installer: run start to finish on a clean Proton 10 prefix, in an isolated test setup.
  • Symbol map: generated by the script from the real game, and identical to the map used for real play.
  • Launcher without patching: on that machine, the unmodified launcher joined a public server through Steam for a session of about 30 minutes, with no crashes or kicks. The first sign-in and Steam link there were done with an earlier version that patched the launcher file. On a clean prefix, the current method was tested up to the launcher's first screen.

Please open an issue with what you find on other setups.

Install

You'll need native Steam (the Flatpak version isn't covered here) and Assetto Corsa installed.

1. Install the requirements. In Steam's library, under Tools, install Proton 10.0 and Proton 9.0. Then install these with your package manager:

  • winetricks, python3, curl and unzip
  • A MinGW compiler: mingw-w64-gcc on Arch, gcc-mingw-w64-x86-64 on Debian or Ubuntu, mingw64-gcc on Fedora

2. Set the game to Proton 10. Go to Assetto Corsa > Properties > Compatibility, tick Force the use of a specific Steam Play compatibility tool and choose Proton 10.0. Start the game once, then quit.

If you've run the game on a newer Proton, Proton 10 won't be able to use that prefix. Back up anything you want from steamapps/compatdata/244210/pfx/drive_c/users/steamuser/Documents/Assetto Corsa, delete steamapps/compatdata/244210, and start the game again.

3. Run the installer. Use your own resolution and refresh rate:

git clone https://github.com/aDefaultUser/nohesi-linux.git
cd nohesi-linux && ./install.sh --resolution 1920x1080@60

It takes a few minutes and picks the most recent Steam login on your PC. If that isn't the account that owns the game, add --steam-id <your SteamID64>.

4. Set the launch options. Go to Assetto Corsa > Properties > General and set Launch Options to the line the installer printed:

/home/YOUR_NAME/.local/bin/nohesi-launcher %command%

5. Set up No Hesi. Press Play in Steam and the No Hesi Launcher opens. Read and accept its license, sign in, link your Steam account and let it install its content, including CSP.

6. Make the symbol map. Close the launcher, then run this from the nohesi-linux folder. The game may open a window for a minute, then close by itself.

./make-symbol-map.sh

7. Play. Press Play in Steam and join a server from the launcher. Always join through the launcher, because starting the game directly with an old race.ini gives "Failed to launch the race".

If something goes wrong, see troubleshooting.

What the files do

No Wine or Proton source patches are needed, and No Hesi's launcher file isn't changed.

File What it does Why it's needed
patches/webview2-flags.c A small stand-in for Microsoft's msedgewebview2.exe that starts the real one with --no-sandbox --disable-gpu --in-process-gpu Without those flags the launcher is a black window: WebView2's GPU process crashes on Wine's DirectComposition stub and page processes can't start sandboxed. The launcher sets its own browser flags and ignores the usual overrides
patches/prefix-settings.reg Registers WebView2, sets its Windows version to 8, loads CSP's dwrite.dll in the game, and sets the active Steam user Without the Steam user, the launcher says "Sign in to Steam" even when you're signed in
scripts/nohesi-launcher Starts No Hesi's launcher instead of the game's when Steam starts the game, caps the frame rate at 120, and points the launcher to WebView2 and the game Keeps Steam's connection to the game. Uncapped frames made the whole desktop lag on the test machine
make-symbol-map.sh Runs the game once on Proton 9 in a temporary prefix, so CSP writes cache/memory_layout.bin Proton 10 can't read acs.pdb, so CSP reports "no symbols" without this map
patches/video.ini Game video settings template The launcher doesn't create this file, and without it the game fails with a "UI IMGUI final" error

The installer also downloads these from their original sources, since they can't be redistributed here:

  • The WebView2 runtime, from Microsoft
  • The No Hesi Launcher, from No Hesi
  • d3dcompiler_47, through winetricks, because Wine's compiler rejected CSP's weather shaders
  • The fonts CSP expects, such as verdana.ttf, from acstuff.club

Why Proton 10 and not Experimental

No Hesi's cars and maps use CSP's encrypted model format. On Proton Experimental (Wine 11) they silently fail to decrypt, so the world turns blue and untextured while unencrypted tracks look fine. The same content renders correctly on Proton 9 and 10. Why Wine 11 fails is still unknown.

No Hesi's terms

Please read the EULA and Terms of Use yourself. This summary isn't legal advice and reflects the versions dated September 2026:

  • Modifying the launcher: EULA §5 bars modifying or reverse engineering it. This project leaves the launcher file as No Hesi ships it, and adds its flags when Microsoft's WebView2 starts instead.
  • Linux and Proton: neither document mentions operating systems, Wine, Proton or compatibility layers.
  • Support: Terms §12.2 says support doesn't cover third-party modifications, so please don't ask No Hesi to support this setup.
  • Your account: Terms §4.5 lets No Hesi suspend or close accounts at any time, for any reason. Nothing here can rule that out, so use it at your own risk.

Good to know

  • Frame rate: to change the 120 FPS cap, put DXVK_FRAME_RATE=180 before the wrapper's path in the launch options.
  • Security: the flags turn off the sandbox for the launcher's embedded browser, because its page processes can't start sandboxed under Wine. A page that managed to exploit that browser would have fewer barriers around it.
  • Assetto Corsa updates: the symbol map is tied to the game build, so run make-symbol-map.sh again after an update.

Uninstall

  1. Clear the launch options and the Proton override in Steam.
  2. Delete ~/.local/bin/nohesi-launcher and ~/.local/share/nohesi-launcher.
  3. To remove everything from the prefix, including your game settings, delete steamapps/compatdata/244210.
  4. Delete cache/memory_layout.bin and content/fonts/system from the game folder if you don't want them.

License

The scripts and docs here are under the MIT License. The software they download has its own terms.

About

Unofficial guide and scripts for running the No Hesi mod for Assetto Corsa on Linux under Proton

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages