ゼビウスちっくなゲーム、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っぽい所を超えました。
| 固定リンク
「VineLinux」カテゴリの記事
- ゼビウスちっくなゲーム、XBat を ジョイスティック対応させる(2014.10.14)
- Let'snote CF-R3 に Vine Linux 6.2 をインストールする(2014.05.11)
- Linux で Kega Fusion を使う(2009.12.31)
- VineLinux5.0インストール(2009.10.12)
- VineLinux4.2でSSLの証明書を更新する(2009.07.26)
コメント
JOYSTICK対応できてよかったですねヽ(´▽`)/
投稿: おが☆ | 2016/01/23 20:03
おわ!? Oga's Linux Tools の おが☆ さんですか?
「xbat V1.11 用 Joystick対応パッチ」、大変役立ちました。
ありがとうございます!
投稿: ひろちゃん | 2016/01/24 23:29
古いLinuxの情報を放置状態で申し訳ありません。役立ったようでうれしいです。しかし、xbatでエリア16を超えるって凄いですね。本物は当時最後まで行ったこともありますがxbatはそこまでやりこんでいませんでしたww
( ^ω^ )
投稿: おが☆ | 2016/02/08 07:00
いえいえ、本物の方(バトルスでは無くゼビウスの方
)が、ソルバルウの動きが遅い分難しいですよ。xbatは敵の攻撃がすぐに激しくなりますが、自機の動きが速いのでぐるっと回りこんで避けれるんですよね。
投稿: ひろちゃん | 2016/02/12 00:19