各エミュレータのジョイスティック対応状況 その1


 テクノウの掲示板の方で、ぴろさんからいくつかエミュレータジョイスティックの対応状況について教えて頂きました。
 さらに znester と snes9x も joystick 対応させてみたとのことでしたんで、まとめて動作検証を行ってみることにします(笑)。

 なお、検証は全て SL-C3000 + USB 接続のジョイパッド(拙作 joyenabler を使用)で行っています。

znester-joy ( FC エミュレータ

 ぴろさんのページでバイナリが公開されています。(*注 パッケージ化はされていません)
 動作にあたっては、同サイトにて公開されている libSDL-bvdd が必要となります。
 阿川さんの libSDL でも動作しますが、かなり動作が重くなり、余り実用的とは言えません。

ジョイスティックの設定

 起動時に --joystick オプションを付加することでジョイスティックが動作します。

znester-joy  --joystick

 いくつかのゲームを動作させてみましたが、どうもまだ不安定のようです。
 ゲームによって、ジョイスティックが認識されなかったり、認識されてもいきなりポーズがかかったり(スタートボタンが誤認識されてる?)する時があります。

snes9x-joy ( SFC エミュレータ

 ぴろさんのページでバイナリが公開されています。(*注 パッケージ化はされていません)
 znester-joy と同じく、 libSDL-bvdd が必要です。
 阿川さんの libSDL では画面がブラックアウトしてしまいました(^^;)。

ジョイスティックの設定

 起動時に -j オプションを付加することで、動作する筈なんですが・・・、

snes9x -j 

 ・・・ハマリ中(^^;)。


 ちと今、手元に SNES(SFC) の ROM イメージが無かったもんで、テクノウでも紹介されている PDROMS.com から落としてきたフリーの ROM で試してみたんですが、ことごとく玉砕しました。
 実際、 znester-joy でもゲームによって、動いたり動かなかったりするので、ゲームによっては動くのかもしれませんが(汗)。

*2005/06/13追記

 あれから、いくつかのROMイメージを取っ替え引っ換えしてみたところ、いくつかのゲームで動作するのを確認しました。

 znester-joyの動作と合わせ、dgen由来のjoystickのコードは、どうも動かすROMイメージにかなり左右されるみたいですね。

dgen (メガドライブエミュレータ

 ぴろさんのページで bvdd 対応版のバイナリが公開されています。
 snes9x 、 znester と同じく、 libSDL-bvdd が必要です。

ジョイスティックの設定

 起動時に -j オプションを付加することで、ジョイスティックが動作します。

dgen -j 

 手持ちのゲームいくつかを動作させてみましたが、確認した限りでは安定して動作しているようです。

 なお、 dgen に関しては .end さんとこでもバイナリが配布(と言うかこちらが本家?)されていますが、こちらは依存ライブラリが結構ややこしいんで、今回は検証していません。・・・つか、途中で動かすのが面倒になったもんで(爆)。また、気が向いたら確認します(^^;)。

VisualBoyAdvance ( GBA/GB エミュレータ

 .end さんのページで、パッケージが公開されています。
 動作には、他のエミュレータと同様 libSDL が必要です。
 また、ぴろさんのページでは bvdd での描画に対応したバイナリが公開されています。
 バイナリのみで動作させた場合、以下で設定する cfg ファイルを読み込めなかったりする事がありましたので、ぴろさんの bvdd 版を動作させる場合でも、一旦 .end さんのパッケージをインストールした後、バイナリのみを差し替える形にした方が、不具合が出難いようです。

ジョイスティックの設定

 VisualBoyAdvance では、コマンドラインオプションではなく、設定ファイル(デフォルトでは /home/QtPalmtop/bin/VisualBoyAdvance.cfg )で、各キーをジョイスティックのボタンに割り当てることで動作します。


 ジョイスティックの各ボタンのキーコードは以下の通りです。

# dev/js0

方向キー(Axes)
 右 ・・・ 1001
 左 ・・・ 1000
 上 ・・・ 1002
 下 ・・・ 1003

ボタン(Buttuns)
 1080 ・・・ ボタン1
 1081 ・・・ ボタン2
 1082 ・・・ ボタン3
 1083 ・・・ ボタン4
 1084 ・・・ ボタン5
 1085 ・・・ ボタン6
 1086 ・・・ ボタン7
 1087 ・・・ ボタン8

 例えば、上下左右をジョイスティックの各方向へ。 AB ボタンを、ジョイスティックのボタン1、2 に割り当てる場合、以下のように記述します。

Joy0_Left=1000
Joy0_Right=1001
Joy0_Up=1002
Joy0_Down=1003
Joy0_A=1080
Joy0_B=1081

 なお、同一ボタンを複数のキーに割り当てることは出来ません。そのため、キーボードとジョイスティックは必然的に排他利用となります。


 上記の設定を行うことで、 VisualBoyAdvance でもジョイスティックが動作します。
 いくつかのゲームで動作を確認した限りでは、特に問題無く動作しているようです。