The sprite/BG engine was not enabled when only sprites are used, and the ANSI terminal emulation caused the crash when switching screen modes. I have also fixed the incorrect default color space.
Note that I have been working on a somewhat disruptive change for a while now and I need to review that stuff before I push the next update, so this may take a day or two until it shows up in a git build.
Some more tips in the meantime:
- It is not necessary to use
GPRINT accept both numbers and strings.
-  You can avoid the funny character at the end of the
GPRINT output by appending
- No need to tell VSYNC explicitly what frame to wait for here; just
VSYNC will do.
CLS already, no need to do it manually.
BTW, with the bugs fixed your original program works almost perfectly, only the sprite size is wrong. 😄
[While we're here, I'd also like to point out how loading images with a mask is different if you load it in the off-screen pixel memory vs. the visible screen:
In the first case, all pixels are drawn, but the "keyed" pixels get an alpha value of 0. That allows you to
SPRITE the image without having to explicitly specify a key again, which is something that was not possible on the ESP8266.
In the second case, only the non-keyed pixels are drawn in the first place, because that's usually what you want, and the text screen does not have an alpha channel anyway. [At least not one that is actually used. [That might be a bit too much useless detail. [And too many brackets.]]]]