Installer Steam
connexion
|
langue
简体中文 (chinois simplifié)
繁體中文 (chinois traditionnel)
日本語 (japonais)
한국어 (coréen)
ไทย (thaï)
Български (bulgare)
Čeština (tchèque)
Dansk (danois)
Deutsch (allemand)
English (anglais)
Español - España (espagnol castillan)
Español - Latinoamérica (espagnol d'Amérique latine)
Ελληνικά (grec)
Italiano (italien)
Bahasa Indonesia (indonésien)
Magyar (hongrois)
Nederlands (néerlandais)
Norsk (norvégien)
Polski (polonais)
Português (portugais du Portugal)
Português - Brasil (portugais du Brésil)
Română (roumain)
Русский (russe)
Suomi (finnois)
Svenska (suédois)
Türkçe (turc)
Tiếng Việt (vietnamien)
Українська (ukrainien)
Signaler un problème de traduction
In the context of layout files, which is what I was specifically addressing with this, it absolutely does matter. It can't work any other way, at least not if you actually want it to *behave* the same as IRL. Splitter & Range functions are just (tri-state) booleans, you can't 'assign' them to gear selector slots, they filter gear ratio names per given gear selector slot. The other problem is that the game only implements a single selector input, no matter how many physical shifters you have connected. So depending on how it handles the multiple concurrent input case (I haven't tested this either) can make the above entirely moot anyway (as in, it just won't work).
--
As to the controls.sii file... I'm not really sure if this will work as intended either, but seems like it could - at least for a 4xN compound box. I'm not able to think off the top of my head why it wouldn't, anyway.
Say you're playing with one of the SKRS shifter's, moving the splitter or range selector should equate to a button toggle, yes? If so, it would be the same principle and you could use button mapping software to register moving a stick into a position as a toggling of one or more of these buttons. You only need it to register 1 selector input as you're basically using button mapping to relocate the splitter/range selectors to what it thinks are 4 buttons on some auxiliary controller or button box but are in reality 4 positions on a second stick. Then you should be able to set your splitter and range booleans as required in the controls file to filter through the ratios for each position of your main shifter.
1. function toggle (gearsel[n]tgl).
2. function ON/active (gearsel[n]on).
3. function OFF/inactive (gearsel[n]off).
It might not be particularly straightforward, but again I think it could, in principle, be possible to map the gear selector inputs & range/splitter-on/off functions to give you the equivalent behaviour of a 4xN compound box.
--
Using layout files, you can achieve a 2xN compound behaviour using either the range or splitter as a selector input. That is precisely what I did for the Mack 10 & 12 speed TRTXL gearboxes ( https://steamcommunity.com/workshop/filedetails/discussion/1463066263/1738841319816761790/ )
So although not baked into the game, force feedback controllers (I buy used Microsoft Sidewinders) might be used to simulate any matrix of behaviors you desire.
Could you air shift the second box then use 4 buttons? Do a 4 x 4, 5 & 4, 6 & 4 with 4 Buttons? 18 Speed with a 4 speed brownie would be fun. Pete in Amarillo, Tx ordered one for a Heavy Hauler around 2017 389. 313 in W.B...
Around 1975 Fuller had a 4x4 air shift on one handel the second handel removed. The Knob had 4 selections with 4 air lines to the top shifting knob. Married Boxes not split Boxes in this set up. Single shaft boxes 205, 210, 305, 350 Cummins Fuller would not warrant the boxes behind a 350 Cummins. To much torque for a single shaft boxes.
Using gearsel on/off you should be able to set up a second stick through the controls.sii or software button mapping by figuring out the input identification for the different gates and then mapping the ID's of the gates you want to use to what state you want gearsel1 and 2 to be in.
Say gate 1 is left and up and its ID is "joy.b1"
Settings in controls.sii
"mix gearsel1off `joy.b1`"
"mix gearsel2off `joy.b1`"
Now gate 1 on that H-shifter turns your range and splitter both off, simulating Lo-Lo on your compound.
Via a layout you can then achieve the madness that is twin stick shifting for whatever transmission your heart desires. Keeping in mind that the stick behaviour might not equate 100% to IRL, as you have to pre-select your range and gear splits so I don't think you can move both sticks at the same time if you wanna make your shift.
It's time consuming to explain, but relatively easy once you know what you're looking for. There are actually a couple ways to do it, but the range/splitter way is not as true-to-life, so I'm gonna skip it. Keep in mind I have no coding or software writing knowledge and figured most of this out by googling things and messing with the files until i made it work. This is also setup for my particular Spicer 8401-A/8341-F combination which is a 4 speed main with a 4 speed auxiliary. If you're trying to modify the Eaton 10-13-18's to use twin sticks for range and splits, it is done a different way (though still quite doable).
You're gonna be doing most of your work in the controls.sii file in your profile. The main ones you need to find are:
config_lines[366]: "mix gearsel1on `joy.b19?0 | semantical.gearsel1on?0`"
config_lines[367]: "mix gearsel1off `! (joy.b19?0) | semantical.gearsel1off?0`"
gearsel 1 is your range selector
joy.b19?0 is a button (this is the button that corresponds to the reverse gate on my G29 shifter, the ?0 is a syntax thing that i don't fully understand)
the ! in front of the () in the 2nd line is the logical operator for "NOT".
the | is the logical operator for "OR", and is how you bind multiple buttons to do the same function.
not sure of the importance of the semantical.gearsel1on?0, so I leave it alone.
What line 1 tells the game is that "when button 19 on joystick 1 is pressed, turn the range selector on." The second line tells the game "if button 19 on joystick 1 is NOT being pressed, turn the range selector off." The game reads each gate as a corresponding continuous button press.
The only reason we need to do this is because the game can only recognize 16 impulses for gear selection and we need all of those for our forward gears so we have to find a way to tell the game how to find the reverse gears.
Next we're gonna edit our gear selector impulses. Yours probably stops at 6 and only has 1 button for each but this is roughly what it's gonna look like when you're done:
config_lines[372]: "mix gear1 `(joy.b13?0&joy2.b1?0) | semantical.gear1?0`"
config_lines[373]: "mix gear2 `(joy.b13?0&joy2.b2?0) | semantical.gear2?0`"
config_lines[374]: "mix gear3 `(joy.b13?0&joy2.b6?0) | semantical.gear3?0`"
config_lines[375]: "mix gear4 `(joy.b13?0&joy2.b5?0) | semantical.gear4?0`"
config_lines[376]: "mix gear5 `(joy.b14?0&joy2.b1?0) | semantical.gear5?0`"
config_lines[377]: "mix gear6 `(joy.b14?0&joy2.b2?0) | semantical.gear6?0`"
config_lines[378]: "mix gear7 `(joy.b14?0&joy2.b6?0) | semantical.gear7?0`"
config_lines[379]: "mix gear8 `(joy.b14?0&joy2.b5?0) | semantical.gear8?0`"
config_lines[380]: "mix gear9 `(joy.b15?0&joy2.b1?0) | semantical.gear9?0`"
config_lines[381]: "mix gear10 `(joy.b15?0&joy2.b2?0) | semantical.gear10?0`"
config_lines[382]: "mix gear11 `(joy.b15?0&joy2.b6?0) | semantical.gear11?0`"
config_lines[383]: "mix gear12 `(joy.b15?0&joy2.b5?0) | semantical.gear12?0`"
config_lines[384]: "mix gear13 `(joy.b16?0&joy2.b1?0) | (joy.b19?0&joy2.b1?0) | semantical.gear13?0`"
config_lines[385]: "mix gear14 `(joy.b16?0&joy2.b2?0) | (joy.b19?0&joy2.b2?0) | semantical.gear14?0`"
config_lines[386]: "mix gear15 `(joy.b16?0&joy2.b6?0) | (joy.b19?0&joy2.b6?0) | semantical.gear15?0`"
config_lines[387]: "mix gear16 `(joy.b16?0&joy2.b5?0) | (joy.b19?0&joy2.b5?0) | semantical.gear16?0`"
You'll notice there's a joy.b and a joy2.b. In my case joy. is the logitech shifter, and joy2. is the thrustmaster.
Each of those gear1-16 is read by your shifter layout as a gear_impulse_index. It's basically what button the game registers to each shifter gate in its original form. By combing 2 button presses with the "&" logical operator, we are able to tell the game that in order to directly select a gear we have to be pressing 2 buttons at the same time. In my case, to select my lowest gear, I need to have both my shifters in the 1st position. For 4th I have to have the Logitech in gate 1 and the Thrustmaster in gate 5. You'll notice 13-16 have 2 sets of numbers separated by the | operator. This is how we're getting our reverse. The game sees this as in order to select "impulse 13" you can press (b16 on joy 1 and b1 on joy 2) or you can press (b19 on joy1 and b1 on joy2). We'll come back to that shortly.
By setting it up this way, as soon as you take either stick out of its required position, you're in Neutral. This allows you to shift the sticks independently, but also requires you to shift them together when going from say an Overdrive to a Underdrive gear. This is key for this type of transmission as unloaded, you can probably skip 3-4 gears at a time until you hit 3U.
The layout is the other place you're gonna be messing with things, and each gear is represented in the layout by:
direct_gearbox_gear : neutral {
gear_impulse_index: 0
selector_1: -1
selector_2: -1
gear: 0
}
That one's pretty straightforward, how does the game find neutral? When all 3 of these conditions are met. gear_impulse_index: 0 means whenever your lever(s) aren't selecting any of your 16 impulses set up in the controlls.sii file. selector_1:-1 means ignore the state of selector 1 (range). selector_2: -1 means ignore the state of selector 2 (splitter).
alright, how about a reverse gear? (this is from my spicer layout)
direct_gearbox_gear: reverse.1 {
gear_impulse_index: 13
selector_1: 1
selector_2: -1
gear: -1
name: RL
}
This basically says in order to find the 1st reverse gear (named RL), the gear selector has to be on impulse 13, range must be on, and it doesn't matter what the splitter selector is doing.
what about 1st?
direct_gearbox_gear: forward.1 {
gear_impulse_index: 1
selector_1: -1
selector_2: -1
gear: 1
name: 1L
}
This is 1st forward gear (named 1L), for which impulse 1 must be selected, and it doesn't matter about either selector. Now hopefully when you see this last one you can figure out how it all comes together.
direct_gearbox_gear: forward.13 {
gear_impulse_index: 13
selector_1: 0
selector_2: -1
gear: 13
name: 4L
}
This one says in order to find the 13th forward gear (named 4L), the gear selector has to be on impulse 13, range selector must be off, and again the splitter selector is irrelevant.
Forward 13 and reverse 1 use the same impulse, but different range settings. The secret here is button 19 on joystick 1. Remember when we set impulse 13 to be activated by pressing either b16 OR b19 on joystick 1 as part of its combination? Well we also told it earlier that if b19 is being pressed on joystick 1, set the range to on and if it isn't to leave it off.
I probably skipped like a million steps so I'll eventually make a youtube tutorial about it at some point with how to make the transmission and layout files form scratch thrown in, but for now I'd consider proper twin sticks with RL functionality to be achieved.
Question/comments?
I just managed to copy the necessary config settings from my test profile to my main profile and it's working as expected. I guess the next step is to extend my shift levers and get those suckers floor mounted.
Thanks! I'm just glad someone else out there wants to implement this, and if you need any help troubleshooting let me know!