Windows 8.1(x64)で、サブウインドウを有効にしていると動作しません。
hengband.INIのVISIBLEを全て0にすると起動します。
2.1.1 r3180(sourceforge)、2.1.3(sourceforge)、2.1.4 r3508(ローグライク実験室さん)の
いずれのバイナリでも再現します。
サブウインドウが先に表示され、メインウインドウが表示されずにフリーズします
hengband.exeで例外コード:0xc000041dが発生しています。
Windows8ではウィンドウの描画まわりが変わったようで、サブウィンドウがあるとメインウィンドウの初期化が終わる前にWM_PAINTが発生しているような感じです。
場当たり的な対応ですが、
main-win.cのTerm_fresh関数にNULLチェック入れると動作しました。
errr Term_fresh(void)
{
int x, y;
int w = Term->wid;
int h = Term->hgt;
int y1 = Term->y1;
int y2 = Term->y2;
term_win *old = Term->old;
term_win *scr = Term->scr;
の後で↓のようなNULLチェックを行う。
/* Before initialize */
if (!old || !scr) return (1);
フォーラム 変愚蛮怒フォーラム [#72875] からの引用
[forum: 72875]