#99 Article 903 Posted at 1995/05/12 11:16:39 by MEX (MAP5294) [ML1]

Subject: ロードできない

>      はいっ。この2枚、
>>SAMPLE1  ML1      1229 95-05-02   13:43
>>MEX10053 ML1      1413 95-05-11   22:40
>     ml1b でロードしようとすると、
>     sample1.ml1 は "Abnormal program termination" てって
>    絵を半分くらいロードしたところで終わっちゃうし、
>     mex10053.ml1 は、半分くらいロードしたところでハングって
>    リセットがかかってしまいます。
> ml1a、ml1w、ml1g、luna、ml1c では正常にロードできました。

そそ(笑)これはIllustshopで保存したものです。
Illustshopで吐いたビット列を ml1b に入れるとよく起きます。
実は昔から気にはなっていました(ォ
拙作のセーバーモジュールが吐いたデータはそのような結果になること
があります。(ちなみに同じ物をめぢVでセーブすると ml1b は問題ない)

しかしながら、ml1b 以外の手持ちのローダーでまったく問題ないものですから
たぶん ml1b に原因があるのかと勝手に思って黙ってました(笑)

解っていることを報告します。
---------------------------------------------------------------------------
Illustshopのセーバーモジュールのエンコード方法はほぼNOZOMU氏のC言語の
ひな型をアセになおしただけのものですが、オリジナルで縦連鎖に2つの枝刈
を入れて無駄な縦連鎖を抑止しています。
2つの抑止法とは、縦連鎖を横方向伸張で代用できると判断した時は、先行の
連鎖を戻って取り消すことと、斜め方向の縦連鎖に於いて斜度に追いつかない
状態の時はあらかじめ連鎖を取りやめることです。以下に説明します。

前者の例 ---------------------------------------

       |<-------->| 全画面として
	1111112222
  (3)-->1111122231<--(1)
  	1122222222
	^
	|
       (2)

上図ではじめ色1の縦連鎖がありますが、(2)まで下がりません。
それは(2)の変化点からの横方向伸張で代用できるからです。
ですからこの場合(3)までしか下がりません。
「ローダーの仮想VRAM構造がひな型とおりである」ということを前提にして
います。(つまり(2)から(1)へつながっていると考えます)
そのために展開プログラムの構造によってはうまくないのかと(謎)
でもこれって規格内だと受けとめているのですが(^^!

後者の例 ---------------------------------------
	     (1)
	      |
	      v
	1111112222
        1112222222
	   ^^
	   ||
	  (32)

上図の色1から2への変化に対して、(1)の位置から下に縦連鎖を
探索し、2つ左の下(2)の位置に連鎖するはずなのですがこの場合
連鎖はしなくなります。横方向伸張を(3)の位置から利用できるからです。
これは問題起こさないと思います。

---------------------------------------------------------------------------
以上、説明終わり。

絵の乱れ具合(笑)からいって、たぶんml1bでの不具合はは前者に起因
するかと予想されますが・・・どうでしょ?(笑)

MAP5294 MEX