ONScripter 開発日誌

Since: Feb. 6, 2002
Last updated: Dec. 15, 2023

2023年

9月2日

HTML を HTML4 から HTML Living Standard (HTML5) に変更しました。

8月25日

ONScripter::alphaBlend と AnimationInfo::setupImageAlpha のマスク画像へのアクセスに関するバグを修正しました。

ONScripter on Windows の関連ライブラリのソースを更新し、PlatformToolset を v142 (Visual Studio 2019) に変更しました。

8月24日

みかんはっさくさんからのバグ報告に基づき、effect 命令の 15, 18 番でマスク画像を指定したときに、画像の右半分をアルファチャンネルとして読み込んでしまうバグを修正しました。このバグは以前からありましたが、今回アプリが落ちることによって表面化しました。

ソースファイルや SDK を https://github.com/ogapee で公開することにしました。また、ソースファイルを .clang-format を使用して整形することにしました。

Android 版 SDK を更新し、compileSdk と targetSdk を 34 にしました。

8月18日

HTML の文字コードを EUC-JP から UTF-8 に変更しました。

4月7日

iOS 版 SDK を更新し、Apple シリコンを搭載した Mac の Ventura v13 でビルドできるようにしました。libmad-0.15.1b 付属の config.sub と config.guess が古く Apple シリコンに対応していなかったため、最新の config.subconfig.guess に差し替えました。USE_SELECTOR を使用したゲームの選択は、XCode からアプリを実行してインストールした場合でないと活用できないようです。TestFlight によって内部テストでは、ゲームデータをインターネットからダウンロードすることはできました。

3月23日

Android 版 SDK を更新し、compileSdk と targetSdk を 33 にしました。Android 13 (API 33)以降では、ActivityCompat.requestPermissions で WRITE_EXTERNAL_STORAGE を要求すると常に false を返すようになったようなので、Android 13 以降ではこの処理を飛ばすようにしました。NDK は 24.0.8215888、Android Gradle Plugin は 7.2.2、Gradle は 7.4 を使用しています。

Android 版アプリで起動時にゲームを選択して実行する場合、ファイルを開くときにディレクトリの有無をキャッシュし、ディレクトリが存在しない場合には ONScripter.java の findFile 関数を呼ばないことによってファイルの読み込みを高速化しました。findFile で使用している ContentResolver.query は、ファイル名のフィルタを指定する第3,4引数が無視されるようです。そのため、これまではアーカイブ内にあるファイルを読み込む際に、アーカイブ外にはファイルが存在しないことを確認するために、ディレクトリ内の全ファイルを一つずつ照合していたため、時間がかかっていました。

1月3日

しばらく前から、Android 版アプリで一部のファイルの読み込みに失敗する問題がありましたが、ONScripter.java の findFile 関数で大文字と小文字を区別してファイル名を照合しており、スクリプト内のファイル名とファイルシステムのファイル名に大文字・小文字の違いがある場合にファイルが存在しないと判定されていたことが原因でした。Android 版 SDK を更新し、String.equalsIgnoreCase を使って判定するようにして解決しました。リリース前にいくつかのゲームで動作確認をするのですが、それらのゲームではこの問題が発生しなかったため気づきませんでした。