ユーザ用ツール

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
技術資料 [2025/04/25 03:52] – [部屋データ] araki技術資料 [2025/10/20 01:34] (現在) – [セーブデータファイル] araki
行 17: 行 17:
   * 音データファイル   * 音データファイル
   * メッセージファイル((QT版のみ))   * メッセージファイル((QT版のみ))
 +  * セーブデータファイル((保存された場合))
 ===== ゲームエンジン仕様 ===== ===== ゲームエンジン仕様 =====
  
行 197: 行 198:
  
 先頭には、トーンパターンが何色分定義されているのかが1byteで表されている。 先頭には、トーンパターンが何色分定義されているのかが1byteで表されている。
-トーンパターンは、1-7の色を指定されたパターンで置き換えるためのもので、カラーパレット機能のようなものである。+トーンパターンは、1-6の色を指定されたパターンで置き換えるためのもので、カラーパレット機能のようなものである。
  
 その後ろに3バイト(BRG)のトーンデータが指定された数だけ続き、その後ろがようやく最初の描画データになる。 その後ろに3バイト(BRG)のトーンデータが指定された数だけ続き、その後ろがようやく最初の描画データになる。
行 212: 行 213:
  
 トーンデータは最初に書いたように、パターン数+パターン数*3バイトのパターンデータとして登録されている。 トーンデータは最初に書いたように、パターン数+パターン数*3バイトのパターンデータとして登録されている。
-最大で6 (カラーコード1-7に対応)のパターンがあり、対応するカラーコードを置き換えていく。+最大で6 (カラーコード1-6に対応)のパターンがあり、対応するカラーコードを置き換えていく。
  
 PC-9801では、パターンデータのままに、縞模様を使った中間色画像として描画されたが、PalmOS以降ではそれらしい色に置き換えるように変更してある。 PC-9801では、パターンデータのままに、縞模様を使った中間色画像として描画されたが、PalmOS以降ではそれらしい色に置き換えるように変更してある。
行 229: 行 230:
  
 トーンデータは、3バイトを一組として、BRGの横8dot分のトーンパターンを定義している。 トーンデータは、3バイトを一組として、BRGの横8dot分のトーンパターンを定義している。
-カラーコード1-7で描かれている部分をこのトーンパターンで置き換え、中間色表現による色表現を行う。+カラーコード1-6で描かれている部分をこのトーンパターンで置き換え、中間色表現による色表現を行う。
  
 要は、当該カラーコードのある点に対して、<code cpp>((b >> (7 - (x % 8)) & 1) | (((r >> (7 - (x % 8)) & 1) << 1) | (((g >> (7 - (x % 8)) & 1) << 2)</code> の色を置いていく(8色モードの場合)ことになる。 要は、当該カラーコードのある点に対して、<code cpp>((b >> (7 - (x % 8)) & 1) | (((r >> (7 - (x % 8)) & 1) << 1) | (((g >> (7 - (x % 8)) & 1) << 2)</code> の色を置いていく(8色モードの場合)ことになる。
行 294: 行 295:
  
 目的語に関しても同様の構造になっている。 目的語に関しても同様の構造になっている。
 +
 +===== 初期データ =====
 +
 +初期データは、以下の3つのパートからなる。
 +
 +  * マップ間のリンク情報(8bytes x 87)
 +  * アイテムの所在情報(12bytes)
 +  * フラグ(15bytes)
 +
 +スタート時に初期状態が読み込まれ、セーブ/ロード時にはこれらの情報が保存され読み込まれる。
 +つまり、ゲームのステータスのすべてはこの情報だけで完結している。
 +===== 音データ =====
 +
 +===== メッセージファイル =====
 +
 +
 +===== セーブデータファイル =====
 +
 +ゲームデータがセーブされるとセーブデータファイルが作成される。
 +セーブデータファイルはシステム間で互換性が保たれている。
 +ファイル形式で保存され、ファイルシステム経由でアクセスできる、M5版、Raspberry Pi Pico版、Windows版、Qt版、SDL2版、AvaloniaUI版では相互にセーブデータをコピーすれば他のプラットフォームでもそのままロードしてプレイすることができる。
 +
 +Web版は、ブラウザが管理するローカルDBに、Androidもシステムの提供するDB内に保存される関係で、他のプラットフォームとセーブデータをやり取りすることはできない。
 +
 +セーブデータは、コアシステムのワークとユーザデータ((マップ間のリンクデータおよびアイテム情報、フラグ情報))からなり、バイトデータの集合となっている。
 +データがすべてバイト単位であるため、エンディアンに関わらず、データに互換性がある。
 +
 +==== コアデータ ====
 +
 +コアデータはシステムの状態を保持している8bytesのデータ列である。
 +
 +^オフセット^内容^
 +|+0|現在のマップID|
 +|+1|ビューマップID|
 +|+2|直近の動詞|
 +|+3|直近の目的語|
 +|+4|選択された選択肢|
 +|+5|乱数値|
 +|+6|選択状態|
 +|+7|選択肢のメッセージID|
 +
 +多分、現在のマップIDとビューマップID以外は実は保存する意味はない。
 +
 +==== ユーザデータ ====
 +
 +ユーザデータは、マップ間のリンク、フラグ情報、アイテム情報の三つからなっている。
 +
 +=== マップリンク ===
 +
 +マップ間のリンクは、マップIDごとに、北、南、西、東、上、下、入、出の8bytesからなり、87部屋分のデータ配列となっている。
 +それぞれ、その部屋の各方向にはどの部屋がつながっているのかを部屋IDで表している。
 +
 +リンクはユーザの行動によって変化するので、断面データを見ても、ゲーム全体の正解ルートはわからないし、この先にどう変化するのかもわからないので、ゲーム攻略には多分使えない。
 +
 +=== フラグ ===
 +
 +フラグは、特定の動作が行われたかどうかや、消耗するアイテムの場合消耗度合いなどが記録されたデータで15bytesのデータである。
 +
 +=== アイテム ===
 +
 +アイテムは12種類存在している。
 +それぞれのアイテムがどこにあるのかの所在が記されている。
 +消費されて消えてなくなったのかどうかもここに記されている。
 +
 +データを改ざんして、すべてのアイテムを最初から所有している状態から始めることもできるだろうが、だとしても、それだけで攻略できるほどこのゲームはぬるくはない。
 +
 +仮にすべてのアイテムを保有した状態から開始したとしても、そもそも学校に入れないし、コアデータを改ざんして、学校内のどこかの部屋にいることにしたとして、それでもほとんどの行動はできない。
 +
 +アイテムを集めなくていいので行かなければならない場所は減るが、それでも必要なフラグを立てるための行動が求められるので、ほとんど難易度は下がらないだろう。
 +
 +
 +
 +
 +
  
  

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information