MiSTer-devel / NeoGeo_MiSTer

NeoGeo for MiSTer
GNU General Public License v2.0
145 stars 76 forks source link

Feature Request: Mouse Wheel as a Spinner Option #161

Closed birdybro closed 2 years ago

birdybro commented 2 years ago

Kajoq(@A6AvantRay) was wondering about support for the mouse wheel as a spinner. There's apparently some devices that assign a spinner (or something very suitable to be a spinner) to the mouse wheel.

https://www.amazon.co.jp/dp/B096FL5VXC/ - Novelty arcade board that some people are very excited over. The spinner is seen as a mouse wheel to PC's

https://www.amazon.com/Kensington-Orbit-Trackball-Scroll-K72337US/dp/B002OOWB3O/ - The area around the trackball spins and is the mouse wheel. :) Kajoq confirmed that it is seen as a mouse wheel in the Input Test core. It goes through 0-255 and then repeats from 0 again as you scroll it in one direction:

https://user-images.githubusercontent.com/16388068/157586578-b003ab9e-78a2-4186-8692-04fae4cca01c.mov

Left = counter clockwise = decrement & right = clockwise = increment. I will check with the person who had the egret II to make sure their's shows the same behavior...

I assume this other kensington trackball does the same - https://www.amazon.com/Kensington-Expert-Wireless-Trackball-K72359WW/dp/B01936N73I

I tried to see if I could at least learn and understand how to add it to the the core, to see if it's feasible. I am guessing ps2_mouse_ext could be added as an option to the cores that have spinner support for joy1, and a conf_str option added for "Mouse Wheel". That's about as far as I got since looking at the input test core was a bit too advanced for me at this point.

Thank you for your consideration! :)

sorgelig commented 2 years ago

It has nothing to do with core. Input devices are handled on Linux(HPS) side. So device specifics should be handled there.

birdybro commented 2 years ago

Okay thank you!

I checked with an owner of the Egret II trackball/spinner and ccw = decrement and cw = increment as well.

Closing this here and I will later open an issue in the Linux Kernel repo with vid:pid information.