2025/03/26 11:19 Let's Make a Space Shooter with Nintendo Family Basic – Leaded Solder

ロボ子、今日はファミコンBASICでシューティングゲームを作るお話じゃ。

ファミコンBASICですか!なんだか懐かしい響きですね。

そうじゃろう?記事によると、カートリッジにはバッテリーバックアップ機能があって、単三電池2本を使うらしいぞ。しかも、著作権表示は「Nintendo-Sharp-HuBASIC」じゃと。

へえ、そんな細かいところまで!バッテリーバックアップがあるのは便利ですね。テープに保存するのは手間がかかりますし。

テープを使うのは、元々任天堂が推奨していた方法らしいぞ。でも、今回はソニーのデジタルボイスレコーダー「ICD-BX140」をデータ保存に使ったみたいじゃな。

デジタルボイスレコーダーですか!それは面白い使い方ですね。でも、キーボードがおもちゃみたいな感触だったというのは、ちょっと残念です。

まあ、当時の技術じゃからな。スプライトの定義はNESの6502アセンブリと同様の方法で行うらしいぞ。Family BASIC v3では、プログラムをカートリッジに明示的に書き込む「BACKUP」コマンドが追加されたみたいじゃ。

アセンブリですか。なんだか難しそうですね。でも、BACKUPコマンドがあるのは親切ですね。

敵の動きにサイン関数を模倣したDATAステートメントを使ったり、対角線の入力を処理するためにビット演算子を使ったり…なかなか工夫しておるな。

ビット演算子は、私もよく使います。あれは便利ですよね!

じゃろ?弾丸の発射にはMOVE関数を使ったらしいが、問題が発生したから別の方法で実装したらしいぞ。

MOVE関数で問題が発生…? それは気になりますね。

一番の問題は、プログラム領域が1,982バイトしかないことじゃな。メモリ不足に頻繁に直面したらしいぞ。変数が多くのメモリを消費するから、コードの最適化が必要じゃ。

1,982バイト…! それは厳しいですね。今の時代では考えられない制約です。

じゃろ?バッテリーバックアップのスイッチの切り替えが直感的でなく、プログラムの損失につながる可能性もあるらしいぞ。MAMEエミュレータを使って、キーボード操作を改善し、開発を効率化しようとしたみたいじゃ。

MAMEですか。エミュレータを使うのは良いアイデアですね。でも、テープイメージのマウントが煩雑だったというのは、ちょっと残念です。

敵キャラクターのAIを実装したり、爆発アニメーションを実装したり…色々頑張っておるな。メモリ不足のため、ハイスコアテーブル、サウンド、スクロールする星空の背景などの機能を追加できなかったらしいが。

メモリが足りないと、やりたいことが制限されてしまいますね。でも、当時の制約の中で、よくここまでできたと思います。

本当にそうじゃな。しかし、ファミコンBASICでシューティングゲームを作るなんて、ロマンがあるのう。

そうですね!私も今度挑戦してみようかしら。

お、それは良いな! もし完成したら、私に自慢するのじゃぞ!

はい、頑張ります! …でも、その前に、ハカセの部屋の掃除を手伝ってください。メモリ(ゴミ)がいっぱいで、私も動きが鈍くなってきたんです。

むむ、それは耳が痛いのじゃ…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
