The TEC RedShift is an imaginary handheld game console, made in 1995 in the story, with a monochrome screen and a gimmick to make sprites appear in anaglyph (red & cyan) 3D. This means that viewing 3D requires the use of a pair of old-style 3D glasses.
EXAs on the Redshift Homebrew have several additional features:
- The WAIT and DATA instructions are available; (see EXA instructions)
- There is no cycle limit;
- Each EXA stores a 10x10 "sprite" image made of black-and-white pixels.
- Three additional registers control the display of the sprite. GX and GY give the location of the sprite on the screen, with origin at top left. GZ gives the level of anaglyph 3D depth from -9 to +9.
- The extra register GP is used to modify the sprite during run time, by writing values coded as three decimal digits:
- 0xy: turn off pixel at x,y.
- 1xy: turn on pixel at x,y.
- 2xy: toggle pixel at x,y.
- 3cc: load built-in font character cc into entire sprite. 0 is blank, 1-26 are A-Z, 27-36 are 0-9, 37 is ., 38 is ?, 39 is !.
- Two extra registers CI and CO are used to detect sprite collisions. When two sprites have overlapping white pixels, the CI register of the EXA controlling each colliding sprite is set to the highest CO value of any EXA controlling a colliding sprite other than itself.
The hardware registers are provided as follows:
- #SQR0, #SQR1 and #TRI0 control the three melodic voices - two square waves and a triangle wave. Writing 0 silences the voice; writing other values play a note. Middle C is 60 and each increment or decrement represents a semitone.
- #NSE0 controls the noise generator. Writing 0 silences it. Writing any other value produces noise around the specified frequency.
- #PADX and #PADY read the D-pad controls. PADX is -1 for left and 1 for right, PADY is -1 for up and 1 for down.
- #PADB returns a decimal digit mapped value szyx representing the state of the state, x, y, and z control buttons; 1 for pressed, 0 for not.
- #EN3D returns 1 or 0 depending on whether or not the 3D switch is on.