matanki-saito / EU4dll

Europa Universalis IV double byte language patch; master:1.34.2, dev:1.37.1.0

Home Page:https://paratranz.com/projects/76

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CTD on a long tooltip

oooFUNooo opened this issue · comments

commented

問題:
画面からはみ出すほど上下に長いツールチップが表示されると、その数秒後にクラッシュする。

再現性:
常に

再現手順:
以下、Extended Timeline 1.13.4および同日本語版を前提とする(更新日はいずれも2022/02/25)。

  1. 西暦58年のブックマーク「パルティア戦争」を選択する(デフォルト)
  2. ローマを選択してプレイを開始する
  3. 開始時からパルティアほか数カ国と戦争中なので、適当に時間を進めて和平する(無条件降伏で良い)
  4. 国家の決断(decision)から「ローマの分割」を実行する(戦争中は実行できない)
  5. 時間を1日進めるとイベント「ローマの分割」が発生する(参考画像)
  6. 選択肢にカーソルを合わせると巨大なツールチップが表示され、その数秒後にクラッシュする

原因:
不明
日本語化DLLがインストールされていても英語環境(日本語化MODなし)では発生しない。

解決策:
不明

参考画像:
20220225090647_1

_alloca_probeで落ちているようでした。
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/alloca?view=msvc-170
日本語だと文字数は英語の3倍の長さになるので、おそらく想定より超えてしまったのではないかと思われます

DLLで治せるか怪しくなってきたので一旦回避策を書きます。
1)うさみみハリケーンをダウンロードします。
https://www.vector.co.jp/soft/win95/prog/se375830.html
2)UMPE64.exeを開きます。PEエディタを起動して編集を選びます。
image
3)EU4.exeをD&Dします。
image
4)StackReserveのサイズを000000400000から000001400000に、StackCommitサイズを000000001000から000000004000にして、書き込みします。
image