[M1 Mac, Monterey 12.6.3, clang 13.0.0, SDL 2.26.2, ChatGPT Plus, NO IDE]
以下のコードでPS4のワイヤレスゲームコントローラーを認識させることができましたが、肝心のボタンが反応しません。
有線接続すると操作できるようになりました。
ワイヤレス接続については明日以降Intel Macで試してみます。
bool App::Init( bool bFullScreen, unsigned int displayWidth, unsigned int displayHeight )
{
if( SDL_Init( SDL_INIT_EVERYTHING ) != 0)
{
fprintf( stderr, "SDL failed to initialise: %s\n",SDL_GetError() );
return false;
}
<中略>
// mJoystick
mJoystick = SDL_JoystickOpen(0);
if (!mJoystick) {
std::cerr << "Failed to open joystick: " << SDL_GetError() << std::endl;
return false;
}
int num_axes = SDL_JoystickNumAxes(mJoystick);
int num_buttons = SDL_JoystickNumButtons(mJoystick);
printf("Joystick: %s\n", SDL_JoystickName(mJoystick));
cout << "JoystickNumAxes: " << num_axes << endl;
cout << "JoystickNumButtons: " << num_buttons << endl;
return true;
}
Joystick: PS4 Controller
JoystickNumAxes: 6
JoystickNumButtons: 16
ChatGPT調査
Q1: SDL2アプリに接続したPS4コントローラーがApple Siliconではうまく動作しないという情報はありますか
一部のユーザーが報告しているように、SDL2アプリに接続したPS4コントローラーがApple SiliconベースのMacコンピューターで動作しないことがあります。これは、macOS上でのHIDの処理に関連する問題である可能性があります。
ただし、問題が発生するかどうかは、使用するSDL2バージョンやmacOSのバージョンによって異なります。最新のSDL2バージョンである2.0.16では、この問題が解決されたと報告されています。また、macOS 12(Monterey)では、この問題が修正されると予想されています。
したがって、問題が発生している場合は、まず最新のSDL2バージョンを使用することをお勧めします。また、macOSのアップデートがリリースされるのを待つこともできます。
Q2: 一部ユーザーの報告についてリンクを貼ってください
以下にApple SiliconでのPS4コントローラーの問題に関する報告を示します。
- “Apple Silicon M1 + DualShock 4 wireless not working” (Apple Community):https://discussions.apple.com/thread/252985744
- “DualShock 4 Not Working on M1 Macs” (MacRumors Forums):https://forums.macrumors.com/threads/dualshock-4-not-working-on-m1-macs.2265585/
- “Dualshock 4 not recognized by new MacBook Air M1” (Reddit):https://www.reddit.com/r/macbook/comments/mr0x69/dualshock_4_not_recognized_by_new_macbook_air_m1/
ただし、これらは個人の報告であり、すべてのユーザーに当てはまるわけではありません。また、Apple SiliconでのSDL2アプリケーションでの問題には関する報告もありますので、注意してください。