■ 開発日記 巻之七拾参


OSTRA / Takeshi Yoneki


新・平家物語(小説・吉川英治)

 鎌倉幕府の始まりを描く。電子書籍で面白く読んでる。屋島の戦いで屋島作戦という表現をしている。もしやとググるとエヴァのヤシマ作戦の元ネタとされている。余一(与一)が扇を射る話。中学だか高校の古文で習ったとき、鳥を三羽放ったら二羽落とすという評判を古文の教師は物凄く腕が立つわけじゃないと評し、俺はえ~~~と抗議したことを思い出した。余一が弓の名手だという文脈だろうに(違うのか?)。

 壇ノ浦の戦いも終え、あとは義経が虐められて大陸に渡って成吉思汗になるまで(ちと違う)。

 NHK BSPでは鎌倉幕府の終わりで室町幕府の始まりを描いた私本太平記を原作にした大河ドラマ太平記を再放送しており毎週観ている(当時も観てた)。室町幕府の終わりの麒麟がくるに太平記に出演してた役者が4人も出てる。鶴太郎の演技は相変わらずいやらしい(誉め言葉)。そうか、脚本家が同じ人なのか。


2020.11.12


 数年前、BUZZの「ケンとメリー~愛と風のように~」のドラムがヒキヒロと気付き、昨年、大貫妙子の「Carnaval」のドラムがヒキヒロと気付き、先日、戸川純の「眼球綺譚」のドラムがヒキヒロと気付いた。俺どんだけユキヒロ(高橋幸宏)を好きなん。どんだけユキヒロのドラムに飢えてるん。


2020.11.18


 Koboに移行後放置状態のKindle PW 10を開いてみる。バッテリーが残り少ないのでシャットダウンする云々のダイアログが出る。Kindle PW 10の電源を落とす方法はひたすら放置してバッテリーが残り少なくなるのを待つしかないようだ。ダイアログは出たけど、まだシャットダウンはされてない。


2020.12.03


 Steamのセールスでスカイリムを買う。monado君にインストールして起動しようとしたら64bitなので動きませんとのメッセージ。あぁ、完全に32bit Windowsは過去の遺物だってか。いやまぁ本命のゲームマシンはGPD WIN2(64bit Windows)なので、いいんだけどね。


2020.12.03


オブリビオン (PC)

 弓矢の攻撃力アップのため装備の付呪を敏捷性に全振りしていた。しかし攻略情報をを読むと、パラメーター100以上は攻撃力に反映されないと判明。追加シナリオ「シヴァリング・アイルズ」のダンジョンで重装防具作成のための狂気の鉱石入手と付呪向けの極大魂縛(アズラの星)に集中する。敏捷性と射手が100くらいになるようにして、残りは腕力とスタミナに振る(腕力は弓矢の攻撃力には関係しない)。極大魂を持たないグラマイトやオーダーの司祭なら一発(隠密での3倍打)で倒せた。


2020.12.03


オブリビオン (PC)

 レベル34でようやく暗視の指輪を入手。完全ランダムとはいえ、遅すぎ。ないと攻略に不便なのでだいぶ前に適当な指輪に暗視を付呪して使ってはいたんだが。PS3での前回プレイではもっと早い時期に二個も入手した。名前に強とか弱とかあったが、効果は同じ。


2020.12.07


 GPD WIN2にBlueStacks(Androidエミュレーション環境)を入れてみたが、液晶が本来縦向きなことが災いして、あまり旨いこといかない。Rotation Controlというアプリを入れてなんとか凌ぐという感じ。Androidエミュとしてはだいぶ以前に調べたときよりはかなりちゃんと動くようになっている。あれから改善を続けてたってのは素晴らしいことだ。

 Titanium Backupを入れてみたがrootが必要と言われ、BlueStacks TweakerというWindowsのアプリを入れBlueStacksのrootを取る。エミュなんだから普通に設定に入れとけよ。SuperSUを入れてTitanium BackupにてMapFan 2015をリストア。/sdcard/Android/dataにマップデータ等をコピー。以前Androidエミュを色々試したとき、ストレージのサイズで引っかかることが多かった。マップデータは6GBほどあり、問題なくコピーできた。ファイルのコピーのためにOI File Managerを入れる。ともかく、無事MapFan 2015が動く。単純にAPKをインストールして、/sdcard/Android/dataにマップを入れるだけで復帰できると良いのに、アプリの作りが悪くて、そういう方法ではちゃんと動かない。


2020.12.09


 音楽図鑑のTIBETAN DANCEもユキヒロな気がしてウィキペディアで調べるとユキヒロだった。SELF PORTRAITもユキヒロだそうで、なんで他のアルバムに比べて音楽図鑑がしっくりくるのか、好きなのかの理由の一部ではあろうと思う。


2020.12.25


 あらかじめ家のノートPCのVAIO君や勤務先のLinux開発機をUbuntu 18.04から20.04にアップグレードして感触は確認していた。年末休みのうちにと家のファイルサーバー機aleph君を20.04にアップグレード。前回アップグレード時にEFIブートに変更してたおかげでアップグレード自体は無事行われた。あとは各応用が無事に動くかどうか。fetchmailがセキュリティ強化で設定変更が要求された以外はアップグレードに伴う問題は見つかってない。安定しちゃったもんだ。


2020.12.29


 マウスコンピューターにてデスクトップ(タワー)PCを注文。緊急事態宣言とどちらが先かというタイミング。無事に届けばいいけれど。monado君(主力デスクトップ機)のリプレース予定。


2021.01.04


 概ね旧monado君(32bit)から新monado君(64bit)への移行は終了。VS2019も普通に動くし、VSCodeでF#のデバッグも可能。

 ビデオエンコード周りはとりあえず32bitで移行。開発環境等他が終わったら考えるということで、考えた。

 64bitへの移行に必要なのは、64bitのVirtualDub、64bitのffmpeg、DVのAVIが読める64bitのコーデック、64bitのAviSynth、64bitのAviSynthのプラグイン。

 64bitのVirtualDubは普通に配布されている。DVのAVIは内蔵コーデックで読める。

 64bitのffmpegは普通に配布されている。使ってるmp4生成関連のパラメタに変更はない。以前はちょくちょく変わってた気がするが安定したようだ。

 64bitのAviSynthは派生のAviSynth+が開発されている。

 DVのAVIが読める64bitのコーデックは64bitのffdshowにある。ただし、AviSynthのスクリプトではAviSourceではなくDirectShowSourceに記述を変える必要がある。スクリプト生成プログラムを書き換える。

 64bitのAviSynthのプラグインだが、hqdn3dとwarpsharpは64bit版が配布されている。AddRangeはどうやらなさそうだ。移行の問題はAddRangeに絞られた。

 AddRangeの配布パッケージにはソースと古いVCのプロジェクトファイルが入っている。VS2015でプロジェクトをコンバート、ターゲットにx64を追加、ビルドすると1か所エラーになる。エラーメッセージに従ってunsignedをsize_tに書き換えて再ビルド。無事64bitのAddRangeが生成される。これをAviSynth+のplugins64ディレクトリに入れると、無事機能した。

 ビデオエンコード周りも64bitになったので、MPC-HCも64bitに移行。

 K-Lite Codec PackをインストールしたときについうっかりマルウエアのWeb Companionを入れてしまった。Windows Defenderが警告を出してたのに、なんてこった。https://www.gigafree.net/media/codecpackage/klitecodecpack.html での説明でも注意されている。

 Web Companionをアンインストール後、Firefoxの設定を修正。RegEditでLavasoftを検索して痕跡を消す。K-Lite Codec Packもアンインストールしてffdshowを入れなおす。ffdshowで十分。Windows Defenderがちゃんと仕事してるのは初めて見たかもしれない。


2021.01.14


 今度はAdobe Acrobat Reader DCをインストールしようとしたら、McAfeeのなんちゃらがインストールされてるっぽい表示。そんなチェックボックスはなかったぞと思ったら、チェックボックスはAdobeのサイトにあり、FirefoxのuMatrixで弾かれていた。不覚。

 プログラムと機能から削除しようとしたがAdobe Acrobat Reader DCしか見当たらない。タスクマネージャーで見るとMcAfeeのなんちゃらインストーラーが存在してる。タスクの終了をした。まだインストール自体はされてないようだ。C:\Program FilesやC:\Program Files (x86)にもMcAfeeはない。C:\ProgramDataにてMcAfeeを発見、削除した。


2021.01.16


 YahooニュースのAERAの記事にエマニュエル・トッドさんのインタビューがあり、面白かったのでウィキペディアを見てベストセラーになった本の「帝国以後」をKoboのストアで探してみた。存在しなかった。Kindleも同様。電子書籍の現状はいまだこんなもん。

 しかたがないので、一番新しい新書の電子書籍を購入。


2021.01.18


オブリビオン (PC)

 突然魔法のエフェクトや炎の揺らめきが重くなった。メモリが限界かと思い、ウインドウモードで動かしてタスクマネージャでメモリを見てみたが多くなっても400MB程度、メモリではなさそう。いろいろ検索して既知かつ対処ツールありの現象と判明(https://wiki.oblivion.z49.org/?%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB#abomb)。Wrye Bashを導入、解決。255時間プレイすると起きるそうな。

 新調したPCにSteamをインストールし、オブリビオンをダウンロード。日本語化をするが、どうも動かない(英語のままだと動く)。これも検索すると既知の問題かつ解決法がない(https://steamcommunity.com/app/22330/positivereviews/?filterLanguage=japanese&p=1&browsefilter=mostrecent)。新しめのnVidia GeForceでは古い32bitのd3d9.dllを利用できないそうだ。そういえばGeForceは32bitのサポートをやめたって話があったが、こういう形ではっきり実害があったのか。こりゃ見込みないな。そもそも古い32bitのd3d9.dllを使うという手口がイレギュラー。


2021.01.23


 ママの新調したM1 MacからファイルサーバalephにSambaで入れないという問題があり、昨年暮れにUbuntuのアップグレードをしたのが原因だろうと思っていたが、ちゃんと調べてみた。ああでもないこうでもないと色々やってみたがなんともわからない。で、そもそもWindows機からママでアクセスできるのかと思い、ノートPCに新しくアカウントを作りSambaに入ろうとした。入れなかった。まさかとSambaのユーザーを一覧すると(pdbedit -L)俺しかいない。あぁ、そういうことかとママを追加したらM1 Macからも入れるようになった。Sambaのアップグレード時にユーザー情報が飛んだんでしょうかね。

 昨年暮れに家で2台稼働していた無線LANアクセスポイントのうち、1台をリプレースした。なぜかGPD WIN2だけは接続できない。そもそもSSIDが一覧されない。検索すると、ちゃんとバッファローのサイトに載っており(https://www.buffalo.jp/support/faq/detail/124142954.html)、ドライバーの更新をしたらちゃんと一覧されるようになった。そういえば無線LANアクセスポイントの説明書のどこかにIntelのチップの場合はドライバーの更新をしろと書いてあった気もする。


2021.01.23


オブリビオン (PC)

 新調したPCでオブリビオンが動かない(英語版は動くが日本語に改造したら動かない)とママに話したら、なんかテケトーに検索してGOG版ってのがあるそうだと言い出した。どうもSteamと違い、GOGで販売してるのは実行モジュール(Oblivion.exe)を改造してもちゃんと起動するスッピンのオブリビオンだそうだ。Steamは、チート対策なんだろうけど、完全におま国で放置なわけで、オンライン機能のないゲームも一緒くたに改造禁止だってのは不誠実な態度ではあろう。

 Steam版オブリビオンはOblivion.exeを改造できない → OBSE (Oblivion Script Extender)でなんとかするしかない → OBSE対応日本語化パッチは0.16系のみ → Windows 10で動かない → 32bit版d3d9.dll (10.0.10240.16412)を入れるとなぜか動く → 最近のGeForceでは32bit版d3d9.dllは動作しない(積極的に排除してるんじゃないだろうか)。

 で、GOG版を購入して導入。OBSEなしで日本語化パッチ0.15系を充てる。32bit版d3d9.dllなしなのでGeForceでも動く動く。GPD WIN2もSteam版からGOG版へ入れ替え実施。Alt+Tabで別Windowに行っても死なない。スリープ(サスペンド)しても死なない。休止(ハイバーネーション)しても死なない。あぁなんだ、駄目だったのはSteamかよ。

 俺はその昔PC版のHalf-Lifeを、ユーザコミュニティが作成した日本語字幕Modでプレイしてた。頼むよValveさん。


2021.01.26


Quake (PC)

 以前GLQuakeが64bit Windowsで動かなくて、TyrQuakeを導入したと書いたが、動かない条件は64bit Windowsではなかった。新調したマシンでGLQuakeが普通に動いた。問題は64bit Windowsではなく、(GPD WIN2の)Intel HD Graphicsだったのだ。NVIDIA GeForce GTX 1650 SUPERでは普通に動く。OpenGLのサポートの違いがあるのだろう。

 試しにA-10 CUBA!を起動してみたら、デモが動き、プレイ画面まで行けた。なってこった。でもインストーラーが16bitなので、64bit OSではインストールはできない。32bit OSでインストールしてから複製する必要がある。

 そら、ゲーマーはNVIDIAを選ぶわな。


2021.02.10


Quake (PC)

 四半世紀Quakeをプレイしているが、つい最近CD-ROMにBGMのトラックが入ってて、プレイ中に再生されると知る。PS VitaのvitaQuakeではux0:/data/Quake/id1/cdtracksにtrack002.mp3~track011.mp3を入れるとBGM付きになる。QuakeSpasmではID1/musicにtrack02.mp3~track11.mp3を入れるとBGM付きになる。TyrQuakeではoggやmp3への対応はTODOリストにあった(まだ実現されてない)。PCのCDドライブにQuakeのCD-ROMを入れてTyrQuakeを起動するとBGM付きになる。GLQuakeでもBGM付きになる。

 

2021.02.14


 Ubuntu 20.04のNautilusでJPEGファイルをダブルクリックして驚いた。ウインドウやメニュー関連のウィジェットが透明なのである。透明背景に白い文字がある。ダーク系のテーマならまだしもライト系のテーマでは普通に読めない。なんだこの気の狂ったUIは。ウィジェットを透明にしない方法は見つかってない。画像ビューアー以外の何か別のツールを使うしかないってことなのだろうか。

 ファイルサーバー機のalephでは発生しない。まさかとテーマをYaru-Blue-lightに変更すると透明になった。Yaru-Blue-lightの出来の問題なのか? タイトルバーのアイコンもPaperだと表示されないがYaruだと表示される。Ubuntu 20.04はYaruとYaru-light以外のテーマは事実上使えないということなのか。

 Paperアイコンは一部適切な名前空間の記述のない.svgがあり、エラーが発生しているようだ。これもPaperアイコンの出来の問題。


2021.03.02


 最初のツィートを売るとか、意味不明だが詐欺の臭いがプンプンする。ようは、アッチ行けな話。

 「バイデン政権、IT大手規制論者のカーン氏をFTC委員に指名」(https://www.itmedia.co.jp/news/articles/2103/23/news062.html)

 独占禁止法がらみで揺り戻しが始まってます。


2021.03.24


オブリビオン (PC)

 クエストなしでひたすらダンジョンを探して攻略するというプレイ。射手(射撃)が100に達したので、隠密狙撃プレイをやめて破壊魔法を鍛えることにする。

 もう、おそらくほとんどのダンジョンを攻略しただろうことで、メインクエストを進めることにする。メインクエストに触らないためクヴァッチに近寄らないようにしてたのだが、クヴァッチ付近で未発見のダンジョンを2か所発見。最初のオブリビオンの門を閉じてから攻略。


2021.03.24


 GPD WIN2の充電中に点滅してるランプは充電が終わると付きっぱなしに変わるのだが、点滅が止まらなくなった。充電が98パーセントで止まってるっぽい。普通こういう作りにするかなぁ。電池が弱ったら弱ったなりに充電が終わった状態を100パーセントとするだろ、普通。つうか、そうじゃない製品を初めて見たのかもしれない。実装の手抜き感が半端ない。あぁ、ASUSがこのジャンル(ゲーミングモバイルPC)に参戦してくれないものか。


2021.03.24


袈裟と盛遠(芥川龍之介)

 吉川英治の「新・平家物語」を読んだおかげで「袈裟と盛遠」の元ネタが平安末期の物語だと知る。ウィキペディアの「文覚」では事件は創作だとされているが、袈裟御前は実在したそうな。盛遠(文覚)も実在した。

 「俊寛」も平安末期が元ネタ。「新・平家物語」を読んでなかったら浄海入道が平清盛のことだなんて知ってない。初代Lの演じた清盛を観たい、再放送しないかな。


2021.03.29


 小娘が「おたくゲーム」と「ゲームおたく」の話をした。「おたくゲーム」はいわゆるおたく向けゲームのこと。美少女キャラが出てくればゲーム性はテキトーでいいってやつ。「ゲームおたく」はようはガチのゲーマー。ゲームおたく向けゲームは、Switchならブレワイ、PS4ならブラッドボーンなど。おそらく格ゲーは分類上こっちだろう。小娘のバイト先には「おたくゲーム」をプレイする人がいて、話は合わせてるが、「ゲームおたく」だとバレないようにしてるそうな。小娘はだいたいは音ゲーをプレイしてる。俺はブラッドボーン最初の面の二人目のボスで諦めてるが、小娘はその先の面に進んでる。


2021.04.07


 どうも一部のメディアが煽ろうとしていたウレタンマスク警察などというモノは不発に終わった気配。


2021.04.07


 今年の正月にマウスコンピューターからPCを買ったんだが、しばらく電子メールでDMが頻繁に届いていた。一回、「メール配信は止めてください」と返事をしたら来なくなった。多分。オプトアウトがあるんだ。でもユーザーにはそのスイッチは全く開放されてない。


2021.04.13


 利用している人はかな~り少ないんだろうとは思いますが、Windows 10はサウンドデバイスによってはコンパネのサウンドのプロパティに拡張タブがあり、イコライザが用意されています。みなさん使ってますか? 使ってない。それは良かったですね。

 Windows 10が更新され、20H2になったのはいいとして、上記イコライザのユーザによる調整が消えてしまいました。あらかじめ用意されてる(使いようのない)プリセットではなく、各周波数帯毎の細かい調整の保存が消えてしまったわけです。私はイコライザを使っており、イヤホンとヘッドホン向けの2つ細かく設定していたんですが、どちらもパーです。ガッカリです。何が保存だよまったくもう。

 WALKMANのイコライザの設定を参考に再度設定。あぁ、馬鹿馬鹿しい。Windowsはデフォルトのままカスタマイズなしに使いこなせ? まさか。


2021.04.21


データの継続性と保全って割と重要なテーマ。

Palm Pilotの予定表(カレンダー)データは最初はMacを母艦として保持。

何度かPalmの機種を変更するうちにWindowsを母艦として保持。

Androidタブレットへの移行のためDBファイルからvCal形式(vcs)に変換するプログラムを書く。

Googleカレンダーに依存する危険性に思い至り、自宅ファイルサーバにてDAViCalを動かす。

AndroidをやめてWindowsタブレットに移行、現在はTunderbirdのLightning。


2021.04.22


ベヨネッタ (PC)

 以前セールスの時にSteam版を入手。インストール時、言語で日本語を選べないので若干心配したがちゃんと日本語で喋る。

 PS4向けホリコンを認識しないので調べたところ、ベヨネッタはXInput対応でDirectInputには非対応のようだ。XInput対応のコントローラーを接続したら認識した。

 HDMI出力でテレビに接続したら異常に重い。音も出ない。設定を見たら4K出力になっている。2K(フルHD)にしたらある程度軽くなった。クオリティを最低にしたら遊べる程度に軽くなった。いつのまにか音も出るようになった。さらに軽くするため解像度を下げたが、なぜか音が出ない。解像度を2Kに戻すと音が出る。いったいどういう作りなんだろう。

 PS4向けホリコンはPS4コントローラーをXbox 360コントローラーとしてエミュレートするDS4Windowsというツールで認識できた。とはいえアクションゲームにはSwitchのスマブラ向けホリコンだよなと接続したら、そのまま認識した。Windowsの設定を見ると、Xbox 360コントローラーのドライバが動いている。ホリコンの説明書を見たらXInput対応と書いてあった。HORIさんグッジョブ。ただし、AボタンをA、BボタンをBと認識するので、ボタン配置が微妙ではある(任天堂とマイクロソフトはABが逆)。


2021.05.03


 OCaml for Windowsのページ(http://fdopen.github.io/opam-repository-mingw/)を読むとEsy(https://esy.sh/)に移行してはどうですかという状況のようだ。EsyはMavenと同じ香りがするんだが、どうなんだろう。

 京都大学(https://www.fos.kuis.kyoto-u.ac.jp/~igarashi/class/pl/setup.html)ではWindowsはOCaml学習にWSLやVirtualBoxを使う前提にしており、OCamlをWindowsネイティブで動かすことはいまだに茨の道という認識で、以前から態度は変わってない。むしろWSL登場で楽になったのだろう。

 私のPC利用環境にはまだ32bit Windowsがあるので、Windows向けのOCaml開発環境は32bitのCygwinを使っている。OCamlは開発が放棄されたWODIの32bit版。コンパイラのバージョンは4.02.1。Windowsで動作するライブラリ群がそれなりに揃っており、生成される実行モジュールはcygwin1.dllを要求しない。ただ、omakeがないのでそれなりに面倒ではある。curlライブラリなどのTLSのバージョン等が世間に付いていけなくなるまではこれでイケると踏んでいる。

 以下、CygwinはC:\cygwinにインストールされているものとする。

 WODIを動かすには、install.shを動かしてインストールした後で、C:\cygwin\etc\profile.d\wodi32.sh の「if [ -f "/opt/wodi32/etc/env_ignore" ]; then」のif文をfiまで、「if [ -f "/opt/wodi32/etc/env_add" ]; then」のif文をfiまで削除する。また、OCAMLFIND_CONFとOCAMLLIBのパスが適切そうか確認する。

 パッケージはアーカイブの中身を C:\cygwin\opt\wodi32\var\cache\godi に上書きする。

 パッケージを使えるようにするのはgodi_console。

 VSCodeでは拡張機能にhackwalyさんのOCaml (deprecated)を使っている。何故deprecatedの方なのかというと、VSCode起動時にあれがないこれがないとエラーを出力しないからだ。

 VSCodeでデバッガが動くようにするため、環境変数を設定。環境変数 Path に C:\cygwin\opt\wodi32\bin を加える。環境変数 OCAMLLIB を C:/cygwin/opt/wodi32/lib/ocaml/std-lib にする。


デバッグ向けのビルド例

ocamlfind ocamlc -o calibre_news_fix.run.exe -g -linkpkg -package unix,zip tTools.ml tCharEntity.ml tHtmlParser.ml calibre_news_fix.ml

リリース向けのビルド例

ocamlfind ocamlopt -o calibre_news_fix.exe -linkpkg -package unix,zip tTools.ml tCharEntity.ml tHtmlParser.ml calibre_news_fix.ml

launch.jsonの例

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "OCaml",
            "type": "ocamldebug",
            "request": "launch",
            "program": "${workspaceRoot}/calibre_news_fix.run.exe",
            "console": "internalConsole",
            "stopOnEntry": false,
            "arguments": ["a\\temp1.epub", "a\\i.epub"]
        }
    ]
}

 ocamldebugのコマンドをVSCodeのデバッグコマンド(F5とかF10とかVisual Studio風)に置き換えてくれるので、体に染みついてるデバッグ方法を使える。ただし、VSCodeのデバッガでは変数が表示されないが、ウォッチ式に自分で変数を加えると見ることができる。CodeViewやTurbo Debuggerで劇的に楽になったのを思い出した。私はocamldebugをコマンドラインで利用したことはなく、SYMDEBよりは高機能なんだろうけど、コマンドを覚える気がないので、今まではPRINTデバッグをしていた。PRINTデバッグができるのがOCamlの良い点。そういえば最近仕事でUbuntuにてC++のプロジェクトをVSCode + gdbを使ってデバッグした。いつの間にかLinuxでもGUIデバッガーの環境が整っていたんだね。


2021.05.06


「ホーム」へ戻る


OSTRACISM CO.

OSTRA / Takeshi Yoneki