Hot Soup Processor 改変史
赤色 -> HSP本体の拡張・改善
緑色 -> HSP及びスクリプトエディタのバグフィックス
青色 -> スクリプトエディタの拡張・その他
ver2.6は、以前のバージョン(2.55)に対して次のような拡張・修正を行なっています。
このバージョンは、なるべくver2.xの上位互換で動作するように作られていますが、一部の機能で非互換になる可能性があります。
このアップデートによって、ver2.xで使用していたソーススクリプトが正常な動作しなくなる可能性は以下のものがあります。
-
新規に追加された命令/マクロの名前と、ユーザーがつけた変数の名前が重なるとエラーが発生します。
新規キーワードで名前の衝突が起こりやすいものとしては、loadlib関連命令(ll〜)、
for,next,while,wend,do,untilなどの新規マクロ、getpath,sysinfoなどの新規命令があります。
これらのキーワードと同じ、変数名やラベル名があった場合には、別な名前に置き換えることで正常に動作をさせることができます。
-
変数のメモリ領域保護のチェックが厳しくなったために、以前のスクリプトで問題が発覚しなかったものがエラーとなる場合があります。
文字列バッファのオーバーフローなどが発生する恐れがあるスクリプトは、
ver2.6ではより多くの領域を確保するなどの修正を行なう必要があります。
また、dirlistやメモリノートパッド系(note〜)命令の動作が以前と一部異なるため
バッファオーバーフローが起こりやすくなる可能性があります。
-
ver2.6以前に出力された「start.ax」などのオブジェクトファイルは、ver2.6のものと互換性がありません。
必ずソーススクリプト(asファイル)をコンパイルし直して実行させるようにしてください。
ver2.55 -> ver2.6
- 新しいプリプロセッサ導入に伴い新規プリプロセッサ命令、マクロを追加。
- loadlib.dll相当の機能を標準命令として内蔵させた。
- 編集中のファイルを直接実行ファイルに変換する機能(実行ファイル自動作成)を追加。
- 暗号化ファイルのアルゴリズム及び格納方法を変更。
- サブルーチン、モジュールの呼び出し深さ(ネスト)を32重までに修正。
- 実行ファイル作成時の設定を行なう#pack,#epack,#packoptを追加。
- メモリストリーム機能を設定するmemfile命令を追加。
- 変数の値によって分岐するon〜goto、on〜gosub命令を追加。
- エラー発生時に指定ラベルにジャンプするonerror命令を追加。
- noteadd、dirlist命令にバッファ自動増加機能を付加。noteload、notesave命令を追加。
- hspext.dllのsysinfo命令を標準命令として追加。
- ファイルパス文字列の操作を行なうgetpath命令を追加。
- デバッグ時に_debugマクロ定義を追加するようにした。
- await命令にスレッド待機による時間待ちオプションを追加。
- [TAB]キーによるオブジェクトのフォーカス移動を行なうオプションをobjmode命令に追加。
- ファイル読み込みの際にDPMファイルを明示できる機能を追加。
- run命令にcmdlineパラメーターを渡すオプションを追加。
- 画像コピー時に色加算、色減算を行なうgmode5、6を追加。
- print,mes命令の出力範囲を取得するオプションをginfo命令に追加。
- 拡張プラグインで自由なパラメーター取得が可能な新仕様を追加。
- 文字列変数の代入、memset,memcpy,peek命令使用時に文字列バッファのオーバーフローがエラー表示されるように変更。
- strmid命令でバッファオーバーフローが起きる場合、バッファに収まるサイズのみ取り出すように修正。
- input命令による入力オブジェクトでEnter,Tabキー入力時にベルが鳴るのを抑制。
- instr命令を全角文字にも対応させた。
- 0で除算した際にHSPのエラー(19)が表示されるように修正。
- クリーンアップモジュール実行時にサブルーチンネストがクリアされるように修正。
- screen命令など新しいウインドゥ生成時にginfo 1で取得される操作先が反映されるよう修正。
- フルカラーで初期化されたウインドゥにグレースケールJPEGを読み込み可能に修正。
- mes,print命令の文法エラーチェックを強化。
- chgdisp命令で解像度を変更した際にシステム変数dispx,dispy,paluseが更新されない不具合を修正。
- (*)一部の環境でメディア再生のループ時にフリーズする不具合を修正。
- MEPGファイルをsndload命令で扱えないことがある不具合を修正。
- (*)snd命令で一部のマルチメディア再生ができないことがある不具合を修正。
- 大きいサイズのmag画像を読み込み失敗する不具合を修正。
- gcopy命令による画像コピーの画面Xサイズが4の倍数でない場合にも正常にコピーされるように修正。
- bmpsave命令実行時にエラーで落ちることがある不具合を修正。
- mesbox命令のスタティックテキストで渡した文字列の内容が破壊される不具合を修正。
- 単純変数を1024個以上定義した時に変数領域がオーバーフローする不具合を修正。
- (*)モジュール内で浮動小数などの数値データが認識されないことがある不具合を修正。
- packfileで指定されたテキストファイル読み込み時に、終端が認識されない不具合を修正。
- 大きなサイズのソースコンパイル時にエラーが出ることがある不具合を修正。
- includeによるソース結合時にデバッグ情報の行番号がずれる不具合を修正。
- if命令で「{」〜「}」の階層が深すぎる時に落ちる不具合を修正。
- デバッグウインドウで58文字以上の長さの変数を選択すると強制終了する不具合を修正。
- hspcmp.dllのpack_ini命令でピリオドを含むディレクトリ名を誤認識する不具合を修正。
- 実行ファイル上では初期タイトルバーに「Hot Soup…」の表示を行なわないように修正。
- 拡張プラグインhspda.dll、hspext.dll、hspcmp.dllを更新。