25/12/21 21:47 追記: "nethack-370-win-x86.zip"と記事を更新しました。この時刻以前にダウンロードされた方は、更新をお勧めします。
この記事は、Roguelike Advent Calendar 2025 12/21 の記事です。
目次
ダウンロード
下記リンクからダウンロードしてください。
25/12/21 21:47 追記: "TTY_PERM_INVENT"を有効にしたファイルに差し替えました。
https://www.mediafire.com/file/5yrp9e9284j8qyw/nethack-370-win-x86.zip/file
以下はビルドに使用したソースファイルです。最新版をビルドしたい場合、Github からダウンロードしてください。
https://www.mediafire.com/file/0iijgevtw80gyj2/NetHack-NetHack-3.7.zip/file
起動する前に
"nethack-370-win-x86.zip"を展開してください。 同一ディレクトリに設定ファイルやセーブデータを置きたい場合、 以下の手順を実行してください。
1."sysconf.template"を、同一ディレクトリに拡張子を消してコピーする
2."sysconf"をテキストエディタで開き、 #PORTABLE_DEVICE_PATHS=0 を PORTABLE_DEVICE_PATHS=1 に書き換え、上書き保存する。
起動方法
tty
"NetHack.exe"を実行してください。
mswin
"NetHackW.exe"を実行してください。
curses
".nethackrc"をテキストエディタで開き、 #OPTIONS=windowtype:curses の先頭のシャープを消して上書き保存し、 "NetHack.exe"または"NetHackW.exe"を実行してください。 ".nethackrc"は、"sysconf"がゲームと同一ディレクトリに無い場合、 一度"NetHack(W).exe"を起動すると C:\Users\ユーザー名\NetHack に作成されます。
オプション
".nethackrc"で変更できます。https://nethackwiki.com/wiki/Options に、 英語ですが各項目の解説があります。 Curses Interfaceの場合、瀕死になるとバーが点滅して目に悪いので、 OPTIONS=hitpointbar を OPTIONS=!hitpointbar に書き換えた方がいいかもしれません。 ゲーム開始時のチュートリアルが不要な場合、 OPTIONS=!tutorial を追加する事で飛ばす事ができます。 Curses Interface使用時、右側にインベントリを常時表示したい場合、 "TTY_PERM_INVENT"が有効になっていれば、 OPTIONS=term_cols:138 OPTIONS=term_rows:32 OPTIONS=perm_invent のように追加すると表示できます。"term_cols"は横の文字数、 "term_rows"は縦の文字数なので、コンソールに合わせて適当な値を 入力してください。小さすぎると表示に問題が出ます。
Windows 11 におけるビルド手順
1.https://github.com/NetHack/NetHack からzipをダウンロードし、展開する
2.展開したファイル、"sys/windows/fetch.cmd"をこのファイルに差し替え
差し替える理由は、バッチファイルのif文の中で変数をsetして使うことはできないため
3.msvcが無ければ用意する。例として、Visual Studio Community 2026を使用する場合、 ここからダウンロードし、"C++によるデスクトップ開発"にチェックを入れインストールし、念のため再起動することで準備が完了です。NetHack のビルドだけが目的であれば、それ以外はチェックを外して大丈夫なはずです。
4.スタートメニューから、"Visual Studio" > "Developer PowerShell for VS 2026"を起動。 以下はこのプロンプトに入力する
5.zipを展開したディレクトリに移動する
6.以下のコマンドを入力し、Luaをダウンロード
sys\windows\fetch.cmd lua
7.Curses Interfaceを使う場合、以下のコマンドを入力し、PDCursesをダウンロード
sys\windows\fetch.cmd pdcursesmod さらに、インベントリを常に右側に表示したい場合、"include/config.ini"をテキストエディタで開き、 /* #define TTY_PERM_INVENT */ を #define TTY_PERM_INVENT に書き換えて上書き保存する
8.Dump Logを保存したい場合、"include/config.ini"をテキストエディタで開き、
/* #define DUMPLOG */ /* End-of-game dump logs */ を #define DUMPLOG /* End-of-game dump logs */ に書き換えて上書き保存する
9.以下のコマンドを順に入力
cd sys\windows .\nhsetup.bat cd ..\..\src
A.Curses Interfaceを使わない場合、"Makefile"をテキストエディタで開き、
CURSES_CONSOLE = Y CURSES_GRAPHICAL = Y の末尾を"N"に書き換え、上書き保存する
B.以下のコマンドを入力
nmake package
C.ビルド完了
binary\ には実行ファイル一式が、 package\ にはそれを圧縮したファイルが作成される。
3.7 をダウンロードできるページが見当たらなかったのでビルドしました。もっと探せばあるのかもしれませんが、自力でビルドするのもいいものです。
fetch.cmdが上手く動かない理由がわからず混乱しましたが、 理由を説明している記事を発見できたので直せました。 私が英語でのやり取りができれば、コミットするのですが。

