You can now use branch-link like a function call. For example, instead of:
```arm
mov r0, #1
bl <thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram>
mov r0, #2
bl <thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram>
mov r0, #3
bl <thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram>
```
you can do
```arm
thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram(1)
thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram(2)
thumb.new_menu_helpers.ScheduleBgCopyTilemapToVram(3)
```
See the new tests for examples of what you can do with this feature.
The first value in an = operation is allowed to be outside the range [0, 255]. All other values must be inside the range. You may add registers.
If you're doing += or -=, even the first value must be within the range [0, 255].
No support for parenthesis. High registers are supported only for addition or equality. So you could do:
`r8 = r9 + r10` or `r8 = r9`
but not
`r9 = 3` or `r9 = r2 + 3`
When pushing, the low registers are put at lower addresses, followed by lr. Pushing decreases sp.
When popping, the low registers taken from lower addresses, then pc is pulled from a higher address. Popping increases sp.
So we want to push r0/r1 and pop r0/pc, which means we want to manipulate r0, not r1. We only pop r1 so we have a space to pop pc from, not because we actually want to store the value.
* "from game X address Y" is now a comment in the examples (starts with leading #)
* include "from game X address Y" for macros as well
* examples should use the new script variable aliases
* prefer FireRed/Emerald for examples
* Document a few script commands
* Undo change to initclock parameters
Variable numbers will display in hex even without a |h, so this change
was misguided.
---------
Co-authored-by: haven1433 <haven1433@gmail.com>
* Autocomplete Overlay supports TextEditor
* Add Overlay to CodyBody's ControlTemplate
* Don't show help tip when autocomplete is showing
* 3 categories of autocomplete:
-> streams
-> arguments
-> commands