ChangeLog
Version History & Software Backward Compatibility
The next deadline is set for 2026-02-15.
- Clickteam Forum Thread : ASTER :: Released
ASTER rev.1.0.7
(2025-12-15) ::
The specification has been changed:
Alt + F10is now assigned as the global hotkey to restore a window only when minimized.
- The default setting is Off; turn it On to use.
An immediate execution condition called “Detect when Restored from Minimized” has been implemented to detect the exact moment when a window is restored from a minimized state.
| update | description |
|---|---|
| Add | ✔ Action :: JSON :: Open file at regex-based search match in VS Code |
| Add | ✔ Action :: JSON Pointer :: Targeted :: is_array :: is_obj :: Batch Assignment :: Oi Alt V. S. & F. |
| Add | ✔ Action :: JSON Pointer :: Targeted :: is_array :: Regex-based replacement for JSON Array |
| Add | ✔ Action :: Align :: Load w/ mvt.RefVec ( B64E, BitPack ) |
| Add | ✔ Action :: Object Control :: Load mvt.RefVec from BitPack-compressed, Base64 string |
| Add | ✔ Expression :: Object Control :: Produce a Base64 string of the BitPack-compressed mvt.RefVec |
| Add | ✔ Action :: hWnd :: Global Hotkey (Restore from Minimized) - On / Off |
| Add | ✔ Condition :: hWnd :: Evaluates to True: restored from minimized |
| Add | New example 22_JSON_REGEX-Based_replacement_for_JSON_Array |
| Add | New example 39_Motion_Orbital_TargetXY_GrowRad |
| Add | New example 2_HWND_detect_restored_wnd_min |
| Add | New example 23_JSON_Batch_Assign_Oi_Alt_V_S_F |
| Add | New example 07_Align_LOAD_mvt.RefVec_B64E_BitPack |
| Add | New example 08_Align_LOAD_mvt.RefVec_B64E_BitPack |
| Add | New example 63_oCtrl_Mvtwd_Rebuild_RefVec_B64E_BitPack |
| Revise | The MFA examples : ‘Rev.16’, Revise MFA docs: fix inaccuracies, clarify descriptions. |
| Bug fixed | Action :: JSON :: Save: B64E MsgPack Zlib : Fixed path handling for non-ASCII characters |
| Bug fixed | Action :: JSON :: Save: B64E MsgPack LZ4 : Fixed path handling for non-ASCII characters |
| HTML | Condition :: Motion :: EvD: mvU.: mvTwrd Begin : Completely revised the inaccurate content. |
| HTML | Condition :: Motion :: EvD: mvU.: mvTwrd End : Completely revised the inaccurate content. |
| HTML | Expression :: Motion :: EvD: GetNum MvU. AnimDir : Completely revised the inaccurate content. |
| HTML | EvD: GetNum MvU. AnimDir » Identified incorrect identifier: ExNumuid » Correct one is: ExNumMvDir |
| évaluer | evaluetes (non‑existent form / typo) → evaluate = evalu- + -ate: -ate » Latin‑based verb-forming suffix |
ASTER rev.1.0.6
Usage Notice
(2025-10-15) Since rev.1.0.6, the software system requirements now include AVX2-compatible CPUs. Older CPUs that do not support AVX2 are supported only up to rev.1.0.5. If your hardware meets the requirements for Windows OS 11, your CPU is also AVX2-compatible.
Some internal optimizations have been applied in rev.1.0.6 to features implemented up to rev.1.0.5. Specifically, SIMD (small-scale parallel processing) is used, so if the CPU is not compatible, the program will crash. Detection of unsupported CPUs is not implemented at this time.
Reference URL: Intel® Intrinsics Guide: AVX2
AVX2 is not strictly required for practical use. If requested in the future, dynamic dispatch will be used to switch to standard scalar functions for non-compatible CPUs.
-
String search (replace) processing uses SIMD instructions and
std::boyer_moore_horspool (BMH), or a hybrid approach. -
Base64 Encode|Decode processing utilizes SIMD instructions. Benchmarks confirm a performance improvement of approximately 1.5 to 2 times compared to traditional scalar processing.
SIMD-based Base64 logic incorporates insights from Muła & Lemire (arXiv:1704.00605) and aklomp/base64 (GitHub). Code and structure from Turbo-Base64 were not directly referenced or reused, due to its GPL-3.0 license.
- Improved behavior of JSON Dump and FlattenDump. Fixed improper value copying (
const auto j = *lp_json;) by switching to reference (const auto& j = *lp_json;).
Avis d’utilisation
(2025-10-15) Depuis la version rev.1.0.6, les exigences système du logiciel incluent désormais les processeurs compatibles AVX2. Les anciens processeurs ne prenant pas en charge AVX2 sont pris en charge uniquement jusqu’à la version rev.1.0.5. Si votre matériel répond aux exigences de Windows OS 11, votre processeur est également compatible AVX2.
Des optimisations internes ont été appliquées dans la version rev.1.0.6 aux fonctionnalités déjà implémentées jusqu’à rev.1.0.5. En particulier, des instructions SIMD (traitement parallèle à petite échelle) sont utilisées, donc si le processeur n’est pas compatible, le programme plantera. La détection des processeurs non compatibles n’est pas encore implémentée.
URL de référence : Intel® Intrinsics Guide: AVX2
AVX2 n’est pas strictement requis pour une utilisation pratique. Si une demande est formulée à l’avenir, un dispatch dynamique sera utilisé pour basculer vers des fonctions scalaires standard sur les processeurs non compatibles.
-
Le traitement de recherche (remplacement) de chaînes utilise les instructions SIMD et
std::boyer_moore_horspool (BMH), ou une approche hybride. -
Le traitement Base64 Encode|Decode utilise les instructions SIMD. Les benchmarks confirment une amélioration des performances d’environ 1,5 à 2 fois par rapport au traitement scalaire traditionnel.
La logique Base64 basée sur SIMD s’inspire de Muła & Lemire (arXiv:1704.00605) et de aklomp/base64 (GitHub). Le code et la structure de Turbo-Base64 n’ont pas été directement référencés ni réutilisés, en raison de sa licence GPL-3.0.
- Amélioration du comportement de JSON Dump et FlattenDump. La copie de valeur incorrecte (
const auto j = *lp_json;) a été remplacée par une référence (const auto& j = *lp_json;).
Usage Notice
(2025-10-15) rev.1.0.6 以降、ソフトウェアのシステム要件に AVX2 対応 CPU が追加されました。AVX2 に対応しない古い CPU の利用について、rev.1.0.5 までの対応とさせていただきます。ハードウェアが Windows OS 11 の動作要件を満たす場合、CPU も AVX2 には対応しています。
rev.1.0.5 までに実装された機能について rev.1.0.6 では一部内部処理の最適化が施されています。具体的には SIMD (小規模な並列処理) を利用しているため、CPU が対応しない場合はプログラムがクラッシュします。 非対応 CPU の検出は現時点で実装されていません。
参考 URL : Intel® Intrinsics Guide: AVX2
実用上 AVX2 は必須でも無いので、今後もしも要望があったら非対応 CPU 向けには動的ディスパッチを使って、スカラ処理を利用した通常の関数へ切り替えを行うようにします。
-
文字列の検索 (置換) 処理に SIMD 命令 と
std::boyer_moore_horspool (BMH)を利用、もしくはハイブリッド化した処理。 -
Base64 Encode|Decode 処理に SIMD 命令を活用。従来のスカラ処理よりも実測で 1.5 ~ 2 倍程度、処理速度の向上をベンチマークにて確認済み。
Base64 処理を SIMD 化する際に Faster Base64 Encoding and Decoding Using AVX2 Instructions(Muła & Lemire 論文)arXiv:1704.00605 及び aklomp/base64 (GitHub) を参考にしています。
Turbo-Base64 はライセンスが GPL-3.0 なので、Turbo-Base64 のコードや構造を直接参照・流用していません。
- JSON Dump および FlattenDump の動作を改善。本来参照すべき箇所で値コピー(
const auto j = *lp_json;)していたため、参照(const auto& j = *lp_json;)に修正。
ASTER Rev.1.0.5
(2025-06-15) :: MessagePack-related features have been added. MessagePack is a format designed to handle JSON, which is typically stored as text-based data, in a binary form, allowing for more efficient processing and storage.
MessagePack is an open-source data format designed to handle text-based JSON in binary form. As for JSON’s binary format, CBOR was standardized by IETF RFC 8949 in 2020, while an official ISO standard has not yet been established.
Functions include converting JSON data being edited in ASTER into MessagePack, compressing the binary, encoding the compressed data in Base64 for storage, decoding Base64, and loading MessagePack. Users can choose between Zlib and LZ4 for compression. A Python script for verifying stored data is also included.
MessagePack をファイルから直接ロードする機能は nlohmann/json ではなく、msgpack-c を利用する予定。ただし ASTER は現時点で MessagePack のみを扱っていますが、本命として CBOR 対応と libcbor の導入が検討されています。libcbor へ対応したら msgpack-c には対応しません。最終的にどちらかに絞ります。
| update | description |
|---|---|
| Add | A new example: ‘_62_oCtrl_Mvtwd_ReCyclic_tracking’ |
| Add | A new example: ‘_61_oCtrl_Mvtwd_ReCyclic_grid’ |
| Add | A new example: ‘_60_oCtrl_Mvtwd_ReCyclic_triangle’ |
| Revise | .mfx example: ‘41_oCtrl_MvUtil_pickout_Tgt_&_MvSwap’ |
| New Fnc | Action :: MotionControl :: Create Reference Vector: Current coords of obj instances |
| New Fnc | Action :: MotionControl :: Create New Motion Group: MoveTowards Re.:Cyclic |
| New Fnc | Expression :: MotionControl :: EvD.: Get moving dirs converted to CF25 Animation Dir |
| New Fnc | Condition :: MotionControl :: EvD.: Begin Moving Towards |
| New Fnc | Condition :: MotionControl :: EvD.: End Moving Towards |
| Specification Change | The parameter specifications of MoveTowards have been partially modified. Parameters from rev.1.0.4 and earlier will not work in rev.1.0.5. |
| New | Base64-Encoding (B64E) & Decoding (B64D) for MessagePack (JSON) |
| New | Zlib & LZ4, Compression & decompression for MessagePack (JSON) |
| New Fnc | Action :: JSON :: Save to a file: B64E: Zlib compressed MessagePack |
| New Fnc | Action :: JSON :: Save to a file: B64E: LZ4 compressed MessagePack |
| New Fnc | Action :: JSON :: Rebuild B64D to JSON: Zlib compressed MessagePack |
| New Fnc | Action :: JSON :: Rebuild B64D to JSON: LZ4 compressed MessagePack |
| New Fnc | Expression :: JSON :: Generate B64E: Zlib compressed MessagePack |
| New Fnc | Expression :: JSON :: Generate B64E: LZ4 compressed MessagePack |
| Add | A new example: ‘58_JSON_Rebuild_B64D_msgPack_Zlib’ |
| Add | A new example: ‘59_JSON_Rebuild_B64D_msgPack_LZ4’ |
| Add | python3 script: For stored data verification (Zlib Compressed, B64E) |
| Add | python3 script: For stored data verification (LZ4 Compressed, B64E) |
| Fatal Incident | Spell miss: Inplimentation » Implementation |
ASTER Rev.1.0.4
(2025-05-15) :: Usage Notice
Includes specification changes for the JSON Data Sharing Option and Batch Selection. Some related commands have been deprecated, and older operation samples are not compatible with ASTER Rev.1.0.4.
(2025-05-15) :: Avis d’utilisation
Comprend des modifications de spécification pour l’option de partage de données JSON et la sélection par lot. Certaines commandes associées ont été supprimées, et les anciens exemples de fonctionnement ne sont pas compatibles avec ASTER Rev.1.0.4.
(2025-05-15) :: Usage Notice
JSON Data Sharing Option と Batch Selection の仕様変更を含みます。関連する命令が一部廃止され、古い動作サンプルは ASTER Rev.1.0.4 と動作互換性がありません。
| update | description |
|---|---|
| Specification Change | Condition: True while the JSON Data Option is disabled |
| Specification Change | MvtUtil: Batch toggle mvt.Pursuer selection state |
| Add | A new example: 57_oCtrl_MvtUtil_Batch_toggle_mvt_Pursuer |
| update | Due to specification changes in the JSON Data Sharing Option, the following features have been deprecated. |
| obsolete | Clear : Sharing JSON Data |
| obsolete | Clear : JSON Data |
| Fatal Incident | Spell miss: Algorythm » Algorithm |
ASTER Rev.1.0.3
ASTER Rev.1.0.2
ASTER Rev.1.0.1
ASTER Rev.1.0.0
ASTER Public Preview Version 0.9.23
