ようやく公開できました。ベクターモニタの再現に特化した非公式・実験的なMAME派生版です。頑張ってクリップ動画も作ってみた。HDR環境での視聴を推奨。
「ATARI STARWARS(1983)」のプレイ動画も作成しました、こちらもHDR推奨。YouTubeの仕様に合わせて60fpsなので若干フリッカーが激しいけど、実際には120fps以上あれば実機に似た感じのフリッカーになるはず。
記事を書いた後にATARIベクターゲーム動画集もHDR版が上がってきたので追加。Vectrexの動画はまだHDR処理待ち。
6月の頭に「MAME Vector Draw Mod」を公開してから(詳しくは下のリンク参照)4か月弱。その間ずっとこれを開発しておりました。
[VectorScan] ATARI STARWARS on MAME Vector Draw Mod. | okaz::だめにっき
「MAME Vector Draw Mod」公開直後は「MAME DevにPR出すぜ、反映されたらいいなあ」と思ってたのだが、実際にやってみると「これはちょいと難しいね」で終わってしまった。後から見直すと「それはそう」なのだが、ちょっと悔しい気持ちも正直ある。
逆に「じゃあ本家にPRを出さない前提ならなんでもできるんじゃね?」と開き直って作ったのが「VecBeamMAME」である。コアに手を入れても誰も困らない、精神的に大変よろしい。BGFXをデフォルトにするのも自由。
あれから何を変えたか、って言われたら変えすぎて逆によく覚えてない始末。「MAME Vector Draw Mod」はモノクロ系ベクターの再現度が全然ダメだったのでそこから手を入れたはず。特にVectrexは「Vectrex実機の計測用に実機で動くバイナリ」とか作り始める始末。
ここら辺でベクターデータのダンプ・再生機能も付けた。これのおかげでゲームをプレイせずに該当シーンがすぐ再生できるのですごい楽になった。何よりAIエージェントへ指示を出すのがすごい楽に。
実際に操作している様子はこちら
サーバ不要のHTML5ツールでデータの詳細を見ることも可能
「MAME Vector Draw Mod」公開時に「MAME4droid」というAndroid用MAMEの作者さんからコンタクトがあって、HDR対応しているのをすごいなと感じていたのでダメ元でHDR対応に手を付けたら割にすぐ動いてしまって驚愕。もっともmacOSと整合性を取るのが本当に大変だったのだが。
蛍光面の残光シミュレートを入れてもあまり効果的に見えない。何が悪いのかと思って調べたら「MAMEでは大量のベクターを一度にフレームバッファに描画している」事が判明。そして実機では「CPUがベクターRAMに書いた全てのベクターデータを描画するのに、実際は50msecくらいかかる場合がある」のも分かった。なるほど。
じゃあ「1フレーム(60Hz時には16.67msec)に描画しきれなかったら次のフレームに回せばいいじゃんね?」という「Beam Time Window」の仕組みを入れたらコレが大正解だった模様。STARWARSのデス・スター爆発が一気に本物っぽくなった、これが正解か。
ただこの処理が結構重くて、ここから最適化との泥沼も始まる。なぜかハイフレームレート対応も出来てしまった。HDRのピーク輝度が欲しくてTCL 32R84というHDR1400規格のミニLEDモニタも買ってしまう始末。
「SDRでも眩しい表現は出来る」とか言われそうだけど「眩しく見える表現」と「実際に眩しく見える」には大きな隔たりがあるのである。ぶっちゃけ背景を暗くすれば眩しく見せることは出来る、でもそれはやらない。
Vectrex側はオーバーレイの再現度がイマイチだったので一気に手を入れてしまった。裏面の白印刷が透けて見える、ベクターの光でうっすら光る、印刷の影がCRTに落ちる、オーバーレイの切り欠きなどを再現することに。大変だったけど面白かった。
最終的に実機と見比べて調整。カラーベクターはそこそこいい線行くと思う。ただVectrexは絶対的な輝度が足りなくてやっぱり難しい。



公開前の2か月くらいはひたすら調整とバグ出しだった。特にmacOSのHDR/EDR仕様が難解でつらかった。分かってしまえば合理的な設計だとは思うけども。
HDR推奨だけどSDRでもちゃんと動くようにはしています。前回は手持ちで一番遅いPCである「Surface Pro 4(i5)」だとコマ落ちでまともに遊べなかったのだが、今回はオプション指定で処理を色々オミットすれば遊べるくらいにしてみた。
そんな苦労をして作ったVecBeamMAMEだが、海外に展開した方が盛り上がりそうなので初めてRedditに投稿してみたら「AI使っちゃダメ」って事でモデレーターに削除されてしもうた。
曰く「Copilotとかのコード入力補助はいいけど、AIエージェントにソースを全部書かせるのは絶許」に読めるんだが、今どきそこにこだわるんだという驚きがある。「AIエージェントにコードは全部任せてしまっていい」という考え、日本は割と推進派だったりするんか?
Xwitterを見てると、オレの尊敬するコードを書く人がほとんど「AIは自分で書くよりずっと早くて正確、使わない手はない」という意見なのだが。
ちなみにどんだけ書き換えてるかというとコミット回数だけで500回以上、ソースは全部合わせて30,000line近くあった。非公開のドキュメントは4万行あり、全部目を通しているはず。これ人間の手だけで4か月弱じゃあ無理よね。
ちなみにラスタースキャンのゲームも普通に動きます。そして実はラスタースキャンのゲームもHDR環境下で動いております。現状SDRの天井までしか出していないので見た目はSDRですけど。