Skip to content

Drag'n Wash ModFramework 1.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 01:31
· 278 commits to main since this release

Drag'n Wash ModFramework 1.3.0

Crash reports with a window that tells you what happened, the fix for the Direct3D 12 crash they found, and sliders for the game's Options screen. Released together with Drag'n Wash Localization v1.3.0. Everything new is additive: mods built on 1.2 need no change.

Plugin Version
Drag'n Wash ModFramework (core) 1.3.0 Crash reports and their window, the Direct3D 12 font atlas fix, GameOptions.AddSlider
Preloader patcher 1.3.0 No change; follows the core
Tool window 1.1.1 The Console shows translated text on Direct3D 12
Assets 1.1.1 Tells the crash reports which language is in use
Dialogue, Text, Flags and saves, Inspector unchanged
Installer (installer/) unchanged Same Install.exe as 1.2.0

Crash reports (experimental)

  • Each session keeps a short record in BepInEx/CrashReports: versions, graphics, the mods loaded, scene changes, errors, the language in use. When the game crashes or freezes, it becomes a report folder with report.txt, and Unity's crash dump or a dump of the freeze.
  • A window outside the game (CrashReporter.exe, Windows) opens right after a crash: "Oops, the kobold slipped!", what most likely happened, what you can do, and buttons to open the report folder or copy the report for a bug report. It speaks the language you chose in the game (English, Japanese, Chinese for now). After a normal exit, nothing appears.
  • Nothing is sent anywhere. Attach report.txt to a bug report; share dumps only privately, as they hold part of the game's memory.
  • Settings under Options → Mods → Drag'n Wash ModFramework → Diagnostics. Mods can add their own notes with CrashReports.Note. docs/CRASH_REPORTS.md

The Direct3D 12 crash (Unity UUM-140564)

The crash reports caught it: opening the Tool window made Unity's text engine send the same font atlas to the graphics card 32 times in one frame, and Unity crashed while tidying up after that burst. On Direct3D 12 the framework now sends each changed font atlas once per frame, for the IMGUI text and the game's TextMeshPro text alike. With it, the Console shows translated text instead of ?.

Switching windows in Exclusive fullscreen on Direct3D 12 can still freeze the game; that is the game's and Unity's, and the framework leaves your choice alone. If it happens, the crash report window suggests Fullscreen or -force-d3d11.

Sliders in the game's Options screen

GameOptions.AddSlider (#39) adds a slider row built by the game itself, following its Options flow (preview, Save, Back, Set Default). Thanks to Extrudeous-101 for the request.

GameOptions.AddSlider("com.example.mymod.speed", "Speed", 0.1f, 0.1f, 10f,
    getSaved: () => _speed.Value, save: value => _speed.Value = value);

Who should update

Everyone on Direct3D 12 (the Windows default), and mod makers who want sliders or crash reports. If you use Drag'n Wash Localization, install its v1.3.0, which includes this.


日本語

クラッシュのときに何が起きたかを知らせるクラッシュレポートと、それで突き止めた Direct3D 12 のクラッシュの修正、ゲームのオプション画面のスライダーです。Drag'n Wash Localization v1.3.0 と一緒にリリースしました。新しいものはすべて追加なので、1.2 向けに作った Mod は変更なしで動きます。

プラグイン バージョン
Drag'n Wash ModFramework(中核) 1.3.0 クラッシュレポートとそのウィンドウ、Direct3D 12 のフォントのアトラスの修正、GameOptions.AddSlider
プリローダーのパッチャー 1.3.0 変更なし。中核に合わせる
Tool window 1.1.1 Direct3D 12 でも Console に訳が表示される
Assets 1.1.1 使っている言語をクラッシュレポートに伝える
Dialogue、Text、Flags and saves、Inspector 変更なし
インストーラー(installer/) 変更なし 1.2.0 と同じ Install.exe

クラッシュレポート(実験的)

  • セッションごとに、短い記録を BepInEx/CrashReports に残します(バージョン、グラフィックス、読み込んだ Mod、シーンの切り替え、エラー、使っている言語)。ゲームが落ちたり固まったりすると、それが report.txt と、Unity のクラッシュダンプかフリーズ時のダンプの入ったレポートになります。
  • ゲームの外のウィンドウ(CrashReporter.exe、Windows)が、クラッシュのすぐあとに開きます。「おっと、コボルトが足をすべらせた!」と、何が起きたと考えられるか、できること、レポートのフォルダーを開くボタンと、不具合の報告用にレポートをコピーするボタン。ゲームで選んだ言語で表示します(今は英語・日本語・中国語)。普通に終了したときは何も出ません。
  • どこにも送信しません。不具合の報告には report.txt を添えてください。ダンプにはゲームのメモリの一部が入るので、個別にだけ渡してください。
  • 設定は オプション → Mods → Drag'n Wash ModFramework → Diagnostics にあります。Mod は CrashReports.Note で自分の記録を足せます。docs/CRASH_REPORTS.ja.md

Direct3D 12 のクラッシュ(Unity UUM-140564)

クラッシュレポートが原因を捉えました。Tool window を開くと、Unity の文字の仕組みが同じフォントのアトラスを 1 フレームに 32 回グラフィックスカードへ送り、その後片付けの途中で Unity が落ちていました。Direct3D 12 では、変わったフォントのアトラスを 1 フレームに 1 回だけ送るようにしました(IMGUI の文字も、ゲームの TextMeshPro の文字も)。あわせて、Console で訳が ? ではなく表示されるようになりました。

Direct3D 12 の排他的フルスクリーンでウィンドウを切り替えると、固まることがまだあります。これはゲームと Unity の問題で、フレームワークは選んだ設定を変えません。起きたときは、クラッシュレポートのウィンドウがフルスクリーンか -force-d3d11 を案内します。

ゲームのオプション画面にスライダー

GameOptions.AddSlider(#39)で、ゲーム自身が作るスライダーの行を足せます。オプション画面の流れ(試しに反映、保存、戻る、既定に戻す)にそのまま従います。要望をくれた Extrudeous-101 さんに感謝します。

アップデートが必要な人

Direct3D 12(Windows の標準)で遊んでいる人全員と、スライダーやクラッシュレポートを使いたい Mod の作者です。Drag'n Wash Localization を使っている場合は、これを含む v1.3.0 を入れてください。