萌えハッカーニュースリーダー

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

出典: https://www.leadedsolder.com/2025/03/11/family-basic-space-arcade-game-programming.html
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

むむ、それは耳が痛いのじゃ…。

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

Search