axsann / x68k_xsp-gas

A sprite driver for the SHARP X680x0.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XSP for elf2x68k

XSPをモトローラ形式のアセンブリからMIT形式(GASフォーマット)に書き換え、elf2x68kでビルドできるようにしたバージョンです。

TODO

  • XSP本体
  • PCM8Afnc
  • PCG90
  • XSP_010
  • XSP_020
  • XSP_020
  • XSP_030
  • XSP_040
  • XSP_050
  • XSP_060

以下はオリジナルの解説です。

解説

XSP は、 SHARP X680x0 対応のスプライト管理システムです。

以下のような特徴があります。

  1. スプライトダブラーと呼ばれる手法により、スプライトを最大 512 枚(X680x0 のハードウェア制約の 4 倍に相当)まで表示することが可能。

  2. スプライト定義領域をキャッシュ領域とみなして動的割り当てることにより、スプライト定義を最大 32768 パターン(X680x0 のハードウェア制約の 128 倍に相当)まで拡張可能。

  3. トリプルバッファリング対応により、垂直同期を無視したゲームループ更新を可能にする。

スプライトダブラーとは

X680x0 のスプライト表示機能は、ラインバッファ方式です。 ラインバッファ方式スプライトは、フレームバッファ方式とは異なり、 走査線が通過した位置のスプライトを移動し、1 フレーム内で再び走査線を通過させることにより、 複数回表示させることが可能です。 このような処理を「スプライトダブラー」と呼びます。

XSP ではこれを 1 スプライトあたり最大 4 回繰り返すことで、スプライト表示数をハードウェア上限の 4 倍に増やしています。 4 倍なので、「スプライトクアドラー」とでも呼ぶ方が正確かもしれませんが、 便宜上「スプライトダブラー」と呼んでいます。

フレームバッファ方式の GPU では、性能がソフトウェアの工夫で 4 倍に増えるということはほぼ起こり得ませんが、 ラインバッファ方式のスプライトでは可能であり、スプライトダブラーは X680x0 における定番のテクニックとなっていました。

スクリーンショット

xsp_sample2

ディレクトリ構成

  • XSP/ 以下

    スプライト管理システム XSP 関連ファイル。

  • CVOBJ/ 以下

    XSP の複合スプライト形状データのコンバータ。

  • PCG90/ 以下

    XSP の縦画面モード用にスプライトパターンを 90 度回転させるサービス関数。

  • PCM8Afnc/ 以下

    PCM8A と XSP の割り込み動作が衝突しないよう、PCM8A 側の割り込み優先度を調整するサービス関数。

  • SAMPLE/ 以下

    サンプルコード群。

利用・採用実績

超連射68K(拙作)、そのほか多数の同人ソフト

ライセンス

Apache License Version 2.0 が適用されます。

About

A sprite driver for the SHARP X680x0.

License:Apache License 2.0


Languages

Language:Assembly 71.1%Language:C 18.3%Language:Makefile 9.2%Language:Shell 1.5%