例えばSDL2にはgamecontrollerdbという仕組みがある

ボタンの物理配置とボタン番号はコントローラごとにバラバラな組み合わせになっててマジクソなのだが
この仕組みのおかげでだいたいどんなコントローラでもボタンを箱コントローラのボタン名に良い感じにマッピングしてくれる