忍者ブログ

X68ブログ

 サイト「X68000改造室」http://x68.aikotoba.jp の更新告知やサイト運営、X68の改造にまつわる小ネタを書いていきます。また、コメントを通して、サイトを見ていただいた方との交流の場ともしていきたいと思います。感想や疑問、記事の誤りなど、コメントいただければ、記事に反映していきたいと思います。

   
カテゴリー「X68000」の記事一覧

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

解像度切り替えの自動化

スキャンコンバータの解像度変化への自動対応ができました。
当初の方法とは変えて、入力画像のピクセルクロックでカウンタを走らせ、同期信号間の水平、垂直の最大ピクセル数を調べさせて解像度モード判断を行うようにしたところ、安定して動作するようになりました。

もちろん、手動でも切り替え出来るようにし、例のDINコネクタのロータリーSWで、
 0:自動切替
 1:768X512 モード
 2:512X512 モード
 3:256X512 モード
 4:256X256 モード
 5:(リザーブ)
 6:(リザーブ)
 7:コンバータスルー
の各モードに切り替えできるようになりました。

ただ、やはり、手動・自動にかかわらずモード切替後に画面が真っ黒になることが時たまあります。一応、上記のSWでまた切替を行うと、映るようにはなります。

調べていくと、真っ黒の原因は画像の取り込み側でなく、表示側回路の不具合の様ですが、まだ解消には至っていません。

本日はここまで。

★★★ メインサイトへのリンク 「X68000改造室」★★★




PR

XVI追加改造と小物製作

スキャンコンバータ制御回路のプログラムは解像度自動切り替え対応を除き、ほぼできてきましたので、いよいよFPGA基板の本体への組み込み作業を始めます。

手始めに、XVIメイン基板の追加配線。ディスプレイ制御コネクタから4本、イメージ端子の空きに配線しました。
何の配線かと言いますと、解像度手動切り替え信号をディスプレイ制御コネクタから与えるためのものです。現在はFPGA基板上のジョイスチックボタンから解像度モードを切り替えていますが、基板を本体に組み込むと操作できなくなります。

で、さらに製作したのがこちら。
DINコネクタにDIP形ロータリースイッチを組み込みました。これで、解像度モードを0~7で指定します。

以下は、本体に取り付けたところ。アイディアが浮かんでから実装まで1ヶ月かかりました。


★★★ メインサイトへのリンク 「X68000改造室」★★★




またもやバグ画像!

今度は、楽勝と思っていた解像度256×256の水平同期周波数15kHz版の対応で出てきました。
スペースハリアのゲーム画像がはげしく横ぶれしています。同期ずれではありません。

 解像度256×256では画像を走査するラインが256しかありませんので、それを垂直同期信号に対応したタイミングで取り込むと、メモリ上でも縦256ドット分しかありません。そのままSVGA表示すると画面の上半分の画像となります。画面いっぱいにするには、1ラインごとに二度読みさせればいいので、1ライン取り出したらメモリの読み出しアドレスをメモリのライン先頭に戻すという処理を加えたらこうなりました。

 確かにDDR2の順次読み出しが変則になったわけですので、調整が必要なのだと思います
が、はてさて・・・

 とりあえずの対応で、X68000からの読み込み時点でメモリの1ラインおきに入れるようにして、それを表示させました。以下はその画像で、画面いっぱいにはなりましたが、ライン間に黒の隙間が見えます。

 次に、これをなんとかしようと、今度は奇数ライン読み出し時に表示とともにFPGAのメモリに1ライン分記憶させ、偶数ラインの時にそれを表示させることにしたところ、きれいに表示されました。
 よく考えたら、我が家にはこの解像度モードのソフトがスペースハリアしかありませんし、それももう遊ぶことはないだろうと思いますが、スキャンコンバータの真価発揮はこの画像モードへの対応かとは思いますので、頑張ってみました。

 これで、予定の4種類の画像モードへの対応が完了しました。あとは、これら解像度モードの自動切り替えです。これまでも動作試験をしましたが、なぜかうまくいきません。水平同期周波数の違いで区別させればいいはずなのですが・・・。

★★★ メインサイトへのリンク 「X68000改造室」★★★




不可解・・・

スキャンコンバータ制御ソフト、昨日報告しましたように、あと一歩というところにきていますが、それまでの過程でひとつ解せない現象が出ていましたので、これも備忘録のつもりで書いておきます。

 256X512の取り込み対応で、SVGAの標準ピクセルクロック40MHzの1/3の13.333MHzを第3ピクセルクロックとしてDCMで発生させることにし、水平同期信号のタイミング設定用の各部の数値を標準値の1/3に設定し、プログラム生成。768X512、512X512は正常に取り込み、256X512は絵は流れて同期がとれていない状態とまずはなりました。

 そこで、第3ピクセルクロック用数値を少しいじって(例のように、HDEを1つ減らし、HBPを逆に増やす)、再生成したら、異常事態が発生しました。以下の画像をご覧ください。
 256X512モードならまだしも、関係ないはずの768X512モードで激しいノイズが混入するようになったのです(256X512モードはもちろん流れ画面)。この表示では標準ピクセルクロックで水平同期信号を作っているので、先の数値変更が影響を与える理由が見つかりません。もちろん、数値変更を元に戻すとノイズは消え、正常になります。数値変更は第3クロック信号で作る水平同期信号の、周期を変えず表示期間とバックポーチをわずかに配分調整をしているだけです。謎です(またか ^^;)。

 結局、このままでは埒があかないので、DCMで第3ピクセルクロックを作るのをやめ、DCMで作った第2ピクセルクロック27.273MHzをプログラムで分周して作り出すようにし(以下はそのVHDL文)、



同期信号生成用数値を全て第2ピクセルクロック用の値の半分にしたら、ノイズ発生もなく、256X512モードの表示同期が一発でとれました。

★★★ メインサイトへのリンク 「X68000改造室」★★★




スキャンコンバータ、手動で3モード変更対応出来!

今日もコンバータのプログラムを改良。昨日の成果をもとに、まずは3つの解像度モード、すなわち、768X512、512X512、256X512を手動で(FPGA基板上にジョイスティックがあるので、これで操作)切り替えられるようにしました。

 その途中のバグ画像。
 絵は昔懐かしい電脳倶楽部(5インチフロッピーディスクで配布されていた月刊誌)の24年前の正月号目次です。バグは見てのとおり、絵が中央に来ていない、ジョイスティックのスイッチを押すたびに解像度は変わるものの、ランダムで左右に画像がずれるのです。

 またあれやこれや試行錯誤し、結局、表示画面の同期信号のタイミングを決めるためのカウンタを解像度変更のたびにしばしリセット(1画面クリアする時間分)するようにして解決しました。切り替え後、画面が映らないということもほとんどなくなり、かなり安定して解像度を切り替えることができるようになりました。

 あとは、4番目の解像度、水平周波数15kHzの256X256(ゲーム画面に多い)への対応と、解像度の自動変更ができれば、コンバータ製作のステージ1完了です。そうそう、本体組み込みの工作が残っていました。一時は先が見えなくなったことがありましたが、なんとかここまできました。

★★★ メインサイトへのリンク 「X68000改造室」★★★




カレンダー

10 2024/11 12
S M T W T F S
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

フリーエリア

最新CM

[02/01 ぱち(管理人)]
[01/31 saku39]
[12/27 ぱち(管理人)]
[12/27 saku39]
[01/20 ぱち(管理人)]

プロフィール

HN:
ぱち
性別:
非公開

バーコード

ブログ内検索

P R

Copyright ©  -- X68ブログ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]