システムの情報を表示するneofetch

コンソールでシステムの情報を表示させているデモ画像をよく見ます。調べてみるとこれは neofetch というプログラムで動いているようでしたので早速入れてみました。

sudo apt install neofetch

かんたんですね、特に目立った依存関係もなく入ると思います。実際に実行してみると以下のようになります。OS毎に左の画像が変わるので面白いです。

本題とは関係ないのですがPOP_OSに入れ直したので記念にスクショ

Diablo2で高解像度と高速描画(FPS-モーション予測) をする簡単な方法 2021年版

Read More

もう20年前のゲームなので需要はほぼないと思うのだがまだ遊ばれていてこの秋にはリマスター版も出る予定。しかし古いので最新のグラフィックボードにはもちろん対応してないしゲーム自体の解像度も低いのだがリリースされてからの歴史の中でWindowsのアップデートに伴い製品としてもなんとかついてきている状態。

これまでの定番は、「Glide3-to-OpenGL-Wrapper」というものだったのだが今回紹介するのはこれの置き換えとなる最新のドライバ。昨年くらいに出てきた ddraw も良かったのだがこちらは高解像度用のDLLと組み合わせて利用するなど若干手間が必要だった。

https://github.com/bolrog/d2dx/

ファイルをダウンロードして、DiabloIIのディレクトリに glide3x.dlld2dx-default.cfg をコピー(d2dx.cfgにリネームしておく)これだけ。

ショートカットは "C:\Diablo II - org\Diablo II.exe" -3dfx -w で問題なし。

d2dx.cfg

[window]
scale=1			# range 1-3, an integer scale factor for the window
position=[-1,-1]	# if [-1,-1] the window will be centered, otherwise placed at the explicit position given here
frameless=false         # if true, the window frame (caption bar etc) will be removed

[game]
# size=[-1,-1]		# if [-1,-1] d2dx will decide a suitable game size, otherwise will use the size given here
# size = [1068,600]
size = [1366,768]
filtering=2             # if 0, will use high quality filtering (sharp, more pixelated)
                        #    1, will use bilinear filtering (blurry)
                        #    2, will use catmull-rom filtering (higher quality than bilinear)

`size` で指定した解像度が変更できる選択肢として表示される。

正しく認識していれば右下に DX が表示されている。

このツールの良いところは、何も他のDLLをロードする仕組みがなくても高解像度になること。ちょっと感動。
また、拡大についてもFilterで3つだが選択できるので好きなものを選べる。

そしてもう一つの目玉が Motion Prediction (モーションの予測)とう機能が追加されている。

Even with the familiar “fps fix” applied to Diablo II, the internal game logic only ticks at 25 fps. Rendering at e.g. 120fps won’t give a smoother experience normally. D2DX now has a new feature that predicts unit positions between logic updates, resulting in actual high fps rendering. (As far as I’m aware this has never been done before with Diablo II.)

https://github.com/bolrog/d2dx/wiki/Motion-Prediction

とあるように、どんなにFPSを上げても内部が25フレーム分しかないので実際にはスムースになっていなかったのを予測で埋めて描画としてもスムースになるように変更したというものです。

実際に動かしてみるとマウスへの反応が若干良くなっている気がする。20年たってもまだまだファンが居るゲームというのもすごいけどこんなにシステムよりな部分までいじっても動いているゲーンエンジンというのが面白い。

D2X: HolyBaltの改造(複数本のミサイルへの変更)

Holy BaltをProjectDiablo2のように数本のミサイルに変更したいと思い skills.txt を修正していたが思うようにはならなかったがハードコーディングに近いが数は変更できたのでメモ

Holy Bolt 101 pal holy bolt 8 holybolt holybolt 42371 paladin_holybolt_cast cast_undead 17 holybolt holybolt 1 7 none SC SC xx 1 1 1 paladin_holybolt_cast cast_undead 6 20 1 1 1 4 32 1 1 6 #bolts par3 activation frame 2 triggered 2 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 4 hitpoints healed per level 15 heal synergy 50 damage synergy 1 8 96 mag 8 8 10 13 16 20 16 8 11 15 18 23 (skill(‘Blessed Hammer’.blvl)+skill(‘Fist of the Heavens’.blvl))*par8 384 3000

そもそも変更を探すのに役立ったリンク

結局のところ、参考にしたのはAmaのMultishotを参考にすることで目的に近いことができている。GEからGA列付近の計算式はMultishotのままなのでこのあたりは正しく修正が必要なのだが放置している。そのためHealボーナスについてはどう動いているのか正確にはわからない。

Multishotスキルからの変更するときの注意点

  • CN (cltstfunc)列 = 11 にすると、弓を装備しないと発動しない
  • E(srvstfunc)列 = 4 にしていると、攻撃がすべて当たらなくなる(弓として当たろうとしている?)
  • GE(calc1)列が、Holy Baltの本数となるのでココを変更すれば良い

Holybaltがすべての的に有効になるとかなり強力なのでProjectDiablo2でも弱体化するかと思われていたスキルなので本数が多すぎると爽快感はあるがバランス崩れすぎるので注意