Several emulators automatically select input devices based on hash tables, otherwise games would not be playable without additional user configuration. Including this information in the NES 2.0 header may be a practical solution after all, as discussed in a related thread from which this topic is a spin-off.
Status quo:
"[t]he NES 2.0 file represents the function of everything inside the Game Pak shell. Things like controllers and overscan go in the manual." This rule is already violated by the "TV system" field. This means that either the user has to configure input devices himself, or an emulator needs to use a hash table to automatically select them to make a game playable as opposed to merely run it in attract mode. The first solution is not user-friendly, the second option neither emulator- nor ROM-hack-friendly.
Edit: Updated proposal here.
Status quo:
"[t]he NES 2.0 file represents the function of everything inside the Game Pak shell. Things like controllers and overscan go in the manual." This rule is already violated by the "TV system" field. This means that either the user has to configure input devices himself, or an emulator needs to use a hash table to automatically select them to make a game playable as opposed to merely run it in attract mode. The first solution is not user-friendly, the second option neither emulator- nor ROM-hack-friendly.
Edit: Updated proposal here.