I know i've been dangeling a lot of features that are coming to IM 1.6, and heres a few more.
As of this morning I have finished coding support for the Dualshock 3 into the MyShock API that will be the new hardware middleman for IM 1.6. This means that IM 1.6 will have support for all the various DS4 configurations as well as the Dualshock 3 USB.
But I dont see any reason to stop there, though its never really been the goal for the IM 1 software to support other devices, this new API makes it easy enough for me to do so. So I will be adding Xbox 360, Xbox One, and Steam controller support as well (as I get my hands on those devices).
Supporting a lot of input devices is only half the program though, I also want to be able to make use of various device emulation tools as well. So in future versions of IM the concept of a direct relationship with IM and SCPvb will be broken and in its place will be the option for the user to select their output driver. That means users will be able to choose the legacy SCPvb drivers, the newer but not as compatible SCPvb2, or for Windows 10 users the ViGem drivers which also support Dualshock 4 emulation!
Right now my first step is to implement the new MyShock API into IM 1.6, but there is so much code to re-write in IM to get this API to fit nicely that I think it may be even easier to just start from scratch and bring code over from the IM 1.6.10 build as needed. This of course is probibly going to mean all new bugs once IM 1.6.11 releases but most of you usually do a good job reporting them and help me shake those out, in the end because of the compartmentalization and API methodology I am taking the end result should be a more stable, future proof, and easily update-able IM.
At the heart of the method to make more controllers compatible will be the generalization of controller channel nomenclature to the following:
|IM Control name||360/XB1||DS3/DS4||Steam||Ouya|
|RX||RX||RX||Right Pad X||RX|
|RY||RY||RY||Right Pad Y||RY|
|DPad Up||DPad Up||DPad Up||Left Pad Up||DPad Up|
|DPad Down||DPad Down||DPad Down||Left Pad Down||DPad Down|
|DPad Left||DPad Left||DPad Left||Left Pad Left||DPad Left|
|DPad Right||DPad Right||DPad Right||Left Pad Right||DPad Right|
|Face Button 1||A||Cross||A||O|
|Face Button 2||B||Circle||B||A|
|Face Button 3||X||Square||X||U|
|Face Button 4||Y||Triangle||Y||Y|
|System Button 1||Back||Share||Back||Pad Swipe Left|
|System Button 2||Start||Options||Forward||Pad Swipe Right|
|Left Trigger||Left Trigger||L2||Left Trigger||Left Trigger|
|Right Trigger||Right Trigger||R2||Right Trigger||Right Trigger|
|Left Bumper||Left Bumper||L1||Left Bumper||Left Bumper|
|Right Bumper||Right Bumper||R1||Right Bumper||Right Bumper|
|Left Stick Click||Left Stick||L3||Left Stick Click||Left Stick Click|
|Right Stick Click||Right Stick||R3||Right Pad Press||Right Stick Click|
|Home Button||XBox button||PS Button||Steam Button||Ouya Button|