# 📖 Cronus Zen Guide

{% hint style="info" %}
The current beta cycle has ended, and the full non-beta versions of Zen Studio and Zen Firmware are now available.
{% endhint %}

**v1.6.1 Build 1**

<mark style="color:blue;">ALT or CTRL UP/DOWN gesture to move highlighted code blocks.</mark>

<mark style="color:blue;">CTRL-SHIFT-Z as an alternate redo shortcut.</mark>

<mark style="color:blue;">CTRL-/ to (un)comment lines or selections.</mark>

<mark style="color:blue;">CTRL-Q to copy a line or selection.</mark>

<mark style="color:blue;">CTRL-' (quote) for commenting gesture.</mark>

<mark style="color:blue;">Bitwise Assignment Operators.</mark>

<mark style="color:blue;">Combos and Functions navigation in GPC editor.</mark>

<mark style="color:blue;">Mandatory internet connection.</mark>

<mark style="color:blue;">Beta team in About section.</mark>

<mark style="color:blue;">License agreement on setup and Zen Studio startup.</mark>

<mark style="color:purple;">Focus issue in GPC script Find/Replace dialog.</mark>

<mark style="color:purple;">Issue with Device Monitor labels.</mark>

<mark style="color:purple;">Date being cut off in Online Library.</mark>

<mark style="color:purple;">Left/right arrow issue when selecting text.</mark>

<mark style="color:purple;">Block comment \`/\* \*/\` functionality.</mark>

<mark style="color:purple;">Script hyperlink color in Online Library.</mark>

<mark style="color:purple;">Programming tab hanging after factory erase.</mark>

<mark style="color:purple;">JavaScript error in YouTube videos via setup.</mark>

<mark style="color:purple;">Issue where Zen Studio closed after PC wake from sleep.</mark>

<mark style="color:purple;">B\&R closing unexpectedly the first time.</mark>

<mark style="color:purple;">Small bug in Combos navigation.</mark>

<mark style="color:purple;">WebHID issue by resetting the device when exiting due to Marketplace detection.</mark>

<mark style="color:purple;">Issue with DS4 Output protocol</mark>

<mark style="color:green;">Compiler by removing deprecated 16-bit option.</mark>

<mark style="color:green;">Code movement to allow moving single lines.</mark>

<mark style="color:green;">Cursor positioning when using up/down arrow keys on selections.</mark>

<mark style="color:green;">Scrolling to cursor when using arrow keys on selections.</mark>

<mark style="color:green;">Foreground color for strings.</mark>

<mark style="color:green;">Device reset behavior after changing output protocol.</mark>

<mark style="color:green;">Device handling upon output protocol change (no reset needed).</mark>

<mark style="color:green;">Sorting of Combos and Functions lists by name.</mark>

<mark style="color:green;">License information in About section.</mark><br>

v1.2.1 Beta

<mark style="color:blue;">Support for the continue keyword in loops</mark>

<mark style="color:blue;">Zen server status is now shown on status bar. Clicking the status bar label will perform the check again</mark>

<mark style="color:blue;">Button to copy current device/software details to clipboard (Help > About Zen Studio...)</mark>

<mark style="color:blue;">Scrollable layout for low resolution monitors</mark>

<mark style="color:blue;">Replaced Find Device Icon with a better one</mark>

<mark style="color:blue;">Multiple GUI fixes, enhancements and stability improvements</mark>

<mark style="color:blue;">Various compiler optimizations</mark>

<mark style="color:blue;">Ballistic Curve buttons order</mark>

<mark style="color:blue;">Updated the parser to treat : and ; as separate characters while maintaining the old syntax support for ending with : or ;</mark>

<mark style="color:orange;">Issue when GamePack/Scripts sync occurs</mark>

<mark style="color:orange;">Issue with GamePacks cached list</mark>

<mark style="color:orange;">Cached YouTube links not showing when clicking PRO GamePacks</mark>

<mark style="color:orange;">The compiler will now track possible overflow or underflow errors</mark>

<mark style="color:orange;">Issue with inc/dec issue in if statement.</mark>

<mark style="color:orange;">Issue with binary operators.</mark>

<mark style="color:orange;">SPVARS not loading after GamePack sync occurs (on APPDATA delete or PC change)</mark>

<mark style="color:orange;">GPC editor GOTO logic (finally)</mark>

<mark style="color:orange;">Issue with flashing some GPC scripts</mark>

<mark style="color:red;">MAX MAPPER not exiting API MODE on close causing no output to be sent</mark>

<mark style="color:red;">Append InGameSettingsFlyoutText when exporting M\&K .bin layout</mark>

<mark style="color:red;">Switch Case statement - Check GPC sample below</mark>

<mark style="color:red;">Enum data definition - Check GPC sample below</mark>

<mark style="color:red;">Bluetooth clear button - Check instructions below</mark>

<mark style="color:red;">Support for any keyword as an identifier</mark>

#### 💾 Switching Case Statements Sample: <a href="#bujwq" id="bujwq"></a>

{% code lineNumbers="true" fullWidth="true" %}

```

// GPC

int var = 1;

define FIVE = 5;

define SIX = FIVE + 1;

main {
	switch(var) {
		case 1 {
			set_val(TRACE_1, 1); // THIS HAS NO BREAK SO IT WILL EVALUATE NEXT CASE!
		}
		case 2 : {
			set_val(TRACE_1, 2);
			set_val(TRACE_2, 2);
			break;
		}
		case 0x3 {
			break;
		}
		case 0x4 : {
			break;
		}
		case FIVE {
			break;
	 	}
	 	case SIX : {
	 	
	 	}
		default {
			set_val(TRACE_3, 1);
		}
	}
	switch(get_rumble(RUMBLE_RT)) {
		case 0x10 {
			break;
		}
		case 40 : {
			break;
		}		
		case 60 {
			break;
		}
		case 80 : {
			break;
		}
	}
}
```

{% endcode %}

### 💾 Enum Data Definition Sample: <a href="#enum-data-definition-sample" id="enum-data-definition-sample"></a>

<br>

{% code lineNumbers="true" fullWidth="true" %}

```

enum {
  MYENUM_0 = 50,
  MYENUM_1,
  MYENUM_3,
  MYENUM_4
}

enum {
  MYENUM2_0,
  MYENUM2_1,
  MYENUM2_3,
  MYENUM2_4
}

main {

	set_val(TRACE_1, MYENUM_1); 	// THIS WILL OUTPUT 51 AS OUR ENUM STARTED FROM 50
	set_val(TRACE_1, MYENUM2_1);	// THIS WILL OUTPUT 1 AS DEFAULT ENUM START IS ALWAYS 0

}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aim-intelligence.gitbook.io/untitled/cronus-zen-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
