とでもいわんばかりに置いてある CD。 そ、そうか、これはきっと N 君の仕業に違いない。 私が YU-NO 買えなかったことを知っていてかつ 「解析したそうだから置いておいた」なんてことをやりそうなのか彼くらいなものだ。 そんなときにちょうど N 君が現れたので聞いてみた。
「これ君のでしょ?」
「いや違うよ。」
へ?ということはこれは一体誰の CD なのだ? この時点で私が YU-NO を買えなかったことを知っている人物は 今私のまわりに全員揃っている。しかも、その誰もが自分のではないという。 ま、まさか。 この CD はリフレクターを使って時間と空間を飛び越え、 わざわざ私のもとまでやってきたというのか!?
*.ARC
というアーカイブファイルがあると思っていたのだが、
実際にそこにあったのは
*.ABL
という初めて見る拡張子を持つファイルであった。
ファイルの先頭を見てみると、ABLINK
という文字が。
なるほど、だから拡張子が ABL
なのか。
この時点で少し不安になった。
もしかすると画像形式も変わったかもしれない。
案の上、SS版 YU-NO に使われている画像形式は ELFPAK でも 95GP8 でもなかった。
ABG
という形式のようだ。
通常、画像ファイルの先頭にはパレット情報があるので少なくともパレット情報
くらいはわかるものだが、なぜかパレット情報がないようにみえた。
じーっと眺めているとなんとなく周期的に特定の符号が見えてくるので、
もしかすると今回はランレングス符号化なのかもしれないな。
と思いながらもう少しじーっと眺めていると、よくよくみると ELFPAK と
同じエンコーディングされているような気がした。
そう思って注意深くみてみると、実はパレット情報もちゃんと存在しているようだ。
なんだ、ELFPAK と同じじゃないか。
と安心してとりあえずファイルを展開するプログラムを作成してみた。
嬉しいことに ABG
には ELFPAK
と違って展開後の
ファイルサイズも記録されているので確認が容易だ。
作ったばかりのプログラムにかけてファイルを展開してみると
ファイル中に記録されている展開後のファイルサイズと実際に展開された
ファイルのサイズが異なっていることに気がつく。
うーん、なんでだろう、と思いつつも展開したファイルの中見を眺めてみると
どうも画像データのような気がしない。おかしい。
そもそも展開後のサイズが異なっているのだからおかしいのも当然かもしれない。
もしかすると、ELFPAK と似ているけど展開に使用するパラメータが実は
異なっているのかもしれない。
そう思って、パラメータを変えながら何回もファイルを展開してみるが
なかなか同じサイズにならない。
メッセージファイルを展開してみて、なんとなく正しい結果になるようパラメータを
調整していくと、どうも最初のパラメータが一番正しいようだ。
2時間位パラメータをいじったあげくついに展開後のファイルサイズが一致した。
実は単に ELFPAK の展開ライブラリの使い方を間違っていただけだった。
95版「同級生2」のために解析したというのに、 その 95版「同級生2」といえば、実は SS版「下級生」とは画像形式が 異なっていたというすごいオチが待っていました。 しかし、基本的に下級生と同様のエンコーディング形式だったので、 これも何とか一日でローダを作成することができました。
次にでたのは 95版「河原崎家の一族」でしたが、これはゲームを買っていないので 画像形式は不明です。
その次は今回の SS版 YU-NO となるわけですが、困ったことにまたもや画像形式が 異なっているということになりました。 これも何とかして解析しなくては次回作「臭作」の画像が見れないと思い、 なんとかして今回も奇跡的に画像ファイルを見ただけで (しかも、ゲームしていないからどんな絵かもわからない) ローダを一日で作成できたのでよかったです。 しかも、プログラムを逆アセンブルして解析したわけではないので SS版「下級生」、95版「同級生2」、SS版「YU-NO」に関しては リバースエンジニアリングに引っかからない。
で、問題は「臭作」。
これだけ画像形式をかえてきているのでもしかすると次回も画像形式が変わる可能性が
あります。
しかし、次回もデータを見ただけで一日で解析できるとは限らない。
私としては非常に不安です。
でも、そろそろ画像形式も落ち着いてくるころではないかと思います。
というのも、いままで elf さんとこの画像形式が頻繁に変わってきたのは
実は画像の圧縮率が非常に悪かったからだと思えるからです。
実際にどのくらい圧縮率が悪いかというと、
AliceSoft さんとこの PMS
と
F & C さんとこの IPF
と比べてみると一目瞭然です。
以下に最大圧縮率を示します。
ソフトハウス | 画像形式 | 最大圧縮率 |
---|---|---|
elf | GP8 | 1/8 |
AliceSoft | PMS | 1/130 |
F & C | IPF | 1/340 |
上表を見るとわかるように GP8
は他の 2つの画像形式に比べ
圧倒的に最大圧縮率が悪いです。
理由は簡単で、PMS
と IPF
は画像に特化された
圧縮形式なのに対し、GP8
は汎用な圧縮形式だからです。
elf さんのゲームに使われている画像以外のデータ(例えば、シナリオデータなど)
も実は GP8
と同じ方法で圧縮されています。
そのため、最大圧縮率は確かに悪いのですが、複雑な絵に関していえば
GP8
の方が圧縮率が高くなることもあります。
さて、では今回の ABG
の圧縮率はどうでしょう。
ABG
でもやはり GP8
と同じ圧縮方法を採用しています。
(この圧縮の形式を ABZ
、
無圧縮形式は ABS
というようです)
しかし、実際、ABG
では汎用の圧縮方法である ABZ
をかける前に画像に特化した圧縮方法で画像を圧縮します。
したがって、ABG
の最大圧縮率は GP8
に比べ
はるかに向上しています。
ソフトハウス | 画像形式 | 最大圧縮率 |
---|---|---|
elf | GP8 | 1/8 |
elf | ABG | 1/512 |
AliceSoft | PMS | 1/130 |
F & C | IPF | 1/340 |
上表を見ればわかるように、ABG
の最大圧縮率は
上の中では最高になっています。
しかも、最終的には汎用の圧縮方式である ABZ
で圧縮されている
ため、複雑な絵でもそこそこの圧縮率を実現できます。
というわけで、ABG
の圧縮率はかなりのものなので、
今後画像形式を変えてくることはそうないのではないかと思います。
というより、変えないで欲しい。