ホーム > トップページ > 記事閲覧
バグ報告スレッド 14
メンテ
名前 : SmokingWOLF / 日時 : 2024/03/19 00:01

WOLF RPGエディターに関するバグ報告を受け付けるスレッドです。

バグ報告に関しては、以下の情報があると助かります。

・【問題発生箇所】エディター(Editor.exe)ならどのウィンドウか、
  ゲーム動作時(Game.exe)なら何のコマンド(または何の処理)か。

・【具体的な再現手順】または【再現ゲームデータ】
 再現できるゲームデータをアップしてくださる場合は、
 ・サンプルゲームに再現処理を加えたもの
 ・Game.exeなども含めた、解凍してすぐに実験できるデータ
 だと嬉しいです。ゲーム基本設定や、細かいバージョン違いが絡んだ
 バグである可能性もあるからです。
 ★ただしEditorPro.exeは製品データなので絶対に含めないでください。

・【エラー文が出た場合は、その文章をなるべく正確に記述してください】

・【強制終了するエラー】については、原因が不明でも、再現できるデータさえ
  いただければ、バグを特定・修正できる可能性がかなり高いです。強制終了関連のバグは、
  1にも2にも、とにかく完全なデータ[Game.dat、Game.exe等も含めたもの]を
  いただけると助かります。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
< このスレを全て閲覧する>
>>1-500

 名前 サイトURL
 パスワード (記事メンテ時に使用)  スレッドをトップへソート
 コメント
 添付ファイル


   クッキー保存

Page: 1 | 2 | 3 | 4 | 5 | 6 |

No.77   Re: バグ報告スレッド 14
メンテ
 2024/04/22 05:47
 初心者
 ID:erprpgF568
>>76
いつもありがとうございます。

残念ながら当方の該当ノートPCでは起動しませんでした。

CPU intel i5-480m Windows 10 Pro (2011年頃のノートPC)
CPU intel Celeron P4600 Windows 11 Home (2011年頃のノートPC)

P4600上のWindows 11は本来OSがインストールできないPCなのですが無理矢理インストールしているものなのでおまけでテストしています。

2011年頃以前のPCを使用している人がほとんどいないくて影響はないかもしれません。

※Celeron N3050搭載のWindows 10 Home (2016年頃のノートPC)は起動します

当方のノートPCに問題があるかもしれないので
ほかの検証結果もあったほうがよいです。
添付ファイルあり20240421_2324_28_1.png

No.76   Re: バグ報告スレッド 14
メンテ
 2024/04/20 23:00
 SmokingWOLF
 ID:errreirpL408
>>75 自動ベクター化
おおーまさにそれです! 非常に貴重な情報ありがとうございます!
隠しオプション、もし動作するならあと5年も耐えればほぼ問題なくなると思いますので今しばらく残っているなら助かりそうです。

ひとまず、手軽で処理負荷への影響が軽かった/d2Qvec-sse2onlyを使ってVer3.324のGame.exeをコンパイルしてみました。
(no_vectorは処理負荷が3〜20倍以上になるのと対応量が現実的ではなさそうでした)

特にコンパイル時のエラーなどは起きなかったのですが、正常にこれで動作可能になっているのかは
古いPCをお持ちの方しか分からないので、
もしよければ2011年頃のPCをお持ちの方はお試しいただけますと幸いです。

【Game_d2Qvec-sse2only.exe】
https://silversecond.com/WolfRPGEditor/Data/20240420_Game_d2Qvec-sse2only.zip
条件:「2011年頃の(AVX命令のないCPU搭載の)PC」で「Ver3.31〜暗号化」を行ったデータでこのGame.exeを実行する
 → もし動作すれば今回の問題が解決したということになります。

VS2022も17.9.6に更新してみました、ここ数日は17.9.5のままだったようです。
No.75   Re: バグ報告スレッド 14
メンテ
 2024/04/20 20:15
 通りすがり
 ID:ergeOired350
ループ! 昔どこかで見たような…。

自動ベクター化
https://learn.microsoft.com/ja-jp/cpp/parallel/auto-parallelization-and-auto-vectorization?view=msvc-170#auto-vectorizer
> 自動ベクター化機能は、/arch スイッチで指定されていない命令を生成することもあります。
> これらの命令は、実行時チェックによって保護され、引き続きコードが正しく実行されることが確認されます。
> たとえば、/arch:SSE2 のコンパイル時に SSE4.2 命令が送出されることがあります。

全部のループ(for|while|do)直前に
#pragma loop( no_vector )
を付けるのは気が滅入りますが、
/d2Qvec-sse2only
という隠しオプションもあるようです(VS2022で効くかは不明)。
https://stackoverflow.com/questions/47800965/

余談です。
VSは2週に1〜2回更新されていますが、VS自体の更新はされていますでしょうか。
現在17.9.6ですが、17.9.5では
「古い CPU を搭載したマシンで発生するクラッシュを修正しました。」
なんてしょーもない修正もありました(こちらはVS自体がクラッシュするという意味ですが)。
No.74   Re: バグ報告スレッド 14
メンテ
 2024/04/20 17:51
 SmokingWOLF
 ID:errreirpL408
>>73 組み込み命令
おお、情報ありがとうございます!
実はAVX命令が使われていると思われるところは、
ただのfor文が最適化された結果そうなっちゃってるので、
少なくとも私の側のコード内では、組み込み命令を明示的に使っている箇所は1つもなかったりします。

たとえば
for(int i=0;i<〜;i++){ a[i] ^= b[i]; } ※少しボカしてます
みたいな処理が勝手にAVX命令として最適化されちゃっているみたいで、
こんなのが無数にあって探すのが大変でした。
(コンパイラはSSE2かAVXか分からない何かの最適化をしたとしか教えてくれませんし)

オプションで組み込み関数の使用を一切なしにする(?)ことでもしかしたら解決できるのかもしれませんが、
こういった処理のパフォーマンスが全体的に落ちると考えるとこれまた悩ましいところです。
No.73   Re: バグ報告スレッド 14
メンテ
 2024/04/20 16:59
 通りすがり
 ID:ergeOired350
たとえばAVX命令入りの組み込みを使っている場合は
/arch:SSE2を指定していたとしてもAVX命令が使われるようです。
https://devblogs.microsoft.com/oldnewthing/20201026-00/?p=104397
_mm_insert_epi32()はそのままPINSRD(SSE4)になっちゃうよ、という例。

https://learn.microsoft.com/ja-jp/cpp/intrinsics/x86-intrinsics-list
にある_m_〜や_mm_〜とかですね。
DxLib等で使われていたら探すのは難しいかもしれませんね…。
No.72   Re: バグ報告スレッド 14
メンテ
 2024/04/20 15:49
 SmokingWOLF
 ID:errreirpL408
>>71 /arch:SSE2に設定するのではダメ?
情報ありがとうございます!
実はここまでの過程でVisual Studioのコンパイラオプションの「拡張命令セットを有効にする」の「/arch:SSE2」オプションを試してみたのですが(>>62 のGame.exeがそれでした)、
なぜかその状態でもAVX機能の最適化がオンになってしまう現象が確認されました。

調べると、/arch:SSE2は「最低でもSSE2を使うよ」という意味らしく(私にもよく分かりません)、
AVXを使わないようにするなら「/arch:IA32(CPU拡張機能を全部オフ)」にしないと
ダメっぽいかもという話がありました。

ただ、Game.exe内ではDXライブラリ部分含めSSE命令と思われる最適化が他にもたくさん行われているようなので、
CPUの拡張機能全部オフはさすがに厳しいと思ってカットしていません。
AVX処理をしている部分もデータ処理速度が最適化されない場合の28倍くらいになってるので、
なるべく残して快適にしたいのが心情です。
No.71   Re: バグ報告スレッド 14
メンテ
 2024/04/20 15:28
 通りすがり
 ID:ergeOired350
最適化で使われる命令ってコンパイラオプションの/archで指定できませんでしたっけ?
https://learn.microsoft.com/ja-jp/cpp/build/reference/arch-x86

SIMD命令はMMXからAVX512までいっぱいありますがSSE2で十分な気がします。
WindowsはWindows 7の2018年3月のアップデートから
SSE2が必須となっています(当時Vistaはサポート終了済み)。
https://support.microsoft.com/ja-jp/topic/110d3a09-810a-c447-72a7-d52c561364cd
(アプリケーションの代表例として)ブラウザーは以下のようになっています。
SSE2 Chrome 35 (2014-05-20)
SSE2 Firefox 49 (2016-09-20)
SSE3 Chrome 89 (2021-03-02)
No.70   Re: バグ報告スレッド 14
メンテ
 2024/04/19 19:06
 SmokingWOLF
 ID:errreirpL408
>>69 動作する状況について
情報ありがとうございます。

3.14暗号化までは動作するとのことで、やはりAVXがどう考えても影響している気がするのですが、理解が難しい状況のようです。
ゲームデータ作成ダイアログにもそういった暗号化別の挙動についての情報を表示することで、
開発者の方にも理解の上で暗号化バージョンを選んでいただこうと思います。

このたびは粘り強い情報提供、誠にありがとうございました。
No.69   Re: バグ報告スレッド 14
メンテ
 2024/04/19 20:52
 初心者
 ID:erprpgF568
>>68
ありがとうございます。

CPU intel i5 480m Windows10Pro (2011年頃のノートPC)
CPU intel Celeron P4600 Windows11Home (2011年頃のノートPC)
手元ですぐに検証できるノートPCを使用しています。

ウディタv3.324フルパッケージサンプルゲームを使用

2機種とも
非暗号化(暗号化無し) 起動可
-----
ゲームデータ作成時暗号化設定のDataフォルダまるごと暗号化(Data.wolfのみ)で出力

2機種とも
Ver3.14時点の暗号化
Ver3.00〜3.13時点の暗号化
Ver2.25〜2.29時点の暗号化
起動を確認しています。
(最新の暗号化のみ起動しませんでした)


4/19 20:50追加
検証に使用した同じファイルを
Celeron N3050搭載のWindows 10 Home (2016年頃のノートPC)
ですべて起動確認をしました。
(最新の暗号化も起動しました)
No.68   Re: バグ報告スレッド 14
メンテ
 2024/04/19 18:47
 SmokingWOLF
 ID:errreirpL408
>>67 やはり古いPCで最新暗号化が起動できない
続報ありがとうございます! 
となると、CPUとは別の問題があるか、実際の環境だとCPUの機能の判定(AVXがあるかないか)が
うまくいっていない可能性などもありそうな気がします。

ひとまず、もう手がないので、今回の問題は
動作環境のところに注意書きとして記載して対応させていただくとして、
最後に以下の情報だけ教えてくださると今後の参考になります。

●暗号化なしならGame.exeは起動できますか?

●Ver3.324で「Ver3.14暗号化」をしたゲームデータならGame.exeが起動できますか?

(「Ver3.14暗号化」はVer3.31暗号化と違ってAVX命令を含まない暗号化が行われます。
 もしこれが動作するなら、やはりCPUの問題の可能性が疑われそうです。
 ウディタVer3.324で、CPUのAVX命令が使えない場合はその処理を回避するように組んだつもりなのですが、
 仮想環境上ではうまくいっても現物では判定がうまくいかないなどあるかもしれません)
No.67   Re: バグ報告スレッド 14
メンテ
 2024/04/19 18:02
 初心者
 ID:erprpgF568
>>66
対応ありがとうございます。

残念ながら、
CPU intel i5 480m Windows10Pro (2011年頃のノートPC)
CPU intel Celeron P4600 Windows11Home (2011年頃のノートPC)
では起動できませんでした。

ウディタv3.324フルパッケージサンプルゲームを使用
最新の暗号化(v3.324)でゲームデータ作成時暗号化設定のDataフォルダまるごと暗号化(Data.wolfのみ)で出力
良いお知らせができなく申し訳ないです
一応イベントビューアーでの画像を添付します
(i5-480mマシンで取得)
添付ファイルあり20240419_1758_57_1.png

添付ファイルあり20240419_1758_57_2.png

No.66   Re: バグ報告スレッド 14
メンテ
 2024/04/19 15:20
 SmokingWOLF
 ID:errreirpL408
>>59-65 最新暗号化を使うと昔のPCで起動できなくなる
Ver3.324で修正を試みました。
AVX命令のないCPUで起動できるところまではいきましたが、「何らかのCPU拡張命令」自体は
Game.exe内の起動時以外の場所や、試用しているDXライブラリ内の処理でも多く使われているようなので、
もし動作しないイベントコマンドなどお気づきになられましたらご指摘ください。
(ウディタの開発に使っているVisual Studio2022では、コード内で「CPUの拡張命令」に合わせた
 最適化をした場所は教えてくれるのですが、それがSSE命令に合わせた最適化なのか
 AVX命令に合わせた最適化なのかを知ることはできないようで、区別ができていません)
No.65   Re: バグ報告スレッド 14
メンテ
 2024/04/18 23:27
 SmokingWOLF
 ID:errreirpL408
>>63-64 CPUによっては暗号化データありだと最新版が起動できない
続報ありがとうございます!
2013年頃のCPUなら動作するとのこと、こちらも同じ感触でしたので
裏付けが取れて助かります。

どうにかCPUの機能別に検証できないかと色々探したところ、
仮想環境でCPUの機能をオンオフしながら試せるものがありましたので
色々試してみました。

その結果、2011年の古いCPU「Core i5-480M」の機能に合わせて
『AVXなし VT-xあり VT-dなし AES-NIなし』
というオプションで試したところ、暗号化ファイルありの状況で
メモリ違反の書き込み違反で起動に失敗する状況をおそらく再現することができました。

そしてその状態からAVX設定だけ「なし→あり」に変えたところ、
最新暗号化ファイルのある状況で問題なく起動に成功するようになることが判明しましたので、
「CPUのAVX命令が使えるか否か」がエラー原因の重要な差だということが分かりました。
(Game_6S.exeでAVXを使わないように設定したつもりなのですがうまく行っていないか、
 そういうオプションじゃなかったのかもしれません。手元で再挑戦してみます)

この情報を元に、対策が打てないか考えてみます。
少なくとも、起動時に「CPUが古いので起動できない」というエラーを出すことは可能になるはずです。

このたびは貴重な情報提供、ありがとうございました。
No.64   Re: バグ報告スレッド 14
メンテ
 2024/04/18 17:25
 初心者
 ID:erprpgF568
>>59
の追加です(違うところにあったノートPC2台を検証)
---
ウディタv3.323フルパッケージサンプルゲームを使用
ゲームデータ作成時暗号化設定のDataフォルダまるごと暗号化(Data.wolfのみ)で出力

最新の暗号化(v3.323)で
CPU intel Pentium P6200 起動せず Windows10Pro (2011年頃のノートPC)
CPU intel Core i3-3110M 起動可 Windows10Pro(2013年頃のノートPC)

2013年頃のノートPCで起動できました。
添付ファイルあり20240418_1725_51_1.png

添付ファイルあり20240418_1725_51_2.png

No.63   Re: バグ報告スレッド 14
メンテ
 2024/04/18 00:21
 初心者
 ID:erprpgF568
>>62
ありがとうございます。
検証用のサンプルゲーム最新の暗号化したものに
Game_6S.exeを追加して起動テストしたのですが起動しませんでした。
検証に使用したのは先ほどと同じノートPCです

CPU intel i5 480m Windows10Pro (2011年頃のノートPC)
CPU intel Celeron P4600 Windows11Home (2011年頃のノートPC)

イベントビューアーで見られる例外コードは
0xc0000005
となっていて変わらないようでした。

原因がわからなくて申し訳ありません。

ちなみに添付画像にエラーが複数ありますがGame_6S.exeを数回起動確認したために記録されているものです。
検証に使用したノートPCはメモリの故障は無いと思います。
※絶対に故障してないかといえばわからないです
添付ファイルあり20240417_2358_10_1.png

No.62   Re: バグ報告スレッド 14
メンテ
 2024/04/17 23:39
 SmokingWOLF
 ID:errreirpL408
>>61 全部のGame.exeを試したが動作しなかった
テスト誠にありがとうございます! どれも動作しなかったとは!
おっしゃるAES New Instructions機能も含め、どこかで最新のCPU命令を使っている場所が
入ってしまって昔のCPUで動かない、という可能性は十分考えられそうです。
(AVX機能というのもあやしそうです)

ウディタ全体のパフォーマンスが下がるかもしれませんが、
CPUの拡張命令をSSE2(恐らく2004年頃のCPUに実装されている処理)までしか
使わないように設定したGame_6S.exeを作ってみました。
よければ一度こちらを2011年のPCでお試しください。

silversecond.com/WolfRPGEditor/Data/20240417_Game_6S.zip
3.5MB

もし動作して、全体のパフォーマンスにさほど影響がないようなら
次Verからこの設定にすることも検討してみます。
No.61   Re: バグ報告スレッド 14
メンテ
 2024/04/17 22:49
 初心者
 ID:erprpgF568
>>60
ありがとうございます。

検証用のサンプルゲーム最新の暗号化したものに
提供していただいたGame.exeを追加して起動テストしたのですが、どれも起動しませんでした。
検証に使用したのは以下のノートPCです

CPU intel i5 480m Windows10Pro (2011年頃のノートPC)
CPU intel Celeron P4600 Windows11Home (2011年頃のノートPC)

起動したノートPCと差があるとしたら
intelのWeb頁にあるCeleron N3050のセキュリティーと信頼性のところに記述があった
インテル AES New Instructions
というやつがi5-480mとCeleron P4600にはないようです。
SmokingWOLFさん検証のCore i7-3770Tには搭載されているようです。

憶測ですので他に原因があるのかもしれません。
他の方でも検証していただけるとよいと思います。
添付ファイルあり20240417_2249_41_1.png

No.60   Re: バグ報告スレッド 14
メンテ
 2024/04/17 23:55
 SmokingWOLF
 ID:errreirpL408
>>59 古いPCで最新の暗号化版が起動しない
非常に詳しい検証結果ありがとうございます!

こちらも手持ちで一番古い2013年7月時点のCore i7-3770T搭載、
Windows7 UltimateのノートPCで「Ver3.31〜時点の暗号化」したものを
Ver3.323のGame.exeで起動できるか試したのですが、
残念ながら期待通りに起動してしまい、
おっしゃるような問題を確認することができませんでした。

ちょうど2013年頃から搭載されたという
セキュリティ関連のオプションも最新版からオンにしているので、
そういったものも影響しているかもしれません。
ですがこちらではこれ以上古いPCは保有しておりませんので、テストが困難な状況です。

テスト用に、オプションやセキュリティ機能のオンオフを切り替えたEXEを色々作ってみましたので、
もしよろしければ以下のGame.exe群を試していただけると、さらなる情報が得られて助かります。

(URLは削除されました)

↑このZipファイル内には、Game_1C.exe、Game_2I.exe、Game_3D.exe、Game_4D2.exe、Game_5F.exeの5つのGame.exeが入っています。
それぞれ、「2011年のノートPC」でどれか1つでもVer3.31〜時点の暗号化ファイル入りのゲームデータを起動できるか、
チェックしてみていただけるととても助かります。
(といっても、「これを外すと動く」と分かっても外せないセキュリティもありますので、
 その場合は必要環境に注意書きを足して対応させていただくことになると思います)
No.59   Re: バグ報告スレッド 14
メンテ
 2024/04/17 19:24
 初心者
 ID:erprpgF568
いつも使用させていただいてありがとうございます。
バグというよりセキュリティ強化による副作用ではないかという事象が当方で発生したので報告します。
あくまでも古い機種またはCPUを搭載しているマシンでの現象ですので
2015年頃以降の機種では発生しないと思われます。
ゲームデータ作成で出力したGame.exeを起動して確認しました。
---
ウディタv3.323フルパッケージサンプルゲームを使用
ゲームデータ作成時暗号化設定のDataフォルダまるごと暗号化(Data.wolfのみ)で出力

最新の暗号化(v3.323)で
CPU intel i5 480m Windows10Pro 起動せず (2011年頃のノートPC)
CPU intel Celeron P4600 Windows11Home 起動せず (2011年頃のノートPC)
CPU intel Celeron N3050 起動可 Windows10Home(2016年頃のノートPC)

暗号化Ver3.14時点
上記全 CPUノートPC 起動可

暗号化Ver3.00から3.13時点
上記全 CPUノートPC 起動可

暗号化Ver2.25から2.29時点
上記全 CPUノートPC 起動可

また、起動テストに使用したノートPCはウイルス対策ソフトとしてOS標準搭載のWindowsセキュリティだけです。

当方の環境に問題があるのかもしれないです。
起動しなかったノートPCのイベントログに残されたいたログの
画面コピー一部を添付しておきます。
添付ファイルあり20240417_1859_52_1.png

No.58   Re: バグ報告スレッド 14
メンテ
 2024/04/16 02:38
 家田
 ID:eprririW462
>>56

すみません!
\cself[0]に0が代入される件、こちらの手違いでした!
記事を削除しておきます。
お手数かけて申し訳ないです!

Page: 1 | 2 | 3 | 4 | 5 | 6 |