今日はファミリーベーシックの発売日(1984)
このウェブサイトで一番最初に書いた記事が、ファミリーベーシックの紹介記事でした。
今ならもっと突っ込んだ内容書くだろうけど、あのころは「毎週更新」を目指していたので、それほど深い内容書く余裕なかったんだよね…
まぁ、ファミベを深く書くと、結局ファミコンの話になります。
ファミコンの内部構造は詳しく書いたページは山ほどあるし、僕らしく紹介したページも作ったので、ファミベページは原則そのまま。
で、そちらのページにあるように、僕が初めて所有したベーシックマシンです。
僕は1か月ほど後に誕生日なのですが、その際に「誕生日だから欲しい」と親に交渉し、半額を自分で出すことで買ってもらいました。
(1万5千円は、我が家の誕生日プレゼント額の上限を超えていたため)
発売から1か月程度で手に入れたため、BASIC のバージョンは 1.0 。
後にベーマガのプログラムを見ていたら、知らない命令が入っていました。
「マニュアルに記載されていない命令があるのか?」と試してみてもエラーになる。
しかもこれ、「指定座標に書いてあるキャラクタを調べる」という、ゲームを作る上で非常に重要な命令です。
メモリが 2K しかなかったファミベーでは、配列に仮想画面持つような余裕はありません。
自然と「背景は添え物のシューティングゲーム」ばかりになっていたのですが、背景のキャラクタがわかれば、パックマンのような迷路ゲームだって作れます。
任天堂に電話したら「新しいバージョンの BASIC が出ているので、無償交換します」と言われ、2.1 を入手しました。
これでゲーム作りの幅が広がりました。
ファミコンは2画面持っていて、ファミベーでは片方を「裏画面」として使用します。
ここにベーシックとは別に描いた画面を保存しておいて、命令一発で表画面にコピーできるのですね。
その一方で、先に書いた「画面に書かれたキャラを調べる」命令では、裏画面を調べることも出来ました。
そこで、広大なダンジョンのマップを裏画面に用意しておいて(0~Fの16進数で、マス目周囲の壁を表現した)、3Dダンジョンを表示する RPG 作ってみました。
今考えると、ファミベで 3Dダンジョン、という無謀ともいえるテクニックだけのゲームで、バランスとか無茶苦茶悪いし、RPG の体をなしていません。
そもそも当時は RPG というものをよくわかってなかった。
でも、これはベーマガに投稿して採用されました。
掲載されたプログラムリスト、なぜか CLS が CLEAR に化けてたよ。
(当時のベーマガは、ファミベのプログラムを FM-7 経由でプリントアウトするプログラムを使用していたと思われるが、そのプログラムのバグの模様)
画面消去するタイミングで変数がクリアされてプレイ続行不可能になるのだけど、「で・ば・ぐ」のコーナーにお詫びが出なかったよ。
…ということは、苦情が来なかったわけで、誰も打ち込んで遊んだりしなかったんでしょうなぁ (^^;
他にもう一回、別冊ムック扱いで採用されたことがあるけど、投稿はその2回だけだったかな?
#投稿が2回で、掲載も2回。原稿料は結構よかった。
もっと投稿するつもりで準備していたが、プログラムばかりやっていて成績が落ちて父に怒られたため、自粛。
先に「僕が初めて所有したベーシックマシン」と書きましたが、最初に所有したのは FX-マイコン。
そして、はじめてBASICを学んだのは、友人から1か月くらい借りた MSX。
だけど、気持ちの上ではファミリーベーシックは僕のファーストマシンです。
機械語を覚えたのもこの機械。
ノートにアセンブラプログラム書いて、ハンドアセンブルして、POKE & CALL で動かしたとき、想像を超える速さで驚きました。
BASIC で逆アセンブラ組んで、ROMの中を探検もしました。
いろんなテクニックを学びました。
もう詳細覚えてないけど、6502 の 2byte 命令を 2byte 目から実行すると意味が変わることを利用して、メモリを節約できるテクニックがあったんですよね…
BASIC の ROM の中にその書き方の部分があって、見つけて感心したのだと思います。
Apple II では定番テクニックだったらしいのですけどね。
これ、たぶん岩田さんが言ってるメモリ節約の「バグみたいな使い方」は、このことなのだと思います。
ファミリーベーシックはグラフィックもかけない、スプライトの絵も変えられない、メモリも2Kしかない、すごく狭い環境でした。
でも、まだ初心者だった僕にはこの環境が幸いでした。
余計なことを考えようにもメモリの余裕はなく、とにかくシンプルでいいアイディアのゲームを、無駄のないプログラムで作るしかなかったのです。
そして、ベーマガのプログラムもみんな短い。
他人のプログラムを読んでテクニックを勉強するのも、簡単に出来る環境でした。
ゲームアイディアの考え方も、プログラムテクニックも、自然と身につく。
そんな環境は、今も昔もそれほど多くないように思います。
僕にとっては、ゲームプログラマーへの最初の一歩を踏み出した、記念すべきマシンです。
同じテーマの日記(最近の一覧)
別年同日の日記
16年 コンピューターが初めてプログラムを実行した日(1948)
申し訳ありませんが、現在意見投稿をできない状態にしています。 |