======================================= UPX Utility for HSP Let's HSPUPX! Ver. 1.3 ======================================= ■ はじめに ===========  UPX(Ultimate Packer for eXecutables)は、実行ファイルなどを実行可能な まま圧縮し、ファイルサイズを小さくすることができるソフトです。ところが、 HSPで作成した実行ファイルに対してUPXを使用すると、無効なファイルとして 一切起動できなくなってしまいます。これはファイル内部にサイズをチェック する機能が付いているためです。  そんなものかと諦めていたある日、HSPの公式サイトの掲示板で、ランタイム ファイルに対して圧縮することができる、との書き込みを偶然発見。この驚愕? の事実を知り、色々と調べてみたところ、K-K氏がソースコードから圧縮を施し て実行ファイルを作成するコードをHSPのメーリングリストに投稿しておられま した。「著作権等は破棄しますので,ご自由に使ってください(^^;」とのことな ので、バージョン0.9までのベースとしてありがたく改造してきました。  そんな感じで更新してきたこのツールもリリースを間近に控えていたHSP2.6 に対応しなければなりません。しかし、新たなファイル仕様が含まれている次 期バージョンに、現状コードの拡張で対応するのは少々めんどくさい。と言う わけで、これまでに培われてきた技術を引き継ぎつつも、ソースコードから圧 縮作成する方式を捨て、実行ファイルを直接圧縮する新方式へ変更したのがこ のツールです。より便利に、より簡単に、生まれ変わりましたとさ。(^^ ■ 機能 =======  このツールはHSPで作成した実行ファイル(スクリーンセーバー)にUPX圧縮を 施し、ファイルサイズを小さくすることができます。対応を確認している Windows版HSPのバージョンは2.4/2.5/2.55/2.6(CL含む)です。なお、実際に圧 縮されるのはランタイム部分だけなので、画像ファイルなどをPACKFILEにたく さん埋め込んでいるようなソフトやコードがとても長いソフトだと、大幅なサ イズ変化は現れません。参考までに圧縮例は次の通りです。 [ファイル] [通常サイズ] [圧縮サイズ] Let's HSPUPX! (v1.0) 96.3 KB 53.8 KB HSP extended runtime manager 92.7 KB 50.2 KB  このツールの各種設定は設定ファイルにすべて保存されます。 レジストリなどは一切弄っていないので、アンインストールは本体関連のファ イルを削除すればOKです。なお、このソフトのソースコードは旧バージョンの みの公開となっています。 ■ 使い方 =========  まず、UPX本体「upx***w.zip」(Win32 console version)を公式サイトより入手 してください。表記はすべて英語の海外サイトです。  >> http://upx.sourceforge.net/  UPXのアーカイブ内には複数のファイルが含まれていますが、必要なのは本体 のだけです。このファイルとこのツールをHSP本体の置いてあるフォ ルダに置いてください。基本的にこの2つのファイルをセットで置けば、別フォ ルダでも構いません。  そして、実行ファイルを直接圧縮するので、HSPスクリプトエディタ等で通常 どおりに実行ファイルを作成しておきます。ソースコード自体は必要ありませ ん。なお、オリジナルのアイコンを使用する場合には、必ず圧縮作業を行う前 に書き換えておいてください。 1.ツールを起動します。 2.[出力ファイル名]には圧縮して出力されるファイル名を入力します。拡張子は不 要です。必ず圧縮しようとする実行ファイルとは別の名前にしてください。 3.[UPXコマンドライン](灰色表示)はUPXのコマンドラインオプションを入力します。 圧縮レベル(「-1」〜「-9」、「--best」)や圧縮方式などを変更できますが、基本 的に空欄のままでOKです。詳細はUPX付属のマニュアルを参照してください。 4.[UPXプロンプトの最小化表示]は圧縮進行状況を表示するUPXプロンプトが最小化 状態(タスクバー上)で実行されます。[ログファイルの出力]は簡単なサイズ変化を 記載したテキスト形式の結果ログを出力します。 5.[UPX圧縮]ボタンを押して、圧縮する実行ファイルを選択します。圧縮作業が 始まり、2回にわたってUPXプロンプトが表示されます。第1作業(圧縮サイズ の確認)と第2作業(実際の圧縮)です。この間は処理が終了するまで絶対に他 の作業をしないでください。 6.終了ダイアログが表示されます。基本的に圧縮されたファイルは圧縮する実 行ファイルと同じフォルダに出力されます。なお、途中でエラーになった場 合は、無効なファイルが出力されている場合があるので、そのファイルは削 除してください。 ■ その他の機能 =============== (1)ショートカットキー  このツールのシュートカットキーとして、F1キー(実行ファイルの読み込みダ イアログ)、ESCキー(ツールの終了)が利用可能です。また、マウスのドラッグ はウィンドウ移動になります。 (2)ドラッグ&ドロップ起動  このツールのアイコン上に実行ファイル(複数ファイル不可)をD&Dした場合、 ツールが起動して、そのまま圧縮作業が開始するようになっています。このツ ールのショートカットをデスクトップに置いておけば、このアイコン上にD&Dす ることが可能です。また、Windwosの「SendTo」フォルダに置いておけば、右クリ ックの送るメニューからの圧縮が可能です。 *注: 圧縮しようとする実行ファイルがスペースありのパスに置かれていると D&Dしても圧縮が始まらない問題あり。(ディスクトップ、「Program Files」) (3)複数アイコン  HSPの実行ファイルはリソースサイズの関係で複数のサイズを含むアイコンで 書き換えると無効なファイルとして起動できなくなってしまう場合があります。 しかし、このツールを使用することで、結果的に動作するようになるようです。 (4)オート機能  設定ファイル内の「AutoOpen」の値を0から1に変更すると、ツー ル起動直後に自動的に実行ファイルの読み込みダイアログが開きます。また、 「AutoEnd」の値を0から1に変更すると、圧縮作業終了後に自動的にツールが終了 します。これらはツール上から調節できません。 (5)圧縮の解除  [UPXコマンドライン]項目に「-d」を指定して実行ファイルを選択すると、圧縮されて いる実行ファイルを元のファイルサイズに戻すことができます。出力されるフ ァイル名は[出力ファイル名]で指定されたもの(拡張子なし)です。ただ、このファ イルは内部のサイズチェック部分が調節されていないので、無効なファイルと して起動できません。 ■ 注意点 =========  tom氏制作の「iconrewr+loadlib HSP拡張ランタイム」(HRTファイル)を使用し た実行ファイルは、圧縮すると起動できなくなります(バージョン1.3以降はこ のツールがエラーを表示)。この実行ファイルに関しては設定ファイル 内の「DPMXFix」の値を0から1に変更することで対処可能です。こ れ以外ではここの値は必ず0にしておいてください。  FORCE氏制作の拡張プラグイン「Exforce for HSP」を利用した実行ファイルは、 画像ボタン命令系の画像が圧縮するとうまく表示されなくなるようです。この 他の実行ファイルにも圧縮できなかったり、起動できなくなったり、何かしら の問題がでてきたりするものがあるかもしれません。 ■ 更新履歴 =========== 2003/09/XX Ver. 1.3 (HSP:コンテスト.2oo3) - 圧縮されている実行ファイルの圧縮を解除する「-d」に一応対応する。 - 結果ログを少々作り替えて、連続での圧縮結果を追加出力するようにする。 - 結果ログのバイト数を3桁コンマ区切りするようにする。 - 「iconrewr+loadlib HSP拡張ランタイム」用の対処を追加する。(INIファイル) - 起動直後に自動で読み込みダイアログが開くようにする。(INIファイル) - 圧縮作業終了後に自動でツールが終了するようにする。(INIファイル) - 複数の実行ファイルをD&Dした場合にエラー落ちしないように改善する。 - その他、細かなバグ修正や調整。 2003/04/06 Ver. 1.2 - UPXが圧縮不可エラーになった場合(一部)のエラー処理を追加する。 - その他、細かな調整。 2003/03/02 Ver. 1.1 - 結果ログのファイルに出力日と元ファイル名の項目を追加する。 - 圧縮する実行ファイルが出力名と同じだった場合のエラー処理を追加する。 - 圧縮済みのファイルを選択すると、無効ファイルと判定するように改善する。 - 無効ファイルの判定処理を強化して、一部ファイルでの強制終了を改善する。 - Windows XPでのウィンドウ表示色の問題を改善する。 - その他、細かな調整。 2003/01/18 Ver. 1.0 (新圧縮方式) - 実行ファイルの直接圧縮方式に変更し、HSP2.4/2.5/2.6の圧縮が可能になる。 - UPXのDOSプロンプト最小化表示と結果ログ出力のオプションを付ける。 - INIファイルに各種設定を保存するようにする。 - CFGファイルの読み込み機能を削除する。 - アイコン上に実行ファイルをD&Dすると圧縮作業を開始するようにする。 - サイズ変化とサイズ差の計算誤差を改善する。(Thanx, pom!) 2003/01/XX Ver. 0.9 (未リリース) - UPXのDOSプロンプトを最小化状態で実行できるようにする。(CFGファイル) - サイズの結果ログを出力できるようにする。(CFGファイル) - 自動的に拡張子を付けて実行ファイルを出力するようにする。 - その他、細かな調整。 2002/12/21 Ver. 0.8 - 設定を保存したCFGファイルを自動的に読み込むようにする。 - それに伴い、CFGファイルの仕様を少々変更する。 - サイズ変化と圧縮率(%)を最後に表示するようにする。(Thanx, pom!) - DPMファイルの参照ボタンが正しく機能していなかったのを修正する。 - ファイル作成情報のクリア領域をちょっと調整しておく。(痕跡用?) - その他、細かな調整。 2002/12/07 Ver. 0.7 - スクリーンセーバーの作成にもサポートする。 - それに伴い、ファイルの種類の選択オプションを付ける。 - 圧縮する部分のコードを調整し、若干高速化?する。 - その他、細かな調整。 2002/11/23 Ver. 0.6 - DPMファイルの参照ボタンを付ける。 - 通常と比べたサイズ差(KB)を最後に表示するようにする。(Thanx, pom!) - かなりテキトーだったアイコンを作り替える。 - その他、細かな調整。 2002/11/12 Ver. 0.5 - HSPランタイムファイルの参照ボタンを付ける。 - 作成するファイル名が空欄だった場合のエラー処理を追加する。 - その他、細かな調整。 2002/10/12 Ver. 0.4 - 設定を保存したCFGファイルの読み込み機能を付ける。 - その他、細かな修正。 2002/10/10 Ver. 0.3 - UPX圧縮中のエラー処理を追加する。 - ダイアログなどの説明表記を調整する。 - ツールにWindows XP用ビジュアルスタイルを(試験的に)追加する。 2002/09/12 Ver. 0.2 - 作成するファイル名のダイアログを付ける。 - 表示スタイルを調整する。 2002/09/08 Ver. 0.1 (ファーストリリース) - HSP2.55専用としてK-K氏のをベースに作成する。 - 表示スタイルを調節する。 - UPXのコマンドラインオプション用ダイアログを付ける。 - マウスドラッグのウィンドウ移動、ESCキーによる終了を付ける。 ■ 謝辞 ======= 旧バージョンのベース hspupx.as by K-K (UPX by Markus Franz Xaver Johannes Oberhumer & Laszlo Molnar) ■ 制作者 ========= Kpan [koppepan(at)hotmail(dot)com] http://www.geocities.co.jp/Playtown-Yoyo/6130/  このツールはフリーソフトです。なお、このツールを使用したことによる何 かしらの重大損害に対し制作者は一切責任を負うことができません。明日に向 かって一心不乱で走り抜けてください。