試運転の資料館 | |||||
玄関 | 総合案内 | 電算機部 | 営繕部 | 交通部 | リンク |
This web site is only compatible with Japanese text. IEEE1284 経由でバックアップある時、何気なくググっているとすごいソフトを発見。JJ1ODM のチャオ様開発の、DCPPRIP です ! なんと、ドリームキャストのシリアルポートと、PC の IEEE1284 規格に準じたパラレルポートを繋げて吸い出すという物で、ゲームを 2 時間半で吸いだせるというスグレモノです。 今回は、それの紹介記事です。 条件
吸出し
ハード制作上のポイント
dcpprip コマンド集
Win9x でのみ動く、その理由作者のチャオ様曰く、次のように述べられています。
Windows マシンでは通常、デバイスドライバを介してハードを操作します。 このデバイスドライバがとても厄介で、Win9x 系では 16bit のコードで書いて良かったのですが NT 系では完全に 32bit で書かなくてはならず、その上、Win2k以降は WDM でないといけないので、ドライバが肥大化して遅くなってしまうのです。 そのような理由があって、Win9x 系のみの対応のようです。 抵抗は何の為にあるのか ?作者のチャオ様曰く、100ohm の抵抗はグランドバウンス対策、1.5Kohm はプルアップ抵抗だそうです。 グランドバウンスというのは、グラウンドの電位が変動して機器類が誤作動する現象の事です。高速になるほど、突入電流が大きいほど、対策の必要性が大きくなります。50ohm から 200ohm の間で最適な値を求める必要があります。 プルアップというのは、電位 ( 電気的な位置エネルギー ) を高い状態で維持しておくのが、目的のようです。チャオ様は特に STB にはつける事を推奨しています。理由はオープンコレクタ信号だから、です。 ( 単なるスイッチみたいな物ですから当たり前ですね ! ) PC のパラレルポートが、ご機嫌斜めで通信できない件。不具合が起きた時、ドライバを止めれば OK ! という時もあれば、どうにも対処不可能という時もある、との事。詳しく話を聞くと、不具合が起きた機器では、「I/O の範囲」が 2 つ表示されるという現象が確認される事が多いようです。 I/O の範囲 0378 - 037F 不具合が起きる原因や、なぜ「I/O の範囲」が複数表示されるのか調べてみました。結論としては、パラレルポートの動作モードに関して、不整合が起きている事が原因のようです。以下に、調べた内容を書きます。 パラレルポートの規格である IEEE1284 は元々、1980 年代に業界標準として普及していたセントロニクス仕様がベースとなっていて、規格策定時に存在したいくつかの拡張仕様も取り込まれる事で、複数の動作モードを持っている事が分かります。 動作モードは 5 種類ほど規定されていて、セントロニクス仕様とほぼ同一の SPP ( または互換モード ) 、ニブルモード、バイトモード ( 俗に PS/2 モードとも ) 、EPP モード、ECP モードがあり、このうち EPP モード、ECP モードについては通信プロトコルについても定義されています。 さらに調べてみると、比較的新しい PC では ECP モードを持ちながらも SPP モードやバイトモード、EPP モードをエミュレーションする機能を持っていて、これが「I/O の範囲」が 2 つ表示される原因のようです。 このような PC では、必要に応じて各動作モードを 0x77a の上位 3 ビットを使って切替える必要があるのですが、DCPPRIP 側で切替に関する部分を持っていないか、若しくは PC 側で切替に失敗しているのが原因となって不具合が起きるようです。 ( このような PC でも、デフォルト設定の動作モードが DCPPRIP に適合していれば、動くかもしれません ) なんで DCPPRIP はコケやすいのか ?チャオ様から、その理由を教えていただきました。 先程のダンピング抵抗とかぶるのですが、ひとつは、SH4 の信号をそのまま使っているという事。実は DC のシリアルポートというのは、SH4 のSCI インターフェースをそのまま使っているらしいです。 SH4のみならず殆どの CPU では、信号線の種類は基本的に 1 種類しかなくて、それを相手に合わせてウェイトをかけて調整しているんだそうです。 勘の良い人はお気づきになると思いますが、メインメモリとのやりとりも、同じところで扱っています。 つまり、管理が大変難しいんですね。管理に失敗するとそれこそ、玉突き事故になってします。 もうひとつはパラレルポートの波形です。パラレルポートは、本来はプリンターと繋ぐものです。 ( 当たり前 ) 間違っても SH4 のようなデリケートな物と繋ぐ事なんて考えていません。なので、パラレルポートの信号の波形に関する品質は製品によって大きく異なり、品質がよければかなり綺麗なんですが、手抜きしていると本当に信号の波形が汚いそうです。 これを SH4 でも受け付ける信号にするには CPLD を使って回路を組まないといけないそうです。 どうですか ? なんだか難しそうだと思いません ? これら全てを考えながら作られているのが DCPPRIP です。あまりに無理なお願いするのは止しましょうね あとがきDCPPRIP が開発されたのは、2005 年 10 月の事でありますが、当時、まさか新しい吸出し法が開発されるとは ! ! と、驚いていました。 あれから数年後、今度は SD カードを用いた吸出し法が開発されましたので今更 DCPPRIP を使おう、という方はいらっしゃらないと思いますが歴史的意義を考慮してここに残します。 |
Copyright (C) 2016 "shiunten"