-
-
Save srlemke/73850b6dad8f98046a6852ac4df021f4 to your computer and use it in GitHub Desktop.
| #Tutorial Date: 21/05/2025 | |
| Follow everything stricly, otherwise wont work. Read every line of this guide. | |
| Nothing needs to be run as root, never. | |
| Best way ATM seems to be install per game. | |
| Preparation: | |
| Download Crewchief.msi | |
| Install wine, winetricks and protontricks on your distro! | |
| Info: | |
| It's always better to isolate the installations, beeter for housekeping, so we will place Crewchied in ~/crewchief_wine_prefix, | |
| this will be reused by all games. Personalizations are done per game, on the game vessel that steam alocates. | |
| To have a full restart you can always fully remove ~/crewchief_wine_prefix and retry. | |
| 1. Installig CrewChief dependencies, ignore mono related popups if they appear, first dotnet48: | |
| WINEPREFIX=~/crewchief_wine_prefix winetricks -q dotnet48 | |
| 2. Second Crewchief, launch Crewchief installer and install it normally, in the end Mark the option to "Launch Crewchief" after install. | |
| WINEPREFIX=~/crewchief_wine_prefix wine Downloads/CrewChiefV4.msi | |
| 4. With Crewchief open, do nothing, do not press "Start Crew Chief", just click on the 3 "Sound Pack Status" so the all the | |
| updated soudpacks are installed. Crewchief will ask to restart a few times which you can do untill all sound packs | |
| are up to date. Its a lot of restarts, like more than 20. | |
| 3. Launching into game vessel: | |
| protontricks-launch ~/crewchief_wine_prefix/drive_c/Program\ Files\ \(x86\)/Britton\ IT\ Ltd/CrewChiefV4/CrewChiefV4.exe | |
| In the window that opens, select your game. | |
| Click "Start Crew Chief", if a popup appears saying the game needs a plugin press ok, so it gets installed. | |
| If the popup does not appear, maybe its a good idea to clean the plugin directory of your game, so CrewChief can install | |
| the version it provides. On this vessel the audio pack is outdated again and it wont let update, quite annoying. | |
| A workaroud is to copy the ones we updated above. todo so, get your game ID with the command: | |
| grep name ~/.steam/steam/steamapps/appmanifest_* | |
| So in my case the gameid is: 2399420 | |
| So I will copy the audio downloaded on the PREFIX where it worked to the proton vessel, with: | |
| cp -r ~/crewchief_wine_prefix/drive_c/users/slemke/AppData/Local/CrewChiefV4/ ~/.steam/steam/steamapps/compatdata/2399420/pfx/drive_c/users/steamuser/AppData/Local> | |
| and | |
| cp -r ~/crewchief_wine_prefix/drive_c/users/slemke/AppData/Local/Britton_IT_Ltd ~/.steam/steam/steamapps/compatdata/2399420/pfx/drive_c/users/steamuser/AppData/Local> | |
| Crew chief options needd, otherwise only works the first time: | |
| -> Uncheck: "Use nAudio for playback" | |
| Start over: | |
| You can always delete the WINEPREFIX that the game runs in. | |
| If you want to "clear/uninstall" a game, run the installer with protontricks-launch, select the game on the popup | |
| and then later select uninstall on the crewchief installed: | |
| Z:\home\slemke\.steam\steam\steamapps\common\Le Mans Ultimate | |
| There is space for improvement, this guide shouls also serve to give you ideas. |
Also crew cheif cuts out 3 laps into a race! any idea why?
MY DOCUMENTS\CrewChiefV4\DebugLogs
Crew Chief - Active Profile: defaultSettings.json Version: 4.19.1.22
Game: Assetto Corsa Competizione
VOICE_OPTION: DISABLED
Last TrackName: indianapolis:track config
Last car name: GT3
Fuel multiplier: 1
Non-default Properties:
acc_launch_exe: 'Z:\home\gdalrymple.local\share\Steam\steamapps\common\Assetto Corsa Competizione\acc.exe' # ACC launch exe
enable_auto_detect: True # Enable game auto detect
enable_brake_damage_messages: True # Enable brake damage messages
limit_available_games: 'ACC,AMS,AMS2,ASR,ASSETTO_128CARS,ASSETTO_32BIT,ASSETTO_64BIT,ASSETTO_64BIT_RALLY,DIRT,DIRT_2,F1_2018,F1_2019,F1_2020,F1_2021,F1_2022,F1_2023,FTRUCK,GSC,GTR2,IRACING,LMU,MARCAS,PCARS_32BIT,PCARS_64BIT,PCARS_NETWORK,PCARS2,PCARS3,RACE_ROOM,RBR,RF1,RF2' # Limit available games
18:10:05.541 : Loading screen opened
18:10:05.574 : BaseFolder: MY DOCUMENTS\CrewChiefV4
18:10:05.574 : UserConfigFolder: C:\users\steamuser\AppData\Local\Britton_IT_Ltd
18:10:05.574 : LocalApplicationDataFolder: C:\users\steamuser\AppData\Local\CrewChiefV4
18:10:05.574 : Loaded profile 'defaultSettings'
18:10:05.576 : Set Assetto Corsa Competizione mode from previous launch
18:10:05.617 : Starting app. Version: 4.19.1.22
18:10:05.894 : Sound: Device name: AD107 High Definition Audio Controller Digital Stereo (HDMI) Guid: {0.0.0.00000000}.{140CF243-2BB8-4926-AC40-CFF2500BEFD8} DeviceWaveId -1
18:10:05.894 : Sound: Device name: Family 17h/19h/1ah HD Audio Controller Analog Stereo Guid: {0.0.0.00000000}.{2F52C5A0-1007-49DC-89BF-8083598C0529} DeviceWaveId -1
18:10:05.895 : Sound: Device name: PulseAudio Output Guid: {0.0.0.00000000}.{FD47D9CC-4218-4135-9CE2-0C195C87405B} DeviceWaveId -1
18:10:05.895 : Sound: Detected saved message audio output device: PulseAudio Output
18:10:05.895 : Sound: Detected saved background audio output device: PulseAudio Output
18:10:06.042 : Sound: nAudio output interface: WAVEOUT
18:10:06.096 : Sound: Using sound pack version 189, driver names version 143 and personalisations version 147
18:10:06.101 : Preparing sound effects
18:10:06.105 : Prepare sound effects completed
18:10:06.106 : Preparing driver names
18:10:06.405 : Prepare driver names completed
18:10:06.409 : Preparing personalisations for selected name Gabe
18:10:06.419 : Using spotter: Sammy
18:10:06.419 : Spotter Sammy has oval-specific sounds - these will be used for tracks marked as 'oval'
18:10:06.424 : Prepare personalisations completed
18:10:06.425 : Preparing voice messages
18:10:07.343 : Prepare voice message completed
18:10:07.347 : Finished preparing sounds cache, found 10363 driver names and 3048 sound sets. Loaded 450 message sounds
18:10:07.347 : 376 sounds have personalisations
18:10:07.397 : Cmnt: Reading driver name mappings
18:10:07.404 : Cmnt: Read 2164 driver name mappings
18:10:07.404 : Cmnt: Reading driver name mappings
18:10:07.406 : Cmnt: Read 425 driver name mappings
18:10:07.406 : Cmnt: Reading driver name mappings
18:10:07.407 : Cmnt: Read 9 driver name mappings
18:10:07.481 : Loading controller settings
18:10:07.481 : Load controller settings complete
18:10:07.483 : Boot trace 4
18:10:07.768 : Device Connected - Name: "Driving: Gudsen R3 Racing Wheel and Pedals" GUID: "9e573edc-7734-11d2-8d4a-23903fb6bdf7"
18:10:08.228 : Device Connected - Name: "Keyboard" GUID: "6f1d2b61-d5a0-11cf-bfc7-444553540000"
18:10:08.493 : Checking for updates
18:10:08.504 : Loading screen closed
18:10:08.589 : Interface Not Found (105)
18:10:08.966 : Got soundpack update data from primary URL: https://thecrewchief.org
18:10:09.065 : Current sound pack version 189 is out of date, next update is https://thecrewchief.org/downloads/update_36_sound_pack.zip
18:10:09.267 : Took 1.92s to lazy load remaining message sounds, there are now 9864 loaded message sounds
18:10:09.267 : Skipped 103 sweary sounds
18:10:09.338 : Current personalisations pack version 147 is out of date, next update is https://thecrewchief.org/downloads/update_19_personalisations.zip
18:10:09.553 : Current driver names pack version 143 is out of date, next update is https://thecrewchief.org/downloads/update_144_driver_names.zip
18:10:09.690 : Unable to auto-detect running game: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.MainWindow.autoDetectTimer_Tick (System.Object sender, System.EventArgs e) [0x000cc] in :0
18:10:20.440 : Using game definition Assetto Corsa Competizione
18:10:20.444 : Cmnt: ACC broadcast file 'MY DOCUMENTS\Assetto Corsa Competizione\Config\broadcasting.json' already has expected content
18:10:20.514 : Loaded 160 default car class definitions and 0 user defined car class definitions
18:10:20.597 : ThreadManager: Waiting for root threads to start...
18:10:20.597 : ThreadManager: Root threads started
18:10:20.611 : ACCSpotter enable
18:10:20.612 : Sound: Starting queue monitor
18:10:20.613 : Sound: Monitor starting
18:10:20.616 : Using NumberReaderEn for soundPackLanguage en
18:10:20.620 : Listening for buttons
18:10:21.102 : Sound: COMPOUND_smoke_test_chief=(radio_check/test)
18:10:21.422 : Polling for shared data every 100ms
18:10:21.433 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:21.437 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:21.437 : Initialising...
18:10:22.030 : Sound: COMPOUND_smoke_test_spotter=(radio_check_Sammy/test)
18:10:22.548 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:22.549 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:22.549 : Initialising...
Skipped 1 copies of previous message
18:10:24.758 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:24.760 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:24.760 : Initialising...
Skipped 1 copies of previous message
18:10:26.969 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:26.970 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:26.970 : Initialising...
Skipped 1 copies of previous message
18:10:29.182 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:29.183 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:29.183 : Initialising...
Skipped 1 copies of previous message
18:10:31.395 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:31.396 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:31.396 : Initialising...
Skipped 1 copies of previous message
18:10:33.608 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:33.610 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:33.610 : Initialising...
Skipped 1 copies of previous message
18:10:35.821 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:35.823 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:35.823 : Initialising...
Skipped 1 copies of previous message
18:10:38.035 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item (System.Int32 index) [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at System.Diagnostics.ProcessModuleCollection.get_Item (System.Int32 index) [0x00006] in <99699849cf0a4a6da589f26e3734d419>:0
at System.Diagnostics.Process.get_MainModule () [0x00031] in <99699849cf0a4a6da589f26e3734d419>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.get_MainModule()
at CrewChiefV4.Utilities.IsGameRunning (System.String processName, System.String[] alternateProcessNames, System.String& parentDir) [0x00015] in :0
18:10:38.037 : System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Stream has been closed'.
at System.IO.FileStream.get_Length () [0x0000d] in <2e6290bc35d64d219e4c90c0d93f3982>:0
at CrewChiefV4.Log.<_Log>g__writeErrorReport_discardIfFileLocked|24_1 (System.String filePath, System.String _log) [0x00047] in :0
at CrewChiefV4.Log.<_Log>g__writeToErrorLog|24_0 (System.String _log, CrewChiefV4.Log+<>c__DisplayClass24_0& ) [0x000ba] in :0
18:10:38.037 : Initialising...
Skipped 1 copies of previous message
18:10:40.248 : EXCEPTION: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Did you do this one:
-> Uncheck: "Use nAudio for playback"
(I'm not really using CrewChief anymore)
its already checked, though i just did a re install, so ill see if the problem persists. What do you use instead of crew cheif ?
None, usually with good overlays I can have all the needed info, in the end, what crew chief does is transform shared memory data into voice, that same shared memory data can also be used by overlays, but things change, cannot sat say that I will not use anymore.
What overlays do you use on linux?
I usually "mount" my own on simhub, grabbing parts from other dashes, then I make it a dashboard and run an android phone that I have on the rig. Eventually I will share it somewhere as I also need to credit the authors of the bits I did take.
i fixed it! forgot to run protontricks-launch.