redterror Posted November 16, 2014 Posted November 16, 2014 Hi folks - I'm hoping someone can help me improve the way I'm using my warthog profiles. Right now I have 2 main profiles - one originially built for the A10C that just has the flight stick under TARGET control and one I downloaded for FC3 (both stick+throttle under target for that one). I use the "A10" profile for BS2 and the Mig21 as well, but these tend to not work as nicely since the throttle switches seem to work as toggle buttons in DCS. I don't mind having different profiles for different games, but the rub is in multiplayer where I might join a server, find the slots I want full, then want to jump into another aircraft. Except now I have to close DCS, change my profile, and rejoin. My thinking was that if I had a single unified TARGET profile and managed all DCS-related keymappings in game, that would be better. Is that possible? Is there another better way that I don't know about?
streakeagle Posted November 16, 2014 Posted November 16, 2014 I know your pain. After carefully considering all the trade-offs, the best solution takes more work but it the way to go: no profile at all. Here is my rationale after wasting some time experimenting: 1. With the stick and throttle mapped into Target, there are only so many DirectX buttons that can be mapped, and the Warthog has far more switch positions available, so you are forced to use keyboard mapping for quite a few switches. 2. When you map key combinations to Target, there will inevitably be shift, ctrl, and/or alt combinations. As long as you are only pressing one button at a time, this isn't a problem. But if you are mashing multiple buttons and/or have a button that is maintained, you will get unwanted results. 3. Using momentary triggers in target helps eliminate key mapping conflicts, but if you simultaneously press two buttons, you may still have weird results. More importantly, when you start a mission, it is impossible for the game to synchronize in-game cockpit controls with the Warthog if the buttons are not maintained. They will only sync when you move them. 4. When Target is not used, the throttle and stick are treated as two separate controllers. The default DirectX mappings work flawlessly. But you lose one position of each switch: i.e. a two position switch only has a DX button mapped in one direction, while a 3-position switch will only have DX buttons on two of the three positions. For some game functions, you need an active response to each position. 5. The default control mappings in the LUA can be edited to provide the desired functionality without any Target Profile or other tricks using the default DX buttons of the stick/throttle. This means each aircraft can correctly and effectively use all the desired controls without any changes while in single or multiplayer. 6. When new patches get installed, the default LUA for one or all aircraft will get overwritten. But the overwritten file is saved and you can copy and paste the custom control mappings in seconds. 7. Only one little flaw remains: if the default position of the switch (say the center position of a 3-way) is the not default position of the in-game control, it still has no DX button mapped to it, so it may still need a switch transition to sync the two controls. In my experience, this caused me a problem with formation lights. I wanted center to be off. When the game starts with the aircraft in flight, the lights are on by default and my switch is in the off position, but the lights stay on until I move to an "on" position and move back to off. The solution is to map the desired default position(s) to "hot" switch positions and the default in-game positions to the positions that have no dx button assigned so that the game will sync to them if they are selected. 1 [sIGPIC][/sIGPIC]
redterror Posted November 16, 2014 Author Posted November 16, 2014 Thanks for the insight. Can you elaborate on handling the "one less position of each switch" solution? Do you have an example or two for, say, the flaps toggle and for the EAC switch? I think I'd be ok with what you describe since my core functionality *is* the default, but with a layer in target for trackir stuff. My A10C profile is all the default but with just that extra layer. Also re: game updates - JGSME can solve that nicely.
streakeagle Posted November 16, 2014 Posted November 16, 2014 Here are the mods to the MiG-21bis that I use. -- Alt Commands for Warthog {down=device_commands.RUDStop_lock,up=device_commands.RUDStop_lock,cockpit_device_id=devices.ENGINE_START_DEVICE,value_down=1.0,value_up=0.0,name='Alt Throttle Start/Stop Position Toggle',category='Engine'}, {down=device_commands.Zazig,up=device_commands.Zazig,cockpit_device_id=devices.ENGINE_START_DEVICE,value_down=1.0,value_up=0.0,name='Alt APU On',category='Engine'}, {down=device_commands.Chr,up=device_commands.Chr,cockpit_device_id=devices.ENGINE,value_down=1.0,value_up=0.0,name='Alt Emergency Afterburner On',category='Engine'}, {down=device_commands.Flaps0,up=device_commands.Flaps25,cockpit_device_id=devices.FLAPS,value_down=1.0,value_up=1.0,name='Alt Flaps In (joystick)',category='Flight Controls'}, {down=device_commands.Flaps45,up=device_commands.Flaps25,cockpit_device_id=devices.FLAPS,value_down=1.0,value_up=1.0,name='Alt Flaps Landing (joystick)',category='Flight Controls'}, {down=device_commands.GearLever,up=device_commands.GearLever,cockpit_device_id=devices.GEARS,value_down=1.0,value_up=0.0,name='Alt Gears Up',category='Gears, brakes and chute'}, {down=device_commands.GearLever,up=device_commands.GearLever,cockpit_device_id=devices.GEARS,value_down=-1.0,value_up=0.0,name='Alt Gears Down',category='Gears, brakes and chute'}, {down=device_commands.NavLights,up=device_commands.NavLights,cockpit_device_id=devices.LIGHTS,value_down=0.99,value_up=0.0,name='Alt Nav Lights Max',category='Lights'}, {down=device_commands.NavLights,up=device_commands.NavLights,cockpit_device_id=devices.LIGHTS,value_down=0.33,value_up=0.0,name='Alt Nav Lights Min',category='Lights'}, {down=device_commands.ASPssNeutrRns,up=device_commands.ASPssNeutrRns,cockpit_device_id=devices.WEAPON_CONTROL,value_down=0.0,value_up=0.5,name='Alt Weapon AA Mode - SAR Missile',category='Weapons / Master control'}, {down=device_commands.ASPssNeutrRns,up=device_commands.ASPssNeutrRns,cockpit_device_id=devices.WEAPON_CONTROL,value_down=1.0,value_up=0.5,name='Alt Weapon AA Mode - IR Missile',category='Weapons / Master control'}, {down=device_commands.GearHandleFixator, up=device_commands.GearHandleFixator,cockpit_device_id=devices.GEARS,value_down=1.0,value_up=0.0,name='Alt Gears Handle Lock',category='Gears, brakes and chute'}, Here are the mods to the F-86F that I use: -- Alt Commands for Warthog {down = iCommandPlaneGearUp, up = iCommandPlaneGearDown, name = 'Alt Landing Gear', category = 'Systems'}, {down = nav_lights_commands.F86_CockpitDeviceCommand_LandAndTaxiLights, up = nav_lights_commands.F86_CockpitDeviceCommand_LandAndTaxiLights, cockpit_device_id = devices.NAV_LIGHTS_INTERFACE, value_down = 1, value_up = 0, name = 'Alt Ldg & Taxi Lights - Extend & On', category = 'Left Forward Console'}, {down = nav_lights_commands.F86_CockpitDeviceCommand_LandAndTaxiLights, up = nav_lights_commands.F86_CockpitDeviceCommand_LandAndTaxiLights, cockpit_device_id = devices.NAV_LIGHTS_INTERFACE, value_down = -1, value_up = 0, name = 'Alt Ldg & Taxi Lights - Retract', category = 'Left Forward Console'}, {down = nav_lights_commands.F86_CockpitDeviceCommand_PosAndFusLts, up = nav_lights_commands.F86_CockpitDeviceCommand_PosAndFusLts, cockpit_device_id = devices.NAV_LIGHTS_INTERFACE, value_down = 1, value_up = 0, name = 'Alt Pos & Fus Lights - Steady', category = 'Right Forward Console'}, {down = nav_lights_commands.F86_CockpitDeviceCommand_PosAndFusLts, up = nav_lights_commands.F86_CockpitDeviceCommand_PosAndFusLts, cockpit_device_id = devices.NAV_LIGHTS_INTERFACE, value_down = -1, value_up = 0, name = 'Alt Pos & Fus Lights - Flash', category = 'Right Forward Console'}, {down = electric_commands.F86_CockpitDeviceCommand_EngineMasterSw_EXT, up = electric_commands.F86_CockpitDeviceCommand_EngineMasterSw_EXT, cockpit_device_id = devices.ELEC_INTERFACE, value_down = 1, value_up = 0, name = 'Alt Engine Master', category = 'Right Forward Console'}, {down = electric_commands.F86_CockpitDeviceCommand_BatteryStarterSw_EXT, up = electric_commands.F86_CockpitDeviceCommand_BatteryStarterSw_EXT, cockpit_device_id = devices.ELEC_INTERFACE, value_down = 1, value_up = 0, name = 'Alt Battery', category = 'Right Forward Console'}, {down = control_commands.F86_CockpitDeviceCommand_EngineStop, cockpit_device_id = devices.CONTROL_INTERFACE, up = control_commands.F86_CockpitDeviceCommand_EngineStart, value_down = 1, value_up = 1, name = 'Alt Throttle - Stop Engine', category = 'Systems'}, I keep them all in one group for quick copy/paste. Of course, if the control's name or functionality changes with an update, there may be problems ;) Note: I don't edit or delete existing default controls, I only add alternative controls that provide the functionality I want. 1 [sIGPIC][/sIGPIC]
streakeagle Posted November 16, 2014 Posted November 16, 2014 So, for example, the flaps "UP/MVR/DN" switch has three positions on the Warthog, but only "UP" and "DN" have DX buttons mapped to them. Therefore, I programmed the LUA to provide the desired flap position for "MVR" whenever "UP" or "DN" transitions to off. In the case of the MiG-21bis, I tend to start the game with the switch in the "UP" position. This is a maintained DX button, so the game will see the hot button and sync to the "UP" position immediately. When I select the "MVR" position, the game sees the "UP" button go off and assigns the in-game take-off flaps position. When I select "DN", the game sees the "DN" button go on and assigns the in-game landing flaps position. If I go back to "MVR" position, the game sees the "DN" button go off and assigns the in-game take-off flaps position. So, three positions requires only two lines of scripting for handling the two existing buttons: "UP" and "DN". The two lines have overlapping functions as they both define the same result for their separately assigned DX buttons going "off". In the scripts, "down" means "on" and "up" means "off". [sIGPIC][/sIGPIC]
streakeagle Posted November 16, 2014 Posted November 16, 2014 As for TrackIR, I only map one function into the game: re-center. I have my TrackIR profile for DCS mapped to a button on the throttle. So, I don't need Target at all. [sIGPIC][/sIGPIC]
dooom Posted November 16, 2014 Posted November 16, 2014 Why use target at all? Especially with a10 and it's click pit? I have warthog too and never touched target... There are PLENTY of options once I mapped my paddle as a shift to cover all dcs modules ASUS Tuf Gaming Pro x570 / AMD Ryzen 7 5800X @ 3.8 / XFX Radeon 6900 XT / 64 GB DDR4 3200 "This was not in the Manual I did not read", cried the Noob" - BMBM, WWIIOL
redterror Posted November 17, 2014 Author Posted November 17, 2014 Streak - thanks for this - it's incredibly helpful. I see what you mean about the off-transition events (e.g. the "up" commands). In terms of the trackir mapping, did you configure DCS to trigger a specific keyboard sequence or was trackir mapped to a DX button? If it was the key sequence, can I trouble you to share that example as well? How did you discover all the commands available? Just by reading the lua source or is it documented anywhere? I think this approach is where I'll dig in, and I'll also explore the in-game shift states as dooom mentioned.
Archer7 Posted November 20, 2014 Posted November 20, 2014 Sounds great, exactly what ED should be doing! I don't get how DCS scripting works at all though and I'm not very excited to work my way though that: mind sharing an A-10C config addon that makes it so all two-stage switches off position and three-stage switches centre position work? I'm assuming that's what you've done above. I don't care in the slightest if the controls don't sync at mission start. The sync option only seems to cause crashes for me so I don't use it and manually sync my HOTAS to the game at mission start instead of the game syncing to my HOTAS.
redterror Posted November 21, 2014 Author Posted November 21, 2014 I'm pretty sure if you're not comfortable with lua scripting this is going to be too difficult. What's described is not a standard add-on.
Recommended Posts