「プチコンmkII」で懐かしむ「レトロPC」の世界思い出をカタチに(2/3 ページ)

» 2012年05月16日 08時00分 公開
[瓜生聖,ITmedia]

プチコンでよみがえるレトロテクニック

 レトロPCでホビープログラミングにいそしんでいた人たちには、さまざまなテクニックの蓄積があるはずだ。当時のテクニックといえば、貧弱なハードウェア上でいかにして高速に処理を行うか、いかにして大量のデータを扱うか、という2点が中心だった。

 キャラクターの重ね合わせ処理、高速多重スクロール、アニメーション、瞬間画面表示という課題に対し、プレーン分解による重ね合わせ、テキスト画面によるマスク、パレットアニメーション、PUSH/POP命令を利用した16ビット転送、ループの展開、FDCとのハンドシェークの簡略化、インタリーブフォーマットによるディスクアクセス高速化などなど、数十〜数百キロバイトの中に詰め込まれた叡智(えいち)は芸術の域に達する。

 これらのテクニックの中にはプチコンでも利用可能なもの、同じ考え方が応用できるものもある。DSi/3DSに搭載された専用ハードウェアの機能、それに対応するプチコンのコマンド・機能をいかに使ってプログラムを作るか、といった実装方法についてはさまざまな工夫を盛り込める余地がある。そしてそれこそがレトロPCホビープログラマの真骨頂でもある。

 例えば、暗闇に浮かび上がってくる“魔の元凶”を表現するにはパレット操作が利用できる。パレットとはGIF画像などで採用されているインデックスカラーと同じような仕組みで、それぞれのパレット番号に対してRGB値で指定した色を定義し、各ピクセルに対してはパレット番号を介して色を指定するというものだ。パレットを変更すると描画済みのグラフィックスもすべて色が変わるので、高速に全体を書き換えることができる。

パレット操作によるフェードイン。画面は「イース2」。(C)Nihon Falcom(画面=左)。パレット操作によるアニメーションの例。1色(青・黄)をつぶし、3パレット分を使ってアニメーションする。画面はスクウェア(現スクウェア・エニックス)のWill。(C)SQUARE ENIX(画面=中央)。プレーン分解による重ね合わせ処理。地上物に1プレーン、空中物に2プレーンを割り当てる。画面はエニックス(現スクウェア・エニックス)のアルフォス。(C)SQUARE ENIX (C)NAMCO (C)K.Morita(画面=右)

 さらにはフェードインだけではなく、パレットによって数コマのアニメーションを実現したものもある。そのテクニックをそのまま使うこともできるが、上下画面分の非表示グラフィックス画面を使って切り替える、それぞれのコマの画像をグラフィックス画面に置いてコンソール画面やBG画面でマスクしておくなど、プチコンで利用できるテクニックは多い。さらに、ハードウェア性能が上がったために有効となったテクニックもある。例えば、アニメーションのために都度、グラフィックス画面全体を本体メモリから読み直しても20fps程度は出せるようだ。

背景に青・黄、キャラクタに白・赤・黒は表現性の高い組み合わせでほかのゲームでも利用されている。画面は日本ファルコムのザナドゥ。(C)Nihon Falcom(画面=左)。地上物に2プレーン(赤・緑・黒・白)、空中物に1プレーン(白)という珍しい例。画面はエニックス(現スクウェア・エニックス)のゼビウス。(C)SQUARE ENIX (C)NAMCO(画面=右)

 また、2枚のBG画面、優先度に自由度のあるスプライトもアプローチの幅を広げてくれる。BG画面の表示部分は256×192ピクセルだが、BG画面自体は512×512ピクセルあり、表示部分よりもはるかに広い。実際にどの部分を表示するかはピクセル単位で指定する。そのため、キャラクターの配置は8ピクセル単位だが、表示する際に1ピクセル単位で調整することができる。あらかじめBG画面に全体の絵を描いておき、表示位置(オフセット)を上にずらしていけば表示としては下にスクロールしていくことになる。

 さらにこのオフセットの操作(BGOFS)では「何フレームかかって新しい位置に移動させるか」という指定ができるので、本来バックグラウンド処理ができない、リソースを読み込みながらスクロールさせる、といったことが可能になる。さらに2枚のBG画面をダブルバッファのように使えばバギュ=バデットからイースまで一気にスクロールできるだろう。

BG画面は表示部分よりもはるかに広い。オフセットを操作することで表示上は逆方向にスクロールする(画面=左)。多重スクロールの例。奥・中間・手前に柱がある。奥の柱は動かないが、手前の2つの柱は異なる速度で横スクロールし、さらに手前と中間の柱の間にモンスター、主人公、テキストが表示される。主人公だけで8色使い切ったフルカラー画面であることも当時は驚異的だった。画面は日本ファルコムの「ワンダラーズ・フロム・イース」(C)Nihon Falcom(画面=右)

 ところで、プチコンmkIIのBASICの仕様以外で大きな追加機能の1つがQRコードの読み込みだ。これによってプログラムの配布が可能となっただけでなく、有志の手によって「リソースファイルの取り込み」が可能になった。あおごん氏作のプチコン用画像コンバータ「DSPCBMP」は、BMPファイルをプチコンのキャラクターデータ、カラーパレットデータ、グラフィックスデータのPTCファイルに変換する。PTCファイルはスマイルブームのWebサイトにあるQRコード変換ツールでQRコード化した後、プチコンmkIIに取り込むことができる。

 なんだか回りくどい、と思われたかもしれない。プチコンでは基本的にリソースファイルやプログラムファイルは、本体メモリ内に配置される。メニューには「SDメモリーカード書き込み」というものがあるが、これはQRコードに変換するための一方向の機能であり、SDメモリーカードから読み込むことはできない。ニンテンドーDSi/3DS用のソフトウェアとして、レギュレーションの範囲内でユーザーの利便性を追求した結果だろう。

プチコン用画像コンバータ「DSPCBMP」を配布しているあおごん氏のWebサイト(画面=左)。スマイルブームのWebサイトにあるQRコード変換ツール(画面=中央)。QRコードに変換したところ。これをプチコンmkIIで読み込むと本体メモリにファイルとして保存される(画面=右)

プチコンmkIIでのプログラム・リソースの流れ。SDメモリーカードへの書き込み機能は、あくまでQRコードに変換するためのもので、SDメモリーカードに書き込んだプログラム・リソースを読み取る機能はない。そのため、プチコンmkIIにプログラム・リソースを読み込むにはQRコード読み込みしかない(画面=左)。画面全体をグラフィックス画面として、目の部分をスプライトとして取り込む。画面はスクウェア(現スクウェア・エニックス)の「Will」。(C)SQUARE ENIX(画面=中央)。実際に取り込んだところ。この上にスプライトを重ねて表示するといわゆる目パチアニメーションの完成。(C)SQUARE ENIX(画面=右)

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2024年04月25日 更新
  1. ワコムが有機ELペンタブレットをついに投入! 「Wacom Movink 13」は約420gの軽量モデルだ (2024年04月24日)
  2. 16.3型の折りたたみノートPC「Thinkpad X1 Fold」は“大画面タブレット”として大きな価値あり (2024年04月24日)
  3. 「IBMはテクノロジーカンパニーだ」 日本IBMが5つの「価値共創領域」にこだわるワケ (2024年04月23日)
  4. Googleが「Google for Education GIGA スクールパッケージ」を発表 GIGAスクール用Chromebookの「新規採用」と「継続」を両にらみ (2024年04月23日)
  5. 「社長室と役員室はなくしました」 価値共創領域に挑戦する日本IBM 山口社長のこだわり (2024年04月24日)
  6. バッファロー開発陣に聞く「Wi-Fi 7」にいち早く対応したメリット 決め手は異なる周波数を束ねる「MLO」【前編】 (2024年04月22日)
  7. ロジクール、“プロ仕様”をうたった60%レイアウト採用ワイヤレスゲーミングキーボード (2024年04月24日)
  8. あなたのPCのWindows 10/11の「ライセンス」はどうなっている? 調べる方法をチェック! (2023年10月20日)
  9. ゼロからの画像生成も可能に――アドビが生成AI機能を強化した「Photoshop」のβ版を公開 (2024年04月23日)
  10. MetaがMR/VRヘッドセット界の“Android”を目指す 「Quest」シリーズのOSを他社に開放、ASUSやLenovoが独自の新ハードを開発中 (2024年04月23日)
最新トピックスPR

過去記事カレンダー