Here is BAM v235 (release candidate):
https://www.ravarcade.pl/beta/BAM.dllChange log:
1. modified log/charts created for flipper when "SolenoidOn" and "SolenoidOff" is called:
- removed "grean" line (i think it is not usefull).
- red (flipper angle) and yellow (omega) both are as function of time. (Previously omaga was function of angle).
- adder maximum and minimum Omega valuses.
2. Moddified way how omega is calculated from flipper-rotation-chart (only for SolenoidOn). Now from chart is calculated "force" when it is applied to flipper. Where is difference:
- if there is no ball on flipper, no hit, then flipper will move exaclll same way as previous;
- ... but if ball lays on flipper and is heavy (in relation to flipper) it will reduce finall flipper rotation speed. So, in next frame omega applied to flipper will not be just value taken from chart, but it will be calculated like for "force" applied and result omega will be little smaller.
It seams complicated to explain, but now flipper rotation work more like result of rotation force than blind constant rotation.
-----
Demo table:
https://www.ravarcade.pl/beta/FlipperExt-demo-3.fptI spend whole day on tweaking it... and i'm not very happy with results. Maybe someone else will be able to make more. I'm giving up here.
Whole demo is focused on ball controll with flipper.
Here is list what i did and why:
1. Ball must have weight, = 80. So it is 4 times havier than FP.
2. Gravity set 9000, Damping = 0.25
That was easy part. For me this gives me ball move as i want.
3. Flipper mass.... first i try 600. So, Flipper mass / Ball mass = 7.5.
I set it this way, because i want to see how flipper moves when it is hit by fast ball. See video:
https://youtu.be/1wyL8Y2iDswBut at end i have set it to 2000 and this is completly invisible. Reason: see No. 7.
4. elasticCoef - OnPreHitFlipperSettings_bounceControl.
I use _prehit subroutine to change ball bounce on flipper. Nothing else is controled in _prehit.
Also i moddified it little bit:
- elasticCoef is calcuated base on FlipperExt.BallVSpeed. Previously it was xBAM.Ball.Speed. I change for 2 reasons: (1) only VSpeed have meaning in real world (or in 95%), (2) when ball is roling horizontaly over flipper (from "inline") change "elasticCoef " have big (random) impact on how ball flys. See No. 7.
5. Rotation Chart for "SolenoidOn":

With points:
Code:
0 ms = 3.0 %
20 ms = 5.0 %
38.5 ms = 11.7 %
55 ms = 30.0 %
77 ms = 100.0 %
Goal is: slow flipper move after button is pressed.
This allows me to make: "tap pass"
http://funwithbonus.com/new-pinball-dic ... -tap-pass/On my cheap membrane keyboard without long training ~30 % times
6. Rotation Chart for "SolenoidOff":

With points:
Code:
0.0 ms = 200.0 %
5.0 ms = 5.0 %
30.0 ms = 15.0 %
60.0 ms = 100.0 %
You may think it is odd. Big "jump" at begin, right after button was released then long slow move and at end fast again.
Goal is: right after button was release flipper should stay for some time near "maximum angle" position, but not at that "maximum" angle but little below. So, when i press button again quickly i should be able to make: "tip pass"
http://funwithbonus.com/new-pinball-dic ... -tip-pass/This i hard to do it on my keyboard, i have less than 5 % successed passes. I belive better keyboard will make it easier.
Here is result how flipper moves when button is pressed and release:
https://youtu.be/Mxh8lzBjBnQ7. Captured flipper rotation log/charts:
A. Without ball:

B. With ball and flipper weght = 600

C. With ball and flipper weght = 2000

So, low flipper mass results in slow ball speed at end, flipper rotation speed accelerate when ball is not in contact with flipper, flipper speed is reduced whem ball hit flipper and accelerate again. This repeats few times, at end it is hard to hit "target".
Something like in "C" was visible, when i used xBAM.Ball.Speed instead FlipperExe.BallVSpeeed.
Smothes chart i get, even is set elasticCoef = 0. (No bounce at all), but this is not "realistic" value for this param.
8. From Left flipper i was able to do few time "slingshot pass", but it was extremly hard. I think it is beter to move little bit sligshot, or flipper, or change angle of flipper instead try to modify params and charts to make it possible.
9. Target practice for "inlane" (build in test in BAM):
https://youtu.be/2qlDjc4cTS4On video you can see how i do "target practice" to check what is in range for flipper.
You can change ball starting position, speed, direction.
This test work like this:
1. When you press start, ball will roll. When ball "hit" flipper, BAM will simulate "button press". BAM will also count how many physics simulation frames passed from test start... and ofcource it will log ball position for 1000 ms. (one red line).
2. BAM will repeat everything from start, but next time it will press "button" given number of frames later (3 frames are default)... and repeat it few times, until it will find, that ball falls from flipper before button was pressed.
3. ... now BAM repeat everything, but button will be pressed 3 frame earlier.... and repeat until flipper will stop moving befor ball hit it.
You can check what will change, when you modify flipper mass, omega