SWIZ, for swizzle, allows you to isolate and/or reorder digits from a value, counting from the right. Like, if you have the value 520, SWIZ 520 3 X will put 5 in X, SWIZ 520 32 X will put 52 in X, SWIZ 520 123 X will put 025 in X. Useful for some storage systems where a single number indicates several things (like the first digit is host and the next two are file number or whatever) or in case where you have to enter a number as its component digits.
Took me 2 nights and a half to finish the game. That puts it between Opus Magnum (1 night) and Shenzhen IO (not finished) difficulty-wise. The last few levels are brutal, and the final one was a real headscratcher -although I found a valid approach early on, fitting it into the allowed size was a real challenge. In general the main difficulty is to find how to synchronize a number of EXAs even though you kinda lack the tools to do so. I quite liked it, and of course I spent today going back to previous levels and optimizing them. if you want to optimize for cycles, in some cases it’ll be shaving off and simplifying instructions, but for larger cycle counts you’ll find parallelism is the way to go.
One really handy undocumented trick I only realized on the final puzzle:
you can write and read the T register just like X! It’ll get overwritten when you call TEST though. So as long as you haven’t got to test something a single exa can store two values without any extra storage. Also since a value of 0 means false and anything else means true you can shorten some loops. Like,
COPY 10 T
MARK LOOP
do some stuff
SUBI T 1 T
TJMP LOOP
is the same as
COPY 10 X
MARK LOOP
do some stuff
SUBI X 1 X
CHECK X = 0
FJMP LOOP
only shorter and faster and now X is free for whatever you may need to do with it
Oh, and absolutely read the zines for lots of interesting details on the setting. Like, the Phage is even more messed up once you realize what it’s doing to you and why you can delays its effects using programming. I also love that there’s little bits of irrelevant stuff and extra controls in most levels that you can read or mess up.
Perhaps my only very small disappointment was the ending reminded me of another game that’s done it better, but it was still pretty good.