こんなの見つけました。
ニンテンドー3DSを取り出して「プチコンmkII」を立ち上げる。カメラが起動し、次々とQRコードを読み取っていく。そしてRUN。画面には赤、青、黄、緑の特徴的な4色で描かれるタイトル画面が現れた。某氏の自作ゲームだった。【画像:プチコンmkIIでのプログラム・リソースの流れ、ほか】 TwitterにQRコード、ネットプリントにカメラ内蔵携帯ゲーム機と、現代のテクノロジーづくしの風景だが、微妙にオンラインからはみだしたコミュニケーションと手作りのプログラムは、古き良き「レトロPC」の時代を感じさせる。そう、あのころパソコンは夢の機械だった。 「レトロPC」は、元々RetroPC Foundation代表世話人である高木啓多氏(森瀬繚氏)の造語だ。氏の想定するレトロPCは「国産非AT互換パソコン」だが、すでに一般化された感があり、人によって対象範囲が異なっている。画像:プチコンのグラフィックスレイヤー、ほか(http://plusd.itmedia.co.jp/pcuser/articles/1205/16/news012.html) 「1980年代の国産8ビットPC」だ、という声もあれば、「ならば16ビットのぴゅう太はどうなる」「海外製のZX-81、VIC-1001を外すのはおかしい」「PC-9801が一番売れたレトロPCだろ」「16ビットまでは含めないとX68000が入らない」「いやいやFM-TOWNSがあるんだから32ビットまでにしなきゃ」「Windowsが走るのにレトロPCはないだろ」「MSXは共通規格だから邪道」「ファミリーベーシックも入れるべき」「それゲーム機のソフトじゃないか」「じゃあBASICをROMで搭載しているPCということに」「クリーンコンピュータなめるな」など、反論は尽きない。結局のところ、レトロPCとはそこに「ノスタルジー」を感じるかどうかなのかもしれない。 とはいえ、レトロPCとして誰もが認め、かつ、メインストリームと見なされるであろうシリーズはいくつかに絞られる。NECのPC-8801、富士通のFM-7、シャープのX1などだ。電波新聞社(マイコンソフト)やエニックス(現スクウェア・エニックス)、ハドソン(現コナミデジタルエンタテインメント)などからリリースされたゲームは、これら3シリーズに対応したものが多かった。 性能としてはどれも似たようなもので、Z80や6809などの8ビットCPU、クロック数は2~4MHz、64キロバイトのメモリ空間、640×200ピクセル同時8色、PSGやFM音源を搭載する。しかし、メーカー間の互換性はなく、むしろ積極的に差別化を図っている。 この前時代のPCが好事家を魅了してやまない理由はさまざまだろう。 貧弱なハードウェアなのにアーケードから無茶な移植を行われたゲームにそそられる人もいる。PC-6001mkII版のスペースハリアーは敵がすべて四角で表示されるという仕様だが、大方の予想に反して「すばらしい」という意見が多い。 ハードウェアの独自性と、ソフトウェアのアクロバティックなまでのテクニックにひかれる人もいる。その両方とも現在の高度に発達したコンピュータ界隈では目にすることがなくなったものだ。ハードウェアはWindowsとMacに収斂(しゅうれん)し、ソフトウェアは高度なアルゴリズムによって一般人の理解を超えてしまった。我々が日常的に利用しているSSL、MP3やJPEGのアルゴリズムを理解できる人は少数派だろう。どれも数学の素養がなければ到底理解できるものではない。 一方、レトロPC時代のソフトウェアで利用されているテクニックやフォーマットは仕様を知れば「ああなるほどね」と理解しやすいものが多い。タイリングペイントの画像に特化したMAG形式、ディスクアクセスや画面クリアの高速化など、それらのテクニックは「とんち」のような一面を持つ。現在のOSでは高度なアルゴリズムを意識せず、簡単に使えるようになっているが、ブラックボックス化しているのもまた事実だ。そこに「パソコンが自分の手から離れてしまった」と感じるレトロPC愛好家は多いはずだ。 そんな人は是非、ニンテンドーDSi/3DSとプチコンmkIIを手にとっていただきたい。●あの日、そのままの延長線 プチコンmkIIは、スマイルブームから発売されているニンテンドーDSi/3DS用のBASIC「プチコン」の後継製品だ。ダウンロード販売されており、価格は800DSiポイント(800円)。もともとレトロPCマニアをターゲットにしているプチコンシリーズは、オブジェクト指向や複数行IF文といったモダンな文法を取り込むことなく、当時のBASICにかなり近い文法を採用している。しかし、ニンテンドーDSi/3DSという携帯ゲーム機そのものがプラットフォームというだけあって、表現力と高速性に優れた機能が満載となっている。その1つがグラフィックス機能だ。 プチコンのグラフィックス画面は5層構造になっている。最も下層にあるのが単色の背景画面で、事実上、単なる背景色にすぎない。2層目はグラフィックス画面。線を引く、色を塗る、といったLINE&PAINTなどの描画対象となる画面だ。このグラフィックス画面は上下合わせて4ページ分あり、ダブルバッファとして利用できる。3層目と4層目はBG画面で、8×8ピクセル単位で作成したビットマップのタイルを並べられる。そして、最も上にあるのがコンソール、つまり文字が表示される画面になる。さらに自機・敵機、弾などを表現するスプライトも利用可能だ。スプライトはコンソール画面上含め、グラフィックス画面以上のどこにでも配置できる。 グラフィックス画面とコンソール(テキスト画面)が別レイヤーになっている点は、レトロPCの経験者であれば「ああ、そうだった」とピンとくるだろう。その一方で、BG画面にはなじみのない人が多いかもしれない。プチコンのBG画面は8×8ピクセルで描かれたキャラクターを表示するための画面だ。これはPCG(Programmable Character Generator)と考えると分かりやすい。表示画面は32×24ブロック(256×192ピクセル)だ。 スプライトも16×16ピクセルで512種類分(128x128ピクセルを8枚分)を定義でき、同時に100個を操作できる。これらのリソースはキャラクターデータ、BG画面データ、グラフィックスデータ、といった種類ごとにファイルに書き出し、読み込みが可能だ。プログラム内で読み込むことができるので、各面ごとに登場敵キャラのデータを差し替えることも難しくない。 また、グラフィックスと並んでサウンド機能も充実している。プチコンmkIIではTALKコマンド(音声合成)、MMLにも対応し、BGM、効果音、音声合成合わせて16音が同時発音可能になった。プリセットで効果音70種類、BGM用の楽器音色128種類、ドラムセット2種類、BGM30曲が用意されている。●プチコンでよみがえるレトロテクニック レトロPCでホビープログラミングにいそしんでいた人たちには、さまざまなテクニックの蓄積があるはずだ。当時のテクニックといえば、貧弱なハードウェア上でいかにして高速に処理を行うか、いかにして大量のデータを扱うか、という2点が中心だった。 キャラクターの重ね合わせ処理、高速多重スクロール、アニメーション、瞬間画面表示という課題に対し、プレーン分解による重ね合わせ、テキスト画面によるマスク、パレットアニメーション、PUSH/POP命令を利用した16ビット転送、ループの展開、FDCとのハンドシェークの簡略化、インタリーブフォーマットによるディスクアクセス高速化などなど、数十~数百キロバイトの中に詰め込まれた叡智(えいち)は芸術の域に達する。 これらのテクニックの中にはプチコンでも利用可能なもの、同じ考え方が応用できるものもある。DSi/3DSに搭載された専用ハードウェアの機能、それに対応するプチコンのコマンド・機能をいかに使ってプログラムを作るか、といった実装方法についてはさまざまな工夫を盛り込める余地がある。そしてそれこそがレトロPCホビープログラマの真骨頂でもある。 例えば、暗闇に浮かび上がってくる“魔の元凶”を表現するにはパレット操作が利用できる。パレットとはGIF画像などで採用されているインデックスカラーと同じような仕組みで、それぞれのパレット番号に対してRGB値で指定した色を定義し、各ピクセルに対してはパレット番号を介して色を指定するというものだ。パレットを変更すると描画済みのグラフィックスもすべて色が変わるので、高速に全体を書き換えることができる。 さらにはフェードインだけではなく、パレットによって数コマのアニメーションを実現したものもある。そのテクニックをそのまま使うこともできるが、上下画面分の非表示グラフィックス画面を使って切り替える、それぞれのコマの画像をグラフィックス画面に置いてコンソール画面やBG画面でマスクしておくなど、プチコンで利用できるテクニックは多い。さらに、ハードウェア性能が上がったために有効となったテクニックもある。例えば、アニメーションのために都度、グラフィックス画面全体を本体メモリから読み直しても20fps程度は出せるようだ。 また、2枚のBG画面、優先度に自由度のあるスプライトもアプローチの幅を広げてくれる。BG画面の表示部分は256×192ピクセルだが、BG画面自体は512×512ピクセルあり、表示部分よりもはるかに広い。実際にどの部分を表示するかはピクセル単位で指定する。そのため、キャラクターの配置は8ピクセル単位だが、表示する際に1ピクセル単位で調整することができる。あらかじめBG画面に全体の絵を描いておき、表示位置(オフセット)を上にずらしていけば表示としては下にスクロールしていくことになる。 さらにこのオフセットの操作(BGOFS)では「何フレームかかって新しい位置に移動させるか」という指定ができるので、本来バックグラウンド処理ができない、リソースを読み込みながらスクロールさせる、といったことが可能になる。さらに2枚のBG画面をダブルバッファのように使えばバギュ=バデットからイースまで一気にスクロールできるだろう。 ところで、プチコンmkIIのBASICの仕様以外で大きな追加機能の1つがQRコードの読み込みだ。これによってプログラムの配布が可能となっただけでなく、有志の手によって「リソースファイルの取り込み」が可能になった。あおごん氏作のプチコン用画像コンバータ「DSPCBMP」は、BMPファイルをプチコンのキャラクターデータ、カラーパレットデータ、グラフィックスデータのPTCファイルに変換する。PTCファイルはスマイルブームのWebサイトにあるQRコード変換ツールでQRコード化した後、プチコンmkIIに取り込むことができる。 なんだか回りくどい、と思われたかもしれない。プチコンでは基本的にリソースファイルやプログラムファイルは、本体メモリ内に配置される。メニューには「SDメモリーカード書き込み」というものがあるが、これはQRコードに変換するための一方向の機能であり、SDメモリーカードから読み込むことはできない。ニンテンドーDSi/3DS用のソフトウェアとして、レギュレーションの範囲内でユーザーの利便性を追求した結果だろう。●レトロプログラミングの醍醐味(だいごみ)を楽しむ プチコンの用途として、ニンテンドーDSi/3DSで動くオリジナルプログラムの作成があるのはいうまでもない。レトロゲームの場合、単に遊ぶだけであればリメイク作品やバーチャルコンソールなど、本物にかなり近いものを安価に入手できることも多く、作るなら自作のオリジナル作品、という考えは至極もっともだ。 だが、レトロゲームの“勝手移植”というのもプチコンを楽しむ1つのジャンルとして存在する。それはオリジナリティやクリエイティビティが欠落した行為なのではなく、「ハードウェアの相違をどうやって解決するのか」という知的パズルに近い娯楽だ。しかもプチコンは大抵のレトロPCを凌駕(りょうが)する機能・性能を搭載している。当時の凄腕プログラマでなければできなかったことを専用ハードウェアの機能をうまく使うことでエレガントに、高速な処理能力によって力ずくで実現することができる。 もっとも、著作権上、勝手移植は個人で楽しむにとどめざるを得ない。もちろん、権利者の許諾が得られれば不特定多数への配布も問題はないが、権利者からしてみれば「面と向かってきかれればNGと答えざるを得ない」し、内心は歓迎であっても発言が一人歩きする危険性を考えると、うかつなことは言えないだろう。利用者の視点では「こんなことで損をするわけでもないだろうに……」と思いがちだが、「損をしないから」が企業の行動理由とはならないことを肝に銘じつつ、あくまで個人の範囲で楽しむのがよいだろう。 遠い昔にBASICをかじっていた人、BASICの速度に絶望し、アセンブラで挫折して涙した人、検索窓に「プチコン イース2 OP」と打ち込んで「まだ間に合う」と思った人は、ぜひ挑戦してほしい。[瓜生聖,ITmedia]
この記事の著作権は、下記の引用元に帰属します。
http://headlines.yahoo.co.jp/hl?a=20120516-00000078-zdn_pc-sci
いろんなタイプがあるんですね。