電気カモメnet

適当な工作情報を投げるブログ。

PANGAME 産技祭で展示します!

 記事の更新は久しぶりです、Hkatです。なにせレポートやら課題やらで工作に全然手が付けられませんでした。ハイ。今回は LtechLab と急遽編成された ChimpanGames の共同でフルスクラッチ開発したアーケードゲーム PANGAME について。これは 2018/10/27 あたり産技祭で展示します。場所は東京都立産業技術高等専門学校品川キャンパスです。ちなみに物はこんなです↓

 

f:id:Kamomesan:20181020175249j:plain

 

なんともみすぼらしい筐体になっておりますが、これは学校のゴミになっていたMDFを使っているからです。(新品のベニヤとか高くて買えん) カラフルなボタンは Aliexpress で購入したり、液晶ディスプレイはPC用モニタから剥いだりととにかく"貧乏志向な"作品に仕上がってしまいました(^_^;)

 PANGAMEはもともと学校のデジタル回路の授業のグループ自由製作で計画されたものです。「なんでも作ってよいだって??ならゲーム機作るか!!」ってノリでしたね。本当に。デジタル回路の授業で習ったことといえば基本論理素子についてや論理回路設計法くらいだったので、どうせ他のグループは電子ホタルとかライントレーサとかを作ってくるだろうと容易に予想できたし、同じようなのを作ってもつまらないですし。結果的に数少ない製作系の授業を有効活用できたかなと思っています。ちなみにこのPANGAMEの名前の由来ですが、メンバーにPAN君がいたのでPANGAMEにしただけです。単純で良いですね!!!

 結局PANGAMEってなんなのかといいますと、ロジックICで構成されたビデオゲーム機です。マイコンを使ってはつまらないので、ビデオ回路、オーディオ回路等々PANGAMEの回路はロジックICやRAM、ROMで構成されています。何がすごいの?と言われても特にすごいことはありません。わざわざめんどくさい方法で、無駄に時間とお金を食って作っただけです(笑) 今やMCUMPUがあるのですからビデオを映したり音を鳴らしたりするのは非常に簡単になっています。それをわざわざロジックICというスイッチのみで作ろうっていうのですから、流石に私もどうかしてましたね(^_^;) というか、プロジェクト発足時は僕自身動くとは思ってませんでした。失敗しても単位はもらえそうだったのでまぁ動かなくても基板になってればえぇやろ~程度でしたが、案外動くもんですね。。

 

f:id:Kamomesan:20181020181041j:plain

 

 ビデオ回路開発時の様子です。演算部から送られた命令に従ってVGA信号を生成するだけの簡単な回路です。ちなみに基板はCNCで切り出しています。主な構成部品はNANDゲート、カウンタ、マルチプレクサ、DACSRAMです。SRAMはいわゆるVRAMですが、実は設計段階でフロントポーチ&バックポーチのタイミングでVRAMにデータを書き込むという事をしようとしていたのものの、演算部の処理速度の問題からやむなくデュアルポートSRAMに変更しました。

 

f:id:Kamomesan:20181020181652j:plain

これがVRAM基板です。突然の設計変更を強いられたためそこらへんにあったユニバ基板で対応^^;

 

f:id:Kamomesan:20181020181756j:plain

 

 メインメモリ回路、ビデオ回路、オーディオ回路と演算部を組み合わせて動作テストの様子です。写真じゃわかりませんがBGMが鳴ってます。オーディオ回路は演算部からのmidi信号で音を鳴らす回路です。波形データをROMに格納しておき、そこから取り出すといういわゆるウェーブテーブル音源です。波形は古き良きPC98時代のヤマハFM音源を参考に昔手打ちした波形データを流用してます。いちおう同時発音数32なはず!

 

f:id:Kamomesan:20181020181918j:plain

 

 筐体も当然我々の自作です。回路は私が主に作ってたのでその間に筐体はPAN君、KO君、KA君が担当してくれました^^  さっきも書きましたが板材はゴミになってたMDF等です。

 

f:id:Kamomesan:20181020182134j:plain

 

 回路の最終アセンブリテストです。ゲームに使う絵(bmp)や音楽(midi)はmicroSDカードに入ってます。なぜbmpmidi形式にしたのかというと、JPEGとかの圧縮形式だと回路規模が尋常じゃないことになりそうだったからです。一番下にチラっと映ってますがHZW君が電源回路を担当してくれました。最近、この電源回路がすごいノイズを発していることがわかり、文句を言ったら修正してくれました。

 

f:id:Kamomesan:20181020182618j:plain

 

 PAN君がブロック崩しを実装してくれました。そしてそれを遊ぶHZW君。回路を作成したのは僕なので、それ用のAPIも僕が書くハメになりました。誰でも簡単にゲームが書けるようにしたかったので、さりげなくDirectXとの互換性があったりします。関数一つで画像の描画等できるので脳内コーディングでも実機テストで動かせました^^ いちおうOSと呼べるのか分からないOSが動いてます。フレームレートの管理と汎用入出力制御、メモリ管理を担当してるのでまぁOSで良いのかもしれませんが。

 この時点ではPAN君のプログラムにバグがあるみたいですが、産技祭では完璧に修正してくれることでしょう(フラグ)

 

ご注文はフルロジックですか??

 ここで結構大嘘があるのでバラしておきます。実はPANGAMEにはマイコンが入っています!! というのも、設計段階でのコンセプト「誰でも簡単にゲームが作れる」が中々クリアできず、やむなく使うことになりました。どうゆう事かと言いますと、当初僕の設計ではプログラム格納用のフラッシュメモリが搭載され、アセンブリ言語でゲームを記述後8086様式でコンパイルし、ROMライターでROMに書き込む、という事になっていましたが、こんなのどう考えても「誰でも簡単」ではありませんね(^_^;) これの解決策として、Arduino IDEで記述でき、USBケーブルでプログラムを転送できれば随分座敷が低くなるのではと思い、Arduinoを載せることにしました。ようはプログラムROMの役割をマイコンにやらせよう、という考えです。僕にとっては妥協でしかありませんでしたが、今になって考えてみればデジタル回路の最終授業までにPAN君のブロック崩しが動かせたのもそれのお陰なのかなとも思います。 

だから……ゆるして!!!!

 

・Staff

Hkat  - LtechLab, ChimpanGames所属。回路、OS、API、グラフィック、BGM担当。

HZW - LtechLab所属。電源、グラフィック担当。

PAN - LtechLab所属。ゲームプログラミング、筐体担当。

KA - ChimpanGames所属。事務、筐体担当。

KO - ChimpanGames所属。グラフィック、筐体担当。