渡辺様 武井です。情報ありがとうございます。
WATANABE Kazuhiro さんは書きました: > 渡辺一寛です。 > 遅いフォローですが。 > ジョイスティックですが、サウンドカードのドライバのソースをちょっと > いじれば、標準の joy(4) ドライバで動作するようになると思います。 > > 手持ちの Avance Logic ALS4000 の載った古い PCI サウンドカードと > 7.3-RELEASE で試してみましたが、snd_als4000(4) ドライバで > > (1) ジョイスティックの I/O ポートアドレスを設定 (0x200) > (2) ジョイスティックポートを有効にする > > 具体的には以下のようにしました (ちょっと乱暴なコードですが): > > --- sys/dev/sound/pci/als4000.c.orig 2010-02-10 09:26:20.000000000 +0900 > +++ sys/dev/sound/pci/als4000.c 2011-01-18 20:33:59.000000000 +0900 > @@ -700,6 +700,9 @@ als_init(struct sc_info *sc) > als_gcr_wr(sc, i, 0); > } > > + /* Enable gameport @ 0x200 */ > + als_gcr_wr(sc, 0xa8, 1 << 16 | 0x200 << 16); > + > /* Emulation mode */ > v = als_gcr_rd(sc, ALS_GCR_DMA_EMULATION); > als_gcr_wr(sc, ALS_GCR_DMA_EMULATION, v); > > あとは joy(4) のマニュアルに沿って /boot/device.hints に記述を加え、 > joy(4) ドライバをロードすることで無事動作しました。 > > # dmesg | egrep '^(pcm|joy)' > pcm0: <Avance Logic ALS4000> port 0xd400-0xd47f irq 9 at device 9.0 on pci0 > pcm0: [ITHREAD] > joy0 at port 0x201 on isa0 > joy1 at port 0x201 on isa0 > # perl -e > 'open(JOY,"/dev/joy0")||die;while(1){sysread(JOY,$x,16);@j=unpack("iiii",$x);print > "@j\n";sleep(1);}' > 470 446 0 0 > 470 18 0 0 十字キー上 > 469 19 0 0 十字キー上 > 466 873 0 0 十字キー下 > 467 872 0 0 十字キー下 > 468 442 1 0 Aボタン > 471 445 0 1 Bボタン > 468 445 0 0 > ^C# > > > YMF744 の場合、データシートをちょろっと眺めた限りでは I/O ポートアドレ > スを設定するだけでいけるような気もします。場合によってはポートを明示的 > に有効にする必要もあるかも知れません。 > > ALSA (http://www.alsa-project.org/) のソースコードを参考に、 > いじってみたらどうでしょう。 > YMF744 のデータシートはこのへん↓にあります (ALSA の古いミラー)。 > http://alsa.cybermirror.org/manuals/yamaha/ > カードの初期化時にゲームポートのイネーブルとアドレス設定を行うと 動作するとのことで、早速ためしてみたいと思います。進展がれば 報告します。ありがとうございました。 > > MIDI 方面はよく知らないです。最近のリリースでも USB-MIDI アダプタを含 > めて「ものによっては動く」という感じ (?) ですが、4.11-RELEASE だとどう > なんでしょうねぇ。 > > --- > WATANABE Kazuhiro (cqg00...@nifty.ne.jp) > > -- 武井 潤 ta...@sophia-systems.co.jp