Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

QRコードでMSXのBASICゲームを配りたい!

MSXでQRコード

ふる君QRコードをSCREEN 3で表示したらどうなるか なんて書くから、ちょっといろいろ試してみたくなっちゃったじゃないですか!

QRコード(二次元コード)とは

gigamix online.comのQRコード

 

今やどんな商品にも付いている(と思われる)「バーコード」を縦方向へ拡張し、より多くの情報を少ない面積で実装した、バーコードの新しい規格です(QRコードについての詳しくは QRコードドットコム さんをご覧下さい)。

最近NTTドコモが「ケータイ・デ・ピッ!と」というTVCMを流し始めて、やっと一般にも認知され始めた感がありますが、つい先日 印刷画像に見えないデータを埋め込む技術 が開発されちゃったりして、さっそく先行きが不安な技術ではあります。しかしQRコードは、この デジタル感丸出し なガジェットだからこそ、ひょっとするとMSXにも応用が利くかも?という淡い期待感が(僕の中で)膨らんでしまいます。

MSXのコンテンツはQRコードで十分に配れる!

QRコードの仕様によると、最もデータ容量の大きいコード(バージョン40=177×177pixels&誤り訂正レベルが最低)を用いると、英数字が4296文字、バイナリでも 2953文字 を入れることができます。QRコード一つで約3000文字を入れられるということは、3KBくらいのBASICゲームなら QRコード1個でそのまま配れる 計算になります。

MSX BASICは、マイクロソフト系の旧BASICの中でも末期に開発された言語でしたので、BASIC自体の性能が優れていました。低価格でゲーム寄りなハードウェアだったことも、多くのBASICプログラマが輩出される結果に繋がりました。MSX・FANの「ファンダム」「AVフォーラム」や、MSXマガジンマイコンBASICマガジンなど、過去に発表された数多くの投稿プログラムの質(の高さ)を考えれば、3KBというメモリ容量は 世間的にはゴミ同然でもMSX的にはかなりの表現力を持つ ことは、こんな偏狭のサイトをご覧になっている方ならご存知でしょう。

ちなみにQRコードはデータの分割と結合が可能なので、容量の大きいデータをQRコードで配りたいときは、QRコードを2個3個…と複数に分割して出力するだけで対応できます。なので、実はメモリ最大容量3KBという制限にこだわる必要もありませんが、MマガのMSXショートプログラムコンテスト でも3画面(2880文字)の制限であれだけの表現力が備わっていたわけですから、MSXならQRコードが1個でも十分に遊べるはず…と考えました。

ケータイWebサイトのURLをQRコードで配るサービスはどこでもやってますが、ゲームコンテンツをまるごと配れるとしたら…どうでしょう。ちょっと楽しくなってきませんか!?夢が溢れてきやしないですか!?少なくとも僕は楽しいです(えー

MSXとケータイ&QRコードは相性が良いはずだ!

現在、MSXエミュレータのケータイへの移植が各方面で行われています。海外ではSymbian OS向けケータイの fMSX for Series 60 が、国内ではFOMAiアプリ上で作っているらしいという話は聞いています。今後そのうちケータイ用のMSXエミュレータが完成したとき、MSXのコンテンツをどうやってケータイへ持ってゆくか?が問題になります。

MSXのコンテンツを最終的にケータイへ転送する方法は現在でもいくつかあります。

  • MSX → 2DDフロッピー → Windows PC → Eメール → ケータイ
  • MSX → 2DDフロッピー → Windows PC → USB接続 → ケータイ
  • MSX → 2DDフロッピー → Windows PC → Bluetooth接続 → ケータイ
  • MSXのSunrise CF ATA-IDE(ConpactFlashカートリッジ) → MiniSD → ケータイ
  • MSXの通信カートリッジ → Eメール → ケータイ

これらの手法は手間がかかります。特にMSX実機だけでなんとかしようと思った場合、かなり頑張らないと実現できません。そこで、

MSXQRコードを画面に表示 → ケータイのカメラで取り込み

とするだけで、(少なくともMSX→ケータイ間の)データ転送の手間が大幅に改善できるはずです。しかも今ある技術だけで実現できます。良い時代になったものです。

【補足】ちなみに、MSX実機でQRコードを読み出したり書き出したりするという案件に関しては、今回は触れません。(^_^; 誰かツール作って!!(えー

MSXのSCREEN 3でQRコードを表示してみる

ふる君からのお題に準じて、とりあえず「SCREEN 3」という制限を付けて考えてみます。(画像をクリックすると拡大表示します)

まず、MSXのSCREEN 3(64×48pixels)の範囲内でQRコードを構成できる最大面積は45×45pixelsです。仕様的にはQRコードの四方に余白が4pixels以上必要ですが、これはMSXの周辺色をCOLOR 15(白)にして誤魔化します。そうやって作るQRコードは、バイナリモードで154文字を入れることができます…って、154バイトしか無いの!?(^_^;

仕方が無いので154バイト以内で頑張ってゲームを作ってみよう…ということで、BASIC言語のサンプルゲームとしてよく用いられる「数当てゲーム」を紹介します。1から100までのランダムな数字を少ない手数で当てるというものです。

数当てゲーム

このゲームのBASICプログラムリストは↓のものです。

BASICプログラム
QRコード

このBASICプログラムをアスキーセーブして QRCode.jp にてQRコードへ変換すると、左のようになりました。半角カナが混ざると急にデータ容量が増えて焦りましたが、なんとかSCREEN 3の範囲内にQRコードが収まるコードが完成しました!

SCREEN 3化

このQRコードBMP to MSX でSCREEN 3へ変換して、MSX用のBSAVE画像データを作成。※このBSAVE画像が欲しい奇特な方は → ダウンロード

完成したBSAVE画像を、MSXのモニタ画面に表示してみると…

QRコードを表示

うわ!QRコードがデカい!しかも なんとなくウソ臭い!(^_^; しかしボーダフォンV601NQRコードを認識してみたら…

認識した!

読めた!なんかよく分からないけど、とりあえず嬉しい!後半(MSXの実機上でQRコードを生成する)へ続く。
↓ 続きはこちら ↓

gigamix.hatenablog.com