« eclipseでヒープサイズを増やそうとするとたいていハマる | トップページ | メインPCが壊れる »

2014/10/14

ゼビウスちっくなゲーム、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っぽい所を超えました。


|

« eclipseでヒープサイズを増やそうとするとたいていハマる | トップページ | メインPCが壊れる »

VineLinux」カテゴリの記事

コメント

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

いえいえ、本物の方(バトルスでは無くゼビウスの方happy01)が、ソルバルウの動きが遅い分難しいですよ。xbatは敵の攻撃がすぐに激しくなりますが、自機の動きが速いのでぐるっと回りこんで避けれるんですよね。

投稿: ひろちゃん | 2016/02/12 00:19

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/54336/60470593

この記事へのトラックバック一覧です: ゼビウスちっくなゲーム、XBat を ジョイスティック対応させる:

« eclipseでヒープサイズを増やそうとするとたいていハマる | トップページ | メインPCが壊れる »