JNetHack/JSlash'EMインストールメモ(Ubuntu Linux編)
■はじめに
サブPCにUbuntu Linuxを導入したのでさっそくNetHackをインストールした今日この頃。
SynapticにはJNetHack1.1.5のパッケージしかなかったため英語版だけでいいやと思ったのですが、丁度タイミングよく地下37:962に「UbuntuにJNetHack3.4.3をインストールした」という人が現れたので自分もJNetHackをビルドすることにしました。
以下にその際の手順をまとめます。
なお、私はタイル版では遊ばないのでタイル版のビルドのしかたは確かめていません。すみません。
('07/08/03) JSlash'EMのインストールメモも追加
('07/11/02) Ubuntu 7.10でのインストールを確認
('08/03/07) JSlash'EM0.0.7E7F3-J0.2.0のインストールを確認
■動作確認対象
- Ubuntu 7.04以降
- JNetHack 3.4.3-0.9以降
- JSlash'EM 0.0.7E7F3-J0.1.5以降
■ソースコード展開&パッチ当て
JNetHackプロジェクトページからnethack-343-src.tgzとjnethack-3.4.3-0.9.diff.gzを持ってきて適当なディレクトリに置きます。
% tar zxf nethack-343-src.tgz
% cd nethack-3.4.3
% zcat ../jnethack-3.4.3-0.9.diff.gz | patch -p1
% sh sys/unix/setup.sh
Slash'EMの場合は一度パッチの文字コードをEUCに変える必要がありそうです。適宜nkf等を利用しましょう。
■ソースコード修正
japanese/Install.lnxに書いてある通りに修正します。
加えて、以下の修正を行います。
- include/config.h から #define XI18N の行をコメントアウト(ヘッダファイルが無いぞと怒られるので)
- include/config.h の #define COMPRESS の行を実際のgzipのパスに修正(手元の環境では /bin/gzip でした)
- 骨ファイル要らんよという人はsrc/bones.cのcan_make_bones()の先頭に return FALSE; を追加(参考: 地下16:192)
- Slash'EMの場合は、include/config.hの #define NO_BONES を有効にするだけでOK
- ウィザードモードをroot権限無しでも使いたい人はinclude/config.h の #define WIZARD_NAME "wizard" の個所を適当なログイン名に変更
- JSlash'EMの場合、MakefileのGAMEDIRを $(PREFIX)/games/lib/$(GAME)dir 、SHELLDIRを $(PREFIX)/games に直した方がいいかもしれません。
書き換え作業を自動化するためのスクリプトはこちら→ nhreplace.py
■ビルド&インストール
build-essential、flex、bison、libncurses-devを事前にインストールしておきます。
nethack-3.4.3(またはslashem-0.0.7E7F3)ディレクトリで make all を行い、特にエラーが出なかったらroot権限で make install(セーブデータを維持したいなら make update)を行います。
これでインストールは完了しました。一度起動&セーブしてみて、recordやsaveファイルの読み込みに失敗するようでしたらjapanese/Install.lnxの5)節を読み返すとよいでしょう。
■端末の設定
インストール自体は完了しましたがこのままでは遊びにくいので端末の環境を整えます。
- アプリケーション>アクセサリ>端末 から端末エミュレータを起動します。
- 編集>プロファイル から新規のプロファイルを作成し、編集します。
- 色>前景と背景>組み込みスキーム を「黒地に白文字」にします。
- 色>パレット>組み込みスキーム を「XTerm」にします。
- フォントはデフォルトのままでもいいですが、「DECgraphics時に縦線が途切れてるとイヤ」という人には「Dejavu Sans Mono」がいいかと思います。(画面は少々横長になりますが)
- 端末>文字コードの設定 を「日本語(EUC-JP)」にします。
- 黒地だとさまよう目が見づらくて死ねる! という人はカラーパレットの調整をしてみてもいいかも。
■おわりに
とりあえず、これでUbuntu上でJNetHackとJSlash'EMを遊べるようになったはずです。何か間違いや足りないことがあったらツッコミを入れてもらえるとありがたいです。
各種外部パッチについてはまた今度・・・・・・
|