I have been summoned (via email notification) from my long slumber.
My controllers do not properly identify themselves, as there was no easy way to do so on the standard PCB, the controller type bits don't (as far as I recall) have any traces or headers it was practical to tap into, so I didn't.
Also from my recollection, Tempest doesn't have auto-detection for them. It's not anywhere in the source code that was floating around, which I believe was supposed to be the final build. However when I spoke to The Almighty Yak about it, he remembers having implemented auto-detection. I do not recall ever actually testing it myself to determine one way or the other.
But the simplest option is to make it an option in your main menu, and, since main menus are typically linear things, have both up and left navigate to the previous menu item, and down and right navigate to the next, that way regardless of if the user is on a rotary (no up/down typically) or not, they can navigate the menu, and, whilst navigating the menu, they're likely as not to hit both L and R simultaneously at some point, at which point boom there's your auto-detect.
As CJ says, it's not complex.