技術資料
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
技術資料 [2024/02/20 07:41] – [部屋データ] araki | 技術資料 [2025/04/25 04:11] (現在) – [初期データ] araki | ||
---|---|---|---|
行 197: | 行 197: | ||
先頭には、トーンパターンが何色分定義されているのかが1byteで表されている。 | 先頭には、トーンパターンが何色分定義されているのかが1byteで表されている。 | ||
- | トーンパターンは、1-7の色を指定されたパターンで置き換えるためのもので、カラーパレット機能のようなものである。 | + | トーンパターンは、1-6の色を指定されたパターンで置き換えるためのもので、カラーパレット機能のようなものである。 |
- | その後ろに3バイト(RGB)のトーンデータが指定された数だけ続き、その後ろがようやく最初の描画データになる。 | + | その後ろに3バイト(BRG)のトーンデータが指定された数だけ続き、その後ろがようやく最初の描画データになる。 |
描画を始める前に、描画域全体を青(色コード1)で塗りつぶす。 | 描画を始める前に、描画域全体を青(色コード1)で塗りつぶす。 | ||
行 212: | 行 212: | ||
トーンデータは最初に書いたように、パターン数+パターン数*3バイトのパターンデータとして登録されている。 | トーンデータは最初に書いたように、パターン数+パターン数*3バイトのパターンデータとして登録されている。 | ||
- | 最大で6 (カラーコード1-7に対応)のパターンがあり、対応するカラーコードを置き換えていく。 | + | 最大で6 (カラーコード1-6に対応)のパターンがあり、対応するカラーコードを置き換えていく。 |
PC-9801では、パターンデータのままに、縞模様を使った中間色画像として描画されたが、PalmOS以降ではそれらしい色に置き換えるように変更してある。 | PC-9801では、パターンデータのままに、縞模様を使った中間色画像として描画されたが、PalmOS以降ではそれらしい色に置き換えるように変更してある。 | ||
PalmOSとAndroidには縞模様の中間色画像を表示する機能も付けてあるが、あえて表示する価値はないと思われる。 | PalmOSとAndroidには縞模様の中間色画像を表示する機能も付けてあるが、あえて表示する価値はないと思われる。 | ||
+ | ^ トーンデータ ^^^^^ 線画データ ^^^^^^^^^^^^^^ | ||
+ | |n|t1(B)|t1(R)|t1(G)|...|x0|y0|x1|y1|...|xn|0xff|x0|y0|x1|y1|...|0xff|0xff| | ||
+ | ^ ペイントデータ ^^^^^^^^^ 白線データ ^^^^^^^^^^^^ | ||
+ | |x|y|c|x|y|c|...|0xff|0xff|x0|y0|...|xn|0xff|x0|y0|x1|y1|...|0xff|0xff| | ||
+ | |||
+ | ^ 黒線データ ^^^^^^^^^^^^^^ | ||
+ | |x0|y0|x1|y1|...|xn|0xff|x0|y0|x1|y1|...|0xff|0xff| | ||
+ | |||
+ | == トーンデータ == | ||
+ | |||
+ | トーンデータは、3バイトを一組として、BRGの横8dot分のトーンパターンを定義している。 | ||
+ | カラーコード1-6で描かれている部分をこのトーンパターンで置き換え、中間色表現による色表現を行う。 | ||
+ | |||
+ | 要は、当該カラーコードのある点に対して、< | ||
+ | |||
+ | なお、今どきの端末の多くはRGB565であったり ARGB8888であったりと、より多色を使った表示がかのうなので、あえて中間色を使う必要性は高くない。 | ||
+ | |||
+ | 中間色は、要は、交互に色を並べることで、その中間の色に見せる(白+赤ならピンクに見えるように)というものなので、パターンのうち1が立っているビットの密度を数えて、それをB/ | ||
行 233: | 行 251: | ||
メッセージ番号0のメッセージは、そのマップが表示されたときに表示されるメッセージで、それ以外のメッセージは、その場所で特定の動作をしたときに表示されるメッセージである。 | メッセージ番号0のメッセージは、そのマップが表示されたときに表示されるメッセージで、それ以外のメッセージは、その場所で特定の動作をしたときに表示されるメッセージである。 | ||
その特定の動作は、コマンド・メッセージリンクで定義されている。 | その特定の動作は、コマンド・メッセージリンクで定義されている。 | ||
+ | |||
+ | ^メッセージ長^^メッセージ^メッセージ長^^メッセージ^ ^終端マーク^^ | ||
+ | |上位|下位|文字列0(UTF-8)...|上位|下位|文字列1(UTF-8)...|...|0|0| | ||
=== コマンド・メッセージリンク === | === コマンド・メッセージリンク === | ||
行 238: | 行 259: | ||
描画データのあと、オフセット0x400から0x100バイトのデータが、コマンド・メッセージリンクになる。 | 描画データのあと、オフセット0x400から0x100バイトのデータが、コマンド・メッセージリンクになる。 | ||
3バイト一組のデータで、動詞+目的語+メッセージIDである。 | 3バイト一組のデータで、動詞+目的語+メッセージIDである。 | ||
+ | 後続のメッセージ部のメッセージ数分だけのエントリーが存在している。 | ||
その場所で、動詞+目的語の動作をしたときに、ID番目のメッセージを表示する。 | その場所で、動詞+目的語の動作をしたときに、ID番目のメッセージを表示する。 | ||
行 244: | 行 266: | ||
こういう仕掛けを一所懸命しこんだであろう原作者たちの思いを表すものである。 | こういう仕掛けを一所懸命しこんだであろう原作者たちの思いを表すものである。 | ||
+ | ^リンクデータ0^^^ ^終端マーク^ | ||
+ | |動詞|目的語|メッセージ番号|...|0| | ||
==== ものデータ ==== | ==== ものデータ ==== | ||
行 257: | 行 280: | ||
===== 語句辞書仕様 ===== | ===== 語句辞書仕様 ===== | ||
+ | 辞書ファイルは、0x200バイトの動詞領域および0x200バイトの目的語領域からなる。 | ||
+ | 語句は逆HAL符号((命名はわたし。))で符号化され、5bytesを一組としている。 | ||
+ | |||
+ | ^0^1^2^3^4^ | ||
+ | |符号化語||||意味| | ||
+ | |||
+ | 符号化語部分は最大4byteだが 0が現れたらその後ろは無視される。 | ||
+ | 先頭が0か0x200バイトを超えたらそれ以上はワードは存在しない。 | ||
+ | |||
+ | 符号化されたワードをデコードすると英単語が得られる。 | ||
+ | 単語の意味するところは意味バイトが示している。 | ||
+ | つまり、例えば look と see とに同じ意味バイトを割り当てることで、どちらの動詞が与えられても「見る」という意味として解釈できる仕組みになっている。 | ||
+ | |||
+ | 目的語に関しても同様の構造になっている。 | ||
+ | |||
+ | ===== 初期データ ===== | ||
+ | |||
+ | 初期データは、以下の3つのパートからなる。 | ||
+ | |||
+ | * マップ間のリンク情報(8bytes x 87) | ||
+ | * アイテムの所在情報(12bytes) | ||
+ | * フラグ(15bytes) | ||
+ | |||
+ | スタート時に初期状態が読み込まれ、セーブ/ | ||
+ | つまり、ゲームのステータスのすべてはこの情報だけで完結している。 | ||
+ | ===== 音データ ===== | ||
+ | ===== メッセージファイル ===== | ||
技術資料.1708414874.txt.gz · 最終更新: 2024/02/20 07:41 by araki