PIC32MX HARMONY(2)
更新日:2021年9月21日

PIC32MX JAN 1982:麻雀ゲームに仕上げる
マジョカランタンの液晶モジュールを使用して麻雀ゲーム仕上げました。ソースはPC24F JAN 1982のものを使って画面デザインのみを変更して対応しました。カラー表示が出来るだけのPICを使いましたので、よりカラフルに作ることが出来ました。どれだけの皆さんに需要があるかわかりませんが、見て頂けると幸いです。
(コンパクトなゲーム機の完成形)
ケースはPIC24Fで作った時のものをそのまま使用しました。ということでPIC24Fのものはもう存在していないということです。PIC32MXでカラー対応したら、もうPIC24Fには戻れませんね。
回路図を見て下さい。よりコンパクトにするためにサウンド用PIC(こちらはPIC24F)も同じ基板に組み込んでいます。回路図はクリックすると大きく見れます。
(ゲーム機の回路図)
マイコンはPIC32MX370F512Hを使用します。これは秋月さんで変換基板に搭載された形で購入することが出来るので大変便利です。多分、PICの達人の方が製作を行えば、PIC32MXから同時にサウンド出力も可能とは思いますが、私の場合はうまく行かなかったので、PIC24Fで作った時のサウンド回路をそのまま使っています同じ基板に組み込むことが出来ましたのでとてもコンパクトに収まりました。
(回路の実装状態)
電源はDC9Vです。USB5V-DC9V変換ケーブルを使用して電源を供給するとモバイルバッテリーを使用することが出来るのでとても便利です。操作キーは5個です。4方向キーとRETキーです。牌の選択は左右キーとRETキーで行います。ポン、チー、カンなどは上下キーとRETキーで行います。
(PICマイコンのポート割付)
液晶画面に対応するRAMの使い方を記します。16色カラーモードではPICのRAMには1バイトで2ドット分を記憶します。画面との対応は次の通りです。
(液晶モジュールの使い方)
今回のベースとなったのはPIC24F JAN 1982です。ほぼ画面構成を変えたのみです。麻雀部分に一部バグが見つかりましたのでその修正も行いました。ネーミングの由来についてはPIC24Fの記事を見て下さい。
(タイトル表示画面です)
超高速の画面描画に驚きます。スマホのカメラで撮った動画から画面キャプチャーしてますので色が良く見えませんが実際はとても綺麗に見えます。
(ゲーム開始画面です)
(MANの上がりです)
(COMの上がりです)
(流局時の表示です)
(リーチ棒が溜まった時の表示です)
(MANがポン、チー、カンした時の表示はこんな感じです)
(TIMEがゼロになるとゲームオーバーです)
EEPROMを接続して電源投入時の乱数が同じにならないように工夫しています。
(EEPROMの割付)
(麻雀牌のデザイン)
5色を使ってデザインしましたデザインの元はPIC24Fのものです。その由来は以前の記事を参照下さい。
(数字・文字などのキャラクタ一覧)
(画面に表示される各種メッセージ)
(上がったハン数に応じた表示)
(16色のバリエーション)
(効果音は8種類です)
前のものを流用していますが、ひとつだけ入れ替えました。
(モバイルバッテリーで動作中)
液晶モジュールのバックライトが良い雰囲気を醸し出しています。
今回特出する部分は液晶の描画スピードについてです。前回のテストでは1画面の描画に約100msec掛かっていました。このスピードではなんとか麻雀ゲームは成り立つかもしれませんが、アクションゲームでは遅すぎて役に立ちません。そこで今回色々と検討を行いました。描画の原理は全く同じですが、内容を見直すことによって約22msecで1画面の描画を行うことが出来ました。下図はメインタイトルを表示している時の画面描画時間を測るようにポート出力するようにした時の波形です。
(1画面分きっちりと約22msecで描画完了しています)
描画のためのRAM書き換えが数msecですから、アクションゲームの対応も充分に可能と思います。そこで早速アクションゲームの開発に取り組んでいます。
今回の画面描画の検討で判ったことがあります。なぜか表示のラインが2ラインずれることが判りました。2ラインのずれを修正するようにプログラムを組んでいますが、ずれない時もあるので、ずれを修正する描画ルーチンとずれない時の描画ルーチンの2種類を用意して分けて使っています。でもその使い分けは未だに判っていません。現象に合わせているだけです。
同じ製作をして頂けるかどうか判りませんが、PICのHEXファイルを添付します。
PIC24F用サウンドのHEXファイルはこちら
PIC32MX用麻雀ゲームのHEXファイルはこちら
PIC32MXはHarmonyを使えばプログラム開発がとても簡単に行えます。みなさんもトライしましょう。まだまだ楽しくなります。

「PIC32MX HARMONYの表紙」へ戻る