misc/fullpatfnc.txt
fullpatfnc.txt
■基本情報
----------------------------------------------------------------
タイトル
フルパターンメモリ外部関数
プログラム名
fullpat.fnc
バージョン
version 1.00
機能
X-BASICでフルパターンメモリを使えるようにする外部関数です。
SPRITE.FNCの上位互換となっており、いくつかの機能が追加されています。
----------------------------------------------------------------
■使用法
----------------------------------------------------------------
ドライバ
fullpat.xが必要です。fullpat.txtを参照してください。
BASIC.CNF
SPRITE.FNCをコメントアウトします。
# FUNC = SPRITE
fullpat.fncを追加します。
FUNC = fullpat
----------------------------------------------------------------
■キャラクタとプライオリティ
----------------------------------------------------------------
VH__BBBBNNNNNNNN キャラクタ
_____________nPP プライオリティ
V 0~1 上下反転。0=しない,1=する
H 0~1 左右反転。0=しない,1=する
BBBB 0~15 パレットブロック
nNNNNNNNN 0~511 パターン番号
PP 0~3 優先順位
0=表示しない
1=バックグラウンド0>バックグラウンド1>スプライト
2=バックグラウンド0>スプライト>バックグラウンド1
3=スプライト>バックグラウンド0>バックグラウンド1
----------------------------------------------------------------
■カラーコード
----------------------------------------------------------------
GGGGGRRRRRBBBBBI カラーコード
GGGGGI 0~63 緑
RRRRRI 0~63 赤
BBBBBI 0~63 青
----------------------------------------------------------------
■外部関数リファレンス
----------------------------------------------------------------
int bg_fill(char t,int c)
バックグラウンドテキストをキャラクタで埋め尽くします。
t テキスト番号。0~3
c キャラクタ。0~65535
----------------------------------------------------------------
int bg_get(char t,char x,char y)
バックグラウンドテキストからキャラクタを読み出します。
t テキスト番号。0~3
x X座標。0~63
y Y座標。0~63
戻り値 キャラクタ。0~65535
----------------------------------------------------------------
int bg_put(char t,char x,char y,int c)
バックグラウンドテキストにキャラクタを書き込みます。
t テキスト番号。0~3
x X座標。0~63
y Y座標。0~63
c キャラクタ。0~65535
----------------------------------------------------------------
int bg_scroll(char b,[int x],[int y],[char v])
バックグラウンドスクロールレジスタを設定します。
b バックグラウンド番号。0~1
x X座標。0~1023。省略すると変更しない
y Y座標。0~1023。省略すると変更しない
v VDISPの立ち下がり。0=待つ,1=待たない。省略すると1
----------------------------------------------------------------
int bg_set(char b[,char t,char d])
バックグラウンド制御レジスタを設定します。
b バックグラウンド番号。0~1
t テキスト番号。0~3。省略すると変更しない
d 表示の有無。0~1。省略すると変更しない
----------------------------------------------------------------
int bg_stat(char b,char m)
バックグラウンドスクロールレジスタまたはバックグラウンド制御レジスタを取得します。
b バックグラウンド番号。0~1
m モード。0~3
0 X座標。0~1023
1 Y座標。0~1023
2 テキスト番号。0~3
3 表示の有無。0~1
戻り値 取得した値
----------------------------------------------------------------
int sp_clr([int p1],[int p2])
パターンをゼロクリアします。
p1 開始パターン番号。0~511。省略すると0から
p2 終了パターン番号。0~511。省略するとp1のみ、両方省略すると511まで
----------------------------------------------------------------
int sp_color(char p,[int c],[char b],[char v])
スプライトパレットを設定または取得します。
p パレットコード。0~15
c カラーコード。0~65535。省略すると取得のみ
b パレットブロック。1~15。省略すると1
v VDISPの立ち下がり。0=待つ,1=待たない。省略すると1
戻り値 設定前のカラーコード
----------------------------------------------------------------
int sp_def(int p,char/int(a),[char s],[int o])
パターンを設定します。
p パターン番号。0~511
a データの配列
s サイズ。0=8x8,1=16x16。省略すると1
o オフセット。省略すると0
----------------------------------------------------------------
int sp_disp(char m)
スプライト・バックグラウンド画面を表示するか選択します。
m モード。0~1
0 表示しない
1 表示する
----------------------------------------------------------------
int sp_init()
スプライト・バックグラウンドを初期化します。
----------------------------------------------------------------
int sp_move(char s,[int x],[int y],[int p])
スプライトスクロールレジスタを設定します。
s スプライト番号。0~127
x X座標。-16~1007。省略すると変更しない
y Y座標。-16~1007。省略すると変更しない
p パターン番号。0~511。省略すると変更しない
----------------------------------------------------------------
int sp_off([char s1],[char s2])
スプライトを表示しません。
s1 開始スプライト番号。0~127。省略すると0から
s2 終了スプライト番号。0~127。省略するとs1のみ、両方省略すると127まで
----------------------------------------------------------------
int sp_on([char s1],[char s2])
スプライトを表示します。
s1 開始スプライト番号。0~127。省略すると0から
s2 終了スプライト番号。0~127。省略するとs1のみ、両方省略すると127まで
----------------------------------------------------------------
int sp_pat(int p,char/int(a),[char s],[int o])
パターンを取得します。
p パターン番号。0~511
a データの配列
s サイズ。0=8x8,1=16x16。省略すると1
o オフセット。省略すると0
----------------------------------------------------------------
int sp_set(char s,[int x],[int y],[int c],[char p],[char v])
スプライトスクロールレジスタを設定します。
s スプライト番号。0~127
x X座標。-16~1007。省略すると変更しない
y Y座標。-16~1007。省略すると変更しない
c キャラクタ。0~65535。省略すると変更しない
p プライオリティ。0~7。省略すると変更しない
v VDISPの立ち下がり。0=待つ,1=待たない。省略すると1
----------------------------------------------------------------
int sp_stat(char s,char m)
スプライトスクロールレジスタを取得します。
s スプライト番号。0~127
m モード。0~3
0 X座標。0~1023
1 Y座標。0~1023
2 キャラクタ。0~65535
3 プライオリティ。0~7
戻り値 取得した値
----------------------------------------------------------------
int sp_wait([char n])
VDISPの立ち下がりを待ちます。
n 回数。省略すると1
----------------------------------------------------------------
■エラーコード
----------------------------------------------------------------
1 配列のサイズが範囲外です
2 現在の画面モードではバックグラウンド1を表示できません
3 バックグラウンド番号が0~1の範囲外です
4 キャラクタが0~65535の範囲外です
5 カラーコードが0~65535の範囲外です
6 表示の有無が0~1の範囲外です
7 fullpat.xが組み込まれていません
8 モードが0~1の範囲外です
9 モードが0~3の範囲外です
10 配列のオフセットが範囲外です
11 パレットブロックが1~15の範囲外です
12 パレットコードが0~15の範囲外です
13 パターン番号が0~511の範囲外です
14 パターンサイズが0~1の範囲外です
15 プライオリティが0~7の範囲外です
16 現在の画面モードではスプライト画面を使用できません
17 スプライト番号が0~127の範囲外です
18 テキスト番号が0~3の範囲外です
19 VDISPの立ち下がりが0~1の範囲外です
20 X座標が0~63の範囲外です
21 X座標が0~511の範囲外です
22 X座標が-16~1007の範囲外です
23 X座標が0~1023の範囲外です
24 Y座標が0~63の範囲外です
25 Y座標が0~511の範囲外です
26 Y座標が-16~1007の範囲外です
27 Y座標が0~511の範囲外です
----------------------------------------------------------------
■更新履歴
----------------------------------------------------------------
2026-03-23 version 1.00
初版。
----------------------------------------------------------------