X1turbo Agency

X1turbo Agency ブログ

8bitコンピュータ X1turboの探求サイト

X1turbo Agency

Newグラディウス デモ (Balls / まとめ)

X1 SGLについて

今回、New グラディウスデモを制作する上で、X1用のゲームライブラリとしてX1SGLという環境を用意しました。
ソフトウェアスプライトやコンバータなど一通り揃えるのが目標です。

今回、X1SGLを使って描画性能用プログラムのまとめとして、X1 Balls を作りました。
Ballsのオリジナルは、PlayStationSDK、そして、ユーザ開発環境「ネットやろうぜ」サンプルとして登場します。
16x16のスプライトを画面にどれだけ表示できるか、というベンチマークです。

f:id:x1turbo_agency:20190614020120p:plain
X1 Balls

PlayStation用BallsをX1/turboで!」

■ あのPlayStation用BallsをX1/turbo用に移植してみました。
オリジナルと比べて、どのくらいの性能が出るのか?その検証用です。
ちなみにオリジナルは2000枚程度表示(30fps)できていたと思います。

操作説明

キーボードで操作します。
1…Ball (プレーン1)を一つ発生させる。
2…Ball (プレーン2)を一つ発生させる。
3…Ball (プレーン3)を一つ発生させる。
4…Ballを一つ消去する。
スペースバー…押すたびに 60/30/20fps を切り替えます。

表示項目

現在表示しているBallの数
現在の表示FPS (60/30/20)
処理落ち (Dropout) フレーム内で描画処理をオーバーすると「Dropout」を表示します。
ちなみに60/30/20fpsでBallの移動速度を変えて見た目の速度が変わらないようにしています。

ダウンロード

X1用Ballsの実行ファイル(X1用)を置いておきます。
X1/turbo用なのでX1でも実行できると思います。
エミュレータではテストしましたが、実機ではテストしていません。

近々、ソースファイルも公開しようと思います。
2019/07/06 ソースファイルをgithubに公開しました。 github.com

X1 Balls (D88)

性能評価

プレーンの組合せで変わりますが、以下の性能でした。

FPSモード Ball 1プレーン Balls 2プレーン Ball 3プレーン
60 8 6 6
30 17 14 13
20 31 29 19

使用する環境(実機/エミュレータ),X1/turboでも数字が変動します。

まとめ

newグラディウスデモを通じて、リアルタイムゲームをX1turboで作ってみた印象です。

  • リアルタイム(60fps)にキャラクタを動かすのは厳しいですが、20-30fpsであればぼちぼち動かせる。
  • 1,2プレーン時の性能が想定以上に良い。
  • 高速化にはメモリを多く使うので、バンクメモリを使える事がX1turboにとって活用のポイントだと思います。もっと早い時期からメモリを128KB以上搭載できていれば…。
  • Z80DMAの使いこなしがポイントです。想像以上に使えました。ここはまだまだ活躍が見込めます。
  • ファミコンのスプライトは本当に強力。4色で上下左右反転が使える。高いメモリ効率と表現力。

以下は見果てぬ夢の話。

  • VSync割込みがあれば良かったのに!
  • せめて 16色中8色などの多色化があれば表現力は飛躍的に向上したので、X1turboの時点で多色化が欲しかった…。
  • 逆にアドベンチャゲームやRPGは相性が良かったはずですが、PC88/98からの移植でもメモリや色数に対応できないのが厳しかったでしょうね。
  • X1/turboのPCGは強力ですが、商売的にはPC88からの移植が多く、使いこなしが難しかった印象です。

色々と書いたり試したりしてますが、結局はX1turboの再確認にすぎないです。
市場規模を拡大できず、機能アップを盛り込むことができなかった X1turbo。
しかし、X1turboは触っているだけで楽しい機種(ここ大事!)なので、まだまだ楽しみたいと思います。