全ての解析を完了し、ザ・キャッスル、キャッスルエクセレント全面の表示もOK。
ランレングスで2個以上のものが並ぶ場合は、オブジェクト番号に 80h を足して、その次にその個数を付けるのですが、圧縮効率を高めるために、数の多い壁、空白、水については、2個から8個の場合、1バイトで表せるようにしていると。ここを正しく処理すれば、キチンと表示できます。
これで、すてーじめーかー(自作の面データを製品版の圧縮データに変換して書き込む)を作成できるように。
やることは、こんな感じでしょうか。
★必ず1階10部屋単位で変換 でないとデータを作れない
1部屋ごとに打ったバイナリデータを1階10部屋くっつけて1つのデータに
(バッチファイルを作ると便利 copy /b stage00.dat+stage01.dat+… 階7.dat)
これを変換して書き込む
★オブジェクトの番号を調べる⇒同じものが幾つ連続している?
1個ならそのままの番号になる
2個以上⇒00~05、16、53以外なら
オブジェクト番号+80h、その次に個数を指定
00~05、16、53なら専用処理
9個以上⇒オブジェクト番号+80h、その次に個数を指定
2~8個⇒オブジェクトにより番号を決定
★最後まで部屋を描いたら16ドットキャラを配置
⇒トータルのバイト数からデータの終了+1番地をインデックスに付加する
⇒これを10部屋分処理して変換したものを製品データに書き込む
のんびりやりますわ。

0 件のコメント:
コメントを投稿