XAYAX - Fine Embedded- and Retrocoding


The origin of XAYAX

XAYAX (pronounced like the kayak, except for the "k"s, which are pronounced like "ks") is an unknown Lower Saxony term for something that displays well on an Atari 2600.

This is a vice versa relationship as the term XAYAX itself can be displayed using the "features" (or "handicaps", this is left open for discussion) of the Atari 2600 very well. Here are three examples, all taken from the demo Bang!.

The images used for examples are using Stella fixed debug colors: the color is not selected by the color register associated to the graphics object, but by the type used:


example1

Using The Mirrored Playfield - Accross

It is no coincidence, that the XAYAX label at the bottom is mirrored. After the QR code has been displayed, the playfield is switched to mirrored mode. This way the amount of graphics data used for XAYAX is shrunk to just 14 bytes. It's also less resource consuming to display.


example2

Using The Mirrored Playfield - Down

Again, the playfield is switched to mirrored more, this time for the whole screen. The player sprites are also used for the illusion that the text in the center of the screen is jumping. The same graphics data are written to three different addresses: one of the playfield graphics register, and to each one of the two player sprites. The player 0 sprite is also switched to mirrored mode so both sprites can complete each other.


example3

Using The Sprite Repetition Registers

This is the most complex implementation of the XAYAX name done so far. Instead of trying to display raw graphics data, it is code that displays the logo. On the upper half the text is displayed using player and missile sprites, configured to display "XAXAX" - 3 times "X" and 2 times "A" with some space left in between the repetitions. Once the upper half is done, repetition is changed to display "XA AX" - 2 times "X" and 2 times "A" with some big open space in the middle. The now open space is filled with the ball sprite.

The whole graphics object defined this way takes a space of some 84x34 non-interlaced "pixels" using a dual-line kernel, which is really hard to get done on a 2600 otherwise.


So, now you know what's up with the word "XAYAX" and why it was used.
Mainpage Valid CSS Valid HTML 4.01 Transitional