Adjustable Cruise Control Updates for ETS2

Forum rules
SCS as a company do not wish to have paid mods on this forum. While we understand that not all paid mods use the Intellectual Property of other companies/people, it is very hard to moderate what is and isn't acceptable when money is involved. There are also concerns that it could look unfavorable to potential work partners going forward if SCS allow mods that may potentially use unlicensed branding.
Posting in the Mods forum (ATS and ETS2) is restricted to sharing free-to-the-public mods and providing support for mods. For more details, please check the Forum Rules.
Post Reply
User avatar
Josh0
Posts: 234
Joined: 30 Mar 2016 03:08

Adjustable Cruise Control Updates for ETS2

#1 Post by Josh0 » 07 Jun 2019 00:31

For those who still have the Adjustable Cruise Control application made by Sniper this is a place where ACC game update files will be provided. Sniper's ACC application can be found in his Dropbox or the source code repository on GitHub (use version 2.4.0). In general I (or someone) will provide an ACC game update file within 48 hours of a game update being published by SCS. There is no need to whine about needing an ACC update less than 48 hours from the time SCS published their game update, just be patient.


ETS2 (Steam version only):
ETS2 1.34.0.17s-41s, 32-bit and 64-bit, Steam & Retail: https://pastebin.com/M9ZQP6jM (Provided by 1t5_Luc1f3r)
ETS2 1.35.2.5s/3.4s/3.14s/3.20s, 32-bit and 64-bit, Steam only: https://pastebin.com/GjyhWXga
ETS2 1.36.2.48s/55s, 32-bit and 64-bit, Steam only: https://pastebin.com/JCFuxNPs (Provided by 1t5_Luc1f3r)
ETS2 1.37.1.74s/1.82s/2.0s/2.2s, 32-bit and 64-bit, Steam only: https://pastebin.com/XR1DWiNF
ETS2 1.38.1.4s/8s/11s/12s/15s, 32-bit and 64-bit, Steam only: https://pastebin.com/6pw1HVar
ETS2 1.39.4.16s/17s, 32-bit and 64-bit, Steam only: https://pastebin.com/WzTe2Uvj
ETS2 1.40.5.8s, 32-bit and 64-bit, Steam only: https://pastebin.com/qKqCfWHG
ETS2 1.41.1.25s, 32-bit and 64-bit, Steam only: https://pastebin.com/nFtMPLgf
ETS2 1.42.1.7s/11s, 32-bit and 64-bit, Steam only: https://pastebin.com/FiTHw7ZT
ETS2 1.43.3.40s, 32-bit and 64-bit, Steam only: https://pastebin.com/AyBpYRtS
ETS2 1.44.1.10s, 32-bit and 64-bit, Steam only: https://pastebin.com/vpA2dTJG
ETS2 1.45.3.15s/4.0s, 32-bit and 64-bit, Steam only: https://pastebin.com/0U274ST3
ETS2 1.46.2.20s, 32-bit and 64-bit, Steam only: https://pastebin.com/aMwfQ2nw
ETS2 1.47.3.1s, 32-bit and 64-bit, Steam only: https://pastebin.com/ZLd28WXt
ETS2 1.48.2.0s, 32-bit and 64-bit, Steam only: https://pastebin.com/CQ2c37h9
ETS2 1.48.5.97s/100s, 32-bit and 64-bit, Steam only: https://pastebin.com/78zbJ1US

ETS2 1.49.2.0s, 32-bit and 64-bit, Steam only: https://pastebin.com/YdpqZ950
ETS2 1.49.2.2s/0s, 32-bit and 64-bit, Steam only: https://pastebin.com/uB5JVE0N
ETS2 1.49.2.5s/6s, 32-bit and 64-bit, Steam only: https://pastebin.com/vGy79mNW
ETS2 1.49.2.10s/15s, 32-bit and 64-bit, Steam only: https://pastebin.com/aHbfvv2G
ETS2 1.49.2.22s/23s, 32-bit and 64-bit, Steam only: https://pastebin.com/LhxUraLu


ETS2 (Retail version only):
ETS2 1.34.0.17-41, 32-bit and 64-bit, Steam & Retail downloaded: https://pastebin.com/M9ZQP6jM (Provided by 1t5_Luc1f3r)
ETS2 1.34.0.17-41, 32-bit and 64-bit, Retail online updated: https://pastebin.com/0bYN5GYd
ETS2 1.35.1.17/28/31, 32-bit and 64-bit, Retail online updated & Retail downloaded: https://pastebin.com/HsaQtqX3
ETS2 1.35.2.5/3.4/3.14/3.20, 32-bit and 64-bit, Retail online updated: https://pastebin.com/cHYvuzwx
ETS2 1.36.2.24, 32-bit and 64-bit, Retail online updated: https://pastebin.com/Z9UgVJ3B
ETS2 1.37.1.74/1.82/2.0, 32-bit and 64-bit, Retail online updated: https://pastebin.com/z4AjkkNG
ETS2 1.38.1.6/15, 32-bit and 64-bit, Retail online updated: https://pastebin.com/Zt8CgbEG
ETS2 1.39.4.7, 32-bit and 64-bit, Retail online updated: https://pastebin.com/XTJtegwj
ETS2 1.40.4.8, 32-bit and 64-bit, Retail online updated: https://pastebin.com/teJvTjzZ


To apply game update files to ACC:
  1. Click on the link in the list above next to the version of the game that you have.
  2. Click on the "Download" button on the pastebin page.
  3. If your browser asks you how you want to open the file then select to save the file.
  4. If your browser asks where on your computer you want to save the file, select your desired location and change the extension of the filename from ".txt" to ".ini" (you can also change this filename after the file has been saved to your computer).
  5. Open your ACC application, click the "Settings..." button, then click the "Update Games data..." button, then click the "Load update file..." button.
  6. In the open file window navigate your filesystem to find the ACC games update file that you just downloaded, select it and click the "Open" button.
  7. Assuming you never applied this update file before, the entries found in the update file will automatically be checkmarked in the list so you can just click the "Make Update" button.
  8. After clicking "OK", close the "Game data update" window and close the "Settings" window.
  9. ACC is now ready to play with your game!

All ACC game update files that I have ever published can be found on my pastebin page: https://pastebin.com/u/Josh0. The title of each paste indicates the game version of that update. Note: there may be a few non-ACC files in my pastebin, and also some ACC files that were not created by myself.
Last edited by Josh0 on 08 Feb 2024 15:46, edited 256 times in total.
User avatar
Josh0
Posts: 234
Joined: 30 Mar 2016 03:08

Tutorial for generating your own ACC game update files

#2 Post by Josh0 » 07 Jun 2019 00:32

Tutorial for generating your own ACC game update files

Overview
Making your own game data update files for the Adjustable Cruise Control (ACC) application is not very difficult but it can be tedious. At a high level this is what you need to do:
  • Find and record the game version number
  • Calculate and record a CRC value for the game's executable file
  • While running the game use the Cheat Engine tool to find the Cruise Control speed and Cruise Control status data stored in system memory
  • While running the game use the Cheat Engine tool to find the pointers to the Cruise Control data structures stored in system memory
  • Generate a random Globally Unique Identifier (GUID)
  • Create or edit a game data update ".ini" file with the values obtained from Cheat Engine and the GUID generator
  • Load the game data update ".ini" file into the ACC application's game database
  • Test ACC with the game
This tutorial will use Euro Truck Simulator 2 in all examples. All procedures and tips apply to both American Truck Simulator and Euro Truck Simulator 2, the only difference is the paths (folders) of the game files and the game executable filenames ("eurotrucks2.exe" versus "amtrucks.exe"). This tutorial was made using Microsoft Windows 10 and Euro Truck Simulator 2 1.40 but the procedure should work using Microsoft Windows 7/8 and any version(s) of the game(s). Clicking any thumbnail image in this tutorial will show the full-size image.


Required Software
  • Adjustable Cruise Control application written by Sniper (see the top of the first post in this forum thread for a download link).
  • A text editor. "Notepad" that comes with all versions of Microsoft Windows will work. I use Notepad++.
  • Cheat Engine. This tutorial was made with Cheat Engine version 7.2, there may be slight differences when using other versions of Cheat Engine.
  • A GUID or UUID generator. An Online GUID/UUID Generator will work.
  • A program for calculating CRC32 values of files. I use HashTab by Implbits. WinRAR will work too.
  • A calculator capable of hexadeciaml number arithmetic. The "Calculator" tool that comes with Microsoft Windows will work.
Optional Software
Tips and hints
  • If this is your first time generating an ACC game data update file then I recommend you practice the procedure on a game version for which you already have an update file produced by someone else, that way you can check that you arrive at the "correct answers".
  • The first few times that you generate ACC game data update files I recommend making a back-up copy of the ACC games database file before you load your update into ACC. This is in the event that your update turns out to be broken/incorrect. The easiest way to remove a bad update from ACC is to replace the ACC database file with the back-up copy (manually removing ACC database entries is difficult). However, ACC does allow you to update an existing database entry by applying a new game data update file that uses the same GUID. The ACC database file is stored in the "Data" folder of the architecture that you use, for example "L64\Data\GamesData.gdb" if you use the "L64" version of ACC.
  • I recommend running your game in a window opposed to full-screen. You will be task-switching (Alt+Tab) between the game and Cheat Engine several times and at one point you will need to view both windows simultaneously, this is less problematic if the game is windowed.
  • Most of the addresses and offsets shown in Cheat Engine, and in the ACC game data update .ini files, are in hexadeciaml notation, that is a base 16 number system instead of a base 10 number system. The Calculator tool that comes with Microsoft Windows can be used to perform hexadecimal arithmetic if you switch to Programmer mode (see section "Switching Between Calculator Modes" in this page: How to use the Windows 10 Calculator).
    1. Set the calculator to "Programmer" mode.
    2. Click "HEX".
    3. In the middle of the Calculator window it should show "QWORD"; if it shows "DWORD", "WORD", or "BYTE" then click that text until it says "QWORD".
      [ external image ]
    It is typically not necessary to understand hexadecimal numbers to use this guide but you might find it to be helpful.
  • It is also not necessary to understand computer memory "pointers" but if you are computer-oriented you may find it beneficial to learn about them. The Cheat Engine tool comes with a tutorial that can help you to understand how pointers work in memory (Help->Cheat Engine Tutorial), although the tutorial is not meant for the casual user. Here is a more complete version of the tutorial from the Cheat Engine Forum: COMPLETE CheatEngine Tutorial(with pictures) UPDATE JAN 2015.
  • The game executable (.exe) files are different for 32-bit versus 64-bit, Steam versus Retail, ETS2 versus ATS. Therefore a different update to ACC is needed for each game type that you use.
  • If you have a 32-bit Operating System then launching the game will use the 32-bit executable.
    If you have a 64-bit Operating System then launching the game will use the 64-bit executable, even if you select the 32-bit executable file.
    With a 64-bit Operating System you can force the game to use the 32-bit executable or the 64-bit executable by supplying "-32bit" or "-64bit" options respectively in the Steam launch options (or shortcut target options if using the Retail version of the game).
  • The Cruise Control speed displayed in the game is rounded from the internal floating-point value. Therefore when the game is showing the Cruise Control speed set to "35" it is likely not exactly 35 but it may be (for example) 34.7 or 35.23 when you examine the speed value in system memory with Cheat Engine. In older versions of the games (I think before 1.30) the displayed speed was truncated instead of rounded from the internal floating-point value.

Prerequisites
(instructions for these tasks are beyond the scope of this tutorial)
  • Install the game (ETS2 or ATS) on your computer
  • Install Adjustable Cruise Control on your computer
    • Install the ACC plugin in the game's "plugins" folder
  • Install Cheat Engine on your computer
  • If you want to use ACC INI Generator then download and extract the contents of the .zip file
    • Review the included "readme.txt" file to learn about ACC INI Generator operation

Start a notes file
You will need to record several pieces of data while you work. I suggest recording them into a blank file in your text editor. You could also write the data onto a piece of paper but I find copy/pasting data within the computer less prone to error.


Gather the game version number
There are two places where you can find the current version of your game.
Note: The version numbers from these two methods do not always match.
Note: If you are using ACC INI Generator then the game version(s) will be obtained automatically (you can skip this section).
  1. The file properties window of the game's executable file:
    1. Find the game's executable (.exe) file in File Explorer (not to be confused with Internet Explorer), for Steam games this will start at your Steam library folder. Below are some default install locations, your locations may be different:
      • ATS 64-bit: C:\Program Files (x86)\Steam\steamapps\common\American Truck Simulator\bin\win_x64\amtrucks.exe
      • ATS 32-bit: C:\Program Files (x86)\Steam\steamapps\common\American Truck Simulator\bin\win_x86\amtrucks.exe
      • ETS2 64-bit: C:\Program Files (x86)\Steam\steamapps\common\Euro Truck Simulator 2\bin\win_x64\eurotrucks2.exe
      • ETS2 32-bit: C:\Program Files (x86)\Steam\steamapps\common\Euro Truck Simulator 2\bin\win_x86\eurotrucks2.exe
      Note: you can find the location of your Steam library folder(s) in the Steam Client: View->Settings->Downloads->STEAM LIBRARY FOLDERS.
    2. Right-click on the executable (.exe) file and choose "Properties".
      [ external image ]
    3. Switch to the "Details" tab and find the "Product version" line.
      [ external image ]
    4. Record the Product Version numbers into your notes text file.
    - OR -
  2. On the profile selection ("Launchpad") screen after starting the game:
    1. Launch your game.
    2. Record the game version number into your notes text file.
      • The game version is in the upper left corner of the profile selection screen for game versions before 1.39.
      • The game version is in the lower right corner of the "Launchpad" screen starting with game version 1.39.
      [ external image ]
I always use the version from the file properties of the game executable file (option A). ACC INI Generator collects the game version from the executable file properties too. The product version in the file properties does not change unless the game executable has been recompiled by SCS. For some game updates the executable file does not change, only the support files change. You only need a new ACC game data update when the game's executable file changes.


Gather the game executable file's CRC32 value
You need to calculate a 32-bit Cyclic Redundancy Check (CRC) value for the game's executable file.
Note: If you are using ACC INI Generator then the CRC value(s) will be calculated automatically (you can skip this section).
  1. Using HashTab:
    1. Find the game's executable (.exe) file in File Explorer. (See the "Gather the game version number" section for some typical locations)
    2. Right-click on the executable (.exe) file and select "Properties".
      [ external image ]
    3. Switch to the "File Hashes" tab.
    4. Record the eight-digit hexadecimal value from the "Hash Value" column of the "CRC32" row.
      [ external image ]
      • If there is no "CRC32" row then right-click in the list box and select "Settings...", tick the checkbox to the left of "CRC32", then click the "OK" button.
      Tip: You can copy the eight-digit hexadecimal CRC32 value to the Windows clipboard by clicking the "CRC32" row and then press Ctrl+C on the keyboard.
    - OR -
  2. Using WinRAR:
    1. Find the game's executable (.exe) file in File Explorer. (See the "Gather the game version number" section for some typical locations)
    2. Right-click on the executable (.exe) file and select "Add to archive..."
      [ external image ]
    3. Set the Archive format to "ZIP". The other options in the window do not matter. The default archive filename will be the same as the executable filename with ".zip" added to the end.
      [ external image ]
    4. Click the "OK" button.
    5. Select the newly-created .zip file in your File Explorer window and open it with WinRAR (if you are working with "eurotrucks2.exe" then the .zip file will be named "eurotrucks2.zip").
    6. In WinRAR be sure that you are viewing the contents using Details view (Options->File list->Details). Also be sure that your WinRAR window is wide enough to show all of the columns.
      • If you do not see a "CRC32" column then you have to enable the column: Options->Settings->tab: "File list"->button: "Columns..." then tick the checkbox next to "Checksum" on the right-side column of the window. Click "OK" then click "OK".
    7. Record the eight-digit hexadecimal value from the "CRC32" column into your notes text file (your value will likely be different than in the image below).
      [ external image ]
    8. After recording the CRC32 value you can close WinRAR and delete the .zip file that you just created, you don't need it anymore.

Use Cheat Engine to find speed and status data in system memory
  1. Start the Cheat Engine application.
  2. Start the game. If the ACC application is running then close it.
  3. In your game either create a new profile or load an existing game profile.
  4. Be sure the game is set to show distances in kilometers (Options->Gameplay->Length units->kilometers).
    [ external image ]
    • Note: The Cruise Control speed stored in system memory is always in kilometers per hour regardless of what the game is set to display, for both ATS and ETS2. If your game is not set to display kilometers than you will be unable to find your speed values in system memory in the subsequent steps.
  5. Start driving and accelerate until your speed is at least high enough to activate the cruise control (typically >30 km/h).
  6. Activate the Cruise Control (typically the "C" key on the keyboard).
  7. Pause the game (typically the "F1" key on the keyboard).
  8. Remember or record the speed at which your Cruise Control is set (for example "35" km/h).
  9. Press Alt+Tab on the keyboard to switch focus from the game to Cheat Engine.
  10. In the Cheat Engine main window click the "Select a process to open" button (in the upper left corner), or choose "Open Process" from the File menu.
    [ external image ]
    This will open the "Process List" window which lists all running applications.
  11. In the "Process List" window click the row that shows the name of the running game ("Euro Truck Simulator 2"), it is usually near the bottom of the list because the game was started recently. Click the "Open" button.
    [ external image ]
  12. Set the following value scan settings in the main Cheat Engine window:
    Note: the options will be disabled (grey) until you have successfully selected a process in the previous step.
    • Scan Type: Exact Value
    • Value Type: Float
    • Select the "Rounded (default)" radio button
      Note: The Rounded (default) button only appears after setting the Value Type to Float
    • Leave all other fields/checkboxes at the default setting
      [ external image ]
  13. In the "Value" field enter the speed at which your truck's Cruise Control is set, for example "35".
    [ external image ]
  14. Click the "First scan" button.
    [ external image ]
    Cheat Engine will search the game's memory for all occurrences of the value you entered ("35"). This typically takes less than 10 seconds. When scanning is complete then Cheat Engine will display all matches found in the table on the left-side of the window. There will typically be many items found in the first scan, this is normal.
    [ external image ]
  15. Repeat the following steps until only a single row is displayed in the table on the left side of the Cheat Engine window:
    1. When Cheat Engine has finished scanning memory then switch focus to the game (you can click inside the game's window, or use Alt+Tab, or click on the game's button in the Windows taskbar).
    2. Unpause the game (continue driving).
    3. Deactivate the Cruise Control and accelerate or decelerate your truck to a different speed.
    4. Activate the Cruise Control.
    5. Pause the game.
    6. Remember or record the new Cruise Control speed (for example "40" km/h).
      Note: the Cruise Control new speed must be different than the previous Cruise Control speed.
    7. Alt+Tab to switch focus to Cheat Engine.
    8. Change the number in Cheat Engine's "Value" field to the new Cruise Control speed, for example "40".
    9. Click the "Next Scan" button. Cheat Engine will search the game's memory for the new speed ("40") but this time it will only search locations that previously contained the previous speed ("35").
      [ external image ]
    10. If there are still multiple rows in the table on the left side of the Cheat Engine window then repeat the steps starting at sub-step "i." of step "15." above.
  16. Right click on the single row in left table and choose "Add selected addresses to the address list", or just double-left-click the row.
    [ external image ]
    A single new row should be added to the table at the bottom of the Cheat Engine window. This is your Cruise Control speed. The number in the "Value" column is the current speed to which your Cruise Control is set.
  17. Right-click the new row in the bottom table and select "Find out what writes to this address", or select the row (left-click) and press the "F6" key.
    [ external image ]
  18. Cheat Engine will ask if you want to attach the debugger to the game process, choose "Yes". A new window should pop-up with a title like "The following opcodes write to ...".
  19. Switch focus to the game (Alt+Tab or click in the game window).
  20. Unpause the game (continue driving).
  21. Deactivate the Cruise Control then re-activate the Cruise Control (the speed does not matter as long as it is high enough to activate the Cruise Control).
  22. Pause the game.
  23. Alt+Tab to switch focus to Cheat Engine, a new row should have appeared in Cheat Engine's "The following opcodes write to ..." window.
  24. (Optional) Click the "Stop" button in Cheat Engine's "The following opcodes write to ..." window.
  25. Select the new row in the table (left-click) then click the "Show disassembler" button.
    [ external image ]
    A "Memory Viewer" window should pop-up with the top line of the table selected/highlighted.
  26. The row that is highlighted in the "Memory Viewer" window is the instruction where the Cruise Control speed is written to system memory. Look in the "Opcode" column for this highlighted row, the instruction should look something like:

    Code: Select all

    movss [rdi+00000138],xmm0
    Record in your text file the hexadecimal value from this row's Opcode column (after the plus (+) symbol), in this example the value is "00000138" or just "138" (the leading zeros are not significant), your value could be different. This is the Cruise Control speed offset.
  27. Scroll the window up several rows so that the highlighted row is about in the middle of the window.
  28. Less than 10 rows above the highlighted row there should be a row with "sete" in the Opcode column. This row and the row directly below it will look something like:

    Code: Select all

    sete   al
    mov    [rdi+00000135],al
    Record in your text file the hexadecimal value from the Opcode column (after the plus (+) symbol) of the second row (the "mov" row below the "sete" row), in this example the value is "00000135" or just "135" (the leading zeros are not significant), your value could be different. This is the Cruise Control status offset.
    [ external image ]
  29. Subtract the Cruise Control status offset (135) from the Cruise Control speed offset (138). You can use the Windows Calculator in Programmer/Hex mode to subtract two hexadecimal numbers. In this example, "138" - "135" = "3". Record this difference, you will need it again soon.
  30. Close the "Memory Viewer" window and close the "The following opcodes write to ..." window.
  31. In the main Cheat Engine window right-click the row in the bottom table, choose "Change record", then click "Address".
    [ external image ]
    This will open the "Change address" window.
  32. Select and copy (Ctrl+C), or record in your text file, the hexadecimal value from the Address field ("23B1CA57628" in this example, your value will be different).
  33. Close the "Change address" window (or click the "Cancel" button).
  34. Paste (Ctrl+V), or manually type, the hexadecimal value ("23B1CA57628" in this example) into the Windows Calculator.
  35. In the Calculator subtract the difference you obtained a few steps back, the difference was "3" in this example, "23B1CA57628" - "3" = "23B1CA57625".
    [ external image ]
  36. Copy (Ctrl+C), or record in your text file, the result from the Windows Calculator ("23B1CA57625" in this example).
  37. In Cheat Engine click the "Add Address Manually" button. This should display the "Add address" window.
  38. Paste (Ctrl+V), or manually type, the hexadecimal value from the calculator ("23B1CA57625" in this example) into the Address field of the "Add address" window, set the "Type" field to "Byte", then click the "OK" button. This will add a new row into the bottom table of the main Cheat Engine window.
    [ external image ]
    This (bottom) row is the Cruise Control status. The number in the "Value" column is the current state of the Cruise Control: 0 = Cruise Control disabled, or 1 = Cruise Control enabled.
  39. Switch focus to the game.
  40. Unpause the game (continue driving) then enable and disable the Cruise Control several times while watching the "Value" column of the bottom table in the Cheat Engine window. The Cruise Control status value (second row) should change each time you enable or disable the Cruise Control, the Cruise Control speed value (first row) should change only when you enable the Cruise Control. If the numbers in the Value column do not change when you press the Cruise Control key in the game, or the numbers in the Value column change without touching anything in the game, then you may have the wrong memory locations selected in Cheat Engine (you should start over this entire section from the beginning).
  41. Pause the game.
  42. Alt+Tab to switch focus to Cheat Engine.

Use Cheat Engine to find base address and offset 0 pointers
  1. In the Cheat Engine main window (still open from the steps of the previous section) right-click the first row in the bottom table (the Cruise Control speed) and select "Pointer scan for this address".
    [ external image ]
    This should open the "Pointerscanner scanoptions" window.
  2. Set the following options in the "Pointerscanner scanoptions" window:
    • The "Scan for address" radio button should already be selected by default.
    • The text field should already have the hexadecimal address from the Cruise Control speed row ("23B1CA57628" in this example).
    • Set the "Maximum offset value" field to "5500" (or more). Note: this field uses a decimal number.
    • Set the "Max level" field to "2".
    • Be sure that all other checkboxes are not ticked (uncheckmarked).
      [ external image ]
  3. Click the "OK" button in the "Pointerscanner scanoptions" window.
  4. Cheat Engine will ask you to select a file to save the pointer scan results. Typically you won't need this file ever again but I suggest creating a new file (manually type a filename) with a meaningful name, such as "ETS2_1.40.0.119_x64_steam.PTR". Then click the "Save" button.
  5. Wait for Cheat Engine to finish the pointer scan, it will take from several seconds to several minutes depending on your CPU speed and system memory size. When the pointer scan operation is complete the "Pointer scan" window will show a table of several rows. We are interested in rows that start with the game executable filename, such as "eurotrucks2.exe". Ignore rows that start with any other words.
    Note: you may need to expand the width of the "Base Address" field to display all of the characters in the column.
    [ external image ]
  6. If there is only one row starting with the game executable filename ("eurotrucks2.exe") then go to step 7. Otherwise you need to repeat the following steps until the list is narrowed-down to a single row containing the game executable filename:
    1. Do not close the "Pointer scan" window because you will need it later.
    2. In the main Cheat Engine window remove the results that you obtained previously:
      • In the File menu of the main Cheat Engine window select "Clear list". Alternatively you can click the button that shows a circle with the diagonal line. Cheat Engine will ask if you are sure, click "Yes".
      • Click the "New Scan" button to remove the previous scan results.
        [ external image ]
    3. Switch focus to the game.
    4. Unpause the game (continue driving).
    5. Go to the game's main menu (ESC key) and click the "Change Profile" button. This will bring the game back to the profile selection ("Launchpad") screen. Alternatively you could Exit the game completely and relaunch the game.
    6. Load your game profile.
    7. Start driving and accelerate until your speed is at least high enough to activate the Cruise Control.
    8. Activate the Cruise Control.
    9. Pause the game.
    10. Remember or record the speed at which your Cruise Control is set (for example "35" km/h).
    11. Alt+Tab to switch focus to Cheat Engine.
    12. If you completely Exited your game before reloading your game profile then:
      • In the Cheat Engine main window click the "Select a process to open" button (in the upper left corner), or choose "Open Process" from the File menu. This will open the "Process List" window which lists all running applications.
      • In the "Process List" window click the row that shows the name of the running game ("Euro Truck Simulator 2") then click the "Open" button.
    13. The Cheat Engine value scan settings should still be set from before, but here are the settings again:
      • Scan Type: Exact Value
      • Value Type: Float
      • Select the "Rounded (default)" radio button
        Note: The Rounded (default) button only appears after setting the Value Type to Float
      • Leave all other fields/checkboxes at the default setting
    14. In the "Value" field enter the speed at which your truck's Cruise Control is set, for example "35".
    15. Click the "First scan" button. Cheat Engine will search the game's memory for all occurrences of the value you entered ("35").
    16. Repeat the following steps until only a single row is displayed in the table on the left side of the Cheat Engine window:
      1. When Cheat Engine has finished scanning memory switch focus to the game.
      2. Unpause the game (continue driving).
      3. Deactivate the Cruise Control and accelerate or decelerate your truck to a different speed.
      4. Activate the Cruise Control.
      5. Pause the game.
      6. Remember or record the new Cruise Control speed (for example "40" km/h).
        Note: the Cruise Control new speed must be different than the previous Cruise Control speed.
      7. Alt+Tab to switch focus to Cheat Engine.
      8. Change the number in Cheat Engine's "Value" field to the new Cruise Control speed, for example "40".
      9. Click the "Next Scan" button. Cheat Engine will search the game's memory for the new speed ("40") but this time it will only search locations that previously contained the previous speed ("35").
      10. If there are still multiple rows in the table on the left side of the Cheat Engine window then repeat the steps starting at sub-step "i." of step "p." above.
    17. Right click on the single row in left table and choose "Add selected addresses to the address list", or just double-left-click the row. A single new row should be added to the table at the bottom of the Cheat Engine window.
      [ external image ]
    18. Right-click on the row in the bottom table, choose "Change record", then click "Address". This will open the "Change address" window.
    19. Select and copy (Ctrl+C), or record in your text file, the hexadecimal value from the Address field ("23B1F443618" in this example, your number will be different). Close the "Change address" window (or click the "Cancel" button).
    20. In Cheat Engine's "Pointer scan" window (still open from before) open the "Pointer Scanner" menu and choose "Rescan Memory".
      [ external image ]
    21. Paste (Ctrl+V), or manually type, the hexadecimal address ("23B1F443618" in this example) into the "Address to find" field of the "Rescan pointerlist" window.
      [ external image ]
    22. (This is important!) Be sure that all checkboxes in the window are unticked (uncheckmarked). Then click the "OK" button.
    23. Supply a filename for Cheat Engine to save the results, I suggest a different filename than the previous file you made.
    24. Cheat Engine will (hopefully) reduce the pointer list. If you are lucky there will be a single row in the table starting with the game executable filename.
      [ external image ]
      If you are unlucky then you need to repeat the previous steps (start at step "a.") until there is only a single row in the pointer scan table containing the game executable filename.
  7. Now that you have a single row with the game executable filename in your "Pointer scan" window, there is one number to compare and two numbers to record:
    • Compare the hexadecimal value in the "Offset 1" column of the "eurotrucks2.exe" row to the hexadecimal number that you previously recorded from the "Memory Viewer" window as the Cruise Control speed offset, the value should match exactly, in this example value "138". If this value does not match then you have likely done something wrong and will have to start over from the beginning.
    • Record the eight-digit hexadecimal number after the plus symbol (+) after the game executable filename in the "Base Address" column. This is the address for the first memory pointer, also known as base address.
    • Record the hexadecimal number from the "Offset 0" column of the same row. This is the address for the second memory pointer, also known as offset 0.
      [ external image ]
    There are four important pieces of information that you should have gathered from Cheat Engine:
    • The Cruise Control speed offset ("138" in this example)
    • The Cruise Control status offset ("135" in this example)
    • The base address ("017A04D0" in this example)
    • The offset 0 ("13A8" in this example)
  8. If you have these values recorded then you may exit Cheat Engine and exit your game.

Cheat Engine troubleshooting tips
  • If after performing several pointer scans the pointer table in the "Pointer scan" window still contains several rows that start with the game executable filename ("eurotrucks2.exe") it may help to completely Exit the game and launch it again instead of just exiting to the profile selection ("Launchpad") screen.
  • If after any of the pointer scans you have no rows that start with the game executable filename ("eurotrucks2.exe") then it is likely that your "Maximum offset value" is set too low. You will have to start over from the beginning but this time try increasing "Maximum offset value" value by 1000 (5500 + 1000 = 6500) in the "Pointerscanner scanoptions" window.
  • Rarely SCS changes the code of the Cruise Control algorithm. If the instructions in the "Opcode" column of your "Memory Viewer" window look drastically different than the images of this tutorial then either you are looking at the wrong location in memory or SCS has changed the code. If SCS has changed the code then it is likely that only those experienced with Assembly language and memory pointers can determine the new instructions/offsets.

Create an ACC update ".ini" file
You can use the ACC INI Generator tool (see the "Optional Software" section) to generate the ACC game data update .ini file by supplying the data that you obtained in previous steps. Below I briefly describe how to use this tool (see the included "readme.txt" file for more detailed information). If you do not want to use the ACC INI Generator tool then go to the "(Alternative) Edit an ACC update .ini file" section.
Note: ACC INI Generator will generate .ini files in the same folder from which it is launched. If an output file with the same filename already exists then it will be overwritten.
Note: ACC INI Generator expects all numbers, except the "Date" field, to be in hexadecimal notation.
  1. Launch ACC INI Generator.
  2. Select your game type in the "Game" box, either "ATS Steam", "ETS2 Steam", or "ETS2 Retail".
    [ external image ]
  3. Enter your author and date information into the fields of the "Common" box.
    [ external image ]
    Tip: you can automatically generate today's date in the "Date" field by clicking the "Today" button.
    Note: The date you enter should be in the format: YYYY-MM-DD.
  4. If you are generating an update for the 64-bit version of the game then perform the following instructions in the "64-bit" side of the window.
    If you are generating an update for the 32-bit version of the game then perform the following instructions in the "32-bit" side of the window.
    If you are generating an update for both 64-bit and 32-bit versions of the game then perform the following instructions in both sides of the window.
    1. Click the "Locate..." button, a new window will pop-up asking you to locate your game executable (.exe) file.
      [ external image ]
    2. Navigate to the appropriate folder (see the "Gather the game version number" section for some default locations), select the game executable file ("eurotrucks2.exe"), then click the "Open" button. The tool will populate the "Product Name", "Version", and "CRC32" fields based on the executable (.exe) file properties.
    3. Enter the hexadecimal "base address" value that you recorded from Cheat Engine into the "Base Address" field.
    4. Enter the hexadecimal "offset 0" value that you recorded from Cheat Engine into the "Offset 0" field.
    5. Enter the hexadecimal "speed offset" and "status offset" values that you recorded from Cheat Engine into the "CC Speed" and "CC Status" fields.
      [ external image ]
  5. When all data is entered completely then click the "Generate" button.
    [ external image ]

    If there are any problems with the data that you have entered then the tool will report "Missing or invalid data" and paint the problematic text fields with a RED color.
    [ external image ]

    If there were no problems then a GREEN status message "ACC INI file generated!" will appear under the Date field and a new .ini file should appear in the same folder as the tool (the filename will be of the format: "acc-game_version(architecture)(distribution).ini").
    [ external image ]
  6. Close/Exit ACC INI Generator.
Note: If you only entered data for either 64-bit or 32-bit (not both) then after the "Generate" button is clicked the tool will paint the empty fields RED but the tool will still generate the .ini file. This is normal. In this case the RED fields indicate missing data but the tool still found enough data to generate the output file for one architecture type of the game.


(Alternative) Edit an ACC update ".ini" file
If you do not want to use the ACC INI Generator tool then I recommend making a copy of an existing ACC game data update .ini file and then changing the filename and contents as needed. Modifying an existing update file is far easier than creating the update file from scratch. You can read the ACC documentation (found in "source\Documents\") to learn about the specifics of the .ini file format. I will not describe the procedure for modifying such a file here but there are a few things to keep in mind:
  • I use UTF-8 file encoding for my .ini files. ACC does not support special characters in some of the string values, use ASCII characters only.
  • Every game update requires a unique GUID/UUID ("Identifier" in the .ini file). Even multiple updates within the same .ini file need different GUIDs/UUIDs. DO NOT just change some of the characters from an existing Identifier as this is too likely to create a duplicate or to cause a typing error. Use a random GUID/UUID generator (one is listed in the "Required Software" section). Enter the result into the "Identifier=" line of the .ini file between the curly braces ("{}").
  • According to the ACC documentation the "Date" format must be "YYYY-MM-DD", for example: 2021-02-25
  • The "Offset[0]" values in the .ini file will be the same for both "CCSpeed" and "CCStatus". This is called "Base Address" by Cheat Engine.
    The "Offset[1]" values in the .ini file will be the same for both "CCSpeed" and "CCStatus". This is called "Offset 0" by Cheat Engine.
    The "Offset[2]" values in the .ini file will be different. These are the Cruise Control speed offset and status offset.
    [ external image ]
  • ACC doesn't care about the filename of your update .ini file but I recommend using a filename that describes exactly what the update file is for.

Apply the update to ACC
  1. Start the Adjustable Cruise Control application.
  2. Click the "Settings..." button. This should open the "Settings" window.
  3. Click the "Update games data..." button. This should open the "Games data update" window.
  4. Click the "Load update file..." button.
  5. Locate and select your update .ini file in the filesystem then click the "Open" button.
  6. The table in the "Games data update" window should now show the game version(s) contained in your update file, and the right side of the table should be BLUE to indicate that ACC does not already have this game update in its database. If the game version update already exists in the ACC database then the right-side color will be YELLOW.
  7. Be sure that the table rows(s) are checkmarked (the green boxes on the left side of the table).
  8. Click the "Make update" button.
  9. ACC should pop-up a window indicating how many updates were merged into the ACC database. Click "OK".
  10. The right side of table should now be YELLOW to indicate that the update(s) were processed and accepted.
  11. Close the "Games data update" window.
  12. Close the "Settings" window: either the "Cancel" or "Accept" buttons will work.
Test your new update by using ACC with the game! If ACC doesn't recognize the game version when your game is launched, or the ACC keyboard keys do not set the Cruise Control in the game, then it is likely that something is wrong in your update file. In most cases you can correct your update file then re-apply the file in the same manor. However, in a few cases, if you make a mistake in your update file then you may need to restore the ACC database file using a back-up copy before attempting to update ACC with the corrected update file, because (as far as I know) there is no way to remove a broken entry from the ACC database.
Last edited by Josh0 on 27 Jan 2022 15:43, edited 3 times in total.
User avatar
vjbenn
Posts: 76
Joined: 17 Mar 2018 14:37

Re: Adjustable Cruise Control Updates for ETS2

#3 Post by vjbenn » 07 Jun 2019 03:36

Thank you for the update Josh0!
User avatar
StAfFoRdShIrE
Posts: 14
Joined: 19 Sep 2013 07:50
Location: France

Re: Adjustable Cruise Control Updates for ETS2

#4 Post by StAfFoRdShIrE » 07 Jun 2019 07:57

yeaaahhhhh Thank a lot my freind!!!!
User avatar
zrex01
Posts: 362
Joined: 22 Mar 2013 12:52
Location: Moncton N.B. Canada

Re: Adjustable Cruise Control Updates for ETS2

#5 Post by zrex01 » 07 Jun 2019 13:19

A very big thank you for this update.
User avatar
luukf8
Posts: 27
Joined: 08 Aug 2018 21:03
Location: The Backcorner (NL)
Contact:

Re: Adjustable Cruise Control Updates for ETS2

#6 Post by luukf8 » 08 Jun 2019 14:45

Josh0 wrote: 07 Jun 2019 00:31 ETS2 1.35.1.0s/1s, 32-bit and 64-bit, Steam only: https://pastebin.com/tYiYKxkm

[...]

To apply game update files to ACC:
  1. Click on the link in the list above next to the version of the game that you have.
  2. Click on the "Download" button on the pastebin page.
  3. If your browser asks you how you want to open the file then select to save the file.
  4. If your browser asks where on your computer you want to save the file, select your desired location and change the extension of the filename from ".txt" to ".ini" (you can also change this filename after the file has been saved to your computer).
  5. Open your ACC application, click the "Settings..." button, then click the "Update Games data..." button, then click the "Load update file..." button.
  6. In the open file window navigate your filesystem to find the ACC games update file that you just downloaded, select it and click the "Open" button.
  7. Assuming you never applied this update file before, the entries found in the update file will automatically be checkmarked in the list so you can just click the "Make Update" button.
  8. After clicking "OK", close the "Game data update" window and close the "Settings" window.
  9. ACC is now ready to play with your game!
Hi,

For me this doesn't work...
When I try to open the .ini file, it shows me this:
[ external image ]
Can you please help me fixing this?
Thank you!
User avatar
Josh0
Posts: 234
Joined: 30 Mar 2016 03:08

Re: Adjustable Cruise Control Updates for ETS2

#7 Post by Josh0 » 08 Jun 2019 14:59

@luukf8, did you select the correct .ini file? If you open the file in a text editor (like Notepad) does it look exactly the same as the text on the pastebin page?
User avatar
luukf8
Posts: 27
Joined: 08 Aug 2018 21:03
Location: The Backcorner (NL)
Contact:

Re: Adjustable Cruise Control Updates for ETS2

#8 Post by luukf8 » 08 Jun 2019 16:27

Yep, it does!
[ external image ]
Any ideas?
User avatar
BigBang123
Posts: 18
Joined: 26 Sep 2013 18:27

Re: Adjustable Cruise Control Updates for ETS2

#9 Post by BigBang123 » 09 Jun 2019 21:34

@luukf8 i just imported the ini into mine ACC and it works without any problems. If you like to, you could use the one that i saved from the pastebin data of Josh0. I uploaded it onto my google drive and you can download it here:

https://drive.google.com/file/d/122cHgx ... sp=sharing
Regards

Dirk


Sorry for my bad english, it's not my natural language.
User avatar
luukf8
Posts: 27
Joined: 08 Aug 2018 21:03
Location: The Backcorner (NL)
Contact:

Re: Adjustable Cruise Control Updates for ETS2

#10 Post by luukf8 » 09 Jun 2019 22:05

Nope, it still doesn't work... :(
[ external image ]
(Please click above, it's a gif)
Post Reply

Return to “Others”

Who is online

Users browsing this forum: johnboyintexas and 20 guests