New WIP. Not really worth grabbing if you have a previous one, progress is very slow but steady here.
First, I kept the just-in-time cycle-accurate Super Scope / Justifier latching support; but optimized things to reduce the overhead even more. It's now ~0.5% speed hit with no light gun, and ~1.2-1.5% with.
Next, I rewrote ruby::input and the DirectInput driver to scan at O(1) instead of O(n). With that, I increased the max # of joypad buttons per controller to 128 (the # doesn't affect speed anymore -- 128 is just a hard limit with DirectInput), and gained a ~2% speedup over the old method.
Renamed the mouse axes again, to just "mouse.x" and "mouse.y", sorry.
Added a blocker for mouse.button00, but as the new input system merges key_down/key_up/axis into one single-pass scan, it's now mapping mouse motions, and if not that, lousy analog joypads that return sporadic values.
Hey, it's a WIP release for a reason, right? Getting there, my idea is to have the input driver return information about what "type" of input each symcode is, and then pass masks from the input configuration mapping to control which types of input are considered valid for each of the different types of controls.
Not sure if I want to allow the Mouse/SS/Justifier axes to be mapped by swinging the mouse fast in a given direction (the threshold now is any movement at all, I'd make mapping it require +100/-100 in any direction so you have to move it fast to map it), or use a dropdown box for that.
Oh, and I added the glow shadow I was talking about earlier to the light gun cursors. If you do decide to try out the WIP, let me know what you think of that.
The Linux port is pretty much 100% busted at this point. I have to port all of the SDL / X input drivers over to the new system.
Ah, and if anyone's bored and has a five button mouse, try mapping top thumb to left, bottom thumb to right, left click to B, right click to Y, and middle click to start; and then play Super Mario All Stars - Mario 1. 100% control via mouse alone = good times :D
I made it to 4-2 on my first life.
The speed at which the mouse moves is so slow
The scale is based on my gaming optical mouse (it was the only 5-button mouse I could find without a tilt wheel; fuck those things), so the DPI scaling I use is pretty high. I'm having trouble getting it to move at the speed of your regular mouse universally, because I don't know what the speed of the mouse is to interpret the mouse movement results.