この記事は、NetBSD Advent Calendar 2019の21日目の記事です。
はじめに
NEC PC-9801全盛の時代に、Bio_100%のMarkadiaという縦スクロールシューティングゲームをしたことがありました。 それ以来、ゲームというものには手を出していなかったのですが、久し振りにやってみたいと思いました。 ですが、手元のラップトップは、ゲームでキーボードを酷使して問題ないようには見えません。 ここでゲーミングキーボードを買って来るという選択肢もありましたが、USB接続のゲームパッドを使ってみることにしました。 USB接続のLogicool製のGamepad F310というのを選びました。
ゲームを選ぶ
pkgsrc/games
以下には、450以上のゲームが登録されていますが、縦スクロールシューティングゲームに近いものは多くはないようです。
以下が候補になりました。
- KoboDeluxe
- naev
- astromenace
- chromium-bsu
- taisei
- xkobo
今回は、chromium-bsuをやってみることにします。 taiseiも試したのですが、NetBSDでゲームパッドを使うには何か修正が必要なようですので、今回はパスします。
chromium-bsuをインストールする
chromium-bsuのインストールは以下のようにします。
# cd /usr/pkgsrc/games/chromium-bsu # make installここで、chromium-bsuはバージョン0.9.16.1nb1以降を使うようにします。 このバージョンから、SDL2経由でゲームパッドを利用できます。
ゲームパッドを接続する
Logicool Gamepad F310には2つのモードがあります。XモードとDモードです。 背面のスライドスイッチで切り替えが可能です。 Xモードでは、USB Product ID = 0xc21d、Dモードでは、USB Product ID = 0xc216と、モード毎に別々のIDが割り振られています、 スライドスイッチを切り替えると、一度抜き差ししたのと同じような挙動をします。
(Dモードで接続) uhidev0 at uhub2 port 1 configuration 1 interface 0 uhidev0: Logicool (0x46d) Logicool Dual Action (0xc216), rev 2.00/4.14, addr 6, iclass 3/0 uhid0 at uhidev0: input=8, output=7, feature=0 (Xモードへ切り替え) uhid0: detached uhidev0: detached uhidev0: at uhub2 port 1 (addr 6) disconnected uhidev0 at uhub2 port 1 configuration 1 interface 0 uhidev0: Logicool (0x46d) Gamepad F310 (0xc21d), rev 2.00/40.14, addr 7, iclass 255/93 uhid0 at uhidev0: input=20, output=6, feature=0
XモードかDモードか
Dモードは旧来のモード、Xモードはより新しいモードであるようです。
SDL2のBSD用のjoystickサポートは、Dモードを前提としているようです。
Xモードのサポートは、Linuxのevdev
を前提としているようにも見えます。
実際、XモードのF310では、キャリブレーションをしても使えるようになりませんでした。
NetBSDのUSB HID関連のカーネルソースコードを見ると、XBox用のゲームパッドのサポートコードがあります。
同様にカーネルでのサポートが必要なのかもしれません。
chromium-bsuで遊んでみる
Gamepad F310をUSB接続してDモードに切り替えてから、chromium-bsdを起動させてみると、 正しいキーバインディングで利用できているようです。 しかし、初めてゲームパッドというものを使ったので、良い成績を残すには相当の慣れが必要そうです。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。