ACC Results Companion

Misc ACC Results Companion 1.24.8

Login or Register an account to download this content
Unfortunately, it looks like the database has been corrupt since at least 21st February (as far as the logs go back), possibly longer. It is too corrupted to fix with the manual method (via DB Browser). There is a commercial tool to recover SQLite databases but the cost is too steep to be viable.

There's 2 ways forward
  • The last resort is to delete ACCResults.DB and start again. Unfortunately, this means you lose all history, but you should be able to record sessions going forward
    • There is a possibility to get some information back though. If you go to the Backups page, this points to exported files of sessions. I haven't tested this for a very long time but you should be able to replay the backups to get sessions back into the DB. I'm just setting up a clean environment now and I'll see if this still works
  • The other option is to try to work out when the corruption occurred and go to a backup before that (ie earlier than 21st Feb). If you don't have your own backups, look in <Documents>\ACCResults\Backup\DB and copy an earlier version back to <Documents>\ACCResults\ACCResults.DB. You might have to try a few backups until you find a stable one.
@Richiiii - Yes...replaying backups still works. Your best best will indeed be deleting just the database (when ARC is not running) then replaying the backups. Go to the help page (F1 from the main screen or press the ? button) and go to the Backups page.

You can select multiple backups to replay at a time. If you select a huge number (eg all of them), it might be best to set this running overnight. Note, the sessions page doesn't refresh automatically at the moment from replayed backups - press the Clear button on the sessions page and it will reload those processed so far

Good luck!
 
Last edited:
I have a bug for you.
car/track history tab doesn't give me optimal lap time. (optimal lap time in session tab works just fine)
here is log with warning i got:
[00000001-00,1|03,2] 2022-04-12 13:42:33 DB_READ OLVControlCarTrackHistory.populateCarTrackDetails : Request Car/Track history for car Lamborghini Huracan GT3 EVO on track Misano World Circuit
[00000001-00,1|03,2] 2022-04-12 13:42:33 DB_READ DBReaderDelegate.getCarTrackDetails : Starting thread to get car track details
[00000001-00,1|03,2] 2022-04-12 13:42:33 WARNING OptimalLapTime.GetOptimalLap : No optimal lap for 0 laps with car id -1 and filtering by player=False - no laps supplied
[00000022-00,1|03,2] 2022-04-12 13:42:33 DB_READ DBReaderDelegate.getCarTrackDetailsThread : Retrieving car/track details
[00000001-00,1|03,2] 2022-04-12 13:42:33 DB_READ OLVControlCarTrackHistory.populateCarTrackDetailsResponse : Processing Car/Track history - 11 laps
is it because it try to get times before data is ready?
 
Hi Doug!
thanks for your great work!

I tgink i have the same problem as mentioned some question above..
couldnt write new sessions to db.
dont know why your Db savefolder is mentioned...:


[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR LoggingSQLiteCommand.ExecuteNonQuery : INSERT INTO session_drivers (session_id, car_id, driver_id, driver_first_name, driver_last_name, driver_short_name, driver_player_id, player_name, category, nationality, steam_id, moniker) VALUES (@session_id, @car_id, @driver_id, @driver_first_name, @driver_last_name, @driver_short_name, @driver_player_id, @player_name, @category, @nationality, @steam_id, @moniker)
@session_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@car_id=0
@driver_id=0
@driver_first_name=Carsten
@driver_last_name=steve
@driver_short_name=PLY
@driver_player_id=1
@player_name=$PLAYER_NAME$
@category=Platinum
@nationality=Germany
@steam_id=
@moniker=
[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.buildSeason : *** SHM Santity check - Season Updated 2022-04-19 22:27:46, Track monza
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR ResultsDBWriter.storeSessionLeaderBoard : Error saving leaderboard for session 14d1e8ec-dd14-465c-a04a-2ec423e1df3f - unable to open database file
unable to open database file
bei ACCResults.DBModel.LoggingSQLiteCommand.ExecuteNonQuery() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\LoggingSQLiteCommand.cs:Zeile 63.
bei ACCResults.DBModel.ResultsDBWriter.storeSessionLeaderBoard(SQLiteTransaction myTrans, ACCResultsFile session, ACCLeaderBoardLine leaderBoard, Int32 currentPosition) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 513.
Caused by :
bei ACCResults.DBModel.ResultsDBWriter.storeSessionLeaderBoard(SQLiteTransaction myTrans, ACCResultsFile session, ACCLeaderBoardLine leaderBoard, Int32 currentPosition) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 513.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 343.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

[0000000F-00,2|19,6] 2022-04-22 23:58:53 BROADCAST** ACCBroadcastInterface.ResetSession : Clearing all maps for new session
[00000008-00,2|19,6] 2022-04-22 23:58:53 DEBUG ResultsDBWriter.processIndividualSessionDB : Setting player race # as 0 with car Id 0
[0000000F-00,2|19,6] 2022-04-22 23:58:53 BROADCAST BroadcastingViewModel.ClearCars : [Conn 1 : 8f68d1bd-5b68-4a9e-bf80-3cc87654c833]: Clearing 1 cars from the BroadcastVM
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR LoggingSQLiteCommand.ExecuteNonQuery : INSERT INTO session_def (session_id, track_id, session_date_time, season_id, date_hour, date_minute, race_day, time_multiplier, session_duration, round, session_type, round, session_type, is_wet_session, type_id, manually_added, event_online_reference, total_time, lap_count, session_position, ideal_line_grip, outside_line_grip, marbles_level, puddles_level, wet_dry_line_level, wet_level, ambient_temperature, road_temperature, wind_speed, wind_direction, cloud_level, rain_level, is_dynamic, ambient_temperature_mean, player_race_number, is_online, player_ecu_mode, recorded_by, peak_acceleration, max_speed, fuel_per_lap, position_start_session, dry_tyre_name, wet_tyre_name, replay_start_time, pre_session_time ) VALUES(@session_id, @track_id, @session_date_time, @season_id, @date_hour, @date_minute, @race_day, @time_multiplier, @session_duration, @round, @session_type, @round, @session_type, @is_wet_session, @type_id, @manually_added, @event_online_reference, @total_time, @lap_count, @session_position, @ideal_line_grip, @outside_line_grip, @marbles_level, @puddles_level, @wet_dry_line_level, @wet_level, @ambient_temperature, @road_temperature, @wind_speed, @wind_direction, @cloud_level, @rain_level, @is_dynamic, @ambient_temperature_mean, @player_race_number, @is_online, @ecu_mode, @recorded_by, @peak_acceleration, @max_speed, @fuel_per_lap, @position_start_session, @dry_tyre_name, @wet_tyre_name, @replay_start_time, @pre_session_time )
@session_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@track_id=paul_ricard_2021
@session_date_time=2022-04-22 23:56:43
@season_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@date_hour=16
@date_minute=41
@race_day=0
@time_multiplier=0
@session_duration=0
@round=0
@session_type=11
@is_wet_session=0
@type_id=0
@manually_added=2
@event_online_reference=-1
@total_time=-1
@lap_count=1
@session_position=1
@ideal_line_grip=0
@outside_line_grip=0
@marbles_level=0
@puddles_level=0
@wet_dry_line_level=0
@wet_level=0
@ambient_temperature=18,0
@road_temperature=30,0
@wind_speed=1,6739612478920741989881956155
@wind_direction=0,0
@cloud_level=0,30000001192092898
@rain_level=0,0
@is_dynamic=0
@ambient_temperature_mean=24,0
@is_online=0
@ecu_mode=0
@recorded_by=UDP
@peak_acceleration=0
@max_speed=0
@fuel_per_lap=0
@position_start_session=0
@dry_tyre_name=DHE
@wet_tyre_name=WH
@replay_start_time=2022-04-22 23:14:18
@pre_session_time=2022-04-22 23:18:50
@player_race_number=75
[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.isAccLive : ACC Status changed. Was ACC_PAUSE, now ACC_OFF
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR ResultsDBWriter.storeSessionDetails : Error storing session 14d1e8ec-dd14-465c-a04a-2ec423e1df3f - unable to open database file
unable to open database file
bei ACCResults.DBModel.LoggingSQLiteCommand.ExecuteNonQuery() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\LoggingSQLiteCommand.cs:Zeile 63.
bei ACCResults.DBModel.ResultsDBWriter.storeSessionDetails(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, ACCLeaderBoardLine currentLeaderBoard, Dictionary`2 carIdModels, Int32 playerRaceNumber, Int32 sessionPosition, Boolean serverFile, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 780.
Caused by :
bei ACCResults.DBModel.ResultsDBWriter.storeSessionDetails(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, ACCLeaderBoardLine currentLeaderBoard, Dictionary`2 carIdModels, Int32 playerRaceNumber, Int32 sessionPosition, Boolean serverFile, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 780.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 381.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.isAccLive : No ACC session active
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR FileUtils.serialiseSessionToFile : Error writing out backup files for Hotlap with car BMW M4 GT3 at track paul_ricard_2021 : Die Datei "C:\Users\carsc\Documents\ACCResults\Backup\Config\seasonEntity.BMW M4 GT3_paul_ricard_2021_Hotlap_14d1e8ec-dd14-465c-a04a-2ec423e1df3f.json" konnte nicht gefunden werden.
bei ACCResults.FileUtils.serialiseSessionToFile(ACCResultsFile session, ACCSeason season, String carName) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\Utilities\FileUtils.cs:Zeile 1313.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 412.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
 
Hi Doug!
thanks for your great work!

I tgink i have the same problem as mentioned some question above..
couldnt write new sessions to db.
dont know why your Db savefolder is mentioned...:


[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR LoggingSQLiteCommand.ExecuteNonQuery : INSERT INTO session_drivers (session_id, car_id, driver_id, driver_first_name, driver_last_name, driver_short_name, driver_player_id, player_name, category, nationality, steam_id, moniker) VALUES (@session_id, @car_id, @driver_id, @driver_first_name, @driver_last_name, @driver_short_name, @driver_player_id, @player_name, @category, @nationality, @steam_id, @moniker)
@session_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@car_id=0
@driver_id=0
@driver_first_name=Carsten
@driver_last_name=steve
@driver_short_name=PLY
@driver_player_id=1
@player_name=$PLAYER_NAME$
@category=Platinum
@nationality=Germany
@steam_id=
@moniker=
[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.buildSeason : *** SHM Santity check - Season Updated 2022-04-19 22:27:46, Track monza
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR ResultsDBWriter.storeSessionLeaderBoard : Error saving leaderboard for session 14d1e8ec-dd14-465c-a04a-2ec423e1df3f - unable to open database file
unable to open database file
bei ACCResults.DBModel.LoggingSQLiteCommand.ExecuteNonQuery() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\LoggingSQLiteCommand.cs:Zeile 63.
bei ACCResults.DBModel.ResultsDBWriter.storeSessionLeaderBoard(SQLiteTransaction myTrans, ACCResultsFile session, ACCLeaderBoardLine leaderBoard, Int32 currentPosition) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 513.
Caused by :
bei ACCResults.DBModel.ResultsDBWriter.storeSessionLeaderBoard(SQLiteTransaction myTrans, ACCResultsFile session, ACCLeaderBoardLine leaderBoard, Int32 currentPosition) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 513.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 343.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

[0000000F-00,2|19,6] 2022-04-22 23:58:53 BROADCAST** ACCBroadcastInterface.ResetSession : Clearing all maps for new session
[00000008-00,2|19,6] 2022-04-22 23:58:53 DEBUG ResultsDBWriter.processIndividualSessionDB : Setting player race # as 0 with car Id 0
[0000000F-00,2|19,6] 2022-04-22 23:58:53 BROADCAST BroadcastingViewModel.ClearCars : [Conn 1 : 8f68d1bd-5b68-4a9e-bf80-3cc87654c833]: Clearing 1 cars from the BroadcastVM
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR LoggingSQLiteCommand.ExecuteNonQuery : INSERT INTO session_def (session_id, track_id, session_date_time, season_id, date_hour, date_minute, race_day, time_multiplier, session_duration, round, session_type, round, session_type, is_wet_session, type_id, manually_added, event_online_reference, total_time, lap_count, session_position, ideal_line_grip, outside_line_grip, marbles_level, puddles_level, wet_dry_line_level, wet_level, ambient_temperature, road_temperature, wind_speed, wind_direction, cloud_level, rain_level, is_dynamic, ambient_temperature_mean, player_race_number, is_online, player_ecu_mode, recorded_by, peak_acceleration, max_speed, fuel_per_lap, position_start_session, dry_tyre_name, wet_tyre_name, replay_start_time, pre_session_time ) VALUES(@session_id, @track_id, @session_date_time, @season_id, @date_hour, @date_minute, @race_day, @time_multiplier, @session_duration, @round, @session_type, @round, @session_type, @is_wet_session, @type_id, @manually_added, @event_online_reference, @total_time, @lap_count, @session_position, @ideal_line_grip, @outside_line_grip, @marbles_level, @puddles_level, @wet_dry_line_level, @wet_level, @ambient_temperature, @road_temperature, @wind_speed, @wind_direction, @cloud_level, @rain_level, @is_dynamic, @ambient_temperature_mean, @player_race_number, @is_online, @ecu_mode, @recorded_by, @peak_acceleration, @max_speed, @fuel_per_lap, @position_start_session, @dry_tyre_name, @wet_tyre_name, @replay_start_time, @pre_session_time )
@session_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@track_id=paul_ricard_2021
@session_date_time=2022-04-22 23:56:43
@season_id=14d1e8ec-dd14-465c-a04a-2ec423e1df3f
@date_hour=16
@date_minute=41
@race_day=0
@time_multiplier=0
@session_duration=0
@round=0
@session_type=11
@is_wet_session=0
@type_id=0
@manually_added=2
@event_online_reference=-1
@total_time=-1
@lap_count=1
@session_position=1
@ideal_line_grip=0
@outside_line_grip=0
@marbles_level=0
@puddles_level=0
@wet_dry_line_level=0
@wet_level=0
@ambient_temperature=18,0
@road_temperature=30,0
@wind_speed=1,6739612478920741989881956155
@wind_direction=0,0
@cloud_level=0,30000001192092898
@rain_level=0,0
@is_dynamic=0
@ambient_temperature_mean=24,0
@is_online=0
@ecu_mode=0
@recorded_by=UDP
@peak_acceleration=0
@max_speed=0
@fuel_per_lap=0
@position_start_session=0
@dry_tyre_name=DHE
@wet_tyre_name=WH
@replay_start_time=2022-04-22 23:14:18
@pre_session_time=2022-04-22 23:18:50
@player_race_number=75
[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.isAccLive : ACC Status changed. Was ACC_PAUSE, now ACC_OFF
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR ResultsDBWriter.storeSessionDetails : Error storing session 14d1e8ec-dd14-465c-a04a-2ec423e1df3f - unable to open database file
unable to open database file
bei ACCResults.DBModel.LoggingSQLiteCommand.ExecuteNonQuery() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\LoggingSQLiteCommand.cs:Zeile 63.
bei ACCResults.DBModel.ResultsDBWriter.storeSessionDetails(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, ACCLeaderBoardLine currentLeaderBoard, Dictionary`2 carIdModels, Int32 playerRaceNumber, Int32 sessionPosition, Boolean serverFile, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 780.
Caused by :
bei ACCResults.DBModel.ResultsDBWriter.storeSessionDetails(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, ACCLeaderBoardLine currentLeaderBoard, Dictionary`2 carIdModels, Int32 playerRaceNumber, Int32 sessionPosition, Boolean serverFile, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 780.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 381.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

[0000000F-00,2|19,6] 2022-04-22 23:58:53 DEBUG ARCSharedMemoryMonitor.isAccLive : No ACC session active
[00000008-00,2|19,6] 2022-04-22 23:58:53 ERROR FileUtils.serialiseSessionToFile : Error writing out backup files for Hotlap with car BMW M4 GT3 at track paul_ricard_2021 : Die Datei "C:\Users\carsc\Documents\ACCResults\Backup\Config\seasonEntity.BMW M4 GT3_paul_ricard_2021_Hotlap_14d1e8ec-dd14-465c-a04a-2ec423e1df3f.json" konnte nicht gefunden werden.
bei ACCResults.FileUtils.serialiseSessionToFile(ACCResultsFile session, ACCSeason season, String carName) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\Utilities\FileUtils.cs:Zeile 1313.
bei ACCResults.DBModel.ResultsDBWriter.processIndividualSessionDB(SQLiteTransaction myTrans, ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 412.
bei ACCResults.DBModel.ResultsDBWriter.processSessionDB(ACCResultsFile session, ACCSeason season, Boolean storeInDb, Boolean serialiseSessionToFile, Boolean serverFile, Int32 playerCarId, Boolean enrichPlayerLaps) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 138.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 417.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
Can you check the path C:\Users\carsc\Documents\ACCResults exists and is accessible. It sounds like you are getting errors accessing the database and other files in subfolders.

Can you try exporting diagnostics (instructions here) - this might help me to see what is happening (as long as the folder can be accessed)
 
Hi!
Folder is accessible and i am able to create files there, but there are no new jsons since 19.04.22
just addede everyone fullcontrol to my documents folder and restartetd acc result compendium as admin, but got the same messages.
also the export did not work... strange
i can copy txt files to the folders without any issues.

After i restarted the app i saw a lot of this messages in the log:

[00000008-06,2|11,5] 2022-04-23 00:42:36 ERROR LoggingSQLiteCommand.ExecuteNonQuery : DELETE FROM files_processed WHERE file_name=@fileName
@fileName=Leaderboard_JaMSetwxa_n715kla7-6dHOR_Y6xKb5V46svz4_FeX0.json
[00000008-06,2|11,5] 2022-04-23 00:42:36 ERROR ResultsDBWriter.registerArcFileProcessedDB : Error logging file Leaderboard_JaMSetwxa_n715kla7-6dHOR_Y6xKb5V46svz4_FeX0.json processed unable to open database file
unable to open database file
bei ACCResults.DBModel.LoggingSQLiteCommand.ExecuteNonQuery() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\LoggingSQLiteCommand.cs:Zeile 63.
bei ACCResults.DBModel.ResultsDBWriter.registerArcFileProcessedDB(SQLiteTransaction trans, String fileName, String lastUpdatedDate) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 1902.
Caused by :
bei ACCResults.DBModel.ResultsDBWriter.registerArcFileProcessedDB(SQLiteTransaction trans, String fileName, String lastUpdatedDate) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 1902.
bei ACCResults.DBModel.ResultsDBWriter.registerArcFilesProcessedDB(List`1 files) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\ResultsDBWriter.cs:Zeile 1875.
bei ACCResults.DBModel.DBWriterTask.DequeueAndProcessRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 451.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequest() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 383.
bei ACCResults.DBModel.DBWriterTask.ProcessDbRequests() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 333.
bei ACCResults.DBModel.DBWriterTask.WriterTask() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\DBModel\DBWriterTask.cs:Zeile 304.
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()



heres the errormessage when i try to export (it seems like theres a right problem, but everything looks fine(

00000001-00,1|02,6] 2022-04-23 00:45:24 ERROR OLVControlSessions.ExportDiagnostics : Error exporting diagnostics - Die Datei "C:\Users\carsc\Documents\ACCResults\Export\Diagnostics_2U4Fk6nMotdyRVPKvKtR7ZgmjI_kESH4cNdXUdb-uI8_2022-04-23_004524.zip" konnte nicht gefunden werden.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode)
bei ACCResults.OLVHelpers.OLVControlSessions.ExportDiagnostics() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\OLVHelpers\OLVControlSessions.cs:Zeile 707.
Caused by :
bei ACCResults.OLVHelpers.OLVControlSessions.ExportDiagnostics() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\OLVHelpers\OLVControlSessions.cs:Zeile 707.
bei ACCResults.OLVHelpers.OLVControlSessions.ctxtSessionMenu_ItemClicked(Object sender, ToolStripItemClickedEventArgs e) in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\OLVHelpers\OLVControlSessions.cs:Zeile 426.
bei System.Windows.Forms.ToolStrip.OnItemClicked(ToolStripItemClickedEventArgs e)
bei System.Windows.Forms.ToolStripDropDown.OnItemClicked(ToolStripItemClickedEventArgs e)
bei System.Windows.Forms.ToolStrip.HandleItemClick(ToolStripItem dismissingItem)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei ACCResults.Program.Main() in E:\Users\Doug\OneDrive\Documents\Doug's Documents\VS Projects\TestApp\TestApp\Program.cs:Zeile 19.
 
ok, i think i found the reason.
I deactivated the ransomware protection from the windows defender and was able to export the diagnostic and new sessions are written to the db.
I excluded assresults.exe nowand everything works fine.

Sorry doug and thanks for your time/investigation
 
Last edited:
ok, i think i found the reason.
I deactivated the ransomware protection from the windows defender and was able to export the diagnostic and new sessions are written to the db.
I excluded assresults.exe nowand everything works fine.

Sorry doug and thanks for your time/investigation
I'm relieved you managed to get it working. I'll make a note of this in case anyone else has similar issues in the future
 
Hi Doug,
I didn't post any bugs for a few months now - simply because I didn't encounter any! Outstanding work, as usual!

I just set up a fresh windows install on my racing rig and was reinstalling ARC but I couldn't choose an installation directory anymore. From my backup I can see that the current version still got installed into my custom directory.
Can you bring back that option in the installer?
 
Hi Doug,
I didn't post any bugs for a few months now - simply because I didn't encounter any! Outstanding work, as usual!

I just set up a fresh windows install on my racing rig and was reinstalling ARC but I couldn't choose an installation directory anymore. From my backup I can see that the current version still got installed into my custom directory.
Can you bring back that option in the installer?
I didn't realise that had dropped out :redface: -I'll add it back into the installer
 
ACC Results Companion V1.15.3 Released (here)

I keep on adding to this update, so I thought I'd better release it now or it will go on forever

Live Leaderboard Widget
This has been asked for and is a poor man's leaderboard. It you didn't want to run something a bit more sophisticated like Racelabs as well, then ARC has you covered.

This is just an initial release to get it into the wild and see how it behaves.

It can be activated from the settings page:

l7zsX2Q.png

Choose which columns you want to display by right clicking on the widget
yBCRO4E.png

and the widget will keep a live positional record of the race
HYTqma0.png

It maintains the overall and class positions, along with best, average and last laps. You'll see that everything is generally colour coded by class (White=GT3, Blue = GT4 etc) wihch the exception that the player car is highlighted with the name in Magenta.

The leaderboard shows the top 3 places followed by 3 cars either side of the player and should adjust dynamically. Gaps are relative to the player

Note: It wouldn't be ARC without some odd behaviour!
  • Position deltas don't work yet. ACC isn't making it tricky to get the initial position
  • Positions generally are calculated on the fly as the positions reported by ACC over UDP appear to have a huge lag (sometimes up to half a lap). They work out the positions based on number of laps and car position. This will occasionally give some odd results which I'll work on in the future
    • At tracks where the start line isn't the finish line (eg Spa), this gives an odd order until everything has crossed the start lap (everything is reported on lap 0 but cars at the end of the field have a postion greater than cars at the start)
    • ACC can increment the lap count before the position (spline) is updated. So cars crossing the line may briefly jump to the top of the table as they appear to be a lap up
  • Gaps are powered by Unicorn tears and Pixie dust. As such don't take them to seriously. They estimate the gaps based on distances and player speed so you will see some considerable rubber banding
  • Practice/Qualifying positions aren't yet supported
Damage widget
Now you can optionally see damage detail rather than totals. Right click on the widget to select rows.

Jq2dHEj.png

EMOa5J2.png


Other items
  • Leaderboard. Save row limit and 0 = unlimited
  • BUGFIX: Leaderboard alignment - rank truncated
  • BUGFIX: Leaderboard - re-instate blacklists
  • BUGFIX: Fix tyre sets dialog for SP races
  • BUGFIX: Car/Track History - Fix optimal lap
  • BUGFIX: Add back the installation folder option
  • BUGFIX: Move ACC Data Folder Fixed
  • Help updated
 
Last edited:
Hey Doug! Thank you very very very very very much for that leaderboard!
Can you use/add "start-finish-line-gaps"? (delta between timestamps when SF-line is crossed)

What is spline?

I'm really looking forward in testing your leaderboard!
 
Hey Doug! Thank you very very very very very much for that leaderboard!
Can you use/add "start-finish-line-gaps"? (delta between timestamps when SF-line is crossed)

What is spline?

I'm really looking forward in testing your leaderboard!
I'll have a look at that.

The spline the the position on lap. 0.0 is just crossed the finish line and 1.0 is about to cross the finish line. I output it mainly for debugging as I use it to guesstimate the gaps
 
ACC Results Companion 1.15.4 Released

This release is just about adding to the live leaderboard widget.

HcIhyWo.png

Main changes:
  • Position delta (Δ) and class position delta (CΔ) activated, Shows the positions gained or loss since the start of the race
  • Calculated gaps more accurate. More unicorn tears have now been added to the mix. For the first lap, the gaps are purely estimated based on the gap distance and the current player speed. However, it builds knowledge of the player speed through each element of the track (split into 100 microsectors). After the first lap, it then uses the microsector speed map to give a more representative approximation of the gap. This eliminates the previous gap rubber-banding and should be closer to the gap shown in the ACC MFD
  • The player line has been made more visible (more contrast in background and most fields magenta) as I found it difficult to quickly identify read in the heat of a race
  • In a similar fashion, most fields now colour coded to the class
Known issues & Restrictions
  • Gaps/positions not yet relevant to practice/qualifying
  • Widget has no meaning on hotstint, hotlap, spectator sessions. It will be disabled in the future on these sessions
  • Before all cars cross the start lap, positions and gaps will be all over the place. It isn't until everything has crossed the start line that it is possible to update values correctly
  • Selecting/unselecting columns (right click) is a bit weird at the moment
    • The click location is a bit sensitive (I think it only works on the gaps between lines/fields). This is on the list to improve
    • When unselecting columns, the format sometimes goes weird. I found that selecting and unselecting the column appears to fix it. It looks like the redraw happens in the wrong place
  • Start line gap not yet implemented
  • When the player crosses the line, gaps briefly go haywire. I think this might be the same issue where ACC increments lap number before resetting spline (track location)
 
Last edited:
Hey Doug, I'm trying to use this app but can't for the life of me guess what's going wrong. I uploaded a diagnostics, username fOmTBaA5zTDj1qCs7Pma0jorMVZY4VbqaUEk2LhaWd8. It would be nice if you could give me some light. Cheers.
 
Hey Doug, I'm trying to use this app but can't for the life of me guess what's going wrong. I uploaded a diagnostics, username fOmTBaA5zTDj1qCs7Pma0jorMVZY4VbqaUEk2LhaWd8. It would be nice if you could give me some light. Cheers.
Hi,
It can't find the ACC configuration as you have the ACC data folder pointing to the incorrect location (I guess you changed it trying to get it working)

Change ACC Data Folder back to C:\Users\Capitao\Documents\Assetto Corsa Competizione\.

(in the red text box below)
1652600950589.png

It looks like you have never managed to get a UDP connection to ACC. Check in firewall settings that ACCResults.exe is not blocked and UDP connection on port 9000 is allowed. If you haven't already done so, restart ACC and/or reboot the PC. It is possible to crash the ACC UDP connection so resetting should fix it (older versions of ARC didn't clean resources properly and the UDP connection would eventually crash).

If that still doesn't work, set the log settings to SuperVerbose, try a new session (at least one lap) then export diagnostics again

1652601297718.png
 
Doug Duthie updated ACC Results Companion with a new update entry:

ACC Results Companion V1.15.5

  • Live Leaderboard Widget Updates
    • Properly support practice/qualifying sessions
    • Disable for spectator
    • New Column - gap to class leader ("GapL") at start/finish line
    • If < 10 cars, widget resizes
    • Fix panel background for player car
    • Fix width for position delta column
    • Most fields now coloured to class to make more visible
    • Allow columns to be re-ordered by drag/drop
    • Time values not set now initialised for "--" rather than "00" etc for clarity

Read the rest of this update entry...
 

Latest News

Do you prefer licensed hardware?

  • Yes for me it is vital

  • Yes, but only if it's a manufacturer I like

  • Yes, but only if the price is right

  • No, a generic wheel is fine

  • No, I would be ok with a replica


Results are only viewable after voting.
Back
Top