ChangeLog



The next deadline is set for 2025-12-15.

Clickteam Forum Thread : ASTER :: Released

---
config:
    textPosition: 0.7
    themeVariables:
        "pieOuterStrokeWidth": "1px"
        pie1: "#921A40"
        pie2: "#134B70"
        pie3: "#3C3D37"
        pie4: "#FBF5DD"
---
pie title (2025-10-17): Working Progress... 93 %
"Translation Completed"  : 159
"unfinished" :  5
"editing" :     7
working progress details, read more…
  • “Translation Completed” : 159
  • “unfinished” : 5
  • editing” : 7: (json::ACEs::.. 1,0,0; | Motion::ACEs::..2+1,0+2,0+1;)
Unfinished
Category pages
PROP 0
REGEX 0
JSON 1+0+0=1
ALIGN 0
MOTION 0+0+0=0
HWND 4
FS 0

Version History & Software Backward Compatibility

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.

For SIMD-based Base64 processing, we referenced Faster Base64 Encoding and Decoding Using AVX2 Instructions (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.

Le traitement Base64 basé sur SIMD s’est inspiré de Faster Base64 Encoding and Decoding Using AVX2 Instructions (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 OptionBatch 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
Read more..

(2025-04-15) ::

update description
New Fnc Action::JSON::using JSON Pointer, Overwrite w/ a numeric ( int ) value.
Revise The event example: 05_JSON_Exp_GetAs_Nums_TgtArIdx was improved.
Add A new example: 18_JSON_Overwrite_a_value_with_num_int
Add A new example: 55_oCtrl_Circumferentially_GrowRad_Penta
Fatal Incident Spell miss: Exsample » Example

ASTER Rev.1.0.2
Read more..

(2025-02-15) :: Object Control’s Restrict Registration has been removed..

And more, Partial specification changes and minor corrections.

update description
fixed The Parameter Caption for the Sinewave in the Expression Editor incorrectly AG instead of Amp. Other corrections have been made.
changed GrowRad for Sinewave now supports negative values for Min Amplitude.
note GrowRad for Orbital remains unsupported for negative values of Min Amplitude, & maybe about this, there is no need for further modifications.
changed Object Control’s Restrict Registration has been removed, allowing direct addition of new motion from Event Detect at the moment Motion is rejected. Allows for seamless motion transitions.
samples Added a Seamless Motion Transitions Example. (53_oCtrl_EvD_seamless_motion_transitions)
changed Change in MoveTowards Specification: Do not assign Sequential Numbering to instance variable[0] when applying motion. (Considering specification changes for Null motion as well.)
ASTER Rev.1.0.1
Read more..

( 2025-01-15 ) :: Documentation Pages Updated (rev.1.0.0 Based) and Additional Translations to English & French Version Added.

  • The entire site now supports HTTPS, and HTTP links are redirected to HTTPS.
  • Content boost and caching are applied for faster access from www.prester.org.
  • The documentation page has been newly created to comply with ASTER rev.1.0.0, although it is still a work in progress.
  • English and French versions of the documentation page have been added, but not yet finished.
  • Comments in the examples (.mfa) have been translated to English, & some links to the documentation have been corrected despite being incomplete.
The interface labels of the extensions have been improved.

Minion Minion

Version Description
rev.1.0.1 Improving the Menu Interface of Extension, Unifying Expressions and Fixed
ASTER Rev.1.0.0
Read more..

( 2024-12-15 ) :: MoveTowards::RefVec implementation

Version Description
rev.0.9.40 HTML :: Update Aster Docs (rev.0.9.39 Based)
rev.0.9.39 Action :: ObjectControl :: MoveTowards :: RefVec
Additional Shaders :: FlipX, RectangleMultiply;
Bugfixed MvtUtil :: Configure Params :: bug :: Could Not Set More Than Two Digits.
rev.0.9.38 Action :: JSON :: Create 1D-Arr with Reference Vector
rev.0.9.37 Action :: MvtUtil :: Create a Reference Vector :: Hexagonal L2RT2B
rev.0.9.36 Expression :: JSON :: Get Dump of Flatten (using JSON Pointer)
Fixed Improved memory usage (1 ~ 10 MB) :: Memory usage increases by 20 MB with repeated MoveTowards registration & deregistration.
rev.0.9.34 Specification Changed :: Data Storage Order Replaced » Action :: JSON :: Create New 2D-Array (Info about the Object)
Bugfixed The Unique ID was not returned when the Motion Group’s registration was rejected by the Object Controller.
rev.0.9.32 HTML :: Update Aster Docs (rev.0.9.31 Based)
rev.0.9.31 Fixed timing Ev-Detct where Mot-Grp was deleted, Grp-Reg + inst-Reg deletion, changed to post-execution notification.
rev.0.9.30 Action :: MvtUtil :: Batch Selection, ALL as the Pursuer
rev.0.9.29 Action :: ObjectControl :: Set RGB565+A using Targeted JSON Pointer (ByName).
rev.0.9.28 Action :: ObjectControl :: Set Alpha Coefficient (Semi-Transpa) (ByName).
rev.0.9.27 Action :: Align :: Around the Circumference of a Circle.
rev.0.9.26 Action :: ObjectControl :: MoveTowards :: TgtArr.
rev.0.9.25 Action :: MvtUtil :: Clear the Path of Targeted JSON Array.
ASTER Public Preview Version 0.9.23
Read more..

( 2024-11-10 ) :: Added the following functions, MoveTowards :: Swap implementation

Version Description
rev.0.9.24 Action :: MvtUtil :: Specify the JSON path that stored xy coordinates for mvt.Target.
rev.0.9.23 HTML :: Update Aster Docs (rev.0.9.15 Based)
rev.0.9.22 Action :: Targeted JSON Pointer :: Batch Assignment :: Oi Alt Values[n].
rev.0.9.21 Action :: Targeted JSON Pointer :: Batch Assignment :: Oi Flags[n].
rev.0.9.20 Expression: Get String with Current Date and Time (ISO 8601)
rev.0.9.19 Expression: JSON: Get Number (JSON Pointer)
rev.0.9.18 Expression: MvtUtil: Retrieve the count of instances selected as mvt.Pursuer.
rev.0.9.17 Expression: MvtUtil: Retrieve the count of instances selected as mvt.Target.
rev.0.9.16 Action :: MotionControl :: MoveTowards :: SwapTgt
rev.0.9.15 Action :: MotionControl :: MoveTowards :: SwapEPs
rev.0.9.14 Action :: JSON :: Create a new JSON 2D array that stores the exported x & y coordinates of mvt.Target ( for MoveTowards ).
rev.0.9.13 Action :: MvtUtil :: Specify the maximum number of selections for each mvt.Target & mvt.Pursuer.
rev.0.9.12 Action :: HWND :: END, The Window Auto Position Change Mode.
rev.0.9.11 Action :: HWND :: Start, The Window Auto Position Change Mode.
rev.0.9.10 Action :: MvtUtil :: Destroy the cached related object instance.
rev.0.9.09 Action :: MvtUtil :: Cache as the related object instance. » Related registrations also work for other than Active Objects.
rev.0.9.08 Action :: JSON :: For MoveTowards: Create a new array to store the Fixed Values of all mvt.Target instances.
rev.0.9.07 Action :: MvtUtil :: Deselect all mvt.Target instances.
rev.0.9.06 Condition :: EventDetect: MvtUtil: An instance was deselect as mvt.Target.
rev.0.9.05 Condition :: EventDetect: MvtUtil: An instance was selected as mvt.Target (Tally-Ho).
rev.0.9.04 Action :: MvtUtil: LPRO Directly: Select an instance as a mvt.Target.
rev.0.9.03 Action :: Targeted JSON Pointer :: Batch Assignment :: to the Object Instance’s Alterable Strings[n].
rev.0.9.02 Expression(num) :: EventDetect :: Get Unique ID.
rev.0.9.01 Expression(num) :: Convert to Unique ID from GrpName.
Version 0.8.11 or earlier..
ASTER Public Preview Version 0.8.11

( 2024-06-19 ) :: Common features are available :: Sleep, Stop, Reverse, GrowRad ::

Version Description
bugfixed JSON :: Get current Target Path :: Fixed a bug that Path could not be obtained.
rev.0.8.11 HTML :: Update Aster Docs (rev.0.8.10B Based)
rev.0.8.10B JSON :: Create-1D Array :: REGEX Partial Match :: GET Submatches
rev.0.8.10A JSON :: Create-1D Array :: REGEX Exact Match :: GET Submatches
rev.0.8.09B Motion :: Reverse the Motion Movement Value (Directly)
rev.0.8.09A Motion :: Reverse the Motion Movement Value (ByName)
rev.0.8.08 Motion :: Orbital :: Event Detection :: Get Current Angle Value
rev.0.8.07 Motion :: Orbital :: Set Target of Centre
rev.0.8.06 Motion :: Sinewave :: Grow Radius (ByName)
rev.0.8.05 HTML :: Update Aster Docs
rev.0.8.04 Motion :: Orbital :: Grow Radius (ByName)
rev.0.8.03 JSON :: Create 1D-Array with fill the data as boolean (Fill with boolean values)
rev.0.8.02 Motion :: Orbital :: Sleep Implementation (Event Detection allows sleep state to be eventized)
ASTER Public Preview Version 0.8.1

( 2024-05-18 ) :: First Public Version ::

Version Description
rev.0.8.01 Motion :: Orbital Implementation (Angular Rotate parameter standard built-in)