I'm just thinking, if we can find out how the keypads are differentiated, it could be implemented into the common.h for simpler cross-pad compatibility.
For instance, when ndless 2.0 comes out, many people may find the touch-version of the GBC emu to be mapped strangely. With changing key definitions, it could even work with the 84+ keypad flawlessly.
I was thinking something like this for the header.
Keys are defined for all the pads already
If (insert keypad detection function here)=84+ (or a number, maybe)
{
#define KEY_GEN_UP KEY_84_UP
#define KEY_GEN_DOWN KEY_84_DOWN
}
Repeat the if statement for the touch and clickpad, then when you write a program you use the generic keymap instead of a specific one. Obviously, it won't work for every program, but it should work for many, like the GBC emu and other Games.