Skip to content

macOS版で特定のゲームコントローラを接続した状態だと起動時にセグメントエラーでクラッシュする #1322

@m4saka

Description

@m4saka

エラーの内容 | Describe the runtime error

macOS版にて、下記のゲームコントローラを接続した状態でアプリ起動すると、ウィンドウ表示前にセグメントエラーでクラッシュします。

  • VIRGOO TURBOCHARGER PLUS

「VIRGOO TURBOCHARGER PLUS」はゲームパッド入力のほかにHIDマウス入力も持つデバイスのため、macOS上だと「入力監視」の権限をシステム設定から明示的に与える必要がありますが、その権限がない場合にセグメントエラーでクラッシュします。

プログラム上でゲームパッド入力を使用していない場合でも発生します。

現象発生時の動画

2025-11-24.18.47.56.mov

発生環境(デスクトップの場合):

  • OS: macOS (Mac Studio)
  • バージョン: Sequoia 15.6
  • GPU: Apple M3 Ultra

発生原因:

発生原因は、権限がない場合にGLFW側のコード内の下記elementsがNULLになることです。

CFArrayRef elements =
IOHIDDeviceCopyMatchingElements(device, NULL, kIOHIDOptionsTypeNone);

GLFW 3.4の正式版に入っている下記パッチで修正済みの問題のため、もし可能であればOpenSiv3Dに同梱されているGLFWを3.4の正式リリース版にアップデートいただけると幸いです。
glfw/glfw@2c1d310

上記パッチ適用後のSiv3Dを使用した場合に、現象発生せず正常起動する様子:

2025-11-24.18.48.59.mov

備考:

  • プロジェクトをAppバンドルとしてビルドした上で、システム設定から明示的にそのAppバンドルに対して「入力監視」の許可を与えた場合には非発生になることを確認しました。
  • HIDマウス入力を持たない他のゲームコントローラーの場合は非発生でした。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Investigating

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions