Separate improved handler Mad Catz C.T.R.L. R Model 32266 - #1136
Open
MattCarrX wants to merge 6 commits into
Open
Separate improved handler Mad Catz C.T.R.L. R Model 32266#1136MattCarrX wants to merge 6 commits into
MattCarrX wants to merge 6 commits into
Conversation
… this Mad Catz pad from others to stop things getting tangled up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a new class
MadCatz32266Controllerthat has improved support for theMad Catz C.T.R.L. R Mobile GamePad Model 32266(and the Micro variant). It now supports all standard Switch buttons and triggers reliably, and maps Capture and Home to V- and V+ on the media bar. (These buttons are just above Back and Start.)Users are asked to set the pad to Desktop mode as this sets the triggers to digital mode, and fixes the unreliable Back button (which would otherwise be mapped to an instantaneous tap Android-Back/System-Back event).
This version supports both the stock firmware and the 125 firmware - the only way to currently tell them apart is by the length of the 0x01 Input Report. The new firmware trades analogue values precision for a shorter message length (and lower latency I would expect).
I've separated out support for this pad from the mad_catz file into a new .cpp/.hpp because otherwise I might've messed up the Samsung or L.Y.N.X. pad support by trying to intertwine them. I don't have a L.Y.N.X. so I didn't want to mess with it. Touch wood, this should be a good fully self contained C.T.R.L. R handler that should be '100% done' now (unless someone reverse engineers the extra Input/Output Reports that measure battery level - the Windows and Android 'A.P.P.' programs can access these). As I said on Discord, please feel free to integrate this back into mad_catz however you prefer if there's a clean way to do it, but the digital triggers mean the analogue threshold calcs aren't needed, and the different struct definitions and the different member signature for handling report 0x01 make this pad different from the other MC products.
I've added the C.T.R.L. R + instructions to the readme as well (uh sorry about those other weird edits, I think my text editor auto-clipped some trailing spaces and that's why those lines are showing up?)