2023年10月28日から2023年10月24日までの日記を表示中

2023年10月28日 (土)

基板

昨日うまく動作することを確認したワンダー3の色化け対策は、マザーボード側の改造をベースにしたものでした。今日はこれをCボードとBボードの間でやってみます。

色化け対策をBボードとCボードの間で実施

結果は大成功。見事にマザーボード側で対策したのと同様の結果が得られました。

結果は大成功

ただ、マスク期間がHSYNCピッタリではなくラインの途中から始まってしまうためか、右下の方にちらつきが出てしまいます。次はこれかw

右下にちらつきが

LUTOEとVSYNCの合成の代わりにVBLANK信号を使ってみたら、半端に表示されていたラインが消えてきれいになりました。VBLANKはHSYNCとほぼ同じタイミングでLowになるからだと思われます。VBLANKは元のLUTOEがHighになる期間とVSYNCがLowになる期間の両方を包含しているので、これを使えば元のLUTOEもVSYNCも不要になりますね。

VSYNC の代わりにVBLANK信号を使ってマスク期間を補正

最下段の下に出ていたちらつきが解消

多分ラインごとの色補正の方も、HBLANKを使えば、わざわざシフトレジスタで遅らせたHSYNCを用意しなくてもきれいに色化けを解消できるんじゃないかという気がするんですが、なぜかHBLANKはCPS-B-21からCボードのコネクタに配線されていないんですよね。なので、お試しはできても、これをCPicS1で使うのはちょっと非現実的そうです (というのを理由に試していなかったりしますw)

なぜか配線されていないHBLANK信号

ところで、この信号の合成、今はHSYNCを74HC273 (D-FF) で遅らせて、これを74HC00 (NAND) でVBLANKとANDして反転させることで実現しているんですが、これだと部品が追加で2個も必要になっちゃいます。特にNAND 1回路のために74HC00を入れるのはちょっと微妙。そこで、以下のようにして 74HC00 を省略することを考えてみました。

  • VBLANKをD-FFのリセットに繋ぐ。これによりD-FFの出力がVBLANKと遅延させたHSYNCのAND相当の信号になる (厳密にはANDにならないケースもあると思うけど信号の特性上問題ないはず)
  • 1回分路余っている4053のマルチプレクサを利用して、NOT相当の回路を作る。具体的にはマルチプレクサの選択信号がLowのときに選ばれる側の入力信号をHighに、選択信号がHighのときに選ばれる側の入力信号をLowに、それぞれ固定することで、選択信号を反転させた値が出力されるようにする
  • D-FFの出力 (VBLANKと遅延させたHSYNCのAND相当) をマルチプレクサの選択信号に入れ、反転させる

が、CPicS1の回路の4053回りに手を加え、ブレッドボード上の外部の回路を修正してみたところ、起動時キー書き込みがうまくいかなくなってしまいました。原因切り分けのために、PICを外してオリジナルのCボードで動かしてみたら何か映像が大変なことに(汗)。何だこりゃ。

色がめちゃくちゃに・・・(汗)

お祝い

昔お世話になった先生の喜寿のお祝いがあったので、都内某所に行ってきました。こういう会合も久しぶりですなぁ。というか、久々に会った方々とちょっと話し込んでいたらあっという間に食べ物がなくなってしまい、ほとんど何も食べられず。酒はしこたま飲めましたが。

あまりに切なくて帰りがけにコンビニでラーメンを購入。

コンビニで買ったラーメン

うーん、腹は膨れても心は満たされずw

2023年10月27日 (金)

基板

昨日の回路でワンダー3を動かしたところ、ついに色化けが解消しました!

クレジット投入後の色化け解消

ドンプルのスコアランキング画面もこんな感じ。こんなに淡い色だったのねw

ドンプルのスコアランキングの画面も解消

複合同期信号と赤の信号の波形をオシロスコープで見るとこんな感じ。複合同期信号の水平同期成分がHighになった後でも、まだしばらく赤の信号 (水色の線) がゼロ付近に落ちるようになりました。

波形からも色信号がゼロになる期間が長くなっていることがわかる

KVC液晶やRetroTINK-5X、Framemeisterでは、水平同期信号が落ちてから少し時間を空けて色信号を参照するのに対し、デフォルトで問題なく映るブラウン管 (ナナオ製?)は水平同期信号と同じタイミングで色信号を参照するとか、そんな感じの差があるんですかね。

2023年10月26日 (木)

基板

ワンダー3の色化け問題対策、色がおかしくなるときとそうでないときとで、基板から出力される信号にどういう違いがあるのか、複合同期信号と赤の信号をオシロスコープで観察してみました。

同期信号と赤をオシロで観察

色が正常なシーンでは、こんな波形になりました。黄色が複合同期信号で、落ち込んでいるのがHSYNCのタイミング。水色が赤の信号。HSYNC前後のタイミングで赤の信号レベルはゼロに近い状態になっています。

正常時の波形

一方、クレジットを入れて画面全体が青っぽくなっている状態の波形はこんな感じ。赤が1.7Vくらいになってます。これにより映像機器側で1.7Vが赤の基準レベルとされ、これより低いところは赤が出なくなり、これより高いところが赤の信号として処理されるって感じですかね。おそらく緑も似たような状態なのでしょう。だから画面が青っぽいながらも、青だけでは表現できない色がところどころ混ざるのか。

画面が青っぽいときの波形

そして昨日やったM/B側の改造でHSYNCのタイミングで映像をマスクした場合、こんな波形になります。HSYNCの区間はきちんとゼロまで下がっていますね。

M/B側改造後の波形

ただ、HSYNC区間の前後は相変わらずレベルが高い状況です。もしかして、この辺も含めてレベルを落としてやれば、改善したりするのかも・・・?手っ取り早く、D-FFを繋げてシフトレジスタを作って、遅らせたHSYNC信号を使えばいいかな。ちょうどCボードからは2MHzの信号が出ているので、これを使えば 7〜8サイクル = 3.5μ秒〜4.0μ秒程度の遅延をつけられるはず。

というわけで、74HC273を使って、まずはHSYNC信号を遅らせられるか実験してみました。

74HC273でHSYNCを遅らせる回路を試作

青が2MHzのクロックで、緑が元のHSYNC、オレンジがD-FFを何段も噛まして遅らせたHSYNCです。期待した通り8サイクル分遅延がつきました。後は、マザーボード上の74LS273のリセットに、元の信号と、この信号のANDを取ったものを入れてやれば、HSYNC付近でレベルがゼロになる期間を長くできるはずですが、時間切れで今日はここまで・・・。

期待した通り遅れている

2023年10月25日 (水)

出社

なんか出社した方が良いみたいな話だったので会社に行ってきました。が、家でも良かった感じ。疲れた・・・

基板

昨日の続きで、ワンダー3の色化け改善に取り組んでいます。ひとまずHSYNCもLUTOEに取り込んでみました。

HSYNCも取り込んでみた

マゼンタの波形が改善後のLUTOEです。期待した波形になっていると思いますが・・・

波形は期待した通り?

改善しませんね。

改善せず

VSYNCの代わりにVBLANKを使ってみることに。

VBLANKを使ってみる

波形的にはLUTOEがHigh (つまりマスクしている状態) の期間が伸びています。

LUTOEがHighの期間が伸びた

が、画面全体は変わらず青っぽいまま。ただ、画面上部にも青い領域が出てくるようになりました。あと、画面下に出ていた青い領域が「CREDIT 1」の文字の直下から始まるようになったりもしています。・・・あれ、色信号が出ない期間を広げたはずなのに、青い領域が広がるのはなぜなんだ?この領域が、RetroTINK-5Xでは出るけど、KVC液晶では表示されないことを考えると、何かまた別の事情があるのかな。

画面上部にも色が出るように

ちょっと埒が明かないので、一旦オリジナルと同じ改造をやって確認してみましょう。何で先にそっちをやらないのかという感じですがw

まずはCSYNCをCN4から引き出します。

CSYNCを引き出し

オリジナルの改造情報では 74LS04は6G、74LS273は5Gと5Fとなっていますが、うちのワンダー3のマザーボード (89626A-4) だと、74LS04は同じ6Gながら、74LS273は 4Cと4Eになるっぽいです。

74LS273は多分これ

というわけで、74LS04の12番ピンを基板から浮かせて引き出すようにしました。また、74LS273の1番ピンも引き出しておきます。

ピンを浮かせて引き出したり

オリジナルに忠実に、74LS04の出力とCSYNCのANDを74LS08で取って、これを74LS273のリセットに接続します。

74LS08でAND

波形は期待通り。元の74LS04の出力が茶色で、CSYNCが黄色、それとANDを取ったのが緑です。VSYNC期間とCSYNC期間に74LS273のリセットがLowになるようになりました。

波形は期待通り

が、変わりませんね。うーん、どういうことだ。・・・あ、元のWebをよく見ると、これを書いた方はワンダー3自体では試していないようですね。これでうまくいったら教えてね的なことが書かれています。うーん、なるほど・・・(汗)

色化け改善せず

クレジット投入後の画面はだめだけど、ドンプルのランキングの色化けはこれで改善したみたいな情報を頂いたので確認してみましたが、うちのはだめでした。個体差とか、モニタごとの差とかもあるのかな。

ドンプルのランキングも相変わらず

2023年10月24日 (火)

基板

ワンダー3で実験をしている中で、ふとゲームセレクト画面などでの色化けを解消させる改造の存在を思い出し、あわよくば同じことをCPicS1上で実現できないかと考えて原理を調べてみることに。

既に元のページは消えているようですが、Internet Archive上で情報を参照することができました。 ざっくりこういうことのようです。

  • 表示機器側は、映像信号の垂直・水平同期期間のRGBの信号レベルを基準に黒のレベルを決定するらしく、この期間にRGBがゼロに近い状態になっていないと色がおかしくなる
  • CPS1のハードには、色情報の出力をマスクする (ゼロが出るようにする) 仕組みがあるが、マスクしているのは垂直同期期間の直後の一瞬だけに限られる
  • 垂直・水平同期期間中に色情報を黒にしていれば良いが、書き換えなどを行っていたり、色を出しっぱなしにしていたりすると、黒以外の色が基準として使われてしまい、画面の色が異常になる
  • マスク処理を行う(実際には色情報を出しているD-FFをリセットする) 信号にCSYNC信号を混ぜ込むことで、垂直・水平同期期間に色情報が出てしまうのを防ぐことができる

このマスク期間を示す信号としてLUTOEという信号名が記載されていますが、同じ名前の信号がCボードの101番ピンから出ています。また、CSYNC自体はBボード上で作られていますが、その元となるVSYNCとHSYNCはCボードから出ています (Bボード上でこれらをANDしているだけ) 。なので、(LUTOEが同じものであれば) 理屈の上ではCボードとBボードの間に割り込む形でLUTOEを加工してやることで、M/B側を改造しなくても近いことができるはずです。

というわけで、さっそく実験開始。とりあえずLUTOEと、反転させたVSYNCのORを取って、これを元のLUTOEの代わりにBボード側に出してみました。

LUTOEの代わりに、LUTOEをVSYNC分伸ばした信号を入れてみる

うおお、なんじゃこりゃ。ゲーム画面が出ない上に、画面下部に謎の模様が・・・。

画面下部に変な模様が

・・・って、VSYNCの反転とLUTOEをNORした後、反転させるのを忘れていた(汗)。なので逆に画面外の領域に映像が出ちゃっていたのか。まあ、これで変化があったということは、CボードとBボードの間に割り込むことで対策ができる可能性が高いということになりますな。

NORした結果を、再度NORゲートで反転させてみました。

信号を反転させた

おお、今度は映像が出ました。

今度は映像が出た

ただ、VSYNC期間のマスクを広げただけでは色化けの症状は改善せず。

色化けは改善せず

まあ、まずはちゃんとHSYNC期間もマスクするようにするところからですね。続きはまた明日。

2023年10月28日から2023年10月24日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2023年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ