EECH community patch released

Hey, guys! For everyone, who still remember for what EECH stand for, we have good news - 1.16.1 update was just released! Nothing revolutionary, but a lot of fixes and some new features.
If you are not familiar with Enemy Engaged series, but still likes helicopter simulators or arcade shooters, this game can be interesting for you. Just don’t expect too much from 20 years old game, graphics engine is quite outdated.

Two ways to update your vanilla or 1.16.0 version of the game:

Features

Missing Mi-28 cockpit instruments added (by messyhead)
Missing Ka-50 cockpit instruments added (by messyhead & Banita)
Ka-50 cockpit model and textures improvments (by Viper)
Ka-50N Night Shark upgrade with FLIR, the MFD video contrast upgrade (by Javelin)
Flight model improvements (by Javelin)
Hovering modes fixes and improvements (by Javelin)
Simple realism restrictions removed (radars and EO can be used)
Manual cockpit light in 3D cockpits
SAM radar scan floor changed to cone
Weapons added: Mi-6 12.7mm gun, Ka-29 GSH23L 23MM cannon pods
Helicopter fuel amount calculation after mission started
Difficulty and realism adjustments (check Realism)
Blade stall effect replacement
New INI variables/values: dyad, masterserver, unbind_jbuttons, intro_music, ingame_music, action_music, complete_music, TIR_idle
Wheels power steering for CH-46 / CH-47
Ingame music in WAV format

Bug fixes

The MFD Export issues
The joystick Deadband
Wrong helicopters weapon angles
FARP object damage tail rotor
Masterserver connection error
AI helicopters does not consume fuel
Mouse does not work for view control while TrackIR is connected but disabled
Forest trees appear as a wall because of same visibility distance
Kiowa unstable engine torque
Engine over-torque does not cause engine damage
No rain effect in AH-64D
Wrong fuel indication in large helicopters with default cockpit
Controller Autoconfigure feature does not work
Clouds pass through without opacity effects (textures flickering still happen)
Helicopter explode right after hovering mode was disabled
Camera position changed after Esc pressed in Hind

9 Likes

Enemy Engaged: Enemy! (EECH v1.16.1) trailer (was not able to past third link as novice member)

4 Likes

Hey there, @thealx and welcome to Mudspike! :mudspike:
You will find a lot of old nostalgic EECH flyers here!
That looks great!

1 Like

Welcome to the spike @thealx! Awesome to see good ol’ EECH still getting love!

1 Like

Welcome to Mudspike @thealx! And thanks for the info! I did not know this was still getting updates!

Great timing as I was just thinking of installing EEAH & EECH to check out its Tacview functionality.

1 Like

oh, Tacview wasn’t tested for many years, so feel free to report any issues you will find.

Welcome to Mudspike @thealx. :sunglasses:

Wheels

Welcome to Mudspike @thealx - I’ve been playing the new release the last few days in anticipation of writing an article on it…! It looks lovely!

2 Likes

Trust level was bumped to Regular - you should be good to go…!

Screens I took last week…I’ve since updated to 1.16.1

1 Like

And…of course…it does work in vorpX. I wouldn’t recommend fiddling it with it too much, but I’m finding a happy place with it, but still need to finish up my HOTAS profile…(these screens were taken from 1.16.0)

2 Likes
1 Like

yeah, I know about title screen version/title being not updated.

But fact, that you still see 1.16.1TEST version is really wrong. you can try to remove the game (using X at the top right corner) and add it again, maybe it will be solved.

application is quite buggy, wasn’t able to focus on it for some time.

1 Like

No, my current version of the installer is working correctly - that image with the TEST version was from your previous release of the installer I think.

1 Like

I’ve made some breakthroughs on tweaking the ini . Two of the values are an order of magnitude in either direction with some very surprising results. Other than some persistent issues with yaw rate inconsistency and ramp up that I have some ideas about dealing with longterm that you can tweak on a helo-by-helo basis in GlovePIE, the flight model of EECH is now better than anything in FSX or Flight Gear for AFCS helos with 1.16.2 when using GWUT 1.16.1 while using PPJoy & GlovePIE. While X-Plane might be best for pole cyclics, with DCS a close runner up, EECH now can hold its own nicely for joystick and pressure stick side access controller flying. If you have a pole cyclic or low-resistance joystick with a long throw, you won’t need PPJoy & GlovePIE and it will just be a lower workload compared to what you’re used to. You might want to also increase the head g-forces and vibration in the ini to 1.5 each. Personally, I like the effect.

I’m using PPJoy virtual joystick as an intermediary between my HOTAS and EECH, and assigning the virtual joystick in the sim and ini. Then I use GlovePIE running a script as a programming intermediary to roughly and ‘dummly’ (it doesn’t know the sim aircraft’s attitude) do auto trimming rate-command / attitude-hold, as well as limit the ranges of auto trimming and limit the range available for yaw, to add yaw trim, etc.


Here is my latest GlovePIE EECH script:

var.nlzrots = sign(Joystick1.zrot) //Nonlinear pedals. Can be combined with sim nonlinear setting.
var.nlzrotm = abs(Joystick1.zrot)^(1.3) //Usually 1.3 but 1 will make it linear.
var.nlzrot = var.nlzrotm * var.nlzrots

if var.nlzrot = 0 then { //Better pedal fix.
var.pedalfix = -0.999999
else
var.pedalfix = var.nlzrot // pedals
}

var.dial = smooth(deadzone(joystick2.dial, 0.008), 10)

if shift+t then begin { //Auto trim clear
var.xhold = 0
var.yhold = 0
PPJoy1.Analog0 = var.xhold + deadzone(joystick2.x, 0.075)
PPJoy1.Analog1 = var.yhold + deadzone(joystick2.y, 0.075)
PPJoy1.Analog5 = var.pedalfix / 2 - var.dial /2 //For pedals. Usually bypassed unless FM 0 or 1 with coaxials.

else

var.xhold = EnsureRange(deadzone(joystick2.x, 0.075) / 30 + var.xhold, -.4, .4) //Roll auto trimming. Over -.5/.5 causes continuous roll, but -.75/.75 is nicely responsive.
PPJoy1.Analog0 = var.xhold + deadzone(joystick2.x, 0.075) //Roll
var.yhold = EnsureRange(deadzone(joystick2.y, 0.075)/ 30 + var.yhold, -.75, .75) //Pitch auto trimming
PPJoy1.Analog1 = var.yhold + deadzone(joystick2.y, 0.075) //Pitch
PPJoy1.Analog2 = Joystick2.z //Collective that I’m currently bypassing and going direct
PPJoy1.Analog5 = var.pedalfix / 2 - var.dial /2 //For pedals. Dividers 1 or 2 for non-hokums, Higher for hokum B. Can be bypassed and assign pedals directly in sim for FM 2.
}
var.bank = PPJoy1.Analog0
var.pitch = PPJoy1.Analog1
var.collective = PPJoy1.Analog2
var.GPyaw = PPJoy1.Analog5
var.rawpedals = Joystick1.zrot
var.throttle2 = Joystick2.zrot
var.bottomwheel = Joystick2.slider
var.rawtopdial = Joystick2.dial

Lets call this Reticuli’s AFCS Mimic EECH.ini FM Tweaks for use with GWUT1.16.1:


EECH.ini edits:

[Dynamics]
flight_model=0 # 0 is the default flight model with coordinated turning that the dyn and ini setting affect. 1 is werewolf’s adjustments of this default FM which is similar to FM 0 but without some yaw aerodynamic streamlining or any auto coordinated turning, 2 - alternative pseudoreal FM (def = 2) has IAS affecting RPM slightly with rotor disengaged and RPM supposedly affects lift with rotor engaged, though RPM does not fluctuate enough with fast collective changes with rotor engaged and increasing IAS takes too long to increase RPM with rotor disengaged. Taxiing does is not safe with FM 2 due to strange yaw and roll moments possibly due to FM interaction with suspension mods. FM 2 is not affected by any dyn files or most ini lines. FM 2 adversely lowered both translational lift and ground effect, the latter of which was prior to these ini changes already too low in the sim on FM 0 and 1. FM 0 and 1 Hokum B max yaw is always too high, while FM 2’s is too low. FM 2 also reverses the EECH Translational Lift menu option such that on is off, so if using FM 2 you must set that to off to get any ETL at all. FM 2 has more realistic auto rotation. FM 0 and 1 are slightly too lite and high thrust. FM 2 is too heavy and low thrust. Hence differences in dmrl. FM 0 and 2 turn coordination mixes in yaw when banking at too low a speed still. FM 0 (optionally, obviously, you can use FM 1 with these settings if you don’t want turn coordination or yaw streamlining, but it’s a mystery how FM 2 is affected by these settings if at all other than dmrl and dyad) with Reticuli’s 1-5-2021 ini values in combination with PPJoy and GlovePIE causes EECH to most closely mimic a FBW helicopter like especially the Comanche and also somewhat like the Zulu Viper, Apache D, or Hokum similar to the work Penn State’s rotorcraft research lab and the Army ADOCs program have done.
enginerealism=1 # realistic engine workload simulation model (0 = off, 1 = on) (def = 1)
enginestartup=0 # manual engine start up, off by default (0 = off, 1 = on) (def = 0)
drbs=1.0 # retreating blade stall, floating point scaling factor for RBS effect (default = 1.0). Most helos should have this happening sooner and benefit from 1.1 or even 1.2, but some like the Zulu Viper are the reverse, so might as well just leave it at the default.
drv=1.0 # rudder value, scaling factor for drag on tail rotation (Default = 1.0.) Undesirable parameter to be adjusting since this must work as the tail drag, max Hokum B yaw rate, and as an inappropriate yaw damper that should be separate from drag. Very high like 30 is possible with very low fractional dra below. Even higher drv produces counter effects when banking opposite during yaw.
dra=1.0 # rudder acceleration, scaling factor for tail rotation acceleration (default = 0.8). Undesirable value to be adjusting, as maximum yaw rate would be more useful. If set low enough and the tail drag high enough, non-Hokums will not continually ramp up yaw rate, but then the Hokum with such a high tail drag gets further insane max yaw rates.
drd=0.1 # main rotor drag, scaling factor for drag caused by main rotor (default = 1.0). It’s uncertain if this affects parallel aerodynamic streamlining drag of the rotor disc, but it is definitely perpendicular drag that affects angular rotational rates for a given X and Y input and at higher settings causes the helicopter to bleed speed with X and Y axis maneuvering. Ground effect may noticeably increase at 0.1 over higher values, and since ground effect, aerodynamic streamlining, and aerobatic capabilities are problematic in EECH, this value at 0.1 seems essential. Joystick sensitivity on your end may need adjustment to compensate for this increased pitch and roll authority.
dmrl=0.9 # main rotor lift, scaling factor for lift of main rotor (default = 1.0). With FM 0 or 1, dmrl of 0.9 is most accurate. With FM 2, dmrl of 1.1 is most accurate.
dtrd=10.0 # tail rotor drag, scaling factor for drag caused by tail in forward flight (default = 1.0). It is difficult to say exactly how this is affecting flight, but lower than 10.0 seems to have an adverse effect on aerobatics, and at 10.0 something magical seemed to happen both with aerobatics and in just the normal flight envelope maneuvering NOE with collective and banking flying between buildings seat-of-the-pants. The ability to do a proper forward speed landing on a runway and taxi in FM 0 with all the above (whatever your chosen yaw setting and other mitigation methods) made it apparent something had snapped into place with these non-yaw ini values.
dyal=2.5 # yaw altitude loss (default = 5.0). This is the only yaw ini value I have some confidence about. If you have crosscoupling off, you might want a value of 5.0. This is perhaps excessive for AFCS aircraft and with crosscoupling 2.5 feels better and is less prone to crashing with large pedal inputs while still having a noticeable affect. YMMV.
dyad=3.0 # global air density modifier (0.5 - increase dynamics ceiling, 2.0 - decrease) (default = 1.0) A value of about 3.0 appears required with FM 0 to get an Apache D up to just over 20,000ft but not much higher at 100kts for a realistic ceiling.


Optionally I’m also using the following nonlinear collective settings, but I’m sure that’s very dependent on your individual throttle model:

nonlinear-collective-zone1=0.4 # non-linear control value for throttle (n = % throttle position joystick to represents 60% collective) (10% = 0.1) (0.0 = off (linear control), 1.0 = max) (def = 0.3)

nonlinear-collective-zone2=1.0 # non-linear control value for throttle (n = % throttle position joystick to represents 100% collective) (10% = 0.1) (0.0 = off (linear control), 1.2 = max) (def = 0.7)

nonlinear-collective-percentage-at-zone1=50.0 # collective percentage at zone1. Valid values are in range from 1.0 to 99.0, default is 60.0.

What I think drd at 0.1 might be doing at low altitude is causing the rotor disc to deviate upward away from the ground effect, which, while more likely to occur with lighter helicopters in real life, is a wonderful effect to be having in EECH at all, and is evidence, I believe, of that parameter being responsible to some degree for an aerodynamic streamlining effect of the main rotor disc. It also is a larger effect with the turbulence of landing gear.

New GlovePIE script with yaw range knob. I’m still working on a pumping yaw script that does more pumping during hovering and less when laterally moving, but it’s proving to be slightly more buggy than I expected even though it mostly seems to work.

var.yawrange = (smooth(deadzone(joystick2.slider, 0.008), 10) + 2 ) ^ 2 // Bottom throttle thumb rotary assigned as a yaw range.
var.nlzrots = sign(Joystick1.zrot) //Nonlinear pedals.
var.nlzrotm = abs(Joystick1.zrot)^(1.3) //Usually 1.3 but 1 will make it linear.
var.nlzrot = var.nlzrotm * var.nlzrots
if var.nlzrot = 0 then { //Better pedal fix.
var.pedalfix = -0.999999
else
var.pedalfix = var.nlzrot // pedals
}
var.dial = smooth(deadzone(joystick2.dial, 0.008), 10)
if shift+t then begin { //Auto trim clear
var.xhold = 0
var.yhold = 0
PPJoy1.Analog0 = var.xhold + deadzone(joystick2.x, 0.075)
PPJoy1.Analog1 = var.yhold + deadzone(joystick2.y, 0.075)
PPJoy1.Analog5 = (var.pedalfix / 1 - var.dial / 2 ) / var.yawrange //For pedals. Usually bypassed unless FM 0 or 1 with coaxials.
else
var.xhold = EnsureRange(deadzone(joystick2.x, 0.075) / 30 + var.xhold, -.4, .4) //Roll auto trimming. Over -.5/.5 causes continuous roll, but -.75/.75 is nicely responsive.
PPJoy1.Analog0 = var.xhold + deadzone(joystick2.x, 0.075) //Roll
var.yhold = EnsureRange(deadzone(joystick2.y, 0.075)/ 30 + var.yhold, -.75, .75) //Pitch auto trimming
PPJoy1.Analog1 = var.yhold + deadzone(joystick2.y, 0.075) //Pitch
PPJoy1.Analog2 = Joystick2.z //Collective that I’m currently bypassing and going direct
PPJoy1.Analog5 = (var.pedalfix / 1 - var.dial / 2 ) / var.yawrange //For pedals. Usually bypassed unless FM 0 or 1 with coaxials. Now with yawrange on thumb dial.
}
var.bank = PPJoy1.Analog0
var.pitch = PPJoy1.Analog1
var.collective = PPJoy1.Analog2
var.GPyaw = PPJoy1.Analog5
var.rawpedals = Joystick1.zrot
var.throttle2 = Joystick2.zrot
var.bottomwheel = Joystick2.slider
var.rawtopdial = Joystick2.dial

I’ve been testing GWUT 1.16.2 with EECH v1.16.2 and so far have not noticed much difference in the FMs over GWUT 1.16.1. May be fine to use the newer GWUT after all.

More organized recommended to-do list posted at-request

FM Stuff:

  1. Make my ini Dynamics tweaks the default… including the comments, like dmrl at 0.9 for FM0/1 and 1.1 for FM2. Obviously when some of the below stuff is done, some of the explanatory text will go.

  2. Fix Translational Lift option when FM2 is in use. Currently, on is off and off is on. Some people may choose to use FM2 with its bizarrely-weak Ground effect and Translational Lift even when it’s properly on, so might as well get that option setting working correctly. It’s also possible that in the long run this model might have more potential, such as with more stable yaw pedal performance, but only time will tell.

  3. Muted yaw on coaxials in FM2 needs fixing next. Makes them and much of FM 2 basically unusable right now.

  4. Fix rotor clutch/brake disengaging when you jump into an aircraft with it already on. Falling out of the sky abruptly could be categorized as a FM problem.

  5. Vibration from extreme cyclic and also on extreme coaxial yaw changes, so like from -1 to 1 of the roll axis in a split second would apply most vibration, and that same amount slower or a less amount just as fast would be less vibration induced briefly. Have it IAS-compensated, too, like the current banking angle vibration is, which is a good thing, by the way. Coning effects from just holding a bank causes some vibration, so don’t get rid of that.

  6. Main rotor damage from the more extreme #5 for longer lengths of time. Less length of time means less chance of damage. More extreme handling requires less time to cause damage. First instance causes some damage and main rotor oscillations, continued extreme handling after a few seconds of oscillations or another instance causes loss of main rotor. The damage and vibration threshold could lower when you are already damaged. Obviously the vibration and noise will be a warning this might occur before the first instance occurs.

  7. Try to put RPM effects from FM2 into FM0/1, or at least make similar RPM response effects in FM0/1. The RPM effects in general need be greater even in FM2, so more sluggish RPM response and opposite effect even with very large and fast collective changes. Excessive RPM and eventually damage with rotor disengaged is already occurring with FM2. Rotor engaged effects are too slight right now, though. In general, RPM and lift needs to also increase sooner when you lower collective and nose down with rotor disengaged. During auto rotation you manage RPM that way immediately, while currently there’s a lag for the first few seconds and you require a ridiculous amount of IAS and altitude loss to get the RPM to start increasing.

  8. Add an axis in-sim for yaw scaling for people that don’t want to use PPJoy/GlovePIE. All the way to one end and you get normal full yaw available on the yaw axis, other end of axis and you get some fraction. Probably bringing the axis that’s been smoothed and added 2 then to the power of 1 is sufficient rather than a power of 2, which gives you a divider of 1 at minimum (the original axis), around 2 on the center of the axis, and a divider of 3 at max attenuation. A power of 2 for 1 of the axis itself plus 2 at max gives a divider of 9, which is excessive unless you’re doing crazy stuff with the ini yaw drag and acceleration Dynamics.

  9. Yaw is too fast and ramping up on coaxials on FM0/1. The most extreme yaw rates in a hover are related to an acceleration or ramp up and increases dramatically after extended continuous pedal. It appears worse with higher altitude or collective. While yaw drag should not be mimicking yaw damping and yaw acceleration is really the wrong value to be adjusting, I don’t know how much of max yaw is dictated by the GWUT. A separate yaw damper parameter may be necessary.

  10. In FM 0 and 2, auto coordinated turning mixes in too much yaw at low an IAS. Turn coordination needs to not occur until into translational lift, and then only more slightly at low speed and to keep FPM centered during bank at higher speeds. Right now on FM 0 and 2 it seems almost completely proportional to banking regardless of IAS, making side slipping in a hover impossible without counter yaw, which is difficult to do predictably. Of course FM 1 doesn’t have a lack of ease of side slipping when in a hover…

  11. FM 1 should really just be FM 0 without coordinated turns. The yaw streamlining when in forward flight is too weak right now to be remotely realistic in FM 1, though its current lack of coordinated turning is slightly useful considering the current ways it mixes in too soon in FM 0 and 2. Hypothetically, FM 1 could simply be removed completely if Auto Turn Coordination became an in-sim options setting like Translational Lift and Ground Effect are… assuming #10 can be done. In contrast, the only reason ETL, GE, and RBS are in-sim settings were so people could turn them off and see how deep the EECH flight model was. It is not easier to fly without ETL and GE, as should be glaringly obvious to anyone trying the current FM 2 with Translational Lift set to “ON” (actually off).

  12. Zulu Cobra needs its max IAS and RBS threshold raised. Most other helos need it slightly lowered, but for the meantime I’d probably leave the others where they are.

  13. Taxi yawing in FM 2 is not working right, as there seems to be weird force moments occurring, possibly related to the suspension mod interacting with the ‘alternative’ FM coding mod.

  14. Ensure wind is part of IAS calculations when there is a headwind or tailwind. Not sure if it is.

  15. G-forces head movement is too slow to move, especially on returning back to center.

  16. Later on we can figure out a way to add my GlovePIE scripts into EECH so people have to do less setup. I will work on having three control modes where you double tap the trimmer button to change to each with a voice telling you the mode. First will be the current default pitch and roll wings level mode with manual trimmer. Second mode will be same as first but with auto trimming of pitch. Third will be full dynamic auto trim like the above posted scripts.

  17. As for FM stuff off the top of my head, the final step before a complete rewrite of the FM code of EECH would be simply to find a way to stop the continuous roll that occurs past a certain roll angle. That way you could roll inverted, stop applying X axis, and it will stay. Right now, past about 0.40/-0.40 on X, you get this continuous roll. So when you are finally inverted, you have to deflect a bit back in the opposite direction to hold the attitude rather than just release stick pressure. This appears to be part of this artificial wings leveling it’s doing.

Non-FM stuff:

  1. I would like a view mode that keeps the FPM in the center of the view as you maneuver.

  2. Calling in artillery doesn’t seem to be working. Not sure if that’s actually a bug or just a misperception on my part.

  3. AI helos landing on top of helos.

  4. Carriers don’t seem to be protected by CAPs or the rest of their group ships very well.

  5. The game’s low-level foot of its contrast curve or gamma seems off, like you’d need a pro-quality CRT or an OLED to see any detail in shadows. I don’t mean just at night, which by the way I turn down to 0.3 darkness usually in the ini to make the NVG necessary. The gamma just seems oddly skewed. I can sort of adjust for this with my monitor or with NVidia settings, but it might be worth checking out.

  6. The ability to change the amount of dust or have the dust change depending on environment. Deserts should have the most, obviously, and are fine where they are, but most other environments have too much dustout effect. Maybe use the same flag as clouds not being in deserts to have them get the full dust out and everywhere else get 50% of that amount.

  7. Add jettison stores. Ctrl + J. Useful for increasing lift after engine failure.

  8. Previous/next target both cycling in the same direction bug is also present in 1.16.1, so might be quite old.