[戻る]

一家に一台ファミリーベーシック

ファミリーベーシックをご存知でしょうか。 ファミリーベーシック(以下ファミベー)とは、 ファミコン上で BASIC 言語でゲームを作る事が可能な開発環境で、 任天堂が開発販売していたものです。 1984 年発売、知る人ぞ知る、マイナーグッズです。

ゲーム開発環境としてはあまりにもチープなものですが、 限られた中でどういったものを作っていくかというパズル的な要素があり、 当時のパソコン少年予備軍は、ファミベーにむしろ熱中したのでした。

ファミリーベーシックの概観

ファミベーは、専用カートリッジと、 コントローラー端子に接続するキーボードの2点で構成されています。 一式接続すると、写真に示したような状態になります。

接続完了! 中央に見えるのが専用キーボードです。 左手に見えるのがファミコン本体。 V3 のカートリッジが刺さっているのが確認いただけるかと思います。 右手に見えるのは、専用データレコーダーです。

キーボード下に見えるファミコン・コントローラーですが、 A B ボタンの辺りに、 壮絶なコスリ連射の痕跡が見受けられます。

箱入りの図 こちらは保存用の未開封のフルセットです。 この中には、1984 年の空気がそのままに詰まっています。

ところで、ここ数年になってパソコンを触りはじめた人は、 専用データーレコーダーって言っても、通じないんでしょうか・・・。 昔々、ハードディスクもフロッピーディスクも無かった(又は高価だった)頃、 パソコンのデータはカセットテープに音の信号として録音することで 保存していたのです。ピーガーギャギャギャーゲーとか、凄い音がしたものです。

起動画面 ファミリーベーシック V3 の起動画面です。
NS-HUBASIC V3.0
(c)NINTENDO/SHARP/HUDSON
4086 BYTES FREE
OK
と表示されています。

なんかこう、たぎるモノを感じないでしょうか?? テメーだけだって? こりゃ失礼。

ファミリーベーシック と 私 と ビュンビュンレーザー

確かにファミベーは、 あまりにもチープな環境ではありました。 しかし、市販のファミコン移植系グラディウスに満足が出来なかった筆者は、 敢えてファミベー上に、グラディウスモドキ を作成することを試みました。 敢えて、といいますか、貧乏なので手元にファミベーしか無かったからなのですが。

ファミベー上でのゲーム作成。 困難に次ぐ困難。そして開発着手から 1 年。
アセンブラから自作し、ファミリーベーシックセルフ開発により、ついに完成。

ファミコン至上初の真っ当なレーザーを実現。
弾幕、巨大ボス群、多重スクロール、あっちょー!

画面写真 画面写真
画面写真 画面写真

Download NES ROM image file

PAUSE 機能が搭載されていないので、画面写真が乱れてます。

本作は、マイコンベーシックマガジン(93年5月号)にて ベストプログラマー作品に選ばれ、Dr.D に 「怨念めいている」 とのコメントをいただきました。

ファミリーベーシック で 動体視力を鍛える

ゲームセンターでは、 動体視力を養うためお金がかかって困るという、 筆者の当時の経済的事情から、 ファミベー上にマゾ系 STG を量産して、 自給自足で練習していました。

以下の画面写真は、1990 年の作品「メタルさ!伊藤」より。 STG のボス戦だけを容量の許す限り詰め込んだという内容でした。

画面写真 画面写真
画面写真 画面写真

Download NES ROM image file

全部で 6 種のボスキャラが用意されており、周回が上がると発狂度が上昇します。 バランス調整に随分時間をかけた記憶があります。

続いて、1991 年の作品「V.V 電電」。 セイブ開発の雷電みたいなのをやろう!と思い立ったものの、 バージョンを重ねるごとに程遠いものとなり、 バージョン5にしてリリースされた時には、 全くの別物となっていました。

画面写真 画面写真
画面写真 画面写真

Download NES ROM image file

最大表示敵弾数という観点からでは、 一連の作品の中でも最も秀でている作品です。 でも画面がちょっと寂しい仕上がりとなってしまいました。

ファミベーの制約事項

ファミベーは、ゲーム開発環境としては非常にチープです。 どのような制約があるか、ここにまとめます。
  • メインメモリが異様に少ない

  • 初期バージョンで 2K バイト。 後継バージョン(V3 と呼ばれる)でも 4K バイトしかありません。

    後の調査で分かったことなのですが、 ファミベーのメインメモリは、 ドラクエ III 以降の SAVE 用メモリと、同じ仕組み、同じ容量のものでした。 つまり、 作成可能なプログラムのサイズは、 ドラクエ III の復活の呪文保存用の RAM に収まるサイズ以下 ということです。

    従って、泥沼のメモリ稼ぎを強要されます。正規の空きメモリだけではなく、 インタプリタ用のワーク領域、ファンクションキー定義領域、スタックの深い場所 (といっても、スタック自体 256 バイトしかないですが)などなど、 ありとあらゆるメモリ領域を総動員しなければなりません。

  • 8*8 dot スプライトが画面上に 64 個まで表示可能

  • スプライトは 8*8 dot サイズのものが画面上に 64 個までしか出せません。 本来ファミコンは 8*16 dot サイズもサポートされているのですが、 ファミベーからは扱えませんでした。

  • キャラクターのグラフィック情報書き換え不可能

  • キャラクターのグラフィック情報は ROM 上に乗っており、書き換え不可能でした。 マリオ、カメさん、カニさん、ハエ、そしてニタニタ。 コイツらを使う事を余儀なくされます。

    これらの既存のグラフィックを、パーツ単位(8*8 dot 単位)で分解・再合成することで、 例えばニタニタの顎を上下反転してロボの頭部に流用するというように、 工夫をしていく必要がありました。

メモリはこうやって稼げ

ファミベーと言えばメモリ稼ぎです。

一体どれほどの資料価値があるのか、いささか不明ですが、 ファミベーでのメモリ稼ぎテクニックを一挙公開です。
  • 省略可能な記述を知れ

  • ファミベーには、省略可能な記述がいくつか存在します。

    まず、命令を区切るコロン(:)。これは存在しなくても動作します。 但し、新規行作成の際に、 コロンを省くことによってインタプリタが解釈できない記述である場合は、 省略不可能になってしまいます。

    次に、IF 文の THEN。これも省略できてしまいます。 これを略すと、Dr.D に叱られますが、躊躇していてはいけません。

    このようにしてガチガチに切りつめたコードは以下のような記述になります。
    	100 S=STICK(0)
    	100 IFS AND1X=X+1IFX>240X=240
    	110 IFS AND2X=X-1IFX<0X=0
    	120 IFS AND4Y=Y+1IFY>208X=208
    	130 IFS AND8Y=Y-1IFY<16Y=16
    S と AND の間にスペースがあるのは、 これをなくしてしまうと SAND という変数名と解釈されてしまうためです。 スペース分のメモリをロスしますが、断腸の思いで妥協せざるを得ません。

  • 使用する変数は必用最小限に留める

  • 変数を1個使用するごとに、何バイトずつかは失念しましたが、 メインメモリを消費します。変数の使用は必用最小限にしましょう。

    また変数名はなるべく 1 文字にします。 その方がメモリ消費量は少なくなるからです。 1 文字変数を多用しすぎると、 やはり Dr.D に叱られますが、躊躇してはいけません。

  • 禁断の空きメモリを活用する

  • ベーシックインタプリタがワークとして使っている領域の中には、 プログラム実行中は使用されていない領域が存在します。 また、特定の機能や操作をしない限りは、空き領域となっている 領域が多く存在します。これらを残さず動員します。

    記憶に基づき、それらを列挙します。

    • $22 $23 $2F $31 $43 $F1〜$FF

    • CPU6502を用いる以上、何としても有効活用したい0ページメモリですが、 インタプリタがフル活用している関係から、 ユーザーが触れそうなのはここに列挙したモノのみです。

    • $100〜$1FF

    • CPU6502 がスタック領域として用いている場所です。 スタック領域は、GOSUB 1 重で 8 バイト、FOR〜NEXT 1 重で 14 バイト消費します。 これらの命令のネストがなるべく深くならないように注意すれば、 スタック領域の末端部分を空き領域として活用できます。 しかし、いつ上書きされるかわからないので、非常に危険な領域であると 言えます。

    • $200〜$2FF

    • ファミリーベーシックでは、この領域をスプライト表示用に使っています。 ですが、スプライト表示を OFF にすれば、 一時的にテーブルを作成するような用途で活用できます。 ゲームではあまり使えません。 筆者はこの領域を、自作アセンブラのワークに利用していました。

    • $300〜$3FF

    • 新しい行を作成する時の、中間コード作成のために用いられています。 新しく行を作成しない限り、空き領域となります。 ゲーム動作中のワーク領域として使うのに非常に適しています。

    • $400〜$47F

    • データーレコーダーからプログラムを LOAD する時に、 そのファイル名が格納されます。 それ以外の用途で使われているのを確認した事が有りません。 この領域も、ゲーム動作中のワークとして使えます。 保守性が高いので、コードを置くのに適しています。 ただ、先頭 16 バイトほどは触るとまずかったような記憶があります。

    • $480〜$48F

    • ファンクションキーの定義内容が格納されています。 16 バイト置きに、F1〜F8 の内容が並んでいます。 ですが、ファンクションキーの内容は、せいぜい数文字なので、 末端の数バイトは空き領域になっています。 不連続で細切れなのが難点ですが、使えない事はありません。

    • $600〜$6FF

    • MOVE 命令関係のワークのようです。 MOVE 命令を使わなければ完全に空き領域となります。 ところが、インタプリタが度々初期化するようなので注意が必用です。

    • $700〜$7FF

    • 文字列を扱う場合に、加工に用いられる領域です。 文字列を使わないプログラムなら、ここは完全な空き領域となります。 なお、LIST を取る時にも、ここが使われているので注意です。

    はい。グっと来ましたね?

    いずれも、インタプリタを解析した結果の判断ではないので、 ここに書かれている内容は無保証です。

ファミリーベーシック復活を願って・・・

制限が多いとか、子供だましだとか、色々書いてますが、 初めてゲームを作って見みようという人達、 特に小学生ぐらいの年代の人達に取って、 ファミベーは格好のコンピュータ学習環境でした。

ファミベーは、 子供向けで有る事を全面に押し出していた数少ないパソコンでした。 子供向けの平易な解説書も沢山出ていましたし、 当時のファミコンマガジン(ファミマガ)等でも、 漫画を交えた解説記事が載っていたように記憶しています (残念ながら私は、現役ユーザーとしてそれを体験できませんでしたが・・・)。 解説記事の漫画に登場するパソコン少年が、 オリジナルゲームをチャカチャカ作っている様子を、 「なんてうらやましい奴なんだろう!」などとマジで思いながら、 読んでいた様に記憶しています (内容自体は当時の自分には難解でさっぱり)。

ではここで、 当時の様子を知る事が出来る関連グッズの写真を交えてつつ、 ふりかえってみましょう。

レアグッズである これは徳間書店から発売されていた「ゲームポシェット1」。 1985 年発売。 ファミベーのゲームプログラムが 24 本入ったテープと、 その解説記事が収録されている冊子がセットになっています。

写真右は冊子の裏表紙です。
「やったー!全 24 ゲームクリアーだ!!」
と、テープを握り締めガッツポーズでジャンプしている少年の姿が描かれています。
レアグッズである 冊子の中身はこんな様子です。 巻頭カラーにゲーム画面と内容がカラーで広く浅く説明されています。

画面右は「ペンペンの大要塞」、左は「どんぴしゃスロット」 というゲームです。
レアグッズである これはゲームを説明している解説ページ。 全編に渡って漫画が用いられています。

チープなゲームを、 さも本格的なゲームのように無理やり紹介する、 ちょっと無理のある内容。

なんか、絵が濃ぃです。
と思ったら、 後にメタルスレイダーグローリーの原画を担当する 「よしみる」氏によるものでした。
レアグッズである これはソースコードの解説ページ。 1 行単位で解説されているという気合の入り様です。

でもよーく読んでみると、誤解を招きかねない部分も多いです。 IF とは何か? GOTO とは何か?と言った解説は一切なされていません。
レアグッズである これは、同 1985 年にハドソンから出ていた 「少年メディア 2 ロードランナー・ワールド」。

ファミコン版ロードランナーのステージエディット機能で作られた、 ユーザーの作品を、テープメディアにまとめて冊子とともに売っていたというものです。 データを読み込むためには、ファミベーが用いられます。

おまけのページには、 ファミベーのゲームが収録されており、 解説記事が付いています。

写真は、巻頭カラーの「ロードランナー物語」。 従来バージョンの 50 ステージをクリアした主人公ロードランナーが、 チャンピオンシップ版にトライするというストーリー。 写真は、罠に引っ掛かってしまった主人公が、 チャンピオンシップ・ロードランナーに助けられたシーン。
「君のパワー・スピード・テクニックは確かに素晴らしい・・・。 だがそれだけではこの複雑な迷路はクリアできない! (びしっと主人公を指差すチャンピオンシップロードランナー)」
熱すぎる・・・。
ファミベーのページもおおむねこのノリです。

まさにコロコロコミック・テイスト。 当時のファミベーが目指した路線はまさに、 現在(と言うにはもう下火だけど)のミニ四駆ブームに代表されるような、 コロコロコミック文化に似たものなのでした。

しかし、肝心のファミベーで動作するゲームは、 どれもつまらないものでした。 それは至極当然の結果で、 まともに遊べるゲームを作るには、 それなりのスキルも必用ですし、 またファミベーはそれに耐えられる設計とはなっていなかったのでした。

一部のコアユーザーは、マシン語に手をだし、 色々トリッキーな事をやったりもしました。 それに追従した雑誌もあったようですが、 いずれもハッカー向けの切り口で、 ゲーム作りとは掛け離れた内容でした。

もったい無い。実にもったい無い。 これだけの好条件がそろっていたのに、実にもったい無いです。 ミニ四駆的地位には、遠く及びませんでした。 第一、わざわざ自分でゲームを作らなくても、 ファミコン上には面白いゲームが沢山ありました。

結局それ以降、ファミベーに取って代わる環境があったのかというと、 そうでは有りませんでした。機能面を取ってみても、 3 色以上のスプライトを、真っ当にドット単位で動かす事が出来る、 パソコンはほとんど有りませんでした。 実に、ついに X68000 シリーズ等の高価なパソコンが出現するまで 待たなければならなかったのです。

ゲーム業界人となってしまった身として言える事。 それはファミベーがこの業界に与えた影響は、多大であったという事です。 ファミベーから入ったという人が、この業界には沢山居ます。 私もその一人です。 もしファミベーが発売されていなかったなら、今の業界はまた違った様相を 呈していた事でしょう・・・。

メーカーサイドには、先行投資だと思って、 ポストファミベーと言えるモノを頑張って提示していって欲しいものです。 回りまわって、次世代の人材を養う事につながるわけですから。

でも、それをどうやって軌道に乗せていくかが、一番の問題なんですよね。

[戻る]