TECH.TXT: Typo fixes and minor corrections

This commit is contained in:
kichikuou
2020-09-21 11:03:13 +09:00
parent dbac18c260
commit ecba592d82
+42 -42
View File
@@ -84,7 +84,7 @@
必要に応じてシナリオ内の変数に読み込みます。
f) リソースファイルは、マウスカーソルの形状とアニメーションマウスカーソルの
データを格納しています。これまで DARCROW でのみ使用されました。
データを格納しています。これまで DARCROWS でのみ使用されました。
g) セーブデータは、システム管理情報と数値変数、文字列変数のすべてを含んだ
全セーブデータ(*.asd)と数値変数・文字列変数の一部を保存したデータの2種類が
@@ -94,17 +94,17 @@
h) その他のデータの範疇に入るものとしては外字ファイルとデータファイルがあり
ます。
外字ファイルは、PC9801の外字領域に16x16ドットのビットマップデータを並べた
もので、オリジナルの外字を表示させるのに加えて、98機種依存文字の吸収も目指
もので、オリジナルの外字を表示させるのに加えて、PC98機種依存文字の吸収も目指
していたのですが、結局外字ファイルは「いけないかつみ先生」で使われたのみで、
SYSTEM35.EXE Version 2.x 以降ではサポートすらされなくなりました。また、機種
依存文字(まる文字やギリシャ数字など)はそれ以降のゲームでも機種存のコードで
依存文字(まる文字やギリシャ数字など)はそれ以降のゲームでも機種存のコードで
継続して使われています。SYSTEM 3.9 では再び外字のサポートが復活するようです。
データファイルは、基本的には、シナリオ変数を外部に保存したものと考える事
ができます。マップデータのようにあらかじめゲームに附属しているものもあれば、
ゲームの途中経過を記録するために、ファイルに書き出す事もあります。
かえるにょぱにょんのマップデータ等のように e)のデータファイルで代用でき
ものもあります。
かえるにょぱにょんのマップデータ等のように e)のデータファイルで代用でき
ものもあります。
3. データファイル (.ald) のフォーマット
@@ -143,15 +143,15 @@
data そのものについても、ヘッダと実データに分ける事が出来ます。ヘッダは
32バイト以上の長さで次のようになっています。
int32 prt;
int32 ptr;
int32 size;
int32 time_l;
int32 time_h;
char name[?];
ptr は実際のデータへのヘッダからの相対アドレスです。size はデータの大きさを
表します。 time_l と time_h は Windows 特有(?)の値で、データの作成時間をユリ
ウス歴の最初の日付からの経過時間をナノ秒で表したものです。name はアーカイブ
表します。 time_l と time_h は Windows の FILETIME 型の値で、データの作成時
を1601-01-01からの100ナノ秒単位の経過時間で表したものです。name はアーカイブ
する前のデータのファイル名で、16バイト以上の長さがあります。16バイト未満の時
は0でパディングされます。またヘッダとデータを併せて 256バイト単位になるよう
にデータの後ろは0でパディングされます。
@@ -204,13 +204,13 @@
int8 pal[3*16];
(x0,y0) は、CGを表示する位置を表します。シナリオから表示位置の指定のない場合
この値を使います。x0 は 8で割った大きさになっていますので、x0=10 とあった
合は実際には (80,y0) の位置に表示します。
この値を使います。x0 は 8で割った大きさになっていますので、x0=10 とあった
合は実際には (80,y0) の位置に表示します。
(width, height) は CG の大きさを表します。widthは実際には8で割った大きさに
なっています。これは、プレーン型のデータが元になっているためです。プレーン型
のデータの場合、1バイトで表されるのは8ピクセル分だったため、width にいれる
値は占めるバイト数を格納した方が有利だっためと考えられます。よってCGの横の
値は占めるバイト数を格納した方が有利だっためと考えられます。よってCGの横の
サイズは常に8の倍数になります。8の倍数以外にしたい場合は、余る部分を透過
パレット(スプライト)とする事で実現出来ます。
@@ -234,7 +234,7 @@
です。
00, len;
一つ上のプレーンと(len+1)の長さだけ同じ
同じプレーンの一つ左の列と(len+1)の長さだけ同じ
01, len, pic;
1バイト(pic)の繰り返し。長さは(len+1)
@@ -277,8 +277,9 @@
int8 bpp;
int8 bppS;
int8 trans_pal;
int16 palett_bank;
int32 rsv;
int8 rsv1;
int16 palette_bank;
int32 rsv2;
int32 x0;
int32 y0;
int32 width;
@@ -291,10 +292,9 @@
ver はデータのバージョンで、現在は 1 が入っています。
bpp はデータの bit per pixel で 8または16です。256色データの場合は 8、64k色
の場合は 16です。
bpp はデータの bits per pixel で256色データの場合は 8、64k色の場合は16です。
bppsはαチャンネルの bit per pixel で通常は8です。
bppsはαチャンネルの bits per pixel で通常は8です。
trans_pal は透過するパレットの番号です。通常はシナリオから指定が来るので
使用しません。
@@ -302,7 +302,7 @@
palette_bank は データの中のパレットのどの部分をシステムに転送するかを
表します。通常は 256個全部転送するのですが、CGデータがそれ以下しか色を使って
ない場合には、一部のみ転送することができます。palette_bank は 16bit の情報を
持ち 256個を 16個つに分割してどの部分を転送するかを指定します。bit-on で
持ち 256個を 16個つに分割してどの部分を転送するかを指定します。bit-on で
転送です。LSB が0-15, MSB が 240-255 です。
(x0, y0) は CG の表示位置です。VSP と違って8で割った大きさではなく実際の
@@ -315,7 +315,7 @@
palette_ptr は bppが8の場合にはパレットへの相対アドレスが入りますが、
16の場合にはαチャンネルデータへの相対アドレスが入ります。
comment_prt はデータにコメントをつける事ができて、そのデータへの相対アドレス
comment_ptr はデータにコメントをつける事ができて、そのデータへの相対アドレス
を指定します。
パレット
@@ -333,31 +333,31 @@
2つ上のラインと同じ。長さは (len+3:8bit, len+2:16bit)
0xfd, len, pic,
1byte の picデータの連続。長さは (len+4:8bit, len+3:16bit)
1ピクセルの picデータの連続。長さは (len+4:8bit, len+3:16bit)
0xfc, len, pic1, pic2
2byte (pic1, pic2) データの連続。長さは ((len+3)*2:8bit, ((len+2)*2):16bit))
2ピクセル (pic1, pic2) データの連続。長さは ((len+3)*2:8bit, (len+2)*2:16bit)
0xfb
左上のデータと同じ。(PMS16専用)
左上のピクセルと同じ。(PMS16専用)
0xfa
右上のデータと同じ。(PMS16専用)
右上のピクセルと同じ。(PMS16専用)
0xf9, len, pic_h, pic_l1, pic_l2, .... (PMS16専用)
ピクセル間の色の差が小さいものの連続。長さは(len+1)
各ピクセルのうち、R の上位 3bit, G の 2bit, B の 2bit が同じで、R の下位
各ピクセルのうち、R の上位 3bit, G の 2bit, B の 3bit が同じで、R の下位
2bit, G の 4bit, B の 2bit が異なるとき、下位の異なる部分のみを pic_l2,
pic_l3... で表す。( RGB は 5bit, 6bit, 5bit で表される)
pic_h, pic_l1 で最初のピクセルを構成し、ここから、RGB の上位が同じで、下位の
異なる部分を pic_l2, pic_l3... で構成する
異なる部分を pic_l2, pic_l3... で構成する
0xf8, pic
picそのもの。コードと同じピクセル用。8bit では pic は 1byte, 16bit では 2byte.
0xf7-0x00
データそのもの 8bitでは 1byte, 16bit では 00-f7 の次のコードはすべて(00-ff)
使用してピクセルを構成。
データそのもの 8bitでは 1byte, 16bit では次の 1byte と合わせてピクセルを
構成。
4.3 QNT フォーマット
@@ -380,7 +380,7 @@
int32 width;
int32 height;
int32 bpp;
int32 rsv(?)
int32 rsv; (?)
int32 pixel_size;
int32 alpha_size;
@@ -420,7 +420,7 @@
header_size はヘッダの大きさをバイト数で表しています。Version 0 では 48
バイト固定です。
(x0, y0) は CG の表示位置の指定です
(x0, y0) は CG の表示位置の指定です
(width, height) は CG の大きさの指定です。
@@ -472,8 +472,8 @@
最新のものでは 'S380' となっています。途中混乱した時期があってこれと異なる
場合もあります。
dat_prt は実際のシナリオデータの先頭への相対アドレスです。また、シナリオ中の
ジャンプ命令のアドレスは、上のヘッダの最初からの相対アドレスを使用します。
data_ptr は実際のシナリオデータの先頭アドレスです。また、シナリオ中の
ジャンプ命令のアドレスは、上のヘッダの先頭からの相対アドレスを使用します。
size はヘッダを含めたデータのサイズを示しています。
@@ -534,21 +534,21 @@
04h 演算子(>= 以上)
数値は0から65535までの正の整数を扱えます。しかし、計算式上では word 定数は
3FFFh しかあつかえませんので、それ以上の値を扱う場合は演算子を使います。
3FFFh までしかあつかえませんので、それ以上の値を扱う場合は演算子を使います。
65536 以上の数値を扱ったり、浮動小数を扱う場合は、64ビット変数を使用します。
配列を除く変数の最大は論理的には16384 個ですが、実際には 2000 以下に実装上
限界があります。1000 以上になる場合は、配列変数を有効に使うと良いでしょう。
配列を除く変数は論理的には最大 16384 個ですが、実際には 2000 以下に実装上
限界があります。1000 以上になる場合は、配列変数を有効に使うと良いでしょう。
(xsystem35 の場合は 1024, 1.5.1pre1から 8192)
変数には、数値変数と配列変数があります。配列変数は、index 変数を用いた
アクセス方法と、var[]のようなアクセス方法があります。var[]では上の 3.51拡張
コードを使用して C0, 01, base_h, base_l, cali: というコーディングがなされま
コードを使用して C0, 01, base_h, base_l, cali: というエンコードがなされま
す。配列のベースとなる変数が (base_h << 8) + base_l で表され、インデックスは
cali で指定されます。インデックスは配列変数も使用可能です。ex. var10[var20[5]]
cali で指定されます。インデックスは配列参照も使用可能です。ex. var10[var20[5]]
計算式は逆ポーランド記述で格納されますので、基本的な処理はスタックからつの
数値または変数と1つの演算子を取り出して演算し、結果をスタックに戻します。
計算式は逆ポーランド記述で格納されますので、基本的な処理はスタックからつの
演算子と2つの数値または変数を取り出して演算し、結果をスタックに戻します。
この操作を 0x7f が出現するまで繰り返します。0x7f が来たら、スタックに残って
いる数値を取り出します。コマンドの引数として変数を要求している場合の計算式
は、変数へのポインタを返します。
@@ -657,8 +657,8 @@
wav** など小文字系のコマンドはすべて 0x2f, 0x??, にエンコードされます。
また引数として文字列を含むもの(ファイル名など)は、従来は ':' で終っていました
が、system 3.8 以降では '\0' で終わるようになり、これらコマンドは新規に 0x2f
コマンドとして新規に割り当てられました。
が、system 3.8 以降では '\0' で終わるようになり、これらコマンドは新規に
0x2f コマンドとして割り当てられました。
0x2f, 0x0a, cali *2: [wavLoad]
0x2f, 0x0b, cali *2: [wavPlay]
@@ -807,7 +807,7 @@
ここでは、コマンド表に載っていないけど、ゲームに出て来るものを紹介します。
5.8.1 VA
* 機能: ユニットアニメーション (かえるにょ・ぱにょん初出)
* 機能: ユニットアニメーション (かえるにょ・ぱにょん初出)
* フォーマット: VA getd, cali, cali, cali:
* VA0 : 制御用コマンド
@@ -821,7 +821,7 @@
VA0, no, 1, num:
no番のアニメーション開始。すぐに制御を戻す。
numはコマ数, 0の場合と開始位置と終了位置が同じな時はアニメーションは
動かずにコマ数だけが無限にされるカウント。
動かずにコマ数だけが無限にカウントされる
VA0, no, 2, num:
no番のアニメーション開始。終るまで制御を戻さない。