Mini’s Compression Tool

comptool1

こんなツールを作ってみました、ベータ版ですが宜しければお試しください。

【Compression Tool とは】

palmwareのサイズを小さくする為のツールです。

原理はprcファイルに含まれるビットマップリソース(Tbmp)に対し、連長符号化圧縮(RLE)を試み、リソースサイズが小さく出来るか検査します。

検査の合否基準は、prcファイルサイズが1%以上小さく出来る場合は合格とし、元のファイル名 + “_comp.prc” という名前で圧縮されたprcファイルを生成します。 また、不合格の場合は何もしません。

【導入方法】

Mini’s Compression Tool は以下よりダウンロードください。
Mini’s Compression Tool のダウンロード(1.6MB)
適当なフォルダにzipを解凍し、setup.exe を実行してください。

【使用方法】

CompTool.exe を起動して、圧縮したいprcファイルを、いつものようにドラッグ&ドロップしてください。

comptool2

上記のように表示されたら合格で、圧縮されたprcファイルが生成されます。

圧縮率はそのprcに含まれる非圧縮ビットマップの割合により変化します、大抵のメーカ製アプリでは、既に圧縮された状態ですので、本ツールによる大きな圧縮率は望めません。

comptool3

圧縮すべきビットマップリソースが無い場合や、圧縮しても全体の1%もサイズが小さくならない場合は、上記のような画面になります。

comptool4

一般的に言って、ゲームアプリではビットマップ含有率が大きい場合が多いです。
上図は、なんでpalmやねんのMA-CYさん作『Racing双六』の場合です、なんと元のサイズの64.4%になっちゃいました。

【最後に】

本ツールはベータ版ですので、途中でエラーを吐いて停止する場合があります、また圧縮後のprcファイルを実機で動作させた場合、何らかの不具合が発生するかも知れませんのでご注意ください。(基本的にビットマップリソースしか触ってませんので大丈夫と思いますが…)

このツールのアイディアは、かなり以前から持っていたのですが、今回ちょっと作ってみました。

【追記】

2009/03/16 バグ見つけたので夜中にコッソリ更新 V0.91

コメント / トラックバック 4 件

  1. MA-CY より:

    評価していただいてありがとうございます^^;
    これはNSBasicでゲームを作る人には必須化もしれませんね。
    早速私も時間を見つけて、手持ちのアプリをコンバートしたいと思います。

  2. 所長 より:

    否定的な話になりますが、拙作のPalmwareに関しての話と言う事でご容赦を。

    ビットマップの圧縮オプションを付けると、リアルタイムゲームではリソースの描画時に都度展開オーバーヘッドがかかるようで、速度重視!なゲームではわりと致命傷になります。

    例えば、ネオ首領蝿(弾幕ゲーム)では、起動時に数十枚のビットマップを一斉に読み出して開きっ放しにし、それを最大で384個描画する内部処理になっているのですが、少しでもprcサイズを減らそうと圧縮をかけてみたら実行速度がガタ落ちになってしまったので、あえて速度に影響しないタイトル画面の表示物以外は無圧縮のビットマップにしてリンクしてあります。

    ですので、実行速度(描画速度)重視のアプリでは、圧縮をかけると速度に影響が出るかも知れませんと言うか、たぶんうちのゲームは全滅しますです。

  3. ミニー より:

    MA-CYさん

    実験サンプルにしてスミマセン m( _ _ )m
    確かにNSBasicのゲーム作りには便利かも知れませんね
    ちなみにRLE圧縮はV2とV3のBitmapリソースに対応しています

  4. ミニー より:

    所長さん

    なるほど「省サイズ」と「速度」のトレードオフは有るでしょうね…
    という訳で「ネオ首領蝿」をダウソさせて頂いて、自分でも体験してみました。
    (セントロ君で試しました)

    圧縮前と圧縮後で、普段の場面では、速度にそんな大きな変化は感じませんでしたが、
    最初に出て来る「UFO風」のものや「ひとで男」から発散する
    「夏のPL教団の花火みたいなもの」←スミマセン関西人なもので…
    の動きが若干遅くなってるかなぁと感じました。

    しかし、Palmで良くこれだけ高速なゲームをお作りになられましたね、
    所長さんのスキルは凄いと思いました。