Archive for November, 2016

The Cronus PRO v1.20 BETA has been updated to BETA 8. Here are the changes since v1.20 BETA 7:

Fixed some issues with if, else if and else causing incorrect jumps to happen which could potentially cause the VM to crash due to a never ending loop.

Added a missing name check for variables, it was possible to declare variables with the same name as constants (both built in and user constants), later on in the script the constant would be prioritized over the variable where applicable (you could give the variable a value but never actually use it directly).

Moved GPC Generation to a background thread in MAX Combo making the UI not lock itself while processing all the data…

Fixed a bug in the new compiler causing edge values for the 8-bit range (0 – 255 and/or -128 – 127) to trigger a warning about the value being 16-bit (which isn’t true), with this fix i also added the actual value to the warning message to make it a little bit easier to understand what triggered it

Fixed a bug causing the unused function warning to always pop up regardless of if the function was used or not

Added warnings about unused function arguments and combos

Added warnings about unused variables with the following cases:

unused – It’s not used anywhere at all (neither assigned a value nor read) – This will be printed even if you use it as a base for array indexes which may or may not be a good thing, let me know what you guys think about that

assigned but not used – It’s assigned a value but is never used anywhere (it’s value is never checked/used anywhere)

used but not assigned – It’s never assigned a value and will therefor always return 0 as it’s value (this is the default value any variable is given) – NOTE: giving a variable a value when you define it or in the init section counts as assigning it a value, perhaps i should change that behavior and have it tell you when a variable is given a value at startup but never changes…?

We’re now releasing this new version of Cronus PRO as a public beta due to the HUGE changes done under the hood, to prevent everyone from having issues and needing a fix like yesterday, we’ve started making larger changes in Beta builds rather than pushing them out as updates for everyone, this allows us to have a smaller group of people affected by bugs so that we can fix them rather than having to deal with a large number of complaints about these issues.

Some of you have likely experienced some random issues and/or completely different behavior from what you’re expecting from your script(s) etc. This should be fixed with this beta as we’ve completely re-written the compiler and the interpreter in a different language. We’ve also decided to swap out the HID library (used to communicate with the CronusMAX PLUS itself).

With all of this re-writing of the major under-the-hood libraries, we’re also able to get rid of the C++ 2010/2015 dependency (we no longer need C++) which, as a result should lead to less issues for people running Cronus PRO on a new PC (some of you may have had issues starting Cronus PRO without manually installing the C++ 2015 Redistributable x86 package). This is no longer going to be an issue.

While we re-wrote the compiler we also added several new features to it, mainly to make it easier for those familiar with programming in other languages such as C, C++, C# etc. to have things they’re used to having such as “variable++” which is the equivalent of doing “variable = variable + 1”. We find ourselves wanting this all the time, so we’ve implemented it 🙂

This Beta has been available to a select few members of our community for a couple of weeks now and we feel we nailed a number of the major bugs, so we’ve now decided to release it for everyone to enjoy. However as always with a beta, you should expect bugs to be present, so we will be relying on you to report any issues to us in this dedicated forum.

HID Library completely re-written in C#

GPC Interpreter Library completely re-written in C# including the new opcodes – they’re there but not fully functional (Needs A LOT of testing) some changes/fixes made:

get_ptime now function correctly and gives you the press or release time of the button

get_ptime is no longer limited to 4000 milliseconds, it’s now limited to 32767

get_pvar and set_pvar are now functioning properly, they’re however not kept between runs in X-Aim (yet)

GPC Compiler Library completely re-written in C# with some additional functions, and lot’s of bugfixes:

Added support for ++ and — for variables (variable++ and variable–, not ++variable/–variable)

Added support for +=, -=, *=, /= and %= for variable assignments (basically the same as doing: variable = variable <+,-,*,/ or %> <expression>)

Added support for 16-bit values in the data section (NOTE: This will issue a warning that any index coming after this will be +1 from it’s original state, that’s because it’s divided into 2 8-bit values before being added to the bytecode)

Added support for doing arithmetic operations for constants, you can now do something like:

define value = 1; define value2 = value + 2;

Added support for pre-computing constant arithmetics, saving space in the final output (as constant math will be computed at compile time rather then at runtime)

Fixed issues with user function returns

Fixed issues with empty user functions

Removed support for doing “- 1” for example when wanting it to be a negative value (this is considered a syntax error, there should be no space between the minus and the number!), you can still do things like “- CONSTANT” and “-CONSTANT” etc. (and the same for variables, for variables it’s translated to the same as if you did inv(<variable_expression>);

would result in a syntax error (the idx would become part of the return despite not belonging together)

Fixed a issue with how things like var[var] = !var[var]; was compiled which would result in incorrect opcode order

Added a check for never ending while loops (constant trigger only) which are now treated as an error (you really shouldn’t do this as it’ll mess up the VM, it’ll get stuck in this and won’t output anything… example:

main {
while (TRUE) { // This will always run, regardless, and due to no break, it'll never leave this
set_val(0, 100);
}
}

Added a error line highlight to the code editor (it will now highlight the line that caused an error from the compiler) the default color is red but can be customized in the config (it supports some common names such as “red”, “blue”, “green” etc. and also ARGB annotations: #AARRGGBB (hex, similar to HTML except with the alpha aswell which is the opacity (FF for full color, 80 for semi-transparent)

Added support for jumping to the error when trying to compile a script that has an error in it

Fixed a issue with Online Library causing titles to not be wrapped correctly

Fixed a issue with the search function in Online Library – It will now search specifically for what you type in by default (unless using the new setting below):

Added “Advanced Search” to Online Library which lets you override the above fix (restore previous behavior where it does a broad search)

Added a “go to” command (Ctrl + G) which lets you jump to line x and column y (or just the line)

Fixed a issue where high contrast themes would make it very difficult (even impossible in most cases) to read what is/was displayed in Cronus PRO – it now looks the same regardless of your color settings, the window changes but nothing within Cronus PRO should now change

Added a message whenever an unexpected fatal error occurs in Cronus PRO (the error will be saved in %appdata%\Cronus\Error.log, send this to me if you stumble upon a error so i can fix the bug)

Added some sanity checks before flashing a firmware/gamepack/GPC script to avoid further firmware corruption issues

Added a option to enable/disable Accel/Gyro highlighting in the Device Monitor

Fixed a issue where a corrupt x-aim.cfg could potentially crash Cronus PRO (it is now logged and ignored – loading defaults instead)

Added a separate compiler instance for x-aim and CM+ use (as they don’t support the same things, the CM+ has additional opcodes/functions not supported by x-aim)

Added a visual indicator as to how many {, [ and ( you have compared to }, ] and ) (currently it’s just “OK” or “Bad” with details when you hover over it)

Fixed a issue where disconnecting the monitor then clicking a mouse button would make X-Aim exit capture mode NOTE: This fix MAY cause additional false positives in various antivirus software out there…

Added support for selecting to download the latest or previous firmware version

Fixed a issue where the PS4 Acc/Gyro and Touch wasn’t available while using X-Aim