風船デモ

 

スーパーカセットビジョンでカセットを入れずに電源を入れた時に

表示される風船デモを MSX-BASIC で再現したものです。

 

スーパーカセットビジョンデモ | YouTube

 

……とはいっても、スプライト 32 個を同時に動かしているので、

実機では MSX turbo R の高速モード(R800 モード)でないと遅いです。

エミュレーターでは現在 MSX の実機より高速動作が可能で、
スプライトモードも横に並ぶ数も無制限に設定する事が可能になっているため、
これらの設定変更により、まともに見られる動作になります。

 

MSXPen では Alt+S でスプライトを Unlimited にし、
Alt+T で CPU Turbo を上げて下さい(最高 x8)


C 言語版

 

BASIC ではさすがに遅いので、
z88dk を用いて C 言語で作成し、マシン語プログラムにしてみました。

スペースキーでプログラム実行を停止し、BASIC へ戻ります。

風船の数を 31 個に減らしていますが、
乱数の精度上 32 個だと動きが変化しなかったためです。

 

zcc +msx -lndos -create-app -subtype=disk -bn balldemo balldemo.c

 

BALLDEMO.MSX が生成したマシン語の実行ファイルです。
BASIC より BLOAD"BALLDEMO.MSX",R で実行します。

 

MSX1 でも動作可能な事を確認できています。
この場合は「-subtype=disk」を外してコンパイルすると
カセットイメージ BALLDEMO.CAS ができます。BLOAD"CAS:",R で実行します。

 

一方、VDP アクセスはすべて BIOS を使用して行っているウェイトがあり、
MSX turbo R の高速モード(R800)でも速度はあまり変わりません。

 

WebMSX (軽量 CBIOS 版) は Alt+S でスプライトを Unlimited にしても良いです。

IchigoJam フォント を使っています。CC BY IchigoJam