------------------------------------------------------------------------------
hspdx.dll REFERENCE MANUAL for HSP2.6x&3.x           HSP : Hot Soup Processor 
ＨＳＰ拡張DLLリファレンス     copyright 1998-2009 (c) onion software/Sinagawa 
------------------------------------------------------------------------------

・はじめに

	このDLLは、Hot Soup Processor ver2.6以降とともに使用することで、様々な
	機能拡張を行なうことのできるプラグインモジュールです。
	この拡張DLLを使用することにより、新規命令が多数追加され、DirectXを使用
	したハイレベルなソフトを開発することが可能になります。
	hspdx.dllを使用するためには、Microsoft DirectX7以降がインストールさ
	れている必要があります。


・使用方法の概要

	拡張プラグインのファイル、 hspdx.dllは、HSED3.EXEおよび、HSP3.EXEの
	あるディレクトリと同じ場所に置いてください。デバッグモードを使用すると
	きは、HSPDX.DBGも同じディレクトリに置いてください。
	(実行に使われているHSP3.EXEと同じディレクトリに、 hspdx.dllがない場
	合はエラーになります)
	また、スクリプトを作成する場合には、 HSPDX.ASをcommonディレクトリに
	置き、スクリプトの先頭に必ず「#include "hspDX.as"」という行を追加し
	てください。 以上で、HSPの機能が拡張され、このリファレンスで説明をして
	いる命令を使用することができるようになります。
	まず最初に、試しに付属のサンプルスクリプトを実行してみてください。拡張
	された機能の簡単な使用例を見ることができるはずです。

	※本プラグインの実行にはMSVCR71.DLLが必要になります。 エラーが出て実行
	できない場合は作者サイト上にてファイルを用意していますのでダウンロード
	してください。


・HSP3.0での使用について

	HSP3.0では picload命令の仕様変更により画像ファイルからパレットを自前で
	取り出す必要があります。これについてはHSP3.0に標準で付属しているモジュ
	ール集 「hsp3util.as」の中のbmppalette命令を使って対応することができま
	す。
	命令やパラメータには互換性があるので、標準命令のみHSP3.0の文法に書き換
	えればHSP2.61で作成したスクリプトをそのままHSP3.0で動かすことができるよ
	うになります。


・注意点

	hspdx.dllは、HSP3.EXEと同時に使用されるプラグインファイルです。
	EXEファイルを作成した場合でも、hspdx.dllをEXEファイルと同じディレク
	トリに置かないと動作しません。 また、packfileにDLLを追加することはでき
	ません。


・著作権および連絡先

	hspdx.dllの著作権は、おにたま(onion software)とSinagawaにあります。
	使用の規定についてはHot Soup Processor ver3.1と同様です。
	HSPによって作成したEXEファイルと同様に hspdx.dllを自由に配布してかまい
	ません。
	onion software/Sinagawaは本プログラムによって生じた、 いかなる損害につ
	いても保証いたしません。自己の責任の範囲で使用してください。

	このバージョンについてのご意見や感想などは、  onion softwareではなく、
	Sinagawaにフィードバックされるようお願いします。

	Divide by 0
	Mail->s@hspdx.net
	URL ->http://www.hspdx.net/

	※現在プラグインをHSP3.x仕様に移行するための作業を行っておりますので、
	本バージョンで起きた不具合などは新プラグインの完成を持って対応とさせて
	いただきます。あらかじめご了承ください。


・hspdx.dllの概要

	hspdx.dllは、DirectXを使ったアプリケーションをHSPから作成するための
	拡張プラグインです。DirectXは、Microsoftが配布している高速な画面書き換
	えのためのモジュール(Windows98には標準搭載)です。 hspdx.dllを使用す
	る場合には、DirectX7以降が必ずインストールされている必要があります。

	hspdx.dllで追加される主な機能は以下の通りです。

	・画面モード、解像度の変更
	・DirectXのサポート状況を知る機能
	・高速な画像の転送、透明色を含む転送など
	・キャラクターパターンの登録とアニメーション機能
	・スプライトの表示、移動の管理および衝突判定機能
	・垂直帰線単位でのウェイトと処理の負荷検出機能
	・256色をフルコントール可能なパレット機能
	・オートフェードイン、フェードアウト機能
	・Direct3Dを使った拡大縮小、回転、半透明エフェクト付き画像転送機能


・DirectXを使うと有利な点

	DirectXは、Mircosoftが配布している高速な画面描画のためのコンポーネント
	です。これは、それぞれのビデオカードごとにドライバを用意することにより、
	直接ビデオカード上のハードウエアを介して画面描画を行なうことを可能に
	するものです。
	DirectXでは、 通常のウインドゥ描画の時に比べていくつか有利な点がありま
	す。 その1つは、フルスクリーンで動作させることで、動作速度が安定するの
	と、アニメーションのちらつきがなくなることです。
	DirectXのフルスクリーンモードになると、 画面やパレットをすべて自由に使
	えるだけでなく、 垂直帰線(V-BLANK)中に画面を書き換えることができるので、
	非常にスムーズな動きをさせることができます。
	DirectXを使用した市販ソフトなどが、 スムーズに動いて見えるのは、この効
	果によるものです。hspdx.dllを使用した場合も、この点を十分に生かした
	ソフトを作成することができます。
	逆に言えば、フルスクリーンモードを使わない限りは、これらの恩恵には預か
	れません。ウインドゥモードでは、制約も多く、使える機能も制限されてしま
	うので少なくとも画面描画に関しては、 DirectXを使う利点はほとんどありま
	せん。


・初期化と終了の方法

	hspdx.dllでは、初期化を以下の手順に従って行なって下さい。
	以下のスクリプトでDirectXを初期化して、画面モードを変更します。
	もし、初期化でエラーが起こった場合は、ダイアログが表示され終了します。
	正常に初期化が終了すると、「*start」というラベルにジャンプします。

	;------------------------------------------------------------------

	wx=640:wy=480				; 画面の解像度の指定
	es_ini						; system初期化
	es_screen wx,wy,8			; スクリーン初期化
	if stat=1 : goto *dderr1
	if stat=2 : goto *dderr2

	goto *start				; 正常に完了

*dderr1
	dialog "DirectXの初期化に失敗しました",1
	end
*dderr2
	dialog "スクリーンの初期化に失敗しました",1
	end

	;------------------------------------------------------------------

*start
	gsel 0
	es_cls
	es_sync
	wait 100

	;------------------------------------------------------------------
	;		ここから先に描画スクリプトを書いてください
	;------------------------------------------------------------------

	この「*start」以降に、描画などの命令を実行させてください。
	一度フルスクリーンモードでDirectXの初期化を行うと、 [Ctrl]+[Alt]+[Del]
	キーによる中断はできなくなります。ですから、決して無限ループなどは作ら
	ずに、何かのキーを押したら終了するなどの抜け道を用意して、必ず終了でき
	るようにしておいてください。「stop命令」などのずっと停止するような命令
	を入れた場合は中断できなくなり、 Windowsに戻ることができなくなるので注
	意してください。

	通常のウインドゥモードに戻るには、DirectXのシステムを終了させる命令、

	es_bye

	を使用します。 ただし、この命令を入れなくてもHSPのクリーンアップ関数指
	定により、スクリプトの実行が終了した時点(end命令か、エラーが発生した場
	合)で自動的にウインドゥモードに復帰するようになっています。

	dialog命令を始めとするWindowsシステムを使った命令は、DirectXの使用中は
	機能しません。ウインドゥに描画する命令も使用できません。あくまで、
	hspdx.dllでサポートしている描画命令しか使用できなくなります。


・デバッグモードについて

	HSPDXをデバッグモードで実行すると、 「DEBUG.TXT」というファイルに実
	行ログを出力します。出力するのは初期化および終了時の動作のみですが、こ
	れを使うことで正常に動作しなかったときの原因を調べることができるかもし
	れません。

	使い方は、「HSPDX.DBG」をHSPディレクトリに置いた状態で、 ヘッダファ
	イルをインクルードする前に
	
	#define HSPDXFIX_DEBUG
	
	と記述してください。これで自動的にデバッグモード用のプラグインが読み込
	まれ、デバッグモードで動作するようになります。


・描画の方法

	hspdx.dllを使用する場合、画面の描画方法が通常とは異なります。
	描画のメインループでは、以下のような手順で画面描画を行なって下さい。

	1. 画面全体をクリアする(es_cls命令)
	2. 描画を行なう(es_copy命令、es_draw命令など)
	3. es_sync命令で画面の更新を行なう
	4. 「await 0」を入れる

	通常は、描画命令が実行されれば画面が変化しますが、 hspdx.dllでは上のよ
	うな手順が必要です。 ちょうど、redraw命令で画面の更新スイッチをOFFにし
	ているような状態とも考えられます。
	画面の更新は、 描画がすべて終わった時点でes_sync命令を実行して初めて行
	なわれます。 そして、es_sync命令の後にはawait 0を入れてWindowsにタスク
	を戻してください。この処理はすぐに終了するので全体の速度に影響は与えま
	せん。

	画面上の表示を動かす場合には、上の1〜4までのプロセスを1回として、1フレ
	ームごとに繰り返してください。つまり、毎回必ず画面をすべて書き直すとい
	うことです。

	画面をクリアして、すべての物体を描画し直していたら非常に時間がかかると
	思う方もいるかもしれません。 DirectXでは、これらの処理をグラフィックボ
	ード上のハードウェアで行なわせているために、非常に高速に処理されます
	(これはもちろんグラフィックボードにより性能が変わってきます)。ですから、
	通常のウインドゥ内の描画とは比べ物にならないほど一瞬で描画が終了します。

	画面への描画は、それぞれの命令で行ないますがすぐには反映されません。
	これは、バックバッファと呼ばれる見えない部分に描画を行なっているためで、
	es_sync命令を実行して始めて画面が一気に切り替わります。 これにより、ち
	らつきのないスムーズな画面書き換えが可能になるのです。

	画面に描画が可能な命令は、hspdx.dllで用意された描画命令のみです。HSPで
	通常使用する画面描画命令は使用できませんので注意してください。ただし、
	buffer命令で作成した仮想画面には通常通り描画や画像ファイルのロードが可
	能です。ウインドゥに対しての描画ができなくなるということです。

	画面に直接描画が可能な命令には、以下のようなものがあります。

	es_cls p1,p2,p3				画面クリア
		p1=画面クリア時のR値
		p2=画面クリア時のG値
		p3=画面クリア時のB値

	この命令は、画面全体を指定した色でクリアします。
	p1,p2,p3でクリアする色をRGBコードで指定可能です。
	パレットモードでは、 指定したRGBに最も近い色を持つパレットでクリアされ
	ます。
	p1,p2,p3の指定を省略すると、黒でクリアします。

	es_boxf p1,p2,p3,p4,p5		矩形塗りつぶし
		p1=塗りつぶし左上X座標
		p2=塗りつぶし左上Y座標
		p3=塗りつぶし右下X座標
		p4=塗りつぶし右下Y座標
		p5=描画先バッファNo.

	(p1,p2)-(p3,p4)の矩形範囲を現在選択されている色で塗りつぶします。
	色の選択は、color命令で行ないます。

	es_fmes "str",p1			フォント指定文字列表示
		"str"=表示文字列
		p1=描画を行うバッファNo.(デフォルト=-2)

	カレントポジション(pos命令で指定されたX,Y座標)から、指定した文字列を表
	示します。 文字の色は、現在選択されている色(color命令で指定)になり、フ
	ォントはfont命令で選択されているものが使用されます。

	p1には、描画を行うバッファNo.を指定します。 表示される画面イメージに対
	して描画を行う場合には省略して構いません。


	es_mes "str",p1				文字列表示
		"str"=表示文字列
		p1=描画を行うバッファNo.(デフォルト=-2)

	カレントポジション(pos命令で指定されたX,Y座標)から、指定した文字列を表
	示します。
	es_fmes命令と似ていますが、 文字の色やフォントが選べないかわりにこちら
	の方が高速に処理されます。
	文字の色は、常に白(RGB=255)となり、標準フォントが使用されます。

	p1には、描画を行うバッファNo.を指定します。 表示される画面イメージに対
	して描画を行う場合には省略して構いません。


・画像コピーの方法

	hspdx.dllでは、 画面に高速に画像を表示(コピー)することができる点が最も
	重要な要素です。 この処理は、DirectXによりそのビデオカードで最も高速な
	方法でコピーを行ないます。 通常、HSPではメインウインドゥに画像をコピー
	してくる場合には、そのコピー元の画像を保存しておくために仮想画面という
	ものを用意していました。hspdx.dllでも、基本的に画面とは別に仮想画面(オ
	フスクリーンバッファ)を用意して、 そこからメインの画面に画像をコピーす
	ることになります。以下にその手順を示します。

	1.buffer命令で仮想画面を確保して、そこにコピー元の画像を描画もしくはロ
	　ードする。
	2.es_buffer命令で、 HSPの仮想画面の内容をDirectXのオフスクリーンバッフ
	　ァに転送する。(この時、パレットも転送される)
	3.以降は、es_copy、es_zoom命令でオフスクリーンバッファから画像をコピー
	　してくることが可能。

	HSPが確保している仮想画面と、DirectXのオフスクリーンバッファは別のもの
	です。hspdx.dllでは、HSPの仮想画面に一旦画像を作成しておき、それをオフ
	スクリーンバッファに転送してから使用することになります。
	オフスクリーンバッファは、0〜127までのID番号で管理されます。
	(HSPのウインドゥIDとは別のものです)

	たとえば、

		buffer 3,640,480,1
		picload "test.bmp"
		es_buffer 0

	のようなスクリプトは、HSPの仮想画面ID3に「test.bmp」という画像を読み込
	んだ後、DirectXのオフスクリーンバッファID0にその内容を転送しています。

	オフスクリーンバッファに画像を転送して初めて、実際の画面への画像の転送
	が可能になります。 オフスクリーンバッファとは、DirectXが管理している画
	像メモリのことで、これには2つの種類があります。1つは、グラフィックボー
	ド上のメモリ空間で通常VRAMと呼ばれます。 もう1つは、通常のコンピュータ
	上のメモリ空間です。
	画像の転送では、オフスクリーンバッファがグラフィックボード上のメモリ空
	間にあった方が速度が速く有利です。しかし、グラフィックボード上のメモリ
	は空間が限られています。
	グラフィックボードには、 多いものだと64MByte以上のメモリが搭載されてい
	ますが、少ないものでは1MByte程度しか搭載されていません。
	つまり、 Windowsが動いている動作環境によって使用できるVRAMの量が違って
	くるということです。
	DirectXを使ってたくさんの画像を転送しようとしている人は、 この制限に注
	意して、なるべく多くの環境で動作するように工夫することが大切です。

	オフスクリーンバッファに画像を転送するes_buffer命令では、 オフスクリー
	ンバッファをVRAMに取るか、メインメモリに取るかを選ぶことが可能です。

	es_buffer p1,p2,p3,p4			VRAMイメージ転送
		p1=オフスクリーンバッファID
		p2=属性スイッチ(0〜2)
		p3=透明色
		p4=パレットモード時の転送方法(0〜2)
		p5=テクスチャ使用フラグ(0〜1)

		属性スイッチ=0 : オフスクリーンバッファをVRAMに取る。
		                 失敗した場合は、メインメモリに取る
		属性スイッチ=1 : オフスクリーンバッファをメインメモリに取る
		属性スイッチ=2 : オフスクリーンバッファをVRAMに取る

	2番目のパラメータの属性スイッチが、 オフスクリーンバッファをどこに取る
	かを指定するスイッチです。 通常は、0が指定されVRAMにオフスクリーンバッ
	ファが取れなかった場合には、メインメモリに取るという方法が取られていま
	す。

	実際の画像コピーは、es_copyおよびes_zoom命令で行ないます。
	es_copy命令は等倍の画像コピー、es_zoomは拡大縮小などの変倍が可能な画像
	コピーです。

	pos p1,p2
		p1=コピー先X座標
		p2=コピー先Y座標

	gmode p1,p2,p3
		p1=コピーモード ( 0=不透明 / 1〜2=透明 )
		p2=コピーされるXサイズ
		p3=コピーされるYサイズ

	es_copy p1,p2,p3,p4,p5
		p1=オフスクリーンバッファID
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ(省略可)
		p5=コピーするYサイズ(省略可)

	es_copy命令では、pos命令で指定した座標にgmodeで指定したモードで、 p1で
	指定したIDの(p2,p3)の座標から(p4,p5)のサイズの画像がコピーされます。

	HSPのcopy命令とは若干違いがありますが、 ほぼ同じ記述でコピーが可能です。
	gmode命令により、 コピーの際に透明色の処理をするかどうかを指定すること
	ができます。 コピーモードが0の場合は、コピー元の画像が完全にコピーされ
	ます。コピーモードが1か2の場合は、コピー元の画像で透明色に指定されてい
	る色はコピーされません。図形のまわりだけを切り抜いたようにコピーしてく
	る場合に有効です。

	p4,p5の画像サイズは省略することができます。その場合、gmode命令で指定し
	たサイズで転送を行います。

	objsize p1,p2
		p1=コピー先のXサイズ
		p2=コピー先のYサイズ

	es_zoom p1,p2,p3,p4,p5,p6,p7
		p1=オフスクリーンバッファID
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ(省略可)
		p5=コピーするYサイズ(省略可)
		p6=コピー先Xサイズ(省略可)
		p7=コピー先Yサイズ(省略可)

	es_zoom命令では、pos命令で指定した座標にgmodeで指定したモードで、 p1で
	指定したIDの(p2,p3)の座標から(p4,p5)のサイズの画像がコピーされます。た
	だし、コピー先のサイズは(p6,p7)で指定したサイズが使われます。
	これにより、コピー元とは違ったサイズでコピー先に転送してくることが可能
	です。

	(p4,p5)を省略するとgmodeで指定したサイズが、(p6,p7)を省略するとobjsize
	で指定したサイズがそれぞれのパラメータの代わりに使用されます。

	この機能は、グラフィックボードのハードウェアが変倍コピーをサポートして
	いる時は高速に動作しますが、そうでない場合はソフトウェアで処理されるた
	め劇的に速度が低下するので注意してください。


・パレットについて

	パレットモード使用中は、0〜255までのパレットに設定された色を使用可能で
	す。 ただし、ウィンドウモードではWindowsがパレットの一部をシステムで使
	用するため、使用できるパレットは10〜245までに限定されます。

	パレットは、 es_buffer命令で画像をオフスクリーンバッファに転送した時に
	HSPで使用していたパレットがそのまま使用され、es_buffer命令が複数回実行
	された場合は最後に実行した段階でのパレットを使用することになりますが、
	パレットを転送しないように設定することもできます。
	16bit 以上のカラーモードで実行している時はパレットを持ちませんのでパレ
	ットの転送は常に行われず、パレットを操作する命令は実行できません。

	hspdx.dllでは、画面のフェードイン・アウトが可能です。

	es_palfade p1,p2,p3			パレットフェード
		p1=フェード値(-256〜256)
		p2=フェードするスピード(0〜128)
		p3=フェードする色(Direct3D使用時のみ)

	p1で画像の明るさを設定します。p1が0の時が通常(設定パレットのまま)です。
	p1がマイナス値になるほど画像は暗くなり、プラス値になるほど明るくなりま
	す。p1が-256で完全な黒になり、256で完全な白になります。
	p2でフェードのスピードを指定することができます。 p2を省略するか、0の場
	合はes_palfade命令が実行されるとすぐにp1の指定が反映されます。
	1〜128の場合は、現在設定されている値からp1で指定した値までなめらかに変
	化します。指定した数値が大きいほど変化のスピードは速くなります。


・スプライトについて

	hspdx.dllでは、擬似的にスプライトの描画が可能です。
	スプライトとは、画面上の自由な場所に配置できて、好きな画像を表示できる
	矩形のことです。ちょうど、絵の描かれた四角いパネルを、画面の上に1枚1枚
	貼り付けていくようなものです。
	たとえば、シューティングゲームの自機や、敵キャラクターも図形を表示して
	いるスプライトと考えることができます。さらに、ミサイルや爆発マークなど
	すべての画像を出している最小単位がスプライトと言えます。このように、決
	まった図形を画面の任意の場所に表示する、入れ物をスプライトと呼んでいま
	す。
	普通、これを実現するためには、画像コピーを何度もする必要が出てきて煩わ
	しくなりがちです。
	スプライトという単位で、表示されている図形を管理することにより、より便
	利でシンプルにゲームなどを作成することができます。
	hspdx.dllでは、 このスプライト機能を扱いやすく、高機能にすることでゲー
	ムなどのソフト作成が楽に行なえるよう設計されています。

	スプライトを使用する場合には、最初にシステムを初期化する必要があります。
	システムの初期化は、es_ini命令で行ないます。

	スプライトの初期化をしたら、スプライトの表示が可能になります。
	スプライトは、スプライトNo.という番号で管理され、その1つ1つに別々な画
	像を表示させることができます。 スプライトとして表示される画像をキャラ
	クタパターンと呼び、これもまたキャラクタNo.という番号で管理されます。
	キャラクタパターンは、あらかじめオフスクリーンバッファの1部分を切り出
	し、登録しておく必要があります。
	この、スプライトNo.と、 キャラクタNo.をいくつまで登録できるようにする
	かをes_ini命令による初期化時に指定することができます。

	es_ini p1,p2,p3				システムの初期化
		p1=スプライトの最大数
		p2=キャラクタ定義の最大数
		p3=周の精度

	パラメータを省略すると、スプライトは512個まで、 キャラクタ定義数は1024
	個まで、周の精度は1周64度としてスプライトを初期化します。 es_ini命令は
	何度でも実行することができるので、スプライトをすべてクリアしたい時など
	にも使用可能です。また、スプライトとキャラクタのパラメータに上限はあり
	ませんので、大きな数値を指定することでスプライトやキャラクタの最大数を
	自由に増加させることができます。ただし、その分メモリを多く消費します。

	スプライトを使用するための準備として、キャラクタパターンの登録を行なう
	必要があります。
	キャラクタパターンの登録方法は、まず、

	es_size p1,p2,p3,p4			キャラクタサイズ指定
		p1=キャラクタのXサイズ
		p2=キャラクタのYサイズ
		p3=ヒットチェック領域(%)
		p4=不透明フラグ( 0=透明 / 1=不透明 )

	でキャラクタサイズを指定します。(p1,p2)がキャラクタのX,Yサイズになりま
	す。 p3は当たり判定を行なう際のヒットチェック領域が、何%になるかを指定
	します。100を指定すると、(p1,p2)で指定したサイズいっぱいにヒットチェッ
	クを行ないます。
	p4は、0ならば透明色を透過し、1ならば不透明のキャラクタパターンになりま
	す。
	キャラクタのX,Yサイズには特に制限はありませんが、 オフスクリーンバッフ
	ァから、はみ出すようなキャラクタパターンの指定は無効になります。
	es_size命令の設定は、以降のキャラクタ定義でずっと有効になります。

	これでサイズを設定したら、

	es_pat p1,p2,p3,p4			キャラクタ画像定義
		p1=キャラクタNo.
		p2=キャラクタパターンの左上X座標
		p3=キャラクタパターンの左上Y座標
		p4=表示フレーム数(0)

	で、キャラクタを登録します。
	p1のキャラクタNo.に、 (p2,p3)の座標から、es_sizeで設定した大きさのキャ
	ラクタが登録されます。　 ここで対象となる画像は、直前にes_buffer命令で
	VRAMに転送された画像データとなります。この画像の中の一部を切り出してき
	てキャラクタパターンとして登録しておきます。
	es_pat命令1回で、指定したキャラクタNo.にキャラクタパターンが登録されま
	す。たくさんのキャラクタパターンが必要な場合は、そのぶん登録をしておく
	必要があります。p4のパラメータは、キャラクタアニメーションをするための
	設定です。
	通常は省略しておいて構いません。

	キャラクタのパターンが登録できたら、次にスプライトの登録をします。
	基本的な使い方は、

	es_set p1,p2,p3,p4,p5		スプライト設定
		p1=スプライトNo.
		p2=スプライトX座標
		p3=スプライトY座標
		p4=キャラクタNo.
		p5=描画モード(0=DirectDraw、1=Direct3D)
		p6=優先順位(-32768〜32767)

	で、スプライトを登録することができます。
	p1は、スプライトNo.、(p2,p3)は画面上でのスプライトの座標になります。
	この座標を左上として、p4で指定したキャラクタNo.が表示されます。

	スプライト座標は、-32767〜32767までの範囲が設定可能です。
	通常は画面の左上を(0,0)として画面解像度の範囲に表示されますが、 これを
	変更することも可能です。

	p5は描画をDirectDrawとDirect3Dのどちらで行うかを指定するためのものです。
	これについては後述の「Direct3D描画について」の項を参照してください。

	p6でスプライトの優先順位を指定します。優先順位は値が小さいほど手前に表
	示されるようになり、同一値の場合はスプライトの小さい方が優先されます。
	また、 従来通りスプライトNo.の小さい順に描画するようにすることもできま
	す。

	es_window p1,p2,p3,p4		スプライト表示エリア設定
		p1=スプライト表示基点X座標
		p2=スプライト表示基点Y座標
		p3=スプライトを表示するX座標
		p4=スプライトを表示するY座標

	この命令により、スプライトを画面内の限られた範囲内にのみ表示することが
	可能です。指定した範囲内がスプライトの表示エリアになります。
	スプライト以外の描画命令には、この範囲は適用されません。

	以上で、スプライトを表示するための準備が整います。
	実際の描画は、メインループでスプライト描画命令を実行した時に行なわれま
	す。
	たとえば、以下のようなメインループを構成してください。

	*gmain
		stick ky,$1f					; キーの情報を取得
		if ky&$80 : goto *owari			; [ESC]中断チェック

		es_cls							; 画面クリア
		es_draw							; スプライト描画
		es_sync							; 画面の更新
		await 0							; Systemアイドル

		goto *gmain

	上の例では、es_cls命令でまず画面をクリアしておき、 es_draw命令で登録さ
	れているすべてのスプライト描画を行ないます。 そして、es_sync命令で画面
	の更新を行ない、await 0はお約束で入っています。
	このようにes_draw命令により、 あらかじめ登録されているすべてのスプライ
	トを描画します。同時にたくさんのスプライトが重なって表示される場合は、
	スプライトNo.が小さい数になるほど手前に(優先順位が高く)表示されます。
	es_cls命令とes_draw命令の間に、es_copy命令などで画像を転送すれば、スプ
	ライトの背景となりますし、es_draw命令の後にes_copy命令などで画像を転送
	すると常に手前にある画像となります。
	大きなキャラクタパターンを優先順位の低い (スプライトNo.の大きい)スプラ
	イトとして登録しておき、背景とすることも可能です。

	スプライトの設定を変更するための命令がいくつか用意されています。

	es_chr p1,p2				chr値設定
	es_type p1,p2				type値設定
	es_flag p1,p2				flag値設定

	これらは、p1でスプライトNo.を指定、p2で値を指定します。
	es_chr命令は、キャラクタNo.を変更します。
	es_type命令は、 ユーザーの好きに設定することができる識別用の値(type値)
	を指定します。
	flag値は以下のような意味を持ちます。

		flag値=

			0    :  スプライト未登録

			bit 0-6 : 1〜127 カウントダウンタイマー
			bit 7   : カウントダウン消失SWITCH

			bit 8 :  $100 スプライト表示ON
			bit 9 :  $200 スプライト移動ON
			bit10 :  $400 自由落下移動ON
			bit11 :  $800 BGとリンクして移動(未実装)
			bit12 : $1000 ボーダー消去無効ON
			bit13 : $2000 ボーダーXで反転SWITCH
			bit14 : $4000 ボーダーYで反転SWITCH
			bit15 : $8000 カウントダウンタイマー時点滅SWITCH

	flag値は、スプライトが有効になっている場合は、 通常は$100(256)が自動的
	に設定されています。普段は特にいじる必要はありません。それ以外のビット
	によりスプライトの動作を指定できます。
	スプライトが未登録の場合は、0になっています。
	flag値のカウントダウンタイマーは、通常は0になっています。
	これを1〜127に設定すると、表示するたびに1づつマイナスされていきます。
	カウントダウンタイマーがマイナスされている時には、スプライトが自動的に
	点滅します。これは、bit15(カウントダウンタイマー時点滅SWITCH)が1の時は
	OFFにすることができます。
	カウントダウンタイマーが0になった時点で、 そのスプライトは消去(未登録)
	されます。 ただし、bit7(カウントダウン消失SWITCH)が1の場合はこの機能は
	働きません。
	このカウントダウンタイマーにより、
		・一定時間、点滅するスプライト( bit7=1 / bit15=0 )
		・一定時間、点滅後に消滅するスプライト( bit7=0 / bit15=0 )
		・一定時間後に消滅するスプライト( bit7=0 / bit15=1 )
	を実現することができます。

	また、 es_type命令で指定できる動作の一部を拡張した命令として以下のよう
	なものがあります。

	es_blink p1,p2,p3			スプライト点滅設定
	es_bound p1,p2,p3			弾みやすさ設定
	es_gravity p1,p2,p3			落下加速度設定

	es_blink命令は、 スプライトの点滅を指定するためにes_flag命令から独立・
	拡張した命令で、es_flag命令だと127フレームまでに限られていた点滅時間を
	それ以上に設定することができます。p1でスプライト番号(以下の命令も同様)、
	p2で点滅終了後の動作、p3で点滅時間を指定します。

	es_bound命令は自由落下移動中に画面端に接触した時に起こるスプライトの弾
	みを設定するものです。p2で弾みの大きさを指定し、p3で弾みを行う方向を指
	定します。

	es_gravity命令は自由落下移動時の移動方向並びに加速度を設定するものです。
	p2,p3にそれぞれX,Y方向の加速度を指定します。

	次に、スプライトの座標を変更する場合は、

	es_pos p1,p2,p3				スプライト座標設定
		p1=スプライトNo.
		p2=スプライトX座標
		p3=スプライトY座標

	を使用します。 p1でスプライトNo.を指定して、(p2,p3)でX,Y座標を設定しま
	す。es_posは、設定済みのスプライトの座標だけを変更する命令です。

	1フレームごとに自動的にスプライトの座標を移動させることも可能です。 以
	下の命令が用意されています。

	es_apos p1,p2,p3			スプライト移動設定
		p1=スプライトNo.
		p2=1フレームにX方向に移動するドット数
		p3=1フレームにY方向に移動するドット数
		p4=移動スピード(%)

	p1でスプライトNo.、p2,p3でX,Y方向の増分を指定します。
	p4で移動スピードを%で指定します。p4を省略するか、100を指定した場合は、
	100%のスピードとなり、1フレームに(p2,p3)で指定した増分だけ移動し続けま
	す。もし、移動スピードを50(%)にして、増分が(+4,-2)に指定された場合は、
	実際には、(+2,-1)の増分になります。増分の単位は、1ドット以下になった場
	合でも正確に移動を行ないます。 たとえば、1フレームに、(1,0)の移動を10%
	で行なった場合でも、 10フレーム後に1ドット移動するように計算されます。

	es_adir p1,p2,p3			スプライト移動方向設定
		p1=スプライトNo.
		p2=移動する方向
		p3=移動スピード(%)

	es_adir命令は、es_apos命令と同じく自動的にスプライトを移動するように設
	定する命令ですが、es_adir命令では方向を指定して移動を行ないます。
	p1でスプライトNo.、p2で方向を指定します。 方向は、es_iniで設定した数値
	までで指定します。0が真下となり、反時計回りに増加していきます。
	p3で移動スピードを%で指定します。 p3を省略するか、100(%)を指定した場合
	には、指定した方向に1フレームにつき1ドットの距離を移動します。

	es_aim p1,p2,p3,p4			スプライト参照座標設定
		p1=スプライトNo.
		p2=移動先のX座標
		p3=移動先のY座標
		p4=移動スピード(%)

	es_aim命令は、 es_adir命令と同じく指定した方向にスプライトを移動させる
	ためのものです。 es_aim命令では、方向の替わりに移動する目標となるX,Y座
	標を指定します。スプライトは、現在の座標から、目標となる座標への方向を
	計算し移動を開始します。
	この命令は、たとえば敵から発射されるミサイルがプレイヤーを狙って移動す
	るようにしたい時などに役立ちます。
	p4で移動スピードを%で指定します。 p3を省略するか、100(%)を指定した場合
	には、指定した方向に1フレームにつき1ドットの距離を移動します。

	スプライトを移動させる上で知っておくと便利な機能の1つとして、 スプライ
	ト自動削除機能があります。これは、画面外の座標が設定されたり、スプライ
	トの自動移動で画面外へ出てしまったものを自動的に削除する機能です。この
	ために、スプライト有効エリアというのが設定されています。スプライト有効
	エリアの範囲内にあるスプライトのみが有効となり、その範囲から出たスプラ
	イトは自動的に削除されるというしくみになっています。
	通常、スプライト有効エリアは、表示範囲(640x480)の外128ドット以内になっ
	ています。　 つまりスプライトの取れる座標の範囲として、(-128,-128)から
	(768,608)までということになります(解像度が640x480の場合)。
	このスプライト有効エリアを変更する命令がes_area命令です。

	es_area p1,p2,p3,p4			スプライト有効エリア設定
		p1=有効エリアの左上X座標
		p2=有効エリアの左上Y座標
		p3=有効エリアの右下X座標
		p4=有効エリアの右下Y座標

	スプライトの有効エリアを設定します。
	スプライト座標が(p1,p2)-(p3,p4)の範囲内にないものは、 自動的に削除され
	ます。
	スプライトの表示範囲が設定されると(es_window命令)自動的に、 スプライト
	有効エリアも再設定されます。


	スプライトに設定された情報を読み出したり、検索することも可能です。以下
	のような命令が用意されています。

	es_get p1,p2,p3				スプライト情報取得
		p1=情報が代入される変数名
		p2=スプライトNo.
		p3=info number

	この命令では、 p1で指定した変数名に、p2のスプライトNo.の情報を代入しま
	す。情報の種類は、p3のinfo numberで指定します。 詳しくは命令リファレン
	スを参照してください。

	es_new p1,p2					新規スプライト取得
		p1=新規No.が代入される変数名
		p2=検索を開始するスプライトNo.

	この命令は、スプライトNo.の中で使われていないNo.を検索します。
	p2で指定したNo.以降で空きのあるNo.を、p1で指定した変数に代入します。空
	きがない場合は、-1が代入されます。
	この命令は、以前のバージョンとの互換性のために残された命令です。以前の
	バージョンを使用して作成されたスクリプトを動かす時以外はes_exnew命令を
	使用するようにしてください。

	es_exnew p1,p2,p3,p4			新規スプライト取得
		p1=新規No.が代入される変数名
		p2=検索を開始するスプライトNo.(0〜511)
		p3=検索を終了するスプライトNo.(0〜511)
		p4=増分

	この命令は、スプライトNo.の中で使われていないNo.を検索します。
	p2〜p3で指定したNo.の間で空きのあるNo.を、p1で指定した変数に代入します。
	空きがない場合は、-1が代入されます。
	p4には検索するスプライトNo.の増分を指定します。 省略するとp2、p3から自
	動的に設定するため、通常は明示する必要はありません。
	※es_new命令と同様の処理を行いたい場合は、p3に-1を指定してください。

	es_find p1,p2,p3			スプライト検索
		p1=スプライトNo.が代入される変数名
		p2=検索対象となるtype値
		p3=検索を開始するスプライトNo.
		p4=検索を終了するスプライトNo.
		p5=増分

	この命令は、登録されているスプライトの中で指定したtype値を持つもののス
	プライトNo.を検索します。
	p2のtype値には、複数のtypeを同時に指定することができます。
	たとえば、type1とtype4を対象にする場合は、1+4で5を指定します。

	p2の指定を省略するか、 0を指定した場合にはすべてのtype値を持つスプライ
	トが検索の対象になります。

	検索は、p3で指定されたスプライトNo.からp4で指定されたNo.まで順番に探し
	ていきます。
	これを省略すると、No.0からすべてのスプライトを検索します。
	該当するスプライトが見つかった時点で、p1に結果を代入して終わります。
	検索の結果、該当するスプライトがなかった場合には、-1が代入されます。

	p5は検索するスプライトNo.の増分を指定するもので、 省略するとp3、p4から
	自動的に設定されますので通常は指定しなくても構いません。

	es_check p1,p2,p3,p4,p5,p6	衝突判定取得
		p1=結果が代入される変数名
		p2=チェックの対象となるスプライトNo.
		p3=検索対象となるtype値
		p4=判定フラグ(0=回転を考慮しない、1=回転を考慮する)
		p5=検索を開始するスプライトNo.
		p6=検索を終了するスプライトNo.

	es_check命令はスプライト同士の衝突判定を行なう命令です。
	p2で指定されたスプライトNo.と衝突している (重なっている)スプライトを検
	索して、p1で指定した変数に結果を代入します。
	p3で衝突判定の対象となるtype値を指定することができます。
	p3が省略されるか、 0の場合は、すべてのスプライトとの衝突を判定します。
	p3のtype値には、複数のtypeを同時に指定することができます。
	たとえば、type1とtype4を対象にする場合は、1+4で5を指定します。
	衝突判定には、キャラクタパターンを登録した時に指定したヒットチェック領
	域(%)が使用されます。 実際に画像が重なっていても、ヒットチェック領域の
	範囲が重ならない限りは衝突とみなされません。
	結果はp1で指定した変数に代入されます。もし、衝突しているスプライトがな
	かった場合には-1が、 衝突しているスプライトがあれば、そのスプライトNo.
	が代入されます。衝突しているスプライトが複数あった場合には、スプライト
	No.の少ないものが優先されます。

	一度設定したスプライトを消去(削除)する場合は、以下の命令を使います。

	es_kill p1					スプライト削除
		p1=スプライトNo.

	p1で指定したスプライトNo.は削除され未登録になります。

	es_clear p1,p2				複数スプライト削除
		p1=スプライトNo.
		p2=削除される個数

	p1で指定したスプライトNo. 以降のスプライトが削除され未登録になります。
	p2で削除されるスプライトの数を指定することができます。
	p1とp2の指定を省略した場合は、すべてのスプライトが削除されます。


・スプライトのキャラクタ・アニメーション

	スプライトには、通常1つのキャラクタNo.しか指定することはできません。
	これは、スプライトに対して常に静止画像を貼り付けていることになります。
	しかし、ゲームなど多くの場合は画像がアニメーションしていることが多いで
	す。
	hspdx.dllでは、 キャラクタパターンを定義する時にアニメーションの設定を
	行なうことが可能です。アニメーション設定されたキャラクタは、自動的にア
	ニメーションNo.が変わり、 スプライトを登録するだけで自動的に画像がアニ
	メーションで表示されるようになります。

	たとえば、 キャラクタNo.が自動的に1→2→3→4というように変化するように
	設定するには、

		es_size 32,32
		es_pat 1,0,0,8
		es_pat 2,32,0,8
		es_pat 3,64,0,8
		es_pat 4,96,0

	のように設定することができます。まず、es_size命令で32x32ドットの
	キャラクタの設定をして、es_pat命令で1から4までのキャラクタを定義します。
	es_pat命令の4番目のパラメータに、1以上を指定した場合は、アニメーション
	するキャラクタとなり、指定した数のフレームだけ待ってから次の番号に切り
	替えます。 つまり、上の例ではキャラクタNo.1を表示して、その8フレーム後
	に、キャラクタNo.2を表示します。 そして、またその8フレーム後には、キャ
	ラクタNo.3になります。 さらに8フレーム後にキャラクタNo.4に切り替わり以
	降はそのままとなります。
	このように連続した番号で、アニメーション用の待ちフレーム数を指定するこ
	とで次々にキャラクタNo.を変化させることが可能になります。

	しかし、上の例ではキャラクタNo.が4になった時点で止まったままになってし
	まいます。これを、1→2→3→4→1→2→…というように無限に繰り返してアニ
	メーションをするように設定することも可能です。

	es_link p1,p2				アニメーション設定
		p1=キャラクタNo.
		p2=ループアニメーションするキャラクタNo.

	es_link命令は、アニメーションで次に表示するべきキャラクタNo.を指定する
	ための命令です。
	p1で指定したキャラクタNo.が、指定されたフレームだけ表示した後に、 p2で
	指定したキャラクタNo.に切り替わるように設定を行ないます。

	ですから、1→2→3→4→1→2→…という設定にする場合は、

		es_size 32,32
		es_pat 1,0,0,8
		es_pat 2,32,0,8
		es_pat 3,64,0,8
		es_pat 4,96,0,8
		es_link 4,1

	このようにスクリプトを書けばOKです。


・スプライトtype値の設定について

	スプライトのtype値は、ゲームなどで物体の識別をする時に有効に使うことが
	できます。type値は、es_type命令で設定することができます。
	この値は、ユーザーの好きに設定することができる識別用の値となります。設
	定できる値は、

		1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768

	の計16種類です。
	es_set命令でスプライトを設定した直後は、type値は1になっています。
	この値は、衝突判定やスプライトの検索対象を指定するのに使用されます。
	スプライトが示す物体の種別を登録しておくのが主な利用法です。

	たとえば、シューティングゲームで自機はtype1、敵はtype2、敵のミサイルは
	type4、自分のミサイルはtype8、といった感じでtype値をスプライトを出す時
	に設定しておきます。
	こうしておけば、自機が敵か、または敵ミサイルに衝突しているかを判定する
	場合にチェックがしやすくなります。es_check命令では、複数のtype値を同時
	に判定できるので、 この例で言うと自機のスプライトに対して、敵(type2)と
	敵ミサイル(type4) が衝突しているかを調べて自分の生死を決めることができ
	ます。
	また、自分のミサイルが敵に衝突しているかを判定する場合には、まず
	es_find命令でtype8のスプライトだけを検索して、 その1つ1つが、敵(type2)
	と衝突しているかを判定すればいいわけです。

	このようにtype値をあらかじめ割り振っておくことで、スプライトの管理をス
	マートに行なうことが可能です。


・ウィンドウモードについて

	HSPDXでは、ウィンドウモードをサポートしています。
	このモードを使用することにより、デバッグをよりスムーズに行うことができ
	ますが、フルスクリーンモードでの動作に比べていろいろと制約があり、環境
	によってはパフォーマンス面で HSPの標準ウィンドウでの動作とほとんど変わ
	らないことがあるため、デバッグ専用のモードだと割り切って使用した方がよ
	いでしょう。

	ウィンドウモードでHSPDXを動作させるには、 まずes_screen命令でウィン
	ドウモードに指定します。

	es_screen p1,p2,p3,p4,p5,p6		画面モードの変更
		p1=DirectX使用時の解像度X
		p2=DirectX使用時の解像度Y
		p3=DirectX使用時のカラーモード(bpp)
		p4=パレット変換モード(0=236色/1=254色/2=256色)
		p5=画面モード(0=フルスクリーン/1or2=ウィンドウモード)
		p6=Direct3D使用フラグ(0=使わない/1=使う)

	p5に1か2を指定することで、ウィンドウモードで動作するようになります。
	後は今まで通りスクリプトを記述するだけです。

	ウィンドウモードで動作するときの制約は、以下の通りです。

	パレットモードで動かす場合、使用できる色数は236色までです。
	ウィンドウモード時は、内部ではデスクトップの色数に合わせて動作しますの
	で、デスクトップが256色でない場合はパレット関係の命令は無視されます。
	また、RGB値が同一のパレットが2色以上ある場合、それらは全て同じ色として
	扱われるため、透明色と同じ色は全て透過されてしまいます。
	
	ハイカラー以上で動かす場合、 デスクトップの色数が256色だとエラーになり
	ます。
	
	p5=2の時は、サーフェスをシステムメモリに置きます。これを指定することで、
	p5=1の時にウィンドウモードでの動作が遅い環境においてパフォーマンスが改
	善される事があります。


・Direct3D描画について

	es_copy命令などで使われていたDirectDrawによる描画では、 単純な画像コピ
	ーと拡大縮小しかできませんでしたが、このDirect3D描画を使うことによりフ
	ルカラーでもぼやけない拡大縮小や回転、半透明と言ったエフェクトのかかっ
	た画像コピーを行うことができるようになります。

	この機能を使うためには、グラフィックボードがDirect3Dに対応している必要
	があり(GeForce、またはRADEON系チップを積んだものを推奨)、 対応していな
	いハードウェアではソフトウェアエミュレーションで描画を行うためパフォー
	マンスが大きく低下します。また、対応していたとしてもグラフィックボード
	によってはいろいろな制限があるため注意が必要です。

	なお、このDirect3D描画はDirectDrawでは行えない回転や半透明のエフェクト
	を実装するためのもので、将来3D描画をサポートすることを意味するものでは
	ありませんのでご了承下さい。

	Direct3D描画を行うには、DirectXを16bit以上のカラーモードで初期化し、さ
	らにDirect3D使用フラグを立てることでDirect3Dの初期化を行います。
	パレットモードではDirect3D描画を行うことはできません。


	es_screen p1,p2,p3,p4,p5,p6		画面モードの変更
		p1=DirectX使用時の解像度X
		p2=DirectX使用時の解像度Y
		p3=DirectX使用時のカラーモード(bpp)
		p4=パレット変換モード(0=236色/1=254色/2=256色)
		p5=画面モード(0=フルスクリーン/1or2=ウィンドウモード)
		p6=Direct3D使用フラグ(0=使わない/1=使う)

	es_screen命令が実行されると、 Direct3D描画機能を使用できるようになりま
	す。

	次に、Direct3D描画でテクスチャとして扱うための画像をバッファに転送しま
	す。

	es_buffer p1,p2,p3,p4			VRAMイメージ転送
		p1=オフスクリーンバッファID
		p2=属性スイッチ(0〜2)
		p3=透明色
		p4=パレットモード時の転送方法(0〜2)
		p5=テクスチャ使用フラグ(0〜1)

	p5に1を指定することで、 そのバッファをテクスチャをして扱うことができる
	ようになります。

	注意点として、テクスチャとして使用するバッファからDirectDrawで描画を行
	うとハードウェアアクセラレーションが働かず、逆にDirect3D描画を行うため
	には必ずこのフラグを指定しなければなりません。したがって、一つのバッフ
	ァにDirectDrawとDirect3Dで使用する画像を共存させない方が速度面で有利に
	なります。

	また、グラフィックボードによって正常に画像が転送されない場合があります。
	そのような場合は以下の点に問題がないかを確認してみてください。
	・画像サイズが256ドット、 もしくはグラフィックボードの上限を超えていな
	　いか
	・画像サイズは2の累乗(1,2,4,8,16,32,64,128,256,...)になっているか
	・画像の縦と横のサイズが同じになっているか

	そして、es_excopy命令で描画を行います。 拡大や回転と言ったエフェクトも
	この命令で一括して指定します。

	es_excopy p1,p2,...,p13			Direct3D描画による画像コピー
		p1=オフスクリーンバッファID(0〜63)
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ
		p5=コピーするYサイズ
		p6=表示するXサイズ
		p7=表示するYサイズ
		p8 =X軸回転角(0〜4095)
		p9 =Y軸回転角(0〜4095)
		p10=Z軸回転角(0〜4095)
		p11=ブレンドファクター(0〜120)
		p12=α値(0〜256)
		p13=ライト色(0〜$ffffff)

	オフスクリーンバッファIDp1の (p2,p3)から(p4,p5)のサイズの画像を(p6,p7)
	の大きさで、pos命令で指定した座標にコピーします。 (p4,p5)と(p6,p7)に異
	なる値を指定することで、拡大縮小コピーを行えます。
	es_copy命令と同様に、gmode命令で透明色を透過することができます。

	(p4,p5)か(p6,p7)のいずれかに負の数を指定すると、反転表示が可能になりま
	す。このとき、

	・(p4,p5)で反転を指定した場合、(p2,p3)はコピー元の左(上)座標ではなく、
	　右(下)座標を指定することになる
	・(p6,p7)で反転を指定した場合、pos命令で指定した座標から左(上)に表示さ
	　れる

	と言うように、パラメータの指定方法などが通常とは異なりますので注意して
	ください。

	p10で画像の回転を行います。 回転角は一周4096度で固定ですので注意してく
	ださい。

	p11とp12で半透明処理のためのブレンドファクターとα値を設定します。
	ブレンドファクターは半透明処理のアルゴリズムを設定するもので、転送先の
	ブレンディング係数*11+転送元のブレンディング係数で指定するのが本来の使
	い方ですが、扱いが難しいため以下の定数から使用したい半透明処理を選んで
	ください。もちろん、使い方がわかるのであれば直接値を指定することでいろ
	いろな効果を出すこともできます。

	・ESB_ALPHA						アルファ合成
	　ごく普通の半透明です。

	・ESB_ADD						加算合成
	　転送先に転送元画像の輝度を加算する半透明です。

	・ESB_MULTIPLE					乗算合成
	　転送先に転送元画像の輝度を乗算する半透明です。この半透明はα値の影響
	　を受けません。

	・ESB_NEGATIVE					色反転
	　転送先画像の色を反転します。乗算合成同様α値の影響を受けません。

	・ESB_SHADOW					シャドウ
	　転送元画像を黒一色のシルエットと見なした上でアルファ合成を行います。

	α値は透明度を指定するものです。ブレンドファクターによってはこの値を大
	きくすることで画像が透明になっていったり、透明度が一定でこの値の影響を
	受けないものがあります。　　　　上記の半透明処理のうち、ESB_MULTIPLEと
	ESB_NEGATIVE以外は全てこの値を小さくすることで透明になっていきます。
	ただし、ハードウェアでα値をサポートしていない場合、このパラメータの値
	に関係なくα値は256に固定となります。

	p13のライト色とは、画像を表示するためのライトの色のことで、 この値を変
	更することで画像内の特定の色成分を押さえて表示することができます (強調
	することはできません)。 　パラメータは16進数6桁のRGB値で指定しますが、
	後述のes_rgbcalcマクロを利用することで RGB値を個別に指定することもでき
	ます。

	このほかにも、Direct3Dを使った描画命令として以下の命令があります。

	es_exboxf p1,p2,...,p13			Direct3Dによる矩形描画
		p1,p2=塗りつぶし左上座標
		p3,p4=塗りつぶし右下座標
		p5=塗りつぶし色もしくは左上頂点色
		p6,p7,p8=回転角
		p9=ブレンドファクター
		p10=α値
		p11,12,13=各頂点色(順に右上、左下、右下)

	(p1,p2)-(p3,p4)の矩形範囲をp5の色で塗りつぶします。 p5は16進数6桁でRGB
	値を指定します。たとえば、(255,0,0)の赤色の場合は$ff0000と指定します。
	p3,p4を省略するとgmode命令のサイズで塗りつぶしを行い、　p5を省略すると
	color命令で指定した色を使用します。


	Direct3Dを使ったエフェクトは、スプライトに対してかけることもできます。
	そのためには、まずスプライトをDirect3Dで描画するものとして設定します。

	es_set p1,p2,p3,p4,p5,p6		スプライト設定
		p1=スプライトNo.
		p2=スプライトX座標
		p3=スプライトY座標
		p4=キャラクタNo.
		p5=描画モード(0=DirectDraw、1=Direct3D)
		p6=優先順位(-32768〜32767)

	p5に1を指定することで、 そのスプライトはDirect3Dで描画することになりま
	す。先述の通り、Direct3D描画するキャラクタはテクスチャとして扱うバッフ
	ァに登録されている必要があります。

	es_effect p1,p2,...,p9			スプライト特殊効果設定

		p1=スプライトNo.
		p2,p3=表示サイズ
		p4,p5,p6=回転角
		p7=ブレンドファクター(-1で合成OFF)
		p8=α値(0〜256)
		p9=ライト色(0〜$ffffff)

	Direct3D描画の対象になっているスプライトに対して、この命令でエフェクト
	をかけることができるようになります。省略されたパラメータは前回実行時の
	設定を保持します。
	パラメータの役割はes_excopy命令と同じですが回転角の有効範囲はes_excopy
	命令と違ってes_ini命令での設定に依存しますので注意してください。

	es_check p1,p2,p3,p4			衝突判定取得
		p1=結果が代入される変数名
		p2=チェックの対象となるスプライトNo.
		p3=検索対象となるtype値
		p4=判定フラグ(0=回転を考慮しない、1=回転を考慮する)
		p5=検索を開始するスプライトNo.
		p6=検索を終了するスプライトNo.

	es_effect命令を使ってスプライトを回転表示した場合、 そのままだと回転し
	ていない状態での衝突判定を行ってしまいます。そこで、es_check命令実行時
	にp4に 1を指定することでスプライトの回転を当たり判定に反映させることが
	できるようになります。

	通常、 16bit以上のカラーモードではパレットがないためフェードイン・アウ
	トを行うことができませんが、Direct3D描画が有効になっていると半透明処理
	を利用してフェードイン・アウトができるようになります。

	es_palfade p1,p2,p3				パレットフェード
		p1=フェード値(-256〜256)
		p2=フェードするスピード(0〜128)
		p3=フェードする色(Direct3D使用時のみ)

	この場合はフェード値の正負に関係なくp3で指定した色でフェードを行います。
	p3は16進数6桁のRGB値で指定します。そのほかはパレットモード時と使い方は
	同じです。


・命令リファレンス

	es_ini p1,p2,p3					システムの初期化
		p1=スプライトの最大数
		p2=キャラクタ定義の最大数
		p3=周の精度(64〜4096)
		※p1,p2の上限=メモリの許す限り

	hspdx.dllシステムの初期化を行ないます。
	パラメータを省略すると、スプライトは512個まで、 キャラクタ定義数は1024
	個までを最大としてスプライトを初期化します。es_ini命令は何度でも実行す
	ることができるので、スプライトをすべてクリアしたい時などにも使用可能で
	す。

	p3はes_adir命令などで使用する角度を、一周何度にするかを指定します。 指
	定できる数値は、64と256の倍数、そして360の倍数です。それ以外の数値を指
	定した場合は、指定した値未満で条件に合う一番近い数値が設定されます。

	空きメモリが不足しているなど、何らかの理由でメモリ確保に失敗した時は、
	statに1が返ります。


	es_screen p1,p2,p3,p4,p5,p6		画面モードの変更
		p1=DirectX使用時の解像度X
		p2=DirectX使用時の解像度Y
		p3=DirectX使用時のカラーモード(bpp)
		p4=パレット変換モード(0=236色/1=254色/2=256色)
		p5=画面モード(0=フルスクリーン/1or2=ウィンドウモード)
		p6=Direct3D使用フラグ(0=使わない/1=使う)

	画面の解像度を変更し、DirectXが使用可能な状態にします。
	(p1,p2)で解像度を指定します。

	p3はカラーモードを指定します。 パレットモードを使用する場合は8、ハイカ
	ラー以上を使用する場合は16,24,32のいずれかを指定します。
	ただし、 グラフィックボードによっては24または32bitの画面モードをサポー
	トしていないものもありますが、その場合は自動的にサポートしている方のモ
	ードで初期化を行います。

	p4のパレット変換モードは、画面で使用するパレットの数を設定します。
	通常は0を指定して下さい。 パレットの数を254または、256にしたい場合に値
	を変更します。 ただし、236よりも多いパレット数を指定すると、フルスクリ
	ーンモード以外では動作しなくなります。 また、254よりも多いパレットを指
	定できないグラフィックボードが存在するので、なるべくパレット変換モード
	は、0または1で使用してください。

	また、パレット変換モード0の時に使用するパレットは0〜235までです。HSPの
	通常ウィンドウとは異なりますので注意してください。
	p5=1または2の時は、DirectXをウィンドウモードで動かします。
	ウィンドウモードで動かす際の注意点などは「ウィンドウモードについて」の
	項を参照してください。

	p6は半透明などの特殊描画を行うためにDirect3Dを使用するかどうかのフラグ
	です。このパラメータを1に設定するとDirect3Dの初期化を行い、es_excopy命
	令を実行できるようになります。


	es_bye							システム解放

	hspdx.dllシステムの切り離しをします。
	画面モードをウインドゥモードに戻し、確保されていたメモリをすべて解放し
	ます。 これは、クリーンアップ関数としてHSP終了時に自動的に呼び出されま
	す。


	es_sync p1,p2					画面更新とウェイト
		p1=ウェイト時間(ms)
		p2=VSync待ちフラグ
		
		p2=0 : VSyncを待つ
		p2=1 : VSyncを待たずにフリップする
		p2=2 : VSyncを待たずにBltで裏画面の内容を表画面にコピーする

	描画された画面を更新するとともに、 以前のes_sync命令実行時から経過した
	時間を測定して、システム変数statに返します。

	p1で、最低でも何msのウェイトを取るかを指定することができます。
	p1を省略するか、0を指定した場合は最低ウェイト時間はなくなります。
	es_sync命令は、垂直帰線(VSync)を待って画面を更新します。
	つまり、最低でも以前es_sync命令が呼ばれてから、1フレーム分の時間はウェ
	イトが取られます。

	1フレーム分の時間は、 モニタに出力されている映像周波数にもよりますが、
	多くの場合1/60秒程度になっています。これは、多くのビデオゲームや家庭用
	ゲーム機が画面更新しているサイクルと同じです。
	通常は、es_sync命令のみでウェイトの指定をしなくても、 約1/60秒ごとのウ
	ェイトとなります。プログラムの処理が多かったり、画面の書き換えに要する
	時間が多くなると、 更新が1フレームごとに行なわれなくなる時が出てきて、
	動きがガタガタとしたぎこちない、いわゆる「処理落ち」の状態になります。
	このような時は、最低ウェイト時間を入れて、 画面の更新を2フレームごとに
	するなどして対処することができます。

	また、p1にマイナスの値を入れることで前回の実行で取りすぎたウェイトをで
	きるだけ取り戻すようにすることもできます。 FPSが安定しない場合はこちら
	を使うことで改善されるかもしれません。

	先述の通り、 es_sync命令はVSyncを待ってウェイトを取りますが、p2に1また
	は2を指定するとVSyncを待たずに画面を更新することができます。これにより
	リフレッシュレート以上の速度でウェイトを取ることができますが、画面がブ
	レたりちらつきが発生しますので、普段は指定する必要はありません。
	なお、ウィンドウモードでは基本的にVSyncは待ちませんので、 ウィンドウモ
	ードで動かすときは必ずウェイトを設定して下さい。

	p2でVSyncを待たない場合の画面の切り替え方法を選択できます。1の場合は単
	に表示する画面を切り替えるだけなので処理は一瞬で行われますがグラフィッ
	クボードによってはサポートしていない場合があり、 2の場合はすべての環境
	で動作しますが1の時に比べて多少切り替えが遅くなります。

	es_sync命令を実行した後には、 システム変数statに経過時間が代入されてい
	ます。これはプログラムの実行にかかっている時間を計測する最も簡単な手段
	です。この数値がそのままベンチマークとなります。


	es_caps p1,p2,p3,p4				DirectXシステム情報取得
		p1=情報が代入される変数名(数値型)
		p2=情報ID
		p3=情報ビット(1〜32)
		p4=対象となるレイヤー( 0=HAL / 1=HEL )

	DirectXのドライバがどのような機能を持っているかを調べて、 結果をp1で指
	定する変数に代入します。
	p2の情報IDと、p3の情報ビットについての詳細は、DDCAPS一覧を参照してくだ
	さい。


	es_palfade p1,p2,p3				パレットフェード
		p1=フェード値(-256〜256)
		p2=フェードするスピード(0〜128)
		p3=フェードする色(Direct3D使用時のみ)

	p1で画像の明るさを設定します。 p1が0の時が通常(設定パレットのまま)です。
	p1がマイナス値になるほど画像は暗くなり、プラス値になるほど明るくなりま
	す。p1が-256で完全な黒になり、256で完全な白になります。
	p2でフェードのスピードを指定することができます。 p2を省略するか、0の場
	合はes_palfade命令が実行されるとすぐにp1の指定が反映されます。
	1〜128の場合は、現在設定されている値からp1で指定した値までなめらかに変
	化します。指定した数値が大きいほど変化のスピードは速くなります。

	画面モードが16bit以上の時、 Direct3D使用時にこの命令でフェードイン・ア
	ウトができます。この場合はフェード値の正負に関係なくp3で指定した色でフ
	ェードを行います。p3は16進数6桁のRGB値で指定します。


	es_palset p1,p2,p3,p4			パレット変更
		p1=パレット番号(0〜255)
		p2=設定するR値(0〜255)
		p3=設定するG値(0〜255)
		p4=設定するB値(0〜255)

	パレットの色を設定します。p1で指定したパレット番号に、p2,p3,p4がそれぞ
	れR,G,Bとなる色を設定します。
	es_palset命令による設定変更は、命令実行時すぐには反映されません。
	実際に設定が反映されるのは、 次にes_sync命令かes_palfade命令が実行され
	る時になります。


	es_palcopy						パレット転送

	現在gsel命令で選択されているHSP側のバッファのパレットをDirectX側のパレ
	ットに転送します。


	es_boxf p1,p2,p3,p4,p5			矩形塗りつぶし
		p1=塗りつぶし左上X座標
		p2=塗りつぶし左上Y座標
		p3=塗りつぶし右下X座標
		p4=塗りつぶし右下Y座標
		p5=描画先バッファNo.

	(p1,p2)-(p3,p4)の矩形範囲を現在選択されている色で塗りつぶします。
	色の選択は、color命令で行ないます。


	es_fill p1,p2,p3,p4				矩形塗りつぶし
		p1=塗りつぶし左上X座標
		p2=塗りつぶし左上Y座標
		p3=塗りつぶす色のパレット番号(0〜255)
		　 16bit以上の時は、塗りつぶす色のRGB値
		p4=描画先バッファNo.

	es_boxf命令と同じく指定した矩形範囲を塗りつぶすための命令です。
	異なる点は、es_fill命令では、塗りつぶす色をパレット番号あるいはRGB値で
	指定することです。
	塗りつぶす大きさ(サイズ)は、gmode命令で指定したサイズになります。
	(p1,p2)からgmode命令で指定した矩形範囲を指定したパレットで塗りつぶしま
	す。es_boxf命令よりも速度の面で有利です。


	es_cls p1,p2,p3					画面クリア
		p1=画面クリア時のR値
		p2=画面クリア時のG値
		p3=画面クリア時のB値

	この命令は、画面全体を指定した色でクリアします。
	p1,p2,p3でクリアする色をRGBコードで指定可能です。
	パレットモードでは、 指定したRGBに最も近い色を持つパレットでクリアされ
	ます。
	p1,p2,p3の指定を省略すると、黒でクリアします。


	es_fmes "str",p1				フォント指定文字列表示
		"str"=表示文字列
		p1=オフスクリーンバッファID

	カレントポジション(pos命令で指定されたX,Y座標)から、指定した文字列を表
	示します。 文字の色は、現在選択されている色(color命令で指定)になり、フ
	ォントはfont命令で選択されているものが使用されます。

	p1には、描画を行うバッファNo.を指定します。 表示される画面イメージに対
	して描画を行う場合には省略して構いません。


	es_mes "str",p1					文字列表示
		"str"=表示文字列
		p1=オフスクリーンバッファID

	カレントポジション(pos命令で指定されたX,Y座標)から、指定した文字列を表
	示します。
	es_fmes命令と似ていますが、 文字の色やフォントが選べないかわりに、こち
	らの方が高速に処理されます。
	文字の色は、常に白(RGB=255)となり、標準フォントが使用されます。

	p1には、描画を行うバッファNo.を指定します。 表示される画面イメージに対
	して描画を行う場合には省略して構いません。


	es_fmesbuf "str",p1
	es_mesbuf "str",p1				バッファへの文字列表示

	p1で指定したIDのバッファのカレントポジション (pos命令で指定されたX,Y座
	標)へ、指定した文字列を表示します。

	この命令は、旧バージョンとの互換性を保つために用意されている物です。


	es_copy p1,p2,p3,p4,p5			画像コピー
		p1=オフスクリーンバッファID
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ
		p5=コピーするYサイズ

	es_copy命令では、pos命令で指定した座標にgmodeで指定したモードで、 p1で
	指定したIDの(p2,p3)の座標から(p4,p5)のサイズの画像がコピーされます。
	HSPのcopy命令とは若干違いがありますが、 ほぼ同じ記述でコピーが可能です。
	gmode命令により、 コピーの際に透明色の処理をするかどうかを指定しておく
	必要があります。
	コピーモードが0の場合は、コピー元の画像が完全にコピーされます。
	コピーモードが1か2の場合は、コピー元の画像で透明色に指定された色は
	コピーされません。図形のまわりだけを切り抜いたようにコピーしてくる場合
	に有効です。
	p4,p5を省略した場合は、gmodeで指定したサイズでコピーを行います。


	es_zoom p1,p2,p3,p4,p5,p6,p7	拡大縮小画像コピー
		p1=オフスクリーンバッファID
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ
		p5=コピーするYサイズ
		p6=コピー先Xサイズ
		p7=コピー先Yサイズ

	es_zoom命令では、pos命令で指定した座標にgmodeで指定したモードで、 p1で
	指定したIDの(p2,p3)の座標から(p4,p5)のサイズの画像がコピーされます。
	ただし、コピー先のサイズは(p6,p7)で指定したサイズが使われます。
	これにより、コピー元とは違ったサイズでコピー先に転送することが可能です。

	(p4,p5)を省略するとgmodeで指定したサイズが、(p6,p7)を省略するとobjsize
	で指定したサイズがそれぞれのパラメータの代わりに使用されます。

	この機能は、ビデオカードのハードウェアが変倍コピーをサポートしている時
	は高速に動作しますが、そうでない場合はソフトウェアで処理されるため劇的
	に速度が低下するので注意してください。


	es_xfer p1,p2,p3,p4,p5,p6		バッファ間画像コピー
		p1=転送先DirectXバッファID(-2〜)
		p2=転送元DirectXバッファID(-2〜)
		p3=コピー元X座標
		p4=コピー元Y座標
		p5=コピーするXサイズ
		p6=コピーするYサイズ

	es_copy命令と同じく画像イメージのコピーを行ないますが、 コピー先を画面
	上だけではなく、別なバッファなども指定することができます。
	p1で指定したバッファIDに、p2で指定したバッファIDのイメージを転送します。
	pos命令で指定した座標に、(p5,p6)のサイズとgmodeで指定したモードで、(p3,
	p4)の座標から画像がコピーされます。
	p5,p6を省略した場合、gmodeで指定したサイズでコピーを行います。
	es_copy命令の頭に、 転送先のバッファIDが付加されたものと考えてください。
	p1とp2のバッファ指定は、オフスクリーンバッファIDの他にも以下の値が使用
	できます。

		DirectXバッファID = -1 : 現在表示中の画面イメージ
		DirectXバッファID = -2 : 現在描画中の画面イメージ

	es_copy命令では、転送先が-2にあたります。
	この命令を実行する際、 コピー先のバッファはあらかじめes_buffer命令によ
	って確保されている必要があります (この命令でバッファを新規に作成するこ
	とはできません)。


	es_put p1,p2,p3					キャラクタ画面表示
		p1=putする左上X座標
		p2=putする左上Y座標
		p3=putするキャラクタNo.

	スプライト用のキャラクタパターンとして登録されているデータを、指定した
	座標に表示します。この命令は、スプライトとは関係なく画面にキャラクタを
	転送する命令です。


	es_draw p1,p2,p3,p4				スプライト描画
		p1=描画開始スプライトNo.
		p2=描画するスプライトの個数
		p3=スプライト固定フラグ(0〜)
		p4=描画順序(0〜1)
		
		p3=0 : 通常の動作を行う
		bit1 : スプライトを移動させない
		bit2 : アニメーションを行わない
		
		p4=0 : スプライトNo.順に描画する
		p4=1 : 優先順位順に描画する

	登録されているスプライトを画面に描画します。
	通常は、 p1,p2のパラメータを省略して使用すれば、すべてのスプライトを描
	画することが可能です。
	登録されているスプライトの一部だけを描画したい場合は、p1に開始スプライ
	トNo.、p2に描画する個数を指定してください。

	p4に1を指定すると、es_set命令やes_setpri命令で指定した優先順位の順にス
	プライトを描画します。ただし優先順位のソートには多少時間がかかるため、
	必要が無ければ従来通りスプライトNo. 順で描画をすることをおすすめします。

	この命令を実行すると、描画されたスプライトは移動を行いますが、 p3に1を
	指定すること描画のみを行うようにすることができます。 また、2を指定する
	ことでアニメーションを停止させることができます。


	es_window p1,p2,p3,p4			スプライト表示エリア設定
		p1=スプライト表示基点X座標
		p2=スプライト表示基点Y座標
		p3=スプライトを表示するX座標
		p4=スプライトを表示するY座標

	この命令により、スプライトを画面内の限られた範囲内にのみ表示することが
	可能です。指定した範囲内がスプライトの表示エリアになります。
	スプライト以外の描画命令には、この範囲は適用されません。


	es_area p1,p2,p3,p4				スプライト有効エリア設定
		p1=有効エリアの左上X座標
		p2=有効エリアの左上Y座標
		p3=有効エリアの右下X座標
		p4=有効エリアの右下Y座標

	スプライトの有効エリアを設定します。
	スプライト座標が(p1,p2)-(p3,p4)の範囲内にないものは、 自動的に削除され
	ます。
	スプライトの表示範囲が設定されると(es_window命令)自動的に、 スプライト
	有効エリアも再設定されます。


	es_opt p1						システムオプション設定
		p1=システムオプション値1

	拡張機能のオプション値を設定する命令です。


	es_buffer p1,p2,p3,p4,p5		VRAMイメージ転送
		p1=オフスクリーンバッファID
		p2=属性スイッチ(0〜2)
		p3=透明色(パレットモード時:-1〜255
		　　　　　ハイカラー以上:-1〜$ffffff)
		p4=パレットモード時の転送方法(0〜2)
		p5=テクスチャ使用フラグ(0〜1)

		属性スイッチ=0 : オフスクリーンバッファをVRAMに取る、
		                 失敗した場合は、メインメモリに取る
		属性スイッチ=1 : オフスクリーンバッファをメインメモリに取る
		属性スイッチ=2 : オフスクリーンバッファをVRAMに取る

		p4=0 : バッファ転送時にパレットを更新する
		p4=1 : パレットを更新しない
		p4=2 : DirectX側のパレットに色を合わせて転送する

	現在gsel命令で選択されているHSPのバッファ内容を、DirectXのオフスクリー
	ンバッファにすべて転送します。
	この時、パレットも読み出されDirectX側のパレットに転送されます。
	オフスクリーンバッファに転送できる最大画像サイズは、グラフィックボード
	によって異なり、主に

		1.縦横ともに画面解像度以上のサイズで作成できる
		2.横は画面解像度と同サイズまで、縦はそれ以上のサイズで作成できる
		3.縦横ともに画面解像度と同サイズまで

	の3通りとなっています。

	p3にはes_copy命令などで透明色として使う色を指定します。
	パレットモードでは0〜255までのパレット番号を直接指定するほかに、-1を指
	定することで完全な黒(RGB=0) でパレット番号が一番若いパレットを自動的に
	透明色に設定します。
	ハイカラー以上では透明色に指定するRGB値を $rrggbbの16進数6桁で設定しま
	す。たとえば、$00ff00と指定することでRGB=(0,255,0)の色が透明色になりま
	す。 -1を指定した場合、(0,0)のドットの色を読み取り、透明色に設定されま
	す。

	HSP側のバッファは、DirectXがパレットモードの時は同じくパレットモードで
	初期化されていないと正常に転送されませんが、ハイカラー以上の場合はパレ
	ット・フルカラーモードどちらでも転送されます。
	オフスクリーンバッファへの転送が成功した場合には、システム変数statの値
	は0になります。転送に失敗すると、statの値は1になります。転送に失敗する
	場合は、転送する画像が大きすぎるか、VRAMの容量が足りないことなどが考え
	られます。自分の環境では動作していても、別のマシンではエラーになる可能
	性がありますので、スクリプト側でチェックをするように心がけてください。

	すでに転送済みのオフスクリーンバッファIDを指定した場合には、一度その内
	容が削除され、新しいものに上書きされます。

	p5に0を指定することで、 このバッファをテクスチャとして使用しないように
	できます。 そうすると、このバッファに対してes_excopy命令でコピーを行う
	ことができなくなりますが、DirectDrawでの描画を行う場合にパフォーマンス
	が大きく低下するのを防げます。

	バッファをテクスチャとして使用する場合、　グラフィックボードによっては
	256ドットを越える画像や、サイズが2の累乗でない画像を転送できない物があ
	ります。なるべく多くの環境で正常に動作することを期待するのであれば、こ
	れらを守る必要があります。


	es_getbuf p1					VRAMイメージ読み出し
		p1=DirectXバッファID

	DirectXが管理する画像バッファの内容を、HSPのウインドゥに読み出しコピー
	します。 読み出しは、現在gsel命令で選択されているHSPのウインドゥIDに対
	して行なわれます。
	p1で、DirectXのバッファIDを指定します。これは、es_buffer命令などで使用
	するオフスクリーンバッファIDの他に以下の値が使用できます。

		DirectXバッファID = -1 : 現在表示中の画面イメージ
		DirectXバッファID = -2 : 現在描画中の画面イメージ

	DirectXの使用中は、通常のHSPウインドゥ上に対しての描画処理を行なうこと
	ができないので、用途は限られてしまいます。
	es_getbuf命令は、主にバッファの内容確認のためや、 実行中の画面をキャプ
	チャして保存したい場合など、テスト的な用途に使用できます。
	たとえば、現在表示中の画面イメージをbmpファイルにセーブする場合などは、
	以下のようなスクリプトになります。

		es_getbuf -1
		bmpsave "capture.bmp"

	HSPウィンドウ側のバッファのモードやサイズに制限はありませんが、 転送元
	よりバッファのサイズが小さい場合は右下が切れて転送されます。


	es_size p1,p2,p3,p4				キャラクタサイズ指定
		p1=キャラクタのXサイズ
		p2=キャラクタのYサイズ
		p3=ヒットチェック領域(%)
		p4=不透明フラグ( 0=透明 / 1=不透明 )

	スプライトのキャラクタパターンを定義する際の、サイズを指定します。
	(p1,p2)がキャラクタのX,Yサイズになります。
	p3は当たり判定を行なう際のヒットチェック領域が、 何%になるかを指定しま
	す。100を指定すると、(p1,p2)で指定したサイズいっぱいにヒットチェックを
	行ないます。 0を指定すると、そのキャラクタは当たり判定を持たなくなりま
	す。
	p4は、0ならば透明色を透過し、1ならば不透明のキャラクタパターンになりま
	す。
	キャラクタのX,Yサイズには特に制限はありませんが、 オフスクリーンバッフ
	ァからはみ出すようなキャラクタパターンの指定は無効になります。
	es_size命令の設定は、以降のキャラクタ定義でずっと有効になります。


	es_pat p1,p2,p3,p4				キャラクタ画像定義
		p1=キャラクタNo.
		p2=キャラクタパターンの左上X座標
		p3=キャラクタパターンの左上Y座標
		p4=表示フレーム数(0)

	スプライトのキャラクタパターンを定義します。
	p1で指定したキャラクタNo.に、 (p2,p3)の座標からes_sizeで設定した大きさ
	のキャラクタが登録されます。 ここで対象となる画像は、直前にes_buffer命
	令でVRAMに転送された画像データとなります。この画像の中の一部を切り出し
	てきてキャラクタパターンとして登録しておきます。
	es_pat命令1回で、指定したキャラクタNo.にキャラクタパターンが登録されま
	す。たくさんのキャラクタパターンが必要な場合は、そのぶん登録をしておく
	必要があります。
	p4のパラメータは、キャラクタアニメーションをするための設定です。
	0ならば、アニメーションなし。1以上ならば、指定したフレーム数だけそのキ
	ャラクタを表示した後、 次のキャラクタ(キャラクタNo.+1)を表示するように
	設定されます。


	es_link p1,p2					アニメーション設定
		p1=キャラクタNo.
		p2=ループアニメーションするキャラクタNo.

	キャラクタのループアニメーションを設定するための命令です。
	p1で指定したキャラクタNo.が、指定されたフレームだけ表示した後に、 p2で
	指定したキャラクタNo.に戻るように設定を行ないます。


	es_release p1					スクリーンバッファ削除
		p1=オフスクリーンバッファID

	p1で指定されたオフスクリーンバッファを削除します。


	es_set p1,p2,p3,p4,p5			スプライト設定
		p1=スプライトNo.
		p2=スプライトX座標
		p3=スプライトY座標
		p4=キャラクタNo.
		p5=描画モード(0=DirectDraw、1=Direct3D)
		p6=優先順位(-32768〜32767)

	スプライトを登録します。
	p1は、スプライトNo.(0〜511)、(p2,p3)は画面上でのスプライトの座標になり
	ます。
	この座標を左上として、p4で指定したキャラクタNo.が表示されます。
	スプライト座標は、-32767〜32767までの範囲が設定可能です。

	p5で描画方法を選択します。es_effectでのエフェクトを使用する時は1に設定
	します。
	このパラメータは、 Direct3Dが使えない場合は強制的に0になり、使える場合
	は1がデフォルトになります。

	p6でスプライトの優先順位を指定します。優先順位は値が小さいほど手前に表
	示されるようになり、同一値の場合はスプライトの小さい方が優先されます。
	また、 従来通りスプライトNo.の小さい順に描画するようにすることもできま
	す。


	es_new p1,p2					新規スプライト取得
		p1=新規No.が代入される変数名
		p2=検索を開始するスプライトNo.

	この命令は、スプライトNo.の中で使われていないNo.を検索します。
	p2で指定したNo.以降で空きのあるNo.を、p1で指定した変数に代入します。空
	きがない場合は、-1が代入されます。
	この命令は、以前のバージョンとの互換性のために残された命令です。
	以前のバージョンを使用して作成されたスクリプトを動かす時以外はes_exnew
	命令を使用するようにしてください。


	es_exnew p1,p2,p3,p4			新規スプライト取得
		p1=新規No.が代入される変数名
		p2=検索を開始するスプライトNo.
		p3=検索を終了するスプライトNo.
		p4=増分

	この命令は、スプライトNo.の中で使われていないNo.を検索します。
	p2〜p3で指定したNo.の間で空きのあるNo.を、p1で指定した変数に代入します。
	空きがない場合は、-1が代入されます。
	p4には検索するスプライトNo.の増分を指定します。 省略するとp2、p3から自
	動的に設定するため、通常は明示する必要はありません。
	※es_new命令と同様の処理を行いたい場合は、p3に-1を指定してください。


	es_get p1,p2,p3					スプライト情報取得
		p1=情報が代入される変数名
		p2=スプライトNo.
		p3=info number

		info number :
			  0 = flag値                                    [ESI_FLAG_LOW]
			  3 = スプライトのX座標                         [ESI_POSX_INT]
			  5 = スプライトのY座標                         [ESI_POSY_INT]
			  7 = 1フレームに移動する距離X                  [ESI_SPDX_INT]
			  9 = 1フレームに移動する距離Y                  [ESI_SPDY_INT]
			 10 = プログレスカウント値(未使用)              [ESI_PRGCOUNT]
			 11 = アニメーションカウント値                [ESI_ANIMECOUNT]
			 12 = キャラクタNo.                                [ESI_CHRNO]
			 13 = type値                                        [ESI_TYPE]
		  14,15 = 特殊動作情報(未使用)                   [ESI_EXECPTR_LOW,
		                                                 ESI_EXECPTR_HIGH]
			 16 = 自由落下加速度X                             [ESI_ACCELX]
			 17 = 自由落下加速度Y                             [ESI_ACCELY]
			 18 = 弾みやすさ                               [ESI_BOUNCEPOW]
			 19 = バウンドフラグ                          [ESI_BOUNCEFLAG]
			 20 = 点滅フラグ                               [ESI_BLINKFLAG]
		  22,23 = 点滅カウント値                      [ESI_BLINKCOUNT_LOW,
		                                              ESI_BLINKCOUNT_HIGH]
			 24 = Direct3D使用フラグ                         [ESI_D3DFLAG]
			 25 = 表示Xサイズ                                  [ESI_DISPX]
			 26 = 表示Yサイズ                                  [ESI_DISPY]
			 27 = X軸回転角                                     [ESI_ROTX]
			 28 = Y軸回転角                                     [ESI_ROTY]
			 29 = Z軸回転角                                     [ESI_ROTZ]
			 30 = ブレンドファクター                     [ESI_BLENDFACTOR]
			 31 = α値                                         [ESI_ALPHA]
			 32 = 点滅用スプライト表示フラグ                [ESI_DISPFLAG]
		  33,34 = ライト値                                 [ESI_LIGHT_LOW,
		                                                   ESI_LIGHT_HIGH]
		     36 = 優先順位                                  [ESI_PRIORITY]

	p1で指定した変数名に、p2のスプライトNo.の情報を代入します。
	情報の種類は、p3のinfo numberで指定します。
	[]内はヘッダファイルで定義されている定数です。


	es_find p1,p2,p3				スプライト検索
		p1=スプライトNo.が代入される変数名
		p2=検索対象となるtype値
		p3=検索を開始するスプライトNo.
		p4=検索を終了するスプライトNo.
		p5=増分

	登録されているスプライトの中で指定したtype値を持つスプライトNo. を検索
	します。
	p2のtype値には、複数のtypeを同時に指定することができます。
	たとえば、type1とtype4を対象にする場合は、1+4で5を指定します。

	p2の指定を省略するか、 0を指定した場合にはすべてのtype値を持つスプライ
	トが検索の対象になります。

	検索は、p3で指定されたスプライトNo.からp4で指定されたNo.まで順番に探し
	ていきます。
	これを省略すると、No.0からすべてのスプライトを検索します。
	該当するスプライトが見つかった時点で、p1に結果を代入して終わります。
	検索の結果、該当するスプライトがなかった場合には、-1が代入されます。

	p5は検索するスプライトNo.の増分を指定するもので、 省略するとp3、p4から
	自動的に設定されますので通常は指定しなくても構いません。


	es_check p1,p2,p3,p4			衝突判定取得
		p1=結果が代入される変数名
		p2=チェックの対象となるスプライトNo.
		p3=検索対象となるtype値
		p4=判定フラグ(0=回転を考慮しない、1=回転を考慮する)
		p5=検索を開始するスプライトNo.
		p6=検索を終了するスプライトNo.

	スプライト同士の衝突判定を行ないます。
	p2で指定されたスプライトNo.と衝突している(重なっている) スプライトを検
	索して、p1で指定した変数に結果を代入します。
	p3で衝突判定の対象となるtype値を指定することができます。
	p3が省略されるか、 0の場合は、すべてのスプライトとの衝突を判定します。
	p3のtype値には、複数のtypeを同時に指定することができます。
	たとえば、type1とtype4を対象にする場合は、1+4で5を指定します。
	衝突判定には、キャラクタパターンを登録した時に指定したヒットチェック領
	域(%)が使用されます。 実際に画像が重なっていても、ヒットチェック領域の
	範囲が重ならない限りは衝突とみなされません。
	結果はp1で指定した変数に代入されます。もし、衝突しているスプライトがな
	かった場合には-1が、 衝突しているスプライトがあれば、そのスプライトNo.
	が代入されます。衝突しているスプライトが複数あった場合には、スプライト
	No.の小さいものが優先されます。

	es_effect命令を使ってスプライトを回転表示した場合、 そのままだと回転し
	ていない状態での衝突判定を行ってしまいます。そこで、es_check命令実行時
	にp4に 1を指定することでスプライトの回転を当たり判定に反映させることが
	できるようになります。

	p5,p6で衝突判定を検索するスプライトの始点・終点を指定できます。 p5がp6
	より大きなスプライトNo.を指定した場合、通常とは逆に小さいスプライトNo.
	に向かって検索を行います。


	es_offset p1,p2					オフセット座標設定
		p1=オフセットX値
		p2=オフセットY値

	すべてのスプライトの表示を、オフセット値で指定した数だけずらして表示し
	ます。この命令で設定したオフセット値は、 es_draw命令で描画を行なった時
	に反映されます。


	es_flag p1,p2					flag値設定
		p1=スプライトNo.
		p2=flag値

		flag値=
			0    :  スプライト未登録

			bit 0-6 : 1〜127 カウントダウンタイマー
			bit 7   : カウントダウン消失SWITCH

			bit 8 :  $100 スプライト表示ON
			bit 9 :  $200 スプライト移動ON
			bit10 :  $400 自由落下移動ON
			bit11 :  $800 BGとリンクして移動(未実装)
			bit12 : $1000 ボーダー消去無効ON
			bit13 : $2000 ボーダーXで反転SWITCH
			bit14 : $4000 ボーダーYで反転SWITCH
			bit15 : $8000 カウントダウンタイマー時点滅SWITCH

	p1で指定したスプライトのflag値を変更します。
	flag値は、スプライトが有効になっている場合は、 $100(256)が自動的に設定
	されています。通常は特にいじる必要はありません。


	es_chr p1,p2					chr値設定
		p1=スプライトNo.
		p2=キャラクタNo.

	p1で指定したスプライトのキャラクタNo.を変更します。


	es_type p1,p2					type値設定
		p1=スプライトNo.
		p2=type値

	p1で指定したスプライトのtype値を変更します。
	type値についての詳細は、「type値の設定について」を参照してください。


	es_kill p1						スプライト削除
		p1=スプライトNo.

	p1で指定したスプライトNo.を削除します。


	es_clear p1,p2					複数スプライト削除
		p1=スプライトNo.
		p2=削除される個数

	p1で指定したスプライトNo. 以降のスプライトが削除され未登録になります。
	p2で削除されるスプライトの数を指定することができます。
	p1とp2の指定を省略した場合は、すべてのスプライトが削除されます。


	es_pos p1,p2,p3					スプライト座標設定
		p1=スプライトNo.
		p2=スプライトX座標
		p3=スプライトY座標

	スプライトの座標を変更します。
	p1でスプライトNo.を指定して、(p2,p3)でX,Y座標を設定します。
	es_posは、設定済みのスプライトの座標だけを変更する命令です。


	es_apos p1,p2,p3				スプライト移動設定
		p1=スプライトNo.
		p2=1フレームにX方向に移動するドット数
		p3=1フレームにY方向に移動するドット数
		p4=移動スピード(%)

	スプライトを自動的に移動させるための設定をします。
	p1でスプライトNo.、p2,p3でX,Y方向の増分を指定します。
	p4で移動スピードを%で指定します。p4を省略するか、100を指定した場合は、
	100%のスピードとなり、1フレームに(p2,p3)で指定した増分だけ移動し続けま
	す。もし、移動スピードを50(%)にして、増分が(+4,-2)に指定された場合は、
	実際には、(+2,-1)の増分になります。増分の単位は、1ドット以下になった場
	合でも正確に移動を行ないます。 たとえば、1フレームに(1,0)の移動を10%で
	行なった場合でも、10フレーム後に1ドット移動するように計算されます。


	es_adir p1,p2,p3				スプライト移動方向設定
		p1=スプライトNo.
		p2=移動する方向(0〜)
		p3=移動スピード(%)

	スプライトを自動的に移動させるための設定をします。
	p1でスプライトNo.、p2で方向を指定します。 方向は、es_iniで指定した数値
	までで指定します。0が真下となり、反時計回りに増加していきます。
	p3で移動スピードを%で指定します。 p3を省略するか、100(%)を指定した場合
	には、指定した方向に1フレームにつき1ドットの距離を移動します。
	p4で移動スピードを%で指定します。p4を省略するか、100を指定した場合は、
	100%のスピードとなり、1フレームに1ドットの速度で移動し続けます。


	es_aim p1,p2,p3,p4				スプライト参照座標設定
		p1=スプライトNo.
		p2=移動先のX座標
		p3=移動先のY座標
		p4=移動スピード(%)

	es_aim命令は、 es_adir命令と同じく指定した方向にスプライトを移動させる
	ためのものです。 es_aim命令では、方向の替わりに移動する目標となるX,Y座
	標を指定します。スプライトは、現在の座標から、目標となる座標への方向を
	計算し移動を開始します。
	この命令は、たとえば敵から発射されるミサイルがプレイヤーを狙って移動す
	るようにしたい時などに役立ちます。
	p4で移動スピードを%で指定します。 p3を省略するか、100(%)を指定した場合
	には、指定した方向に1フレームにつき1ドットの距離を移動します。
	この命令を実行するとシステム変数statに移動方向が返ります。
	これを利用して自機を狙う3方向弾などを作成することができます。


	es_ang p1,p2,p3,p4				角度取得
		p1=基準点のX座標
		p2=基準点のY座標
		p3=目的点のX座標
		p4=目的点のY座標

	システム変数statに(p1,p2)から見た(p3,p4)の方向が返ります。
	es_aimを使っても方向を得ることはできますが、この命令を使えばスプライト
	を使わずに方向を得ることができます。


	es_timer p1,p2					タイマー取得
		p1=結果が代入される変数名
		p2=タイマーの取得方法(0〜1)

	Windowsを起動してからの経過時間をミリ秒単位で、 p1に指定した変数に代入
	します。精度は環境に依存します。
	p2でタイマーの取得方法を選択できます。 0がtimeGetTime、1がGetTickCount
	でタイマーを取得します。一般に前者の方が精度がよく、後者の方が処理が軽
	いとされています。


	es_getfps p1					FPS取得
		p1=結果が代入される変数名

	1秒間にes_sync命令が実行された回数を、p1で指定した変数に代入します。


	es_sin p1,p2					三角関数
	es_cos p1,p2
		p1=結果が代入される変数名
		p2=角度(0〜n)
		※n=es_ini第3パラメータで設定した精度

	変数p1に、それぞれ角度p2のサイン、コサインを代入します。
	p2の範囲はes_iniで設定した値までです。
	得られる値は、小数部10ビットの固定小数です。つまり、本来得られるべき値
	を1024倍した整数が返ってきます。


	es_gravity p1,p2,p3				落下加速度設定
		p1=スプライトNo.(-1〜)
		p2=X方向の加速度(-32767〜32767)
		p3=Y方向の加速度(-32767〜32767)

	es_flag命令で自由落下移動をONにしたときの加速度を設定します。
	p2、p3は1フレームごとに加算される移動量で、256で1ドットとなります。
	p1に-1を指定すると、デフォルト値を設定することができます。　この値は、
	es_set命令を実行した時に設定される値で、初期値はp2が0、p3が256となって
	います。


	es_bound p1,p2					弾みやすさ設定
		p1=スプライトNo.(-1〜)
		p2=弾みやすさ(0〜256)
		p3=フラグ(1=X方向 2=Y方向 3=両方 デフォルト=3)

	es_flag命令で自由落下移動をONにしたときに、 画面下部(または上部)で跳ね
	返る際の弾みやすさを設定します。この値が大きいほど跳ね返り時に勢いが失
	われなくなります。
	p3は画面の上下端、あるいは左右端に当たった際に跳ね返りを行うか行わない
	かを設定できます。ただし、このフラグは自由落下が発生する方向にのみ適用
	されます。
	p1に-1を指定すると、デフォルト値を設定することができます。　この値は、
	es_set命令を実行した時に設定される値で、初期値は128となっています。


	es_excopy p1,p2,...,p13			Direct3D描画による画像コピー
		p1=オフスクリーンバッファID
		p2=コピー元X座標
		p3=コピー元Y座標
		p4=コピーするXサイズ
		p5=コピーするYサイズ
		p6=表示するXサイズ
		p7=表示するYサイズ
		p8 =X軸回転角(0〜4095)
		p9 =Y軸回転角(0〜4095)
		p10=Z軸回転角(0〜4095)
		p11=ブレンドファクター(0〜120)
		p12=α値(0〜256)
		p13=ライト色(0〜$ffffff)

	オフスクリーンバッファIDp1の (p2,p3)から(p4,p5)のサイズの画像を(p6,p7)
	の大きさで、pos命令で指定した座標にコピーします。 (p4,p5)と(p6,p7)に異
	なる値を指定することで、拡大縮小コピーを行えます。
	es_copy命令と同様に、gmodeで透明色を透過することができます。

	(p4,p5)か(p6,p7)のいずれかに負の数を指定すると、反転表示が可能になりま
	す。このとき、

	・(p4,p5)で反転を指定した場合、(p2,p3)はコピー元の左(上)座標ではなく、
	　右(下)座標を指定することになる
	・(p6,p7)で反転を指定した場合、pos命令で指定した座標から左(上)に表示さ
	　れる

	と言うように、パラメータの指定方法などが通常とは異なりますので注意して
	ください。

	p10で画像の回転を行います。 回転角は一周4096度で固定ですので注意してく
	ださい。

	p11とp12で半透明処理のためのブレンドファクターとα値を設定します。
	ブレンドファクターは半透明処理のアルゴリズムを設定するもので、転送先の
	ブレンディング係数*11+転送元のブレンディング係数で指定するのが本来の使
	い方ですが、扱いが難しいため以下の定数から使用したい半透明処理を選んで
	ください。もちろん、使い方がわかるのであれば直接値を指定することでいろ
	いろな効果を出すこともできます。

	・ESB_ALPHA						アルファ合成
	　ごく普通の半透明です。

	・ESB_ADD						加算合成
	　転送先に転送元画像の輝度を加算する半透明です。

	・ESB_MULTIPLE					乗算合成
	　転送先に転送元画像の輝度を乗算する半透明です。この半透明はα値の影響
	　を受けません。

	・ESB_NEGATIVE		色反転
	　転送先画像の色を反転します。乗算合成同様α値の影響を受けません。

	・ESB_SHADOW		シャドウ
	　転送元画像を黒一色のシルエットと見なした上でアルファ合成を行います。

	α値は透明度を指定するものです。ブレンドファクターによってはこの値を大
	きくすることで画像が透明になっていったり、透明度が一定でこの値の影響を
	受けないものがあります。　　　　上記の半透明処理のうち、ESB_MULTIPLEと
	ESB_NEGATIVE以外は全てこの値を小さくすることで透明になっていきます。
	ただし、ハードウェアでα値をサポートしていない場合、このパラメータの値
	に関係なくα値は256に固定となります。

	p13のライト色とは、画像を表示するためのライトの色のことで、 この値を変
	更することで画像内の特定の色成分を押さえて表示することができます (強調
	することはできません)。 　パラメータは16進数6桁のRGB値で指定しますが、
	後述のes_rgbcalcマクロを利用することで RGB値を個別に指定することもでき
	ます。

	この命令を実行するには、 es_screen命令でDirect3Dを使用するように指定す
	る必要があります。


	es_blink p1,p2,p3				スプライト点滅設定
		p1=スプライトNo.
		p2=点滅フラグ(1〜3)
		p3=点滅カウント初期値(-1or1〜)

		点滅フラグ=1 : 点滅無し、カウントが0になったらスプライトを消
		　　　　　　　 滅させる
		点滅フラグ=2 : 点滅あり、カウントが0になったら点滅をやめる
		点滅フラグ=3 : 点滅あり、カウントが0になったらスプライトを消
	　　	　　　　　 滅させる

	スプライトの点滅を設定します。 これまでes_flag命令で設定していたものを
	独立・拡張した命令です。ここでの設定は es_flag命令を実行するとリセット
	されます。
	p3に-1を設定すると、カウントは無限になります。


	es_dist p1,p2,p3,p4,p5			2点間距離算出
		p1=結果を代入する変数
		p2,p3=点Aの座標
		p4,p5=点Bの座標

	(p2,p3)から(p4,p5)までの距離を求め、変数p1に代入します。計算結果は小数
	部8bitの固定小数です。


	es_effect p1,p2,...,p9			スプライト特殊効果設定

		p1=スプライトNo.
		p2,p3=表示サイズ
		p4,p5,p6=回転角
		p7=ブレンドファクター(-1で合成OFF)
		p8=α値(0〜256)
		p9=ライト色(0〜$ffffff)

	スプライトをDirect3D描画する際のエフェクトを設定します。省略されたパラ
	メータは前回実行時の設定を保持します。
	回転角の有効範囲はes_excopy命令と違って es_ini命令での設定に依存します
	ので注意してください。

	この命令を実行するには、 es_screen命令でDirect3Dを使用するように指定す
	る必要があります。

	なお、現バージョンでは回転を行っても当たり判定が変わりませんので注意し
	てください。


	es_exboxf p1,p2,...,p13			Direct3Dによる矩形描画
		p1,p2=塗りつぶし左上座標
		p3,p4=塗りつぶし右下座標
		p5=塗りつぶし色もしくは左上頂点色
		p6,p7,p8=回転角
		p9=ブレンドファクター
		p10=α値
		p11,12,13=各頂点色(順に右上、左下、右下)

	(p1,p2)-(p3,p4)の矩形範囲をp5の色で塗りつぶします。 p5は16進数6桁でRGB
	値を指定します。
	p3,p4を省略するとgmode命令のサイズで塗りつぶしを行い、　p5を省略すると
	color命令で指定した色を使用します。

	p11〜13は矩形の各頂点に別々の色を指定するためのパラメータです。 頂点色
	を変更すると頂点から中央に向かってグラデーションがかかった表示になりま
	す。

	この命令を使用するには、Direct3D描画を有効にする必要があります。


	es_gdi p1						GDI描画モード設定
		p1=描画モード設定

		描画モード=0 : GDI描画を終了する
		描画モード=1 : GDI描画を開始する

	この命令を実行して、　GDI描画を開始した時点でHSPの標準描画命令を使って
	DirectXのスクリーンに点や線などを描画できるようになります。
	GDI描画モード中はDirectXによる描画命令は使えなくなります。

	描画モードの切り替えに失敗した時は、システム変数statに1が返ります。

	この命令は、 使い方を誤るとWindowsの再起動が必要になる危険性があります。
	使用する際は、以下の点に注意してください。

	・この命令を実行する前に一度だけ「redraw 0」を実行して、画面の更新が行
	　われないようにする
	・GDI描画モードを多重に開始、終了しないようにする
	・GDI描画が終了したら必ず「es_gdi 0」を実行して描画モードを元に戻す
	・GDI描画中にフォーカスの移動などが発生すると、 それ以降正常に動作しな
	　くなる恐れがあるため、GDI描画モードはできるだけ短い時間で済ませる


	es_d3dopt p1,p2,p3				Direct3D描画オプション設定
		p1=テクスチャアドレッシング設定(0〜2、デフォルト=0)
		p2=テクスチャ補間設定(0〜1、デフォルト=0)
		p3=パースペクティブ補正設定(0〜1、デフォルト=0)

		p1=0 : クランプアドレッシングに設定する
		p1=1 : ラップアドレッシングに設定する
		p1=2 : ミラーアドレッシングに設定する
		
		p2=0 : テクスチャの補間を行わない
		p2=1 : テクスチャの補間を行う
		
		p3=0 : パースペクティブ補正を無効にする
		p3=1 : パースペクティブ補正を有効にする

	Direct3Dで描画を行う際の描画処理を設定します。

	p1でテクスチャアドレッシングの設定を行います。テクスチャアドレッシング
	とは、テクスチャ座標がバッファからはみ出る場合にはみ出した部分をどのよ
	うに表示するかを決めるもので、それぞれ次のようになっています。

	クランプアドレッシング：バッファの端をのばすように表示する。
	ラップアドレッシング　：バッファの(0,0)に戻り、 繰り返し表示する。
	ミラーアドレッシング　：バッファの端に到達したところで折り返す。

	この機能を使う場合、 バッファサイズが2の累乗になっていないと強制的にク
	ランプアドレッシングで表示されてしまいます。グラフィックボードによって
	はバッファサイズを補正するため、その点に注意しないと環境依存の問題が発
	生しますので注意してください。

	p2はテクスチャの補間を行うかどうかを設定します。 このパラメータを1にす
	ると画像がぼやけますが、拡大・縮小を行う際にドットの粗が目立たなくなり
	ます。

	p3でパースペクティブ補正を設定します。これは、ポリゴンが傾いたときに奥
	行きが出るように表示させるためのものです。ただし、当たり判定はこれに対
	応していないため、スプライトに対してパースペクティブ補正を有効にすると
	見た目と若干判定が異なって見えます。


	es_move p1,p2,p3				スプライト移動
		p1=移動を行うフレーム数(1〜)
		p2=移動開始スプライトNo.
		p3=移動するスプライトの個数
		p4=アニメーション制御フラグ(0〜1)
		
		p4=0 : アニメーションを行う
		p4=1 : アニメーションを行わない

	スプライトの移動を行います。 es_draw命令からスプライトの描画を抜いたも
	ので、主に処理落ち時のフレームスキップに用います。
	偶数フレームのスキップが行われた際に点滅が止まるのを防ぐため、スプライ
	トの点滅はパラメータの設定に関係なく es_draw命令で行われます。


	es_excopy2 p1,p2,p3,p4,p5,p6,p7	Direct3D描画による画像コピー(マクロ)
		p1=オフスクリーンバッファID(0〜63)
		p2=コピー元座標を指す配列変数
		p3=コピーするサイズを指す配列変数
		p4=表示するサイズを指す配列変数
		p5=回転角を指す配列変数
		p6=半透明パラメータを指す配列変数
		p7=ライト色

	es_excopy 命令のパラメータをまとめてスクリプトを見やすくするためのマク
	ロです。
	例えば、以下のように記述することでコメント行と同様の処理が行われること
	になります。

		;es_excopy 2,0,0,640,480,320,240,rotx,roty,rotz,ESB_ALPHA,128,$ffffff
		;以下の記述は↑と同じ
		buf=2
		src=0,0
		size=640,480
		disp=320,240
		rot=rotx,roty,rotz
		blend=ESB_ALPHA,128
		light=$ffffff
		es_excopy2 buf,src,size,disp,rot,blend,light

	パラメータの代入の仕方は次のようになっています。

		・p1、p7は数値変数を指定しても、直接数値を代入しても可
		・p2〜p4には要素0にサイズまたは座標のX方向、要素1にY方向の値が
		　入った配列変数の変数名を指定する
		・p5には要素0から順にX方向、Y方向、Z方向の回転角が入った配列変
		　数の変数名を指定する
		・p6には要素0にブレンドファクター、要素1にα値が入った配列変数
		　の変数名を指定する
		・全パラメータは省略不可


	es_effect2 p1,p2,p3,p4,p5		スプライト特殊効果設定(マクロ)
		p1=スプライトNo.
		p2=表示サイズを指す配列変数
		p3=回転角を指す配列変数
		p4=半透明パラメータを指す配列変数
		p5=ライト色

	es_effect 命令のパラメータをまとめてスクリプトを見やすくするためのマク
	ロです。

	パラメータの代入の仕方は次のようになっています。

		・p1、p5は数値変数を指定しても、直接数値を代入しても可
		・p2には要素0にXサイズ、要素1にYサイズの値が入った配列変数の変
		　数名を指定する
		・p3には要素0から順にX方向、Y方向、Z方向の回転角が入った配列変
		　数の変数名を指定する
		・p4には要素0にブレンドファクター、要素1にα値が入った配列変数
		　の変数名を指定する
		・全パラメータは省略不可


	es_bfcalc(p1,p2)				ブレンドファクター算出(マクロ)
		p1=SRC側のブレンドファクター
		p2=DEST側のブレンドファクター
		※ctypeマクロのため、必ず括弧でくくること

	それぞれに指定するブレンドファクターをプラグインに渡す形に変換するため
	のマクロで、主にes_excopy命令で使うためのものです。指定する値は0〜10も
	しくはヘッダファイルで定義されている定数名を使用します。


	es_rgbcalc(p1,p2,p3)			RGB値算出(マクロ)
		p1=R値(0〜255)
		p2=G値(0〜255)
		p3=B値(0〜255)
		※ctypeマクロのため、必ず括弧でくくること

	RGB値を一つの値にまとめるためのマクロです。 パラメータのチェックは行わ
	ないため、範囲外の値を代入するとおかしな値になりますので注意してくださ
	い。


	es_clip p1,p2,p3,p4				クリッピング範囲設定
		p1=左上のX座標
		p2=左上のY座標
		p3=右下のX座標
		p4=右下のY座標

	描画命令のクリッピング範囲を設定します。クリッピング範囲が反映される命
	令は、es_copy、es_zoom、es_excopyです。 なお、画面外に範囲を指定するこ
	とはできません。


	es_setp p1,p2,p3				スプライトパラメータ設定
		p1=スプライトNo.
		p2=info number
		p3=変更する値(-32768〜32767)

	スプライトの情報を直接変更します。p2についてはes_getの説明を参照してく
	ださい。


	es_expat p1,p2,p3,p4,p5			キャラクタ画像定義(マクロ)
		p1=キャラクタNo.
		p2=バッファNo.
		p3=キャラクタパターンの左上X座標
		p4=キャラクタパターンの左上Y座標
		p5=表示フレーム数

	スプライトのキャラクタパターンを定義します。es_pat命令に、登録する画像
	のバッファNo.を指定できるようにしたものです。

	マクロのため、es_pat命令と違いパラメータを省略できませんので注意してく
	ださい。


	es_cursor p1					マウスカーソル表示
		p1=表示フラグ(0=表示しない/1=表示する)

	マウスカーソルの表示を制御します。
	通常、フルスクリーンモードではマウスカーソルは表示されませんが、この命
	令を実行することで必要に応じてカーソルの表示／非表示を切り替えることが
	できます。
	また、ウィンドウモード時でもこの命令を実行することにより、マウスカーソ
	ルがウィンドウ内に入ったときに限り表示を抑制することができるようになり
	ます。
	
	なお、この命令はハードウェアがフルスクリーンでのウィンドウレンダリング
	に対応していない場合はうまく動かない可能性があります。


	es_dialog "message",p1,"option"	ダイアログ表示(マクロ)
		p1=ダイアログのタイプ設定

	フルスクリーンモードでダイアログを表示するためのマクロです。
	このマクロ実行後はマウスカーソルを消去しますので、ウィンドウモードで実
	行しているときなどにはes_cursor命令で再度表示する必要があります。
	パラメータの詳細についてはdialog標準命令を参照してください。
	
	このマクロでは、 ダイアログ表示後にes_cursor命令を実行している関係で、
	dialog命令が返したstatを得ることができませんが、代わりにesr_statという
	命令にstat値を待避させるようにしてありますので、ダイアログ上での操作に
	よって処理を振り分けたりしたい場合はこの値を参照して下さい。その他のシ
	ステム変数は保持されますので、直接参照できます。
	
	なお、この命令はハードウェアがフルスクリーンでのウィンドウレンダリング
	に対応していない場合はうまく動かない可能性があります。


	es_exput p1,p2,p3,...,p11		Direct3Dによるキャラクタ画面表示
		p1,p2   =表示する左上X,Y座標
		p3      =表示するキャラクタNo.
		p4,p5   =表示サイズ
		p6,p7,p8=回転角
		p9      =ブレンドファクター
		p10     =α値
		p11     =ライト値

	スプライト用キャラクタパターンとして登録されている画像を表示します。
	es_put命令のDirect3D対応版です。
	
	この命令を実行するには、 es_screen命令でDirect3Dを使用するように指定す
	る必要があります。



	es_exput2 p1,p2,p3,p4,p5,p6		D3Dによるキャラクタ画面表示(マクロ)
		p1=表示座標を指す配列変数
		p2=表示するキャラクタNo.
		p3=表示サイズを指す配列変数
		p4=回転角を指す配列変数
		p5=半透明パラメータを指す配列変数
		p6=ライト色

	es_exput命令のパラメータをまとめたマクロです。

	パラメータの代入の仕方は次のようになっています。

		・p2、p6は数値変数を指定しても、直接数値を代入しても可
		・p1、p3には要素0にXサイズ、要素1にYサイズの値が入った配列変数
		　の変数名を指定する
		・p4には要素0から順にX方向、Y方向、Z方向の回転角が入った配列変
		　数の変数名を指定する
		・p5には要素0にブレンドファクター、要素1にα値が入った配列変数
		　の変数名を指定する
		・全パラメータは省略不可

	この命令を実行するには、 es_screen命令でDirect3Dを使用するように指定す
	る必要があります。


	es_setpri p1,p2					スプライト優先順位設定
		p1=スプライトNo.
		p2=優先順位(-32768〜32767)
	
	スプライトの優先順位を変更します。


	es_showdia						GDIウィンドウ表示

	フルスクリーンモードでダイアログを表示するための準備をします。
	
	この命令を実行すると、 GDIがウィンドウを描画できるサーフェスが表示面に
	くるようにフリッピングを行い、以後dialog標準命令が画面に表示できるよう
	になります。そのため、実行するタイミングによっては描画途中の画面が表示
	されてしまいますので注意してください。
	
	今後のバージョンアップではこの命令を使って HSPの標準ウィンドウを表示で
	きるようにする予定ですが、現在のところはそれをサポートしていないためこ
	の命令を単体で実行する必要性はありません。


	es_bufcheck						バッファロストチェック(モジュール)

	フルスクリーンモードで動作中にAlt+Tabが押されるなどして、 別ウィンドウ
	にフォーカスが移るとバッファが消失することがあります。

	このモジュールは、ウィンドウのフォーカスとバッファのロストを監視し、フ
	ォーカスが別ウィンドウに移ったときは実行を停止し、バッファのロストが生
	じたときはそのバッファの復元を行った後statに1を返します。

	復元されたバッファは再び描画命令で使用することができるようになりますが、
	バッファの内容が残っているとは限りませんので、バッファのロストが検出さ
	れたときは一度すべてのバッファに対して画像を転送し直すことをおすすめし
	ます。


・DDCAPS一覧

	以下の表は、es_caps命令で取得するためのID一覧です。
	それぞれの数値の詳細については、DirectXのSDKマニュアルおよび、解説書な
	どを参照してください。

	es_caps p1,p2,p3,p4				DirectXシステム情報取得
		p1=情報が代入される変数名(数値型)
		p2=情報ID
		p3=情報ビット(1〜32)
		p4=対象となるレイヤー( 0=HAL / 1=HEL )

	情報ID一覧:
		0    DWORD    dwSize;
		1    DWORD    dwCaps;
		2    DWORD    dwCaps2;
		3    DWORD    dwCKeyCaps;
		4    DWORD    dwFXCaps;
		5    DWORD    dwFXAlphaCaps;
		6    DWORD    dwPalCaps;
		7    DWORD    dwSVCaps;
		8    DWORD    dwAlphaBltConstBitDepths;
		9    DWORD    dwAlphaBltPixelBitDepths;
		10    DWORD    dwAlphaBltSurfaceBitDepths;
		11    DWORD    dwAlphaOverlayConstBitDepths;
		12    DWORD    dwAlphaOverlayPixelBitDepths;
		13    DWORD    dwAlphaOverlaySurfaceBitDepths;
		14    DWORD    dwZBufferBitDepths;
		15    DWORD    dwVidMemTotal;
		16    DWORD    dwVidMemFree;
		17    DWORD    dwMaxVisibleOverlays;
		18    DWORD    dwCurrVisibleOverlays;
		19    DWORD    dwNumFourCCCodes;
		20    DWORD    dwAlignBoundarySrc;
		21    DWORD    dwAlignSizeSrc;
		22    DWORD    dwAlignBoundaryDest;
		23    DWORD    dwAlignSizeDest;
		24    DWORD    dwAlignStrideAlign;
		25    DWORD    dwRops[DD_ROP_SPACE];
		26    DDSCAPS  ddsCaps;
		27    DWORD    dwMinOverlayStretch;
		28    DWORD    dwMaxOverlayStretch;
		29    DWORD    dwMinLiveVideoStretch;
		30    DWORD    dwMaxLiveVideoStretch;
		31    DWORD    dwMinHwCodecStretch;
		32    DWORD    dwMaxHwCodecStretch;
		33    DWORD    dwReserved1;
		34    DWORD    dwReserved2;
		35    DWORD    dwReserved3;
		36    DWORD    dwSVBCaps;
		37    DWORD    dwSVBCKeyCaps;
		38    DWORD    dwSVBFXCaps;
		39    DWORD    dwSVBRops[DD_ROP_SPACE];
		40    DWORD    dwVSBCaps;
		41    DWORD    dwVSBCKeyCaps;
		42    DWORD    dwVSBFXCaps;
		43    DWORD    dwVSBRops[DD_ROP_SPACE];
		44    DWORD    dwSSBCaps;
		45    DWORD    dwSSBCKeyCaps;
		46    DWORD    dwSSBCFXCaps;
		47    DWORD    dwSSBRops[DD_ROP_SPACE];
		48    DWORD    dwReserved4;
		49    DWORD    dwReserved5;
		50    DWORD    dwReserved6;


	ID1(caps)の情報ビット:

	 /****************************************************************************
	 * DIRECTDRAW DRIVER CAPABILITY FLAGS
	 ****************************************************************************/

		 1  DDCAPS_3D					
		 2  DDCAPS_ALIGNBOUNDARYDEST	
		 3  DDCAPS_ALIGNSIZEDEST		
		 4  DDCAPS_ALIGNBOUNDARYSRC		
		 5  DDCAPS_ALIGNSIZESRC			
		 6  DDCAPS_ALIGNSTRIDE			
		 7  DDCAPS_BLT					
		 8  DDCAPS_BLTQUEUE				
		 9  DDCAPS_BLTFOURCC			
		10  DDCAPS_BLTSTRETCH			
		11  DDCAPS_GDI					
		12  DDCAPS_OVERLAY				
		13  DDCAPS_OVERLAYCANTCLIP		
		14  DDCAPS_OVERLAYFOURCC		
		15  DDCAPS_OVERLAYSTRETCH		
		16  DDCAPS_PALETTE				
		17  DDCAPS_PALETTEVSYNC			
		18  DDCAPS_READSCANLINE			
		19  DDCAPS_STEREOVIEW			
		20  DDCAPS_VBI					
		21  DDCAPS_ZBLTS				
		22  DDCAPS_ZOVERLAYS			
		23  DDCAPS_COLORKEY				
		24  DDCAPS_ALPHA				
		25  DDCAPS_COLORKEYHWASSIST		
		26  DDCAPS_NOHARDWARE			
		27  DDCAPS_BLTCOLORFILL			
		28  DDCAPS_BANKSWITCHED			
		29  DDCAPS_BLTDEPTHFILL			
		30  DDCAPS_CANCLIP				
		31  DDCAPS_CANCLIPSTRETCHED		
		32  DDCAPS_CANBLTSYSMEM			


	ID2(caps2)の情報ビット:

	 /****************************************************************************
	 * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
	 ****************************************************************************/

		 1  DDCAPS2_CERTIFIED				
		 2  DDCAPS2_NO2DDURING3DSCENE       
		 3  DDCAPS2_VIDEOPORT				
		 4  DDCAPS2_AUTOFLIPOVERLAY			
		 5  DDCAPS2_CANBOBINTERLEAVED		
		 6  DDCAPS2_CANBOBNONINTERLEAVED	
		 7  DDCAPS2_COLORCONTROLOVERLAY		
		 8  DDCAPS2_COLORCONTROLPRIMARY		
		 9  DDCAPS2_CANDROPZ16BIT			
		10  DDCAPS2_NONLOCALVIDMEM          
		11  DDCAPS2_NONLOCALVIDMEMCAPS      
		12  DDCAPS2_NOPAGELOCKREQUIRED      
		13  DDCAPS2_WIDESURFACES            
		14  DDCAPS2_CANFLIPODDEVEN          


	ID3(ckeycaps)の情報ビット:

	/****************************************************************************
	 * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
	 ****************************************************************************/

		 1  DDCKEYCAPS_DESTBLT					
		 2  DDCKEYCAPS_DESTBLTCLRSPACE			
		 3  DDCKEYCAPS_DESTBLTCLRSPACEYUV		
		 4  DDCKEYCAPS_DESTBLTYUV				
		 5  DDCKEYCAPS_DESTOVERLAY				
		 6  DDCKEYCAPS_DESTOVERLAYCLRSPACE		
		 7  DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV	
		 8  DDCKEYCAPS_DESTOVERLAYONEACTIVE		
		 9  DDCKEYCAPS_DESTOVERLAYYUV			
		10  DDCKEYCAPS_SRCBLT					
		11  DDCKEYCAPS_SRCBLTCLRSPACE			
		12  DDCKEYCAPS_SRCBLTCLRSPACEYUV		
		13  DDCKEYCAPS_SRCBLTYUV				
		14  DDCKEYCAPS_SRCOVERLAY				
		15  DDCKEYCAPS_SRCOVERLAYCLRSPACE		
		16  DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV	
		17  DDCKEYCAPS_SRCOVERLAYONEACTIVE		
		18  DDCKEYCAPS_SRCOVERLAYYUV			
		19  DDCKEYCAPS_NOCOSTOVERLAY			


[[更新履歴・bugfix情報]]

	○Ver 0.01  2000/12/25
	以下の不具合について修正を行っています。

	・es_byeを実行するとそこでプログラムが終了する
	・オフスクリーンバッファが0〜7までしか使えない (マニュアルの記載
	　と異なる為修正)
	・es_windowを実行した際、パラメータp2の値が反映されない(厳密には
	　p1の値が反映されてしまう)
	・es_clearでパラメータp2の値に関係なくp1以降の全てのスプライトを
	　消去してしまう
	・RGB=(0,0,0)のパレットを透明色とみなさず、常にパレット0が透明色
	　になる

	また、以下の点について仕様変更を行っています。

	・es_copyで画面からはみ出る場合にクリッピングを行うようにした
	・es_bufferに新しく3つ目のパラメータを設定(es_buffer p1,p2,p3)
	→これにより透明色をプログラム側で手動設定できるようになりました。
	　p3に透明色として使用するパレット番号を入れて下さい。また、-1を
	　指定することで自動的に RGB=(0,0,0)で一番番号の若いパレットを透
	　明色に指定します。


	○Ver 0.02  2001/01/12
	以下の不具合について修正を行っています。

	・es_palfadeを実行した際、画面の明るさが目標値に達してもフェード
	　イン／アウトを続ける、もしくは突然画面が真っ白／真っ黒になる

	また、コンパイルオプションの見直しでファイルサイズが小さくなりま
	した。


	○Ver 0.03  2001/01/25
	以下の不具合について修正を行っています。

	・実行中キーボードやマウスに触れないでいるとスクリーンセーバーが
	　動き出してしまい、悲惨なことになる
	 (ただし、なぜか作者の環境下において確認できなかったため直ってい
	　ない可能性があります)

	また、以下の点について仕様変更を行っています。

	・es_copyの描画をBltFastに変更
	→これにより、 es_copyを多用したプログラムで処理速度が向上すると
	　思われます。


	○Ver 0.04  2001/02/07
	以下の不具合について修正を行っています。

	・エラーが出た際にデバッグウィンドウが奥に隠れて表示されないバグ
	　の修正
	・es_syncのウェイトルーチンを修正。 ウェイトが安定すると思います。

	以下の命令を追加しました。

	・es_timer p1
	→Windowsを起動してからの経過時間をミリ秒単位で返します。
	・es_getfps p1
	→p1に秒間のフレーム数を返します。

	　いちいち他のDLL使ったりルーチン組むのが面倒なので作っただけで
	す。


	○Ver 0.05  2001/02/20
	・es_palsetでp1に0〜255の範囲外を入れると強制終了するバグの修正
	・es_syncのウェイトルーチンをさらに修正
	・ウィンドウモードをサポート(ただし一部制限あり)


	○Ver 0.06  2001/02/24
	・es_syncでフルスクリーンでもvsyncを待たないようにできるように
	　した
	・ウィンドウモードでフェードイン／アウトすると色が化けるバグの
	　修正
	・es_aimでstatに角度が返るようにした (以前からそうでしたが、書
	　き忘れていました)
	・ウィンドウモードでウィンドウのサイズにあわせて画面を拡大縮小
	　するようにした


	○Ver 0.07  2001/03/01
	・純正HSPDXとの互換性のためにes_syncのウェイトの仕様を逆にした
	 (単純なウェイトをとる方式がデフォルトとなっています)
	・es_ang命令を追加した(たかのんさんより要望を頂きました)


	○Ver 0.08  2001/03/06
	・es_angで返す角度が逆になっていたバグの修正
	・オフスクリーンバッファを最大64個まで取得できるようにした
	 (Takaさんより要望を頂きました)


	○Ver 0.09  2001/05/04
	・es_angとes_aimで角度の検出範囲を変更
	 (たかのんさんより要望を頂きました)
	・デスクトップの色数が16bit以上でウィンドウモード時にes_getbuf
	　を実行すると正しく表示されないバグの修正
	・↑により、HSP側のバッファはフルカラーでも可、 バッファサイズ
	　はDirectX側と違っても正常に動作するようになりました
	・es_buffer実行時、デスクトップの色数が16bit以上の場合は画像を
	　BitBltでバッファに転送するように変更
	 (ウィンドウモード時に色化けする可能性があったのを回避するため
	　の修正です)
	・↑に伴い、以前のバージョンに添付していたCOLTEST.ASはアーカイ
	　ブから外しました


	○Ver 0.10  2001/05/09
	・一部のパレットがフェードイン／アウトできなかったバグの修正


	○Ver 0.11  2001/06/14
	・一部の環境でフルスクリーン時にフェードイン／アウトができなか
	　ったバグの修正
	・ハイカラー、フルカラーに対応 (まだ十分に動作確認していません)


	○Ver 0.12  2001/06/15
	・24bitが指定できなかったバグの修正


	○Ver 0.13  2001/09/03
	・es_screenで24bitあるいは32bitを指定した場合、最初に32bitで初
	　期化を試み、失敗したら24bitで初期化するように変更
	・es_buffer_np、es_buffer_pm命令追加(紛らわしい名前ですみません)
	・es_palcopy命令を追加
	・フルスクリーン時、Alt+F4で終了すると正常に終了しないバグの修正
	 (猫狼さんより報告を頂きました)
	・↑の副作用で、Alt+TabやAlt+Ctrl+Delなどが利いてしまうように
　　　なりましたので注意してください


	○Ver 0.14　2002/01/05
	・マニュアル誤記修正
	・ウィンドウモードでハイカラー以上の色数を使用する時、デスクトッ
	　プの色数と異なっていても 256色でなければエラーにならないように
	　した
	・es_screenに、 サーフェスをシステムメモリに置いてウィンドウモー
	　ドで動作させるモードを追加した
	・es_kill、es_clear実行時に、 スプライトのtype値がクリアされない
	　不具合の修正
	 (猫狼さんより報告を頂きました)
	・es_iniの第3パラメータで、周の精度を設定できるようにした
	 (元々別用途で使われていましたが、機能していなかったため問題ない
	　と判断しました)
	・es_ini実行時にメモリが確保できなかった場合、 statに1を返すよう
	　にした
	・es_sin、es_cos命令の追加
	・es_fmesbuf、es_mesbuf命令の追加
	 (ゆうさんより要望を頂きました)


	○Ver 0.14beta1　2004/06/23
	・内部処理をDirectX7ベースに変更
	・ほぼ全ての命令をタイプ$202に変更、それに伴い一部の命令でパ
	　ラメーターの整理や命令の統合を行った
	・16bit以上でes_bufferのカラーキーに-1を指定した場合、 (0,0)
	　のドットの色を読み取ってカラーキーにするようにした
	・es_exnew、es_gravity、es_bound命令追加
	・自由落下移動処理をちょいと調整
	・es_syncでVsyncを待たない設定でもflipを使うように変更
	・一部の命令でログを出力できるようにした
	 (とりあえずベータリリース限定で機能させるようにします)
	・ウィンドウモード時の表示周りを多少変更
	・es_zoom命令にクリッピング追加
	・実行中に約49.7日が経過し、 タイマーがリセットされてもFPSを
	　取得できるようにした
	・es_timer命令でタイマーの取得方法を選択できるようにした
	・その他細かい変更、修正


	○Ver 0.14beta2　2004/07/22
	・es_screenにDirect3Dをサポートするためのパラメータを追加
	・16bit以上でカラーキーに -1を指定しても正しく色を読み取らな
	　かったバグの修正
	・DirectDraw相当の表示ができるようになったので es_excopy命令
	　追加


	○Ver 0.14beta3　2004/07/26
	・es_excopy命令の更新
	　→パラメータを省略した際にテクスチャが崩れることがあったの
	　　を修正
	　→Z軸回転サポート
	　→半透明処理サポート
	　→Direct3Dを使用しない状態で実行した場合、 statに1を返すよ
	　　うにした
	・es_new、es_exnew命令でパラメータを省略できるようにした
	・es_buffer命令に、 テクスチャとして使用しないパラメータを追
	　加した


	○Ver 0.14beta4　2004/08/03
	・スプライト描画にDirect3Dサポート追加(ただし一部不完全)
	・es_dist、es_blink、es_effect命令追加
	 (es_dist命令はたかのんさんより要望を頂きました)
	・es_set命令にDirect3D使用フラグを追加
	・テクスチャサイズに制限のある環境でDirect3Dを使用する時は、
	　es_bufferで作成するバッファのサイズを調整するようにした
	・es_windowを指定するとオフセットがずれるのを修正


	○Ver 0.14beta5　2004/08/09
	・Direct3Dスプライト描画を更新
	　→es_window対応
	　→拡大・縮小に合わせて当たり判定のサイズを変更するようにし
	　　た(まだ回転には未対応)
	・Direct3D使用時にフェードイン／アウトができるようにした
	・es_fill命令を16bitカラーに対応
	・es_exboxf命令追加


	○Ver 0.15　2004/09/11
	・Direct3D描画を更新
	　→X,Y軸回転サポート
	・スプライトを消去してもカウントダウンタイマーがリセットされ
	　ないバグの修正
	 (イナダさんより報告を頂きました)
	・es_gdi命令追加
	 (ＴＫＳさんより要望を頂きました)


	○Ver 0.15beta1　2004/10/04
	・周の精度を4096未満にするとスプライトが一周回転しないバグの
	　修正
	 (ふじもとさんより報告を頂きました)


	○Ver 0.15beta2　2004/10/18
	・es_flag命令でbit7の解釈が間違っていたのを修正
	・es_bound命令の第3パラメータにデフォルト値を採用
	 (以上2点は葦田ひろかずさんより報告を頂きました)
	・es_d3dopt命令追加と、 デフォルトでポリゴンの裏を描画しない
	　よう設定した
	 (既知問題に対する一時的な対処を含む)
	・ハードウェアが 2の累乗でないサイズのバッファをサポートしな
	　いためにバッファサイズが変更された場合にテクスチャが正しく
	　表示されないバグの修正
	 (TOSHIさんより報告を頂きました)
	・es_drawにスプライトを移動しないパラメータ追加並びにes_move
	　命令追加
	 (ゆうきさんより要望を頂きました)
	・es_sin、es_cos命令で範囲外の角度を指定しても正確に値を返す
	　ようにした


	○Ver 0.15beta3　2004/11/29
	・計算式が間違っていたせいで長方形のスプライトの当たり判定が
	　おかしくなっていたのを修正
	 (maさんより報告を頂きました)
	・Direct3Dを使用しないとes_screen実行中に落ちるバグの修正
	 (葦田ひろかずさんより報告を頂きました)
	・32bitモードだと一部の DirectDraw描画で色指定が反映されない
	　バグを修正
	・es_excopy命令とes_effect命令にライト色を実装
	・「閉じる」ボタンをクリックして終了したときなどに落ちるのを
	　修正
	・es_blink命令や es_flag命令でカウントダウンタイマーに奇数を
	　指定するとスプライトが表示されなくなるバグの修正
	・es_clip命令追加
	・es_excopy2、es_effect2、es_bfcalc、es_rgbcalcマクロ追加


	○Ver 0.15beta4　2004/12/31
	・Direct3D描画時、画面左上端からはみ出るように描画すると表示
	　が崩れるバグを修正
	 (KRN☆さんより報告を頂きました)
	・回転を考慮した当たり判定を不完全ながら実装


	○Ver 0.15beta5　2005/01/21
	・回転表示時にゴミが出るバグを修正
	・es_blink命令でフラグを 2にしていた時に、点滅終了後スプライ
	　トが表示されないバグを修正
	・es_setp命令を正式サポート
	・es_check命令に検索始点、終点をサポート
	・es_get命令の各info no.をdefine登録
	・2軸を併用した回転が間違っていたバグを修正
	・es_boxf,es_fill命令の描画範囲修正
	・クリッピング領域を画面中央からはずれた位置にとるとDirect3D
	　描画時に表示位置がずれるバグを、ある程度正しく表示されるよ
	　うに修正
	 (ゆうきさんより報告を頂きました)
	・es_expatマクロ追加
	 (hiraさんより要望を頂きました)


	○Ver 0.15beta6　2005/01/27
	・es_expatからes_patに渡すパラメータが間違っていたのを修正
	 (hiraさんより報告を頂きました)
	・es_get用defineのうち、 *_LOWER、*_HIGHERとなっていたものを
	　*_LOW、*_HIGHに変更
	・Direct3D使用時の表示ずれを修正
	・es_ini命令実行時にDEBUG.TXTファイルを初期化するように変更
	・GeForce系グラフィックボードで、 クリッピング領域のサイズに
	　よってはテクスチャが崩れることがあったのを修正


	○Ver 0.16　2005/02/22
	・es_cls命令の高速化。
	・Direct3Dスプライト描画の高速化。
	・回転を考慮しない場合に当たり判定が左上に寄るバグを修正。
	・es_sync命令に旧仕様のVsyncを待たない画面更新を実装。
	・es_boxf,es_fill命令にクリッピング追加。
	・es_find命令に終点と増分のパラメータを追加。
	 (以上4点はO2Kさんより報告・要望を頂きました)
	・プラグインからウィンドウサイズが変更されたときに画面にゴミが残るバグ
	　を修正。ただし最大化ボタンが無効になっています。
	・2軸を併用した回転がまだ間違っていたので修正。 今度こそ想定通りの動作
	　になったはず。
	・スプライトの優先順位をサポート。
	 (hiraさんより要望を頂きました)
	・es_aim,es_adir命令で、速度を0%に指定したら停止するように変更。
	・es_fill命令が1ドット余分に描画されていたバグの修正。
	 (Ｒｉｃｋｙさんより報告を頂きました)
	・es_exput、es_cursor、es_showdia命令、es_dialogマクロ追加。
	 (es_exputはYukashiさんより要望を頂きました)
	・ポリゴンの背面描画をカリングの切り替えで行うよう変更。
	・es_screenで24bit以上を指定した場合、今まで32bit→24bitの順で変更を試
	　みていたのをパラメータが優先されるように変更。
	・カラーマッチングの高速化並びに正常化。
	・es_copyなどで実行ごとにBMSCRを取得するように変更し、「gsel 0」がなく
	　ても描画が正しく行われるようにした。
	・当たり判定更新(注:かなり改善されましたが、まだ不完全です)。
	　→X,Y軸回転に対応。
	　→判定が交差した場合にスルーされないようにした。
	　→無駄な判定が常時行われていたのと、それによる判定ミスを修正。
	・三角関数テーブルの精度を改善。


	○Ver 0.17　2005/03/21
	・DirectDraw描画のクリッピングが不正確だったのを修正。
	 (ゆうきさんより報告を頂きました)
	・es_aim命令を実行すると落ちるバグの修正。
	・es_boxf命令を 256色モードで使用すると第1パラメータ以外無視されるバグ
	　の修正。
	 (以上2点はO2Kさんより報告を頂きました)
	・当たり判定更新。
	　→幅の狭い長方形に対して回転を考慮した判定を行ったときに見た目と判
	　　定が一致しないバグの修正。
	　→回転を考慮した判定を若干高速化。
	・Direct3Dモード有効時にes_clsがクリッピングの影響を受けていたバグの修
	　正。
	・HSPDX 側のパレットにあわせて画像を転送したときに透過色が正しく設定さ
	　れなかったバグの修正。
	 (米畑 貴実さんより報告を頂きました)
	・es_draw及びes_moveにアニメーション制御フラグを追加。
	 (Yukashiさんより要望を頂きました)
	・ポリゴンの背面描画を廃止し、es_d3doptの第1パラメータをテクスチャアド
	　レッシングの設定に使用するよう変更。また、第3パラメータを追加。


	○Ver 0.18　2005/05/03
	・es_exboxfに頂点色指定を追加。
	・Direct3Dモード有効時にフェードアウトがクリッピングの影響を受けていた
	　バグの修正。
	・環境依存のクラッシュ(既知問題)の原因になっていた可能性があるので、ス
	　プライト並びにキャラクタ用メモリを確保後ちゃんと初期化するようにした。
	・Direct3D描画において全く回転しない場合の描画速度を向上。
	・es_boxfおよびes_fillに描画先バッファの追加。
	 (hiraさんより要望を頂きました)
	・es_bufcheckモジュール追加。


	○Ver 0.19　2005/08/25
	・es_bye後に再度DirectXの初期化を行うと落ちる不具合を多少改善。
	・es_sizeで当たり判定のサイズを0%にしたときは判定なしにするようにした。
	 (phantさんより要望を頂きました)
	・HSP3.0で動作するようにヘッダファイルを手直し。


	○Ver 0.19a　2007/05/13
	・HSP3.1リリースに合わせる形で、掲示板上にて公開していたバージョンに差
	　し替え。ただしデバッグ版は旧バージョンのままです。
	・es_windowの記述がマニュアル上で間違っていたのを修正。
	 (ZAPさんより報告を頂きました)
	・一部環境にて半透明処理が正常に行われないのを修正。
	 (KIMUさん、Yukashiさんより報告を頂きました)
	・es_effectで左右反転したスプライトの当たり判定が変だったのを修正。
	 (撃さんより報告を頂きました)
	・es_clipとes_zoomを併用するとコピー元の画像までクリッピングされてしま
	　うのを修正
	 (cat-syoyaさんより報告を頂きました)
	・es_exboxfで、色指定を省略すると間違って表示されるのを修正。
	 (RuthlessDragonさんより報告を頂きました)
	・es_bufferが直前に実行した命令のstat値をクリアしないのを修正。
	 (ルーイヨッシーさんより報告を頂きました)


	○0.19b　2007/06/10
	・スプライトの優先順位が逆だったのを修正
	 (エコQさんより報告を頂きました)


	○Ver 0.19b→0.19c　2007/06/19
	・バッファ0のスプライトを回転すると表示化けが起こるのを修正
	・es_windowで画面外を指定すると正しくクリッピングされないのを修正
	 (kt.さんより報告を頂きました)


-------------------------------------------------------------------------------
                                                HSP users manual / end of file 
-------------------------------------------------------------------------------
