2024年09月20日
次回作選考
さて、そろそろ次回作について考えたいと思います。
…と、言っても、「ロールプレイングゲーム」、「アドベンチャーゲーム」、「アクションゲーム」、「パズルゲーム」、「テーブルゲーム」、「シミュレーションゲーム」と来たから、最後は「シューティングゲーム」で決まりです。
作りたい物があるので最後にしたのですが、まだ纏まり切っていない…。
シューティングゲームと言っても、「一画面」、「スクロール」、「3D」と多岐に渡ります。
まぁ、MSX1なので「ファーストパーソン・シューティング(FPS)」や、「弾幕シューティング」はありませんが…。
とりあえず習作なので「一画面」かな?
最近紹介していた擬似2Dスクロールを活用したものにしたいな。
まぁ、作りたいものは固まっていますので、後はどこまでするかが決まれば制作に取り掛かれそうです。
2024年09月19日
2Dスクロール(カラー切替、SCREEN1.5)
2024年09月18日
2Dスクロール(カラー切替)
今回は少し変わったところで、カラー切替によるスクロール「もどき」です。
MSX1のSCREEN1は、かなり特殊で8FONT単位での色指定しかできません。
逆を言えば、1バイト書き換えるだけで、8FONT分のカラーが切り替わると言う事です。
この処理は、拙作「SPACE」で利用しています。
「キャラクタパターンジェネレータテーブル」は一切触りません。
VRAMアドレス&H2000からのカラーのみ更新します。(256FONT÷8FONT単位=32バイト)
BIOS(&H004D)を使っています。
早い早い!
速度調整なしです。
そりゃ、数バイトの書換えしているだけなので当然なのですが。
無駄ループ入れて、それなりの速度になる様に調整しました。
うーん、でも真っ直ぐだけなのであまり実用性はないかな…。
2024年09月17日
2Dスクロール(軽量化)
2024年09月16日
2Dスクロール(OUT命令)
2024年09月15日
2Dスクロール(SCREEN1.5)
前回紹介したSCREEN1の星スクロールの、SCREEN1.5版です。
SCREEN1.5の良いところは、何と言ってもカラフルな画面が描ける事。
このプログラムも何色かの星で描かれています。
ただ、やはりSCREEN1.5。
SCREEN1なら「キャラクタパターンジェネレータデータ」の描換えだけで済んだところを、「カラーデータ」も描換える必要がある。
更にVRAMへの転送も「キャラクタパターンジェネレータテーブル」1つ(上段)だけで良かったところ、追加で「中段」、「下段」と、「カラーテーブル」も同様に「中段」、「下段」の転送が必要となり、相当の負荷が掛かります。
よって、もの凄く遅いです。
VRAMへの転送はBIOS(&H005C)を使っています。
速度調整していません。
カラフルで綺麗です。
…が、遅いです。
OUT命令版もあるので、次回紹介します。
2024年09月14日
2Dスクロール(バイトシフト)
2024年09月13日
2Dスクロール(ドット移動)
制作ディスクの試作プログラムの紹介、続きです。
今回からは色々な2Dスクロールのプログラムを紹介します。
オーソドックスな宇宙空間での星の1ドット単位2重スクロールです。
これは拙作「 SOLGER 」で実装しています。
宇宙空間での星に限定するなら、何重スクロールでも可能ですね。
MSX1のSCREEN1を使用しているので、BIOS(&H005C)使っていても早いです。
速度調整(無駄ループ)はしていません、これが最速です。
今回の方法は、縦1列に連続したFONTを並べ、上から下に向け、ドットを「描いて」、その1ドット上のドットを「消す」を繰り返す方法です。
ただ、この方法だと縦1列内に複数個の星を流そうと思うと、星の数に応じて処理が重くなります。
スクロールの綴りが間違っている…。(誤:SCROOL→正:SCROLL) まぁ、昔のだから気にしない…。
良い感じです。
遅い方が1ドット、早い方が2ドットスクロールです。
しかし、ファミコン等では当たり前だった1ドットスクロールがMSX1では難しかったんですよね…。