2017年04月22日

ウィザードリィforP6(8)(ver1.2リリース)

  ウィザードリィ for P6


  88版→P6への変換ツールのバージョンアップをしました。

  wiz1_p6.zip
  wiz2_p6.zip
  wiz3_p6.zip


  エミュレータでは、PC-6001VW ver310f、ver4.00、PC-6001V ver1.25 で動作を確認しています。


 ・Ver1.1 → ver1.2 変更点
  描画ルーチンがちょっとだけ速くなった(Bookwormさん、Thanks)。

  新ベルーガカートリッジで、拡張RAMが認識されない問題を修正。

  これにより、PC-6001V ver1.24以降で、128Kと認識されるようになりました。
  使用時は、環境設定−基本で戦士のカートリッジを使う、とするだけでOKです。
  (拡張ROMデータは必要ありません)

  説明などは、同梱のドキュメントを参照して下さい。


  シナリオ#1、#2、#3用です。

2017年04月16日

ゲームボーイカートリッジの吸出し

  何となく必要に迫られて作りました、その2。

  P6のFDDインタフェースを利用した、ゲームボーイ/ゲームボーイカラーのカートリッジの吸出しプログラムです。
  文章が使い回しのようなのは気のせいです(^^;)


 注意事項:
  下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
  当方では責任を負えませんので、あくまで自己責任で行って下さい。


○必要な環境

 1)PC-6001mk2 or PC-6001mk2SR
   P6用RS-232Cボード
   吸出し用回路(後述)

   パソコン側のRS-232Cが読めるハードウエア環境


 もしくは

 2)PC-6601 or PC-6601SR
   6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html
   P6用RS-232Cボード
   吸出し用回路(後述)

   パソコン側のRS-232Cが読めるハードウエア環境


吸出し用回路図
170416_02_ゲームボーイ吸出し回路図.PNG



○用意

 1)吸出し用回路を作成する。面倒ですが...

  FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
  この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。

  また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
  (P6のジョイスティック端子から取るのが一番簡単です)


  ゲームボーイのカートリッジを挿すためのコネクタですが、コネクタ単体を入手するのは困難だと思います。
  簡単かつ安価なのは、スーパーゲームボーイを改造することだと思います。

  私の場合、以下のように加工しました。

  1)カートリッジのコネクタ、その他の部品を全てを外す。
  2)コネクタに繋がる基板パターンをカットする
  3)カートリッジのコネクタを元通りに半田付けする。
  4)後の配線を行う。


  ちなみに作るとこんな感じになりました。内部配線はかなり汚いです。

170416_02_ゲームボーイ吸出し外観.jpg
170416_02_ゲームボーイ吸出し基板表.jpg
170416_02_ゲームボーイ吸出し基板裏.jpg

  基板の上の方にある黒い塊は、74LS374を2つ親子カメにしたものです。配線を少なくなるようにしています。



 2)必要なソフトウエアを用意する。

  P6用:gbload.zip←これを使用して下さい。

  Winパソコン側:
   シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html
   ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/



○使い方
 1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
 2)Acknowrichを起動し、該当するシリアルデバイスを開く。
 3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
   例えば、うちの環境だと、P6のボーレートが4800bpsなので、
   Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
   (307200 = 4800x64)
 4)P6をMODE=5、PAGE=3で起動する。
 5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
 6)まず p を押して、パラメータ設定を行う。
   その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
 7)カートリッジをコネクタに挿す。
 8)吸出し回路の電源をONにする
 9)Acknowrich のメニューから、編集−ファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.gb もしくは〜.gbc にする。
 10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
 11)P6側で、A を押して、カートリッジを読み取らせる。カートリッジの情報を表示した後、読み込みます。
 12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
 13)セーブファイルがある場合は、続いて送信するので、同様に編集−ファイル転送を選択し、ファイル名に〜.savとしてファイルを受信する。
 14)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
 15)吸出し回路の電源をOFFにしてから、カートリッジを抜く。


  最初にエラーが出力される(LOGO Error、Header SUM Error)場合は、電源を切った後、カートリッジを抜き差ししてみてください(もしくは端子周りを掃除する)。
  ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
  カートリッジを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。


○その他のメニュー

 1)B キー
   内部RAMのデータのみセーブします。
 2)C キー
   内部RAMのデータを初期化します。具体的には、全RAM領域に0xFFを書き込みます。
 3)I キー
   カートリッジの情報を表示のみ行います。


posted by えすび at 16:29| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

PCエンジンHuカードの吸出し

  何となく必要に迫られて作りました。

  P6のFDDインタフェースを利用した、PCエンジンのHuカードの吸出しプログラムです。


 注意事項:
  下記の手順に従っても、最悪の場合Huカードが壊れたり、データが消えたりする可能性があります。
  当方では責任を負えませんので、あくまで自己責任で行って下さい。


○必要な環境

 1)PC-6001mk2 or PC-6001mk2SR
   P6用RS-232Cボード
   吸出し用回路(後述)

   パソコン側のRS-232Cが読めるハードウエア環境


 もしくは

 2)PC-6601 or PC-6601SR
   6601/6601SR用フロッピーインタフェース(http://sbeach.seesaa.net/article/387861528.html
   P6用RS-232Cボード
   吸出し用回路(後述)

   パソコン側のRS-232Cが読めるハードウエア環境


吸出し用回路図
170416_01_pce吸出し回路図.PNG



○用意

 1)吸出し用回路を作成する。面倒ですが...

  FDDインタフェースと接続は、出来るだけ短くして、なおかつGNDの線は全部繋いで下さい。
  この辺りで手を抜くと、吸い出したデータが化ける事があります(ずいぶん苦労させられました)。

  Huカードのコネクタが一番入手が困難だと思います。私はPCエンジン実機から取りました。

  また、FDDインタフェースからは電源が取れないので、他に5V電源を用意する必要があります。
  (P6のジョイスティック端子から取るのが一番簡単です)


  ちなみに作るとこんな感じになりました。かなり汚いですが。

170416_01_Huカード吸出し表.jpg

170416_01_Huカード吸出し裏.jpg


 2)必要なソフトウエアを用意する。

  P6用:pceload.zip←これを使用して下さ

い。

  Winパソコン側:
   シリアル通信ソフト Acknowrich(http://www.vector.co.jp/soft/dl/win95/prog/se089304.html
   ROMチェッカー ROM Checker(http://mrchecker.web.fc2.com/



○使い方
 1)それぞれを接続する。ただし吸出し回路の電源SWはOFFにしておく。
 2)Acknowrichを起動し、該当するシリアルデバイスを開く。
 3)P6側の設定に合わせて、ボーレート、パリティなどを設定する。
   例えば、うちの環境だと、P6のボーレートが4800bpsなので、
   Acknowrichの設定は、307200bps、Parity=EVEN、StopBit=1.0、Length=8にしています。
   (307200 = 4800x64)
 4)P6をMODE=5、PAGE=4で起動する。
 5)CLOAD、RUNする。PC-6601/PC-6601SRの場合は、RUNする前に、OUT &HB1,4 を入力して下さい。
 6)まず p を押して、パラメータ設定を行う。
   その後は順に、StopBit=1、Parity=even、Length=8、BautRate=x64 を設定する。
 7)Huカードをコネクタに挿す。
 8)吸出し回路の電源をONにする
 9)Acknowrich のメニューから、編集ーファイル転送を選択し、開いたダイアログの上から4行目の受信オプションにファイル名を入力する。拡張子は〜.pceにする。
 10)受信ボタンを押す。ファイルを生成するフォルダを聞いてくるので、選択するとその後に、受信状態になる。
 11)P6側で、A を押して、Huカードを読み取らせる。ファイルサイズなどは自動で算出されます。
 12)読み込みが終了したら、Acknowrich のダイアログの やめる を押す。
 13)ファイルが生成されているので、そのファイルをROMチェッカーで検査する。
 14)吸出し回路の電源をOFFにしてから、Huカードを抜く。


  ファイルが生成されるが、ROMチェッカーでエラーになるときは、何度か試して下さい。
  Huカードを抜き差ししていないのに、ファイル内容が異なる時は、電源周りが怪しいです。




posted by えすび at 01:37| Comment(6) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2017年04月09日

メガドラのパッドをP6で

  以前に書いたかもしれませんが...

  P6のジョイスティックは、現在では入手が困難だと思います。

  一から作るのもいいんですが、他機種のパッドを改造するのが一番手っ取り早そうです。
  入手性がよさそうなのはメガドライブ/マークV系のパッドなので、改造例を以下に記します。

  まず、マークV付属のパッドです。

170409_01_mkVパッド回路図.png

  マークVのパッドをP6で使う場合は、右ボタンを押さなければ1ボタンとして使用可能です。
  8ピンはP6からの出力のため、最悪"H"を出力している可能性があるため、使用するなら9ピンに接続している線を切る方がいいでしょう。
  右ボタンの信号を7ピンに接続できれば2ボタンとして使用する事ができるのですが、付属のパッドでは7ピン自体がないため、コードを変更する必要があります。


  次に、メガドライブ付属のパッドです。

170409_01_メガドラ3ボタン回路図.png

  メガドライブの3ボタンのパッドをP6で使う場合は、以下を変更します。

  変更前→変更後
  7ピン→8ピン (パッドの74HC157の1ピンを、P6の8ピンに接続)
  8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
  9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)


  この変更では、ABCの3ボタン+STARTの4ボタンが使えますが、対応するソフトが必要です。
  また、通常の2ボタンとしては使えません。


  通常の2ボタンとして使うには、以下のように変更します。

  変更前→変更後
  7ピン→5ピン (パッドの74HC157の1ピンを、P6の5ピン(VCC)に接続)
  8ピン→9ピン (パッドのGNDを、P6の9ピンに接続)
  9ピン→7ピン (パッドの74HC157の12ピンを、P6の7ピンに接続)

  この場合、Bがトリガ1、Cがトリガ2になります。AとSTARTは読み取りが不可能になります。



  最後に、メガドライブの6ボタンのパッドです。これは持っていなかったので、新しく入手しました。中古を買おうと思ったんですが、(パチモンという)コンパチ品が新品で売っていたので、それを購入しました。

  以下の写真は、入手したパッドです。

170409_01_メガドラ6ボタン.jpg


  最近出回っているようで、駿河屋で売っていました。

  http://www.suruga-ya.jp/product/detail/164000919000



  中の基板の写真です。

170409_01_メガドラ6ボタン基板.jpg


  基板上にベアチップが載っているために、回路図は書いていません。


  P6で使用するための改造ですが、3ボタンと同じ改造で動作します。

  変更前→変更後
  7ピン→8ピン
  8ピン→9ピン
  9ピン→7ピン


  分かりにくいので、図に書きましたが...これでも分かりにくいかも。

170409_01_メガドラ6ボタン

回路図と変更点.png


  右図の 821964357 は、基板上のパッド番号の並びです。


  通常の2ボタンとして使う場合も、3ボタンと同じように変更します。

  変更前→変更後
  7ピン→5ピン
  8ピン→9ピン
  9ピン→7ピン

  この場合、Bがトリガ1、Cがトリガ2になります。それ以外のボタンは読み取りが不可能になります。



  6ボタンの読み取りをするプログラムを書きました。表示関連が手抜きですが。

  padmd.zip


  読み取り方ですが、以下のページを参考にしました。

  https://applause.elfmimi.jp/md6bpad.html


posted by えすび at 19:06| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2017年04月01日

FPGAボードへの書き込み方法

  FPGAボードへの書き込み方法


  一応、書き込み方法を書いておきます。


 準備

1)USB-BLASTERを用意する。
  純正を用意できればベストですが、パチモンでも十分使えます。
  参考まで→ http://sbeach.seesaa.net/article/443951365.html

2)QuartusII または Quartus Prime をインストールする。
  Alteraのホームページから、もしくは雑誌の付録などからインストールして下さい。
  Quartus Prime の場合、64bit環境が必要になるようです。

  Webエディションという、無料で使用できるものがあるので、それで十分です。

  バージョンは新しい方がいいですが、最新の必要はありません。
 (うちのは、QuartusII 10.1 です)

3)USB-BLASTERを一度も使用した事がない場合は、USB-BLASTERを挿してドライバがインストールされるのを確認する。
  (その後で抜いてください)


 書き込み手順

 ・DE0の場合は、ボードのRUN/PROGをPROGにしておきます。

1)FPGAボードのASP端子にUSB-BLASTERを挿し込む。
2)FPGAボードの電源を入れる(外部から電源を供給する)。
3)USB-BLASTERをパソコンに挿す。
4)QuartusII/Quartus Primeを起動する。
5)メニューバーの Tools - Programmer を起動する。起動したら横に伸ばしておく。

170401_02_Programmer1.png


 Programmer のパネルで、左上の『Hardware Setup』を押し、USB-Blaster を選択する。

 その右の『Mode』は、Active Serial Programming を選択する。
 Active Serial Programming に、何か聞かれたら、Yes を押す(この設定を変えると、既に設定されているファイルが書き込めないけどいいですか?と言っている)


 Add File... を押し、〜.pof を選ぶ。

 その後、画面に追加されたファイルの右の方の項目で、Program/Configure、Verify、Blank-Check、の箇所にチェックを入れる。

 準備が出来たら、Startを押します。右上のProgress 100%(Success)になれば完了です。


6)USB-BLASTERをパソコンから抜く。
7)FPGAボードの電源を落とす。

posted by えすび at 16:05| Comment(0) | ツール:DE0・Quartus | このブログの読者になる | 更新情報をチェックする

RGBコンバータ(10)(リリース)

  RGBコンバータ(10)(リリース)

  RGBコンバータの新しいバージョンをリリースします。


怪しいCycloneIIボード1版(640x480):c2_640x480_ver2.zip

怪しいCycloneIIボード1版(1280x1024):c2_1280x1024_800_ver1.zip


怪しいCycloneIIボード2版(640x480):c2_r_640x480_ver2.zip

怪しいCycloneIIボード2版(1280x1024):c2_r_1280x1024_800_ver1.zip


DE0版(640x480):DE0_640x480_ver2.zip

DE0版(1280x1024):DE0_1280x1024_1000_ver1.zip


DesignWare 2003年10月号付録Cycloneボード版(1280x1024):c1_1280x1024_800_ver1.zip





  使用するボード、モニタの解像度に合わせて、使用して下さい。
  搭載しているCycloneの内蔵メモリの容量によって、実現できる解像度が異なります。



  怪しいCycloneIIボードが、1と2の二つありますが、73ピンのパワーオンリセットの回路のみが違うものがあります。

  ボード1:電源投入時、L→H
  ボード2:電源投入時、H→L

  基板の裏をよーく見るとわかるんですが、面倒な場合はどちらか動く方を使用して下さい。
 (リセットが違うので、別バージョンのものを書き込むと、ボタンを押してもLEDが点灯しません)




  使用方法などは前回と変わっていません。一応、前回に掲載したものを再掲します。


 ・使い方

  ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
  mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。


 ・怪しいCycloneIIボード版
  ボード上のプッシュスイッチを押すと、にじみが出せます。
  プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。

  ボード上の3つのLEDは、以下を示しています。
  D2:にじみ処理時、点灯
  D4:mk2SR/66SR時、点灯
  D5:データ同期時、点灯


 ・DE0版
  ボード上のBUTTON2を押すと、にじみが出せます。
  BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
  BUTTON0を押すと、リセットします。

  ボード上のLEDは、以下を示しています。
  LED0:にじみ処理時、点灯
  LED1:mk2SR/66SR時、点灯
  LED2:PLLロック時、点灯(普通は常時点灯)
  LED3:P6からのクロック入力時、点灯
  LED4:P6からのデータ入力時、点灯
  LED5:データ同期時、点灯(320x200同期)
  LED6:データ同期時、点灯(256x192同期)

  ボード上の7SEGは、以下を示します。
  左2桁:クロックに対するデータの遅延値
  右2桁:クロックに対するHSYNCNの遅延値

  下位桁は、1〜7です。単位は10nsです。
posted by えすび at 13:01| Comment(2) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2017年03月28日

RGBコンバータ(9)

  RGBコンバータ(9)

  一つ前の書き込みの『一部のモニタでは動作しません』に関してですが、改良を加えている最中です。

  多分、大抵のモニタで動作するように出来そうですが、出来るまでにもうちょっと時間が掛かりそうです。

  しばしお待ちを。

posted by えすび at 23:30| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2017年03月24日

RGBコンバータ(8)

  RGBコンバータ(8)

  ばくてんさんが基板配布を行うという事で、注意点を書いておきます。

1.今のバージョンでは、mk2/66/mk2SR/66SRの画像を、VGA(640x200)のモニタに出力するものですが、一部のモニタでは動作しません。というか動作するモニタの方が少ないかもしれません。

  動作するモニタを増やそうとは思っていますが...


2.配布基板以外に、FPGA基板、FPGA書き込み用のライタを入手する必要があります。


3.FPGA基板にユーザ自身でデータを書き込む必要があります。

  FPGAへの書き込み手順は、後ほどこのブログに掲載予定です。


posted by えすび at 23:15| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

RGBコンバータ(7)

  RGBコンバータ(7)

  怪しいCycloneIIバージョンに載せる基板を、ばくてんさんが作成して下さっていました。


  さっそく、配布前の物を入手して組み立ててみました。
  (チップ部品の半田付けが結構大変です)


  実際に組み立てた基板と、動作させた写真をアップします。

  組み立て後
170324_01_RGBCNV基板_C2_2.jpg
170324_01_RGBCNV基板_C2_1.jpg

  mk2動作写真(1)
170324_01_実行画面mk2_1.jpg

  mk2動作写真(2)色ずれなし
170324_01_実行画面mk2_4.jpg

  mk2動作写真(3)色ずれ赤/青
170324_01_実行画面mk2_2.jpg

  mk2動作写真(4)色ずれ桃/緑
170324_01_実行画面mk2_3.jpg

  mk2SR動作写真(1)
170324_01_実行画面mk2SR_1.jpg

  mk2SR動作写真(2)320x200x16色
170324_01_実行画面mk2SR_2.jpg

  mk2SR動作写真(3)320x200x16色
170324_01_実行画面mk2SR_3.jpg

  mk2SR動作写真(4)640x200x4色
170324_01_実行画面mk2SR_4.jpg

  mk2SR動作写真(5)640x200x4色
170324_01_実行画面mk2SR_5.jpg


  ついでに、CycloneI版(DesignWare 2003年10月号付録)の基板写真をアップします。

170324_01_RGBCNV基板_C1_1.jpg
170324_01_RGBCNV基板_C1_2.jpg

posted by えすび at 22:55| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2017年01月16日

MeltDown(6)

  MELT DOWN for P6SR/P6mk2


  今更ですがMELT DOWNの実行画面をアップします。
  上の4つは、mk2SR/66SR用、下の2つはmk2/66用です。

  シューティングは、スクリーンショットを取るのが難しい...


170116_01_MeltDown実行画面1.png

170116_01_MeltDown実行画面2.png

170116_01_MeltDown実行画面3.png

170116_01_MeltDown実行画面4.png

170116_01_MeltDown実行画面5.png

170116_01_MeltDown実行画面6.png

2016年11月23日

RGBコンバータ(6)

  RGBコンバータの件

  動作しないモニタがありました。

 ・DELL E197FP
 ・SHARP AQUOS LC-22K5

  AQUOSの方は、映るんですが画面が小刻みに上下します。
  理由も大体分かっていて(VSYNCをたまに間引いているから)、直せるかもしれません。


  問題はDELLのモニタの方で、31KHz×60Hzと認識してくれません。
  原因は全くわかっていません。対処しないかも...


  上記の結果なので、他のモニタでも同様の症状が出る可能性があります。




posted by えすび at 23:38| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

RGBコンバータ(5)(リリースc1)

  RGBコンバータの件

  DesignWare 2003年10月号付録Cycloneボード版をリリースします。

ver4_c1.zip

  多分、マルツで売られているボードでも動作すると思います。


  付録のボードの場合、コンフィグ用ROMが付いていないので、入手する必要があります。
  EPCS1 が必要なんですが、EPCS4以上でも代用が効きます。
  さらに、EPCSシリーズの代わりに、STマイクロのM25Pシリーズが使えます。

http://www.hdl.co.jp/altera/epcs_m25p/index.html

  EPCS4相当が、M25P40になります。


  アマゾンで売っていましたので購入しました。5個セットでしたが...

https://www.amazon.co.jp/MICRON-M25P40-VMN6TPB-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88/dp/B01B1E1C1O/ref=sr_1_1?

ie=UTF8&qid=1479903193&sr=8-1&keywords=M25P40

  円高のせいか、一ヶ月前は972円だったのが、今日は1125円です。


posted by えすび at 21:25| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

FPGAボードとUSB Blasterの話(3)

  怪しいボードの追記。

  CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA

  安い方が売り切れてるようです。


  会社が中国ですが、ほぼ同じボードがあります。

https://www.amazon.co.jp/LILLY%E3%82%A8%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AD%E3%83%8B%E3%82%AF%E3%82%B9-ALTERA-FPGA-Cyclone-II%E3%81%AEEP2C5T144%E6%9C%80%E5%B0%8F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89/dp/B01A8B0Q2W/ref=pd_sim_sbs_147_2?_encoding=UTF8&psc=1&refRID=BFSVHF7DH79TCTANP52M



  ほぼ、同じというのは、写真を見る限り、どうも73ピンの動作が違いそうです。

  PWRONRSTN(73ピン):パワーオンリセット。電源投入時に、L→H のようです。

  回路図と同じようですし、私が購入した売り切れている方が、コピー品じゃないかと思います。



posted by えすび at 20:48| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2016年11月22日

RGBコンバータ(4)(リリース)

  RGBコンバータの件

  やっと完成しましたので、リリースします。

  DE0版:ver4_DE0.zip

  怪しいCycloneIIボード版:ver4_c2.zip


  回路図も同梱していますので、そちらを参考にして下さい。

  DE0版では、2種類(74LCX245を使っているのと、使っていないの)あります。
  多分、両方動作すると思うんですが、74LCX245を使っていないバージョンは試してません(^^;)

  74LCX245ですが、5V→3.3Vへの変換用なので、トレランス機能を持っているものなら何でもいいかと思います(ex.74VHC245)


 ・使い方
  ボードに電源を供給して、mk2/66/mk2SR/66SRを起動すると、普通に表示されます。
  mk2SR/66SR使用時は、クロック出力を3.58MHzの方にして下さい(普通はこちらになっています)。


 ・怪しいCycloneIIボード版
  ボード上のプッシュスイッチを押すと、にじみが出せます。
  プッシュスイッチを押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。

  ボード上の3つのLEDは、以下を示しています。
  D2:にじみ処理時、点灯
  D4:mk2SR/66SR時、点灯
  D5:データ同期時、点灯


 ・DE0版
  ボード上のBUTTON2を押すと、にじみが出せます。
  BUTTON2を押す毎に、にじみなし→赤青→青赤→桃緑→緑桃→にじみなし、となります。
  BUTTON0を押すと、リセットします。

  ボード上のLEDは、以下を示しています。
  LED0:にじみ処理時、点灯
  LED1:mk2SR/66SR時、点灯
  LED2:PLLロック時、点灯(普通は常時点灯)
  LED3:P6からのクロック入力時、点灯
  LED4:P6からのデータ入力時、点灯
  LED5:データ同期時、点灯(320x200同期)
  LED6:データ同期時、点灯(256x192同期)

  ボード上の7SEGは、以下を示します。
  左2桁:クロックに対するデータの遅延値
  右2桁:クロックに対するHSYNCNの遅延値

  下位桁は、1〜7です。単位は10nsです。

posted by えすび at 01:06| Comment(8) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2016年11月15日

RGBコンバータ(3)

  RGBコンバータの件

  P6からクロックを貰えれば簡単かと思いますが、mk2SR/66SRの方は一筋縄では行かなかった...

  RGB出力は特殊かも知れませんが、通常データとクロックを両方出力しているような場合は、その先の回路ではそのクロックでデータを叩けばちゃんと動く回路が出来ます。mk2/66の場合だと、ちゃんとそうなっています。


  問題のmk2SR/66SRですが...

 1)データ出力が14MHzで叩かれたデータなのに、クロック出力が3.58MHzである(14MHzの4分周)。
 2)3.58MHzクロック出力とデータの位相関係が、リセット押下するごとに変わる。
 3)3.58MHzクロック出力とデータの遅延値が、電源投入後から徐々に変化する。


  1)や2)はまだ回避方法があるのですが、最悪なのが3)です。

  具体的には、3.58MHzクロック出力を基準にしたHSYNC遅延値が、電源投入してからずるずると変わっていきます。実測値では、大体30nsほど減少します。14MHzが70ns程度なので結構ひどい数値です。


  画像信号のRGBHはほとんど変化しないので、HSYNCを生成している回路に問題がありそうです。
  回路図を見ると、変なLRCが途中に入っているので、この辺りが悪さをしているんじゃないかと思います。


  mk2SR/66SR は、カスタムLSIや基板設計が、結構お粗末やなー、と思っていたんですが、また一つ悪いものを見つけた感じです。

posted by えすび at 22:35| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2016年11月14日

RGBコンバータ(2)

  RGBコンバータの件

  HSYNCからクロックを再生していたんですが...

  よく考えたら、P6から直接クロックを入力して、それを100MHzでサンプリングするのが一番簡単な方法だという事に気付きました。


  とりあえずそのバージョンを適当に作って動かしていますが、安定して動作しています。


  ただ、今の回路だと、調整用のDIPSWが必要になる(7PIN程度)のが気に入らないんですねぇ...

  クロックからの遅延値が、P6の個体や、RGBコンバータ側の回路などで異なるため、それを吸収するために調整が必要なのは仕方ないんですが、何とか調整を自動化して、外部からは最小限にしたい所です。


  回路の実装は、DE0版と、怪しいCycloneII版で行っています。デザインウエーブ付録のCyclone版も作るつもりです。


posted by えすび at 22:52| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

FPGAボードとUSB Blasterの話(2)

  怪しいボードと怪しいUSB Blasterの追記です。

  CycloneIIボード
https://www.amazon.co.jp/gp/product/B016K4XE3E/ref=pd_sim_sbs_23_1?ie=UTF8&psc=1&refRID=7EAYPVFEJ0QA1E201SZA

  USB Blaster
https://www.amazon.co.jp/%E6%82%9F%E7%A9%BA-ALTERA-USB-Blaster%E4%BA%92%E6%8F%9BJTag%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E4%B8%A6%E8%A1%8C%E8%BC%B8%E5%85%A5%E5%93%81/dp/B00VUWNN74/ref=sr_1_1?ie=UTF8&qid=1478411751&sr=8-1&keywords=USB+Blaster


  信号説明が一つ抜けていました。

  PWRONRST(73ピン):パワーオンリセット。電源投入時に、H→Lになります。

  前回掲載したテスト用回路では、PWRONRSTN となっていますが、PWRONRST が正解です。

https://www.openimpulse.com/blog/products-page/product-category/ep2c5t144-altera-cyclone-ii-fpga-development-board/

  ここの回路図を参考にしたのですが、この回路図が間違っています。

  73ピンに、抵抗を介して3.3V、コンデンサを介してGNDとなっていますが、実際の基板は抵抗を介してGND、コンデンサを介して3.3Vです。



  USB Blasterの方は、モノ自体は普通に動作するのですが、付属のUSBケーブルがイマイチでした。USB Blasterと繋がる方のUSBコネクタとの接触が悪く、認識しない事がありました。

  DE0-nanoに付属していた、USBケーブルでは全く問題が発生していません。


posted by えすび at 21:56| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

2016年11月12日

RGBコンバータ(1)

  RGBコンバータの件

  ほとんど設計は完了して、実際に使っているのですがどうも不安定です。

  いろいろと作り方はあると思うのですが、今回は以下のように作っています。

1)P6からはクロックを貰わない
2)P6からのHSYNCパルスを元に、14.318MHzクロックを再生する。
 →基板クロックから内部100MHzを作り、デジタルPLLっぽい事をする。
3)出力は、VGAの640x480に対応する。出力クロックは、100MHzの1/4の25MHz。
4)横方向はそのまま出力。縦方向は、P6のデータ1ラインに対して、VGAのデータ2ラインを出力する。
5)4)の実現のため、4ライン分のDPRAMを設ける。
6)P6からの入力の方がVGA出力よりも速いので、VGAへのVSYNC出力を変化させる。通常は524ラインで、たまに523ラインで出力する(規格は525ライン)。


  上記の方式で設計すると、mk2では普通に動くのですが、mk2SRでは画像にノイズが乗りました。
 2)のクロック再生がうまく動作していなくて、データをたまに取りこぼしています。

  調べてみると、mk2SRの場合、内部14.318MHzに対して、HSYNCの出力の遅延値が一定ではなく、20ns以上もずれる事がある事が判明しました(VSYNC=Lを出力する時に大きくずれる)。

  結局、HSYNC×VSYNC の周期、つまり1画面分を元に、デジタルPLLっぽい事をすると、安定して動作するようになりました。


  これでリリースしようとしていたのですが...長時間使用していると、最初に合わせた位置からずれてきます。
  多分、熱などの影響で、遅延値が変わるためだと思われます。


  このままでも使用できなくはないのですが、やはり自動追従した方がよさそうなので、リリースはもうちょっと後になります。


  年内に終わればいいな...

posted by えすび at 18:14| Comment(0) | HW:その他 | このブログの読者になる | 更新情報をチェックする

PALADIN(2)

  PALADIN for P6

  だいぶ前に完成したのですが、やっとリリースしました。

  640x200×4色の画面がメインなので、実機でテストする場合、綺麗に映る必要があったためです(そのため、RGBコンバータを作成中ですが)。


  PALADIN というゲーム自体がマイナーかも知れません。オークションなどで売っているのを見たことがほとんどありません(私はオークションで見つけてすぐに落としました)。

  ゲームの内容自体は、調べてもらうと分かると思います。エンディングまで実況している動画もあるようです。
  まあまあ面白く、2日ほど掛けてクリアしました。
  何箇所か、分からないと進まない部分があります。画面とか持ち物とか魔術とか、いろいろ注意すると分かるかも。



  P6への移植ですが、以下の修正・変更しています。

 ・キーアサインの変更。
  遊び易くしたり、同時キー入力が出来るキーにするなどです。

 ・魔法弾やドラゴンの炎、イリュージョニストなどの色と表示の変更。
  640x200では4色しか使えないため、無理やり色の調整と重ね合わせをプログラムで実施しています。そのため、動作が遅くなっています(手抜きです)。

 ・メッセージの平仮名化。
  文章が読みやすくなりました。

 ・エンディングのグラフィックの修正。
  これも4色に収めるために、配色などを変更しています。また、PC88版では一部のキャラがバグってよく分からないものが表示されています。一番最後に剣と盾が表示されるのが正解です。


  グラフィックは基本的にはPC88版と同じです。元々、黒/赤/青/白の4色だけで構成されているため、修正が不要なんですね。PC88では余った緑のプレーンを使って、魔法弾などを重ね合わせて表示させています。



PALADIN(1)(ver1リリース)

  PALADIN for P6


  88版→P6SRへの変換ツールをリリースします。

paladnp6.zip


  説明などは、同梱のドキュメントを参照して下さい。


  エミュレータでは、PC-6001VW ver309b、ver310f、PC-6001V ver124 で動作を確認しています。