R113 Win10 キーアサイン画面で異常終了する
ログを取り直していたので、時刻がログと合っていませんでした。
19:51:45がキーアサイン入力待ちのタイミングです。
ご迷惑をおかけして申し訳ございません。 こちらでは問題なくキーアサインの変更ができました。
ログを拝見しました。いくつか確認させてください。
2019/01/06 19:51:34.285 [INFO] DirectInput, MIDI入力の初期化を行います。 2019/01/06 19:51:34.312 [INFO] キーボード を生成しました。 2019/01/06 19:51:34.319 [WARNING] Mouse デバイスの生成に失敗しました。 2019/01/06 19:51:34.367 [INFO] Elecom Wired Gamepadを生成しました。
1.今接続しているのは ケンジントン 72327JP SlimBlade Trackball でUSB接続です。 普通のマウスは今持っていませんが、用意して追って連絡します。
2.上記マウスあり、ゲームパッドなしのパターンと、上記マウスおよびゲームパッドなしの 両パターンを確認しましたが、やはり再現しました。
2019/01/06 23:46:21.427 [INFO] DirectInput, MIDI入力の初期化を行います。 2019/01/06 23:46:21.453 [INFO] キーボード を生成しました。 2019/01/06 23:46:21.458 [WARNING] Mouse デバイスの生成に失敗しました。 2019/01/06 23:46:21.504 [INFO] MIDI入力デバイス数: 0 2019/01/06 23:46:21.504 [INFO] DirectInput の初期化を完了しました。 ... 2019/01/06 23:46:23.862 [INFO] コンフィグステージの活性化を完了しました。 2019/01/06 23:46:24.006 [WARNING] GDI+ で汎用エラーが発生しました。 2019/01/06 23:46:24.006 [WARNING] プライベートフォントの追加に失敗しました(S:\GAME\音ゲー\dtxMania113\System\Default\Graphics\fonts\)。代わりにMS PGothicの使用を試みます。 2019/01/06 23:46:24.006 [INFO] MS PGothicを代わりに指定しました。 2019/01/06 23:46:34.022 [INFO] ---------------------- 2019/01/06 23:46:34.022 [INFO] ■ アプリケーションの終了 2019/01/06 23:46:34.074 [INFO] ConnectedStandby対応機種またはWindows10(1709)以降のため、電源プランの復元は行いません。
デバイスの有無で現象は変わらず発生する旨、承知しました。ほかに何か原因になりそうなものがないか、考えてみます。お手数ですが、お使いのconfig.xmlをお送りいただけないでしょうか。(ある設定状態の時に追加でキーアサインの設定をして現象が出ているのかな、と思いまして)
なお、「GDI+で汎用エラーが発生しました」とログに出てはいますが、気になさらないでいただいて結構です。こちらでも同じwarningが出ていますが、問題の現象は発生していません。
マウスの生成に失敗した場合、
CActConfigKeyAssign.cs の
- private bool tキーチェックとアサイン_Mouse()
- {
- for (int i = 0; i < 8; i++)
- {
- if (CDTXMania.Instance.Input管理.Mouse.bキーが押された(i))
- {
- CDTXMania.Instance.Skin.sound決定音.t再生する();
- CDTXMania.Instance.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Mouse, 0, i);
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].入力デバイス = EInputDevice.Mouse;
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].ID = 0;
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード = i;
- return true;
- }
- }
- return false;
- }
の
の部分で、Mouse が null を返して落ちてるんじゃないでしょーか。
これを再現するには、マウスを切り離すだけじゃなくドライバごとアンインストールする必要があるっぽいですが。
CInputMouseの生成部分をコメントアウトして実行してみたら
この場所で Null参照例外が発生してアプリが終了することを確認しました。
ログのパターンも同じなので、たぶん間違いないです。
でももう朝らしくて眠気が限界で修正できずに寝ますすみません(涙
fromさん、ご指摘ならびにご検証、ありがとうございました。
今日、仕事が終わってから修正します。
修正版を試作して、以下からダウンロードできるようにしました。お試しいただけますでしょうか。
https://osdn.net/users/yyagi/pf/DTXMania_TestBuilds/dl/DTXMania/DTXManiaGR_38848_fix.zip
処置内容:
の頭で、以下のような単純なnullチェックを入れただけです。
FDK側で必ずインスタンスを生成する・・・といったことも考えましたが、 FDKとしては上位側にマウスデバイスの有無を見せられるようにしたほうがよかろうと思い、 このような上位側での単純なnullチェックにしました。
なおマウスだけでなく、キーボードについても念のため同じ対策を入れています。
チケット登録者です。 修正版にて現象が再現しなくなる事を確認しました。 皆様遅くまでご対応ありがとうございます。
早々にご確認いただきありがとうございました。この修正は、次期バージョンに組み込ませていただきます。
fromさん、深夜のご調査、ありがとうございました。あとで修正部をpushしておきます。
修正版をRelease 114として公開済み。
の組み合わせで、キーアサイン画面のキー入力状態待ち状態になった瞬間に異常終了します。
毎回再現しています。
デフォルトキーアサインのままであればプレイは通常通り可能です。
ログは以下のとおりです。キーアサイン画面で入力待ち状態になった時刻が19:42:17です