ファミリーベーシック
テンプレート:Pathnav テンプレート:Infobox コンシューマーゲーム機 ファミリーベーシックとは、任天堂のファミリーコンピュータの周辺機器の一つ。BASIC言語を組み込んだロムカセットと、ファミコン本体のエキスパンドコネクタに接続するキーボードの2点がセットになっている。
概要
仕様
前述の2点をファミコン本体に接続することにより、BASICの文法に基づいた簡単なゲームプログラムを自作することができるようになる。組み込まれているプログラミング言語の固有称は、ハドソン(現・コナミデジタルエンタテインメント)開発のHu-BASICを元に、任天堂、シャープとの3社共同開発だったことから頭文字を付け、「NS-Hu BASIC」とした。ただし、最終的にはファミコンに大幅に特化したため、パソコン用のHu-BASICとは大きく異なる[1]。
プログラム実行のために使えるメモリ容量は1,982バイト、バージョンアップ版の「ファミリーベーシックV3」では4,096バイトであり、カートリッジ内にSRAMで実装され、乾電池によってバックアップすることが可能になっている。
キーボードの配列は、アルファベットに関しては現在のパソコンやタイプライターと同様のいわゆる「QWERTY配列」だったが、カナ配列に関しては現在の一般的なキーボードと異なり五十音順に並んでいる[2]。
機能
メインモードである“GAME BASICモード”でゲームプログラミングを行う。それ以外にも計算式入力による電卓機能の“カリキュレータボード”、音階入力による音楽制作機能の“ミュージックボード”、ワードプロセッサのような機能を持つ“メッセージボード”、バイオリズムに基づいた簡単な占いと生誕からの総経過日数の算出をする“占い”の4つの機能が内蔵された。
また、各モードに移行するイントロダクション画面もまるでコンピュータが話しかけてくれるような親しみやすい画面に作られている。これはファミコンのユーザーが小学生中心だったことから、ベーシックに触れるにあたりいきなりハードルが高くなり過ぎないようにとの配慮と考えられる。
「ゲーム制作体験のためのBASIC」という方向性と、そのハードウェア仕様によって、一般的なBASICとは、異なる部分を多く含む。GAME BASICモードでは整数演算のみで小数点以下切り捨て、扱うことのできる整数の範囲も−32768〜+32767、文字列の長さは31文字まで、ドット描画機能なしといった機能制限がある。その一方で、あらかじめ定義されているキャラクター群を自由に組み合わせることにより非常に簡単にスプライトキャラクターや背景画を作ることができ、煩雑で面倒になりがちな作業を一手に引き受ける簡易性がファミリーベーシックの大きな特徴となっている。ステートメントや関数など、必要となる標準的なBASIC言語命令も大方備わっている他、直線的な動きであれば簡単にスプライトキャラクターを定義し動かせる MOVE
命令など、独自の命令が多数備わっている。
しかし、キャラクタセットは、ROMにあらかじめ定義され変更できず、用意されたキャラクタの分割、反転などによってパーツ単位で再生成するなどの工夫を迫られ、ピクセル単位での描画機能は、グラフィックスプレーンを持たず、BGプレーンにパーツを配置するファミコンでは提供されていないうえ、BGのパターンは前述のとおりROMに固定されているため、不可能であった。元々多くをROM上に置く設計であったため、本体側の主記憶も少なくカートリッジ上の物を足しても、実際にプログラムを書き込める容量が非常に少ないこともまた、特徴的な制限のひとつである。
素直に記述したBASICのプログラムでは、遊べるゲームを作ることは大変困難ではあったが、コンシューマ機用のツールで削除されがちなPEEK
、POKE
、CALL
などメモリに直接アクセス可能にする命令もあり、機械語を駆使してファミコンの機能を引き出したゲームも存在している。これに関しての詳細や応用の仕方はセット添付の取扱説明書や公式の解説書には書かれていないが、当時のファミコン雑誌やゲームプログラミング雑誌ではファミリーベーシック自作ゲーム投稿コーナーなどでこれを用いた様々な応用法が紹介された。それら媒体や活用例の流布によってコアなユーザーへ情報として伝わった。公式に利用可能なメモリは既述されているとおり大変少なく、末期には、スタックエリアの一部、BASIC自身が使うワークエリアの一部、VRAMの一部まで活用された。プログラム自体も可読性よりも密度を重視したものが多く作られ、省略可能なセパレータ、スペース、命令、コメント、同一変数の使いまわしなど、削れるものは削り、バイナリデータのベタ書きなど、処理を押し込む工夫が見られた。
ハードウェア的に改造を行い、メインメモリであるSRAMを大きな容量のものと交換する試みもユーザによって行われた。BASIC自体から純正品と同じように利用できる空間はワークエリアの書き換えにより4KBまで可能になり、残りのエリアもバスに接続されていれば、CPUからは認識することが可能で、電池によってバックアップもされる。
プログラム自体はROMカートリッジに一時的に記録できる他、データの保存(SAVE
)および保存したデータの読み込み(LOAD
)にはカセットテープを使用する。テープへの読み書きには別売りの専用データレコーダもしくはモノラル録音再生のテープレコーダが必要。この機能は市販ゲームプレイ時にキーボードとデータレコーダを接続することで、自作ステージデータ、セーブデータの保存用ツールとして応用された。
- データレコーダ対応ソフト
後継機種
GAME BASICモードに特化したアップバージョン版『ファミリーベーシックV3』が1985年2月21日、9,800円で発売。プログラム実行メモリ容量は4,096バイト。ファミリーベーシック専用カセットとして、カセットのみの単体売りという形で、キーボードは下位のセット売りバージョンから流用する。
その他
- 頻繁な抜き差しによってファミコン本体のROMカセット接続部が緩んでいる場合、ベーシック用ROMカセットに指が触れた途端にフリーズしデータが失なわれるという「事故」も日常茶飯事だった。また、ベーシック用ROMカセットは一般的なゲームカセットに比べ約2倍という背の高さで、加えてバックアップ用の電池ケース部位がカセット上方にあり、乾電池を入れている場合重心が非常に高くなるということや、バックアップ用のスイッチが手動で、これを操作するためにはカセットに触れる必要があることなどもデータ損失の「事故」が起こる要因と考えられる。また、当時はロムカセット用の接点復活剤が普及していなかった。
- プログラム実行のために使えるメモリ容量がかなり限られていたため、非常に簡素なゲームプログラミングしかできなかった。4つのその他機能を排してゲームプログラミング用にメモリ容量を確保したV3に至っても機能的には十分とはいえず、売上げとしては不振のままに終わった。しかしその一方で、制限のある中で創意工夫し、いかにクオリティの高いものを目指すかということに果敢に挑戦する者たちは多かった。前述したゲーム雑誌各誌のプログラム投稿コーナーもプログラマー少年たちが努力の成果を公に向け発表する場として機能し、毎回賑わいを見せていた。
- 一部の企業からは非ライセンス商品として、ディスクシステムから起動するBASICが発売されていた。
- 北米向けにはキーボード内蔵の『Advanced Video System』が試作されたが、結局発売されず、代わりに『Nintendo Entertainment System』が発売された。
- ファミコンテレビC1用に、『PLAYBOX BASIC』というほぼ同機能のカートリッジソフトと、専用のキーボードがある。これにはメッセージボードがなく、代わりにバイオリズムが追加されている。
- MSXをはじめとするホビーパソコンでは、キーボード自体をゲーム用コントローラーとして使用できたが、ファミリーベーシック用のキーボードはゲーム用コントローラーの代用として使用することが出来なかった。また発売されたゲーム作品全般の中に『ボンバーマン』や『ドラゴンクエスト』、『ワルキューレの冒険』などのパスワード入力が必要なゲームにキーボード操作入力に対応出来る機能が備えられていなかったのが、売上不振につながった理由のひとつでもある。
- 雑誌「マイコンBASICマガジン」ではプログラムリストが掲載されていたが、ファミリーベーシック用のプリンタは存在しないため、最初の頃は画面写真を繋いだものが掲載されていた(同誌OFコーナーより)。その後、パソコンにテープを読み込ませてデコードしプリントアウトするシステムを利用するようになり、掲載プログラムの可読性が向上した。
バージョン
4つのバージョンが存在することが確認されている。V1.0 のバージョンアップ版である V2.0A および V2.1A はカセットのみの単体売りはされていなかった模様。また、ROMカセットの色は黒が基本だが、V3.0 のみワインレッド色の外装で成型されている。
V1.0
最初に発売されたバージョン。
V2.0A
SCR$
関数が追加。
V2.1A
V2.0Aのバグが除かれたものとされる。
V3.0
1985年2月21日、9,800円で発売された。カリキュレータボードや占いなどの機能を排し、GAME BASICモード向けにメモリ容量を拡張。CRASH
、AUTO
、ON ERROR GOTO
など多数の新規命令が追加。サンプルプログラムも4つのゲームが収録されており、BASICの命令によりRAMに呼び出すことができる。しかし実行のために使えるメモリ容量が相変わらず小さいため(4キロバイト)、中途半端なプログラムしか作れないことが多く、さらにゲームデータの誤消去が発生しやすいため機能的には十分とは言えず、これも不振のまま終わった。
ファミリーベーシックと同様、ハドソンとSHARPの共同開発。
サンプルプログラムとして収録されたのは、以下の4つである。GAME 1とGAME 2は、BGグラフィックをエディタで編集することで、簡単にステージを改造できる。
- GAME 0
- ハート(コントローラIIのマイクに息または声を入力し、画面上のハートマークを塗りつぶして完成させるゲーム)
- GAME 1
- ペンペン迷路(ペンギンを操作し、カニさんを避けながら、格子状の道に配置された数字を順番に拾っていく)
- GAME 2
- マリオワールド(マリオを左右移動・ジャンプ・はしごの昇降で操作して、ニタニタに触れないように落ちているリンゴと数字を拾う。数字は順番に拾わないと得点にならない)
- GAME 3
- スターキラー(自機を8方向に移動させて操作するシューティングゲーム。2人同時プレイも可能。スクロールはしないが、画面の上下左右がつながっている)