イェンダーの魔避けを奪え!

 f@f ←ペット同伴でやる気マンマン


linux で game とくれば、やっぱり nethack でしょ?
しかも telnet さえできれば、アイツのスコアも、彼女の幽霊もばっちりさ!

しかも、英語がわからないあなた(俺だ)のために、Project JNethack が稼働しています。
でも、コンパイルできないあなた(俺だ)のために、ここにメモを残しときます。

当初目的のページよりもかなりボリュームが増えて、いやーんな感じ。
っていうかこうなることは予想済なんだけど。(;_;)


インストール記

2004/04/14 jnethack-3.4.3-0.2 + fighter_patch_jnh34302.diff
新しい日本語化パッチと戦士パッチを試してみることに。
ちなみに今回試した戦士パッチはwin用なので、eucに変換後、ちょっと弄って成功。
今回はttyとX11のみ。Gnome用には作成しませんでした。
亜美ちゃんのスクリーンショットはこちら

2004/01/30 nethack-3.4.3 + jnethack-3.4.3-0.1 で確認しました。
今回は X11, Gnome で動いたんですよ〜。
まぁスクリーンショットをご覧あれ。
tty版 これが普通。
X11版 これがやりたかったんですねぇ。
Gnome版 ちょっと化けてますね。

2003/09/03 sourceforge に jnethack-3.4.1-0.4 がでてましたね。(2003/09/09)
ほとんど手順は変わらずにコンパイルできました。


インストールメモ

1. ブツを取りに行く


nethack-343.tgz -- こいつは本家から
jnethack-3.4.3-0.2.diff.gz -- こいつは Project JNethack から頂いてきます。
fighter_patch_jnh34302.diff -- こいつもProject JNethackから。
ありがたや。
バージョンは最新版がいいでしょうね。

2. jnethackのソースを展開する

まずは自分のホームで良いので展開しましょう。
tar xvfz nethack-343.tgz

このままでは英語版 nethack なので、 JNethack にするためのパッチをあてましょう。
cd nethack-3.4.3
patch -p1 < jnethack-3.4.3-0.2.diff

もしくは、ダウンロードしたパッチが .gz だったら以下のコマンドで。
zcat jnethack-3.4.3-0.2.diff.gz | patch -p1

今回入手したFighterパッチはwin版なので、SJISで記述されていて
そのままでは使えませんでした。で、EUCに変換して適用します。
ピンク色の部分はFIghterパッチを使うときのみ必要です。
nkf -e fighter_patch_jnh34302.diff | patch -p1

これでソースの準備ができました。

3. ファイルを修正する

緑色の部分はGnome用の場合のみ必要です。

3.1. ~/nethack-3.4.3/sys/unix/Makefile.top を修正

以下のように修正します。
GAMEUID = games
GAMEGRP = games
GAMEPERM = 02775
EXEPERM = 0775
DIRPERM = 0775

VARDATND = だけの行が有効になっていますのでこれをコメントアウトし、
以下のように設定を有効にします。
VARDATND = x11tiles pet_mark.xbm rip.xpm mapbg.xpm

3.2. ~/nethack-3.4.3/sys/unix/Makefile.src を修正

CFLAGS, LFLAGS for Linux のところものがコメントアウトされていますので、
コメントを外し、Gnome用の設定を追加しておきます。
シングルクォートでなく、バッククォートなので注意してください。
# flags for Linux
#   compile normally
CFLAGS = -O2 -fomit-frame-pointer -I../include `gnome-config --cflags gnome`
LFLAGS = -L/usr/X11R6/lib

もう少し下の方に、元々の定義が有効になっていますので、
コメントアウトしておきましょう。
# CFLAGS = -W -g -O -I../include
# LFLAGS =

Gnome用の場合は、WINGNOMEOBJEがコメントアウトされていますので、
以下のように有効にしましょう。
但し、tile.o は外してあります。
WINGNOMEOBJ = gnaskstr.o gnbind.o gnglyph.o gnmain.o gnmap.o gnmenu.o \
       gnmesg.o gnopts.o gnplayer.o gnsignal.o gnstatus.o gntext.o \
       gnyesno.o gnworn.o

WINSRC, WINOBJ に X11 と GNOME を追加しておきます。
WINSRC = $(WINTTYSRC) $(WINX11SRC) $(WINGNOMESRC)
WINOBJ = $(WINTTYOBJ) $(WINX11OBJ) $(WINGNOMEOBJ)

WINX11LIB を以下のようにします。
WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm

WINLIB を以下のようにします。
WINLIB = $(WINTTYLIB) $(WINX11LIB) $(WINGNOMELIB)

LIBS = だけの行が有効になっているのでコメントアウトしておきます。
# LIBS =

3.3. ~/nethack-3.4.3/sys/unix/Makefile.utl を修正

CFLAGS, LFLAGS for Linux のところがコメントアウトされていますので、
以下のようにコメントを外しておきます。
# flags for Linux
#   compile normally
CFLAGS = -O2 -fomit-frame-pointer
LFLAGS = -L/usr/X11R6/lib
もう少し下の方に、元々の定義が有効になっていますので、
以下のようにコメントアウトしておきましょう。
# CFLAGS = -W -g -O -I../include
# LFLAGS =

3.4. ~/nethack-3.4.3/include/config.h を修正

以下のようにコメントを外しておきます。
#define X11_GRAPHICS

#define GNOME_GRAPHICS

#define USE_XPM

#define COMPRESS "/usr/bin/gzip" この行をコメントアウト。

3.5. ~/nethack-3.4.3/include/unixconf.h を修正

/* #define SVR4 */
#define SYSV
#define LINUX
#define TIMED_DELAY

3.6. ~/nethack-3.4.3/sys/unix/Makefile.dat を修正

今回のFighterパッチはWin版なので、Linux用のMakefileの差分が入っていません。
で、以下のように修正します。
Fighterパッチを使用しないときは、修正不要です。
quest_levs: ../util/lev_comp \
        Arch.des Barb.des Caveman.des Healer.des Knight.des Monk.des \
        Priest.des Ranger.des Rogue.des Samurai.des Tourist.des Valkyrie.des \
        Wizard.des Fighter.des
        ../util/lev_comp Arch.des
        (中略)
        ../util/lev_comp Wizard.des
        ../util/lev_comp Fighter.des
        touch quest_levs

4. コンパイルする

cd ~/nethack-3.4.3/
sh sys/unix/setup.sh
make

ここからは root で作業しましょう。
su
make install

初めてのインストールではなく、スコアファイルとか残したいのであれば、
make update のほうが良いですね。
うまく行ったら自分(+α)のユーザーを games グループに追加しておきます。
これで root での作業は終了です。

一旦ログアウトして、自分の ID でログインすれば遊べるはずです。
本体のパスは /usr/games/jnetahack です。

起動時・終了時にエラーが出る場合は、
/usr/games/lib/jnethackdir/record か、
/usr/games/lib/jnethackdir/logfile のパーミッションが設定されていません。
chmod g+w ??? と設定を変えてください。

5. 動かしてみる

さあ、イェンダーの魔避けをイタダキにゴゥ!
jnethack
・・・とかいいつつノームの鉱山ほとんどクリアできないんだよね。


俺様の .nethackrc

#
# 漢字コードの設定
#
OPTIONS=kcode:euc
#OPTIONS=kcode:sjis
#
# キャラクターの設定
#
OPTIONS=name:ryusei
#OPTIONS=male
#OPTIONS=female
OPTIONS=fruit:すらいむもぅるど
#
# ペットの設定
#
OPTIONS=pettype:cat
#OPTIONS=pettype:dog
OPTIONS=catname:パトラッシュ
#OPTIONS=dogname:ぼち
#
# 操作設定
#
OPTIONS=autopickup
OPTIONS=checkpoint
OPTIONS=confirm
OPTIONS=disclose
OPTIONS=fixinv
OPTIONS=help
OPTIONS=!ignintr
#OPTIONS=menustyle:tradional
#OPTIONS=menustyle:combination
OPTIONS=menustyle:partial
#OPTIONS=menustyle:full
#OPTIONS=menu_deselect_all:
#OPTIONS=menu_deselect_page:
#OPTIONS=menu_first_page:
#OPTIONS=menu_invert_all:
#OPTIONS=menu_invert_page:
#OPTIONS=menu_last_page:
#OPTIONS=menu_next_page:
#OPTIONS=menu_previous_page:
#OPTIONS=menu_search:
#OPTIONS=menu_select_all:
#OPTIONS=menu_select_page:
OPTIONS=!number_pad
OPTIONS=pickup_types:$
OPTIONS=!rest_on_space
OPTIONS=safe_pet
OPTIONS=sortpack
#
# 画面表示・音設定
#
OPTIONS=!BIOS
OPTIONS=color
OPTIONS=!DECgraphics
#OPTIONS=dungeon:
#OPTIONS=effects:
OPTIONS=hilite_pet
OPTIONS=!IBMgraphics
OPTIONS=legacy
OPTIONS=!lit_corridor
#OPTIONS=monsters:
OPTIONS=msghistory:50
OPTIONS=news
OPTIONS=!null
#OPTIONS=packorder:
OPTIONS=preload_tiles
OPTIONS=!rawio
#OPTIONS=scores:
OPTIONS=showexp
OPTIONS=showscore
OPTIONS=silent
OPTIONS=standout
OPTIONS=time
OPTIONS=tombstone
OPTIONS=!toptenwin
#OPTIONS=traps:
OPTIONS=verbose
#OPTIONS=videocolors:
#OPTIONS=windowtype:tty
OPTIONS=windowtype:x11
#OPTIONS=windowtype:gtk
#OPTIONS=windowtype:Gnome


linux 右往左往に戻る
Valid HTML 4.0!