Win版『A列車で行こう4』の高速化

kumashige2007-11-07

ちとワケありで簡単なプログラム作りましたんで、フリーウェアとして公開してみます。

かなり強引な処理やってますんで、環境によっては正しく動かないかもしれませんが。

http://kumashige.net/a4hs.html (※2019/1/27 リンク先修正)

一応、しばらくは情報を受け付けてみようと思いますので、何かあればご連絡下さいまし。ただし、不具合等、対応するかは分かりかねます。

一応、熊恭太郎雑記っぽいことをこの場で追記してクローズします。凄まじい勢いで書いてますので文章がドタバタです。

A4遅すぎ

A列車で行こう4』(以下、A4と記述)のWin版が遅くて仕方がない。最高速にしてタスクマネージャ見たらCPUパワーを1%も使ってないでやんの。旧版。

PC98版に比べて退化しまくりのWin版だけど、その最たるものが「高速モード」の廃止かもしれない。

高速化してみた

開発環境から試してみたところ、わずか十数行のプログラムを書いたらA4が高速化した。なんか凄まじい勢いで時間が回ってます。私のマシンは非力なんだけど、1日が1秒で過ぎていく。とっても気持ちいい。

速度が重視されるゲームであるにもかかわらず、また人気ゲームであったにもかかわらず、今まで誰も試したことがないのか、私の探し方が下手なのか分からないが、探した限りでは高速化パッチだとかユーティリティだとかが見つからない。

オリジナルの作り

標準のA4を最高速で動かすと、WM_TIMERを6回もらってゲームの一時間分を処理してる。設定を一カウント分遅くすると、この回数が6回ずつ増える。割り込み一回あたりのインターバル時間は未確認だけど、50ミリ秒とか100ミリ秒とか、そんな感じだと思う。

つまりA4は最高速でも、6×[数十〜百]ミリ秒程度の時間がないと1時間が過ぎない。きっとWinアプリの「作法」を重視したんでしょうな。見た目なんか3.1世代のアプリだし。

実のところ、これは列車が動く速度に合わせた仕様なんじゃないかと。高速列車は1時間に12マス、中速は6マス、低速は3マス進むという決まりがあって、割り込み回数が6の倍数ってのはそこに合わせたのかもしれない。

A4は、CPUと他のプロセスに優しい作りになっていることは確かだ。とりわけノートPCには優しいと言える。


マシンに優しいという言い方をしたが、実のところ胸の内では痛切な脱力感がこみ上げている。かなり納得のいかない挙動。半ば私の想像なワケだから、詳しい評価は控えておくとしても。

古いアプリだから仕方がない、という見方をして今日はおしまい。