Loading video...
Video Failed to Load
かつてはファミコンで長いレーザーを描画するのは不可能だとされていた。 だが、今は違う! #nesdev
441,656 views • 2 years ago •via X (Twitter)
11 Comments

今回編み出した新手法によって、前回の欠点だった「背景に2色しか使えない」というパレットの制約がなくなり、CPU負荷も大幅に減りました 前回はこの制約から技術デモ以上のものを作るのが難しかったところが、今回の改善でちゃんと背景のあるゲームも作れるようになりました

開発日記によると、今回の描画方式を思いついてから完成まで2ヵ月強くらい。レーザー自体は最初の一週間で動くようになってたので、あとはほとんどビッグコアの実装を延々とやってて、昨日今日あたりで火山とミサイルの実装をねじ込んだ。年内に終われてよかった…

レーザーの実装はかなりトリッキーな事をやってるけど、ビッグコアの方は単純な力業で実装してる。メモリさえあればファミコンでもできることは結構増える 令和になるとファミコンでもアンドアジェネシスが浮いたりしてるので、あれと比べるとだいぶ簡単なお仕事だろうと思う

スプライトのちらつき対策はちょうどここで紹介されているゼビウスと似た実装で、場面に応じてカテゴリごとに重要な順に並ぶように入れ替えてる この仕組みだと自機は常に表示されるし、オプションの優先度を一番下げてるのでちらつくのはほぼオプションだけになってる

新しい方式のレーザーとビッグコアの描画方法の解説動画を作りました。 レーザーとビッグコアの描画にはどちらももBGを使用していて、レーザーの描画にはMMC5チップの垂直分割スクロール機能を使用しています。

こちらの解説動画、今回はYoutubeの字幕機能で解説を出すようにしてたのですが、デフォルトで字幕が出ないケースがあるらしいので字幕が強制ONになるように改めて設定しました。 字幕なしだとかなり意味不明な動画になる…

めばちまぐろさんが、MMC5なしでBGパレットと干渉せず高速にレーザーを描画する手法を編み出してくれました。 ラスタ割り込み時に「色強調+モノクロモード+BGオフ」を同時に設定することで、BGがどんな色であっても白いレーザーを描画可能に。すばらしい!

MMC5なしで高速にレーザーを描画できるようにするパッチはこちら。 めばちまぐろさんのアカウントで詳しい解説が見られます!

デメリットとして挙げられてるスキャンライン中にレジスタを書き換えるとCPUのクロックのずれで数ピクセル表示がずれてしまう問題は、動画を見るとレーザーが高速で右に飛んでいくのでほとんど気にならないことが実証されてました。ほんと素晴らしい

The Art of Flight is a homage to 80s/90s arcade action shmups with a fresh twist on the genre. Pilot multiple ships at the same time to take on oncoming waves of enemies in this fast paced space shooter. Wishlist on Steam today!

何度見てもすごすぎて… PCエンジン版にも負けてないですよ
