渡辺様
武井です。情報ありがとうございます。
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 ([email protected])
>
>
--
武井 潤
[email protected]