I know all of that.
All I'm saying is that these don't need to be tied to each other. They could just inform developers what are the inputs available. E.g. [touchscreen, railed-in-joycons] vs [split joy cons] vs [pro controller, single joycon] vs etc.
If touchscreen is available then they get input from the touchscreen, if it's unavailable then stop listening inputs. Why should it matter if it's docked or not for this? In a more practical example, montion controls DO work in handheld as long as you connect a controller compatible with it.
All I'm doing is questioning if they're really tying multiple things to a "docked" vs "undocked" state or if people are just assuming so. And if it's the case, as a software developer, I believe this was shortsighted of them.
Sorry I wasn’t clearer. Let me try again
Joy-con, USB devices, and the touchscreen all have different interfaces from the dev perspective.
Joy-con and USB devices are event driven, and games receive disconnect and connect events. When games boot connect events are dummied as part of the boot.
These aren’t hardware ports that are listened to, as the “player 1” device is a abstraction that can change hardware during gameplay, or stay the same hardware while change physical port (such as replacing a dead joy-con mid game or docking the joycons)
The touchscreen is different, as you do connect to it and listen for touches.
None of these are gated by the docked/undocked state directly, however touchscreen and on rail joycons are indirectly gated by docked state, as the hardware will power down the touchscreen when docked, and either force a undocked state change or or put the joycons in a charge only mode when they are railed.
In practice however, the emulation community has discovered that games adjust their control schemes and inputs based on the docked state. Games will ignore touchscreen inputs when docked, even if you emulate them, likely to eliminate a select in the latency sensitive controller loop - possibly an optimization that the higher level portions of the NintendoSDK provides.
Similarly some games with wii like pointer controls will disable them in handheld mode regardless of whether or not the joy-cons are on the rails, not because of any limitation of the hardware but just to provide the “expected” user experience.
I mention how games behave, not for you specifically, but for the larger discussion about how to boost games on Drake. The idea of telling games they’re in docked mode when handheld comes up occasionally as an “easy” win, but the community has already found the pitfalls.
In an ideal world Nintendo would hire some folks in the OC/emu community to bring in the clever and well tested solutions from that world, but it likely invites serious legal problems with third parties.