ライン

PICによるカラービデオ出力シューティングゲーム

ライン

2012年8月19日

 PIC32MX版のカラービデオ出力実験を応用して、昔のPC用シューティングゲームを移植しました。200円PICワンチップによるカラーテレビゲームの実現です。ゲームのオリジナルの詳しい解説はこちらをご参照ください。

タイトル画面

プレイ画面

回路

 PIC32MX版のカラービデオ出力実験の回路に、3×3のキーマトリクスと音声出力を追加しました。使用したPICは28ピンDIPタイプのPIC32MX120F032Bです。
 キーマトリクスではRB11〜RB13のいずれかをLow出力にして、RB8〜RB10を読み込むことで3個ずつスイッチをスキャンしています。RB8〜RB10には内部でプルアップ抵抗を設定しています。
 スイッチは秋月電子で10個セットで売っている大き目のタクトスイッチを使用しました。複数ボタンを押したときに誤検出するので必ずダイオードを接続してください。ダイオードは小信号用のスイッチングダイオードを使います。私が使っているのはこれです。

回路図

基板写真

写真では開発当初の名残でバッファ用に使用した74HC04インバータが載っていますが、不要となったので回路図からは削除しています。ダウンロードプログラムもインバータなし用を掲載しています。

 音声出力はRB6端子となっていますが、正確には出力コンペアOC4をピン割り当てでRPB6に割り当てています。OC4はトグルモードに設定し、適当な周波数の矩形波を出力することで効果音を実現しました。
 電源は回路図では省略していますが、単三乾電池を3本直列し三端子レギュレータで3.3Vにしています。あと注意事項としては、クロック源には必ず3.579545MHzの水晶発信子を使用してください。セラミック発信子では精度が足りず、カラー出力できません。

ソフトウェア

 HEXファイルのみの公開となります。PICkit3等で書き込んでください。ちなみに私はPICkit2でpic32progというツールを使って書き込んでいます。

HEXファイルのダウンロード

遊び方

 テレビのビデオ入力と音声入力に接続し、電源オンするとゲームのタイトル画面が表示されます。ここで右上のボタン(テンキーの「9」に相当)を押すとゲームスタートです。(以下、テンキー相当の数字で説明します。)
 「1」と「3」で自機を左右に動かし、「5」で弾を発射します。次々と現れる敵を撃ってください。弾は上に上がった後、重力によりまた落ちてきますので、よけなければいけません。「7」を押すとターゲットが発射され、弾はターゲットに向かって発射されるようになります。ターゲットは「2」「4」「6」「8」で動かすことができますが、自機から離れすぎると弾が飛ばなくなります。得点は倒した敵の色により異なり、赤、黄、緑の順に得点が高くなります。
 ある程度敵をやっつけると、次の面に進みます。次の面では新しい敵が現れ、面を進むにつれ複雑な動きや手ごわい奴が出てきます。また、たまに地中種族も現れます。こいつにつかまると動けなくなるため、うまく弾を地面に落として、やっつける必要があります。
 5機やられるとゲームオーバーです。ハイスコアが出ると、フラッシュROMの空きエリアに書き込みますので、電源を切っても残ります。
 ざっと簡単に書きましたが、敵キャラの動きの豊富さは抜群ですので、結構はまります。YouTubeにもプレイ中の動画をアップしましたので、ぜひご視聴ください。

Copyright (C) KenKen All Rights Reserved.