ゼビウスちっくなゲーム、XBat を ジョイスティック対応させる
私は ナムコ の ゼビウス がいまだに好きです。ヘタですけど。
そんなわけで、VineLinux のパッケージでインストールできる xbat も 大好きです。
xbat は、ゼビウスそっくりなのですが、実はゼビウスのぱちもんではなく、ゼビウスのぱちもんのバトルスのぱちもんなんだそうです。(笑)
xbat、今遊んでも面白いのですが、大きな欠点があります。それは、ジョイスティックに対応していないこと。
昔、MSXのグラディウスをキーボードで遊んでいたオイラには、キーボード操作は平気なのですが、キーの同時認識の問題で誤動作するのが困りもの。これでやられるとストレスが溜まるのです。
で、ネットでxbatのジョイスティック化なんか誰かやってないかな、と思ったら、やっぱやってる人がいました。(笑)
Oga's Linux Tools
ジョイスティック対応のパッチだそうで、キー入力部分のソースを入れ替えてmakeすればいいそうです。
そんなわけで、試してみました。
環境は、VineLinux6.2 です。
上記「Oga's Linux Tools」から、xbatのソースとパッチをダウンロードします。
とりあえず、README.jp を読んでみます。
なんと、作られたのが 1997年!
私がまだPCとは全く縁の無い仕事をしていて、Windowsの存在を知らなかった時代のソースだったとは。
話しがそれました。
読んでみると、
Imakefileを編集してから
% xmkmf -a
% make
% make install
とする、と書いてあります。
INSTALL.jp を読むと、
Imakefile中のUNIONは、CPUがインテル並び(DEC Alphaなど)の場合 1 にして下さい。
デフォルトは 0 です。
って書いてあります。
今の時代、1以外ありあえないっしょ。1に修正します。
もし、インストールしたくない場合は、Imakefile中の
SCORE_DIR,IMAGE_DIR,MAP_DIR、BINDIR
を、 ./ にするなどして下さい。
って書いてあったので、これもその通りにしました。
ちなみにVineLiuxの xbat のリソースは
/usr/share/games/Xbat
にあるので、ここにしてもOKです。パッケージのバイナリと交換するならこれもアリかと。
で、パッチの inkey.c を上書きして
上記通りに
$ xmkmf -a
$ make
と makeしてみましたが、「make: Nothing to be done for `all」 となってmake できませんでした。
なんでだー!?
とりあえず、作成された Makefile を見てみると、xbat: って所でコンパイルしているみたい。
そんなわけで、
$ make xbat
ってしてみたら、コンパイルできました!
ちなみに、最初からやり直すときは make clean ですね。
で、ジョイスティックを繋いで コンパイルした xbat をダブルクリックして動かしてみましたが、ジョイスティックが反応しません。
なんでだー!?
inkey.c のパッチを見てみると、
9行目が
char joydev[256] = "/dev/js0";
ってなっています。
/dev/js0 を見てみたのですが、そんなデバイスはありません。
調べてみると、VineLinuxは /dev/input/js0 にありました。
で、さっきの行を /dev/input/js0 に修正して再度 make してみました。
で、ジョイスティックを繋いで動かしてみましたが、ジョイスティックが反応しません。
なんでだー!?
こうなると、いろいろ疑心暗鬼になってきます。
そもそもドライバが違うんじゃないか!?とか。
ところで /dev/input/js0 って反応しているのか? と思い、
$ tar -f /dev/input/js0
ってやってみると、何も表示されず。やっぱ反応して無いじゃん!って思ったのですが、よく考えると
$ cat /dev/input/js0
ってしなくては見れないのでした・・・。ログを調査する仕事をしてるとついやってしまうのです・・・。
$ cat /dev/input/js0
ってやると、ジョイスティックに反応しているので問題なさそうです。
なんでじゃー!?
と思ってもう一度 xbat を起動したら、反応してました。(汗)
原因はよく解らないのですが、
$ cat /dev/input/js0
として一回ジョイスティックが反応していることを確認すると xbat も反応するようになるようです。
よし!ジョイスティックを手に入れたオイラに怖いものはないぜ!
Ubuntu14.04に、ビルドしたバイナリと、マップのデータなどのリソースをコピーした所、問題なく動きました。
けっこう32bit用のライブラリを入れているからかもしれませんが。
そんなわけで、Ubuntuで動画を撮ってみました。
ヘタレですが、いちおうエリア16っぽい所を超えました。
| 固定リンク
| コメント (4)
| トラックバック (0)
最近のコメント