Skip to content

Commit 45a3edf

Browse files
committed
Update readme
1 parent 7eb9061 commit 45a3edf

1 file changed

Lines changed: 28 additions & 10 deletions

File tree

README.md

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
# DragWheel #
22

3-
### *A mouse-as-throttle (HOJAM) experiment for [Falcon BMS](https://www.benchmarksims.org/)* ###
4-
5-
Mouselook Gang!
3+
### *Hands-on-joystick-and-mouse (HOJAM) experiment for [Falcon BMS](https://www.benchmarksims.org/)* ###
4+
### *(Use your mouse as a throttle!)* ###
65

76
Are you tired of reaching back and forth, from your mouse to the dodgy 8-bit slider on your cheapo-joystick? Me too.
87

9-
I wondered, what if we could control the throttle by simply *dragging* the mouse forward and back? There isn't any other interaction in the 3D cockpit controlled by drag/drop which should conflict with that.
8+
What if you could control the throttle by simply *dragging* the mouse forward and back? There isn't any other interaction in the 3D cockpit controlled by drag/drop which should conflict with that.
9+
10+
This simple prototype is a proof-of-concept, to try that out -- it works by hooking mouse input in the background, watching for (by default) left-button-drag movements, and generating mousewheel-rotation input events in response. If you assign throttle-axis to the mousewheel in BMS, voila -- your mouse is now a HOTAS throttle! (With far fewer knobs and buttons.. but hey, you can use it to look around.)
11+
12+
This is still just a crude prototype -- but I'd like to get feedback and hear ideas before developing it further. (Is this useful for anyone but me?)
13+
14+
## Change Log ##
1015

11-
So I built this simple prototype as a proof-of-concept, to try it out -- it works by hooking mouse input in the background, watching for left-button-drag movement, and generating mousewheel-rotation input events in response. If you assign throttle-axis to the mousewheel in BMS, voila -- your mouse is now a HOTAS throttle! (With far fewer knobs and buttons.. but hey you can use it to look around.)
16+
#### v1.1:
1217

13-
Currently this is just a crude prototype -- but I'd like to get feedback and hear ideas before developing it further. (Is this useful for anyone but me?) Here are the details for installation and tips for configuration:
18+
- Implemented rudimentary tracking of throttle-lever position, and audible feedback when your throttle hits the minimum/maximum extent (and push-through afterburner detent).
19+
- NOTE: for this to work, you must have mousewheel-sensitivity (in Falcon settings) set all the way to minimum.
20+
- Bonus feature: for those with a 5-button mouse.. you can map the two x-buttons to keyboard scancodes. Some fun ideas:
21+
- PTT for UHF/VHS comms
22+
- Look-ahead / Check-six
23+
- Look-closer / Reset-FOV
24+
- Speedbrake in/out
25+
- Chaff/Flare programs (eg. slap switch / pgm #6)
1426

1527
## Instructions ##
1628

@@ -33,11 +45,14 @@ Currently this is just a crude prototype -- but I'd like to get feedback and hea
3345
`set g_bMouseWheelKnobs 0`
3446
- (recommended) Disable clickable-hotspot anchoring, to clear the way for smooth uniform, mouse dragging:
3547
`set g_b3DClickableCursorAnchored 0`
48+
- (recommended) Disable 4th-button clickable-pit toggle, if you want to utilize the new x-button remapping:
49+
`set g_bMouseButton4TogglesClickablePit 0`
3650

3751
#### *Pre-flight:*
3852

3953
- Simply launch `DragWheel.exe` before launching BMS .. it will open in a console window. Left-click and drag the window up and down, by its titlebar, and observe the stream of console output to verify it's working.
40-
- Relocate your mouse to the left side of your keyboard .. wherever you'd place your hotas throttle if you had one.
54+
- NOTE: to avoid messing up interaction in the 2D environment, wait to launch DragWheel.exe until after you enter 3D.
55+
- (optional) Relocate your mouse to the left side of your keyboard .. wherever you'd place your hotas throttle if you had one.
4156

4257
#### *In BMS:*
4358

@@ -51,6 +66,7 @@ Currently this is just a crude prototype -- but I'd like to get feedback and hea
5166
- Use right-button-drag to look around, as you normally do.
5267
- ***Use left-button-drag (up and down) to control the throttle (forward and back, respectively).***
5368
- (protip) If you prefer to fly with mouselook engaged, you can press and hold both left+right buttons simultaneously to move the throttle without panning the view up or down. (Reminder: [alt+3] is the default key binding to toggle between mouselook and clickable-cockpit modes.)
69+
- (protip) If you have a dx-shift button defined, and it's convenient to press-and-hold on the stick, you can configure that as the button to engage the throttle.
5470

5571
#### *Debrief:*
5672

@@ -68,14 +84,16 @@ Currently this is just a crude prototype -- but I'd like to get feedback and hea
6884
- This is just a prototype / proof of concept. The most obvious downside to this approach is, you lose ability to control FOV with the mousewheel.
6985
- Setting `g_fNarrowFOV 40` in bms.cfg can help mitigate that, if you assign `FOVToggle` "Look Closer" to a stick button you can make regular use of that while keeping hotas.
7086
- If your stick has a throttle-slider, consider assigning that to control FOV.
71-
- Mapping mousewheel-to-throttle isn't well supported or documented by BMS. There are many quirks.. eg. if you click the middle-button it will still reset fov, like normal, but also it will snap your throttle to the 50% point. And beware taxiway-starts -- be ready on the wheelbrakes -- you will spawn in with throttle immediately set to 50%!
87+
- Mapping mousewheel-to-throttle isn't well supported or documented by BMS. There are many quirks.. eg. if you click the middle-button it will still reset fov, like normal, but also it will snap your throttle to the 50% point. And beware taxiway-starts -- be ready on the wheelbrakes! -- you will spawn in with throttle immediately set to 50% (ie. about 75% MIL-power).
7288
- Sometimes the throttle in BMS will stop responding to mousewheel entirely .. when that happens, clicking the wheel (middle) button usually re-engages it.. usually.
7389

7490
## Future
7591

76-
If this idea generates enough interest, I plan to pursue a different approach based on vJoy (or similar framework) to drive a virtual-axis for the throttle instead of relying on mousewheel.
92+
To avoid all the quirks and conflicts with hardcoded mousewheel behaviors, and to provide more reliable behavior based on knowing the absolute throttle-axis position -- this app needs to be rebuilt as a vJoy "feeder" application.
7793

7894
That should be more stable, supportable, and allow the mousewheel to return to its rightful role controlling FOV.
7995

80-
With full control of a virtual-axis, we can also add the possibility of configurable detents (eg. stop the throttle at MIL power; require a second drag to go into AB). Or perhaps add a 2nd axis to control two engines independently -- perhaps by dragging with buttons 4 & 5 held (for 5-button mice) or dragging with a modifier key held. Or .. whatever other crazy ideas we come up with.
96+
Other changes in progress:
8197

98+
- use BMS shared memory interface to only hook the mouse while in 3D pit
99+
- optional overlay to display throttle position, rpm, ftit, brake

0 commit comments

Comments
 (0)