試行錯誤ですが何か

定年親父がとりとめもなく、自己満足で日々やった事や感じた事、思ったことを書いています。ムンクが好きです。

【DCS World】フリーズ対策ソフトを作りました(CPUごとに10パターンあります)

前回のブログでは、**Digital Combat Simulator World(以下、DCS)**の起動不具合を解消する方法について書きました。

x-hannibal.hatenablog.com


今回は、以前のブログで「やり残している」と感じていたことを改めて試してみたところ、**もしかすると解決できたかも?**と思った経緯を書いてみます。

x-hannibal.hatenablog.com

 

 

 


■ 結論から言うと…

残念ながら、思っていたようには解決できませんでした。

 


■ 前回の方法の課題

前回紹介した方法は、
プレイヤーのPC環境に合わせて BATファイルを手動で書き換える というものでした。
具体的には、CPUのスレッド数をもとに数値を計算して書き換える必要があり、正直あまりスマートな方法ではありません。

理想としては、使用しているCPUを自動で判別して数値を反映できる仕組みを作りたかったのですが、その方法が分からずに止まっていました。

 


■ ひらめきは突然に

数日前、通勤電車の中でぼんやりと窓の外を眺めていたときのこと。
雲の切れ間から日が差し込むのを見ていて、ふと考えが浮かびました。

「バッチファイル(.bat)と PowerShell(.ps1)を組み合わせたら、できるんじゃないか?」

昼休みに会社のPCで試したところ、これが見事に成功!
ところが、家のメインPCで試すと――エラーだらけで全く動かない

仕様的には動作するはずなのに、環境によってはコマンドが受け付けられないようです。
しかも、うまく動いてもセキュリティソフトが誤検知して起動をブロックしてしまう始末。

試行錯誤するうちにコードはどんどん複雑化し、ついには自分でもわけが分からなくなってしまいました。
もう根気が続かない年齢でもあるので、ここで諦めることにしました。
再現性がないものを作っても意味がありませんからね。

 


■ 原点回帰

こういうときこそ、原点に立ち返るのが一番です。

ふと思い出したのが、AK-47(注1)の基本コンセプト——

「シンプル、頑丈、高い信頼性」

そして、システム開発をしていた頃に上司から言われた言葉も頭をよぎりました。

「年に何回も発生しない例外処理を、システムで無理に解決しようとするな」(注2)

つまり、発想の転換が必要なのです。

 


■ シンプルに考える

DCSの最低CPUスペックは「Intel Core i5-4590 または AMD FX 8350 以上」。
スレッド数で見ると、前者は4スレッド、後者は8スレッド。
つまり、最低でも4スレッド以上あれば動作することが分かりました。

そこで、現行CPUのスレッド数をざっと調べてみたところ、
おおむね10パターン程度に分類できることが分かりました。



 


■ 10パターンで十分!

もともと作ろうとしていたBATファイルは処理も軽く、ファイルサイズも小さい。
であれば、スレッド数に合わせた10種類をあらかじめ用意して、
ユーザーが自分のCPUに合ったものを選ぶ方式にすれば十分対応できる、という結論に至りました。

どうせ作るなら少し見た目にもこだわろうと思い、
EXEファイル化してオリジナルアイコン付きで仕上げました。

 


■ ダウンロードはこちら

こちらからダウンロードできます。
よかったらぜひ試してみてください。

 

DCS_xxthreadCPU

mega.nz

*↑ firestorage.jpにアップしていましたが消されてしまったので再度、mega.nzにアップしました。(2026/1/5)

 


注1:

ソ連の技術者ミハイル・カラシニコフによって設計されたアサルトライフル
その特徴は「シンプルで頑丈、信頼性が高い」こと。

注2:

発生頻度の低い例外処理は、システム対応ではなく運用や業務フローの見直しでカバーすべきという考え方。