ZEKTOR ZVGレビュー

要するにPCからVectrexをモノクロベクターモニタとして制御するオハナシ。


zvgtweak.exeの実行画面



発端

コトの始まりはmixiの某コミュニティであった。曰く「PC用のオシロスコープ等のベクタースキャンモニタ接続I/Fカードがある」てな話、当然コンシューマ業界としてもっとも普及しているベクタースキャンモニタを搭載しているVectrexにも対応していると。さっそく詳しく教えてもらうと米「ZEKTOR」社が出している「ZVG(the Zektor Vector Generatorの略)」てなボードであった。

ちょっと古い製品らしく(なんか最初100枚作って完売に三年かかったらしいって話も)、PCとの接続はパラレルポートで行う。そこからベクタースキャンモニタ用のX/Y/Z(Zは輝度でカラーだとRGBそれぞれに5bit割当)の出力が出ており、これを繋げば動くと。しかも専用のMAME(Multiple Arcade Machine Emulator)まである! という事はMAMEでサポートしているベクタースキャンモニタ対応のゲームが本当にベクタースキャンモニタで遊べる訳だ。

#エミュレータの違法性云々に関してはココでは一切取り扱いません。
#少なくともエミュレータそのものについては違法性は全く無いというのが個人的見解です。
#まぁ違法だったらゲームメーカーから普通に売ってるアレやコレが(以下略

ちなみに「ZVG」って名前はATARIのベクタースキャンゲームに搭載されていた共通基板「AVG(Analog Vector Generator)」に因んでると思われ、まぁZVGも出力電圧はアナログコントロールなんだが。

しかし要求スペックがある意味凄い。少なくとも専用MAMEを動かすには

  • クロック800MHz以上のCPU
  • ECPモードをサポートしたパラレルポート
  • DOS版MAMEでサポートしているサウンドカード(通常はSoundBlaster、以下SB16と略する場合あり)

以上が必要である。…あーつまりコイツの専用MAMEってDOS版なのな。ちなみにパラレルポートを直接叩いているので所謂「USB・パラレル変換ケーブル」の類はまず間違いなく使えない。あれがプリンタ以外に使えたって話も聞かない。

幸い自宅にVectrexは四台あって余ってるような状態だし(ツッコミ不可)、ボードが定価$239がディスカウントされて$199、モニタケーブルが$15とちと高いがシャレで買えなくも無い値段。ディスカウントって事はつまり「投売り」って事だな、需要が極めて無さそうなのでもうちょい叩き売りしてもいいとも思ったが、しばし悩んでたら突如タイミングを見計らっていたように円安が来た。この手の奴はウカウカしていると買えない、ましてやこんなマイナーボードなんて中古で探しても出てくるわけがない、ので結局購入。サウンドカードが心配だったのだが、ま、なんとかなるだろ。

サポート体制は良く、すぐ返答メールが来た。EMS(判りやすく言うと国際版ゆうパック)ですぐ送るとの事。待つこと一週間とちょっと(出張中に届いたので詳しくは不明)、無事モノは届いたのであった。



到着

届いたのは良いが見事に関税を取られてしまった、やっぱり基板系ってダメっぽい。ちなみに関税は600円で手数料が200円…なーんか納得いかんな。

さっそく箱を開けてみる。内容物は以下の通り。

  • ZVGボード本体
  • 専用ACアダプタ(中国製の極性も書いてない怪しい代物)
  • マニュアル(思いっきりコピー+ホチキス止め)
  • 各種ソフトなど収録したCD-R、ラベルはインクジェット印刷っぽい
  • パラレルケーブル(全結線のは買うと結構いい値段するので嬉しい、当然PC側はAT機に合わせてD-SUB25のオス)
  • 別途注文したVectrex用モニターケーブル

梱包はしっかりしていて安心。なんか同人ハードを買ったような気もかなりしてきたが(多分違わない)、パラレルケーブルが付いてきたのは素直に嬉しいので良しとする。

CDの中身はドキュメント類と専用MAME(ソース付き)とツールとSDK、ちゃんとコンパイラのdjgppまで付いてくるのはエライ。ちなみに当然MAME用のROMイメージは付いてきません(重要)



ケーブル接続と動作テスト

まずはVectrexに専用ケーブルを繋ぐ。詳細は公式サイトや添付CD-R内のPDFに写真入りで詳しく説明してあるのでそちらを参照、判らない? じゃあ止めておいた方が無難。

実際やる事はコレだけである。改造とも言えないレベル。

  • Vectrexの背面カバーを固定しているネジを外して、背面カバーを取り外す。
  • モニタ制御ボードからX-Yコネクタ、Zコネクタを外して、ZVGケーブルの奴に刺しなおす。
  • 念のためスピーカーコネクタと、Vectrex側CPUボードへの電源コネクタを外す。
  • ちょうどケースの下側両脇にケーブルを通すのにピッタリの穴があるので、ここにZVGケーブルを通して背面カバーを戻す。

例によってモニタ=超高電圧部品なんで取り扱いは要注意、特にZコネクタがちょっとアノードキャップに近いのでそこら辺だけ要注意、万が一まともに感電したら「ビリっと来る」所ではなくて「手が吹っ飛ぶ」とか「死ぬ」とか本気でありえるので注意。気休め程度だがゴム手袋をして作業した。モニタ放電の経験があればやっとくべき。

ちなみに元のケーブルは外してあるだけだから、全部戻せばちゃんとVectrexとして機能するので一安心。気合され入れれば切替回路を作って内蔵するのも不可能ではない、と思う。

PC側は単にパラレルケーブルを繋ぐだけ、事前にBIOSでパラレルポートをECPモードにしておくこと、なおECPモードではレガシーIRQとDMAを1chずつ取られるので注意。よっぽど古いマザーでない限りECPモードは対応してると思うが、最近のマザーには「ECPモードのみ」が無くて「ECP+EPPモード」はある、というパターンがある。うちのマザーがそうだったのだがこれでも動いた。但し非保証らしい。

正確には双方向パラレルポートはネゴシエーション時にモードを選択するので、ECP+EPPモードはECPとEPPの両方のネゴシエーションを受け付けるモード、というだけで動作に全く支障は無さげ。

ちなみに現在はあんまし聞かないが、昔は「電源ON中のパラレルケーブル抜き差しでPCがぶっ壊れた」ってな話はよくあったので(実は一回経験あり)、念のためZVGボードとPC本体の電源は落としておくこと。パラレルから12Vを取ってるのかPCの電源を入れるだけでZVG上のランプが付く、ACアダプタは5V供給用なんだろうな多分。あとマニュアルを参照してZVGボード上のジャンパも使用するモニタに合わせて設定しておく。

で、Vectrexの電源を入れて(何も映らない)、ZVGのACアダプタも繋げてPCの電源をONし予め作っておいたDOSの起動ディスクで立ち上げる(EMM386の組込み必須)、んでSDKのbinフォルダにある「frmdemo.exe(「ZEKTOR」という文字がゆっくり動き回るデモ)」を叩くと…あっさりと映ったー!。ちなみに同じフォルダにある「zvgtweak.exe」はマニュアルにある通りにZVGボードの設定を行う代物で、標準画面を表示しつつ使用するモニタによって設定値を変えてボードのEPROMに書き込む代物、うちに来た奴は最初っからVectrex用の設定になってたので、メーカーがケーブルに合わせて初期値を設定していると思われる。まぁ設定値はマニュアルに全部書いてあるけど。

とりあえずボードを裸で使うのも何なので急遽ケースをでっち上げる。部品代100円w

ボードを収納した自作ケース、100円ショップで買ったタッパーにPC用マザーボードを固定する足を使って固定(穴空けてハメ込むだけ)。後は余りモノのゴム足を付けて完成 蓋を開けた状態、メンテナンス性最高、値段爆安、加工もカッターで十分。見た目以外は最高である。ケーブルは左上がACアダプタ、左下がパラレルケーブル、右下がZVGケーブル

ここまでは順調だったんだけどね…。



DOS版MAMEの呪い

で、肝心のDOS版MAMEをどうするかである。実はDOS版MAMEはWinXPのDOS窓から動いちゃう、けど妙に遅いし音も鳴らない。それに加えて今回はMAMEからプリンタポートの制御が入るのでその時点でアウトである。NT系はユーザーモードで普通はI/Oポートを叩けないんですな。叩けるようにする特殊なドライバはあるけどECPプリンタポートなんてサポートしてないだろ。

ので選択肢はもう下の二つしかない。

  • Win95/98のDOS窓(全画面モード)から動かす、WinMeは持って無いから良く知らないので除外。
  • 生DOS(含むWin95/98の生DOSモード)を起動する。

まず最初に考えてたのはMSから出ている「VirtualPC2004」を利用すること。要するにPC上に仮想マシンを作ってその上でWin98を動かす訳だ。速度的には不利だろうけど何せ今のマシンはAMD Opteron144をFSB250MHzで動かしてるので、CPU倍率が9倍だから実駆動クロック2.25GHz。こんだけあれば大丈夫だろ多分。

「VirtualPC2004」ならわざわざ専用にパーティション切らなくて済むし、こいつの仮想マシンはSB16互換機能を持っているのである、一応WinXPのDOS窓もSB16互換モードをこっそり持ってるらしいが、BLASTER変数はなんて書きゃいいのだ?。とりあえず「VirtualPC2004」は45日間も使える無料トライアル版が公式に配布されてるし、Win98のライセンスもある。という訳でさっそく試す。

#と、書いて放置している間にVirtualPC2004が無償提供されるようになった、MSエライ。

…仮想マシンへのWin98のインスコまではサクサクと動いたんだが、仮想マシンでパラレルポートが見えない。というか仮想パラレルポートの設定画面があるんだがグレーアウトして設定出来ない状態。何ゆえ?

ここでハタと気づいて、BIOSでパラレルポートをECPモードから双方向モードに切り替えて再起動、仮想マシンを立ち上げると…今度はちゃんと仮想パラレルポートが設定できるようになった。…えーとつまり「VirtualPC2004」はECPモードのパラレルポートをサポートしてない?(汗)

当然仮想マシン上のWin98でパラレルポートが見えるようになっても、それはECPモードでない訳で。「FrmDemo.exe」を実行すると「ECPモードのパラレルポートがねぇよ(意訳)」と怒られて起動せず。早くも「VirtualPC2004」案が頓挫。

まぁ仮想マシンだし、動いてもきっと遅いんだよ!とか自分を慰めつつHDDを一台空けて、そこにWin98をインストールすることにした。そしたらセットアップ途中で怒られる…え、Win9x系って一台目のHDDじゃないとインストール出来ないんだっけか。インストールが終わったらどうにでも出来るので、一旦HDDを繋ぎなおして手持ちのWin98SEをセットアップ。終わったらHDDを元に戻してマルチブートローダの類でブートさせる。

…いや久々に触るWin9x系がこんなに不安定とは思わんかったわ、元々家でもNT4の頃からずっとNT派だったのであんましWin9xって使ってなかったのだが、ここまでアレだったのね。物理メモリが512MB以上載ってると色々不都合が出てくるのでWindowsFAQとか見つつ修正。しかしどうやってもDOSプロンプトを立ち上げようとすると「メモリが不足しています」とか言われて理解不能、動く場合もあるし。紆余曲折の後、高速再起動(SHIFT+再起動でWINだけ再起動するアレ)をやった後には大丈夫な事が判明、全く持って理解不能…。

で、Win9x上のDOSプロンプトからは例の「FrmDemo.exe」は起動可能であった。わーい。しかしなんか妙に、というか激しく画面が震えております。まぁそれは置いておいてMAMEを動かすと、AC97AUDIOがちゃんとSB互換モードで動くので音が鳴る! ちゃんと動く! マウスもちゃんと認識される! わーいATARI版スターウォーズがちゃんとベクターモニタ上で遊べる! 感動! んでもやっぱり画面がモノ凄く震える…。というか専用の「vm_menu.exe」ってランチャーを起動しようとすると「タイムアウトだよ」と怒られて起動しない始末だし。

そもそも画面が震えるのが怪しい、生DOSで動かしたら画面はビシっと安定しているのに。調べてみたら「Win9x上ではI/Oポートの直叩きは可能だけど、オーバーヘッドがでかいので特に1Byteずつ読み書きしたりすると生DOSに比べて速度差が凄いことになる」らしい(ソース失念)、このオーバーヘッドタイムはおそらくCPU速度に依存しない。ZVG上のライブラリを見る限りでは通常の転送はDMA転送でやってるのだが、DMA転送が終わったかどうかはI/Oポートをポーリングして調べてるっぽい、この辺りが原因だろうか。せっかくのSB16互換が!

仕方ないので生DOSで動かす事にする。Win9x起動時にメニューで「Command Prompt Only」で止めてしまうか、あるいはWin9xが起動した後に「MS-DOSモードで再起動する」を選べばOK。こっちでMAMEを動かすときっちり動く。だがしかし音が出ない。マウスも認識されない。むー。


とりあえず「vm_menu.exe」は動いた、この描画量でフリッカがあんまし出ないのは結構凄い?

マウスの問題はフリーのDOS用マウスドライバ(FreeDOSのCuteMouseってのがオススメ)を持ってくることで解決したのだが、音はどうしようもない。仕方ないので手持ちのパーツから「YMF724チップ」を搭載したカードを挿してみる。こいつはSB16互換で、互換方法としては懐かしのSB-LINK(PC/PCI)コネクタを利用すれば完璧なのだが今時のマザーにはそんなもの載ってない。しかし調べたらDDMA(Distributed DMA)モードってのもあってこちらでも互換は取れるらしい。チャレンジ。

…あかん、D-DMAモードが動かん。そもそも古いカードなんでドライバ探すのも一苦労だし。なんとか苦労して最終版のDOS版互換モードセットアッププログラム「setupds.exe」のVer.3.1を発見したのだが、モノの見事に互換モードがONになりません。泣きそう。

仕方ないので調べる。他のカードもSB16互換はSB-LINKやDDMAを利用していて大差なさげ、ここで「PCI版のSoundBlasterはDOS用ドライバによって互換を保っており、SB-LINKやDDMAは使用していない」という表記が。一応SB Live! 5.1DEって奴は持っているのだがこいつにはDOSドライバは付いてこなかった、というかメーカーサイトにも「DOSは未サポート」とか書いてあるし。

調べてみたらLive!以前のPCI128とかの奴と、初代Live!及びAudizyまではDOSドライバ対応らしい(Live!、Auduzyとそれ以外は別ドライバ)。ので仕方無しにヤフオクで初代Live!を落札、念のためちょっと高くなるけどドライバCD付き。SPD/IFボックスとかがあると高くなるのでValue版で十分。ちなみに初代Live!でもVistaβ2でちゃんと純正WDMドライバがあるからある意味お徳かも知れない。

で、届いたんでさっそくドライバCDを漁る。…ってDOS用ドライバが見当たらない。どうもWin9x用ドライバをインストールすると展開されるらしい。迷惑な世界だなーと思いつつWin9x上でドライバをインストール、あ、ちゃんとインストール項目に「DOS用ドライバ」の項目があるのね。…なんかインストール途中に「SB16互換エミュレーション」で固まるんですが。仕方無しに再起動…ってWinLogon直後に画面が無茶苦茶になるし(汗)

紆余曲折あってなんとかした。どうもオンボードUSBとIRQが共有されると(マザー側の仕様でまず間違いなく共有される極悪仕様)ダメっぽいのでBIOSでいちいちオンボードUSBを切らないとダメなのであった。面倒くさいが仕方ない。で、肝心のDOSドライバは…DOS4GWがエラー吐き出して動かないし(汗)

紆余曲折あってDOS4GWを最新版にしたら動いた、のはいいがMAMEを立ち上げるとEMM386のエラーで落ちる、予めCWSDPMIを常駐させてもダメ。ZVGを毎回接続するのも面倒臭いので使用しないモードで立ち上げてもダメ。ついでに言うと素の純正DOS版MAMEも同じ。音源無しを指定すると普通に動くから原因は間違いなくLive!のDOS用ドライバ。どうしたもんか。

で、あちこち調べたら最新版のDOSドライバを発見(Ver.5.00)、Ver.4.xxまでは「Win9x側でPCI IRQとI/Oマップをiniファイルに書いて、それをDOS用ドライバが参照する(従って違うPCIスロットに刺しなおしたらWin9xを起動しないと動かなくなる)というマヌケ仕様だったのだが、Ver.5.00からはちゃんと自動でLive!を見つけてくるようになった。ついでに言うと何故かDOS4GWも不要になってた。しかしこれでもMAMEがEMM386で落ちる。

で、よくよく調べてみたら「SBEGO.exe」なるプログラムがDOSドライバと同じフォルダにあるのを発見。立ち上げてみたら(USモードで無いと画面が映らなくなるので注意)互換モードの診断プログラムであった。I/OはOK、IRQはOK、DMAは…ダメ。えと要するに今時のマザーはISAエミュレーションのDMAはサポートしてないって事?(最近のマザーはPCIバス上のISAバスエミュレーションが一部省略されてる?) なんかDDMAモードが動かなかった理由も判った様な。ここで一旦は諦めた、やるだけはやった、清々とした気分ですらある。

…のはいいが、名機440BXを搭載したマザー+PenIII 800MHzを手に入れればいいんじゃねえのか? というバカな考えが頭をよぎって仕方が無い。CPUはまだ意外に高いが(FSB133MHz版よりFSB100MHz版の方が高い、やっぱみんな440BX使ってるんだなぁ)マザーは結構綺麗な奴が捨て値で買えたりする。あーどうしようかなーもう買っちゃおうかなオレ。

と、悩んでいた所に良く考えたらi815E+鱈セレ1.3GHz(FSB100x13という悲しい代物)+SD-RAM PC133メモリ512MBが丸々余ってる事を思い出した。今更BXマザーに金を出すのも勿体無い気がしたのでダメ元で試すことにする。とりあえず動けばいいのでケースを空けて電源ケーブルとかだけを移植して起動、起動なんかPOWERピンをドライバーでショートするだけで十分だこんなん。

で、まずはYMF724でチェック。…やっぱりDDMAモードがダメだ。音は何故か鳴るんだけどなー。次にLive!をチェック、DOSドライバはインストール完了。MAMEは…あ、起動してやんの…(汗)

あわててZVGボード+Vectrexモニターを繋げて再チェック。…ATARI版スターウォーズが音付きで動いてる! 最初に動いた時も結構感動したが、音が付いてると付いてないじゃ全然違うなやっぱり。

という訳でBXマザー購入計画は流れたのでありました。しかしここまで長かった…。最近の自作機ってほとんどトラブル出ないから、却って新鮮で面白かった。今時のマシンしか組んだことの無い奴には判らない話かも。

結局前々からサーバ機のケースを買い換えたいと思っていたので、新しいケースを買ってそいつをサーバ機に回し、古いケースを使って専用マシンを一台でっち上げた。ついでにヤフオクでゲームポート接続のMS SideWinderゲームパッド(MAMEでネイティブ対応)も買ったので快適である。アナログコントロール系の奴はマウスよかトラックボールの方が向いてる感じなので余ってたロジクール(てかロジテック時代の代物)のPS/2接続トラックボールを使用。ようやくDOS MAME環境の完成である…。

動いたー。写真がボケボケなのは勘弁、難しいんだよ撮影。 ちゃんと音付きで動くぜー、とりあえずマウスよりはトラックボールの方が雰囲気出て良い、照準合わせがムズイが。


総括

現在猛烈にカラーベクターモニターが欲しいです(ぉぃ。いやつい先ほどeBayで「Shipping:WorldWide(本当か?)」な「ATARI TEMPEST」しかも筐体の程度ばっちし完動品が$800弱で落札されてたし、もっと高くなると思ったから手を出さなかったのだが。いや買ったら買ったで多分送料に同じ位かそれ以上の値段がかかるし(木枠で来るのか?)、なにより置く場所がないし。ただPCBとか全部抜いて(勿体無いけど)、筐体の下にPC埋め込めばベクタースキャン専用筐体が出来ますな、コンパネは自作するとして。ちょっと夢。日本での入手はほぼ不可能だろうなー。

さてこのZVG、上に書いたとおりに「生DOSで動かす」ってのが前提条件なんで素人には全く奨められない。逆に言えば上の文章の意味が全部判ってればなんとかなると思うけど。

あとVectrexのモニタの性能のせいなのかECPパラレルポートでのデータ転送が間に合ってないのか、たとえばATARI版スターウォーズとかだとタイトル画面とかゲーム内容説明とかでかなーり処理落ちする。つまりはベクタ描画速度がかなり遅い。ゲーム中はほぼ30fps出てて快適なんだけどね。その辺りも覚悟しておく事。

出来ればWinネイティブドライバがあればいいんだろうけど、デバイスドライバの類は日本語の開発資料が極端に少なくてなんとも言えない。暇さえあれば作りたい気分はあるのだが、例のオーバーヘッド問題もあるので速度的に大丈夫かどうかも判らない。だからメーカーはWinネイティブドライバを作ってないのかも知れないし。というか作っても使うのって多分日本じゃオレ一人だろうし(汗) DPPのソース辺りが参考になるかも、DDKは無料だよな確か。

せめてZVGとの接続がUSBだったらねぇ…というのが正直な話で、あとライブラリを見た感じでは直線しか引けないっぽいのがちょっと残念。Vectrexの同人ソフトでは描画速度に合わせて動的にX-Y位置を変化させる事により「滑らかな曲線」を描いてる奴もあったりするので、あとは直線引いてる間に輝度を変化させてラスタスキャンさせてるとか。ボード側でスプラインやベジェ曲線を描く機能があればなぁ…つうのは高望みですかね。

とにかくここまで来たら完全に病気です。という事で。どうしてもってなら止めない。手に入れたとして手取り足取りアドバイスするつもりもなし(ROMイメージクレとかだったら即座にNGメアドに設定する)、ただ本気で動かしたいならある程度なら相談には乗りますよ、と。どうせ買う時点でそこそこ本気度が伺いしれるってもんだし。

とか思ったら書いた時点で「Out of Stock」になってるしー! まぁ再販はするらしいので欲しい人は気長に待つべし。



トップページに戻る